@ivoryheart/herdr-world 0.1.0-rc.10
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/LICENSE +22 -0
- package/README.md +42 -0
- package/THIRD_PARTY_NOTICES.md +52 -0
- package/UPSTREAM.md +33 -0
- package/bin/herdr-world +128 -0
- package/docs/world-assets.md +51 -0
- package/lib/bridges/linux-x64/herdr-world-bridge +0 -0
- package/lib/bridges/macos-arm64/herdr-world-bridge +0 -0
- package/lib/bridges/macos-x64/herdr-world-bridge +0 -0
- package/lib/herdr-world-launcher.sh +518 -0
- package/package.json +36 -0
- package/share/herdr-world/web/assets/BufferResource-TmONtVkO.js +311 -0
- package/share/herdr-world/web/assets/CanvasPool-C4EP4giG.js +1 -0
- package/share/herdr-world/web/assets/FederatedEventTarget-CkoT1sfc.js +1 -0
- package/share/herdr-world/web/assets/FilterSystem-Cc8XEqAi.js +173 -0
- package/share/herdr-world/web/assets/NoteMarkdownPreview-DSlfOjOc.js +29 -0
- package/share/herdr-world/web/assets/SpacesSurface-KQpjWcgW.js +1 -0
- package/share/herdr-world/web/assets/WebGLRenderer-COAVtjkI.js +1 -0
- package/share/herdr-world/web/assets/WebGPURenderer-DgfOPeWV.js +1 -0
- package/share/herdr-world/web/assets/WorldSurface-DvbdAI-_.js +197 -0
- package/share/herdr-world/web/assets/__vite-browser-external-2447137e-BvRk9kiK.js +0 -0
- package/share/herdr-world/web/assets/browserAll-B8-kqmYE.js +1 -0
- package/share/herdr-world/web/assets/chunk-QTnfLwEv.js +1 -0
- package/share/herdr-world/web/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
- package/share/herdr-world/web/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
- package/share/herdr-world/web/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
- package/share/herdr-world/web/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/share/herdr-world/web/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
- package/share/herdr-world/web/assets/getBatchSamplersUniformGroup-D-hqfegN.js +1 -0
- package/share/herdr-world/web/assets/ghostty-web-8_X1K5z2.js +13 -0
- package/share/herdr-world/web/assets/index-B1fwFDFH.css +1 -0
- package/share/herdr-world/web/assets/index-BAVYPHsj.js +17 -0
- package/share/herdr-world/web/assets/init-DeL9YIMj.js +1 -0
- package/share/herdr-world/web/assets/localUniformBit-BnogyqF-.js +264 -0
- package/share/herdr-world/web/assets/web-CkXGA1Hr.js +1 -0
- package/share/herdr-world/web/assets/web-DXrm_vsa.js +1 -0
- package/share/herdr-world/web/assets/webworkerAll-BFZtmp1G.js +1 -0
- package/share/herdr-world/web/herdr-logo-180.png +0 -0
- package/share/herdr-world/web/herdr-logo-192.png +0 -0
- package/share/herdr-world/web/herdr-logo-512.png +0 -0
- package/share/herdr-world/web/herdr-logo-maskable-192.png +0 -0
- package/share/herdr-world/web/herdr-logo-maskable-512.png +0 -0
- package/share/herdr-world/web/herdr-logo.svg +6 -0
- package/share/herdr-world/web/index.html +24 -0
- package/share/herdr-world/web/legal/Apache-2.0.txt +190 -0
- package/share/herdr-world/web/legal/LICENSE.txt +22 -0
- package/share/herdr-world/web/legal/PixiJS-MIT.txt +21 -0
- package/share/herdr-world/web/legal/THIRD_PARTY_NOTICES.md +52 -0
- package/share/herdr-world/web/legal/UPSTREAM.md +33 -0
- package/share/herdr-world/web/legal/manifest.json +33 -0
- package/share/herdr-world/web/legal/npm-licenses.txt +1381 -0
- package/share/herdr-world/web/legal/world-assets.md +51 -0
- package/share/herdr-world/web/manifest.json +42 -0
- package/share/herdr-world/web/world/LICENSE-PixiJS.txt +21 -0
- package/share/herdr-world/web/world/characters/1-D-1.png +0 -0
- package/share/herdr-world/web/world/characters/10-D-1.png +0 -0
- package/share/herdr-world/web/world/characters/11-D-1.png +0 -0
- package/share/herdr-world/web/world/characters/12-D-1.png +0 -0
- package/share/herdr-world/web/world/characters/2-D-1.png +0 -0
- package/share/herdr-world/web/world/characters/3-D-1.png +0 -0
- package/share/herdr-world/web/world/characters/4-D-1.png +0 -0
- package/share/herdr-world/web/world/characters/5-D-1.png +0 -0
- package/share/herdr-world/web/world/characters/6-D-1.png +0 -0
- package/share/herdr-world/web/world/characters/7-D-1.png +0 -0
- package/share/herdr-world/web/world/characters/8-D-1.png +0 -0
- package/share/herdr-world/web/world/characters/9-D-1.png +0 -0
- package/third_party/dependencies/README.md +22 -0
- package/third_party/dependencies/cargo-licenses.html +7696 -0
- package/third_party/dependencies/npm-licenses.txt +1381 -0
- package/third_party/licenses/Apache-2.0.txt +190 -0
- package/third_party/licenses/PixiJS-MIT.txt +21 -0
- package/vendor/herdr-compat/VENDOR-MANIFEST.toml +186 -0
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import"./chunk-QTnfLwEv.js";import{$ as e,B as t,C as n,D as r,E as i,J as a,K as o,L as s,M as c,N as l,P as u,R as d,S as f,T as ee,U as te,W as ne,X as re,Y as ie,_ as p,a as m,at as ae,ct as h,dt as oe,et as g,ft as _,g as se,h as ce,i as le,it as ue,k as v,lt as de,m as fe,ot as y,pt as pe,rt as b,tt as x,ut as S,v as me,x as he,y as ge}from"./localUniformBit-BnogyqF-.js";var _e={name:`texture-bit`,vertex:{header:`
|
|
2
|
+
|
|
3
|
+
struct TextureUniforms {
|
|
4
|
+
uTextureMatrix:mat3x3<f32>,
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
@group(2) @binding(2) var<uniform> textureUniforms : TextureUniforms;
|
|
8
|
+
`,main:`
|
|
9
|
+
uv = (textureUniforms.uTextureMatrix * vec3(uv, 1.0)).xy;
|
|
10
|
+
`},fragment:{header:`
|
|
11
|
+
@group(2) @binding(0) var uTexture: texture_2d<f32>;
|
|
12
|
+
@group(2) @binding(1) var uSampler: sampler;
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
`,main:`
|
|
16
|
+
outColor = textureSample(uTexture, uSampler, vUV);
|
|
17
|
+
`}},ve={name:`texture-bit`,vertex:{header:`
|
|
18
|
+
uniform mat3 uTextureMatrix;
|
|
19
|
+
`,main:`
|
|
20
|
+
uv = (uTextureMatrix * vec3(uv, 1.0)).xy;
|
|
21
|
+
`},fragment:{header:`
|
|
22
|
+
uniform sampler2D uTexture;
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
`,main:`
|
|
26
|
+
outColor = texture(uTexture, vUV);
|
|
27
|
+
`}},C=[];pe.handleByNamedList(_.Environment,C);async function ye(e){if(!e)for(let e=0;e<C.length;e++){let t=C[e];if(t.value.test()){await t.value.load();return}}}var w;function be(){if(typeof w==`boolean`)return w;try{w=Function(`param1`,`param2`,`param3`,`return param1[param2] === param3;`)({a:`b`},`a`,`b`)===!0}catch{w=!1}return w}var T=(e=>(e[e.NONE=0]=`NONE`,e[e.COLOR=16384]=`COLOR`,e[e.STENCIL=1024]=`STENCIL`,e[e.DEPTH=256]=`DEPTH`,e[e.COLOR_DEPTH=16640]=`COLOR_DEPTH`,e[e.COLOR_STENCIL=17408]=`COLOR_STENCIL`,e[e.DEPTH_STENCIL=1280]=`DEPTH_STENCIL`,e[e.ALL=17664]=`ALL`,e))(T||{}),xe=class{constructor(e){this.items=[],this._name=e}emit(e,t,n,r,i,a,o,s){let{name:c,items:l}=this;for(let u=0,d=l.length;u<d;u++)l[u][c](e,t,n,r,i,a,o,s);return this}add(e){return e[this._name]&&(this.remove(e),this.items.push(e)),this}remove(e){let t=this.items.indexOf(e);return t!==-1&&this.items.splice(t,1),this}contains(e){return this.items.indexOf(e)!==-1}removeAll(){return this.items.length=0,this}destroy(){this.removeAll(),this.items=null,this._name=null}get empty(){return this.items.length===0}get name(){return this._name}},Se=[`init`,`destroy`,`contextChange`,`resolutionChange`,`reset`,`renderEnd`,`renderStart`,`render`,`update`,`postrender`,`prerender`],Ce=class e extends oe{constructor(e){super(),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=e.type,this.name=e.name,this.config=e;let t=[...Se,...this.config.runners??[]];this._addRunners(...t),this._unsafeEvalCheck()}async init(t={}){await ye(t.skipExtensionImports===!0?!0:t.manageImports===!1),this._addSystems(this.config.systems),this._addPipes(this.config.renderPipes,this.config.renderPipeAdaptors);for(let e in this._systemsHash)t={...this._systemsHash[e].constructor.defaultOptions,...t};t={...e.defaultOptions,...t},this._roundPixels=+!!t.roundPixels;for(let e=0;e<this.runners.init.items.length;e++)await this.runners.init.items[e].init(t);this._initOptions=t}render(e,t){let n=e;if(n instanceof o&&(n={container:n},t&&(ue(ae,`passing a second argument is deprecated, please use render options instead`),n.target=t.renderTexture)),n.target||=this.view.renderTarget,n.target===this.view.renderTarget&&(this._lastObjectRendered=n.container,n.clearColor=this.background.colorRgba),n.clearColor){let e=Array.isArray(n.clearColor)&&n.clearColor.length===4;n.clearColor=e?n.clearColor:S.shared.setValue(n.clearColor).toArray()}n.transform||(n.container.updateLocalTransform(),n.transform=n.container.localTransform),this.runners.prerender.emit(n),this.runners.renderStart.emit(n),this.runners.render.emit(n),this.runners.renderEnd.emit(n),this.runners.postrender.emit(n)}resize(e,t,n){let r=this.view.resolution;this.view.resize(e,t,n),this.emit(`resize`,this.view.screen.width,this.view.screen.height,this.view.resolution),n!==void 0&&n!==r&&this.runners.resolutionChange.emit(n)}clear(e={}){let t=this;e.target||=t.renderTarget.renderTarget,e.clearColor||=this.background.colorRgba,e.clear??=T.ALL;let{clear:n,clearColor:r,target:i}=e;S.shared.setValue(r??this.background.colorRgba),t.renderTarget.clear(i,n,S.shared.toArray())}get resolution(){return this.view.resolution}set resolution(e){this.view.resolution=e,this.runners.resolutionChange.emit(e)}get width(){return this.view.texture.frame.width}get height(){return this.view.texture.frame.height}get canvas(){return this.view.canvas}get lastObjectRendered(){return this._lastObjectRendered}get renderingToScreen(){return this.renderTarget.renderingToScreen}get screen(){return this.view.screen}_addRunners(...e){e.forEach(e=>{this.runners[e]=new xe(e)})}_addSystems(e){let t;for(t in e){let n=e[t];this._addSystem(n.value,n.name)}}_addSystem(e,t){let n=new e(this);if(this[t])throw Error(`Whoops! The name "${t}" is already in use`);this[t]=n,this._systemsHash[t]=n;for(let e in this.runners)this.runners[e].add(n);return this}_addPipes(e,t){let n=t.reduce((e,t)=>(e[t.name]=t.value,e),{});e.forEach(e=>{let t=e.value,r=e.name,i=n[r];this.renderPipes[r]=new t(this,i?new i:null)})}destroy(e=!1){this.runners.destroy.items.reverse(),this.runners.destroy.emit(e),Object.values(this.runners).forEach(e=>{e.destroy()}),this._systemsHash=null,this.renderPipes=null}generateTexture(e){return this.textureGenerator.generateTexture(e)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!be())throw Error(`Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.`)}};Ce.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};var we=Ce,E=class{constructor(e){this._renderer=e}addRenderable(e,t){this._renderer.renderPipes.batch.break(t),t.add(e)}execute(e){e.isRenderable&&e.render(this._renderer)}destroy(){this._renderer=null}};E.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:`customRender`};function D(e,t){let n=e.instructionSet,r=n.instructions;for(let e=0;e<n.instructionSize;e++){let n=r[e];t[n.renderPipeId].execute(n)}}var O=class{constructor(e){this._renderer=e}addRenderGroup(e,t){this._renderer.renderPipes.batch.break(t),t.add(e)}execute(e){e.isRenderable&&(this._renderer.globalUniforms.push({worldTransformMatrix:e.worldTransform,worldColor:e.worldColorAlpha}),D(e,this._renderer.renderPipes),this._renderer.globalUniforms.pop())}destroy(){this._renderer=null}};O.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:`renderGroup`};function Te(e,t){let n=e.root,r=e.instructionSet;r.reset();let i=t.renderPipes?t:t.batch.renderer,a=i.renderPipes;a.batch.buildStart(r),a.blendMode.buildStart(),a.colorMask.buildStart(),n.sortableChildren&&n.sortChildren(),A(n,r,i,!0),a.batch.buildEnd(r),a.blendMode.buildEnd(r)}function k(e,t,n){let r=n.renderPipes?n:n.batch.renderer;e.globalDisplayStatus<7||!e.includeInBuild||(e.sortableChildren&&e.sortChildren(),e.isSimple?Ee(e,t,r):A(e,t,r,!1))}function Ee(e,t,n){if(e.renderPipeId){let{renderPipes:r,renderableGC:i}=n;r.blendMode.setBlendMode(e,e.groupBlendMode,t),e.didViewUpdate=!1,r[e.renderPipeId].addRenderable(e,t),i.addRenderable(e,t)}if(!e.renderGroup){let r=e.children,i=r.length;for(let e=0;e<i;e++)k(r[e],t,n)}}function A(e,t,n,r){let{renderPipes:i,renderableGC:a}=n;if(!r&&e.renderGroup)i.renderGroup.addRenderGroup(e.renderGroup,t);else{for(let n=0;n<e.effects.length;n++){let r=e.effects[n];i[r.pipe].push(r,e,t)}let r=e.renderPipeId;r&&(i.blendMode.setBlendMode(e,e.groupBlendMode,t),e.didViewUpdate=!1,i[r].addRenderable(e,t),a.addRenderable(e,t));let o=e.children;if(o.length)for(let e=0;e<o.length;e++)k(o[e],t,n);for(let n=e.effects.length-1;n>=0;n--){let r=e.effects[n];i[r.pipe].pop(r,e,t)}}}function j(e,t){t||=0;for(let n=t;n<e.length&&e[n];n++)e[n]=null}function M(e,t=[]){t.push(e);for(let n=0;n<e.renderGroupChildren.length;n++)M(e.renderGroupChildren[n],t);return t}function De(e,t,n){let r=e>>16&255,i=e>>8&255,a=e&255,o=t>>16&255,s=t>>8&255,c=t&255,l=r+(o-r)*n,u=i+(s-i)*n,d=a+(c-a)*n;return(l<<16)+(u<<8)+d}var N=16777215;function P(e,t){return e===N||t===N?e+t-N:De(e,t,.5)}var Oe=new o,F=7;function I(e,t=!1){ke(e);let n=e.childrenToUpdate,r=e.updateTick++;for(let t in n){let i=Number(t),a=n[t],o=a.list,s=a.index;for(let t=0;t<s;t++){let n=o[t];n.parentRenderGroup===e&&n.relativeRenderGroupDepth===i&&L(n,r,0)}j(o,s),a.index=0}if(t)for(let n=0;n<e.renderGroupChildren.length;n++)I(e.renderGroupChildren[n],t)}function ke(e){let t=e.root,n;if(e.renderGroupParent){let r=e.renderGroupParent;e.worldTransform.appendFrom(t.relativeGroupTransform,r.worldTransform),e.worldColor=P(t.groupColor,r.worldColor),n=t.groupAlpha*r.worldAlpha}else e.worldTransform.copyFrom(t.localTransform),e.worldColor=t.localColor,n=t.localAlpha;n=n<0?0:n>1?1:n,e.worldAlpha=n,e.worldColorAlpha=e.worldColor+((n*255|0)<<24)}function L(e,t,n){if(t===e.updateTick)return;e.updateTick=t,e.didChange=!1;let r=e.localTransform;e.updateLocalTransform();let i=e.parent;if(i&&!i.renderGroup?(n|=e._updateFlags,e.relativeGroupTransform.appendFrom(r,i.relativeGroupTransform),n&F&&R(e,i,n)):(n=e._updateFlags,e.relativeGroupTransform.copyFrom(r),n&F&&R(e,Oe,n)),!e.renderGroup){let r=e.children,i=r.length;for(let e=0;e<i;e++)L(r[e],t,n);let a=e.parentRenderGroup;e.renderPipeId&&!a.structureDidChange&&a.updateRenderable(e)}}function R(e,t,n){if(n&1){e.groupColor=P(e.localColor,t.groupColor);let n=e.localAlpha*t.groupAlpha;n=n<0?0:n>1?1:n,e.groupAlpha=n,e.groupColorAlpha=e.groupColor+((n*255|0)<<24)}n&2&&(e.groupBlendMode=e.localBlendMode===`inherit`?t.groupBlendMode:e.localBlendMode),n&4&&(e.globalDisplayStatus=e.localDisplayStatus&t.globalDisplayStatus),e._updateFlags=0}function Ae(e,t){let{list:n,index:r}=e.childrenRenderablesToUpdate,i=!1;for(let e=0;e<r;e++){let r=n[e];if(i=t[r.renderPipeId].validateRenderable(r),i)break}return e.structureDidChange=i,i}var je=new h,z=class{constructor(e){this._renderer=e}render({container:e,transform:t}){e.isRenderGroup=!0;let n=e.parent,r=e.renderGroup.renderGroupParent;e.parent=null,e.renderGroup.renderGroupParent=null;let i=this._renderer,a=M(e.renderGroup,[]),o=je;t&&(o=o.copyFrom(e.renderGroup.localTransform),e.renderGroup.localTransform.copyFrom(t));let s=i.renderPipes;for(let e=0;e<a.length;e++){let t=a[e];t.runOnRender(),t.instructionSet.renderPipes=s,t.structureDidChange?j(t.childrenRenderablesToUpdate.list,0):Ae(t,s),I(t),t.structureDidChange?(t.structureDidChange=!1,Te(t,i)):Me(t),t.childrenRenderablesToUpdate.index=0,i.renderPipes.batch.upload(t.instructionSet)}i.globalUniforms.start({worldTransformMatrix:t?e.renderGroup.localTransform:e.renderGroup.worldTransform,worldColor:e.renderGroup.worldColorAlpha}),D(e.renderGroup,s),s.uniformBatch&&s.uniformBatch.renderEnd(),t&&e.renderGroup.localTransform.copyFrom(o),e.parent=n,e.renderGroup.renderGroupParent=r}destroy(){this._renderer=null}};z.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:`renderGroup`};function Me(e){let{list:t,index:n}=e.childrenRenderablesToUpdate;for(let r=0;r<n;r++){let n=t[r];n.didViewUpdate&&e.updateRenderable(n)}j(t,n)}var Ne=class{constructor(e){this._gpuSpriteHash=Object.create(null),this._destroyRenderableBound=this.destroyRenderable.bind(this),this._renderer=e}addRenderable(e,t){let n=this._getGpuSprite(e);e._didSpriteUpdate&&this._updateBatchableSprite(e,n),this._renderer.renderPipes.batch.addToBatch(n)}updateRenderable(e){let t=this._gpuSpriteHash[e.uid];e._didSpriteUpdate&&this._updateBatchableSprite(e,t),t.batcher.updateElement(t)}validateRenderable(e){let t=e._texture,n=this._getGpuSprite(e);return n.texture._source===t._source?!1:!n.batcher.checkAndUpdateTexture(n,t)}destroyRenderable(e){let t=this._gpuSpriteHash[e.uid];b.return(t),this._gpuSpriteHash[e.uid]=null,e.off(`destroyed`,this._destroyRenderableBound)}_updateBatchableSprite(e,t){e._didSpriteUpdate=!1,t.bounds=e.bounds,t.texture=e._texture}_getGpuSprite(e){return this._gpuSpriteHash[e.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=b.get(me);return t.renderable=e,t.texture=e._texture,t.bounds=e.bounds,t.roundPixels=this._renderer._roundPixels|e._roundPixels,this._gpuSpriteHash[e.uid]=t,e._didSpriteUpdate=!1,e.on(`destroyed`,this._destroyRenderableBound),t}destroy(){for(let e in this._gpuSpriteHash)b.return(this._gpuSpriteHash[e]);this._gpuSpriteHash=null,this._renderer=null}};Ne.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:`sprite`};var B=class{static init(){globalThis.__PIXI_APP_INIT__?.(this)}static destroy(){}};B.extension=_.Application;var Pe=class{constructor(e){this._renderer=e}init(){globalThis.__PIXI_RENDERER_INIT__?.(this._renderer)}destroy(){this._renderer=null}};Pe.extension={type:[_.WebGLSystem,_.WebGPUSystem],name:`initHook`,priority:-10};var Fe=class{constructor(e,t){this.state=f.for2d(),this._batches=Object.create(null),this._geometries=Object.create(null),this.renderer=e,this._adaptor=t,this._adaptor.init(this)}buildStart(e){if(!this._batches[e.uid]){let t=new r;this._batches[e.uid]=t,this._geometries[t.uid]=new n}this._activeBatch=this._batches[e.uid],this._activeGeometry=this._geometries[this._activeBatch.uid],this._activeBatch.begin()}addToBatch(e){this._activeBatch.add(e)}break(e){this._activeBatch.break(e)}buildEnd(e){let t=this._activeBatch,n=this._activeGeometry;t.finish(e),n.indexBuffer.setDataWithSize(t.indexBuffer,t.indexSize,!0),n.buffers[0].setDataWithSize(t.attributeBuffer.float32View,t.attributeSize,!1)}upload(e){let t=this._batches[e.uid],n=this._geometries[t.uid];t.dirty&&(t.dirty=!1,n.buffers[0].update(t.attributeSize*4))}execute(e){if(e.action===`startBatch`){let t=e.batcher,n=this._geometries[t.uid];this._adaptor.start(this,n)}this._adaptor.execute(this,e)}destroy(){this.state=null,this.renderer=null,this._adaptor.destroy(),this._adaptor=null;for(let e in this._batches)this._batches[e].destroy();this._batches=null;for(let e in this._geometries)this._geometries[e].destroy();this._geometries=null}};Fe.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:`batch`};var Ie=class e extends le{constructor(t){t={...e.defaultOptions,...t},super(t),this.enabled=!0,this._state=f.for2d(),this.blendMode=t.blendMode,this.padding=t.padding,typeof t.antialias==`boolean`?this.antialias=t.antialias?`on`:`off`:this.antialias=t.antialias,this.resolution=t.resolution,this.blendRequired=t.blendRequired,this.addResource(`uTexture`,0,1)}apply(e,t,n,r){e.applyFilter(this,t,n,r)}get blendMode(){return this._state.blendMode}set blendMode(e){this._state.blendMode=e}static from(t){let{gpu:n,gl:r,...i}=t,a,o;return n&&(a=fe.from(n)),r&&(o=se.from(r)),new e({gpuProgram:a,glProgram:o,...i})}};Ie.defaultOptions={blendMode:`normal`,resolution:1,padding:0,antialias:`off`,blendRequired:!1};var Le=Ie,Re=`in vec2 vMaskCoord;
|
|
28
|
+
in vec2 vTextureCoord;
|
|
29
|
+
|
|
30
|
+
uniform sampler2D uTexture;
|
|
31
|
+
uniform sampler2D uMaskTexture;
|
|
32
|
+
|
|
33
|
+
uniform float uAlpha;
|
|
34
|
+
uniform vec4 uMaskClamp;
|
|
35
|
+
|
|
36
|
+
out vec4 finalColor;
|
|
37
|
+
|
|
38
|
+
void main(void)
|
|
39
|
+
{
|
|
40
|
+
float clip = step(3.5,
|
|
41
|
+
step(uMaskClamp.x, vMaskCoord.x) +
|
|
42
|
+
step(uMaskClamp.y, vMaskCoord.y) +
|
|
43
|
+
step(vMaskCoord.x, uMaskClamp.z) +
|
|
44
|
+
step(vMaskCoord.y, uMaskClamp.w));
|
|
45
|
+
|
|
46
|
+
// TODO look into why this is needed
|
|
47
|
+
float npmAlpha = uAlpha;
|
|
48
|
+
vec4 original = texture(uTexture, vTextureCoord);
|
|
49
|
+
vec4 masky = texture(uMaskTexture, vMaskCoord);
|
|
50
|
+
float alphaMul = 1.0 - npmAlpha * (1.0 - masky.a);
|
|
51
|
+
|
|
52
|
+
original *= (alphaMul * masky.r * uAlpha * clip);
|
|
53
|
+
|
|
54
|
+
finalColor = original;
|
|
55
|
+
}
|
|
56
|
+
`,ze=`in vec2 aPosition;
|
|
57
|
+
|
|
58
|
+
out vec2 vTextureCoord;
|
|
59
|
+
out vec2 vMaskCoord;
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
uniform vec4 uInputSize;
|
|
63
|
+
uniform vec4 uOutputFrame;
|
|
64
|
+
uniform vec4 uOutputTexture;
|
|
65
|
+
uniform mat3 uFilterMatrix;
|
|
66
|
+
|
|
67
|
+
vec4 filterVertexPosition( vec2 aPosition )
|
|
68
|
+
{
|
|
69
|
+
vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;
|
|
70
|
+
|
|
71
|
+
position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;
|
|
72
|
+
position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;
|
|
73
|
+
|
|
74
|
+
return vec4(position, 0.0, 1.0);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
vec2 filterTextureCoord( vec2 aPosition )
|
|
78
|
+
{
|
|
79
|
+
return aPosition * (uOutputFrame.zw * uInputSize.zw);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
vec2 getFilterCoord( vec2 aPosition )
|
|
83
|
+
{
|
|
84
|
+
return ( uFilterMatrix * vec3( filterTextureCoord(aPosition), 1.0) ).xy;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
void main(void)
|
|
88
|
+
{
|
|
89
|
+
gl_Position = filterVertexPosition(aPosition);
|
|
90
|
+
vTextureCoord = filterTextureCoord(aPosition);
|
|
91
|
+
vMaskCoord = getFilterCoord(aPosition);
|
|
92
|
+
}
|
|
93
|
+
`,Be=`struct GlobalFilterUniforms {
|
|
94
|
+
uInputSize:vec4<f32>,
|
|
95
|
+
uInputPixel:vec4<f32>,
|
|
96
|
+
uInputClamp:vec4<f32>,
|
|
97
|
+
uOutputFrame:vec4<f32>,
|
|
98
|
+
uGlobalFrame:vec4<f32>,
|
|
99
|
+
uOutputTexture:vec4<f32>,
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
struct MaskUniforms {
|
|
103
|
+
uFilterMatrix:mat3x3<f32>,
|
|
104
|
+
uMaskClamp:vec4<f32>,
|
|
105
|
+
uAlpha:f32,
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;
|
|
110
|
+
@group(0) @binding(1) var uTexture: texture_2d<f32>;
|
|
111
|
+
@group(0) @binding(2) var uSampler : sampler;
|
|
112
|
+
|
|
113
|
+
@group(1) @binding(0) var<uniform> filterUniforms : MaskUniforms;
|
|
114
|
+
@group(1) @binding(1) var uMaskTexture: texture_2d<f32>;
|
|
115
|
+
|
|
116
|
+
struct VSOutput {
|
|
117
|
+
@builtin(position) position: vec4<f32>,
|
|
118
|
+
@location(0) uv : vec2<f32>,
|
|
119
|
+
@location(1) filterUv : vec2<f32>,
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
fn filterVertexPosition(aPosition:vec2<f32>) -> vec4<f32>
|
|
123
|
+
{
|
|
124
|
+
var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;
|
|
125
|
+
|
|
126
|
+
position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;
|
|
127
|
+
position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;
|
|
128
|
+
|
|
129
|
+
return vec4(position, 0.0, 1.0);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
fn filterTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
|
|
133
|
+
{
|
|
134
|
+
return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
fn globalTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
|
|
138
|
+
{
|
|
139
|
+
return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
fn getFilterCoord(aPosition:vec2<f32> ) -> vec2<f32>
|
|
143
|
+
{
|
|
144
|
+
return ( filterUniforms.uFilterMatrix * vec3( filterTextureCoord(aPosition), 1.0) ).xy;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
fn getSize() -> vec2<f32>
|
|
148
|
+
{
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
return gfu.uGlobalFrame.zw;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
@vertex
|
|
155
|
+
fn mainVertex(
|
|
156
|
+
@location(0) aPosition : vec2<f32>,
|
|
157
|
+
) -> VSOutput {
|
|
158
|
+
return VSOutput(
|
|
159
|
+
filterVertexPosition(aPosition),
|
|
160
|
+
filterTextureCoord(aPosition),
|
|
161
|
+
getFilterCoord(aPosition)
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
@fragment
|
|
166
|
+
fn mainFragment(
|
|
167
|
+
@location(0) uv: vec2<f32>,
|
|
168
|
+
@location(1) filterUv: vec2<f32>,
|
|
169
|
+
@builtin(position) position: vec4<f32>
|
|
170
|
+
) -> @location(0) vec4<f32> {
|
|
171
|
+
|
|
172
|
+
var maskClamp = filterUniforms.uMaskClamp;
|
|
173
|
+
|
|
174
|
+
var clip = step(3.5,
|
|
175
|
+
step(maskClamp.x, filterUv.x) +
|
|
176
|
+
step(maskClamp.y, filterUv.y) +
|
|
177
|
+
step(filterUv.x, maskClamp.z) +
|
|
178
|
+
step(filterUv.y, maskClamp.w));
|
|
179
|
+
|
|
180
|
+
var mask = textureSample(uMaskTexture, uSampler, filterUv);
|
|
181
|
+
var source = textureSample(uTexture, uSampler, uv);
|
|
182
|
+
|
|
183
|
+
var npmAlpha = 0.0;
|
|
184
|
+
|
|
185
|
+
var alphaMul = 1.0 - npmAlpha * (1.0 - mask.a);
|
|
186
|
+
|
|
187
|
+
var a = (alphaMul * mask.r) * clip;
|
|
188
|
+
|
|
189
|
+
return vec4(source.rgb, source.a) * a;
|
|
190
|
+
}`,Ve=class extends Le{constructor(e){let{sprite:t,...n}=e,r=new d(t.texture),i=new ge({uFilterMatrix:{value:new h,type:`mat3x3<f32>`},uMaskClamp:{value:r.uClampFrame,type:`vec4<f32>`},uAlpha:{value:1,type:`f32`}}),a=fe.from({vertex:{source:Be,entryPoint:`mainVertex`},fragment:{source:Be,entryPoint:`mainFragment`}}),o=se.from({vertex:ze,fragment:Re,name:`mask-filter`});super({...n,gpuProgram:a,glProgram:o,resources:{filterUniforms:i,uMaskTexture:t.texture.source}}),this.sprite=t,this._textureMatrix=r}apply(e,t,n,r){this._textureMatrix.texture=this.sprite.texture,e.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=this.sprite.texture.source,e.applyFilter(this,t,n,r)}},He=new e,Ue=class extends x{constructor(){super(),this.filters=[new Ve({sprite:new u(s.EMPTY),resolution:`inherit`,antialias:`inherit`})]}get sprite(){return this.filters[0].sprite}set sprite(e){this.filters[0].sprite=e}},We=class{constructor(e){this._activeMaskStage=[],this._renderer=e}push(e,t,n){let r=this._renderer;if(r.renderPipes.batch.break(n),n.add({renderPipeId:`alphaMask`,action:`pushMaskBegin`,mask:e,canBundle:!1,maskedContainer:t}),e.renderMaskToTexture){let t=e.mask;t.includeInBuild=!0,k(t,n,r),t.includeInBuild=!1}r.renderPipes.batch.break(n),n.add({renderPipeId:`alphaMask`,action:`pushMaskEnd`,mask:e,maskedContainer:t,canBundle:!1})}pop(e,t,n){this._renderer.renderPipes.batch.break(n),n.add({renderPipeId:`alphaMask`,action:`popMaskEnd`,mask:e,canBundle:!1})}execute(e){let t=this._renderer,n=e.mask.renderMaskToTexture;if(e.action===`pushMaskBegin`){let r=b.get(Ue);if(n){e.mask.mask.measurable=!0;let n=re(e.mask.mask,!0,He);e.mask.mask.measurable=!1,n.ceil();let i=t.renderTarget.renderTarget.colorTexture.source,a=p.getOptimalTexture(n.width,n.height,i._resolution,i.antialias);t.renderTarget.push(a,!0),t.globalUniforms.push({offset:n,worldColor:4294967295});let o=r.sprite;o.texture=a,o.worldTransform.tx=n.minX,o.worldTransform.ty=n.minY,this._activeMaskStage.push({filterEffect:r,maskedContainer:e.maskedContainer,filterTexture:a})}else r.sprite=e.mask.mask,this._activeMaskStage.push({filterEffect:r,maskedContainer:e.maskedContainer})}else if(e.action===`pushMaskEnd`){let e=this._activeMaskStage[this._activeMaskStage.length-1];n&&(t.type===m.WEBGL&&t.renderTarget.finishRenderPass(),t.renderTarget.pop(),t.globalUniforms.pop()),t.filter.push({renderPipeId:`filter`,action:`pushFilter`,container:e.maskedContainer,filterEffect:e.filterEffect,canBundle:!1})}else if(e.action===`popMaskEnd`){t.filter.pop();let e=this._activeMaskStage.pop();n&&p.returnTexture(e.filterTexture),b.return(e.filterEffect)}}destroy(){this._renderer=null,this._activeMaskStage=null}};We.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:`alphaMask`};var Ge=class{constructor(e){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=e}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(e,t,n){this._renderer.renderPipes.batch.break(n);let r=this._colorStack;r[this._colorStackIndex]=r[this._colorStackIndex-1]&e.mask;let i=this._colorStack[this._colorStackIndex];i!==this._currentColor&&(this._currentColor=i,n.add({renderPipeId:`colorMask`,colorMask:i,canBundle:!1})),this._colorStackIndex++}pop(e,t,n){this._renderer.renderPipes.batch.break(n);let r=this._colorStack;this._colorStackIndex--;let i=r[this._colorStackIndex-1];i!==this._currentColor&&(this._currentColor=i,n.add({renderPipeId:`colorMask`,colorMask:i,canBundle:!1}))}execute(e){this._renderer.colorMask.setMask(e.colorMask)}destroy(){this._colorStack=null}};Ge.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:`colorMask`};var Ke=class{constructor(e){this._maskStackHash={},this._maskHash=new WeakMap,this._renderer=e}push(e,t,n){var r;let i=e,a=this._renderer;a.renderPipes.batch.break(n),a.renderPipes.blendMode.setBlendMode(i.mask,`none`,n),n.add({renderPipeId:`stencilMask`,action:`pushMaskBegin`,mask:e,canBundle:!1});let o=i.mask;o.includeInBuild=!0,this._maskHash.has(i)||this._maskHash.set(i,{instructionsStart:0,instructionsLength:0});let s=this._maskHash.get(i);s.instructionsStart=n.instructionSize,k(o,n,a),o.includeInBuild=!1,a.renderPipes.batch.break(n),n.add({renderPipeId:`stencilMask`,action:`pushMaskEnd`,mask:e,canBundle:!1}),s.instructionsLength=n.instructionSize-s.instructionsStart-1;let c=a.renderTarget.renderTarget.uid;(r=this._maskStackHash)[c]??(r[c]=0)}pop(e,t,n){let r=e,i=this._renderer;i.renderPipes.batch.break(n),i.renderPipes.blendMode.setBlendMode(r.mask,`none`,n),n.add({renderPipeId:`stencilMask`,action:`popMaskBegin`,canBundle:!1});let a=this._maskHash.get(e);for(let e=0;e<a.instructionsLength;e++)n.instructions[n.instructionSize++]=n.instructions[a.instructionsStart++];n.add({renderPipeId:`stencilMask`,action:`popMaskEnd`,canBundle:!1})}execute(e){var t;let n=this._renderer,r=n.renderTarget.renderTarget.uid,i=(t=this._maskStackHash)[r]??(t[r]=0);e.action===`pushMaskBegin`?(n.renderTarget.ensureDepthStencil(),n.stencil.setStencilMode(v.RENDERING_MASK_ADD,i),i++,n.colorMask.setMask(0)):e.action===`pushMaskEnd`?(n.stencil.setStencilMode(v.MASK_ACTIVE,i),n.colorMask.setMask(15)):e.action===`popMaskBegin`?(n.colorMask.setMask(0),i===0?(n.renderTarget.clear(null,T.STENCIL),n.stencil.setStencilMode(v.DISABLED,i)):n.stencil.setStencilMode(v.RENDERING_MASK_REMOVE,i),i--):e.action===`popMaskEnd`&&(n.stencil.setStencilMode(v.MASK_ACTIVE,i),n.colorMask.setMask(15)),this._maskStackHash[r]=i}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}};Ke.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:`stencilMask`};var V=class e{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new S(0),this.color=this._backgroundColor,this.alpha=1}init(t){t={...e.defaultOptions,...t},this.clearBeforeRender=t.clearBeforeRender,this.color=t.background||t.backgroundColor||this._backgroundColor,this.alpha=t.backgroundAlpha,this._backgroundColor.setAlpha(t.backgroundAlpha)}get color(){return this._backgroundColor}set color(e){this._backgroundColor.setValue(e)}get alpha(){return this._backgroundColor.alpha}set alpha(e){this._backgroundColor.setAlpha(e)}get colorRgba(){return this._backgroundColor.toArray()}destroy(){}};V.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:`background`,priority:0},V.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};var qe=V,H={};pe.handle(_.BlendMode,e=>{if(!e.name)throw Error(`BlendMode extension must have a name property`);H[e.name]=e.ref},e=>{delete H[e.name]});var Je=class{constructor(e){this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=e}setBlendMode(e,t,n){if(this._activeBlendMode===t){this._isAdvanced&&this._renderableList.push(e);return}this._activeBlendMode=t,this._isAdvanced&&this._endAdvancedBlendMode(n),this._isAdvanced=!!H[t],this._isAdvanced&&(this._beginAdvancedBlendMode(n),this._renderableList.push(e))}_beginAdvancedBlendMode(e){this._renderer.renderPipes.batch.break(e);let t=this._activeBlendMode;if(!H[t]){ie(`Unable to assign BlendMode: '${t}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);return}let n=this._filterHash[t];n||(n=this._filterHash[t]=new x,n.filters=[new H[t]]);let r={renderPipeId:`filter`,action:`pushFilter`,renderables:[],filterEffect:n,canBundle:!1};this._renderableList=r.renderables,e.add(r)}_endAdvancedBlendMode(e){this._renderableList=null,this._renderer.renderPipes.batch.break(e),e.add({renderPipeId:`filter`,action:`popFilter`,canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(e){this._isAdvanced&&this._endAdvancedBlendMode(e)}destroy(){this._renderer=null,this._renderableList=null;for(let e in this._filterHash)this._filterHash[e].destroy();this._filterHash=null}};Je.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:`blendMode`};var U={png:`image/png`,jpg:`image/jpeg`,webp:`image/webp`},W=class e{constructor(e){this._renderer=e}_normalizeOptions(e,t={}){return e instanceof o||e instanceof s?{target:e,...t}:{...t,...e}}async image(e){let t=new Image;return t.src=await this.base64(e),t}async base64(t){t=this._normalizeOptions(t,e.defaultImageOptions);let{format:n,quality:r}=t,i=this.canvas(t);if(i.toBlob!==void 0)return new Promise((e,t)=>{i.toBlob(n=>{if(!n){t(Error(`ICanvas.toBlob failed!`));return}let r=new FileReader;r.onload=()=>e(r.result),r.onerror=t,r.readAsDataURL(n)},U[n],r)});if(i.toDataURL!==void 0)return i.toDataURL(U[n],r);if(i.convertToBlob!==void 0){let e=await i.convertToBlob({type:U[n],quality:r});return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=n,r.readAsDataURL(e)})}throw Error(`Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented`)}canvas(e){e=this._normalizeOptions(e);let t=e.target,n=this._renderer;if(t instanceof s)return n.texture.generateCanvas(t);let r=n.textureGenerator.generateTexture(e),i=n.texture.generateCanvas(r);return r.destroy(),i}pixels(e){e=this._normalizeOptions(e);let t=e.target,n=this._renderer,r=t instanceof s?t:n.textureGenerator.generateTexture(e),i=n.texture.getPixels(r);return t instanceof o&&r.destroy(),i}texture(e){return e=this._normalizeOptions(e),e.target instanceof s?e.target:this._renderer.textureGenerator.generateTexture(e)}download(e){e=this._normalizeOptions(e);let t=this.canvas(e),n=document.createElement(`a`);n.download=e.filename??`image.png`,n.href=t.toDataURL(`image/png`),document.body.appendChild(n),n.click(),document.body.removeChild(n)}log(e){let t=e.width??200;e=this._normalizeOptions(e);let n=this.canvas(e),r=n.toDataURL();console.log(`[Pixi Texture] ${n.width}px ${n.height}px`);let i=[`font-size: 1px;`,`padding: ${t}px 300px;`,`background: url(${r}) no-repeat;`,`background-size: contain;`].join(` `);console.log(`%c `,i)}destroy(){this._renderer=null}};W.extension={type:[_.WebGLSystem,_.WebGPUSystem],name:`extract`},W.defaultImageOptions={format:`png`,quality:1};var Ye=W,Xe=class e extends s{static create(n){return new e({source:new t(n)})}resize(e,t,n){return this.source.resize(e,t,n),this}},Ze=new g,Qe=new e,$e=[0,0,0,0],et=class{constructor(e){this._renderer=e}generateTexture(e){e instanceof o&&(e={target:e,frame:void 0,textureSourceOptions:{},resolution:void 0});let t=e.resolution||this._renderer.resolution,n=e.antialias||this._renderer.view.antialias,r=e.target,i=e.clearColor;i=i?Array.isArray(i)&&i.length===4?i:S.shared.setValue(i).toArray():$e;let s=e.frame?.copyTo(Ze)||a(r,Qe).rectangle;s.width=Math.max(s.width,1/t)|0,s.height=Math.max(s.height,1/t)|0;let c=Xe.create({...e.textureSourceOptions,width:s.width,height:s.height,resolution:t,antialias:n}),l=h.shared.translate(-s.x,-s.y);return this._renderer.render({container:r,transform:l,target:c,clearColor:i}),c.source.updateMipmaps(),c}destroy(){this._renderer=null}};et.extension={type:[_.WebGLSystem,_.WebGPUSystem],name:`textureGenerator`};var tt=class{constructor(e){this._stackIndex=0,this._globalUniformDataStack=[],this._uniformsPool=[],this._activeUniforms=[],this._bindGroupPool=[],this._activeBindGroups=[],this._renderer=e}reset(){this._stackIndex=0;for(let e=0;e<this._activeUniforms.length;e++)this._uniformsPool.push(this._activeUniforms[e]);for(let e=0;e<this._activeBindGroups.length;e++)this._bindGroupPool.push(this._activeBindGroups[e]);this._activeUniforms.length=0,this._activeBindGroups.length=0}start(e){this.reset(),this.push(e)}bind({size:e,projectionMatrix:t,worldTransformMatrix:n,worldColor:r,offset:i}){let a=this._renderer.renderTarget.renderTarget,o=this._stackIndex?this._globalUniformDataStack[this._stackIndex-1]:{projectionData:a,worldTransformMatrix:new h,worldColor:4294967295,offset:new de},s={projectionMatrix:t||this._renderer.renderTarget.projectionMatrix,resolution:e||a.size,worldTransformMatrix:n||o.worldTransformMatrix,worldColor:r||o.worldColor,offset:i||o.offset,bindGroup:null},l=this._uniformsPool.pop()||this._createUniforms();this._activeUniforms.push(l);let u=l.uniforms;u.uProjectionMatrix=s.projectionMatrix,u.uResolution=s.resolution,u.uWorldTransformMatrix.copyFrom(s.worldTransformMatrix),u.uWorldTransformMatrix.tx-=s.offset.x,u.uWorldTransformMatrix.ty-=s.offset.y,he(s.worldColor,u.uWorldColorAlpha,0),l.update();let d;this._renderer.renderPipes.uniformBatch?d=this._renderer.renderPipes.uniformBatch.getUniformBindGroup(l,!1):(d=this._bindGroupPool.pop()||new c,this._activeBindGroups.push(d),d.setResource(l,0)),s.bindGroup=d,this._currentGlobalUniformData=s}push(e){this.bind(e),this._globalUniformDataStack[this._stackIndex++]=this._currentGlobalUniformData}pop(){this._currentGlobalUniformData=this._globalUniformDataStack[--this._stackIndex-1],this._renderer.type===m.WEBGL&&this._currentGlobalUniformData.bindGroup.resources[0].update()}get bindGroup(){return this._currentGlobalUniformData.bindGroup}get uniformGroup(){return this._currentGlobalUniformData.bindGroup.resources[0]}_createUniforms(){return new ge({uProjectionMatrix:{value:new h,type:`mat3x3<f32>`},uWorldTransformMatrix:{value:new h,type:`mat3x3<f32>`},uWorldColorAlpha:{value:new Float32Array(4),type:`vec4<f32>`},uResolution:{value:[0,0],type:`vec2<f32>`}},{isStatic:!0})}destroy(){this._renderer=null}};tt.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:`globalUniforms`};var nt=1,rt=class{constructor(){this._tasks=[]}init(){ne.system.add(this._update,this)}repeat(e,t){let n=nt++;return this._tasks.push({func:e,duration:t,start:performance.now(),last:performance.now(),repeat:!0,id:n}),n}cancel(e){for(let t=0;t<this._tasks.length;t++)if(this._tasks[t].id===e){this._tasks.splice(t,1);return}}_update(){let e=performance.now();for(let t=0;t<this._tasks.length;t++){let n=this._tasks[t];if(e-n.last>=n.duration){let t=e-n.start;n.func(t),n.last=e}}}destroy(){ne.system.remove(this._update,this),this._tasks.length=0}};rt.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:`scheduler`,priority:0};var it=!1,at=`8.3.4`;function ot(e){if(!it){if(te.get().getNavigator().userAgent.toLowerCase().indexOf(`chrome`)>-1){let t=[`%c %c %c %c %c PixiJS %c v${at} (${e}) http://www.pixijs.com/
|
|
191
|
+
|
|
192
|
+
`,`background: #E72264; padding:5px 0;`,`background: #6CA2EA; padding:5px 0;`,`background: #B5D33D; padding:5px 0;`,`background: #FED23F; padding:5px 0;`,`color: #FFFFFF; background: #E72264; padding:5px 0;`,`color: #E72264; background: #FFFFFF; padding:5px 0;`];globalThis.console.log(...t)}else globalThis.console&&globalThis.console.log(`PixiJS ${at} - ${e} - http://www.pixijs.com/`);it=!0}}var G=class{constructor(e){this._renderer=e}init(e){if(e.hello){let e=this._renderer.name;this._renderer.type===m.WEBGL&&(e+=` ${this._renderer.context.webGLVersion}`),ot(e)}}};G.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:`hello`,priority:-2},G.defaultOptions={hello:!1};var K=class e{constructor(e){this._managedRenderables=[],this._renderer=e}init(t){t={...e.defaultOptions,...t},this.maxUnusedTime=t.renderableGCMaxUnusedTime,this._frequency=t.renderableGCFrequency,this.enabled=t.renderableGCActive}get enabled(){return!!this._handler}set enabled(e){this.enabled!==e&&(e?this._handler=this._renderer.scheduler.repeat(()=>this.run(),this._frequency):this._renderer.scheduler.cancel(this._handler))}prerender(){this._now=performance.now()}addRenderable(e,t){this.enabled&&(e._lastUsed=this._now,e._lastInstructionTick===-1&&(this._managedRenderables.push(e),e.once(`destroyed`,this._removeRenderable,this)),e._lastInstructionTick=t.tick)}run(){let e=performance.now(),t=this._managedRenderables,n=this._renderer.renderPipes,r=0;for(let i=0;i<t.length;i++){let a=t[i];if(a===null){r++;continue}let o=(a.renderGroup??a.parentRenderGroup)?.instructionSet?.tick??-1;a._lastInstructionTick!==o&&e-a._lastUsed>this.maxUnusedTime?(a.destroyed||n[a.renderPipeId].destroyRenderable(a),a._lastInstructionTick=-1,r++,a.off(`destroyed`,this._removeRenderable,this)):t[i-r]=a}t.length-=r}destroy(){this.enabled=!1,this._renderer=null,this._managedRenderables.length=0}_removeRenderable(e){let t=this._managedRenderables.indexOf(e);t>=0&&(e.off(`destroyed`,this._removeRenderable,this),this._managedRenderables[t]=null)}};K.extension={type:[_.WebGLSystem,_.WebGPUSystem],name:`renderableGC`},K.defaultOptions={renderableGCActive:!0,renderableGCMaxUnusedTime:6e4,renderableGCFrequency:3e4};var st=K,q=class e{constructor(e){this._renderer=e,this.count=0,this.checkCount=0}init(t){t={...e.defaultOptions,...t},this.checkCountMax=t.textureGCCheckCountMax,this.maxIdle=t.textureGCAMaxIdle??t.textureGCMaxIdle,this.active=t.textureGCActive}postrender(){this._renderer.renderingToScreen&&(this.count++,this.active&&(this.checkCount++,this.checkCount>this.checkCountMax&&(this.checkCount=0,this.run())))}run(){let e=this._renderer.texture.managedTextures;for(let t=0;t<e.length;t++){let n=e[t];n.autoGarbageCollect&&n.resource&&n._touched>-1&&this.count-n._touched>this.maxIdle&&(n._touched=-1,n.unload())}}destroy(){this._renderer=null}};q.extension={type:[_.WebGLSystem,_.WebGPUSystem],name:`textureGC`},q.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:null,textureGCMaxIdle:3600,textureGCCheckCountMax:600};var ct=q,lt=class e{constructor(n={}){if(this.uid=y(`renderTarget`),this.colorTextures=[],this.dirtyId=0,this.isRoot=!1,this._size=new Float32Array(2),this._managedColorTextures=!1,n={...e.defaultOptions,...n},this.stencil=n.stencil,this.depth=n.depth,this.isRoot=n.isRoot,typeof n.colorTextures==`number`){this._managedColorTextures=!0;for(let e=0;e<n.colorTextures;e++)this.colorTextures.push(new t({width:n.width,height:n.height,resolution:n.resolution,antialias:n.antialias}))}else{this.colorTextures=[...n.colorTextures.map(e=>e.source)];let e=this.colorTexture.source;this.resize(e.width,e.height,e._resolution)}this.colorTexture.source.on(`resize`,this.onSourceResize,this),(n.depthStencilTexture||this.stencil)&&(n.depthStencilTexture instanceof s||n.depthStencilTexture instanceof t?this.depthStencilTexture=n.depthStencilTexture.source:this.ensureDepthStencilTexture())}get size(){let e=this._size;return e[0]=this.pixelWidth,e[1]=this.pixelHeight,e}get width(){return this.colorTexture.source.width}get height(){return this.colorTexture.source.height}get pixelWidth(){return this.colorTexture.source.pixelWidth}get pixelHeight(){return this.colorTexture.source.pixelHeight}get resolution(){return this.colorTexture.source._resolution}get colorTexture(){return this.colorTextures[0]}onSourceResize(e){this.resize(e.width,e.height,e._resolution,!0)}ensureDepthStencilTexture(){this.depthStencilTexture||=new t({width:this.width,height:this.height,resolution:this.resolution,format:`depth24plus-stencil8`,autoGenerateMipmaps:!1,antialias:!1,mipLevelCount:1})}resize(e,t,n=this.resolution,r=!1){this.dirtyId++,this.colorTextures.forEach((i,a)=>{r&&a===0||i.source.resize(e,t,n)}),this.depthStencilTexture&&this.depthStencilTexture.source.resize(e,t,n)}destroy(){this.colorTexture.source.off(`resize`,this.onSourceResize,this),this._managedColorTextures&&this.colorTextures.forEach(e=>{e.destroy()}),this.depthStencilTexture&&(this.depthStencilTexture.destroy(),delete this.depthStencilTexture)}};lt.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};var J=lt,Y=new Map;function ut(e,t){if(!Y.has(e)){let n=new s({source:new l({resource:e,...t})}),r=()=>{Y.get(e)===n&&Y.delete(e)};n.once(`destroy`,r),n.source.once(`destroy`,r),Y.set(e,n)}return Y.get(e)}var X=class e{get autoDensity(){return this.texture.source.autoDensity}set autoDensity(e){this.texture.source.autoDensity=e}get resolution(){return this.texture.source._resolution}set resolution(e){this.texture.source.resize(this.texture.source.width,this.texture.source.height,e)}init(t){t={...e.defaultOptions,...t},t.view&&(ue(ae,`ViewSystem.view has been renamed to ViewSystem.canvas`),t.canvas=t.view),this.screen=new g(0,0,t.width,t.height),this.canvas=t.canvas||te.get().createCanvas(),this.antialias=!!t.antialias,this.texture=ut(this.canvas,t),this.renderTarget=new J({colorTextures:[this.texture],depth:!!t.depth,isRoot:!0}),this.texture.source.transparent=t.backgroundAlpha<1,this.multiView=!!t.multiView,this.resolution=t.resolution}resize(e,t,n){this.texture.source.resize(e,t,n),this.screen.width=this.texture.frame.width,this.screen.height=this.texture.frame.height}destroy(e=!1){(typeof e==`boolean`?e:e?.removeView)&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas)}};X.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:`view`,priority:0},X.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};var dt=[qe,tt,G,X,z,ct,et,Ye,Pe,st,rt],ft=[Je,Fe,Ne,O,We,Ke,Ge,E];function pt(e,t){for(let n in e.attributes){let r=e.attributes[n],i=t[n];i?(r.format??=i.format,r.offset??=i.offset,r.instance??=i.instance):ie(`Attribute ${n} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}mt(e)}function mt(e){let{buffers:t,attributes:n}=e,r={},i={};for(let e in t){let n=t[e];r[n.uid]=0,i[n.uid]=0}for(let e in n){let t=n[e];r[t.buffer.uid]+=ce(t.format).stride}for(let e in n){let t=n[e];t.stride??=r[t.buffer.uid],t.start??=i[t.buffer.uid],i[t.buffer.uid]+=ce(t.format).stride}}var Z=[];Z[v.NONE]=void 0,Z[v.DISABLED]={stencilWriteMask:0,stencilReadMask:0},Z[v.RENDERING_MASK_ADD]={stencilFront:{compare:`equal`,passOp:`increment-clamp`},stencilBack:{compare:`equal`,passOp:`increment-clamp`}},Z[v.RENDERING_MASK_REMOVE]={stencilFront:{compare:`equal`,passOp:`decrement-clamp`},stencilBack:{compare:`equal`,passOp:`decrement-clamp`}},Z[v.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:`equal`,passOp:`keep`},stencilBack:{compare:`equal`,passOp:`keep`}};var ht=class{constructor(e){this._syncFunctionHash=Object.create(null),this._adaptor=e,this._systemCheck()}_systemCheck(){if(!be())throw Error(`Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.`)}ensureUniformGroup(e){let t=this.getUniformGroupData(e);e.buffer||=new ee({data:new Float32Array(t.layout.size/4),usage:i.UNIFORM|i.COPY_DST})}getUniformGroupData(e){return this._syncFunctionHash[e._signature]||this._initUniformGroup(e)}_initUniformGroup(e){let t=e._signature,n=this._syncFunctionHash[t];if(!n){let r=Object.keys(e.uniformStructures).map(t=>e.uniformStructures[t]),i=this._adaptor.createUboElements(r),a=this._generateUboSync(i.uboElements);n=this._syncFunctionHash[t]={layout:i,syncFunction:a}}return this._syncFunctionHash[t]}_generateUboSync(e){return this._adaptor.generateUboSync(e)}syncUniformGroup(e,t,n){let r=this.getUniformGroupData(e);return e.buffer||=new ee({data:new Float32Array(r.layout.size/4),usage:i.UNIFORM|i.COPY_DST}),t||=e.buffer.data,n||=0,r.syncFunction(e.uniforms,t,n),!0}updateUniformGroup(e){if(e.isStatic&&!e._dirtyId)return!1;e._dirtyId=0;let t=this.syncUniformGroup(e);return e.buffer.update(),t}destroy(){this._syncFunctionHash=null}},Q=[{type:`mat3x3<f32>`,test:e=>e.value.a!==void 0,ubo:`
|
|
193
|
+
var matrix = uv[name].toArray(true);
|
|
194
|
+
data[offset] = matrix[0];
|
|
195
|
+
data[offset + 1] = matrix[1];
|
|
196
|
+
data[offset + 2] = matrix[2];
|
|
197
|
+
data[offset + 4] = matrix[3];
|
|
198
|
+
data[offset + 5] = matrix[4];
|
|
199
|
+
data[offset + 6] = matrix[5];
|
|
200
|
+
data[offset + 8] = matrix[6];
|
|
201
|
+
data[offset + 9] = matrix[7];
|
|
202
|
+
data[offset + 10] = matrix[8];
|
|
203
|
+
`,uniform:`
|
|
204
|
+
gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true));
|
|
205
|
+
`},{type:`vec4<f32>`,test:e=>e.type===`vec4<f32>`&&e.size===1&&e.value.width!==void 0,ubo:`
|
|
206
|
+
v = uv[name];
|
|
207
|
+
data[offset] = v.x;
|
|
208
|
+
data[offset + 1] = v.y;
|
|
209
|
+
data[offset + 2] = v.width;
|
|
210
|
+
data[offset + 3] = v.height;
|
|
211
|
+
`,uniform:`
|
|
212
|
+
cv = ud[name].value;
|
|
213
|
+
v = uv[name];
|
|
214
|
+
if (cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height) {
|
|
215
|
+
cv[0] = v.x;
|
|
216
|
+
cv[1] = v.y;
|
|
217
|
+
cv[2] = v.width;
|
|
218
|
+
cv[3] = v.height;
|
|
219
|
+
gl.uniform4f(ud[name].location, v.x, v.y, v.width, v.height);
|
|
220
|
+
}
|
|
221
|
+
`},{type:`vec2<f32>`,test:e=>e.type===`vec2<f32>`&&e.size===1&&e.value.x!==void 0,ubo:`
|
|
222
|
+
v = uv[name];
|
|
223
|
+
data[offset] = v.x;
|
|
224
|
+
data[offset + 1] = v.y;
|
|
225
|
+
`,uniform:`
|
|
226
|
+
cv = ud[name].value;
|
|
227
|
+
v = uv[name];
|
|
228
|
+
if (cv[0] !== v.x || cv[1] !== v.y) {
|
|
229
|
+
cv[0] = v.x;
|
|
230
|
+
cv[1] = v.y;
|
|
231
|
+
gl.uniform2f(ud[name].location, v.x, v.y);
|
|
232
|
+
}
|
|
233
|
+
`},{type:`vec4<f32>`,test:e=>e.type===`vec4<f32>`&&e.size===1&&e.value.red!==void 0,ubo:`
|
|
234
|
+
v = uv[name];
|
|
235
|
+
data[offset] = v.red;
|
|
236
|
+
data[offset + 1] = v.green;
|
|
237
|
+
data[offset + 2] = v.blue;
|
|
238
|
+
data[offset + 3] = v.alpha;
|
|
239
|
+
`,uniform:`
|
|
240
|
+
cv = ud[name].value;
|
|
241
|
+
v = uv[name];
|
|
242
|
+
if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha) {
|
|
243
|
+
cv[0] = v.red;
|
|
244
|
+
cv[1] = v.green;
|
|
245
|
+
cv[2] = v.blue;
|
|
246
|
+
cv[3] = v.alpha;
|
|
247
|
+
gl.uniform4f(ud[name].location, v.red, v.green, v.blue, v.alpha);
|
|
248
|
+
}
|
|
249
|
+
`},{type:`vec3<f32>`,test:e=>e.type===`vec3<f32>`&&e.size===1&&e.value.red!==void 0,ubo:`
|
|
250
|
+
v = uv[name];
|
|
251
|
+
data[offset] = v.red;
|
|
252
|
+
data[offset + 1] = v.green;
|
|
253
|
+
data[offset + 2] = v.blue;
|
|
254
|
+
`,uniform:`
|
|
255
|
+
cv = ud[name].value;
|
|
256
|
+
v = uv[name];
|
|
257
|
+
if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue) {
|
|
258
|
+
cv[0] = v.red;
|
|
259
|
+
cv[1] = v.green;
|
|
260
|
+
cv[2] = v.blue;
|
|
261
|
+
gl.uniform3f(ud[name].location, v.red, v.green, v.blue);
|
|
262
|
+
}
|
|
263
|
+
`}];function gt(e,t,n,r){let i=[`
|
|
264
|
+
var v = null;
|
|
265
|
+
var v2 = null;
|
|
266
|
+
var t = 0;
|
|
267
|
+
var index = 0;
|
|
268
|
+
var name = null;
|
|
269
|
+
var arrayOffset = null;
|
|
270
|
+
`],a=0;for(let o=0;o<e.length;o++){let s=e[o],c=s.data.name,l=!1,u=0;for(let e=0;e<Q.length;e++)if(Q[e].test(s.data)){u=s.offset/4,i.push(`name = "${c}";`,`offset += ${u-a};`,Q[e][t]||Q[e].ubo),l=!0;break}if(!l)if(s.data.size>1)u=s.offset/4,i.push(n(s,u-a));else{let e=r[s.data.type];u=s.offset/4,i.push(`
|
|
271
|
+
v = uv.${c};
|
|
272
|
+
offset += ${u-a};
|
|
273
|
+
${e};
|
|
274
|
+
`)}a=u}let o=i.join(`
|
|
275
|
+
`);return Function(`uv`,`data`,`offset`,o)}function $(e,t){return`
|
|
276
|
+
for (let i = 0; i < ${e*t}; i++) {
|
|
277
|
+
data[offset + (((i / ${e})|0) * 4) + (i % ${e})] = v[i];
|
|
278
|
+
}
|
|
279
|
+
`}var _t={f32:`
|
|
280
|
+
data[offset] = v;`,i32:`
|
|
281
|
+
data[offset] = v;`,"vec2<f32>":`
|
|
282
|
+
data[offset] = v[0];
|
|
283
|
+
data[offset + 1] = v[1];`,"vec3<f32>":`
|
|
284
|
+
data[offset] = v[0];
|
|
285
|
+
data[offset + 1] = v[1];
|
|
286
|
+
data[offset + 2] = v[2];`,"vec4<f32>":`
|
|
287
|
+
data[offset] = v[0];
|
|
288
|
+
data[offset + 1] = v[1];
|
|
289
|
+
data[offset + 2] = v[2];
|
|
290
|
+
data[offset + 3] = v[3];`,"mat2x2<f32>":`
|
|
291
|
+
data[offset] = v[0];
|
|
292
|
+
data[offset + 1] = v[1];
|
|
293
|
+
data[offset + 4] = v[2];
|
|
294
|
+
data[offset + 5] = v[3];`,"mat3x3<f32>":`
|
|
295
|
+
data[offset] = v[0];
|
|
296
|
+
data[offset + 1] = v[1];
|
|
297
|
+
data[offset + 2] = v[2];
|
|
298
|
+
data[offset + 4] = v[3];
|
|
299
|
+
data[offset + 5] = v[4];
|
|
300
|
+
data[offset + 6] = v[5];
|
|
301
|
+
data[offset + 8] = v[6];
|
|
302
|
+
data[offset + 9] = v[7];
|
|
303
|
+
data[offset + 10] = v[8];`,"mat4x4<f32>":`
|
|
304
|
+
for (let i = 0; i < 16; i++) {
|
|
305
|
+
data[offset + i] = v[i];
|
|
306
|
+
}`,"mat3x2<f32>":$(3,2),"mat4x2<f32>":$(4,2),"mat2x3<f32>":$(2,3),"mat4x3<f32>":$(4,3),"mat2x4<f32>":$(2,4),"mat3x4<f32>":$(3,4)},vt={..._t,"mat2x2<f32>":`
|
|
307
|
+
data[offset] = v[0];
|
|
308
|
+
data[offset + 1] = v[1];
|
|
309
|
+
data[offset + 2] = v[2];
|
|
310
|
+
data[offset + 3] = v[3];
|
|
311
|
+
`};function yt(e,t,n,r,i,a){let o=a?1:-1;return e.identity(),e.a=1/r*2,e.d=o*(1/i*2),e.tx=-1-t*e.a,e.ty=-o-n*e.d,e}function bt(e){let t=e.colorTexture.source.resource;return globalThis.HTMLCanvasElement&&t instanceof HTMLCanvasElement&&document.body.contains(t)}var xt=class{constructor(e){this.rootViewPort=new g,this.viewport=new g,this.onRenderTargetChange=new xe(`onRenderTargetChange`),this.projectionMatrix=new h,this.defaultClearColor=[0,0,0,0],this._renderSurfaceToRenderTargetHash=new Map,this._gpuRenderTargetHash=Object.create(null),this._renderTargetStack=[],this._renderer=e}finishRenderPass(){this.adaptor.finishRenderPass(this.renderTarget)}renderStart({target:e,clear:t,clearColor:n,frame:r}){this._renderTargetStack.length=0,this.push(e,t,n,r),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=bt(this.rootRenderTarget)}bind(e,t=!0,n,r){let i=this.getRenderTarget(e),a=this.renderTarget!==i;this.renderTarget=i,this.renderSurface=e;let o=this.getGpuRenderTarget(i);(i.pixelWidth!==o.width||i.pixelHeight!==o.height)&&(this.adaptor.resizeGpuRenderTarget(i),o.width=i.pixelWidth,o.height=i.pixelHeight);let c=i.colorTexture,l=this.viewport,u=c.pixelWidth,d=c.pixelHeight;if(!r&&e instanceof s&&(r=e.frame),r){let e=c._resolution;l.x=r.x*e+.5|0,l.y=r.y*e+.5|0,l.width=r.width*e+.5|0,l.height=r.height*e+.5|0}else l.x=0,l.y=0,l.width=u,l.height=d;return yt(this.projectionMatrix,0,0,l.width/c.resolution,l.height/c.resolution,!i.isRoot),this.adaptor.startRenderPass(i,t,n,l),a&&this.onRenderTargetChange.emit(i),i}clear(e,t=T.ALL,n){t&&(e&&=this.getRenderTarget(e),this.adaptor.clear(e||this.renderTarget,t,n,this.viewport))}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(e,t=T.ALL,n,r){let i=this.bind(e,t,n,r);return this._renderTargetStack.push({renderTarget:i,frame:r}),i}pop(){this._renderTargetStack.pop();let e=this._renderTargetStack[this._renderTargetStack.length-1];this.bind(e.renderTarget,!1,null,e.frame)}getRenderTarget(e){return e.isTexture&&(e=e.source),this._renderSurfaceToRenderTargetHash.get(e)??this._initRenderTarget(e)}copyToTexture(e,t,n,r,i){n.x<0&&(r.width+=n.x,i.x-=n.x,n.x=0),n.y<0&&(r.height+=n.y,i.y-=n.y,n.y=0);let{pixelWidth:a,pixelHeight:o}=e;return r.width=Math.min(r.width,a-n.x),r.height=Math.min(r.height,o-n.y),this.adaptor.copyToTexture(e,t,n,r,i)}ensureDepthStencil(){this.renderTarget.stencil||(this.renderTarget.stencil=!0,this.adaptor.startRenderPass(this.renderTarget,!1,null,this.viewport))}destroy(){this._renderer=null,this._renderSurfaceToRenderTargetHash.forEach((e,t)=>{e!==t&&e.destroy()}),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(e){let n=null;return l.test(e)&&(e=ut(e).source),e instanceof J?n=e:e instanceof t&&(n=new J({colorTextures:[e]}),l.test(e.source.resource)&&(n.isRoot=!0),e.once(`destroy`,()=>{n.destroy(),this._renderSurfaceToRenderTargetHash.delete(e);let t=this._gpuRenderTargetHash[n.uid];t&&(this._gpuRenderTargetHash[n.uid]=null,this.adaptor.destroyGpuRenderTarget(t))})),this._renderSurfaceToRenderTargetHash.set(e,n),n}getGpuRenderTarget(e){return this._gpuRenderTargetHash[e.uid]||(this._gpuRenderTargetHash[e.uid]=this.adaptor.initGpuRenderTarget(e))}},St=class extends oe{constructor({buffer:e,offset:t,size:n}){super(),this.uid=y(`buffer`),this._resourceType=`bufferResource`,this._touched=0,this._resourceId=y(`resource`),this._bufferResource=!0,this.destroyed=!1,this.buffer=e,this.offset=t|0,this.size=n,this.buffer.on(`change`,this.onBufferChange,this)}onBufferChange(){this._resourceId=y(`resource`),this.emit(`change`,this)}destroy(e=!1){this.destroyed=!0,e&&this.buffer.destroy(),this.emit(`change`,this),this.buffer=null}};export{gt as a,Z as c,dt as d,B as f,ve as g,_e as h,vt as i,pt as l,T as m,xt as n,Q as o,we as p,_t as r,ht as s,St as t,ft as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{H as e,L as t,M as n,U as r,j as i}from"./localUniformBit-BnogyqF-.js";var a={};function o(e,t){let n=2166136261;for(let r=0;r<t;r++)n^=e[r].uid,n=Math.imul(n,16777619),n>>>=0;return a[n]||c(e,t,n)}var s=0;function c(e,r,o){let c={},l=0;s||=i();for(let n=0;n<s;n++){let i=n<r?e[n]:t.EMPTY.source;c[l++]=i.source,c[l++]=i.style}let u=new n(c);return a[o]=u,u}var l=new class{constructor(e){this._canvasPool=Object.create(null),this.canvasOptions=e||{},this.enableFullScreen=!1}_createCanvasAndContext(e,t){let n=r.get().createCanvas();return n.width=e,n.height=t,{canvas:n,context:n.getContext(`2d`)}}getOptimalCanvasAndContext(t,n,r=1){t=Math.ceil(t*r-1e-6),n=Math.ceil(n*r-1e-6),t=e(t),n=e(n);let i=(t<<17)+(n<<1);this._canvasPool[i]||(this._canvasPool[i]=[]);let a=this._canvasPool[i].pop();return a||=this._createCanvasAndContext(t,n),a}returnCanvasAndContext(e){let{width:t,height:n}=e.canvas,r=(t<<17)+(n<<1);this._canvasPool[r].push(e)}clear(){this._canvasPool={}}};export{o as n,l as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{G as e,W as t,Y as n,dt as r,ft as i,lt as a,nt as o}from"./localUniformBit-BnogyqF-.js";var s=class e{constructor(t){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=e.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new a,this.page=new a,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=t}get layerX(){return this.layer.x}get layerY(){return this.layer.y}get pageX(){return this.page.x}get pageY(){return this.page.y}get data(){return this}composedPath(){return this.manager&&(!this.path||this.path[this.path.length-1]!==this.target)&&(this.path=this.target?this.manager.propagationPath(this.target):[]),this.path}initEvent(e,t,n){throw Error(`initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.`)}initUIEvent(e,t,n,r,i){throw Error(`initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.`)}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}},c=/iPhone/i,l=/iPod/i,u=/iPad/i,d=/\biOS-universal(?:.+)Mac\b/i,f=/\bAndroid(?:.+)Mobile\b/i,p=/Android/i,m=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,h=/Silk/i,g=/Windows Phone/i,_=/\bWindows(?:.+)ARM\b/i,v=/BlackBerry/i,y=/BB10/i,b=/Opera Mini/i,x=/\b(CriOS|Chrome)(?:.+)Mobile/i,S=/Mobile(?:.+)Firefox\b/i,C=function(e){return e!==void 0&&e.platform===`MacIntel`&&typeof e.maxTouchPoints==`number`&&e.maxTouchPoints>1&&typeof MSStream>`u`};function w(e){return function(t){return t.test(e)}}function T(e){var t={userAgent:``,platform:``,maxTouchPoints:0};!e&&typeof navigator<`u`?t={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof e==`string`?t.userAgent=e:e&&e.userAgent&&(t={userAgent:e.userAgent,platform:e.platform,maxTouchPoints:e.maxTouchPoints||0});var n=t.userAgent,r=n.split(`[FBAN`);r[1]!==void 0&&(n=r[0]),r=n.split(`Twitter`),r[1]!==void 0&&(n=r[0]);var i=w(n),a={apple:{phone:i(c)&&!i(g),ipod:i(l),tablet:!i(c)&&(i(u)||C(t))&&!i(g),universal:i(d),device:(i(c)||i(l)||i(u)||i(d)||C(t))&&!i(g)},amazon:{phone:i(m),tablet:!i(m)&&i(h),device:i(m)||i(h)},android:{phone:!i(g)&&i(m)||!i(g)&&i(f),tablet:!i(g)&&!i(m)&&!i(f)&&(i(h)||i(p)),device:!i(g)&&(i(m)||i(h)||i(f)||i(p))||i(/\bokhttp\b/i)},windows:{phone:i(g),tablet:i(_),device:i(g)||i(_)},other:{blackberry:i(v),blackberry10:i(y),opera:i(b),firefox:i(S),chrome:i(x),device:i(v)||i(y)||i(b)||i(S)||i(x)},any:!1,phone:!1,tablet:!1};return a.any=a.apple.device||a.android.device||a.windows.device||a.other.device,a.phone=a.apple.phone||a.android.phone||a.windows.phone,a.tablet=a.apple.tablet||a.android.tablet||a.windows.tablet,a}var E=(T.default??T)(globalThis.navigator),D=9,O=100,k=0,A=0,j=2,M=1,N=-1e3,P=-1e3,F=2,I=class{constructor(e,t=E){this._mobileInfo=t,this.debug=!1,this._isActive=!1,this._isMobileAccessibility=!1,this._pool=[],this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._hookDiv=null,(t.tablet||t.phone)&&this._createTouchHook();let n=document.createElement(`div`);n.style.width=`${O}px`,n.style.height=`${O}px`,n.style.position=`absolute`,n.style.top=`${k}px`,n.style.left=`${A}px`,n.style.zIndex=j.toString(),this._div=n,this._renderer=e,this._onKeyDown=this._onKeyDown.bind(this),this._onMouseMove=this._onMouseMove.bind(this),globalThis.addEventListener(`keydown`,this._onKeyDown,!1)}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}_createTouchHook(){let e=document.createElement(`button`);e.style.width=`${M}px`,e.style.height=`${M}px`,e.style.position=`absolute`,e.style.top=`${N}px`,e.style.left=`${P}px`,e.style.zIndex=F.toString(),e.style.backgroundColor=`#FF0000`,e.title=`select to enable accessibility for this content`,e.addEventListener(`focus`,()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(e),this._hookDiv=e}_destroyTouchHook(){this._hookDiv&&=(document.body.removeChild(this._hookDiv),null)}_activate(){this._isActive||(this._isActive=!0,globalThis.document.addEventListener(`mousemove`,this._onMouseMove,!0),globalThis.removeEventListener(`keydown`,this._onKeyDown,!1),this._renderer.runners.postrender.add(this),this._renderer.view.canvas.parentNode?.appendChild(this._div))}_deactivate(){!this._isActive||this._isMobileAccessibility||(this._isActive=!1,globalThis.document.removeEventListener(`mousemove`,this._onMouseMove,!0),globalThis.addEventListener(`keydown`,this._onKeyDown,!1),this._renderer.runners.postrender.remove(this),this._div.parentNode?.removeChild(this._div))}_updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&e.isInteractive()&&(e._accessibleActive||this._addChild(e),e._renderId=this._renderId);let t=e.children;if(t)for(let e=0;e<t.length;e++)this._updateAccessibleObjects(t[e])}init(e){this.debug=e?.debug??this.debug,this._renderer.runners.postrender.remove(this)}postrender(){let e=performance.now();if(this._mobileInfo.android.device&&e<this._androidUpdateCount||(this._androidUpdateCount=e+this._androidUpdateFrequency,!this._renderer.renderingToScreen||!this._renderer.view.canvas))return;this._renderer.lastObjectRendered&&this._updateAccessibleObjects(this._renderer.lastObjectRendered);let{x:t,y:n,width:r,height:i}=this._renderer.view.canvas.getBoundingClientRect(),{width:a,height:s,resolution:c}=this._renderer,l=r/a*c,u=i/s*c,d=this._div;d.style.left=`${t}px`,d.style.top=`${n}px`,d.style.width=`${a}px`,d.style.height=`${s}px`;for(let e=0;e<this._children.length;e++){let t=this._children[e];if(t._renderId!==this._renderId)t._accessibleActive=!1,o(this._children,e,1),this._div.removeChild(t._accessibleDiv),this._pool.push(t._accessibleDiv),t._accessibleDiv=null,e--;else{d=t._accessibleDiv;let e=t.hitArea,n=t.worldTransform;t.hitArea?(d.style.left=`${(n.tx+e.x*n.a)*l}px`,d.style.top=`${(n.ty+e.y*n.d)*u}px`,d.style.width=`${e.width*n.a*l}px`,d.style.height=`${e.height*n.d*u}px`):(e=t.getBounds().rectangle,this._capHitArea(e),d.style.left=`${e.x*l}px`,d.style.top=`${e.y*u}px`,d.style.width=`${e.width*l}px`,d.style.height=`${e.height*u}px`,d.title!==t.accessibleTitle&&t.accessibleTitle!==null&&(d.title=t.accessibleTitle||``),d.getAttribute(`aria-label`)!==t.accessibleHint&&t.accessibleHint!==null&&d.setAttribute(`aria-label`,t.accessibleHint||``)),(t.accessibleTitle!==d.title||t.tabIndex!==d.tabIndex)&&(d.title=t.accessibleTitle||``,d.tabIndex=t.tabIndex,this.debug&&this._updateDebugHTML(d))}}this._renderId++}_updateDebugHTML(e){e.innerHTML=`type: ${e.type}</br> title : ${e.title}</br> tabIndex: ${e.tabIndex}`}_capHitArea(e){e.x<0&&(e.width+=e.x,e.x=0),e.y<0&&(e.height+=e.y,e.y=0);let{width:t,height:n}=this._renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>n&&(e.height=n-e.y)}_addChild(e){let t=this._pool.pop();t||(t=document.createElement(`button`),t.style.width=`${O}px`,t.style.height=`${O}px`,t.style.backgroundColor=this.debug?`rgba(255,255,255,0.5)`:`transparent`,t.style.position=`absolute`,t.style.zIndex=j.toString(),t.style.borderStyle=`none`,navigator.userAgent.toLowerCase().includes(`chrome`)?t.setAttribute(`aria-live`,`off`):t.setAttribute(`aria-live`,`polite`),navigator.userAgent.match(/rv:.*Gecko\//)?t.setAttribute(`aria-relevant`,`additions`):t.setAttribute(`aria-relevant`,`text`),t.addEventListener(`click`,this._onClick.bind(this)),t.addEventListener(`focus`,this._onFocus.bind(this)),t.addEventListener(`focusout`,this._onFocusOut.bind(this))),t.style.pointerEvents=e.accessiblePointerEvents,t.type=e.accessibleType,e.accessibleTitle&&e.accessibleTitle!==null?t.title=e.accessibleTitle:(!e.accessibleHint||e.accessibleHint===null)&&(t.title=`container ${e.tabIndex}`),e.accessibleHint&&e.accessibleHint!==null&&t.setAttribute(`aria-label`,e.accessibleHint),this.debug&&this._updateDebugHTML(t),e._accessibleActive=!0,e._accessibleDiv=t,t.container=e,this._children.push(e),this._div.appendChild(e._accessibleDiv),e._accessibleDiv.tabIndex=e.tabIndex}_dispatchEvent(e,t){let{container:n}=e.target,r=this._renderer.events.rootBoundary,i=Object.assign(new s(r),{target:n});r.rootTarget=this._renderer.lastObjectRendered,t.forEach(e=>r.dispatchEvent(i,e))}_onClick(e){this._dispatchEvent(e,[`click`,`pointertap`,`tap`])}_onFocus(e){e.target.getAttribute(`aria-live`)||e.target.setAttribute(`aria-live`,`assertive`),this._dispatchEvent(e,[`mouseover`])}_onFocusOut(e){e.target.getAttribute(`aria-live`)||e.target.setAttribute(`aria-live`,`polite`),this._dispatchEvent(e,[`mouseout`])}_onKeyDown(e){e.keyCode===D&&this._activate()}_onMouseMove(e){e.movementX===0&&e.movementY===0||this._deactivate()}destroy(){this._destroyTouchHook(),this._div=null,globalThis.document.removeEventListener(`mousemove`,this._onMouseMove,!0),globalThis.removeEventListener(`keydown`,this._onKeyDown),this._pool=null,this._children=null,this._renderer=null}};I.extension={type:[i.WebGLSystem,i.WebGPUSystem],name:`accessibility`};var L={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,_accessibleActive:!1,_accessibleDiv:null,accessibleType:`button`,accessiblePointerEvents:`auto`,accessibleChildren:!0,_renderId:-1},R=new class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}init(e){this.removeTickerListener(),this.events=e,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(e){this._pauseUpdate=e}addTickerListener(){this._tickerAdded||!this.domElement||(t.system.add(this._tickerUpdate,this,e.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&=(t.system.remove(this._tickerUpdate,this),!1)}pointerMoved(){this._didMove=!0}_update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=!1;return}let e=this.events._rootPointerEvent;this.events.supportsTouchEvents&&e.pointerType===`touch`||globalThis.document.dispatchEvent(new PointerEvent(`pointermove`,{clientX:e.clientX,clientY:e.clientY,pointerType:e.pointerType,pointerId:e.pointerId}))}_tickerUpdate(e){this._deltaTime+=e.deltaTime,!(this._deltaTime<this.interactionFrequency)&&(this._deltaTime=0,this._update())}},z=class extends s{constructor(){super(...arguments),this.client=new a,this.movement=new a,this.offset=new a,this.global=new a,this.screen=new a}get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}get movementX(){return this.movement.x}get movementY(){return this.movement.y}get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}get globalX(){return this.global.x}get globalY(){return this.global.y}get screenX(){return this.screen.x}get screenY(){return this.screen.y}getLocalPosition(e,t,n){return e.worldTransform.applyInverse(n||this.global,t)}getModifierState(e){return`getModifierState`in this.nativeEvent&&this.nativeEvent.getModifierState(e)}initMouseEvent(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){throw Error(`Method not implemented.`)}},B=class extends z{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1}getCoalescedEvents(){return this.type===`pointermove`||this.type===`mousemove`||this.type===`touchmove`?[this]:[]}getPredictedEvents(){throw Error(`getPredictedEvents is not supported!`)}},V=class extends z{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};V.DOM_DELTA_PIXEL=0,V.DOM_DELTA_LINE=1,V.DOM_DELTA_PAGE=2;var H=2048,U=new a,W=new a,G=class{constructor(e){this.dispatch=new r,this.moveOnAll=!1,this.enableGlobalMoveEvents=!0,this.mappingState={trackingData:{}},this.eventPool=new Map,this._allInteractiveElements=[],this._hitElements=[],this._isPointerMoveEvent=!1,this.rootTarget=e,this.hitPruneFn=this.hitPruneFn.bind(this),this.hitTestFn=this.hitTestFn.bind(this),this.mapPointerDown=this.mapPointerDown.bind(this),this.mapPointerMove=this.mapPointerMove.bind(this),this.mapPointerOut=this.mapPointerOut.bind(this),this.mapPointerOver=this.mapPointerOver.bind(this),this.mapPointerUp=this.mapPointerUp.bind(this),this.mapPointerUpOutside=this.mapPointerUpOutside.bind(this),this.mapWheel=this.mapWheel.bind(this),this.mappingTable={},this.addEventMapping(`pointerdown`,this.mapPointerDown),this.addEventMapping(`pointermove`,this.mapPointerMove),this.addEventMapping(`pointerout`,this.mapPointerOut),this.addEventMapping(`pointerleave`,this.mapPointerOut),this.addEventMapping(`pointerover`,this.mapPointerOver),this.addEventMapping(`pointerup`,this.mapPointerUp),this.addEventMapping(`pointerupoutside`,this.mapPointerUpOutside),this.addEventMapping(`wheel`,this.mapWheel)}addEventMapping(e,t){this.mappingTable[e]||(this.mappingTable[e]=[]),this.mappingTable[e].push({fn:t,priority:0}),this.mappingTable[e].sort((e,t)=>e.priority-t.priority)}dispatchEvent(e,t){e.propagationStopped=!1,e.propagationImmediatelyStopped=!1,this.propagate(e,t),this.dispatch.emit(t||e.type,e)}mapEvent(e){if(!this.rootTarget)return;let t=this.mappingTable[e.type];if(t)for(let n=0,r=t.length;n<r;n++)t[n].fn(e);else n(`[EventBoundary]: Event mapping not defined for ${e.type}`)}hitTest(e,t){R.pauseUpdate=!0;let n=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?`hitTestMoveRecursive`:`hitTestRecursive`,r=this[n](this.rootTarget,this.rootTarget.eventMode,U.set(e,t),this.hitTestFn,this.hitPruneFn);return r&&r[0]}propagate(e,t){if(!e.target)return;let n=e.composedPath();e.eventPhase=e.CAPTURING_PHASE;for(let r=0,i=n.length-1;r<i;r++)if(e.currentTarget=n[r],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return;if(e.eventPhase=e.AT_TARGET,e.currentTarget=e.target,this.notifyTarget(e,t),!(e.propagationStopped||e.propagationImmediatelyStopped)){e.eventPhase=e.BUBBLING_PHASE;for(let r=n.length-2;r>=0;r--)if(e.currentTarget=n[r],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return}}all(e,t,n=this._allInteractiveElements){if(n.length===0)return;e.eventPhase=e.BUBBLING_PHASE;let r=Array.isArray(t)?t:[t];for(let t=n.length-1;t>=0;t--)r.forEach(r=>{e.currentTarget=n[t],this.notifyTarget(e,r)})}propagationPath(e){let t=[e];for(let n=0;n<H&&e!==this.rootTarget&&e.parent;n++){if(!e.parent)throw Error(`Cannot find propagation path to disconnected target`);t.push(e.parent),e=e.parent}return t.reverse(),t}hitTestMoveRecursive(e,t,n,r,i,a=!1){let o=!1;if(this._interactivePrune(e))return null;if((e.eventMode===`dynamic`||t===`dynamic`)&&(R.pauseUpdate=!1),e.interactiveChildren&&e.children){let s=e.children;for(let c=s.length-1;c>=0;c--){let l=s[c],u=this.hitTestMoveRecursive(l,this._isInteractive(t)?t:l.eventMode,n,r,i,a||i(e,n));if(u){if(u.length>0&&!u[u.length-1].parent)continue;let t=e.isInteractive();(u.length>0||t)&&(t&&this._allInteractiveElements.push(e),u.push(e)),this._hitElements.length===0&&(this._hitElements=u),o=!0}}}let s=this._isInteractive(t),c=e.isInteractive();return c&&c&&this._allInteractiveElements.push(e),a||this._hitElements.length>0?null:o?this._hitElements:s&&!i(e,n)&&r(e,n)?c?[e]:[]:null}hitTestRecursive(e,t,n,r,i){if(this._interactivePrune(e)||i(e,n))return null;if((e.eventMode===`dynamic`||t===`dynamic`)&&(R.pauseUpdate=!1),e.interactiveChildren&&e.children){let a=e.children,o=n;for(let n=a.length-1;n>=0;n--){let s=a[n],c=this.hitTestRecursive(s,this._isInteractive(t)?t:s.eventMode,o,r,i);if(c){if(c.length>0&&!c[c.length-1].parent)continue;let t=e.isInteractive();return(c.length>0||t)&&c.push(e),c}}}let a=this._isInteractive(t),o=e.isInteractive();return a&&r(e,n)?o?[e]:[]:null}_isInteractive(e){return e===`static`||e===`dynamic`}_interactivePrune(e){return!e||!e.visible||!e.renderable||!e.includeInBuild||!e.measurable||e.eventMode===`none`||e.eventMode===`passive`&&!e.interactiveChildren}hitPruneFn(e,t){if(e.hitArea&&(e.worldTransform.applyInverse(t,W),!e.hitArea.contains(W.x,W.y)))return!0;if(e.effects&&e.effects.length)for(let n=0;n<e.effects.length;n++){let r=e.effects[n];if(r.containsPoint&&!r.containsPoint(t,this.hitTestFn))return!0}return!1}hitTestFn(e,t){return e.hitArea?!0:e?.containsPoint?(e.worldTransform.applyInverse(t,W),e.containsPoint(W)):!1}notifyTarget(e,t){if(!e.currentTarget.isInteractive())return;t??=e.type;let n=`on${t}`;e.currentTarget[n]?.(e);let r=e.eventPhase===e.CAPTURING_PHASE||e.eventPhase===e.AT_TARGET?`${t}capture`:t;this._notifyListeners(e,r),e.eventPhase===e.AT_TARGET&&this._notifyListeners(e,t)}mapPointerDown(e){if(!(e instanceof B)){n(`EventBoundary cannot map a non-pointer event as a pointer event`);return}let t=this.createPointerEvent(e);if(this.dispatchEvent(t,`pointerdown`),t.pointerType===`touch`)this.dispatchEvent(t,`touchstart`);else if(t.pointerType===`mouse`||t.pointerType===`pen`){let e=t.button===2;this.dispatchEvent(t,e?`rightdown`:`mousedown`)}let r=this.trackingData(e.pointerId);r.pressTargetsByButton[e.button]=t.composedPath(),this.freeEvent(t)}mapPointerMove(e){if(!(e instanceof B)){n(`EventBoundary cannot map a non-pointer event as a pointer event`);return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let t=this.createPointerEvent(e);this._isPointerMoveEvent=!1;let r=t.pointerType===`mouse`||t.pointerType===`pen`,i=this.trackingData(e.pointerId),a=this.findMountedTarget(i.overTargets);if(i.overTargets?.length>0&&a!==t.target){let n=e.type===`mousemove`?`mouseout`:`pointerout`,i=this.createPointerEvent(e,n,a);if(this.dispatchEvent(i,`pointerout`),r&&this.dispatchEvent(i,`mouseout`),!t.composedPath().includes(a)){let n=this.createPointerEvent(e,`pointerleave`,a);for(n.eventPhase=n.AT_TARGET;n.target&&!t.composedPath().includes(n.target);)n.currentTarget=n.target,this.notifyTarget(n),r&&this.notifyTarget(n,`mouseleave`),n.target=n.target.parent;this.freeEvent(n)}this.freeEvent(i)}if(a!==t.target){let n=e.type===`mousemove`?`mouseover`:`pointerover`,i=this.clonePointerEvent(t,n);this.dispatchEvent(i,`pointerover`),r&&this.dispatchEvent(i,`mouseover`);let o=a?.parent;for(;o&&o!==this.rootTarget.parent&&o!==t.target;)o=o.parent;if(!o||o===this.rootTarget.parent){let e=this.clonePointerEvent(t,`pointerenter`);for(e.eventPhase=e.AT_TARGET;e.target&&e.target!==a&&e.target!==this.rootTarget.parent;)e.currentTarget=e.target,this.notifyTarget(e),r&&this.notifyTarget(e,`mouseenter`),e.target=e.target.parent;this.freeEvent(e)}this.freeEvent(i)}let o=[],s=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push(`pointermove`):this.dispatchEvent(t,`pointermove`),s&&o.push(`globalpointermove`),t.pointerType===`touch`&&(this.moveOnAll?o.splice(1,0,`touchmove`):this.dispatchEvent(t,`touchmove`),s&&o.push(`globaltouchmove`)),r&&(this.moveOnAll?o.splice(1,0,`mousemove`):this.dispatchEvent(t,`mousemove`),s&&o.push(`globalmousemove`),this.cursor=t.target?.cursor),o.length>0&&this.all(t,o),this._allInteractiveElements.length=0,this._hitElements.length=0,i.overTargets=t.composedPath(),this.freeEvent(t)}mapPointerOver(e){if(!(e instanceof B)){n(`EventBoundary cannot map a non-pointer event as a pointer event`);return}let t=this.trackingData(e.pointerId),r=this.createPointerEvent(e),i=r.pointerType===`mouse`||r.pointerType===`pen`;this.dispatchEvent(r,`pointerover`),i&&this.dispatchEvent(r,`mouseover`),r.pointerType===`mouse`&&(this.cursor=r.target?.cursor);let a=this.clonePointerEvent(r,`pointerenter`);for(a.eventPhase=a.AT_TARGET;a.target&&a.target!==this.rootTarget.parent;)a.currentTarget=a.target,this.notifyTarget(a),i&&this.notifyTarget(a,`mouseenter`),a.target=a.target.parent;t.overTargets=r.composedPath(),this.freeEvent(r),this.freeEvent(a)}mapPointerOut(e){if(!(e instanceof B)){n(`EventBoundary cannot map a non-pointer event as a pointer event`);return}let t=this.trackingData(e.pointerId);if(t.overTargets){let n=e.pointerType===`mouse`||e.pointerType===`pen`,r=this.findMountedTarget(t.overTargets),i=this.createPointerEvent(e,`pointerout`,r);this.dispatchEvent(i),n&&this.dispatchEvent(i,`mouseout`);let a=this.createPointerEvent(e,`pointerleave`,r);for(a.eventPhase=a.AT_TARGET;a.target&&a.target!==this.rootTarget.parent;)a.currentTarget=a.target,this.notifyTarget(a),n&&this.notifyTarget(a,`mouseleave`),a.target=a.target.parent;t.overTargets=null,this.freeEvent(i),this.freeEvent(a)}this.cursor=null}mapPointerUp(e){if(!(e instanceof B)){n(`EventBoundary cannot map a non-pointer event as a pointer event`);return}let t=performance.now(),r=this.createPointerEvent(e);if(this.dispatchEvent(r,`pointerup`),r.pointerType===`touch`)this.dispatchEvent(r,`touchend`);else if(r.pointerType===`mouse`||r.pointerType===`pen`){let e=r.button===2;this.dispatchEvent(r,e?`rightup`:`mouseup`)}let i=this.trackingData(e.pointerId),a=this.findMountedTarget(i.pressTargetsByButton[e.button]),o=a;if(a&&!r.composedPath().includes(a)){let t=a;for(;t&&!r.composedPath().includes(t);){if(r.currentTarget=t,this.notifyTarget(r,`pointerupoutside`),r.pointerType===`touch`)this.notifyTarget(r,`touchendoutside`);else if(r.pointerType===`mouse`||r.pointerType===`pen`){let e=r.button===2;this.notifyTarget(r,e?`rightupoutside`:`mouseupoutside`)}t=t.parent}delete i.pressTargetsByButton[e.button],o=t}if(o){let n=this.clonePointerEvent(r,`click`);n.target=o,n.path=null,i.clicksByButton[e.button]||(i.clicksByButton[e.button]={clickCount:0,target:n.target,timeStamp:t});let a=i.clicksByButton[e.button];if(a.target===n.target&&t-a.timeStamp<200?++a.clickCount:a.clickCount=1,a.target=n.target,a.timeStamp=t,n.detail=a.clickCount,n.pointerType===`mouse`){let e=n.button===2;this.dispatchEvent(n,e?`rightclick`:`click`)}else n.pointerType===`touch`&&this.dispatchEvent(n,`tap`);this.dispatchEvent(n,`pointertap`),this.freeEvent(n)}this.freeEvent(r)}mapPointerUpOutside(e){if(!(e instanceof B)){n(`EventBoundary cannot map a non-pointer event as a pointer event`);return}let t=this.trackingData(e.pointerId),r=this.findMountedTarget(t.pressTargetsByButton[e.button]),i=this.createPointerEvent(e);if(r){let n=r;for(;n;)i.currentTarget=n,this.notifyTarget(i,`pointerupoutside`),i.pointerType===`touch`?this.notifyTarget(i,`touchendoutside`):(i.pointerType===`mouse`||i.pointerType===`pen`)&&this.notifyTarget(i,i.button===2?`rightupoutside`:`mouseupoutside`),n=n.parent;delete t.pressTargetsByButton[e.button]}this.freeEvent(i)}mapWheel(e){if(!(e instanceof V)){n(`EventBoundary cannot map a non-wheel event as a wheel event`);return}let t=this.createWheelEvent(e);this.dispatchEvent(t),this.freeEvent(t)}findMountedTarget(e){if(!e)return null;let t=e[0];for(let n=1;n<e.length&&e[n].parent===t;n++)t=e[n];return t}createPointerEvent(e,t,n){let r=this.allocateEvent(B);return this.copyPointerData(e,r),this.copyMouseData(e,r),this.copyData(e,r),r.nativeEvent=e.nativeEvent,r.originalEvent=e,r.target=n??this.hitTest(r.global.x,r.global.y)??this._hitElements[0],typeof t==`string`&&(r.type=t),r}createWheelEvent(e){let t=this.allocateEvent(V);return this.copyWheelData(e,t),this.copyMouseData(e,t),this.copyData(e,t),t.nativeEvent=e.nativeEvent,t.originalEvent=e,t.target=this.hitTest(t.global.x,t.global.y),t}clonePointerEvent(e,t){let n=this.allocateEvent(B);return n.nativeEvent=e.nativeEvent,n.originalEvent=e.originalEvent,this.copyPointerData(e,n),this.copyMouseData(e,n),this.copyData(e,n),n.target=e.target,n.path=e.composedPath().slice(),n.type=t??n.type,n}copyWheelData(e,t){t.deltaMode=e.deltaMode,t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ}copyPointerData(e,t){e instanceof B&&t instanceof B&&(t.pointerId=e.pointerId,t.width=e.width,t.height=e.height,t.isPrimary=e.isPrimary,t.pointerType=e.pointerType,t.pressure=e.pressure,t.tangentialPressure=e.tangentialPressure,t.tiltX=e.tiltX,t.tiltY=e.tiltY,t.twist=e.twist)}copyMouseData(e,t){e instanceof z&&t instanceof z&&(t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.copyFrom(e.client),t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.copyFrom(e.movement),t.screen.copyFrom(e.screen),t.shiftKey=e.shiftKey,t.global.copyFrom(e.global))}copyData(e,t){t.isTrusted=e.isTrusted,t.srcElement=e.srcElement,t.timeStamp=performance.now(),t.type=e.type,t.detail=e.detail,t.view=e.view,t.which=e.which,t.layer.copyFrom(e.layer),t.page.copyFrom(e.page)}trackingData(e){return this.mappingState.trackingData[e]||(this.mappingState.trackingData[e]={pressTargetsByButton:{},clicksByButton:{},overTarget:null}),this.mappingState.trackingData[e]}allocateEvent(e){this.eventPool.has(e)||this.eventPool.set(e,[]);let t=this.eventPool.get(e).pop()||new e(this);return t.eventPhase=t.NONE,t.currentTarget=null,t.path=null,t.target=null,t}freeEvent(e){if(e.manager!==this)throw Error(`It is illegal to free an event not managed by this EventBoundary!`);let t=e.constructor;this.eventPool.has(t)||this.eventPool.set(t,[]),this.eventPool.get(t).push(e)}_notifyListeners(e,t){let n=e.currentTarget._events[t];if(n)if(`fn`in n)n.once&&e.currentTarget.removeListener(t,n.fn,void 0,!0),n.fn.call(n.context,e);else for(let r=0,i=n.length;r<i&&!e.propagationImmediatelyStopped;r++)n[r].once&&e.currentTarget.removeListener(t,n[r].fn,void 0,!0),n[r].fn.call(n[r].context,e)}},K=1,q={touchstart:`pointerdown`,touchend:`pointerup`,touchendoutside:`pointerupoutside`,touchmove:`pointermove`,touchcancel:`pointercancel`},J=class e{constructor(t){this.supportsTouchEvents=`ontouchstart`in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=t,this.rootBoundary=new G(null),R.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new B(null),this._rootWheelEvent=new V(null),this.cursorStyles={default:`inherit`,pointer:`pointer`},this.features=new Proxy({...e.defaultEventFeatures},{set:(e,t,n)=>(t===`globalMove`&&(this.rootBoundary.enableGlobalMoveEvents=n),e[t]=n,!0)}),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerOverOut=this._onPointerOverOut.bind(this),this.onWheel=this.onWheel.bind(this)}static get defaultEventMode(){return this._defaultEventMode}init(t){let{canvas:n,resolution:r}=this.renderer;this.setTargetElement(n),this.resolution=r,e._defaultEventMode=t.eventMode??`passive`,Object.assign(this.features,t.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(e){this.resolution=e}destroy(){this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(e){e||=`default`;let t=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(t=!1),this._currentCursor===e)return;this._currentCursor=e;let n=this.cursorStyles[e];if(n)switch(typeof n){case`string`:t&&(this.domElement.style.cursor=n);break;case`function`:n(e);break;case`object`:t&&Object.assign(this.domElement.style,n);break}else t&&typeof e==`string`&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,e)&&(this.domElement.style.cursor=e)}get pointer(){return this._rootPointerEvent}_onPointerDown(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);this.autoPreventDefault&&t[0].isNormalized&&(e.cancelable||!(`cancelable`in e))&&e.preventDefault();for(let e=0,n=t.length;e<n;e++){let n=t[e],r=this._bootstrapEvent(this._rootPointerEvent,n);this.rootBoundary.mapEvent(r)}this.setCursor(this.rootBoundary.cursor)}_onPointerMove(e){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,R.pointerMoved();let t=this._normalizeToPointerData(e);for(let e=0,n=t.length;e<n;e++){let n=this._bootstrapEvent(this._rootPointerEvent,t[e]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}_onPointerUp(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=e.target;e.composedPath&&e.composedPath().length>0&&(t=e.composedPath()[0]);let n=t===this.domElement?``:`outside`,r=this._normalizeToPointerData(e);for(let e=0,t=r.length;e<t;e++){let t=this._bootstrapEvent(this._rootPointerEvent,r[e]);t.type+=n,this.rootBoundary.mapEvent(t)}this.setCursor(this.rootBoundary.cursor)}_onPointerOverOut(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);for(let e=0,n=t.length;e<n;e++){let n=this._bootstrapEvent(this._rootPointerEvent,t[e]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}onWheel(e){if(!this.features.wheel)return;let t=this.normalizeWheelEvent(e);this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.rootBoundary.mapEvent(t)}setTargetElement(e){this._removeEvents(),this.domElement=e,R.domElement=e,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;R.addTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming=`none`,e.msTouchAction=`none`):this.supportsPointerEvents&&(e.touchAction=`none`)),this.supportsPointerEvents?(globalThis.document.addEventListener(`pointermove`,this._onPointerMove,!0),this.domElement.addEventListener(`pointerdown`,this._onPointerDown,!0),this.domElement.addEventListener(`pointerleave`,this._onPointerOverOut,!0),this.domElement.addEventListener(`pointerover`,this._onPointerOverOut,!0),globalThis.addEventListener(`pointerup`,this._onPointerUp,!0)):(globalThis.document.addEventListener(`mousemove`,this._onPointerMove,!0),this.domElement.addEventListener(`mousedown`,this._onPointerDown,!0),this.domElement.addEventListener(`mouseout`,this._onPointerOverOut,!0),this.domElement.addEventListener(`mouseover`,this._onPointerOverOut,!0),globalThis.addEventListener(`mouseup`,this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.addEventListener(`touchstart`,this._onPointerDown,!0),this.domElement.addEventListener(`touchend`,this._onPointerUp,!0),this.domElement.addEventListener(`touchmove`,this._onPointerMove,!0))),this.domElement.addEventListener(`wheel`,this.onWheel,{passive:!0,capture:!0}),this._eventsAdded=!0}_removeEvents(){if(!this._eventsAdded||!this.domElement)return;R.removeTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming=``,e.msTouchAction=``):this.supportsPointerEvents&&(e.touchAction=``)),this.supportsPointerEvents?(globalThis.document.removeEventListener(`pointermove`,this._onPointerMove,!0),this.domElement.removeEventListener(`pointerdown`,this._onPointerDown,!0),this.domElement.removeEventListener(`pointerleave`,this._onPointerOverOut,!0),this.domElement.removeEventListener(`pointerover`,this._onPointerOverOut,!0),globalThis.removeEventListener(`pointerup`,this._onPointerUp,!0)):(globalThis.document.removeEventListener(`mousemove`,this._onPointerMove,!0),this.domElement.removeEventListener(`mousedown`,this._onPointerDown,!0),this.domElement.removeEventListener(`mouseout`,this._onPointerOverOut,!0),this.domElement.removeEventListener(`mouseover`,this._onPointerOverOut,!0),globalThis.removeEventListener(`mouseup`,this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.removeEventListener(`touchstart`,this._onPointerDown,!0),this.domElement.removeEventListener(`touchend`,this._onPointerUp,!0),this.domElement.removeEventListener(`touchmove`,this._onPointerMove,!0))),this.domElement.removeEventListener(`wheel`,this.onWheel,!0),this.domElement=null,this._eventsAdded=!1}mapPositionToPoint(e,t,n){let r=this.domElement.isConnected?this.domElement.getBoundingClientRect():{x:0,y:0,width:this.domElement.width,height:this.domElement.height,left:0,top:0},i=1/this.resolution;e.x=(t-r.left)*(this.domElement.width/r.width)*i,e.y=(n-r.top)*(this.domElement.height/r.height)*i}_normalizeToPointerData(e){let t=[];if(this.supportsTouchEvents&&e instanceof TouchEvent)for(let n=0,r=e.changedTouches.length;n<r;n++){let r=e.changedTouches[n];r.button===void 0&&(r.button=0),r.buttons===void 0&&(r.buttons=1),r.isPrimary===void 0&&(r.isPrimary=e.touches.length===1&&e.type===`touchstart`),r.width===void 0&&(r.width=r.radiusX||1),r.height===void 0&&(r.height=r.radiusY||1),r.tiltX===void 0&&(r.tiltX=0),r.tiltY===void 0&&(r.tiltY=0),r.pointerType===void 0&&(r.pointerType=`touch`),r.pointerId===void 0&&(r.pointerId=r.identifier||0),r.pressure===void 0&&(r.pressure=r.force||.5),r.twist===void 0&&(r.twist=0),r.tangentialPressure===void 0&&(r.tangentialPressure=0),r.layerX===void 0&&(r.layerX=r.offsetX=r.clientX),r.layerY===void 0&&(r.layerY=r.offsetY=r.clientY),r.isNormalized=!0,r.type=e.type,t.push(r)}else if(!globalThis.MouseEvent||e instanceof MouseEvent&&(!this.supportsPointerEvents||!(e instanceof globalThis.PointerEvent))){let n=e;n.isPrimary===void 0&&(n.isPrimary=!0),n.width===void 0&&(n.width=1),n.height===void 0&&(n.height=1),n.tiltX===void 0&&(n.tiltX=0),n.tiltY===void 0&&(n.tiltY=0),n.pointerType===void 0&&(n.pointerType=`mouse`),n.pointerId===void 0&&(n.pointerId=K),n.pressure===void 0&&(n.pressure=.5),n.twist===void 0&&(n.twist=0),n.tangentialPressure===void 0&&(n.tangentialPressure=0),n.isNormalized=!0,t.push(n)}else t.push(e);return t}normalizeWheelEvent(e){let t=this._rootWheelEvent;return this._transferMouseData(t,e),t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ,t.deltaMode=e.deltaMode,this.mapPositionToPoint(t.screen,e.clientX,e.clientY),t.global.copyFrom(t.screen),t.offset.copyFrom(t.screen),t.nativeEvent=e,t.type=e.type,t}_bootstrapEvent(e,t){return e.originalEvent=null,e.nativeEvent=t,e.pointerId=t.pointerId,e.width=t.width,e.height=t.height,e.isPrimary=t.isPrimary,e.pointerType=t.pointerType,e.pressure=t.pressure,e.tangentialPressure=t.tangentialPressure,e.tiltX=t.tiltX,e.tiltY=t.tiltY,e.twist=t.twist,this._transferMouseData(e,t),this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.copyFrom(e.screen),e.offset.copyFrom(e.screen),e.isTrusted=t.isTrusted,e.type===`pointerleave`&&(e.type=`pointerout`),e.type.startsWith(`mouse`)&&(e.type=e.type.replace(`mouse`,`pointer`)),e.type.startsWith(`touch`)&&(e.type=q[e.type]||e.type),e}_transferMouseData(e,t){e.isTrusted=t.isTrusted,e.srcElement=t.srcElement,e.timeStamp=performance.now(),e.type=t.type,e.altKey=t.altKey,e.button=t.button,e.buttons=t.buttons,e.client.x=t.clientX,e.client.y=t.clientY,e.ctrlKey=t.ctrlKey,e.metaKey=t.metaKey,e.movement.x=t.movementX,e.movement.y=t.movementY,e.page.x=t.pageX,e.page.y=t.pageY,e.relatedTarget=null,e.shiftKey=t.shiftKey}};J.extension={name:`events`,type:[i.WebGLSystem,i.CanvasSystem,i.WebGPUSystem],priority:-1},J.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};var Y=J,X={onclick:null,onmousedown:null,onmouseenter:null,onmouseleave:null,onmousemove:null,onglobalmousemove:null,onmouseout:null,onmouseover:null,onmouseup:null,onmouseupoutside:null,onpointercancel:null,onpointerdown:null,onpointerenter:null,onpointerleave:null,onpointermove:null,onglobalpointermove:null,onpointerout:null,onpointerover:null,onpointertap:null,onpointerup:null,onpointerupoutside:null,onrightclick:null,onrightdown:null,onrightup:null,onrightupoutside:null,ontap:null,ontouchcancel:null,ontouchend:null,ontouchendoutside:null,ontouchmove:null,onglobaltouchmove:null,ontouchstart:null,onwheel:null,get interactive(){return this.eventMode===`dynamic`||this.eventMode===`static`},set interactive(e){this.eventMode=e?`static`:`passive`},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??Y.defaultEventMode},set eventMode(e){this._internalEventMode=e},isInteractive(){return this.eventMode===`static`||this.eventMode===`dynamic`},interactiveChildren:!0,hitArea:null,addEventListener(e,t,n){let r=typeof n==`boolean`&&n||typeof n==`object`&&n.capture,i=typeof n==`object`?n.signal:void 0,a=typeof n==`object`?n.once===!0:!1,o=typeof t==`function`?void 0:t;e=r?`${e}capture`:e;let s=typeof t==`function`?t:t.handleEvent,c=this;i&&i.addEventListener(`abort`,()=>{c.off(e,s,o)}),a?c.once(e,s,o):c.on(e,s,o)},removeEventListener(e,t,n){let r=typeof n==`boolean`&&n||typeof n==`object`&&n.capture,i=typeof t==`function`?void 0:t;e=r?`${e}capture`:e,t=typeof t==`function`?t:t.handleEvent,this.off(e,t,i)},dispatchEvent(e){if(!(e instanceof s))throw Error(`Container cannot propagate events outside of the Federated Events API`);return e.defaultPrevented=!1,e.path=null,e.target=this,e.manager.dispatchEvent(e),!e.defaultPrevented}};export{I as i,Y as n,L as r,X as t};
|