route-graphics 0.0.2-rc27 → 0.0.2-rc29

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.
@@ -1137,4 +1137,4 @@ ${u}`)}});return await Promise.all(c),o?s[n[0].src]:s}async unload(t){let r=Lt(t
1137
1137
  };
1138
1138
 
1139
1139
  })();
1140
- `,ki=null,Bo=class{constructor(){ki||(ki=URL.createObjectURL(new Blob([Uw],{type:"application/javascript"}))),this.worker=new Worker(ki)}};Bo.revokeObjectURL=function(){ki&&(URL.revokeObjectURL(ki),ki=null)};var f0=0,Cu,Eu=class{constructor(){this._initialized=!1,this._createdWorkers=0,this._workerPool=[],this._queue=[],this._resolveHash={}}isImageBitmapSupported(){return this._isImageBitmapSupported!==void 0?this._isImageBitmapSupported:(this._isImageBitmapSupported=new Promise(t=>{let{worker:e}=new Gi;e.addEventListener("message",r=>{e.terminate(),Gi.revokeObjectURL(),t(r.data)})}),this._isImageBitmapSupported)}loadImageBitmap(t,e){return this._run("loadImageBitmap",[t,e?.data?.alphaMode])}async _initWorkers(){this._initialized||(this._initialized=!0)}_getWorker(){Cu===void 0&&(Cu=navigator.hardwareConcurrency||4);let t=this._workerPool.pop();return!t&&this._createdWorkers<Cu&&(this._createdWorkers++,t=new Bo().worker,t.addEventListener("message",e=>{this._complete(e.data),this._returnWorker(e.target),this._next()})),t}_returnWorker(t){this._workerPool.push(t)}_complete(t){t.error!==void 0?this._resolveHash[t.uuid].reject(t.error):this._resolveHash[t.uuid].resolve(t.data),this._resolveHash[t.uuid]=null}async _run(t,e){await this._initWorkers();let r=new Promise((s,o)=>{this._queue.push({id:t,arguments:e,resolve:s,reject:o})});return this._next(),r}_next(){if(!this._queue.length)return;let t=this._getWorker();if(!t)return;let e=this._queue.pop(),r=e.id;this._resolveHash[f0]={resolve:e.resolve,reject:e.reject},t.postMessage({data:e.arguments,uuid:f0++,id:r})}},Mu=new Eu;Fe();var Dw=[".jpeg",".jpg",".png",".webp",".avif"],Ow=["image/jpeg","image/png","image/webp","image/avif"];async function Lw(i,t){let e=await L.get().fetch(i);if(!e.ok)throw new Error(`[loadImageBitmap] Failed to fetch ${i}: ${e.status} ${e.statusText}`);let r=await e.blob();return t?.data?.alphaMode==="premultiplied-alpha"?createImageBitmap(r,{premultiplyAlpha:"none"}):createImageBitmap(r)}var Da={name:"loadTextures",extension:{type:x.LoadParser,priority:wt.High,name:"loadTextures"},config:{preferWorkers:!0,preferCreateImageBitmap:!0,crossOrigin:"anonymous"},test(i){return ce(i,Ow)||le(i,Dw)},async load(i,t,e){let r=null;globalThis.createImageBitmap&&this.config.preferCreateImageBitmap?this.config.preferWorkers&&await Mu.isImageBitmapSupported()?r=await Mu.loadImageBitmap(i,t):r=await Lw(i,t):r=await new Promise((o,n)=>{r=new Image,r.crossOrigin=this.config.crossOrigin,r.src=i,r.complete?o(r):(r.onload=()=>{o(r)},r.onerror=n)});let s=new jt({resource:r,alphaMode:"premultiply-alpha-on-upload",resolution:t.data?.resolution||Mi(i),...t.data});return Bi(s,e,i)},unload(i){i.destroy(!0)}};P();zc();Wc();var p0=[".mp4",".m4v",".webm",".ogg",".ogv",".h264",".avi",".mov"],Nw=p0.map(i=>`video/${i.substring(1)}`);function Hw(i,t,e){e===void 0&&!t.startsWith("data:")?i.crossOrigin=zw(t):e!==!1&&(i.crossOrigin=typeof e=="string"?e:"anonymous")}function Ww(i){return new Promise((t,e)=>{i.addEventListener("canplaythrough",r),i.addEventListener("error",s),i.load();function r(){o(),t()}function s(n){o(),e(n)}function o(){i.removeEventListener("canplaythrough",r),i.removeEventListener("error",s)}})}function zw(i,t=globalThis.location){if(i.startsWith("data:"))return"";t||(t=globalThis.location);let e=new URL(i,document.baseURI);return e.hostname!==t.hostname||e.port!==t.port||e.protocol!==t.protocol?"anonymous":""}var m0={name:"loadVideo",extension:{type:x.LoadParser,name:"loadVideo"},test(i){let t=ce(i,Nw),e=le(i,p0);return t||e},async load(i,t,e){let r={...Xr.defaultOptions,resolution:t.data?.resolution||Mi(i),alphaMode:t.data?.alphaMode||await hn(),...t.data},s=document.createElement("video"),o={preload:r.autoLoad!==!1?"auto":void 0,"webkit-playsinline":r.playsinline!==!1?"":void 0,playsinline:r.playsinline!==!1?"":void 0,muted:r.muted===!0?"":void 0,loop:r.loop===!0?"":void 0,autoplay:r.autoPlay!==!1?"":void 0};Object.keys(o).forEach(c=>{let l=o[c];l!==void 0&&s.setAttribute(c,l)}),r.muted===!0&&(s.muted=!0),Hw(s,i,r.crossorigin);let n=document.createElement("source"),a;if(i.startsWith("data:"))a=i.slice(5,i.indexOf(";"));else if(!i.startsWith("blob:")){let c=i.split("?")[0].slice(i.lastIndexOf(".")+1).toLowerCase();a=Xr.MIME_TYPES[c]||`video/${c}`}return n.src=i,a&&(n.type=a),new Promise(c=>{let l=async()=>{let h=new Xr({...r,resource:s});s.removeEventListener("canplay",l),t.data.preload&&await Ww(s),c(Bi(h,e,i))};s.addEventListener("canplay",l),s.appendChild(n)})},unload(i){i.destroy(!0)}};P();Wr();P();Wr();var Oa={extension:{type:x.ResolveParser,name:"resolveTexture"},test:Da.test,parse:i=>({resolution:parseFloat(te.RETINA_PREFIX.exec(i)?.[1]??"1"),format:i.split(".").pop(),src:i})};var g0={extension:{type:x.ResolveParser,priority:-2,name:"resolveJson"},test:i=>te.RETINA_PREFIX.test(i)&&i.endsWith(".json"),parse:Oa.parse};Wr();Qi();sn();var La=class{constructor(){this._detections=[],this._initialized=!1,this.resolver=new te,this.loader=new Ua,this.cache=tt,this._backgroundLoader=new Ia(this.loader),this._backgroundLoader.active=!0,this.reset()}async init(t={}){if(this._initialized){F("[Assets]AssetManager already initialized, did you load before calling this Assets.init()?");return}if(this._initialized=!0,t.defaultSearchParams&&this.resolver.setDefaultSearchParams(t.defaultSearchParams),t.basePath&&(this.resolver.basePath=t.basePath),t.bundleIdentifier&&this.resolver.setBundleIdentifier(t.bundleIdentifier),t.manifest){let o=t.manifest;typeof o=="string"&&(o=await this.load(o)),this.resolver.addManifest(o)}let e=t.texturePreference?.resolution??1,r=typeof e=="number"?[e]:e,s=await this._detectFormats({preferredFormats:t.texturePreference?.format,skipDetections:t.skipDetections,detections:this._detections});this.resolver.prefer({params:{format:s,resolution:r}}),t.preferences&&this.setPreferences(t.preferences)}add(t){this.resolver.add(t)}async load(t,e){this._initialized||await this.init();let r=br(t),s=Lt(t).map(a=>{if(typeof a!="string"){let c=this.resolver.getAlias(a);return c.some(l=>!this.resolver.hasKey(l))&&this.add(a),Array.isArray(c)?c[0]:c}return this.resolver.hasKey(a)||this.add({alias:a,src:a}),a}),o=this.resolver.resolve(s),n=await this._mapLoadToResolve(o,e);return r?n[s[0]]:n}addBundle(t,e){this.resolver.addBundle(t,e)}async loadBundle(t,e){this._initialized||await this.init();let r=!1;typeof t=="string"&&(r=!0,t=[t]);let s=this.resolver.resolveBundle(t),o={},n=Object.keys(s),a=0,c=0,l=()=>{e?.(++a/c)},h=n.map(u=>{let f=s[u];return c+=Object.keys(f).length,this._mapLoadToResolve(f,l).then(d=>{o[u]=d})});return await Promise.all(h),r?o[t[0]]:o}async backgroundLoad(t){this._initialized||await this.init(),typeof t=="string"&&(t=[t]);let e=this.resolver.resolve(t);this._backgroundLoader.add(Object.values(e))}async backgroundLoadBundle(t){this._initialized||await this.init(),typeof t=="string"&&(t=[t]);let e=this.resolver.resolveBundle(t);Object.values(e).forEach(r=>{this._backgroundLoader.add(Object.values(r))})}reset(){this.resolver.reset(),this.loader.reset(),this.cache.reset(),this._initialized=!1}get(t){if(typeof t=="string")return tt.get(t);let e={};for(let r=0;r<t.length;r++)e[r]=tt.get(t[r]);return e}async _mapLoadToResolve(t,e){let r=[...new Set(Object.values(t))];this._backgroundLoader.active=!1;let s=await this.loader.load(r,e);this._backgroundLoader.active=!0;let o={};return r.forEach(n=>{let a=s[n.src],c=[n.src];n.alias&&c.push(...n.alias),c.forEach(l=>{o[l]=a}),tt.set(c,a)}),o}async unload(t){this._initialized||await this.init();let e=Lt(t).map(s=>typeof s!="string"?s.src:s),r=this.resolver.resolve(e);await this._unloadFromResolved(r)}async unloadBundle(t){this._initialized||await this.init(),t=Lt(t);let e=this.resolver.resolveBundle(t),r=Object.keys(e).map(s=>this._unloadFromResolved(e[s]));await Promise.all(r)}async _unloadFromResolved(t){let e=Object.values(t);e.forEach(r=>{tt.remove(r.src)}),await this.loader.unload(e)}async _detectFormats(t){let e=[];t.preferredFormats&&(e=Array.isArray(t.preferredFormats)?t.preferredFormats:[t.preferredFormats]);for(let r of t.detections)t.skipDetections||await r.test()?e=await r.add(e):t.skipDetections||(e=await r.remove(e));return e=e.filter((r,s)=>e.indexOf(r)===s),e}get detections(){return this._detections}setPreferences(t){this.loader.parsers.forEach(e=>{e.config&&Object.keys(e.config).filter(r=>r in t).forEach(r=>{e.config[r]=t[r]})})}},xe=new La;I.handleByList(x.LoadParser,xe.loader.parsers).handleByList(x.ResolveParser,xe.resolver.parsers).handleByList(x.CacheParser,xe.cache.parsers).handleByList(x.DetectionParser,xe.detections);I.add(e0,s0,r0,c0,o0,n0,a0,l0,h0,u0,d0,Da,m0,t0,Jv,Oa,g0);var x0={loader:x.LoadParser,resolver:x.ResolveParser,cache:x.CacheParser,detection:x.DetectionParser};I.handle(x.Asset,i=>{let t=i.ref;Object.entries(x0).filter(([e])=>!!t[e]).forEach(([e,r])=>I.add(Object.assign(t[e],{extension:t[e].extension??r})))},i=>{let t=i.ref;Object.keys(x0).filter(e=>!!t[e]).forEach(e=>I.remove(t[e]))});Do();dt();rn();var Na=class extends Xe{constructor(t,e){let{text:r,resolution:s,style:o,anchor:n,width:a,height:c,roundPixels:l,...h}=t;super({...h}),this.batched=!0,this._resolution=null,this._autoResolution=!0,this._didTextUpdate=!0,this._styleClass=e,this.text=r??"",this.style=o,this.resolution=s??null,this.allowChildren=!1,this._anchor=new Bt({_onUpdate:()=>{this.onViewUpdate()}}),n&&(this.anchor=n),this.roundPixels=l??!1,a!==void 0&&(this.width=a),c!==void 0&&(this.height=c)}get anchor(){return this._anchor}set anchor(t){typeof t=="number"?this._anchor.set(t):this._anchor.copyFrom(t)}set text(t){t=t.toString(),this._text!==t&&(this._text=t,this.onViewUpdate())}get text(){return this._text}set resolution(t){this._autoResolution=t===null,this._resolution=t,this.onViewUpdate()}get resolution(){return this._resolution}get style(){return this._style}set style(t){t||(t={}),this._style?.off("update",this.onViewUpdate,this),t instanceof this._styleClass?this._style=t:this._style=new this._styleClass(t),this._style.on("update",this.onViewUpdate,this),this.onViewUpdate()}get width(){return Math.abs(this.scale.x)*this.bounds.width}set width(t){this._setWidth(t,this.bounds.width)}get height(){return Math.abs(this.scale.y)*this.bounds.height}set height(t){this._setHeight(t,this.bounds.height)}getSize(t){return t||(t={}),t.width=Math.abs(this.scale.x)*this.bounds.width,t.height=Math.abs(this.scale.y)*this.bounds.height,t}setSize(t,e){typeof t=="object"?(e=t.height??t.width,t=t.width):e??(e=t),t!==void 0&&this._setWidth(t,this.bounds.width),e!==void 0&&this._setHeight(e,this.bounds.height)}containsPoint(t){let e=this.bounds.width,r=this.bounds.height,s=-e*this.anchor.x,o=0;return t.x>=s&&t.x<=s+e&&(o=-r*this.anchor.y,t.y>=o&&t.y<=o+r)}onViewUpdate(){this.didViewUpdate||(this._didTextUpdate=!0),super.onViewUpdate()}_getKey(){return`${this.text}:${this._style.styleKey}:${this._resolution}`}destroy(t=!1){super.destroy(t),this.owner=null,this._bounds=null,this._anchor=null,(typeof t=="boolean"?t:t?.style)&&this._style.destroy(t),this._style=null,this._text=null}};function _0(i,t){let e=i[0]??{};return(typeof e=="string"||i[1])&&(O(W,`use new ${t}({ text: "hi!", style }) instead`),e={text:e,style:i[1]}),e}Ss();Mr();var ir=class extends Na{constructor(...t){let e=_0(t,"Text");super(e,Tt),this.renderPipeId="text"}updateBounds(){let t=this._bounds,e=this._anchor,r=At.measureText(this._text,this._style),{width:s,height:o}=r;t.minX=-e._x*s,t.maxX=t.minX+s,t.minY=-e._y*o,t.maxY=t.minY+o}};Fe();bt();rt();$c();de();lh();an();Ss();Mr();kt();var Vw=Io(bl(),1);I.add(A_,E_);var Et={Add:"add",Remove:"remove",Update:"update"},Ha=class{init(t){throw new Error("Method not implemented.")}render(t){throw new Error("Method not implemented.")}},sr=class{rendererName;rendererType;add=async(t,e,r)=>{throw new Error("Method not implemented.")};remove=async(t,e,r)=>{throw new Error("Method not implemented.")};update=async(t,e,r)=>{throw new Error("Method not implemented.")}};var Wa=(i=[],t=[])=>{let e=[],r=[],s=[],o=i.filter(a=>!a.hidden),n=t.filter(a=>!a.hidden);for(let a of o){let c=n.find(l=>l.id===a.id&&l.type===a.type);c?r.push({prev:a,next:c}):e.push(a)}for(let a of n)o.find(l=>l.id===a.id&&l.type===a.type)||s.push(a);for(let a of i){let c=t.find(l=>l.id===a.id&&l.type===a.type);c&&c.hidden&&!a.hidden&&e.push(a)}return{toDeleteElements:e,toUpdateElements:r,toAddElements:s}};var Gr=new(window.AudioContext||window.webkitAudioContext),Ii=class i{static loadedAssets={};static load=async(t,e)=>{if(!i.loadedAssets[t]&&e.byteLength!==0)try{let r=await Gr.decodeAudioData(e);i.loadedAssets[t]=r}catch(r){console.error(`AudioAsset.load: Failed to decode ${t}:`,r)}};static getAsset=t=>i.loadedAssets[t]},Bu=class{_audioSource;_gainNode;volume=1;id;url;loop=!1;constructor(t,e){this.id=t,this.url=e.url,this.loop=e.loop||!1,this.volume=e.volume??1,this._gainNode=Gr.createGain(),this._gainNode.gain.value=this.volume,this._gainNode.connect(Gr.destination)}play=()=>{let t=Ii.getAsset(this.url);if(!t){console.warn("AudioPlayer.play: Asset not found",this.url);return}this._audioSource=Gr.createBufferSource(),this._audioSource.buffer=t,this._audioSource.loop=this.loop,this._gainNode.gain.setValueAtTime(this.volume,Gr.currentTime),this._audioSource.connect(this._gainNode),this._audioSource.start(0)};stop=()=>{this._audioSource&&(this._audioSource.stop(),this._audioSource.disconnect(),this._gainNode.disconnect(),this._gainNode=Gr.createGain(),this._gainNode.gain.value=this.volume,this._gainNode.connect(Gr.destination))}},za=class{audioPlayers=[];stageAudios=[];add=t=>{this.stageAudios.push(t)};remove=t=>{this.stageAudios=this.stageAudios.filter(e=>e.id!==t)};getById=t=>this.stageAudios.find(e=>e.id===t);tick=()=>{for(let e of this.stageAudios){let r=this.audioPlayers.find(s=>s.id===e.id);if(!r){let s=new Bu(e.id,{url:e.url,loop:e.loop,volume:e.volume??1});this.audioPlayers.push(s),s.play();return}(r.url!==e.url||r.loop!==e.loop)&&(r.stop(),r.url=e.url,r.loop=e.loop??!1,r.play()),r.volume!==(e.volume??1)&&(r.volume=e.volume??1,r._gainNode.gain.value=r.volume)}let t=[];for(let e of this.audioPlayers)this.stageAudios.find(r=>r.id===e.id)||(e.stop(),t.push(e.id));this.audioPlayers=this.audioPlayers.filter(e=>!t.includes(e.id))};destroy=()=>{for(let t of this.audioPlayers)t.stop();this.audioPlayers=[],this.stageAudios=[]}};var Xw=i=>i.split("/").pop(),Ru=class{name="advancedBufferLoader";priority=2;constructor(t){this.bufferMap=t}test(t){return!0}async load(t){let e=t.startsWith("file:")?t:Xw(t),r=this.bufferMap[e];if(!r)throw new Error(`Buffer not found for key: ${e}`);return{data:r.buffer,type:r.type,metadata:null}}async testParse(t){return!0}async parse(t){if(t instanceof E)return t;let e=new Blob([t.data],{type:t.type}),r=await createImageBitmap(e);return new E.from(r)}async unload(t){t.destroy(!0)}},Gu=class i extends Ha{static rendererName="pixi";_app;_audioStage=new za;_state={elements:[]};_eventHandler;_plugins;_currentAbortController;_advancedLoader;get canvas(){return this._app.canvas}init=async t=>{let{eventHandler:e,plugins:r,width:s,height:o,backgroundColor:n}=t;for(let c of r)if(c.rendererName!==i.rendererName)throw new Error("Plugin does not match renderer name");this._plugins=r,this._eventHandler=e,this._app=new Ga,this._app.audioStage=this._audioStage,await this._app.init({width:s,height:o,backgroundColor:n});let a=new zt;return a.rect(0,0,s,o),a.fill(n||0),this._app.stage.addChild(a),this._app.stage.width=s,this._app.stage.height=o,this._app.ticker.add(this._app.audioStage.tick),this};destroy=()=>{this._app.audioStage.destroy(),this._app.destroy()};_classifyAsset=t=>t?t.startsWith("audio/")?"audio":t.startsWith("font/")||["application/font-woff","application/font-woff2","application/x-font-ttf","application/x-font-otf"].includes(t)?"font":"texture":"texture";loadAssets=async t=>{if(!t)throw new Error("assetBufferMap is required");let e={audio:{},font:{},texture:{}};for(let[s,o]of Object.entries(t)){let n=this._classifyAsset(o.type);e[n][s]=o}await Promise.all(Object.entries(e.audio).map(([s,o])=>Ii.load(s,o.buffer))),await Promise.all(Object.entries(e.font).map(async([s,o])=>{let n=new Blob([o.buffer],{type:o.type}),a=URL.createObjectURL(n),c=new FontFace(s,`url(${a})`);try{await c.load(),document.fonts.add(c),console.log(`Font loaded successfully: ${s}`)}catch(l){console.error(`Failed to load font ${s}:`,l)}finally{URL.revokeObjectURL(a)}})),this._advancedLoader?Object.assign(this._advancedLoader.bufferMap,e.texture):(this._advancedLoader=new Ru(e.texture),xe.loader.parsers.length=0,xe.reset(),I.add({name:"advanced-buffer-loader",extension:x.Asset,priority:wt.High,loader:this._advancedLoader}),typeof xe.registerPlugin=="function"&&xe.registerPlugin(this._advancedLoader));let r=Object.keys(e.texture);return Promise.all(r.map(s=>xe.load(s)))};loadAudioAssets=async t=>Promise.all(t.map(async e=>{let s=await(await fetch(e)).arrayBuffer();return Ii.load(e,s)}));updatedBackgroundColor=t=>{this._app.renderer.background.color=t};getStageElementBounds=()=>{let t={},e=r=>{if(!(!r||r.length===0))for(let s of r)t[s.label]={x:s.groupTransform.tx,y:s.groupTransform.ty,width:s.width,height:s.height},e(s.children)};return e(this._app.stage.children),t};render=t=>{this._render(this._app,this._app.stage,this._state,t,this._eventHandler),this._state=t};_getRendererByElement=t=>{for(let e of this._plugins)if(e.rendererType===t.type)return e;throw new Error(`No renderer found for element type: ${t.type}`)};_getTransitionByType=t=>{for(let e of this._plugins)if(e.transitionType===t)return e;throw new Error(`No transition found for transition type: ${t}`)};_render=async(t,e,r,s,o)=>{let n=Date.now(),{toAddElements:a,toUpdateElements:c,toDeleteElements:l}=Wa(r.elements,s.elements);this._currentAbortController&&this._currentAbortController.abort(),this._currentAbortController=new AbortController;let h=this._currentAbortController.signal,u=[];for(let f of l){let d=this._getRendererByElement(f);u.push(()=>d.remove(t,{parent:e,element:f,elements:s.elements,transitions:s.transitions,getRendererByElement:this._getRendererByElement,getTransitionByType:this._getTransitionByType,eventHandler:o},h))}for(let f of a){let d=this._getRendererByElement(f);u.push(()=>d.add(t,{parent:e,element:f,elements:s.elements,getRendererByElement:this._getRendererByElement,transitions:s.transitions,getTransitionByType:this._getTransitionByType,eventHandler:o},h))}for(let f of c){let d=this._getRendererByElement(f.next);u.push(()=>d.update(t,{parent:e,prevElement:f.prev,nextElement:f.next,elements:s.elements,getRendererByElement:this._getRendererByElement,transitions:s.transitions,getTransitionByType:this._getTransitionByType,eventHandler:o},h))}try{await Promise.all(u.map(f=>f())),t.stage.children.sort((f,d)=>{let m=s.elements.find(_=>_.id===f.label),g=s.elements.find(_=>_.id===d.label);if(m&&g){let _=m.zIndex??0,b=g.zIndex??0;if(_!==b)return _-b;let y=s.elements.findIndex(T=>T.id===f.label),v=s.elements.findIndex(T=>T.id===d.label);return y-v}if(!m&&!g)return 0;if(!m)return-1;if(!g)return 1}),o&&o("completed",{id:s.id,diffTime:Date.now()-n})}catch(f){if(f.name==="AbortError")return;throw console.error("Error:",f),f}finally{this._currentAbortController=void 0}}},y0=Gu;var ku=class extends sr{static rendererName="pixi";rendererName="pixi";rendererType="sprite";add=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,element:o,transitions:n=[],getTransitionByType:a,eventHandler:c,elements:l=[]}=e,h=o.url?E.from(o.url):E.EMPTY,u,f,d=o.scaleX??1,m=o.scaleY??1;o.hoverUrl&&(u=E.from(o.hoverUrl)),o.clickUrl&&(f=E.from(o.clickUrl));let g=new Nt(h);g.label=o.id,(o.eventName||o.hoverUrl||o.clickUrl)&&(g.cursor="pointer",g.eventMode="static"),o.width!==void 0?g.width=o.width*d:g.width*=d,o.height!==void 0?g.height=o.height*m:g.height*=m,o.anchorX!==void 0&&(g.pivot.x=g.width*o.anchorX),o.anchorY!==void 0&&(g.pivot.y=g.height*o.anchorY),o.rotation!==void 0&&(g.rotation=o.rotation*Math.PI/180),o.x!==void 0&&(g.x=o.x),o.y!==void 0&&(g.y=o.y),o.zIndex!==void 0&&(g.zIndex=o.zIndex),o.alpha!==void 0&&(g.alpha=o.alpha),(u||f)&&g.on("pointerup",()=>{g.texture=h}).on("pointerupoutside",()=>{g.texture=h}).on("pointerleave",()=>{g.texture=h}),f&&g.on("pointerdown",()=>{g.texture=f}),u&&g.on("pointerenter",()=>{g.texture=u}),g.on("pointerup",b=>{b.stopPropagation();let y=b.button;y===0?c&&c(o.eventName,o.eventPayload):y===2&&(o.rightClickEventName&&c?c(o.rightClickEventName):t.stage.emit("rightclick",event))});let _=[];for(let b of n)if(b.elementId===o.id&&b.event===Et.Add){let y=a(b.type);if(!y)throw new Error(`Transition class not found for type ${b.type}`);_.push(y.add(t,g,b,r))}s.addChild(g),Array.isArray(l)&&l.length>0&&s.children.sort((b,y)=>{let v=l.find(C=>C.id===b.label),T=l.find(C=>C.id===y.label);if(v&&T){let C=v.zIndex??0,S=T.zIndex??0;if(C!==S)return C-S;let A=l.findIndex(R=>R.id===b.label),B=l.findIndex(R=>R.id===y.label);return A-B}if(!v&&!T)return 0;if(!v)return-1;if(!T)return 1}),await Promise.all(_)};remove=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,element:o,transitions:n=[],getTransitionByType:a}=e,c=s.getChildByName(o.id);if(!c)throw new Error(`Sprite with id ${o.id} not found`);let l=[];for(let h of n)if(h.elementId===o.id&&h.event===Et.Remove){let u=a(h.type);if(!u)throw new Error(`Transition class not found for type ${h.type}`);l.push(u.remove(t,c,h,r))}await Promise.all(l),c&&c.destroy()};update=async(t,{parent:e,prevElement:r,nextElement:s,transitions:o=[],getTransitionByType:n,eventHandler:a},c)=>{if(c?.aborted)throw new DOMException("Operation aborted","AbortError");let l=e.getChildByName(r.id);if(!l)throw new Error(`Sprite with id ${r.id} not found`);let h=[];for(let d of o)if(d.elementId===r.id&&d.event===Et.Update){let m=n(d.type);if(!m)throw new Error(`Transition class not found for type ${d.type}`);h.push(m.add(t,l,d,c))}h.length>0?(await Promise.all(h),u()):f();function u(){if(r.url!==s.url||r.hoverUrl!==s.hoverUrl||r.clickUrl!==s.clickUrl){if(s.url){let _=E.from(s.url);if(l.texture=_,!r.url&&s.url)if(_.baseTexture.valid){let b=s.scaleX??1,y=s.scaleY??1;l.width=(s.width??_.width)*b,l.height=(s.height??_.height)*y}else _.baseTexture.once("loaded",()=>{let b=s.scaleX??1,y=s.scaleY??1;l.width=(s.width??_.width)*b,l.height=(s.height??_.height)*y})}let m=r.hoverUrl||r.clickUrl,g=s.hoverUrl||s.clickUrl;if(!m&&g){let _=l.texture;l.on("pointerup",()=>{l.texture=_}).on("pointerupoutside",()=>{l.texture=_}).on("pointerleave",()=>{l.texture=_})}if(s.hoverUrl){let _=E.from(s.hoverUrl);l.off("pointerenter"),l.on("pointerenter",()=>{l.texture=_})}if(s.clickUrl){let _=E.from(s.clickUrl);l.off("pointerdown"),l.on("pointerdown",()=>{l.texture=_})}}(s.eventName||s.hoverUrl||s.clickUrl)&&(l.cursor="pointer",l.eventMode="static")}function f(){if(r.url!==s.url||r.hoverUrl!==s.hoverUrl||r.clickUrl!==s.clickUrl){if(s.url){let y=E.from(s.url);if(l.texture=y,!r.url&&s.url)if(y.baseTexture.valid){let v=s.scaleX??1,T=s.scaleY??1;l.width=(s.width??y.width)*v,l.height=(s.height??y.height)*T}else y.baseTexture.once("loaded",()=>{let v=s.scaleX??1,T=s.scaleY??1;l.width=(s.width??y.width)*v,l.height=(s.height??y.height)*T})}let _=r.hoverUrl||r.clickUrl,b=s.hoverUrl||s.clickUrl;if(!_&&b){let y=l.texture;l.on("pointerup",()=>{l.texture=y}).on("pointerupoutside",()=>{l.texture=y}).on("pointerleave",()=>{l.texture=y})}if(s.hoverUrl){let y=E.from(s.hoverUrl);l.off("pointerenter"),l.on("pointerenter",()=>{l.texture=y})}if(s.clickUrl){let y=E.from(s.clickUrl);l.off("pointerdown"),l.on("pointerdown",()=>{l.texture=y})}}s.x!==void 0&&s.x!==r.x&&(l.x=s.x),s.y!==void 0&&s.y!==r.y&&(l.y=s.y),s.rotation!==void 0&&s.rotation!==r.rotation&&(l.rotation=s.rotation*Math.PI/180);let m=s.scaleX??1,g=s.scaleY??1;s.width!==void 0&&(s.width!==r.width||m!==(r.scaleX??1))&&(l.width=s.width*m),s.height!==void 0&&(s.height!==r.height||g!==(r.scaleY??1))&&(l.height=s.height*g),s.anchorX!==void 0&&s.anchorX!==r.anchorX&&(l.pivot.x=l.width*s.anchorX/m),s.anchorY!==void 0&&s.anchorY!==r.anchorY&&(l.pivot.y=l.height*s.anchorY/g),s.zIndex!==void 0&&s.zIndex!==r.zIndex&&(l.zIndex=s.zIndex),s.alpha!==void 0&&s.alpha!==r.alpha&&(l.alpha=s.alpha),(s.eventName||s.hoverUrl||s.clickUrl)&&(l.cursor="pointer",l.eventMode="static")}}};var Va=i=>new Tt({wordWrap:i.wordWrap||!0,breakWords:i.breakWords||!1,align:i.align,fill:i.fill,fontSize:i.fontSize,lineHeight:i.lineHeight,wordWrapWidth:i.wordWrapWidth,fontFamily:i.fontFamily||"Roboto",stroke:i.strokeColor?{color:i.strokeColor,width:i.strokeWidth}:void 0}),Iu=class{static rendererName="pixi";rendererName="pixi";rendererType="text";add=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,element:o,transitions:n=[],getTransitionByType:a,eventHandler:c}=e,l=Va(o.style),h=new ir({text:o.text,style:l}),u;o.hoverStyle&&(u=Va(o.hoverStyle));let f;if(o.clickedStyle&&(f=Va(o.clickedStyle)),(o.eventName||o.clickedStyle||o.hoverStyle)&&(h.cursor="pointer",h.eventMode="static"),h.label=o.id,o.x!==void 0&&(h.x=o.x),o.y!==void 0&&(h.y=o.y),o.anchorX!==void 0&&(h.anchor.x=o.anchorX),o.anchorY!==void 0&&(h.anchor.y=o.anchorY),o.anchorX!==void 0||o.anchorY!==void 0){let m=h.getLocalBounds();h.hitArea=new V(-m.width*h.anchor.x,-m.height*h.anchor.y,m.width,m.height)}h.on("pointerupoutside",()=>{h.style=l}).on("pointerup",()=>{h.style=l}).on("pointerleave",()=>{h.style=l}),h.on("pointerup",m=>{o.clickSoundUrl&&t.soundStage&&t.soundStage.add({id:`${o.id}-click-${Math.random()}`,url:o.clickSoundUrl,loop:!1,volume:o.clickSoundVolume??50/100}),m.stopPropagation(),c&&c(o.eventName,o.eventPayload)}),f&&h.on("pointerdown",()=>{h.style=f}),u&&h.on("pointerenter",()=>{h.style=u,o.hoverSoundUrl&&t.soundStage&&o.hoverSoundVolume!==void 0&&t.soundStage.add({id:`${o.id}-hover-${Math.random()}`,url:o.hoverSoundUrl,loop:!1,volume:o.hoverSoundVolume/100})});let d=[];for(let m of n)if(m.elementId===o.id&&m.event===Et.Add){let g=a(m.type);if(!g)throw new Error(`Transition class not found for type ${m.type}`);d.push(g.add(t,h,m,r))}s.addChild(h),await Promise.all(d)};remove=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,element:o,transitions:n=[],getTransitionByType:a}=e,c=s.getChildByName(o.id);if(!c){console.warn(`Text with id ${o.id} not found`);return}let l=[];for(let h of n)if(h.elementId===o.id&&h.event===Et.Remove){let u=a(h.type);if(!u)throw new Error(`Transition class not found for type ${h.type}`);l.push(u.remove(t,c,h,r))}await Promise.all(l),c&&c.destroy()};update=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,prevElement:o,nextElement:n,transitions:a,getTransitionByType:c,eventHandler:l}=e,h=s.getChildByName(o.id);if(!h){console.warn(`Text with id ${o.id} not found`);return}if(JSON.stringify(o)!==JSON.stringify(n)){let u=[this.add(t,{parent:s,element:n,transitions:a,getTransitionByType:c,eventHandler:l},r),this.remove(t,{parent:s,element:o,transitions:a,getTransitionByType:c},r)];await Promise.all(u)}else o.text!==n.text&&(h.text=n.text),JSON.stringify(o.style)!==JSON.stringify(n.style)&&(h.style=Va(n?.style)),n.x!==void 0&&(h.x=n.x),n.y!==void 0&&(h.y=n.y)}};var Fi=(i,t=!1)=>new Tt({wordWrap:i.wordWrap||!0,breakWords:t,align:i.align,fill:i.fill,fontSize:i.fontSize,lineHeight:i.lineHeight,wordWrapWidth:i.wordWrapWidth,fontFamily:i.fontFamily||"Roboto",stroke:i.strokeColor?{color:i.strokeColor,width:i.strokeWidth}:void 0}),Fu=class{static rendererName="pixi";rendererName="pixi";rendererType="text-revealing";add=async(t,{parent:e,element:r})=>{let s=Fi(r.style,r.text),o=new ir({text:"",style:s});o.label=r.id,o.text_id=r.text;let n=new at;r.x!==void 0&&(n.x=r.x),r.y!==void 0&&(n.y=r.y),n.addChild(o),n.label=r.id,e.addChild(n);let a=r.style.wordWrapWidth||500,c=r.text?[{text:r.text,style:r.style}]:r.segments,l=[],h=[],u=0,f=0,d=0;for(;;){let S=c[0];if(!S){h.length>0&&l.push({lineParts:h,y:f});break}if(f>1e4)break;let A={...S.style,wordWrapWidth:a-u},B=At.measureText(S.text,Fi(A));B.lineHeight>d&&(d=B.lineHeight);let R=At.measureText("a",Fi(A)),M=At.measureText("a a",Fi(A)).width-R.width*2;if(B.lineWidths[0]+u>a){u=0,l.push({lineParts:h,y:f}),f+=d,d=0,h=[];continue}let k=B.lines[0],N=B.lines.slice(1).join(" "),$={text:k,style:A,x:u,y:0};if(h.push($),N&&N.length>0?S.text=N:c.shift(),!(!k||k.length===0)){if(S.furigana){let q=At.measureText(S.furigana.text,Fi(S.furigana.style)),D={text:S.furigana.text,style:S.furigana.style,x:u+(B.width-q.width)/2,y:-10};h.push(D)}u+=B.lineWidths[0]+M}}l.forEach(S=>{let A=new at;A.y=S.y,A.alpha=0,S.lineParts.forEach(B=>{let R=new ir({text:B.text,style:Fi(B.style),x:B.x,y:B.y});A.addChild(R)}),n.addChild(A)});let m=new zt,g=1e3,_=a/2,b=a/2;m.fill({color:16777215,alpha:1}),m.rect(0,0,_,g);for(let S=0;S<b;S++)m.fill({color:16777215,alpha:1-S/b}),m.rect(_+S,0,_+1,g);let y=t.renderer.generateTexture(m),v=new Nt(y);v.x=-1.35*_-b,t.stage.addChild(v);let T=0,C=1;if(l.length!==0){if(r.displaySpeed===100||r.hasEnded){n.children.forEach(S=>{t.stage.removeChild(v),S.mask=null,S.alpha=1});return}await new Promise(S=>{let A=B=>{if(C>n.children.length){S();return}n.getChildAt(C).mask||(n.getChildAt(C).mask=v,n.getChildAt(C).alpha=1),T+=B.deltaMS;let w=(r.displaySpeed||50)/1e3;v.x+=w*T,v.x>=0&&(n.getChildAt(C).mask=null,v.x=-1.35*_-b,C=C+1,T=0,C>=n.children.length&&(n.getChildAt(C-1).mask=null,t.ticker.remove(A),S()))};t.ticker.add(A)})}};remove=async(t,e)=>{let{parent:r,element:s,transitions:o=[],getTransitionByType:n}=e,a=r.getChildByName(s.id);if(!a){console.warn(`Text with id ${s.id} not found`,{parent:r});return}let c=[];for(let l of o)if(l.elementId===s.id&&l.event===Et.Remove){let h=n(l.type);if(!h)throw new Error(`Transition class not found for type ${l.type}`);c.push(h.remove(t,a,l))}await Promise.all(c),a.destroy()};update=async(t,e)=>{let{parent:r,prevElement:s,nextElement:o}=e;if(!r.getChildByName(s.id)){console.warn(`Text with id ${s.id} not found`,{parent:r});return}await this.remove(t,{parent:r,element:s}),await this.add(t,{parent:r,element:o})}};var Uu=class{static rendererName="pixi";rendererName="pixi";rendererType="container";add=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,element:o,elements:n=[],transitions:a=[],getTransitionByType:c,getRendererByElement:l,eventHandler:h}=e,u=structuredClone(o),f=new at;f.label=u.id;let d={};u.x!==void 0&&(typeof u.x=="string"&&u.x.endsWith("%")?f.x=Number(u.x.replace("%",""))*t.screen.width/100:f.x=u.x),u.y!==void 0&&(typeof u.y=="string"&&u.y.endsWith("%")?f.y=Number(u.y.replace("%",""))*t.screen.height/100:f.y=u.y),u.scaleX!==void 0&&(f.scale.x=u.scaleX),u.scaleY!==void 0&&(f.scale.y=u.scaleY),u.zIndex!==void 0&&(f.zIndex=u.zIndex),u.rotation!==void 0&&(f.rotation=u.rotation*Math.PI/180),u.propagateEvents&&(f.eventMode="static",["pointerup","pointerupoutside","pointerleave","pointerdown","pointerenter"].forEach(R=>{f.on(R,w=>{w.stopPropagation();for(let M of f.children)M.emit(R)})}));let m=u.gap||0,g=new zt().roundRect(0,0,u.width||0,u.height||0,1).fill(u.fill?u.fill.color:"transparent"),_=[0,.5,1],b=u.anchorX??0,y=u.anchorY??0;if(!_.includes(b))throw new Error(`Invalid anchorX value: ${b}. Must be 0, 0.5, or 1`);if(!_.includes(y))throw new Error(`Invalid anchorY value: ${y}. Must be 0, 0.5, or 1`);if(u.direction){let R,w;u.direction==="horizontal"?(R=u.children.reduce((k,N,$)=>k+N.width+($>0?m:0),0),w=u.children.reduce((k,N)=>Math.max(k,N.height||0),0)):u.direction==="vertical"&&(R=u.children.reduce((k,N)=>Math.max(k,N.width||0),0),w=u.children.reduce((k,N,$)=>k+N.height+($>0?m:0),0));let M={x:b,y};u.direction==="horizontal"?this.layoutChildren({element:u,anchor:M,totalWidth:R,totalHeight:w,gap:m,direction:"horizontal",scroll:u.scroll}):u.direction==="vertical"&&this.layoutChildren({element:u,anchor:M,totalWidth:R,totalHeight:w,gap:m,direction:"vertical",scroll:u.scroll}),this.setupScrolling({container:f,element:u,totalHeight:w,totalWidth:R,eventHandler:h,sliderRef:d}),g=this.createContainerGraphic(u,R,w,M)}g.label=`${u.id}-container-background`,f.addChild(g);let v=[];(u.children||[]).forEach(R=>{let w=l(R),M=u.width||0,k=u.height||0,N=b*M,$=y*k,q={zIndex:u.zIndex,...R,x:(R.x||0)+N,y:(R.y||0)+$};v.push(w.add(t,{parent:f,element:q,elements:u.children||[],transitions:a,getTransitionByType:c,getRendererByElement:l,eventHandler:h},r))});let T=[];for(let R of a)if(R.elementId===u.id&&R.event===Et.Add){let w=c(R.type);if(!w)throw new Error(`Transition class not found for type ${R.type}`);T.push(w.add(t,f,R,r))}s.addChild(f),await Promise.all([...v,...T]);let{width:C,height:S}=this.getContainerDimensions(u,f),A=b*C,B=y*S;f.pivot.x=A,f.pivot.y=B};remove=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");console.log("remove container 11111111111");let{parent:s,element:o}=e,n=s.getChildByName(o.id);if(!n){console.warn(`Container with id ${o.id} not found`);return}n.destroy()};update=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,prevElement:o,nextElement:n,elements:a=[],getRendererByElement:c,transitions:l=[],getTransitionByType:h,eventHandler:u}=e,f=structuredClone(o),d=structuredClone(n),m=s.getChildByName(f.id);if(!m){console.warn(`Container with id ${f.id} not found`);return}d.x!==void 0&&(m.x=d.x),d.y!==void 0&&(m.y=d.y),d.rotation!==void 0&&d.rotation!==f.rotation&&(m.rotation=d.rotation*Math.PI/180);let g=[0,.5,1],_=d.anchorX??0,b=d.anchorY??0;if(!g.includes(_))throw new Error(`Invalid anchorX value: ${_}. Must be 0, 0.5, or 1`);if(!g.includes(b))throw new Error(`Invalid anchorY value: ${b}. Must be 0, 0.5, or 1`);if(d.direction){let w=d.gap||0,M,k;d.direction==="horizontal"?(M=d.children.reduce((q,D,U)=>q+D.width+(U>0?w:0),0),k=d.children.reduce((q,D)=>Math.max(q,D.height||0),0)):d.direction==="vertical"&&(M=d.children.reduce((q,D)=>Math.max(q,D.width||0),0),k=d.children.reduce((q,D,U)=>q+D.height+(U>0?w:0),0));let N={x:_,y:b};d.direction==="horizontal"?this.layoutChildren({element:d,anchor:N,totalWidth:M,totalHeight:k,gap:w,direction:"horizontal",scroll:d.scroll}):d.direction==="vertical"&&this.layoutChildren({element:d,anchor:N,totalWidth:M,totalHeight:k,gap:w,direction:"vertical",scroll:d.scroll});let $=m.children.find(q=>q.label===`${d.id}-container-background`);if($){$.destroy();let q=this.createContainerGraphic(d,M,k,N);q.label=`${d.id}-container-background`,m.addChildAt(q,0)}f.scroll!==d.scroll&&this.setupScrolling({container:m,element:d,totalHeight:k,totalWidth:M,eventHandler:u,sliderRef:{}})}let y=[],{toAddElements:v,toUpdateElements:T,toDeleteElements:C}=Wa(f.children,d.children);if(d.direction&&d.children){let w=new Map;d.children.forEach(M=>{w.set(M.id,{x:M.x,y:M.y})}),T.forEach(M=>{let k=w.get(M.next.id);k&&(M.next.x=k.x,M.next.y=k.y)}),v.forEach(M=>{let k=w.get(M.id);k&&(M.x=k.x,M.y=k.y)})}for(let w of C){let M=c(w);y.push(M.remove(t,{parent:m,element:w,elements:d.children||[],transitions:l,getTransitionByType:h,getRendererByElement:c,eventHandler:u},r))}for(let w of v){let M=c(w),k=d.width||0,N=d.height||0,$=_*k,q=b*N,D={...w,x:(w.x||0)+$,y:(w.y||0)+q};y.push(M.add(t,{parent:m,element:D,elements:d.children||[],transitions:l,getTransitionByType:h,getRendererByElement:c,eventHandler:u},r))}for(let w of T){let M=c(w.next),k=d.width||0,N=d.height||0,$=_*k,q=b*N,D=f.anchorX??0,U=f.anchorY??0,ee=f.width||0,Z=f.height||0,Ft=D*ee,he=U*Z,or={...w.prev,x:(w.prev.x||0)+Ft,y:(w.prev.y||0)+he},nr={...w.next,x:(w.next.x||0)+$,y:(w.next.y||0)+q};y.push(M.update(t,{parent:m,prevElement:or,nextElement:nr,elements:d.children||[],transitions:l,getTransitionByType:h,getRendererByElement:c,eventHandler:u},r))}d.children&&d.children.length>0&&m.children.sort((w,M)=>{let k=d.children.find($=>$.id===w.label),N=d.children.find($=>$.id===M.label);if(k&&N){let $=k.zIndex??0,q=N.zIndex??0;if($!==q)return $-q;let D=d.children.indexOf(k),U=d.children.indexOf(N);return D-U}if(!k&&!N)return 0;if(!k)return-1;if(!N)return 1}),await Promise.all(y);let{width:S,height:A}=this.getContainerDimensions(d,m),B=_*S,R=b*A;m.pivot.x=B,m.pivot.y=R};layoutChildren({element:t,anchor:e,totalWidth:r,totalHeight:s,gap:o,direction:n,scroll:a}){let c=n==="horizontal",l=c?"x":"y",h=c?"y":"x",u=c?"width":"height",f=c?"height":"width",d=c?r:s,m=c?s:r,g=c?e.x:e.y,_=c?e.y:e.x;if(!a&&t[u]!==void 0&&t[u]<d){let y=0,v=0,T=0,C=0;(t.children||[]).forEach((S,A)=>{y>0&&y+S[u]>t[u]&&(this.alignRowElements(t.children.slice(C,A),l,g,t[u]),y=0,v+=T+o,T=0,C=A),S[l]=y,S[h]=v,y+=S[u],A<t.children.length-1&&(y+=o),T=Math.max(T,S[f]||0)}),C<t.children.length&&this.alignRowElements(t.children.slice(C),l,g,t[u])}else{if(g===0){let y=0;(t.children||[]).forEach((v,T)=>{let C=v[u]||0,S=c?v.anchorX||0:v.anchorY||0;v[l]=y+C*S,y+=C,T<t.children.length-1&&(y+=o)})}else if(g===1){let y=-d;(t.children||[]).forEach((v,T)=>{let C=v[u]||0,S=c?v.anchorX||0:v.anchorY||0;v[l]=y+C*S,y+=C,T<t.children.length-1&&(y+=o)})}else if(g===.5){let y=-d/2;(t.children||[]).forEach((v,T)=>{let C=v[u]||0,S=c?v.anchorX||0:v.anchorY||0;v[l]=y+C*S,y+=C,T<t.children.length-1&&(y+=o)})}_===0?(t.children||[]).forEach(y=>{let v=y[f]||0,T=c?y.anchorY||0:y.anchorX||0;y[h]=v*T}):_===.5?(t.children||[]).forEach(y=>{let v=y[f]||0,T=c?y.anchorY||0:y.anchorX||0;y[h]=-v/2+v*T}):_===1&&(t.children||[]).forEach(y=>{let v=y[f]||0,T=c?y.anchorY||0:y.anchorX||0;y[h]=-v+v*T})}}alignRowElements(t,e,r,s){if(!t.length)return;let o=t.reduce((n,a,c)=>n+a[e==="x"?"width":"height"]+(c>0,0),0);if(r===.5){let a=(s-o)/2;t.forEach(c=>{c[e]=a,a+=c[e==="x"?"width":"height"]+0})}else if(r===1){let a=s-o;t.forEach(c=>{c[e]=a,a+=c[e==="x"?"width":"height"]+0})}}createContainerGraphic(t,e,r,s){let o=new zt().roundRect(0,0,e,r,1).fill(t.fill?t.fill.color:"transparent");return s.x===1&&(o.x-=t.width),s.x===.5&&(o.x-=t.width/2),s.y===1&&(o.y-=t.height),s.y===.5&&(o.y-=t.height/2),o}getContainerDimensions(t,e){let r=t.width||0,s=t.height||0;if(!t.direction&&(!t.width||!t.height)&&e.children&&e.children.length>0){let o=1/0,n=-1/0,a=1/0,c=-1/0;e.children.forEach(l=>{let h=l.x||0,u=l.y||0,f=l.width||0,d=l.height||0;o=Math.min(o,h),n=Math.max(n,h+f),a=Math.min(a,u),c=Math.max(c,u+d)}),t.width||(r=n-o,(isNaN(r)||!isFinite(r))&&(r=0)),t.height||(s=c-a,(isNaN(s)||!isFinite(s))&&(s=0))}return{width:r,height:s}}setupScrolling({container:t,element:e,totalHeight:r,totalWidth:s,eventHandler:o,sliderRef:n}){let a=e.scroll&&e.height&&r>e.height,c=e.scroll&&e.width&&s>e.width;if(a||c){let l=0,h=0,u=-r+e.height,f=-s+e.width,d=new zt().rect(0,0,e.width||s,e.height||r).fill("red");t.mask=d,t.eventMode="static",t.addChild(d),t.on("wheel",m=>{if(a&&m.deltaY!==0&&(l-m.deltaY>0||l-m.deltaY<u||(l-=m.deltaY,t.y-=m.deltaY,d.y+=m.deltaY)),c&&(m.deltaX!==0||m.shiftKey&&m.deltaY!==0)){let g=m.deltaX!==0?m.deltaX:m.deltaY;if(h-g>0||h-g<f)return;h-=g,t.x-=g,d.x+=g}})}}};var $w={linear:i=>i},Yw=(i,t,e,r)=>i+(t-i)*$w[r](e);function b0(i,t,e){typeof t=="string"&&(t=t.split("."));let r=i;for(let s of t){if(r==null)return e;r=r[s]}return r===void 0?e:r}function v0(i,t,e){typeof t=="string"&&(t=t.split("."));let r=i;for(let s=0;s<t.length-1;s++){let o=t[s];o in r||(r[o]={}),r=r[o]}return r[t[t.length-1]]=e,i}var jw=(i,t)=>{let e=[],r=0,s;i.forEach(({value:n,duration:a,easing:c,relative:l},h)=>{h===0?(s=n,e.push({time:r,value:n,easing:"linear"})):a!==void 0&&c!==void 0&&(r+=a,l?s=s+n:s=n,e.push({time:r,value:s,easing:c}))});let o=0;for(let n=0;n<e.length-1;n++){let{time:a,value:c,easing:l}=e[n],{time:h,value:u}=e[n+1];if(t>=a&&t<=h){let f=(t-a)/(h-a);o=Yw(c,u,f,l);break}else t>h&&(o=u)}return o};function Kw(i){return Math.max.apply(null,i)}var Du=class{static rendererName="pixi";rendererName="pixi";transitionType="keyframes";_transition=async(t,e,r,s)=>new Promise((o,n)=>{if(s?.aborted){n(new DOMException("Operation aborted","AbortError"));return}let{properties:a}=r,c=Array.isArray(a)?a:Object.entries(a).map(([_,b])=>({...b,property:_})),l=c.map(_=>_.keyframes.reduce((b,y)=>b+y.duration||0,0)),h=Kw(l),u=0,f={};c.forEach(_=>{f[_.property]=b0(e,_.property)});let d=_=>{let b={};c.forEach(y=>{let v=[];y.initialValue!==void 0?v=[{value:y.initialValue,duration:0}]:v=[{value:f[y.property],duration:0}],v=v.concat(y.keyframes),v0(b,y.property,jw(v,_))}),c.forEach(y=>{let{property:v}=y;e&&!e.destroyed&&v0(e,v,b0(b,v))})},m=()=>{t.ticker.remove(g),d(h)};s&&s.addEventListener("abort",()=>{m(),n(new DOMException("Operation aborted","AbortError"))});let g=_=>{if(u+=_.deltaMS,u>=h){t.ticker.remove(g),o();return}d(u)};if(s?.aborted){m(),n(new DOMException("Operation aborted","AbortError"));return}t.ticker.add(g)});add=async(t,e,r,s)=>this._transition(t,e,r,s);remove=async(t,e,r,s)=>this._transition(t,e,r,s)};var Ou=class{static rendererName="pixi";rendererName="pixi";rendererType="rect";add=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,element:o,transitions:n=[],getTransitionByType:a,eventHandler:c}=e,l=new zt;l.label=o.id,o.x!==void 0&&(l.x=o.x),o.y!==void 0&&(l.y=o.y),o.alpha!==void 0&&(l.alpha=o.alpha),o.scaleX!==void 0&&(l.scale.x=o.scaleX),o.scaleY!==void 0&&(l.scale.y=o.scaleY),o.rotation!==void 0&&(l.rotation=o.rotation*Math.PI/180);let h=o.width,u=o.height;l.roundRect(0,0,h,u,o.radius??0),o.fill&&l.fill(o.fill),o.border&&l.stroke({width:o.border.width,color:o.border.color,alpha:o.border.alpha??1,alignment:o.border.alignment??1}),o.anchorX!==void 0&&(l.pivot.x=h*o.anchorX),o.anchorY!==void 0&&(l.pivot.y=u*o.anchorY),(o.clickEventName||o.rightClickEventName)&&c&&(l.eventMode="static",l.on("pointerup",d=>{d.button===0?c(o.clickEventName):d.button===2&&c(o.rightClickEventName)})),o.wheelEventName&&c&&(l.eventMode="static",l.on("wheel",d=>{c(o.wheelEventName,{deltaY:d.deltaY})}));let f=[];for(let d of n)if(d.elementId===o.id&&d.event===Et.Add){let m=a(d.type);if(!m)throw new Error(`Transition class not found for type ${d.type}`);f.push(m.add(t,l,d,r))}s.addChild(l),await Promise.all(f)};remove=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,element:o,transitions:n=[],getTransitionByType:a}=e,c=s.getChildByName(o.id);if(!c)throw new Error(`Rect with id ${o.id} not found`);let l=[];for(let h of n)if(h.elementId===o.id&&h.event===Et.Remove){let u=a(h.type);if(!u)throw new Error(`Transition class not found for type ${h.type}`);l.push(u.remove(t,c,h,r))}await Promise.all(l),c&&c.destroy()};update=async(t,{parent:e,prevElement:r,nextElement:s,transitions:o=[],getTransitionByType:n,eventHandler:a},c)=>{if(c?.aborted)throw new DOMException("Operation aborted","AbortError");let l=e.getChildByName(r.id);if(!l)throw new Error(`Rect with id ${r.id} not found`);let h=[];for(let u of o)if(u.elementId===r.id&&u.event===Et.Update){let f=n(u.type);if(!f)throw new Error(`Transition class not found for type ${u.type}`);h.push(f.add(t,l,u,c))}if(h.length>0)await Promise.all(h),(r.width!==s.width||r.height!==s.height||r.fill!==s.fill)&&(l.clear(),l.rect(0,0,s.width,s.height),l.fill(s.fill)),r.anchorX!==void 0&&s.anchorX!==r.anchorX&&(l.pivot.x=s.width*s.anchorX),r.anchorY!==void 0&&s.anchorY!==r.anchorY&&(l.pivot.y=s.height*s.anchorY);else{r.x!==void 0&&s.x!==r.x&&(l.x=s.x),r.y!==void 0&&s.y!==r.y&&(l.y=s.y),r.alpha!==void 0&&s.alpha!==r.alpha&&(l.alpha=s.alpha),r.scaleX!==void 0&&s.scaleX!==r.scaleX&&(l.scale.x=s.scaleX),r.scaleY!==void 0&&s.scaleY!==r.scaleY&&(l.scale.y=s.scaleY),r.rotation!==void 0&&s.rotation!==r.rotation&&(l.rotation=s.rotation*Math.PI/180);let u=JSON.stringify(r.border)!==JSON.stringify(s.border);(r.width!==s.width||r.height!==s.height||r.radius!==s.radius||r.fill!==s.fill||u)&&(l.clear(),l.roundRect(0,0,s.width,s.height,s.radius??0),s.fill&&l.fill(s.fill),s.border&&l.stroke({width:s.border.width,color:s.border.color,alpha:s.border.alpha??1,alignment:s.border.alignment??1})),r.anchorX!==void 0&&s.anchorX!==r.anchorX&&(l.pivot.x=s.width*s.anchorX),r.anchorY!==void 0&&s.anchorY!==r.anchorY&&(l.pivot.y=s.height*s.anchorY)}}};var Lu=class extends sr{static rendererName="pixi";rendererName="pixi";rendererType="slider";add=async(t,{parent:e,element:r,transitions:s=[],getTransitionByType:o,eventHandler:n,ref:a})=>{let{direction:c,idleThumb:l,hoverThumb:h,idleBar:u,hoverBar:f,dragEndEventName:d,dragEventName:m,dragEventPayload:g,initialValue:_}=r,b={horizontal:{axis:"x",size:"width"},vertical:{axis:"y",size:"height"}},y=b[c].axis,v=b[c].size,T=E.from(l),C=E.from(h),S=E.from(u),A=E.from(f),B=new Nt({texture:S,anchor:{x:0,y:0}});B.label=r.id;let R=B[v];B.x=r.x||0,B.y=r.y||0;let w=new Nt({texture:T,anchor:{x:.5,y:.5}});if(w.y=B.height/2,w.x=B.width/2,w.eventMode="static",w.cursor="pointer",B.eventMode="static",B.cursor="pointer",w.on("pointerdown",N).on("pointerup",$).on("pointerupoutside",$),B.on("pointerdown",M).on("pointerup",k).on("pointerupoutside",k),B.addChild(w),_!==void 0){let U=w[v]/2;w[y]=_/100*(R-w[v])+U}function M(U){w.texture=C,B.texture=A,q(U),t.stage.eventMode="static",t.stage.addEventListener("pointermove",q)}function k(U){w.texture=T,B.texture=S,q(U),t.stage.eventMode="auto",t.stage.removeEventListener("pointermove",q)}function N(U){U.stopPropagation(),w.texture=C,B.texture=A,t.stage.eventMode="static",t.stage.addEventListener("pointermove",q)}function $(U){if(w.texture=T,B.texture=S,t.stage.eventMode="auto",t.stage.removeEventListener("pointermove",q),d){let ee=B.toLocal(U.global)[y],Z=w[v]/2;w[y]=Math.max(0+Z,Math.min(ee,R-Z));let Ft=Math.floor((w[y]-Z)/(R-w[v])*100),he=JSON.stringify(g);n&&n(d,JSON.parse(he.replace('"{{ value }}"',String(Ft))))}}function q(U){let ee=B.toLocal(U.global)[y],Z=w[v]/2;w[y]=Math.max(0+Z,Math.min(ee,R-Z));let Ft=Math.floor((w[y]-Z)/(R-w[v])*100);if(m){let he=JSON.stringify(g);n&&n(m,JSON.parse(he.replace('"{{ value }}"',String(Ft))))}return Ft}a&&(a.current={updateValue:U=>{let ee=w[v]/2;w[y]=U/100*(R-w[v])+ee}});let D=[];for(let U of s)if(U.elementId===r.id&&U.event===Et.Add){let ee=o(U.type);if(!ee)throw new Error(`Transition class not found for type ${U.type}`);D.push(ee.add(t,B,U))}e.addChild(B),await Promise.all(D)};remove=async(t,e)=>{let{parent:r,element:s,transitions:o=[],getTransitionByType:n}=e,a=r.getChildByName(s.id);if(!a){console.warn(`Sprite with id ${s.id} not found`);return}let c=[];for(let l of o)if(l.elementId===s.id&&l.event===Et.Remove){let h=n(l.type);if(!h)throw new Error(`Transition class not found for type ${l.type}`);c.push(h.remove(t,a,l))}await Promise.all(c),a.destroy()};update=async(t,{parent:e,prevElement:r,nextElement:s,transitions:o,getTransitionByType:n,eventHandler:a})=>{if(!e.getChildByName(r.id)){console.warn(`Slider with id ${r.id} not found`,{parent:e});return}JSON.stringify(r)!==JSON.stringify(s)&&await Promise.all([this.remove(t,{parent:e,element:r,transitions:o,getTransitionByType:n,eventHandler:a}),this.add(t,{parent:e,element:s,transitions:o,getTransitionByType:n,eventHandler:a})])}};var Nu=class extends sr{static rendererName="pixi";rendererName="pixi";rendererType="audio";add=async(t,{parent:e,element:r,transitions:s=[],getTransitionByType:o})=>{r.delay?setTimeout(()=>{t.audioStage.add({id:r.id,url:r.url,loop:r.loop??!1,volume:r.volume??1})},r.delay):t.audioStage.add({id:r.id,url:r.url,loop:r.loop??!1,volume:r.volume??1})};remove=async(t,e)=>{let{element:r}=e;t.audioStage.remove(r.id)};update=async(t,{parent:e,prevElement:r,nextElement:s,transitions:o,getTransitionByType:n})=>{if(r.url!==s.url||r.volume!==s.volume){let a=t.audioStage.getById(r.id);a&&(a.url=s.url,a.volume=s.volume??1)}}};var Hu=class{constructor(){this.cache=new Map}async load(t){let e=[];for(let[r,s]of Object.entries(t))this.cache.has(r)||e.push([r,s]);e.length>0&&await Promise.all(e.map(async([r,s])=>{let a={buffer:await(await fetch(s.url)).arrayBuffer(),type:s.type};this.cache.set(r,a)}))}getBufferMap(){let t={};for(let[e,r]of this.cache.entries())t[e]=r;return t}clear(){this.cache.clear()}size(){return this.cache.size}has(t){return this.cache.has(t)}},qw=()=>new Hu;var tj=y0;export{Nu as AudioPlugin,Uu as ContainerRendererPlugin,Du as KeyframeTransitionPlugin,Ou as RectRendererPlugin,Lu as SliderRendererPlugin,ku as SpriteRendererPlugin,Iu as TextRendererPlugin,Fu as TextRevealingRendererPlugin,qw as createAssetBufferManager,tj as default};
1140
+ `,ki=null,Bo=class{constructor(){ki||(ki=URL.createObjectURL(new Blob([Uw],{type:"application/javascript"}))),this.worker=new Worker(ki)}};Bo.revokeObjectURL=function(){ki&&(URL.revokeObjectURL(ki),ki=null)};var f0=0,Cu,Eu=class{constructor(){this._initialized=!1,this._createdWorkers=0,this._workerPool=[],this._queue=[],this._resolveHash={}}isImageBitmapSupported(){return this._isImageBitmapSupported!==void 0?this._isImageBitmapSupported:(this._isImageBitmapSupported=new Promise(t=>{let{worker:e}=new Gi;e.addEventListener("message",r=>{e.terminate(),Gi.revokeObjectURL(),t(r.data)})}),this._isImageBitmapSupported)}loadImageBitmap(t,e){return this._run("loadImageBitmap",[t,e?.data?.alphaMode])}async _initWorkers(){this._initialized||(this._initialized=!0)}_getWorker(){Cu===void 0&&(Cu=navigator.hardwareConcurrency||4);let t=this._workerPool.pop();return!t&&this._createdWorkers<Cu&&(this._createdWorkers++,t=new Bo().worker,t.addEventListener("message",e=>{this._complete(e.data),this._returnWorker(e.target),this._next()})),t}_returnWorker(t){this._workerPool.push(t)}_complete(t){t.error!==void 0?this._resolveHash[t.uuid].reject(t.error):this._resolveHash[t.uuid].resolve(t.data),this._resolveHash[t.uuid]=null}async _run(t,e){await this._initWorkers();let r=new Promise((s,o)=>{this._queue.push({id:t,arguments:e,resolve:s,reject:o})});return this._next(),r}_next(){if(!this._queue.length)return;let t=this._getWorker();if(!t)return;let e=this._queue.pop(),r=e.id;this._resolveHash[f0]={resolve:e.resolve,reject:e.reject},t.postMessage({data:e.arguments,uuid:f0++,id:r})}},Mu=new Eu;Fe();var Dw=[".jpeg",".jpg",".png",".webp",".avif"],Ow=["image/jpeg","image/png","image/webp","image/avif"];async function Lw(i,t){let e=await L.get().fetch(i);if(!e.ok)throw new Error(`[loadImageBitmap] Failed to fetch ${i}: ${e.status} ${e.statusText}`);let r=await e.blob();return t?.data?.alphaMode==="premultiplied-alpha"?createImageBitmap(r,{premultiplyAlpha:"none"}):createImageBitmap(r)}var Da={name:"loadTextures",extension:{type:x.LoadParser,priority:wt.High,name:"loadTextures"},config:{preferWorkers:!0,preferCreateImageBitmap:!0,crossOrigin:"anonymous"},test(i){return ce(i,Ow)||le(i,Dw)},async load(i,t,e){let r=null;globalThis.createImageBitmap&&this.config.preferCreateImageBitmap?this.config.preferWorkers&&await Mu.isImageBitmapSupported()?r=await Mu.loadImageBitmap(i,t):r=await Lw(i,t):r=await new Promise((o,n)=>{r=new Image,r.crossOrigin=this.config.crossOrigin,r.src=i,r.complete?o(r):(r.onload=()=>{o(r)},r.onerror=n)});let s=new jt({resource:r,alphaMode:"premultiply-alpha-on-upload",resolution:t.data?.resolution||Mi(i),...t.data});return Bi(s,e,i)},unload(i){i.destroy(!0)}};P();zc();Wc();var p0=[".mp4",".m4v",".webm",".ogg",".ogv",".h264",".avi",".mov"],Nw=p0.map(i=>`video/${i.substring(1)}`);function Hw(i,t,e){e===void 0&&!t.startsWith("data:")?i.crossOrigin=zw(t):e!==!1&&(i.crossOrigin=typeof e=="string"?e:"anonymous")}function Ww(i){return new Promise((t,e)=>{i.addEventListener("canplaythrough",r),i.addEventListener("error",s),i.load();function r(){o(),t()}function s(n){o(),e(n)}function o(){i.removeEventListener("canplaythrough",r),i.removeEventListener("error",s)}})}function zw(i,t=globalThis.location){if(i.startsWith("data:"))return"";t||(t=globalThis.location);let e=new URL(i,document.baseURI);return e.hostname!==t.hostname||e.port!==t.port||e.protocol!==t.protocol?"anonymous":""}var m0={name:"loadVideo",extension:{type:x.LoadParser,name:"loadVideo"},test(i){let t=ce(i,Nw),e=le(i,p0);return t||e},async load(i,t,e){let r={...Xr.defaultOptions,resolution:t.data?.resolution||Mi(i),alphaMode:t.data?.alphaMode||await hn(),...t.data},s=document.createElement("video"),o={preload:r.autoLoad!==!1?"auto":void 0,"webkit-playsinline":r.playsinline!==!1?"":void 0,playsinline:r.playsinline!==!1?"":void 0,muted:r.muted===!0?"":void 0,loop:r.loop===!0?"":void 0,autoplay:r.autoPlay!==!1?"":void 0};Object.keys(o).forEach(c=>{let l=o[c];l!==void 0&&s.setAttribute(c,l)}),r.muted===!0&&(s.muted=!0),Hw(s,i,r.crossorigin);let n=document.createElement("source"),a;if(i.startsWith("data:"))a=i.slice(5,i.indexOf(";"));else if(!i.startsWith("blob:")){let c=i.split("?")[0].slice(i.lastIndexOf(".")+1).toLowerCase();a=Xr.MIME_TYPES[c]||`video/${c}`}return n.src=i,a&&(n.type=a),new Promise(c=>{let l=async()=>{let h=new Xr({...r,resource:s});s.removeEventListener("canplay",l),t.data.preload&&await Ww(s),c(Bi(h,e,i))};s.addEventListener("canplay",l),s.appendChild(n)})},unload(i){i.destroy(!0)}};P();Wr();P();Wr();var Oa={extension:{type:x.ResolveParser,name:"resolveTexture"},test:Da.test,parse:i=>({resolution:parseFloat(te.RETINA_PREFIX.exec(i)?.[1]??"1"),format:i.split(".").pop(),src:i})};var g0={extension:{type:x.ResolveParser,priority:-2,name:"resolveJson"},test:i=>te.RETINA_PREFIX.test(i)&&i.endsWith(".json"),parse:Oa.parse};Wr();Qi();sn();var La=class{constructor(){this._detections=[],this._initialized=!1,this.resolver=new te,this.loader=new Ua,this.cache=tt,this._backgroundLoader=new Ia(this.loader),this._backgroundLoader.active=!0,this.reset()}async init(t={}){if(this._initialized){F("[Assets]AssetManager already initialized, did you load before calling this Assets.init()?");return}if(this._initialized=!0,t.defaultSearchParams&&this.resolver.setDefaultSearchParams(t.defaultSearchParams),t.basePath&&(this.resolver.basePath=t.basePath),t.bundleIdentifier&&this.resolver.setBundleIdentifier(t.bundleIdentifier),t.manifest){let o=t.manifest;typeof o=="string"&&(o=await this.load(o)),this.resolver.addManifest(o)}let e=t.texturePreference?.resolution??1,r=typeof e=="number"?[e]:e,s=await this._detectFormats({preferredFormats:t.texturePreference?.format,skipDetections:t.skipDetections,detections:this._detections});this.resolver.prefer({params:{format:s,resolution:r}}),t.preferences&&this.setPreferences(t.preferences)}add(t){this.resolver.add(t)}async load(t,e){this._initialized||await this.init();let r=br(t),s=Lt(t).map(a=>{if(typeof a!="string"){let c=this.resolver.getAlias(a);return c.some(l=>!this.resolver.hasKey(l))&&this.add(a),Array.isArray(c)?c[0]:c}return this.resolver.hasKey(a)||this.add({alias:a,src:a}),a}),o=this.resolver.resolve(s),n=await this._mapLoadToResolve(o,e);return r?n[s[0]]:n}addBundle(t,e){this.resolver.addBundle(t,e)}async loadBundle(t,e){this._initialized||await this.init();let r=!1;typeof t=="string"&&(r=!0,t=[t]);let s=this.resolver.resolveBundle(t),o={},n=Object.keys(s),a=0,c=0,l=()=>{e?.(++a/c)},h=n.map(u=>{let f=s[u];return c+=Object.keys(f).length,this._mapLoadToResolve(f,l).then(d=>{o[u]=d})});return await Promise.all(h),r?o[t[0]]:o}async backgroundLoad(t){this._initialized||await this.init(),typeof t=="string"&&(t=[t]);let e=this.resolver.resolve(t);this._backgroundLoader.add(Object.values(e))}async backgroundLoadBundle(t){this._initialized||await this.init(),typeof t=="string"&&(t=[t]);let e=this.resolver.resolveBundle(t);Object.values(e).forEach(r=>{this._backgroundLoader.add(Object.values(r))})}reset(){this.resolver.reset(),this.loader.reset(),this.cache.reset(),this._initialized=!1}get(t){if(typeof t=="string")return tt.get(t);let e={};for(let r=0;r<t.length;r++)e[r]=tt.get(t[r]);return e}async _mapLoadToResolve(t,e){let r=[...new Set(Object.values(t))];this._backgroundLoader.active=!1;let s=await this.loader.load(r,e);this._backgroundLoader.active=!0;let o={};return r.forEach(n=>{let a=s[n.src],c=[n.src];n.alias&&c.push(...n.alias),c.forEach(l=>{o[l]=a}),tt.set(c,a)}),o}async unload(t){this._initialized||await this.init();let e=Lt(t).map(s=>typeof s!="string"?s.src:s),r=this.resolver.resolve(e);await this._unloadFromResolved(r)}async unloadBundle(t){this._initialized||await this.init(),t=Lt(t);let e=this.resolver.resolveBundle(t),r=Object.keys(e).map(s=>this._unloadFromResolved(e[s]));await Promise.all(r)}async _unloadFromResolved(t){let e=Object.values(t);e.forEach(r=>{tt.remove(r.src)}),await this.loader.unload(e)}async _detectFormats(t){let e=[];t.preferredFormats&&(e=Array.isArray(t.preferredFormats)?t.preferredFormats:[t.preferredFormats]);for(let r of t.detections)t.skipDetections||await r.test()?e=await r.add(e):t.skipDetections||(e=await r.remove(e));return e=e.filter((r,s)=>e.indexOf(r)===s),e}get detections(){return this._detections}setPreferences(t){this.loader.parsers.forEach(e=>{e.config&&Object.keys(e.config).filter(r=>r in t).forEach(r=>{e.config[r]=t[r]})})}},xe=new La;I.handleByList(x.LoadParser,xe.loader.parsers).handleByList(x.ResolveParser,xe.resolver.parsers).handleByList(x.CacheParser,xe.cache.parsers).handleByList(x.DetectionParser,xe.detections);I.add(e0,s0,r0,c0,o0,n0,a0,l0,h0,u0,d0,Da,m0,t0,Jv,Oa,g0);var x0={loader:x.LoadParser,resolver:x.ResolveParser,cache:x.CacheParser,detection:x.DetectionParser};I.handle(x.Asset,i=>{let t=i.ref;Object.entries(x0).filter(([e])=>!!t[e]).forEach(([e,r])=>I.add(Object.assign(t[e],{extension:t[e].extension??r})))},i=>{let t=i.ref;Object.keys(x0).filter(e=>!!t[e]).forEach(e=>I.remove(t[e]))});Do();dt();rn();var Na=class extends Xe{constructor(t,e){let{text:r,resolution:s,style:o,anchor:n,width:a,height:c,roundPixels:l,...h}=t;super({...h}),this.batched=!0,this._resolution=null,this._autoResolution=!0,this._didTextUpdate=!0,this._styleClass=e,this.text=r??"",this.style=o,this.resolution=s??null,this.allowChildren=!1,this._anchor=new Bt({_onUpdate:()=>{this.onViewUpdate()}}),n&&(this.anchor=n),this.roundPixels=l??!1,a!==void 0&&(this.width=a),c!==void 0&&(this.height=c)}get anchor(){return this._anchor}set anchor(t){typeof t=="number"?this._anchor.set(t):this._anchor.copyFrom(t)}set text(t){t=t.toString(),this._text!==t&&(this._text=t,this.onViewUpdate())}get text(){return this._text}set resolution(t){this._autoResolution=t===null,this._resolution=t,this.onViewUpdate()}get resolution(){return this._resolution}get style(){return this._style}set style(t){t||(t={}),this._style?.off("update",this.onViewUpdate,this),t instanceof this._styleClass?this._style=t:this._style=new this._styleClass(t),this._style.on("update",this.onViewUpdate,this),this.onViewUpdate()}get width(){return Math.abs(this.scale.x)*this.bounds.width}set width(t){this._setWidth(t,this.bounds.width)}get height(){return Math.abs(this.scale.y)*this.bounds.height}set height(t){this._setHeight(t,this.bounds.height)}getSize(t){return t||(t={}),t.width=Math.abs(this.scale.x)*this.bounds.width,t.height=Math.abs(this.scale.y)*this.bounds.height,t}setSize(t,e){typeof t=="object"?(e=t.height??t.width,t=t.width):e??(e=t),t!==void 0&&this._setWidth(t,this.bounds.width),e!==void 0&&this._setHeight(e,this.bounds.height)}containsPoint(t){let e=this.bounds.width,r=this.bounds.height,s=-e*this.anchor.x,o=0;return t.x>=s&&t.x<=s+e&&(o=-r*this.anchor.y,t.y>=o&&t.y<=o+r)}onViewUpdate(){this.didViewUpdate||(this._didTextUpdate=!0),super.onViewUpdate()}_getKey(){return`${this.text}:${this._style.styleKey}:${this._resolution}`}destroy(t=!1){super.destroy(t),this.owner=null,this._bounds=null,this._anchor=null,(typeof t=="boolean"?t:t?.style)&&this._style.destroy(t),this._style=null,this._text=null}};function _0(i,t){let e=i[0]??{};return(typeof e=="string"||i[1])&&(O(W,`use new ${t}({ text: "hi!", style }) instead`),e={text:e,style:i[1]}),e}Ss();Mr();var ir=class extends Na{constructor(...t){let e=_0(t,"Text");super(e,Tt),this.renderPipeId="text"}updateBounds(){let t=this._bounds,e=this._anchor,r=At.measureText(this._text,this._style),{width:s,height:o}=r;t.minX=-e._x*s,t.maxX=t.minX+s,t.minY=-e._y*o,t.maxY=t.minY+o}};Fe();bt();rt();$c();de();lh();an();Ss();Mr();kt();var Vw=Io(bl(),1);I.add(A_,E_);var Et={Add:"add",Remove:"remove",Update:"update"},Ha=class{init(t){throw new Error("Method not implemented.")}render(t){throw new Error("Method not implemented.")}},sr=class{rendererName;rendererType;add=async(t,e,r)=>{throw new Error("Method not implemented.")};remove=async(t,e,r)=>{throw new Error("Method not implemented.")};update=async(t,e,r)=>{throw new Error("Method not implemented.")}};var Wa=(i=[],t=[])=>{let e=[],r=[],s=[],o=i.filter(a=>!a.hidden),n=t.filter(a=>!a.hidden);for(let a of o){let c=n.find(l=>l.id===a.id&&l.type===a.type);c?r.push({prev:a,next:c}):e.push(a)}for(let a of n)o.find(l=>l.id===a.id&&l.type===a.type)||s.push(a);for(let a of i){let c=t.find(l=>l.id===a.id&&l.type===a.type);c&&c.hidden&&!a.hidden&&e.push(a)}return{toDeleteElements:e,toUpdateElements:r,toAddElements:s}};var Gr=new(window.AudioContext||window.webkitAudioContext),Ii=class i{static loadedAssets={};static load=async(t,e)=>{if(!i.loadedAssets[t]&&e.byteLength!==0)try{let r=await Gr.decodeAudioData(e);i.loadedAssets[t]=r}catch(r){console.error(`AudioAsset.load: Failed to decode ${t}:`,r)}};static getAsset=t=>i.loadedAssets[t]},Bu=class{_audioSource;_gainNode;volume=1;id;url;loop=!1;constructor(t,e){this.id=t,this.url=e.url,this.loop=e.loop||!1,this.volume=e.volume??1,this._gainNode=Gr.createGain(),this._gainNode.gain.value=this.volume,this._gainNode.connect(Gr.destination)}play=()=>{let t=Ii.getAsset(this.url);if(!t){console.warn("AudioPlayer.play: Asset not found",this.url);return}this._audioSource=Gr.createBufferSource(),this._audioSource.buffer=t,this._audioSource.loop=this.loop,this._gainNode.gain.setValueAtTime(this.volume,Gr.currentTime),this._audioSource.connect(this._gainNode),this._audioSource.start(0)};stop=()=>{this._audioSource&&(this._audioSource.stop(),this._audioSource.disconnect(),this._gainNode.disconnect(),this._gainNode=Gr.createGain(),this._gainNode.gain.value=this.volume,this._gainNode.connect(Gr.destination))}},za=class{audioPlayers=[];stageAudios=[];add=t=>{this.stageAudios.push(t)};remove=t=>{this.stageAudios=this.stageAudios.filter(e=>e.id!==t)};getById=t=>this.stageAudios.find(e=>e.id===t);tick=()=>{for(let e of this.stageAudios){let r=this.audioPlayers.find(s=>s.id===e.id);if(!r){let s=new Bu(e.id,{url:e.url,loop:e.loop,volume:e.volume??1});this.audioPlayers.push(s),s.play();return}(r.url!==e.url||r.loop!==e.loop)&&(r.stop(),r.url=e.url,r.loop=e.loop??!1,r.play()),r.volume!==(e.volume??1)&&(r.volume=e.volume??1,r._gainNode.gain.value=r.volume)}let t=[];for(let e of this.audioPlayers)this.stageAudios.find(r=>r.id===e.id)||(e.stop(),t.push(e.id));this.audioPlayers=this.audioPlayers.filter(e=>!t.includes(e.id))};destroy=()=>{for(let t of this.audioPlayers)t.stop();this.audioPlayers=[],this.stageAudios=[]}};var Xw=i=>i.split("/").pop(),Ru=class{name="advancedBufferLoader";priority=2;constructor(t){this.bufferMap=t}test(t){return!0}async load(t){let e=t.startsWith("file:")?t:Xw(t),r=this.bufferMap[e];if(!r)throw new Error(`Buffer not found for key: ${e}`);return{data:r.buffer,type:r.type,metadata:null}}async testParse(t){return!0}async parse(t){if(t instanceof E)return t;let e=new Blob([t.data],{type:t.type}),r=await createImageBitmap(e);return new E.from(r)}async unload(t){t.destroy(!0)}},Gu=class i extends Ha{static rendererName="pixi";_app;_audioStage=new za;_state={elements:[]};_eventHandler;_plugins;_currentAbortController;_advancedLoader;get canvas(){return this._app.canvas}init=async t=>{let{eventHandler:e,plugins:r,width:s,height:o,backgroundColor:n}=t;for(let c of r)if(c.rendererName!==i.rendererName)throw new Error("Plugin does not match renderer name");this._plugins=r,this._eventHandler=e,this._app=new Ga,this._app.audioStage=this._audioStage,await this._app.init({width:s,height:o,backgroundColor:n});let a=new zt;return a.rect(0,0,s,o),a.fill(n||0),this._app.stage.addChild(a),this._app.stage.width=s,this._app.stage.height=o,this._app.ticker.add(this._app.audioStage.tick),this};destroy=()=>{this._app.audioStage.destroy(),this._app.destroy()};_classifyAsset=t=>t?t.startsWith("audio/")?"audio":t.startsWith("font/")||["application/font-woff","application/font-woff2","application/x-font-ttf","application/x-font-otf"].includes(t)?"font":"texture":"texture";loadAssets=async t=>{if(!t)throw new Error("assetBufferMap is required");let e={audio:{},font:{},texture:{}};for(let[s,o]of Object.entries(t)){let n=this._classifyAsset(o.type);e[n][s]=o}await Promise.all(Object.entries(e.audio).map(([s,o])=>Ii.load(s,o.buffer))),await Promise.all(Object.entries(e.font).map(async([s,o])=>{let n=new Blob([o.buffer],{type:o.type}),a=URL.createObjectURL(n),c=new FontFace(s,`url(${a})`);try{await c.load(),document.fonts.add(c),console.log(`Font loaded successfully: ${s}`)}catch(l){console.error(`Failed to load font ${s}:`,l)}finally{URL.revokeObjectURL(a)}})),this._advancedLoader?Object.assign(this._advancedLoader.bufferMap,e.texture):(this._advancedLoader=new Ru(e.texture),xe.loader.parsers.length=0,xe.reset(),I.add({name:"advanced-buffer-loader",extension:x.Asset,priority:wt.High,loader:this._advancedLoader}),typeof xe.registerPlugin=="function"&&xe.registerPlugin(this._advancedLoader));let r=Object.keys(e.texture);return Promise.all(r.map(s=>xe.load(s)))};loadAudioAssets=async t=>Promise.all(t.map(async e=>{let s=await(await fetch(e)).arrayBuffer();return Ii.load(e,s)}));updatedBackgroundColor=t=>{this._app.renderer.background.color=t};getStageElementBounds=()=>{let t={},e=r=>{if(!(!r||r.length===0))for(let s of r)t[s.label]={x:s.groupTransform.tx,y:s.groupTransform.ty,width:s.width,height:s.height},e(s.children)};return e(this._app.stage.children),t};render=t=>{this._render(this._app,this._app.stage,this._state,t,this._eventHandler),this._state=t};_getRendererByElement=t=>{for(let e of this._plugins)if(e.rendererType===t.type)return e;throw new Error(`No renderer found for element type: ${t.type}`)};_getTransitionByType=t=>{for(let e of this._plugins)if(e.transitionType===t)return e;throw new Error(`No transition found for transition type: ${t}`)};_render=async(t,e,r,s,o)=>{let n=Date.now(),{toAddElements:a,toUpdateElements:c,toDeleteElements:l}=Wa(r.elements,s.elements);this._currentAbortController&&this._currentAbortController.abort(),this._currentAbortController=new AbortController;let h=this._currentAbortController.signal,u=[];for(let f of l){let d=this._getRendererByElement(f);u.push(()=>d.remove(t,{parent:e,element:f,elements:s.elements,transitions:s.transitions,getRendererByElement:this._getRendererByElement,getTransitionByType:this._getTransitionByType,eventHandler:o},h))}for(let f of a){let d=this._getRendererByElement(f);u.push(()=>d.add(t,{parent:e,element:f,elements:s.elements,getRendererByElement:this._getRendererByElement,transitions:s.transitions,getTransitionByType:this._getTransitionByType,eventHandler:o},h))}for(let f of c){let d=this._getRendererByElement(f.next);u.push(()=>d.update(t,{parent:e,prevElement:f.prev,nextElement:f.next,elements:s.elements,getRendererByElement:this._getRendererByElement,transitions:s.transitions,getTransitionByType:this._getTransitionByType,eventHandler:o},h))}try{await Promise.all(u.map(f=>f())),t.stage.children.sort((f,d)=>{let m=s.elements.find(_=>_.id===f.label),g=s.elements.find(_=>_.id===d.label);if(m&&g){let _=m.zIndex??0,b=g.zIndex??0;if(_!==b)return _-b;let y=s.elements.findIndex(T=>T.id===f.label),v=s.elements.findIndex(T=>T.id===d.label);return y-v}if(!m&&!g)return 0;if(!m)return-1;if(!g)return 1}),o&&o("completed",{id:s.id,diffTime:Date.now()-n})}catch(f){if(f.name==="AbortError")return;throw console.error("Error:",f),f}finally{this._currentAbortController=void 0}}},y0=Gu;var ku=class extends sr{static rendererName="pixi";rendererName="pixi";rendererType="sprite";add=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,element:o,transitions:n=[],getTransitionByType:a,eventHandler:c,elements:l=[]}=e,h=o.url?E.from(o.url):E.EMPTY,u,f,d=o.scaleX??1,m=o.scaleY??1;o.hoverUrl&&(u=E.from(o.hoverUrl)),o.clickUrl&&(f=E.from(o.clickUrl));let g=new Nt(h);g.label=o.id,g.interactiveChildren=!1,(o.eventName||o.hoverUrl||o.clickUrl)&&(g.cursor="pointer",g.eventMode="static"),o.width!==void 0?g.width=o.width*d:g.width*=d,o.height!==void 0?g.height=o.height*m:g.height*=m,o.anchorX!==void 0&&(g.pivot.x=g.width*o.anchorX),o.anchorY!==void 0&&(g.pivot.y=g.height*o.anchorY),o.rotation!==void 0&&(g.rotation=o.rotation*Math.PI/180),o.x!==void 0&&(g.x=o.x),o.y!==void 0&&(g.y=o.y),o.zIndex!==void 0&&(g.zIndex=o.zIndex),o.alpha!==void 0&&(g.alpha=o.alpha),(u||f)&&g.on("pointerup",()=>{g.texture=h}).on("pointerupoutside",()=>{g.texture=h}).on("pointerleave",()=>{g.texture=h}),f&&g.on("pointerdown",()=>{g.texture=f}),u&&g.on("pointerenter",()=>{g.texture=u}),g.on("pointerup",b=>{b.stopPropagation();let y=b.button;y===0?c&&c(o.eventName,o.eventPayload):y===2&&(o.rightClickEventName&&c?c(o.rightClickEventName):t.stage.emit("rightclick",event))});let _=[];for(let b of n)if(b.elementId===o.id&&b.event===Et.Add){let y=a(b.type);if(!y)throw new Error(`Transition class not found for type ${b.type}`);_.push(y.add(t,g,b,r))}s.addChild(g),Array.isArray(l)&&l.length>0&&s.children.sort((b,y)=>{let v=l.find(C=>C.id===b.label),T=l.find(C=>C.id===y.label);if(v&&T){let C=v.zIndex??0,S=T.zIndex??0;if(C!==S)return C-S;let A=l.findIndex(R=>R.id===b.label),B=l.findIndex(R=>R.id===y.label);return A-B}if(!v&&!T)return 0;if(!v)return-1;if(!T)return 1}),await Promise.all(_)};remove=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,element:o,transitions:n=[],getTransitionByType:a}=e,c=s.getChildByName(o.id);if(!c)throw new Error(`Sprite with id ${o.id} not found`);let l=[];for(let h of n)if(h.elementId===o.id&&h.event===Et.Remove){let u=a(h.type);if(!u)throw new Error(`Transition class not found for type ${h.type}`);l.push(u.remove(t,c,h,r))}await Promise.all(l),c&&c.destroy()};update=async(t,{parent:e,prevElement:r,nextElement:s,transitions:o=[],getTransitionByType:n,eventHandler:a},c)=>{if(c?.aborted)throw new DOMException("Operation aborted","AbortError");let l=e.getChildByName(r.id);if(!l)throw new Error(`Sprite with id ${r.id} not found`);let h=[];for(let d of o)if(d.elementId===r.id&&d.event===Et.Update){let m=n(d.type);if(!m)throw new Error(`Transition class not found for type ${d.type}`);h.push(m.add(t,l,d,c))}h.length>0?(await Promise.all(h),u()):f();function u(){if(r.url!==s.url||r.hoverUrl!==s.hoverUrl||r.clickUrl!==s.clickUrl){if(s.url){let _=E.from(s.url);if(l.texture=_,!r.url&&s.url)if(_.baseTexture.valid){let b=s.scaleX??1,y=s.scaleY??1;l.width=(s.width??_.width)*b,l.height=(s.height??_.height)*y}else _.baseTexture.once("loaded",()=>{let b=s.scaleX??1,y=s.scaleY??1;l.width=(s.width??_.width)*b,l.height=(s.height??_.height)*y})}let m=r.hoverUrl||r.clickUrl,g=s.hoverUrl||s.clickUrl;if(!m&&g){let _=l.texture;l.on("pointerup",()=>{l.texture=_}).on("pointerupoutside",()=>{l.texture=_}).on("pointerleave",()=>{l.texture=_})}if(s.hoverUrl){let _=E.from(s.hoverUrl);l.off("pointerenter"),l.on("pointerenter",()=>{l.texture=_})}if(s.clickUrl){let _=E.from(s.clickUrl);l.off("pointerdown"),l.on("pointerdown",()=>{l.texture=_})}}(s.eventName||s.hoverUrl||s.clickUrl)&&(l.cursor="pointer",l.eventMode="static")}function f(){if(r.url!==s.url||r.hoverUrl!==s.hoverUrl||r.clickUrl!==s.clickUrl){if(s.url){let y=E.from(s.url);if(l.texture=y,!r.url&&s.url)if(y.baseTexture.valid){let v=s.scaleX??1,T=s.scaleY??1;l.width=(s.width??y.width)*v,l.height=(s.height??y.height)*T}else y.baseTexture.once("loaded",()=>{let v=s.scaleX??1,T=s.scaleY??1;l.width=(s.width??y.width)*v,l.height=(s.height??y.height)*T})}let _=r.hoverUrl||r.clickUrl,b=s.hoverUrl||s.clickUrl;if(!_&&b){let y=l.texture;l.on("pointerup",()=>{l.texture=y}).on("pointerupoutside",()=>{l.texture=y}).on("pointerleave",()=>{l.texture=y})}if(s.hoverUrl){let y=E.from(s.hoverUrl);l.off("pointerenter"),l.on("pointerenter",()=>{l.texture=y})}if(s.clickUrl){let y=E.from(s.clickUrl);l.off("pointerdown"),l.on("pointerdown",()=>{l.texture=y})}}s.x!==void 0&&s.x!==r.x&&(l.x=s.x),s.y!==void 0&&s.y!==r.y&&(l.y=s.y),s.rotation!==void 0&&s.rotation!==r.rotation&&(l.rotation=s.rotation*Math.PI/180);let m=s.scaleX??1,g=s.scaleY??1;s.width!==void 0&&(s.width!==r.width||m!==(r.scaleX??1))&&(l.width=s.width*m),s.height!==void 0&&(s.height!==r.height||g!==(r.scaleY??1))&&(l.height=s.height*g),s.anchorX!==void 0&&s.anchorX!==r.anchorX&&(l.pivot.x=l.width*s.anchorX/m),s.anchorY!==void 0&&s.anchorY!==r.anchorY&&(l.pivot.y=l.height*s.anchorY/g),s.zIndex!==void 0&&s.zIndex!==r.zIndex&&(l.zIndex=s.zIndex),s.alpha!==void 0&&s.alpha!==r.alpha&&(l.alpha=s.alpha),(s.eventName||s.hoverUrl||s.clickUrl)&&(l.cursor="pointer",l.eventMode="static")}}};var Va=i=>new Tt({wordWrap:i.wordWrap||!0,breakWords:i.breakWords||!1,align:i.align,fill:i.fill,fontSize:i.fontSize,lineHeight:i.lineHeight,wordWrapWidth:i.wordWrapWidth,fontFamily:i.fontFamily||"Roboto",stroke:i.strokeColor?{color:i.strokeColor,width:i.strokeWidth}:void 0}),Iu=class{static rendererName="pixi";rendererName="pixi";rendererType="text";add=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,element:o,transitions:n=[],getTransitionByType:a,eventHandler:c}=e,l=Va(o.style),h=new ir({text:o.text,style:l}),u;o.hoverStyle&&(u=Va(o.hoverStyle));let f;if(o.clickedStyle&&(f=Va(o.clickedStyle)),(o.eventName||o.clickedStyle||o.hoverStyle)&&(h.cursor="pointer",h.eventMode="static"),h.label=o.id,o.x!==void 0&&(h.x=o.x),o.y!==void 0&&(h.y=o.y),o.anchorX!==void 0&&(h.anchor.x=o.anchorX),o.anchorY!==void 0&&(h.anchor.y=o.anchorY),o.anchorX!==void 0||o.anchorY!==void 0){let m=h.getLocalBounds();h.hitArea=new V(-m.width*h.anchor.x,-m.height*h.anchor.y,m.width,m.height)}h.on("pointerupoutside",()=>{h.style=l}).on("pointerup",()=>{h.style=l}).on("pointerleave",()=>{h.style=l}),h.on("pointerup",m=>{o.clickSoundUrl&&t.soundStage&&t.soundStage.add({id:`${o.id}-click-${Math.random()}`,url:o.clickSoundUrl,loop:!1,volume:o.clickSoundVolume??50/100}),m.stopPropagation(),c&&c(o.eventName,o.eventPayload)}),f&&h.on("pointerdown",()=>{h.style=f}),u&&h.on("pointerenter",()=>{h.style=u,o.hoverSoundUrl&&t.soundStage&&o.hoverSoundVolume!==void 0&&t.soundStage.add({id:`${o.id}-hover-${Math.random()}`,url:o.hoverSoundUrl,loop:!1,volume:o.hoverSoundVolume/100})});let d=[];for(let m of n)if(m.elementId===o.id&&m.event===Et.Add){let g=a(m.type);if(!g)throw new Error(`Transition class not found for type ${m.type}`);d.push(g.add(t,h,m,r))}s.addChild(h),await Promise.all(d)};remove=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,element:o,transitions:n=[],getTransitionByType:a}=e,c=s.getChildByName(o.id);if(!c){console.warn(`Text with id ${o.id} not found`);return}let l=[];for(let h of n)if(h.elementId===o.id&&h.event===Et.Remove){let u=a(h.type);if(!u)throw new Error(`Transition class not found for type ${h.type}`);l.push(u.remove(t,c,h,r))}await Promise.all(l),c&&c.destroy()};update=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,prevElement:o,nextElement:n,transitions:a,getTransitionByType:c,eventHandler:l}=e,h=s.getChildByName(o.id);if(!h){console.warn(`Text with id ${o.id} not found`);return}if(JSON.stringify(o)!==JSON.stringify(n)){let u=[this.add(t,{parent:s,element:n,transitions:a,getTransitionByType:c,eventHandler:l},r),this.remove(t,{parent:s,element:o,transitions:a,getTransitionByType:c},r)];await Promise.all(u)}else o.text!==n.text&&(h.text=n.text),JSON.stringify(o.style)!==JSON.stringify(n.style)&&(h.style=Va(n?.style)),n.x!==void 0&&(h.x=n.x),n.y!==void 0&&(h.y=n.y)}};var Fi=(i,t=!1)=>new Tt({wordWrap:i.wordWrap||!0,breakWords:t,align:i.align,fill:i.fill,fontSize:i.fontSize,lineHeight:i.lineHeight,wordWrapWidth:i.wordWrapWidth,fontFamily:i.fontFamily||"Roboto",stroke:i.strokeColor?{color:i.strokeColor,width:i.strokeWidth}:void 0}),Fu=class{static rendererName="pixi";rendererName="pixi";rendererType="text-revealing";add=async(t,{parent:e,element:r})=>{let s=Fi(r.style,r.text),o=new ir({text:"",style:s});o.label=r.id,o.text_id=r.text;let n=new at;r.x!==void 0&&(n.x=r.x),r.y!==void 0&&(n.y=r.y),n.addChild(o),n.label=r.id,e.addChild(n);let a=r.style.wordWrapWidth||500,c=r.text?[{text:r.text,style:r.style}]:r.segments,l=[],h=[],u=0,f=0,d=0;for(;;){let S=c[0];if(!S){h.length>0&&l.push({lineParts:h,y:f});break}if(f>1e4)break;let A={...S.style,wordWrapWidth:a-u},B=At.measureText(S.text,Fi(A));B.lineHeight>d&&(d=B.lineHeight);let R=At.measureText("a",Fi(A)),M=At.measureText("a a",Fi(A)).width-R.width*2;if(B.lineWidths[0]+u>a){u=0,l.push({lineParts:h,y:f}),f+=d,d=0,h=[];continue}let k=B.lines[0],N=B.lines.slice(1).join(" "),$={text:k,style:A,x:u,y:0};if(h.push($),N&&N.length>0?S.text=N:c.shift(),!(!k||k.length===0)){if(S.furigana){let q=At.measureText(S.furigana.text,Fi(S.furigana.style)),D={text:S.furigana.text,style:S.furigana.style,x:u+(B.width-q.width)/2,y:-10};h.push(D)}u+=B.lineWidths[0]+M}}l.forEach(S=>{let A=new at;A.y=S.y,A.alpha=0,S.lineParts.forEach(B=>{let R=new ir({text:B.text,style:Fi(B.style),x:B.x,y:B.y});A.addChild(R)}),n.addChild(A)});let m=new zt,g=1e3,_=a/2,b=a/2;m.fill({color:16777215,alpha:1}),m.rect(0,0,_,g);for(let S=0;S<b;S++)m.fill({color:16777215,alpha:1-S/b}),m.rect(_+S,0,_+1,g);let y=t.renderer.generateTexture(m),v=new Nt(y);v.x=-1.35*_-b,t.stage.addChild(v);let T=0,C=1;if(l.length!==0){if(r.displaySpeed===100||r.hasEnded){n.children.forEach(S=>{t.stage.removeChild(v),S.mask=null,S.alpha=1});return}await new Promise(S=>{let A=B=>{if(C>n.children.length){S();return}n.getChildAt(C).mask||(n.getChildAt(C).mask=v,n.getChildAt(C).alpha=1),T+=B.deltaMS;let w=(r.displaySpeed||50)/1e3;v.x+=w*T,v.x>=0&&(n.getChildAt(C).mask=null,v.x=-1.35*_-b,C=C+1,T=0,C>=n.children.length&&(n.getChildAt(C-1).mask=null,t.ticker.remove(A),S()))};t.ticker.add(A)})}};remove=async(t,e)=>{let{parent:r,element:s,transitions:o=[],getTransitionByType:n}=e,a=r.getChildByName(s.id);if(!a){console.warn(`Text with id ${s.id} not found`,{parent:r});return}let c=[];for(let l of o)if(l.elementId===s.id&&l.event===Et.Remove){let h=n(l.type);if(!h)throw new Error(`Transition class not found for type ${l.type}`);c.push(h.remove(t,a,l))}await Promise.all(c),a.destroy()};update=async(t,e)=>{let{parent:r,prevElement:s,nextElement:o}=e;if(!r.getChildByName(s.id)){console.warn(`Text with id ${s.id} not found`,{parent:r});return}await this.remove(t,{parent:r,element:s}),await this.add(t,{parent:r,element:o})}};var Uu=class{static rendererName="pixi";rendererName="pixi";rendererType="container";add=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,element:o,elements:n=[],transitions:a=[],getTransitionByType:c,getRendererByElement:l,eventHandler:h}=e,u=structuredClone(o),f=new at;f.label=u.id;let d={};u.x!==void 0&&(typeof u.x=="string"&&u.x.endsWith("%")?f.x=Number(u.x.replace("%",""))*t.screen.width/100:f.x=u.x),u.y!==void 0&&(typeof u.y=="string"&&u.y.endsWith("%")?f.y=Number(u.y.replace("%",""))*t.screen.height/100:f.y=u.y),u.scaleX!==void 0&&(f.scale.x=u.scaleX),u.scaleY!==void 0&&(f.scale.y=u.scaleY),u.zIndex!==void 0&&(f.zIndex=u.zIndex),u.rotation!==void 0&&(f.rotation=u.rotation*Math.PI/180),u.propagateEvents&&(f.eventMode="static",["pointerup","pointerupoutside","pointerleave","pointerdown","pointerenter"].forEach(R=>{f.on(R,w=>{w.stopPropagation();for(let M of f.children)M.emit(R)})}));let m=u.gap||0,g=new zt().roundRect(0,0,u.width||0,u.height||0,1).fill(u.fill?u.fill.color:"transparent"),_=[0,.5,1],b=u.anchorX??0,y=u.anchorY??0;if(!_.includes(b))throw new Error(`Invalid anchorX value: ${b}. Must be 0, 0.5, or 1`);if(!_.includes(y))throw new Error(`Invalid anchorY value: ${y}. Must be 0, 0.5, or 1`);if(u.direction){let R,w;u.direction==="horizontal"?(R=u.children.reduce((k,N,$)=>k+N.width+($>0?m:0),0),w=u.children.reduce((k,N)=>Math.max(k,N.height||0),0)):u.direction==="vertical"&&(R=u.children.reduce((k,N)=>Math.max(k,N.width||0),0),w=u.children.reduce((k,N,$)=>k+N.height+($>0?m:0),0));let M={x:b,y};u.direction==="horizontal"?this.layoutChildren({element:u,anchor:M,totalWidth:R,totalHeight:w,gap:m,direction:"horizontal",scroll:u.scroll}):u.direction==="vertical"&&this.layoutChildren({element:u,anchor:M,totalWidth:R,totalHeight:w,gap:m,direction:"vertical",scroll:u.scroll}),this.setupScrolling({container:f,element:u,totalHeight:w,totalWidth:R,eventHandler:h,sliderRef:d}),g=this.createContainerGraphic(u,R,w,M)}g.label=`${u.id}-container-background`,f.addChild(g);let v=[];(u.children||[]).forEach(R=>{let w=l(R),M=u.width||0,k=u.height||0,N=b*M,$=y*k,q={zIndex:u.zIndex,...R,x:(R.x||0)+N,y:(R.y||0)+$};v.push(w.add(t,{parent:f,element:q,elements:u.children||[],transitions:a,getTransitionByType:c,getRendererByElement:l,eventHandler:h},r))});let T=[];for(let R of a)if(R.elementId===u.id&&R.event===Et.Add){let w=c(R.type);if(!w)throw new Error(`Transition class not found for type ${R.type}`);T.push(w.add(t,f,R,r))}s.addChild(f),await Promise.all([...v,...T]);let{width:C,height:S}=this.getContainerDimensions(u,f),A=b*C,B=y*S;f.pivot.x=A,f.pivot.y=B};remove=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");console.log("remove container 11111111111");let{parent:s,element:o}=e,n=s.getChildByName(o.id);if(!n){console.warn(`Container with id ${o.id} not found`);return}n.destroy()};update=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,prevElement:o,nextElement:n,elements:a=[],getRendererByElement:c,transitions:l=[],getTransitionByType:h,eventHandler:u}=e,f=structuredClone(o),d=structuredClone(n),m=s.getChildByName(f.id);if(!m){console.warn(`Container with id ${f.id} not found`);return}d.x!==void 0&&(m.x=d.x),d.y!==void 0&&(m.y=d.y),d.rotation!==void 0&&d.rotation!==f.rotation&&(m.rotation=d.rotation*Math.PI/180);let g=[0,.5,1],_=d.anchorX??0,b=d.anchorY??0;if(!g.includes(_))throw new Error(`Invalid anchorX value: ${_}. Must be 0, 0.5, or 1`);if(!g.includes(b))throw new Error(`Invalid anchorY value: ${b}. Must be 0, 0.5, or 1`);if(d.direction){let w=d.gap||0,M,k;d.direction==="horizontal"?(M=d.children.reduce((q,D,U)=>q+D.width+(U>0?w:0),0),k=d.children.reduce((q,D)=>Math.max(q,D.height||0),0)):d.direction==="vertical"&&(M=d.children.reduce((q,D)=>Math.max(q,D.width||0),0),k=d.children.reduce((q,D,U)=>q+D.height+(U>0?w:0),0));let N={x:_,y:b};d.direction==="horizontal"?this.layoutChildren({element:d,anchor:N,totalWidth:M,totalHeight:k,gap:w,direction:"horizontal",scroll:d.scroll}):d.direction==="vertical"&&this.layoutChildren({element:d,anchor:N,totalWidth:M,totalHeight:k,gap:w,direction:"vertical",scroll:d.scroll});let $=m.children.find(q=>q.label===`${d.id}-container-background`);if($){$.destroy();let q=this.createContainerGraphic(d,M,k,N);q.label=`${d.id}-container-background`,m.addChildAt(q,0)}f.scroll!==d.scroll&&this.setupScrolling({container:m,element:d,totalHeight:k,totalWidth:M,eventHandler:u,sliderRef:{}})}let y=[],{toAddElements:v,toUpdateElements:T,toDeleteElements:C}=Wa(f.children,d.children);if(d.direction&&d.children){let w=new Map;d.children.forEach(M=>{w.set(M.id,{x:M.x,y:M.y})}),T.forEach(M=>{let k=w.get(M.next.id);k&&(M.next.x=k.x,M.next.y=k.y)}),v.forEach(M=>{let k=w.get(M.id);k&&(M.x=k.x,M.y=k.y)})}for(let w of C){let M=c(w);y.push(M.remove(t,{parent:m,element:w,elements:d.children||[],transitions:l,getTransitionByType:h,getRendererByElement:c,eventHandler:u},r))}for(let w of v){let M=c(w),k=d.width||0,N=d.height||0,$=_*k,q=b*N,D={...w,x:(w.x||0)+$,y:(w.y||0)+q};y.push(M.add(t,{parent:m,element:D,elements:d.children||[],transitions:l,getTransitionByType:h,getRendererByElement:c,eventHandler:u},r))}for(let w of T){let M=c(w.next),k=d.width||0,N=d.height||0,$=_*k,q=b*N,D=f.anchorX??0,U=f.anchorY??0,ee=f.width||0,Z=f.height||0,Ft=D*ee,he=U*Z,or={...w.prev,x:(w.prev.x||0)+Ft,y:(w.prev.y||0)+he},nr={...w.next,x:(w.next.x||0)+$,y:(w.next.y||0)+q};y.push(M.update(t,{parent:m,prevElement:or,nextElement:nr,elements:d.children||[],transitions:l,getTransitionByType:h,getRendererByElement:c,eventHandler:u},r))}d.children&&d.children.length>0&&m.children.sort((w,M)=>{let k=d.children.find($=>$.id===w.label),N=d.children.find($=>$.id===M.label);if(k&&N){let $=k.zIndex??0,q=N.zIndex??0;if($!==q)return $-q;let D=d.children.indexOf(k),U=d.children.indexOf(N);return D-U}if(!k&&!N)return 0;if(!k)return-1;if(!N)return 1}),await Promise.all(y);let{width:S,height:A}=this.getContainerDimensions(d,m),B=_*S,R=b*A;m.pivot.x=B,m.pivot.y=R};layoutChildren({element:t,anchor:e,totalWidth:r,totalHeight:s,gap:o,direction:n,scroll:a}){let c=n==="horizontal",l=c?"x":"y",h=c?"y":"x",u=c?"width":"height",f=c?"height":"width",d=c?r:s,m=c?s:r,g=c?e.x:e.y,_=c?e.y:e.x;if(!a&&t[u]!==void 0&&t[u]<d){let y=0,v=0,T=0,C=0;(t.children||[]).forEach((S,A)=>{y>0&&y+S[u]>t[u]&&(this.alignRowElements(t.children.slice(C,A),l,g,t[u]),y=0,v+=T+o,T=0,C=A),S[l]=y,S[h]=v,y+=S[u],A<t.children.length-1&&(y+=o),T=Math.max(T,S[f]||0)}),C<t.children.length&&this.alignRowElements(t.children.slice(C),l,g,t[u])}else{if(g===0){let y=0;(t.children||[]).forEach((v,T)=>{let C=v[u]||0,S=c?v.anchorX||0:v.anchorY||0;v[l]=y+C*S,y+=C,T<t.children.length-1&&(y+=o)})}else if(g===1){let y=-d;(t.children||[]).forEach((v,T)=>{let C=v[u]||0,S=c?v.anchorX||0:v.anchorY||0;v[l]=y+C*S,y+=C,T<t.children.length-1&&(y+=o)})}else if(g===.5){let y=-d/2;(t.children||[]).forEach((v,T)=>{let C=v[u]||0,S=c?v.anchorX||0:v.anchorY||0;v[l]=y+C*S,y+=C,T<t.children.length-1&&(y+=o)})}_===0?(t.children||[]).forEach(y=>{let v=y[f]||0,T=c?y.anchorY||0:y.anchorX||0;y[h]=v*T}):_===.5?(t.children||[]).forEach(y=>{let v=y[f]||0,T=c?y.anchorY||0:y.anchorX||0;y[h]=-v/2+v*T}):_===1&&(t.children||[]).forEach(y=>{let v=y[f]||0,T=c?y.anchorY||0:y.anchorX||0;y[h]=-v+v*T})}}alignRowElements(t,e,r,s){if(!t.length)return;let o=t.reduce((n,a,c)=>n+a[e==="x"?"width":"height"]+(c>0,0),0);if(r===.5){let a=(s-o)/2;t.forEach(c=>{c[e]=a,a+=c[e==="x"?"width":"height"]+0})}else if(r===1){let a=s-o;t.forEach(c=>{c[e]=a,a+=c[e==="x"?"width":"height"]+0})}}createContainerGraphic(t,e,r,s){let o=new zt().roundRect(0,0,e,r,1).fill(t.fill?t.fill.color:"transparent");return s.x===1&&(o.x-=t.width),s.x===.5&&(o.x-=t.width/2),s.y===1&&(o.y-=t.height),s.y===.5&&(o.y-=t.height/2),o}getContainerDimensions(t,e){let r=t.width||0,s=t.height||0;if(!t.direction&&(!t.width||!t.height)&&e.children&&e.children.length>0){let o=1/0,n=-1/0,a=1/0,c=-1/0;e.children.forEach(l=>{let h=l.x||0,u=l.y||0,f=l.width||0,d=l.height||0;o=Math.min(o,h),n=Math.max(n,h+f),a=Math.min(a,u),c=Math.max(c,u+d)}),t.width||(r=n-o,(isNaN(r)||!isFinite(r))&&(r=0)),t.height||(s=c-a,(isNaN(s)||!isFinite(s))&&(s=0))}return{width:r,height:s}}setupScrolling({container:t,element:e,totalHeight:r,totalWidth:s,eventHandler:o,sliderRef:n}){let a=e.scroll&&e.height&&r>e.height,c=e.scroll&&e.width&&s>e.width;if(a||c){let l=0,h=0,u=-r+e.height,f=-s+e.width,d=new zt().rect(0,0,e.width||s,e.height||r).fill("red");t.mask=d,t.eventMode="static",t.addChild(d),t.on("wheel",m=>{if(a&&m.deltaY!==0&&(l-m.deltaY>0||l-m.deltaY<u||(l-=m.deltaY,t.y-=m.deltaY,d.y+=m.deltaY)),c&&(m.deltaX!==0||m.shiftKey&&m.deltaY!==0)){let g=m.deltaX!==0?m.deltaX:m.deltaY;if(h-g>0||h-g<f)return;h-=g,t.x-=g,d.x+=g}})}}};var $w={linear:i=>i},Yw=(i,t,e,r)=>i+(t-i)*$w[r](e);function b0(i,t,e){typeof t=="string"&&(t=t.split("."));let r=i;for(let s of t){if(r==null)return e;r=r[s]}return r===void 0?e:r}function v0(i,t,e){typeof t=="string"&&(t=t.split("."));let r=i;for(let s=0;s<t.length-1;s++){let o=t[s];o in r||(r[o]={}),r=r[o]}return r[t[t.length-1]]=e,i}var jw=(i,t)=>{let e=[],r=0,s;i.forEach(({value:n,duration:a,easing:c,relative:l},h)=>{h===0?(s=n,e.push({time:r,value:n,easing:"linear"})):a!==void 0&&c!==void 0&&(r+=a,l?s=s+n:s=n,e.push({time:r,value:s,easing:c}))});let o=0;for(let n=0;n<e.length-1;n++){let{time:a,value:c,easing:l}=e[n],{time:h,value:u}=e[n+1];if(t>=a&&t<=h){let f=(t-a)/(h-a);o=Yw(c,u,f,l);break}else t>h&&(o=u)}return o};function Kw(i){return Math.max.apply(null,i)}var Du=class{static rendererName="pixi";rendererName="pixi";transitionType="keyframes";_transition=async(t,e,r,s)=>new Promise((o,n)=>{if(s?.aborted){n(new DOMException("Operation aborted","AbortError"));return}let{properties:a}=r,c=Array.isArray(a)?a:Object.entries(a).map(([_,b])=>({...b,property:_})),l=c.map(_=>_.keyframes.reduce((b,y)=>b+y.duration||0,0)),h=Kw(l),u=0,f={};c.forEach(_=>{f[_.property]=b0(e,_.property)});let d=_=>{let b={};c.forEach(y=>{let v=[];y.initialValue!==void 0?v=[{value:y.initialValue,duration:0}]:v=[{value:f[y.property],duration:0}],v=v.concat(y.keyframes),v0(b,y.property,jw(v,_))}),c.forEach(y=>{let{property:v}=y;e&&!e.destroyed&&v0(e,v,b0(b,v))})},m=()=>{t.ticker.remove(g),d(h)};s&&s.addEventListener("abort",()=>{m(),n(new DOMException("Operation aborted","AbortError"))});let g=_=>{if(u+=_.deltaMS,u>=h){t.ticker.remove(g),o();return}d(u)};if(s?.aborted){m(),n(new DOMException("Operation aborted","AbortError"));return}t.ticker.add(g)});add=async(t,e,r,s)=>this._transition(t,e,r,s);remove=async(t,e,r,s)=>this._transition(t,e,r,s)};var Ou=class{static rendererName="pixi";rendererName="pixi";rendererType="rect";add=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,element:o,transitions:n=[],getTransitionByType:a,eventHandler:c}=e,l=new zt;l.label=o.id,l.interactiveChildren=!1,l.eventMode="none",o.x!==void 0&&(l.x=o.x),o.y!==void 0&&(l.y=o.y),o.alpha!==void 0&&(l.alpha=o.alpha),o.scaleX!==void 0&&(l.scale.x=o.scaleX),o.scaleY!==void 0&&(l.scale.y=o.scaleY),o.rotation!==void 0&&(l.rotation=o.rotation*Math.PI/180),o.cursor&&(l.cursor=o.cursor),o.pointerDown&&l.on("pointerdown",d=>{d.stopPropagation(),c&&c(o.pointerDown,{x:d.global.x,y:d.global.y})}),o.pointerUp&&l.on("pointerup",d=>{d.stopPropagation(),c&&c(o.pointerUp,{x:d.global.x,y:d.global.y})}),o.pointerMove&&l.on("pointermove",d=>{d.stopPropagation(),c&&c(o.pointerMove,{x:d.global.x,y:d.global.y})}),(o.cursor||o.pointerDown||o.pointerUp||o.pointerMove)&&(l.eventMode="static");let h=o.width,u=o.height;l.roundRect(0,0,h,u,o.radius??0),o.fill&&l.fill(o.fill),o.border&&l.stroke({width:o.border.width,color:o.border.color,alpha:o.border.alpha??1,alignment:o.border.alignment??1}),o.anchorX!==void 0&&(l.pivot.x=h*o.anchorX),o.anchorY!==void 0&&(l.pivot.y=u*o.anchorY),(o.clickEventName||o.rightClickEventName)&&c&&(l.eventMode="static",l.on("pointerup",d=>{d.stopPropagation(),d.button===0?c(o.clickEventName,o.clickEventPayload):d.button===2&&c(o.rightClickEventName,o.rightClickEventPayload)})),o.wheelEventName&&c&&(l.eventMode="static",l.on("wheel",d=>{d.stopPropagation(),c(o.wheelEventName,{deltaY:d.deltaY})}));let f=[];for(let d of n)if(d.elementId===o.id&&d.event===Et.Add){let m=a(d.type);if(!m)throw new Error(`Transition class not found for type ${d.type}`);f.push(m.add(t,l,d,r))}s.addChild(l),await Promise.all(f)};remove=async(t,e,r)=>{if(r?.aborted)throw new DOMException("Operation aborted","AbortError");let{parent:s,element:o,transitions:n=[],getTransitionByType:a}=e,c=s.getChildByName(o.id);if(!c)throw new Error(`Rect with id ${o.id} not found`);let l=[];for(let h of n)if(h.elementId===o.id&&h.event===Et.Remove){let u=a(h.type);if(!u)throw new Error(`Transition class not found for type ${h.type}`);l.push(u.remove(t,c,h,r))}await Promise.all(l),c&&c.destroy()};update=async(t,{parent:e,prevElement:r,nextElement:s,transitions:o=[],getTransitionByType:n,eventHandler:a},c)=>{if(c?.aborted)throw new DOMException("Operation aborted","AbortError");let l=e.getChildByName(r.id);if(!l)throw new Error(`Rect with id ${r.id} not found`);let h=[];for(let u of o)if(u.elementId===r.id&&u.event===Et.Update){let f=n(u.type);if(!f)throw new Error(`Transition class not found for type ${u.type}`);h.push(f.add(t,l,u,c))}if(h.length>0)await Promise.all(h),(r.width!==s.width||r.height!==s.height||r.fill!==s.fill)&&(l.clear(),l.rect(0,0,s.width,s.height),l.fill(s.fill)),r.anchorX!==void 0&&s.anchorX!==r.anchorX&&(l.pivot.x=s.width*s.anchorX),r.anchorY!==void 0&&s.anchorY!==r.anchorY&&(l.pivot.y=s.height*s.anchorY);else{r.x!==void 0&&s.x!==r.x&&(l.x=s.x),r.y!==void 0&&s.y!==r.y&&(l.y=s.y),r.alpha!==void 0&&s.alpha!==r.alpha&&(l.alpha=s.alpha),r.scaleX!==void 0&&s.scaleX!==r.scaleX&&(l.scale.x=s.scaleX),r.scaleY!==void 0&&s.scaleY!==r.scaleY&&(l.scale.y=s.scaleY),r.rotation!==void 0&&s.rotation!==r.rotation&&(l.rotation=s.rotation*Math.PI/180);let u=JSON.stringify(r.border)!==JSON.stringify(s.border);(r.width!==s.width||r.height!==s.height||r.radius!==s.radius||r.fill!==s.fill||u)&&(l.clear(),l.roundRect(0,0,s.width,s.height,s.radius??0),s.fill&&l.fill(s.fill),s.border&&l.stroke({width:s.border.width,color:s.border.color,alpha:s.border.alpha??1,alignment:s.border.alignment??1})),r.anchorX!==void 0&&s.anchorX!==r.anchorX&&(l.pivot.x=s.width*s.anchorX),r.anchorY!==void 0&&s.anchorY!==r.anchorY&&(l.pivot.y=s.height*s.anchorY)}}};var Lu=class extends sr{static rendererName="pixi";rendererName="pixi";rendererType="slider";add=async(t,{parent:e,element:r,transitions:s=[],getTransitionByType:o,eventHandler:n,ref:a})=>{let{direction:c,idleThumb:l,hoverThumb:h,idleBar:u,hoverBar:f,dragEndEventName:d,dragEventName:m,dragEventPayload:g,initialValue:_}=r,b={horizontal:{axis:"x",size:"width"},vertical:{axis:"y",size:"height"}},y=b[c].axis,v=b[c].size,T=E.from(l),C=E.from(h),S=E.from(u),A=E.from(f),B=new Nt({texture:S,anchor:{x:0,y:0}});B.label=r.id;let R=B[v];B.x=r.x||0,B.y=r.y||0;let w=new Nt({texture:T,anchor:{x:.5,y:.5}});if(w.y=B.height/2,w.x=B.width/2,w.eventMode="static",w.cursor="pointer",B.eventMode="static",B.cursor="pointer",w.on("pointerdown",N).on("pointerup",$).on("pointerupoutside",$),B.on("pointerdown",M).on("pointerup",k).on("pointerupoutside",k),B.addChild(w),_!==void 0){let U=w[v]/2;w[y]=_/100*(R-w[v])+U}function M(U){w.texture=C,B.texture=A,q(U),t.stage.eventMode="static",t.stage.addEventListener("pointermove",q)}function k(U){w.texture=T,B.texture=S,q(U),t.stage.eventMode="auto",t.stage.removeEventListener("pointermove",q)}function N(U){U.stopPropagation(),w.texture=C,B.texture=A,t.stage.eventMode="static",t.stage.addEventListener("pointermove",q)}function $(U){if(w.texture=T,B.texture=S,t.stage.eventMode="auto",t.stage.removeEventListener("pointermove",q),d){let ee=B.toLocal(U.global)[y],Z=w[v]/2;w[y]=Math.max(0+Z,Math.min(ee,R-Z));let Ft=Math.floor((w[y]-Z)/(R-w[v])*100),he=JSON.stringify(g);n&&n(d,JSON.parse(he.replace('"{{ value }}"',String(Ft))))}}function q(U){let ee=B.toLocal(U.global)[y],Z=w[v]/2;w[y]=Math.max(0+Z,Math.min(ee,R-Z));let Ft=Math.floor((w[y]-Z)/(R-w[v])*100);if(m){let he=JSON.stringify(g);n&&n(m,JSON.parse(he.replace('"{{ value }}"',String(Ft))))}return Ft}a&&(a.current={updateValue:U=>{let ee=w[v]/2;w[y]=U/100*(R-w[v])+ee}});let D=[];for(let U of s)if(U.elementId===r.id&&U.event===Et.Add){let ee=o(U.type);if(!ee)throw new Error(`Transition class not found for type ${U.type}`);D.push(ee.add(t,B,U))}e.addChild(B),await Promise.all(D)};remove=async(t,e)=>{let{parent:r,element:s,transitions:o=[],getTransitionByType:n}=e,a=r.getChildByName(s.id);if(!a){console.warn(`Sprite with id ${s.id} not found`);return}let c=[];for(let l of o)if(l.elementId===s.id&&l.event===Et.Remove){let h=n(l.type);if(!h)throw new Error(`Transition class not found for type ${l.type}`);c.push(h.remove(t,a,l))}await Promise.all(c),a.destroy()};update=async(t,{parent:e,prevElement:r,nextElement:s,transitions:o,getTransitionByType:n,eventHandler:a})=>{if(!e.getChildByName(r.id)){console.warn(`Slider with id ${r.id} not found`,{parent:e});return}JSON.stringify(r)!==JSON.stringify(s)&&await Promise.all([this.remove(t,{parent:e,element:r,transitions:o,getTransitionByType:n,eventHandler:a}),this.add(t,{parent:e,element:s,transitions:o,getTransitionByType:n,eventHandler:a})])}};var Nu=class extends sr{static rendererName="pixi";rendererName="pixi";rendererType="audio";add=async(t,{parent:e,element:r,transitions:s=[],getTransitionByType:o})=>{r.delay?setTimeout(()=>{t.audioStage.add({id:r.id,url:r.url,loop:r.loop??!1,volume:r.volume??1})},r.delay):t.audioStage.add({id:r.id,url:r.url,loop:r.loop??!1,volume:r.volume??1})};remove=async(t,e)=>{let{element:r}=e;t.audioStage.remove(r.id)};update=async(t,{parent:e,prevElement:r,nextElement:s,transitions:o,getTransitionByType:n})=>{if(r.url!==s.url||r.volume!==s.volume){let a=t.audioStage.getById(r.id);a&&(a.url=s.url,a.volume=s.volume??1)}}};var Hu=class{constructor(){this.cache=new Map}async load(t){let e=[];for(let[r,s]of Object.entries(t))this.cache.has(r)||e.push([r,s]);e.length>0&&await Promise.all(e.map(async([r,s])=>{let a={buffer:await(await fetch(s.url)).arrayBuffer(),type:s.type};this.cache.set(r,a)}))}getBufferMap(){let t={};for(let[e,r]of this.cache.entries())t[e]=r;return t}clear(){this.cache.clear()}size(){return this.cache.size}has(t){return this.cache.has(t)}},qw=()=>new Hu;var tj=y0;export{Nu as AudioPlugin,Uu as ContainerRendererPlugin,Du as KeyframeTransitionPlugin,Ou as RectRendererPlugin,Lu as SliderRendererPlugin,ku as SpriteRendererPlugin,Iu as TextRendererPlugin,Fu as TextRevealingRendererPlugin,qw as createAssetBufferManager,tj as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "route-graphics",
3
- "version": "0.0.2-rc27",
3
+ "version": "0.0.2-rc29",
4
4
  "description": "A 2D graphics rendering interface that takes JSON input and renders pixels using PixiJS",
5
5
  "main": "dist/RouteGraphics.js",
6
6
  "type": "module",