x-runtime-lib 0.9.60 → 0.9.61

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.
@@ -0,0 +1,245 @@
1
+ import{n as e,r as t,t as n}from"./rolldown-runtime.81faoggt.js";import{computed as r,createBlock as i,createCommentVNode as a,createElementBlock as o,createVNode as s,defineComponent as c,getCurrentInstance as l,getCurrentScope as u,hasInjectionContext as d,inject as f,mergeDefaults as p,nextTick as m,onBeforeUnmount as h,onMounted as g,onScopeDispose as _,onUnmounted as v,openBlock as y,provide as b,reactive as x,readonly as S,ref as C,render as w,shallowReadonly as T,shallowRef as E,toRefs as ee,toValue as D,unref as O,useAttrs as te,useSlots as ne,watch as k,watchEffect as A}from"vue";import*as j from"three";import{AdditiveBlending as M,Audio as re,AudioListener as ie,AudioLoader as ae,Box2 as oe,Box3 as N,BufferAttribute as se,BufferGeometry as ce,Color as le,DoubleSide as ue,Euler as de,FramebufferTexture as fe,HalfFloatType as pe,InterleavedBuffer as me,InterleavedBufferAttribute as P,Line3 as he,MOUSE as F,Material as ge,MathUtils as _e,Matrix4 as ve,Mesh as I,MeshBasicMaterial as ye,NoToneMapping as be,Object3D as xe,OrthographicCamera as Se,PerspectiveCamera as Ce,Plane as we,PlaneGeometry as Te,Quaternion as Ee,REVISION as De,RawShaderMaterial as Oe,Ray as ke,Raycaster as Ae,ShaderMaterial as je,Sphere as Me,SphereGeometry as Ne,Spherical as Pe,TOUCH as Fe,Triangle as Ie,UniformsUtils as Le,UnsignedByteType as Re,Vector2 as L,Vector3 as R,Vector4 as ze,WebGLRenderTarget as Be,WebGLRenderer as Ve}from"three";import"three/examples/jsm/helpers/RectAreaLightHelper.js";var He={JS_EVAL_TYPE_GLOBAL:0,JS_EVAL_TYPE_MODULE:1,JS_EVAL_TYPE_DIRECT:2,JS_EVAL_TYPE_INDIRECT:3,JS_EVAL_TYPE_MASK:3,JS_EVAL_FLAG_STRICT:8,JS_EVAL_FLAG_STRIP:16,JS_EVAL_FLAG_COMPILE_ONLY:32,JS_EVAL_FLAG_BACKTRACE_BARRIER:64},Ue={BaseObjects:1,Date:2,Eval:4,StringNormalize:8,RegExp:16,RegExpCompiler:32,JSON:64,Proxy:128,MapSet:256,TypedArrays:512,Promise:1024,BigInt:2048,BigFloat:4096,BigDecimal:8192,OperatorOverloading:16384,BignumExt:32768},We={Pending:0,Fulfilled:1,Rejected:2},Ge={JS_GPN_STRING_MASK:1,JS_GPN_SYMBOL_MASK:2,JS_GPN_PRIVATE_MASK:4,JS_GPN_ENUM_ONLY:16,JS_GPN_SET_ENUM:32,QTS_GPN_NUMBER_MASK:64,QTS_STANDARD_COMPLIANT_NUMBER:128},Ke={IsStrictlyEqual:0,IsSameValue:1,IsSameValueZero:2},qe=Object.defineProperty,Je=(e,t)=>{for(var n in t)qe(e,n,{get:t[n],enumerable:!0})},Ye=!1;function Xe(...e){Ye&&console.log(`quickjs-emscripten:`,...e)}Je({},{QuickJSAsyncifyError:()=>tt,QuickJSAsyncifySuspended:()=>nt,QuickJSEmptyGetOwnPropertyNames:()=>st,QuickJSEmscriptenModuleError:()=>it,QuickJSHostRefInvalid:()=>lt,QuickJSHostRefRangeExceeded:()=>ct,QuickJSMemoryLeakDetected:()=>rt,QuickJSNotImplemented:()=>et,QuickJSPromisePending:()=>ot,QuickJSUnknownIntrinsic:()=>at,QuickJSUnwrapError:()=>Ze,QuickJSUseAfterFree:()=>$e,QuickJSWrongOwner:()=>Qe});var Ze=class extends Error{constructor(e,t){let n=typeof e==`object`&&e&&`message`in e?String(e.message):String(e);super(n),this.cause=e,this.context=t,this.name=`QuickJSUnwrapError`}},Qe=class extends Error{constructor(){super(...arguments),this.name=`QuickJSWrongOwner`}},$e=class extends Error{constructor(){super(...arguments),this.name=`QuickJSUseAfterFree`}},et=class extends Error{constructor(){super(...arguments),this.name=`QuickJSNotImplemented`}},tt=class extends Error{constructor(){super(...arguments),this.name=`QuickJSAsyncifyError`}},nt=class extends Error{constructor(){super(...arguments),this.name=`QuickJSAsyncifySuspended`}},rt=class extends Error{constructor(){super(...arguments),this.name=`QuickJSMemoryLeakDetected`}},it=class extends Error{constructor(){super(...arguments),this.name=`QuickJSEmscriptenModuleError`}},at=class extends TypeError{constructor(){super(...arguments),this.name=`QuickJSUnknownIntrinsic`}},ot=class extends Error{constructor(){super(...arguments),this.name=`QuickJSPromisePending`}},st=class extends Error{constructor(){super(...arguments),this.name=`QuickJSEmptyGetOwnPropertyNames`}},ct=class extends Error{constructor(){super(...arguments),this.name=`QuickJSHostRefRangeExceeded`}},lt=class extends Error{constructor(){super(...arguments),this.name=`QuickJSHostRefInvalid`}};function*ut(e){return yield e}function dt(e){return ut(ht(e))}var ft=ut;ft.of=dt;function pt(e,t){return(...n)=>ht(t.call(e,ft,...n))}function mt(e,t){return ht(t.call(e,ft))}function ht(e){function t(n){return n.done?n.value:n.value instanceof Promise?n.value.then(n=>t(e.next(n)),n=>t(e.throw(n))):t(e.next(n.value))}return t(e.next())}var gt=class{[Symbol.dispose](){return this.dispose()}},_t=Symbol.dispose??Symbol.for(`Symbol.dispose`),vt=gt.prototype;vt[_t]||(vt[_t]=function(){return this.dispose()});var z=class e extends gt{constructor(e,t,n,r){super(),this._value=e,this.copier=t,this.disposer=n,this._owner=r,this._alive=!0,this._constructorStack=Ye?Error(`Lifetime constructed`).stack:void 0}get alive(){return this._alive}get value(){return this.assertAlive(),this._value}get owner(){return this._owner}get dupable(){return!!this.copier}dup(){if(this.assertAlive(),!this.copier)throw Error(`Non-dupable lifetime`);return new e(this.copier(this._value),this.copier,this.disposer,this._owner)}consume(e){this.assertAlive();let t=e(this);return this.dispose(),t}map(e){return this.assertAlive(),e(this)}tap(e){return e(this),this}dispose(){this.assertAlive(),this.disposer&&this.disposer(this._value),this._alive=!1}assertAlive(){if(!this.alive)throw this._constructorStack?new $e(`Lifetime not alive
2
+ ${this._constructorStack}
3
+ Lifetime used`):new $e(`Lifetime not alive`)}},yt=class extends z{constructor(e,t){super(e,void 0,void 0,t)}get dupable(){return!0}dup(){return this}dispose(){}},bt=class extends z{constructor(e,t,n,r){super(e,t,n,r)}dispose(){this._alive=!1}};function xt(e,t){let n;try{e.dispose()}catch(e){n=e}if(t&&n)throw Object.assign(t,{message:`${t.message}
4
+ Then, failed to dispose scope: ${n.message}`,disposeError:n}),t;if(t||n)throw t||n}var St=class e extends gt{constructor(){super(...arguments),this._disposables=new z(new Set),this.manage=e=>(this._disposables.value.add(e),e)}static withScope(t){let n=new e,r;try{return t(n)}catch(e){throw r=e,e}finally{xt(n,r)}}static withScopeMaybeAsync(t,n){return mt(void 0,function*(r){let i=new e,a;try{return yield*r.of(n.call(t,r,i))}catch(e){throw a=e,e}finally{xt(i,a)}})}static async withScopeAsync(t){let n=new e,r;try{return await t(n)}catch(e){throw r=e,e}finally{xt(n,r)}}get alive(){return this._disposables.alive}dispose(){let e=Array.from(this._disposables.value.values()).reverse();for(let t of e)t.alive&&t.dispose();this._disposables.dispose()}};function Ct(e){let t=e?Array.from(e):[];function n(){return t.forEach(e=>e.alive?e.dispose():void 0)}function r(){return t.some(e=>e.alive)}return Object.defineProperty(t,_t,{configurable:!0,enumerable:!1,value:n}),Object.defineProperty(t,"dispose",{configurable:!0,enumerable:!1,value:n}),Object.defineProperty(t,"alive",{configurable:!0,enumerable:!1,get:r}),t}function wt(e){return!!(e&&(typeof e==`object`||typeof e==`function`)&&`alive`in e&&typeof e.alive==`boolean`&&`dispose`in e&&typeof e.dispose==`function`)}var Tt=class e extends gt{static success(e){return new Et(e)}static fail(e,t){return new Dt(e,t)}static is(t){return t instanceof e}},Et=class extends Tt{constructor(e){super(),this.value=e}get alive(){return wt(this.value)?this.value.alive:!0}dispose(){wt(this.value)&&this.value.dispose()}unwrap(){return this.value}unwrapOr(e){return this.value}},Dt=class extends Tt{constructor(e,t){super(),this.error=e,this.onUnwrap=t}get alive(){return wt(this.error)?this.error.alive:!0}dispose(){wt(this.error)&&this.error.dispose()}unwrap(){throw this.onUnwrap(this),this.error}unwrapOr(e){return e}},Ot=Tt,kt=class extends gt{constructor(e){super(),this.resolve=e=>{this.resolveHandle.alive&&(this.context.unwrapResult(this.context.callFunction(this.resolveHandle,this.context.undefined,e||this.context.undefined)).dispose(),this.disposeResolvers(),this.onSettled())},this.reject=e=>{this.rejectHandle.alive&&(this.context.unwrapResult(this.context.callFunction(this.rejectHandle,this.context.undefined,e||this.context.undefined)).dispose(),this.disposeResolvers(),this.onSettled())},this.dispose=()=>{this.handle.alive&&this.handle.dispose(),this.disposeResolvers()},this.context=e.context,this.owner=e.context.runtime,this.handle=e.promiseHandle,this.settled=new Promise(e=>{this.onSettled=e}),this.resolveHandle=e.resolveHandle,this.rejectHandle=e.rejectHandle}get alive(){return this.handle.alive||this.resolveHandle.alive||this.rejectHandle.alive}disposeResolvers(){this.resolveHandle.alive&&this.resolveHandle.dispose(),this.rejectHandle.alive&&this.rejectHandle.dispose()}},At=class{constructor(e){this.module=e}toPointerArray(e){let t=new Int32Array(e.map(e=>e.value)),n=t.length*t.BYTES_PER_ELEMENT,r=this.module._malloc(n);return new Uint8Array(this.module.HEAPU8.buffer,r,n).set(new Uint8Array(t.buffer)),new z(r,void 0,e=>this.module._free(e))}newTypedArray(e,t){let n=new e(Array(t).fill(0)),r=n.length*n.BYTES_PER_ELEMENT,i=this.module._malloc(r),a=new e(this.module.HEAPU8.buffer,i,t);return a.set(n),new z({typedArray:a,ptr:i},void 0,e=>this.module._free(e.ptr))}newMutablePointerArray(e){return this.newTypedArray(Int32Array,e)}newHeapCharPointer(e){let t=this.module.lengthBytesUTF8(e),n=t+1,r=this.module._malloc(n);return this.module.stringToUTF8(e,r,n),new z({ptr:r,strlen:t},void 0,e=>this.module._free(e.ptr))}newHeapBufferPointer(e){let t=e.byteLength,n=this.module._malloc(t);return this.module.HEAPU8.set(e,n),new z({pointer:n,numBytes:t},void 0,e=>this.module._free(e.pointer))}consumeHeapCharPointer(e){let t=this.module.UTF8ToString(e);return this.module._free(e),t}};Object.freeze({BaseObjects:!0,Date:!0,Eval:!0,StringNormalize:!0,RegExp:!0,JSON:!0,Proxy:!0,MapSet:!0,TypedArrays:!0,Promise:!0});function jt(e){if(!e)return 0;let t=0;for(let[n,r]of Object.entries(e)){if(!(n in Ue))throw new at(n);r&&(t|=Ue[n])}return t}function Mt(e){if(typeof e==`number`)return e;if(e===void 0)return 0;let{type:t,strict:n,strip:r,compileOnly:i,backtraceBarrier:a}=e,o=0;return t===`global`&&(o|=He.JS_EVAL_TYPE_GLOBAL),t===`module`&&(o|=He.JS_EVAL_TYPE_MODULE),n&&(o|=He.JS_EVAL_FLAG_STRICT),r&&(o|=He.JS_EVAL_FLAG_STRIP),i&&(o|=He.JS_EVAL_FLAG_COMPILE_ONLY),a&&(o|=He.JS_EVAL_FLAG_BACKTRACE_BARRIER),o}function Nt(e){if(typeof e==`number`)return e;if(e===void 0)return 0;let{strings:t,symbols:n,quickjsPrivate:r,onlyEnumerable:i,numbers:a,numbersAsStrings:o}=e,s=0;return t&&(s|=Ge.JS_GPN_STRING_MASK),n&&(s|=Ge.JS_GPN_SYMBOL_MASK),r&&(s|=Ge.JS_GPN_PRIVATE_MASK),i&&(s|=Ge.JS_GPN_ENUM_ONLY),a&&(s|=Ge.QTS_GPN_NUMBER_MASK),o&&(s|=Ge.QTS_STANDARD_COMPLIANT_NUMBER),s}function Pt(...e){let t=[];for(let n of e)n!==void 0&&(t=t.concat(n));return t}var Ft=class extends gt{constructor(e,t){super(),this.handle=e,this.context=t,this._isDone=!1,this.owner=t.runtime}[Symbol.iterator](){return this}next(e){if(!this.alive||this._isDone)return{done:!0,value:void 0};let t=this._next??=this.context.getProp(this.handle,`next`);return this.callIteratorMethod(t,e)}return(e){if(!this.alive)return{done:!0,value:void 0};let t=this.context.getProp(this.handle,`return`);if(t===this.context.undefined&&e===void 0)return this.dispose(),{done:!0,value:void 0};let n=this.callIteratorMethod(t,e);return t.dispose(),this.dispose(),n}throw(e){if(!this.alive)return{done:!0,value:void 0};let t=e instanceof z?e:this.context.newError(e),n=this.context.getProp(this.handle,`throw`),r=this.callIteratorMethod(n,e);return t.alive&&t.dispose(),n.dispose(),this.dispose(),r}get alive(){return this.handle.alive}dispose(){this._isDone=!0,this.handle.dispose(),this._next?.dispose()}callIteratorMethod(e,t){let n=t?this.context.callFunction(e,this.handle,t):this.context.callFunction(e,this.handle);if(n.error)return this.dispose(),{value:n};let r=this.context.getProp(n.value,`done`).consume(e=>this.context.dump(e)),i=this.context.getProp(n.value,`value`);return n.value.dispose(),r&&this.dispose(),{value:Ot.success(i),done:r}}},It=-2147483648,Lt=2147483647,Rt=0;function zt(e){return e>>8}var Bt=class{constructor(){this.nextId=It,this.freelist=[],this.groups=new Map}put(e){let t=this.allocateId(),n=zt(t),r=this.groups.get(n);return r||(r=new Map,this.groups.set(n,r)),r.set(t,e),t}get(e){if(e===Rt)throw new lt(`no host reference id defined`);let t=zt(e),n=this.groups.get(t);if(!n)throw new lt(`host reference id ${e} is not defined`);let r=n.get(e);if(!r)throw new lt(`host reference id ${e} is not defined`);return r}delete(e){if(e===Rt)throw new lt(`no host reference id defined`);let t=zt(e),n=this.groups.get(t);if(!n)throw new lt(`host reference id ${e} is not defined`);n.delete(e),n.size===0&&this.groups.delete(t),this.freelist.push(e)}allocateId(){if(this.freelist.length>0)return this.freelist.shift();if(this.nextId===Rt&&this.nextId++,this.nextId>Lt)throw new ct(`HostRefMap: too many host refs created without disposing. Max simultaneous host refs: ${Lt-It}`);return this.nextId++}},Vt=class extends gt{constructor(e,t,n){if(n===Rt)throw new lt(`cannot create HostRef with undefined id`);super(),this.runtime=e,this.handle=t,this.id=n}get alive(){return this.handle.alive}dispose(){this.handle.dispose()}get value(){return this.runtime.hostRefs.get(this.id)}},Ht=class extends At{constructor(e){super(e.module),this.scope=new St,this.copyJSValue=e=>this.ffi.QTS_DupValuePointer(this.ctx.value,e),this.freeJSValue=e=>{this.ffi.QTS_FreeValuePointer(this.ctx.value,e)},e.ownedLifetimes?.forEach(e=>this.scope.manage(e)),this.owner=e.owner,this.module=e.module,this.ffi=e.ffi,this.rt=e.rt,this.ctx=this.scope.manage(e.ctx)}get alive(){return this.scope.alive}dispose(){return this.scope.dispose()}[Symbol.dispose](){return this.dispose()}manage(e){return this.scope.manage(e)}consumeJSCharPointer(e){let t=this.module.UTF8ToString(e);return this.ffi.QTS_FreeCString(this.ctx.value,e),t}heapValueHandle(e,t){let n=t?e=>{t(),this.freeJSValue(e)}:this.freeJSValue;return new z(e,this.copyJSValue,n,this.owner)}staticHeapValueHandle(e){return this.manage(this.heapValueHandle(e)),new yt(e,this.owner)}},Ut=class extends gt{constructor(e){super(),this._undefined=void 0,this._null=void 0,this._false=void 0,this._true=void 0,this._global=void 0,this._BigInt=void 0,this._Symbol=void 0,this._SymbolIterator=void 0,this._SymbolAsyncIterator=void 0,this.cToHostCallbacks={callFunction:(e,t,n,r,i)=>{if(e!==this.ctx.value)throw Error(`QuickJSContext instance received C -> JS call with mismatched ctx`);let a=this.getFunction(i);return St.withScopeMaybeAsync(this,function*(e,i){let o=i.manage(new bt(t,this.memory.copyJSValue,this.memory.freeJSValue,this.runtime)),s=Array(n);for(let e=0;e<n;e++){let t=this.ffi.QTS_ArgvGetJSValueConstPointer(r,e);s[e]=i.manage(new bt(t,this.memory.copyJSValue,this.memory.freeJSValue,this.runtime))}try{let t=yield*e(a.apply(o,s));if(t){if(`error`in t&&t.error)throw this.runtime.debugLog(`throw error`,t.error),t.error;let e=i.manage(t instanceof z?t:t.value);return this.ffi.QTS_DupValuePointer(this.ctx.value,e.value)}return 0}catch(e){return this.errorToHandle(e).consume(e=>this.ffi.QTS_Throw(this.ctx.value,e.value))}})}},this.runtime=e.runtime,this.module=e.module,this.ffi=e.ffi,this.rt=e.rt,this.ctx=e.ctx,this.memory=new Ht({...e,owner:this.runtime}),e.callbacks.setContextCallbacks(this.ctx.value,this.cToHostCallbacks),this.dump=this.dump.bind(this),this.getString=this.getString.bind(this),this.getNumber=this.getNumber.bind(this),this.resolvePromise=this.resolvePromise.bind(this),this.uint32Out=this.memory.manage(this.memory.newTypedArray(Uint32Array,1))}get alive(){return this.memory.alive}dispose(){this.memory.dispose()}get undefined(){if(this._undefined)return this._undefined;let e=this.ffi.QTS_GetUndefined();return this._undefined=new yt(e)}get null(){if(this._null)return this._null;let e=this.ffi.QTS_GetNull();return this._null=new yt(e)}get true(){if(this._true)return this._true;let e=this.ffi.QTS_GetTrue();return this._true=new yt(e)}get false(){if(this._false)return this._false;let e=this.ffi.QTS_GetFalse();return this._false=new yt(e)}get global(){if(this._global)return this._global;let e=this.ffi.QTS_GetGlobalObject(this.ctx.value);return this._global=this.memory.staticHeapValueHandle(e),this._global}newNumber(e){return this.memory.heapValueHandle(this.ffi.QTS_NewFloat64(this.ctx.value,e))}newString(e){let t=this.memory.newHeapCharPointer(e).consume(e=>this.ffi.QTS_NewString(this.ctx.value,e.value.ptr));return this.memory.heapValueHandle(t)}newUniqueSymbol(e){let t=(typeof e==`symbol`?e.description:e)??``,n=this.memory.newHeapCharPointer(t).consume(e=>this.ffi.QTS_NewSymbol(this.ctx.value,e.value.ptr,0));return this.memory.heapValueHandle(n)}newSymbolFor(e){let t=(typeof e==`symbol`?e.description:e)??``,n=this.memory.newHeapCharPointer(t).consume(e=>this.ffi.QTS_NewSymbol(this.ctx.value,e.value.ptr,1));return this.memory.heapValueHandle(n)}getWellKnownSymbol(e){return this._Symbol??=this.memory.manage(this.getProp(this.global,`Symbol`)),this.getProp(this._Symbol,e)}newBigInt(e){if(!this._BigInt){let e=this.getProp(this.global,`BigInt`);this.memory.manage(e),this._BigInt=new yt(e.value,this.runtime)}let t=this._BigInt,n=String(e);return this.newString(n).consume(e=>this.unwrapResult(this.callFunction(t,this.undefined,e)))}newObject(e){e&&this.runtime.assertOwned(e);let t=e?this.ffi.QTS_NewObjectProto(this.ctx.value,e.value):this.ffi.QTS_NewObject(this.ctx.value);return this.memory.heapValueHandle(t)}newArray(){let e=this.ffi.QTS_NewArray(this.ctx.value);return this.memory.heapValueHandle(e)}newArrayBuffer(e){let t=new Uint8Array(e),n=this.memory.newHeapBufferPointer(t),r=this.ffi.QTS_NewArrayBuffer(this.ctx.value,n.value.pointer,t.length);return this.memory.heapValueHandle(r)}newPromise(e){let t=St.withScope(e=>{let t=e.manage(this.memory.newMutablePointerArray(2)),n=this.ffi.QTS_NewPromiseCapability(this.ctx.value,t.value.ptr),r=this.memory.heapValueHandle(n),[i,a]=Array.from(t.value.typedArray).map(e=>this.memory.heapValueHandle(e));return new kt({context:this,promiseHandle:r,resolveHandle:i,rejectHandle:a})});return e&&typeof e==`function`&&(e=new Promise(e)),e&&Promise.resolve(e).then(t.resolve,e=>e instanceof z?t.reject(e):this.newError(e).consume(t.reject)),t}newFunction(e,t){let n=typeof e==`function`?e:t;if(!n)throw TypeError(`Expected a function`);return this.newFunctionWithOptions({name:typeof e==`string`?e:void 0,length:n.length,isConstructor:!1,fn:n})}newConstructorFunction(e,t){let n=typeof e==`function`?e:t;if(!n)throw TypeError(`Expected a function`);return this.newFunctionWithOptions({name:typeof e==`string`?e:void 0,length:n.length,isConstructor:!0,fn:n})}newFunctionWithOptions(e){let{name:t,length:n,isConstructor:r,fn:i}=e,a=this.runtime.hostRefs.put(i);try{return this.memory.heapValueHandle(this.ffi.QTS_NewFunction(this.ctx.value,t??``,n,r,a))}catch(e){throw this.runtime.hostRefs.delete(a),e}}newError(e){let t=this.memory.heapValueHandle(this.ffi.QTS_NewError(this.ctx.value));return e&&typeof e==`object`?(e.name!==void 0&&this.newString(e.name).consume(e=>this.setProp(t,`name`,e)),e.message!==void 0&&this.newString(e.message).consume(e=>this.setProp(t,`message`,e))):typeof e==`string`?this.newString(e).consume(e=>this.setProp(t,`message`,e)):e!==void 0&&this.newString(String(e)).consume(e=>this.setProp(t,`message`,e)),t}newHostRef(e){let t=this.runtime.hostRefs.put(e);try{let e=this.memory.heapValueHandle(this.ffi.QTS_NewHostRef(this.ctx.value,t));return new Vt(this.runtime,e,t)}catch(e){throw this.runtime.hostRefs.delete(t),e}}toHostRef(e){let t=this.ffi.QTS_GetHostRefId(e.value);if(t!==0)return this.runtime.hostRefs.get(t),new Vt(this.runtime,e.dup(),t)}unwrapHostRef(e){let t=this.ffi.QTS_GetHostRefId(e.value);if(t===0)throw new lt(`handle is not a HostRef`);return this.runtime.hostRefs.get(t)}typeof(e){return this.runtime.assertOwned(e),this.memory.consumeHeapCharPointer(this.ffi.QTS_Typeof(this.ctx.value,e.value))}getNumber(e){return this.runtime.assertOwned(e),this.ffi.QTS_GetFloat64(this.ctx.value,e.value)}getString(e){return this.runtime.assertOwned(e),this.memory.consumeJSCharPointer(this.ffi.QTS_GetString(this.ctx.value,e.value))}getSymbol(e){this.runtime.assertOwned(e);let t=this.memory.consumeJSCharPointer(this.ffi.QTS_GetSymbolDescriptionOrKey(this.ctx.value,e.value));return this.ffi.QTS_IsGlobalSymbol(this.ctx.value,e.value)?Symbol.for(t):Symbol(t)}getBigInt(e){this.runtime.assertOwned(e);let t=this.getString(e);return BigInt(t)}getArrayBuffer(e){this.runtime.assertOwned(e);let t=this.ffi.QTS_GetArrayBufferLength(this.ctx.value,e.value),n=this.ffi.QTS_GetArrayBuffer(this.ctx.value,e.value);if(!n)throw Error(`Couldn't allocate memory to get ArrayBuffer`);return new z(this.module.HEAPU8.subarray(n,n+t),void 0,()=>this.module._free(n))}getPromiseState(e){this.runtime.assertOwned(e);let t=this.ffi.QTS_PromiseState(this.ctx.value,e.value);if(t<0)return{type:`fulfilled`,value:e,notAPromise:!0};if(t===We.Pending)return{type:`pending`,get error(){return new ot(`Cannot unwrap a pending promise`)}};let n=this.ffi.QTS_PromiseResult(this.ctx.value,e.value),r=this.memory.heapValueHandle(n);if(t===We.Fulfilled)return{type:`fulfilled`,value:r};if(t===We.Rejected)return{type:`rejected`,error:r};throw r.dispose(),Error(`Unknown JSPromiseStateEnum: ${t}`)}resolvePromise(e){this.runtime.assertOwned(e);let t=St.withScope(t=>{let n=t.manage(this.getProp(this.global,`Promise`)),r=t.manage(this.getProp(n,`resolve`));return this.callFunction(r,n,e)});return t.error?Promise.resolve(t):new Promise(e=>{St.withScope(n=>{let r=n.manage(this.newFunction(`resolve`,t=>{e(this.success(t&&t.dup()))})),i=n.manage(this.newFunction(`reject`,t=>{e(this.fail(t&&t.dup()))})),a=n.manage(t.value),o=n.manage(this.getProp(a,`then`));this.callFunction(o,a,r,i).unwrap().dispose()})})}isEqual(e,t,n=Ke.IsStrictlyEqual){if(e===t)return!0;this.runtime.assertOwned(e),this.runtime.assertOwned(t);let r=this.ffi.QTS_IsEqual(this.ctx.value,e.value,t.value,n);if(r===-1)throw new et(`WASM variant does not expose equality`);return!!r}eq(e,t){return this.isEqual(e,t,Ke.IsStrictlyEqual)}sameValue(e,t){return this.isEqual(e,t,Ke.IsSameValue)}sameValueZero(e,t){return this.isEqual(e,t,Ke.IsSameValueZero)}getProp(e,t){this.runtime.assertOwned(e);let n;return n=typeof t==`number`&&t>=0?this.ffi.QTS_GetPropNumber(this.ctx.value,e.value,t):this.borrowPropertyKey(t).consume(t=>this.ffi.QTS_GetProp(this.ctx.value,e.value,t.value)),this.memory.heapValueHandle(n)}getLength(e){if(this.runtime.assertOwned(e),!(this.ffi.QTS_GetLength(this.ctx.value,this.uint32Out.value.ptr,e.value)<0))return this.uint32Out.value.typedArray[0]}getOwnPropertyNames(e,t={strings:!0,numbersAsStrings:!0}){this.runtime.assertOwned(e),e.value;let n=Nt(t);if(n===0)throw new st(`No options set, will return an empty array`);return St.withScope(t=>{let r=t.manage(this.memory.newMutablePointerArray(1)),i=this.ffi.QTS_GetOwnPropertyNames(this.ctx.value,r.value.ptr,this.uint32Out.value.ptr,e.value,n);if(i)return this.fail(this.memory.heapValueHandle(i));let a=this.uint32Out.value.typedArray[0],o=r.value.typedArray[0],s=new Uint32Array(this.module.HEAP8.buffer,o,a),c=Array.from(s).map(e=>this.memory.heapValueHandle(e));return this.ffi.QTS_FreeVoidPointer(this.ctx.value,o),this.success(Ct(c))})}getIterator(e){let t=this._SymbolIterator??=this.memory.manage(this.getWellKnownSymbol(`iterator`));return St.withScope(n=>{let r=n.manage(this.getProp(e,t)),i=this.callFunction(r,e);return i.error?i:this.success(new Ft(i.value,this))})}setProp(e,t,n){this.runtime.assertOwned(e),this.borrowPropertyKey(t).consume(t=>this.ffi.QTS_SetProp(this.ctx.value,e.value,t.value,n.value))}defineProp(e,t,n){this.runtime.assertOwned(e),St.withScope(r=>{let i=r.manage(this.borrowPropertyKey(t)),a=n.value||this.undefined,o=!!n.configurable,s=!!n.enumerable,c=!!n.value,l=n.get?r.manage(this.newFunction(n.get.name,n.get)):this.undefined,u=n.set?r.manage(this.newFunction(n.set.name,n.set)):this.undefined;this.ffi.QTS_DefineProp(this.ctx.value,e.value,i.value,a.value,l.value,u.value,o,s,c)})}callFunction(e,t,...n){this.runtime.assertOwned(e);let r,i=n[0];r=i===void 0||Array.isArray(i)?i??[]:n;let a=this.memory.toPointerArray(r).consume(n=>this.ffi.QTS_Call(this.ctx.value,e.value,t.value,r.length,n.value)),o=this.ffi.QTS_ResolveException(this.ctx.value,a);return o?(this.ffi.QTS_FreeValuePointer(this.ctx.value,a),this.fail(this.memory.heapValueHandle(o))):this.success(this.memory.heapValueHandle(a))}callMethod(e,t,n=[]){return this.getProp(e,t).consume(t=>this.callFunction(t,e,n))}evalCode(e,t=`eval.js`,n){let r=+(n===void 0),i=Mt(n),a=this.memory.newHeapCharPointer(e).consume(e=>this.ffi.QTS_Eval(this.ctx.value,e.value.ptr,e.value.strlen,t,r,i)),o=this.ffi.QTS_ResolveException(this.ctx.value,a);return o?(this.ffi.QTS_FreeValuePointer(this.ctx.value,a),this.fail(this.memory.heapValueHandle(o))):this.success(this.memory.heapValueHandle(a))}throw(e){return this.errorToHandle(e).consume(e=>this.ffi.QTS_Throw(this.ctx.value,e.value))}borrowPropertyKey(e){return typeof e==`number`?this.newNumber(e):typeof e==`string`?this.newString(e):new yt(e.value,this.runtime)}getMemory(e){if(e===this.rt.value)return this.memory;throw Error(`Private API. Cannot get memory from a different runtime`)}dump(e){this.runtime.assertOwned(e);let t=this.typeof(e);if(t===`string`)return this.getString(e);if(t===`number`)return this.getNumber(e);if(t===`bigint`)return this.getBigInt(e);if(t===`undefined`)return;if(t===`symbol`)return this.getSymbol(e);let n=this.getPromiseState(e);if(n.type===`fulfilled`&&!n.notAPromise)return e.dispose(),{type:n.type,value:n.value.consume(this.dump)};if(n.type===`pending`)return e.dispose(),{type:n.type};if(n.type===`rejected`)return e.dispose(),{type:n.type,error:n.error.consume(this.dump)};let r=this.memory.consumeJSCharPointer(this.ffi.QTS_Dump(this.ctx.value,e.value));try{return JSON.parse(r)}catch{return r}}unwrapResult(e){if(e.error){let t=`context`in e.error?e.error.context:this,n=e.error.consume(e=>this.dump(e));if(n&&typeof n==`object`&&typeof n.message==`string`){let{message:e,name:r,stack:i,...a}=n,o=new Ze(n,t);typeof r==`string`&&(o.name=n.name),o.message=e;let s=o.stack;throw typeof i==`string`&&(o.stack=`${r}: ${e}
5
+ ${n.stack}Host: ${s}`),Object.assign(o,a),o}throw new Ze(n)}return e.value}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.alive?`${this.constructor.name} { ctx: ${this.ctx.value} rt: ${this.rt.value} }`:`${this.constructor.name} { disposed }`}getFunction(e){let t=this.runtime.hostRefs.get(e);if(typeof t!=`function`)throw Error(`Host reference ${e} is not a function`);return t}errorToHandle(e){return e instanceof z?e:this.newError(e)}encodeBinaryJSON(e){let t=this.ffi.QTS_bjson_encode(this.ctx.value,e.value);return this.memory.heapValueHandle(t)}decodeBinaryJSON(e){let t=this.ffi.QTS_bjson_decode(this.ctx.value,e.value);return this.memory.heapValueHandle(t)}success(e){return Ot.success(e)}fail(e){return Ot.fail(e,e=>this.unwrapResult(e))}},Wt=class extends gt{constructor(e){super(),this.scope=new St,this.contextMap=new Map,this.hostRefs=new Bt,this._debugMode=!1,this.cToHostCallbacks={freeHostRef:(e,t)=>{if(e!==this.rt.value)throw Error(`Runtime pointer mismatch`);this.hostRefs.delete(t)},shouldInterrupt:e=>{if(e!==this.rt.value)throw Error(`QuickJSContext instance received C -> JS interrupt with mismatched rt`);let t=this.interruptHandler;if(!t)throw Error(`QuickJSContext had no interrupt handler`);return+!!t(this)},loadModuleSource:pt(this,function*(e,t,n,r){let i=this.moduleLoader;if(!i)throw Error(`Runtime has no module loader`);if(t!==this.rt.value)throw Error(`Runtime pointer mismatch`);let a=this.contextMap.get(n)??this.newContext({contextPointer:n});try{let t=yield*e(i(r,a));if(typeof t==`object`&&`error`in t&&t.error)throw this.debugLog(`cToHostLoadModule: loader returned error`,t.error),t.error;let n=typeof t==`string`?t:`value`in t?t.value:t;return this.memory.newHeapCharPointer(n).value.ptr}catch(e){return this.debugLog(`cToHostLoadModule: caught error`,e),a.throw(e),0}}),normalizeModule:pt(this,function*(e,t,n,r,i){let a=this.moduleNormalizer;if(!a)throw Error(`Runtime has no module normalizer`);if(t!==this.rt.value)throw Error(`Runtime pointer mismatch`);let o=this.contextMap.get(n)??this.newContext({contextPointer:n});try{let t=yield*e(a(r,i,o));if(typeof t==`object`&&`error`in t&&t.error)throw this.debugLog(`cToHostNormalizeModule: normalizer returned error`,t.error),t.error;let n=typeof t==`string`?t:t.value;return o.getMemory(this.rt.value).newHeapCharPointer(n).value.ptr}catch(e){return this.debugLog(`normalizeModule: caught error`,e),o.throw(e),0}})},e.ownedLifetimes?.forEach(e=>this.scope.manage(e)),this.module=e.module,this.memory=new At(this.module),this.ffi=e.ffi,this.rt=e.rt,this.callbacks=e.callbacks,this.scope.manage(this.rt),this.callbacks.setRuntimeCallbacks(this.rt.value,this.cToHostCallbacks),this.executePendingJobs=this.executePendingJobs.bind(this),Ye&&this.setDebugMode(!0)}get alive(){return this.scope.alive}dispose(){return this.scope.dispose()}newContext(e={}){let t=jt(e.intrinsics),n=new z(e.contextPointer||this.ffi.QTS_NewContext(this.rt.value,t),void 0,e=>{this.contextMap.delete(e),this.callbacks.deleteContext(e),this.ffi.QTS_FreeContext(e)}),r=new Ut({module:this.module,ctx:n,ffi:this.ffi,rt:this.rt,ownedLifetimes:e.ownedLifetimes,runtime:this,callbacks:this.callbacks});return this.contextMap.set(n.value,r),r}setModuleLoader(e,t){this.moduleLoader=e,this.moduleNormalizer=t,this.ffi.QTS_RuntimeEnableModuleLoader(this.rt.value,+!!this.moduleNormalizer)}removeModuleLoader(){this.moduleLoader=void 0,this.ffi.QTS_RuntimeDisableModuleLoader(this.rt.value)}hasPendingJob(){return!!this.ffi.QTS_IsJobPending(this.rt.value)}setInterruptHandler(e){let t=this.interruptHandler;this.interruptHandler=e,t||this.ffi.QTS_RuntimeEnableInterruptHandler(this.rt.value)}removeInterruptHandler(){this.interruptHandler&&=(this.ffi.QTS_RuntimeDisableInterruptHandler(this.rt.value),void 0)}executePendingJobs(e=-1){let t=this.memory.newMutablePointerArray(1),n=this.ffi.QTS_ExecutePendingJob(this.rt.value,e??-1,t.value.ptr),r=t.value.typedArray[0];if(t.dispose(),r===0)return this.ffi.QTS_FreeValuePointerRuntime(this.rt.value,n),Ot.success(0);let i=this.contextMap.get(r)??this.newContext({contextPointer:r}),a=i.getMemory(this.rt.value).heapValueHandle(n);if(i.typeof(a)===`number`){let e=i.getNumber(a);return a.dispose(),Ot.success(e)}else{let e=Object.assign(a,{context:i});return Ot.fail(e,e=>i.unwrapResult(e))}}setMemoryLimit(e){if(e<0&&e!==-1)throw Error(`Cannot set memory limit to negative number. To unset, pass -1`);this.ffi.QTS_RuntimeSetMemoryLimit(this.rt.value,e)}computeMemoryUsage(){let e=this.getSystemContext().getMemory(this.rt.value);return e.heapValueHandle(this.ffi.QTS_RuntimeComputeMemoryUsage(this.rt.value,e.ctx.value))}dumpMemoryUsage(){return this.memory.consumeHeapCharPointer(this.ffi.QTS_RuntimeDumpMemoryUsage(this.rt.value))}setMaxStackSize(e){if(e<0)throw Error(`Cannot set memory limit to negative number. To unset, pass 0.`);this.ffi.QTS_RuntimeSetMaxStackSize(this.rt.value,e)}assertOwned(e){if(e.owner&&e.owner.rt!==this.rt)throw new Qe(`Handle is not owned by this runtime: ${e.owner.rt.value} != ${this.rt.value}`)}setDebugMode(e){this._debugMode=e,this.ffi.DEBUG&&this.rt.alive&&this.ffi.QTS_SetDebugLogEnabled(this.rt.value,+!!e)}isDebugMode(){return this._debugMode}debugLog(...e){this._debugMode&&console.log(`quickjs-emscripten:`,...e)}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.alive?`${this.constructor.name} { rt: ${this.rt.value} }`:`${this.constructor.name} { disposed }`}getSystemContext(){return this.context||=this.scope.manage(this.newContext()),this.context}},Gt=class{constructor(e){this.freeHostRef=e.freeHostRef,this.callFunction=e.callFunction,this.shouldInterrupt=e.shouldInterrupt,this.loadModuleSource=e.loadModuleSource,this.normalizeModule=e.normalizeModule}},Kt=class{constructor(e){this.contextCallbacks=new Map,this.runtimeCallbacks=new Map,this.suspendedCount=0,this.cToHostCallbacks=new Gt({freeHostRef:(e,t,n)=>{let r=this.runtimeCallbacks.get(t);if(!r)throw Error(`QuickJSRuntime(rt = ${t}) not found when trying to free HostRef(id = ${n})`);r.freeHostRef(t,n)},callFunction:(e,t,n,r,i,a)=>this.handleAsyncify(e,()=>{try{let e=this.contextCallbacks.get(t);if(!e)throw Error(`QuickJSContext(ctx = ${t}) not found for C function call "${a}"`);return e.callFunction(t,n,r,i,a)}catch(e){return console.error(`[C to host error: returning null]`,e),0}}),shouldInterrupt:(e,t)=>this.handleAsyncify(e,()=>{try{let e=this.runtimeCallbacks.get(t);if(!e)throw Error(`QuickJSRuntime(rt = ${t}) not found for C interrupt`);return e.shouldInterrupt(t)}catch(e){return console.error(`[C to host interrupt: returning error]`,e),1}}),loadModuleSource:(e,t,n,r)=>this.handleAsyncify(e,()=>{try{let e=this.runtimeCallbacks.get(t);if(!e)throw Error(`QuickJSRuntime(rt = ${t}) not found for C module loader`);let i=e.loadModuleSource;if(!i)throw Error(`QuickJSRuntime(rt = ${t}) does not support module loading`);return i(t,n,r)}catch(e){return console.error(`[C to host module loader error: returning null]`,e),0}}),normalizeModule:(e,t,n,r,i)=>this.handleAsyncify(e,()=>{try{let e=this.runtimeCallbacks.get(t);if(!e)throw Error(`QuickJSRuntime(rt = ${t}) not found for C module loader`);let a=e.normalizeModule;if(!a)throw Error(`QuickJSRuntime(rt = ${t}) does not support module loading`);return a(t,n,r,i)}catch(e){return console.error(`[C to host module loader error: returning null]`,e),0}})}),this.module=e,this.module.callbacks=this.cToHostCallbacks}setRuntimeCallbacks(e,t){this.runtimeCallbacks.set(e,t)}deleteRuntime(e){this.runtimeCallbacks.delete(e)}setContextCallbacks(e,t){this.contextCallbacks.set(e,t)}deleteContext(e){this.contextCallbacks.delete(e)}handleAsyncify(e,t){if(e)return e.handleSleep(e=>{try{let n=t();if(!(n instanceof Promise)){Xe(`asyncify.handleSleep: not suspending:`,n),e(n);return}if(this.suspended)throw new tt(`Already suspended at: ${this.suspended.stack}
6
+ Attempted to suspend at:`);this.suspended=new nt(`(${this.suspendedCount++})`),Xe(`asyncify.handleSleep: suspending:`,this.suspended),n.then(t=>{this.suspended=void 0,Xe(`asyncify.handleSleep: resolved:`,t),e(t)},e=>{Xe(`asyncify.handleSleep: rejected:`,e),console.error(`QuickJS: cannot handle error in suspended function`,e),this.suspended=void 0})}catch(e){throw Xe(`asyncify.handleSleep: error:`,e),this.suspended=void 0,e}});let n=t();if(n instanceof Promise)throw Error(`Promise return value not supported in non-asyncify context.`);return n}};function qt(e,t){t.interruptHandler&&e.setInterruptHandler(t.interruptHandler),t.maxStackSizeBytes!==void 0&&e.setMaxStackSize(t.maxStackSizeBytes),t.memoryLimitBytes!==void 0&&e.setMemoryLimit(t.memoryLimitBytes)}function Jt(e,t){t.moduleLoader&&e.setModuleLoader(t.moduleLoader),t.shouldInterrupt&&e.setInterruptHandler(t.shouldInterrupt),t.memoryLimitBytes!==void 0&&e.setMemoryLimit(t.memoryLimitBytes),t.maxStackSizeBytes!==void 0&&e.setMaxStackSize(t.maxStackSizeBytes)}var Yt=class{constructor(e,t){this.module=e,this.ffi=t,this.callbacks=new Kt(e)}newRuntime(e={}){let t=new z(this.ffi.QTS_NewRuntime(),void 0,e=>{this.ffi.QTS_FreeRuntime(e),this.callbacks.deleteRuntime(e)}),n=new Wt({module:this.module,callbacks:this.callbacks,ffi:this.ffi,rt:t});return qt(n,e),e.moduleLoader&&n.setModuleLoader(e.moduleLoader),n}newContext(e={}){let t=this.newRuntime(),n=t.newContext({...e,ownedLifetimes:Pt(t,e.ownedLifetimes)});return t.context=n,n}evalCode(e,t={}){return St.withScope(n=>{let r=n.manage(this.newContext());Jt(r.runtime,t);let i=r.evalCode(e,`eval.js`);if(t.memoryLimitBytes!==void 0&&r.runtime.setMemoryLimit(-1),i.error)throw r.dump(n.manage(i.error));return r.dump(n.manage(i.value))})}getWasmMemory(){let e=this.module.quickjsEmscriptenInit?.(()=>{})?.getWasmMemory?.();if(!e)throw Error(`Variant does not support getting WebAssembly.Memory`);return e}getFFI(){return this.ffi}};async function Xt(e){let t=Zt(await e),[n,r,{QuickJSWASMModule:i}]=await Promise.all([t.importModuleLoader().then(Zt),t.importFFI(),Promise.resolve().then(()=>ka).then(Zt)]),a=await n();return a.type=`sync`,new i(a,new r(a))}function Zt(e){return e&&`default`in e&&e.default?e.default&&`default`in e.default&&e.default.default?e.default.default:e.default:e}var Qt={type:`sync`,importFFI:()=>Promise.resolve().then(()=>Da).then(e=>e.QuickJSFFI),importModuleLoader:()=>Promise.resolve().then(()=>Ta).then(e=>e.default)};async function $t(e=Qt){return Xt(e)}var en,tn;async function nn(){return tn??=$t().then(e=>(en=e,e)),await tn}function rn(){if(!en)throw Error(`QuickJS not initialized. Await getQuickJS() at least once.`);return en}function an(e,t){return u()?(_(e,t),!0):!1}function on(){let e=new Set,t=t=>{e.delete(t)};return{on:n=>{e.add(n);let r=()=>t(n);return an(r),{off:r}},off:t,trigger:(...t)=>Promise.all(Array.from(e).map(e=>e(...t))),clear:()=>{e.clear()}}}const sn=new WeakMap,cn=(...e)=>{let t=e[0],n=l()?.proxy??u();if(n==null&&!d())throw Error(`injectLocal must be called in setup`);return n&&sn.has(n)&&t in sn.get(n)?sn.get(n)[t]:f(...e)};function ln(e,t){let n=l()?.proxy??u();if(n==null)throw Error(`provideLocal must be called in setup`);sn.has(n)||sn.set(n,Object.create(null));let r=sn.get(n);return r[e]=t,b(e,t)}function un(e,t){let n=t?.injectionKey||Symbol(e.name||`InjectionState`),r=t?.defaultValue;return[(...t)=>{let r=e(...t);return ln(n,r),r},()=>cn(n,r)]}const dn=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;const fn=Object.prototype.toString,pn=e=>fn.call(e)===`[object Object]`,mn=()=>{};function hn(e,t){function n(...n){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(r).catch(i)})}return n}function gn(e,t={}){let n,r,i=mn,a=e=>{clearTimeout(e),i(),i=mn},o;return s=>{let c=D(e),l=D(t.maxWait);return n&&a(n),c<=0||l!==void 0&&l<=0?(r&&=(a(r),void 0),Promise.resolve(s())):new Promise((e,u)=>{i=t.rejectOnCancel?u:e,o=s,l&&!r&&(r=setTimeout(()=>{n&&a(n),r=void 0,e(o())},l)),n=setTimeout(()=>{r&&a(r),r=void 0,e(s())},c)})}}function _n(e){return e.endsWith(`rem`)?Number.parseFloat(e)*16:Number.parseFloat(e)}function vn(e){return Array.isArray(e)?e:[e]}function yn(e){return e||l()}function bn(e,t=200,n={}){return hn(gn(t,n),e)}function xn(e,t=200,n={}){let r=C(D(e)),i=bn(()=>{r.value=e.value},t,n);return k(e,()=>i()),T(r)}function Sn(e,t=!0,n){yn(n)?g(e,n):t?e():m(e)}function Cn(e,t,n={}){let{immediate:r=!0,immediateCallback:i=!1}=n,a=E(!1),o;function s(){o&&=(clearTimeout(o),void 0)}function c(){a.value=!1,s()}function l(...n){i&&e(),s(),a.value=!0,o=setTimeout(()=>{a.value=!1,o=void 0,e(...n)},D(t))}return r&&(a.value=!0,dn&&l()),an(c),{isPending:T(a),start:l,stop:c}}function wn(e=1e3,t={}){let{controls:n=!1,callback:i}=t,a=Cn(i??mn,e,t),o=r(()=>!a.isPending.value);return n?{ready:o,...a}:o}function Tn(e,t,n){return k(e,t,{...n,immediate:!0})}function En(e,t,n){let r=k(e,(e,i,a)=>{e&&(n?.once&&m(()=>r()),t(e,i,a))},{...n,once:!1});return r}const Dn=dn?window:void 0;dn&&window.document,dn&&window.navigator,dn&&window.location;function On(e){let t=D(e);return t?.$el??t}function kn(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=r(()=>{let t=vn(D(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return Tn(()=>[n.value?.map(e=>On(e))??[Dn].filter(e=>e!=null),vn(D(n.value?e[1]:e[0])),vn(O(n.value?e[2]:e[1])),D(n.value?e[3]:e[2])],([e,n,r,i],a,o)=>{if(!e?.length||!n?.length||!r?.length)return;let s=pn(i)?{...i}:i,c=e.flatMap(e=>n.flatMap(n=>r.map(r=>t(e,n,r,s))));o(()=>{c.forEach(e=>e())})},{flush:`post`})}function An(){let e=E(!1),t=l();return t&&g(()=>{e.value=!0},t),e}function jn(e){let t=An();return r(()=>(t.value,!!e()))}function Mn(e,t={}){let{immediate:n=!0,fpsLimit:i=null,window:a=Dn,once:o=!1}=t,s=E(!1),c=r(()=>{let e=D(i);return e?1e3/e:null}),l=0,u=null;function d(t){if(!s.value||!a)return;l||=t;let n=t-l;if(c.value&&n<c.value){u=a.requestAnimationFrame(d);return}if(l=t,e({delta:n,timestamp:t}),o){s.value=!1,u=null;return}u=a.requestAnimationFrame(d)}function f(){!s.value&&a&&(s.value=!0,l=0,u=a.requestAnimationFrame(d))}function p(){s.value=!1,u!=null&&a&&(a.cancelAnimationFrame(u),u=null)}return n&&f(),an(p),{isActive:T(s),pause:p,resume:f}}const Nn=Symbol(`vueuse-ssr-width`);function Pn(){let e=d()?cn(Nn,null):null;return typeof e==`number`?e:void 0}function Fn(e,t={}){let{window:n=Dn,ssrWidth:i=Pn()}=t,a=jn(()=>n&&`matchMedia`in n&&typeof n.matchMedia==`function`),o=E(typeof i==`number`),s=E(),c=E(!1);return A(()=>{if(o.value){o.value=!a.value,c.value=D(e).split(`,`).some(e=>{let t=e.includes(`not all`),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),r=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),a=!!(n||r);return n&&a&&(a=i>=_n(n[1])),r&&a&&(a=i<=_n(r[1])),t?!a:a});return}a.value&&(s.value=n.matchMedia(D(e)),c.value=s.value.matches)}),kn(s,`change`,e=>{c.value=e.matches},{passive:!0}),r(()=>c.value)}function In(e={}){let{window:t=Dn}=e,n=E(1),r=Fn(()=>`(resolution: ${n.value}dppx)`,e),i=mn;return t&&(i=Tn(r,()=>n.value=t.devicePixelRatio)),{pixelRatio:T(n),stop:i}}function Ln(e,t,n={}){let{window:i=Dn,...a}=n,o,s=jn(()=>i&&`ResizeObserver`in i),c=()=>{o&&=(o.disconnect(),void 0)},l=k(r(()=>{let t=D(e);return Array.isArray(t)?t.map(e=>On(e)):[On(t)]}),e=>{if(c(),s.value&&i){o=new ResizeObserver(t);for(let t of e)t&&o.observe(t,a)}},{immediate:!0,flush:`post`}),u=()=>{c(),l()};return an(u),{isSupported:s,stop:u}}function Rn(e,t={width:0,height:0},n={}){let{window:i=Dn,box:a=`content-box`}=n,o=r(()=>{var t;return(t=On(e))==null||(t=t.namespaceURI)==null?void 0:t.includes(`svg`)}),s=E(t.width),c=E(t.height),{stop:l}=Ln(e,([t])=>{let n=a===`border-box`?t.borderBoxSize:a===`content-box`?t.contentBoxSize:t.devicePixelContentBoxSize;if(i&&o.value){let t=On(e);if(t){let e=t.getBoundingClientRect();s.value=e.width,c.value=e.height}}else if(n){let e=vn(n);s.value=e.reduce((e,{inlineSize:t})=>e+t,0),c.value=e.reduce((e,{blockSize:t})=>e+t,0)}else s.value=t.contentRect.width,c.value=t.contentRect.height},n);Sn(()=>{let n=On(e);n&&(s.value=`offsetWidth`in n?n.offsetWidth:t.width,c.value=`offsetHeight`in n?n.offsetHeight:t.height)});let u=k(()=>On(e),e=>{s.value=e?t.width:0,c.value=e?t.height:0});function d(){l(),u()}return{width:s,height:c,stop:d}}const zn={ctrl:`control`,command:`meta`,cmd:`meta`,option:`alt`,up:`arrowup`,down:`arrowdown`,left:`arrowleft`,right:`arrowright`};function Bn(e={}){let{reactive:t=!1,target:n=Dn,aliasMap:i=zn,passive:a=!0,onEventFired:o=mn}=e,s=x(new Set),c={toJSON(){return{}},current:s},l=t?x(c):c,u=new Set,d=new Map([[`Meta`,u],[`Shift`,new Set],[`Alt`,new Set]]),f=new Set;function p(e,n){e in l&&(t?l[e]=n:l[e].value=n)}function m(){s.clear();for(let e of f)p(e,!1)}function h(e,t,n){if(!(!e||typeof t.getModifierState!=`function`)){for(let[e,r]of d)if(t.getModifierState(e)){n.forEach(e=>r.add(e));break}}}function g(e,t){if(e)return;let n=`${t[0].toUpperCase()}${t.slice(1)}`,r=d.get(n);if(![`shift`,`alt`].includes(t)||!r)return;let i=Array.from(r),a=i.indexOf(t);i.forEach((e,t)=>{t>=a&&(s.delete(e),p(e,!1))}),r.clear()}function _(e,t){let n=e.key?.toLowerCase(),r=[e.code?.toLowerCase(),n].filter(Boolean);if(n){n&&(t?s.add(n):s.delete(n));for(let e of r)f.add(e),p(e,t);h(t,e,[...s,...r]),g(t,n),n===`meta`&&!t&&(u.forEach(e=>{s.delete(e),p(e,!1)}),u.clear())}}kn(n,`keydown`,e=>(_(e,!0),o(e)),{passive:a}),kn(n,`keyup`,e=>(_(e,!1),o(e)),{passive:a}),kn(`blur`,m,{passive:a}),kn(`focus`,m,{passive:a});let v=new Proxy(l,{get(e,n,a){if(typeof n!=`string`)return Reflect.get(e,n,a);if(n=n.toLowerCase(),n in i&&(n=i[n]),!(n in l))if(/[+_-]/.test(n)){let e=n.split(/[+_-]/g).map(e=>e.trim());l[n]=r(()=>e.map(e=>D(v[e])).every(Boolean))}else l[n]=E(!1);let o=Reflect.get(e,n,a);return t?D(o):o}});return v}function Vn(e={}){let{window:t=Dn,initialWidth:n=1/0,initialHeight:r=1/0,listenOrientation:i=!0,includeScrollbar:a=!0,type:o=`inner`}=e,s=E(n),c=E(r),l=()=>{if(t)if(o===`outer`)s.value=t.outerWidth,c.value=t.outerHeight;else if(o===`visual`&&t.visualViewport){let{width:e,height:n,scale:r}=t.visualViewport;s.value=Math.round(e*r),c.value=Math.round(n*r)}else a?(s.value=t.innerWidth,c.value=t.innerHeight):(s.value=t.document.documentElement.clientWidth,c.value=t.document.documentElement.clientHeight)};l(),Sn(l);let u={passive:!0};return kn(`resize`,l,u),t&&o===`visual`&&t.visualViewport&&kn(t.visualViewport,`resize`,l,u),i&&k(Fn(`(orientation: portrait)`),()=>l()),{width:s,height:c}}new Map(Object.entries({Æ:`Ae`,Ð:`D`,Ø:`O`,Þ:`Th`,ß:`ss`,æ:`ae`,ð:`d`,ø:`o`,þ:`th`,Đ:`D`,đ:`d`,Ħ:`H`,ħ:`h`,ı:`i`,IJ:`IJ`,ij:`ij`,ĸ:`k`,Ŀ:`L`,ŀ:`l`,Ł:`L`,ł:`l`,ʼn:`'n`,Ŋ:`N`,ŋ:`n`,Œ:`Oe`,œ:`oe`,Ŧ:`T`,ŧ:`t`,ſ:`s`}));function Hn(e){return typeof e==`function`}function Un(e){return typeof e==`number`&&!Number.isNaN(e)}function Wn(e){return Gn(e,`[object Object]`)}function Gn(e,t){return Object.prototype.toString.call(e)===t}var Kn=class{nativeEvent;NONE=0;CAPTURING_PHASE=1;AT_TARGET=2;BUBBLING_PHASE=3;relatedTarget=null;get altKey(){return this.getFromNative(`altKey`,!1)}get button(){return this.getFromNative(`button`,0)}get buttons(){return this.getFromNative(`buttons`,0)}get clientX(){return this.getFromNative(`clientX`,0)}get clientY(){return this.getFromNative(`clientY`,0)}get ctrlKey(){return this.getFromNative(`ctrlKey`,!1)}get layerX(){return this.getFromNative(`layerX`,0)}get layerY(){return this.getFromNative(`layerY`,0)}get metaKey(){return this.getFromNative(`metaKey`,!1)}get movementX(){return this.getFromNative(`movementX`,0)}get movementY(){return this.getFromNative(`movementY`,0)}get offsetX(){return this.getFromNative(`offsetX`,0)}get offsetY(){return this.getFromNative(`offsetY`,0)}get pageX(){return this.getFromNative(`pageX`,0)}get pageY(){return this.getFromNative(`pageY`,0)}get screenX(){return this.getFromNative(`screenX`,0)}get screenY(){return this.getFromNative(`screenY`,0)}get shiftKey(){return this.getFromNative(`shiftKey`,!1)}get x(){return this.getFromNative(`x`,0)}get y(){return this.getFromNative(`y`,0)}get detail(){return this.getFromNative(`detail`,0)}get view(){return this.getFromNative(`view`,null)}get which(){return this.getFromNative(`which`,0)}get cancelBubble(){return this.getFromNative(`cancelBubble`,!1)}get composed(){return this.getFromNative(`composed`,!1)}get eventPhase(){return this.getFromNative(`eventPhase`,0)}get isTrusted(){return this.getFromNative(`isTrusted`,!1)}get returnValue(){return this.getFromNative(`returnValue`,!1)}get timeStamp(){return this.getFromNative(`timeStamp`,0)}get cancelable(){return this.getFromNative(`cancelable`,!1)}get defaultPrevented(){return this.getFromNative(`defaultPrevented`,!1)}constructor(e){this.nativeEvent=e}getFromNative(e,t){return e in this.nativeEvent?this.nativeEvent[e]:t}};const qn=new R;var Jn=class e extends Kn{type;bubbles;internalPointer;intersection;camera;currentObject;object;propagationState;get pointerId(){return this.internalPointer.id}get pointerType(){return this.internalPointer.type}get pointerState(){return this.internalPointer.state}get distance(){return this.intersection.distance}get distanceToRay(){return this.intersection.distanceToRay}get point(){return this.intersection.point}get index(){return this.intersection.index}get face(){return this.intersection.face}get faceIndex(){return this.intersection.faceIndex}get uv(){return this.intersection.uv}get uv1(){return this.intersection.uv1}get normal(){return this.intersection.normal}get instanceId(){return this.intersection.instanceId}get pointOnLine(){return this.intersection.pointOnLine}get batchId(){return this.intersection.batchId}get pointerPosition(){return this.intersection.pointerPosition}get pointerQuaternion(){return this.intersection.pointerQuaternion}get pointOnFace(){return this.intersection.pointOnFace}get localPoint(){return this.intersection.localPoint}get details(){return this.intersection.details}get target(){return this.object}get currentTarget(){return this.currentObject}get eventObject(){return this.currentObject}get srcElement(){return this.currentObject}_pointer;get pointer(){return this._pointer??=(qn.copy(this.intersection.point).project(this.camera),new L(qn.x,qn.y)),this._pointer}_ray;get ray(){if(this._ray!=null)return this._ray;switch(this.intersection.details.type){case`screen-ray`:case`ray`:case`sphere`:return this._ray=new ke(this.intersection.pointerPosition,new R(0,0,-1).applyQuaternion(this.intersection.pointerQuaternion));case`lines`:return this._ray=new ke(this.intersection.details.line.start,this.intersection.details.line.end.clone().sub(this.intersection.details.line.start).normalize())}}_intersections=[];get intersections(){return this._intersections??=[{...this.intersection,eventObject:this.currentObject}],this._intersections}_unprojectedPoint;get unprojectedPoint(){if(this._unprojectedPoint==null){let e=this.pointer;this._unprojectedPoint=new R(e.x,e.y,0).unproject(this.camera)}return this._unprojectedPoint}get stopped(){return this.propagationState.stoppedImmediate||this.propagationState.stopped}get stoppedImmediate(){return this.propagationState.stoppedImmediate}get delta(){throw Error(`not supported`)}constructor(e,t,n,r,i,a,o=i.object,s=o,c={stopped:!t,stoppedImmediate:!1}){super(n),this.type=e,this.bubbles=t,this.internalPointer=r,this.intersection=i,this.camera=a,this.currentObject=o,this.object=s,this.propagationState=c}stopPropagation(){this.propagationState.stopped=!0}stopImmediatePropagation(){this.propagationState.stoppedImmediate=!0}retarget(t){return new e(this.type,this.bubbles,this.nativeEvent,this.internalPointer,this.intersection,this.camera,t,this.target,this.propagationState)}},Yn=class e extends Jn{get deltaX(){return this.nativeEvent.deltaX}get deltaY(){return this.nativeEvent.deltaY}get deltaZ(){return this.nativeEvent.deltaZ}constructor(e,t,n,r,i,a){super(`wheel`,!0,e,t,n,r,i,a)}retarget(t){return new e(this.nativeEvent,this.internalPointer,this.intersection,this.camera,t,this.target)}};function B(e){Xn(e,e.currentObject)}function Xn(e,t){if(t==null)return;let n=$n(t,e.type);if(n!=null&&n.length>0){let r=e.retarget(t),i=n.length;for(let e=0;e<i&&!r.stoppedImmediate;e++)n[e](r)}e.stopped||Xn(e,t.parent)}const Zn={click:`onClick`,contextmenu:`onContextMenu`,dblclick:`onDoubleClick`,pointercancel:`onPointerCancel`,pointerdown:`onPointerDown`,pointerenter:`onPointerEnter`,pointerleave:`onPointerLeave`,pointermove:`onPointerMove`,pointerout:`onPointerOut`,pointerover:`onPointerOver`,pointerup:`onPointerUp`,wheel:`onWheel`},Qn=Object.keys(Zn);function $n(e,t){if(e._listeners!=null&&t in e._listeners)return e._listeners[t];let n;if(e.isVoidObject&&t===`click`&&e.parent?.__r3f!=null&&(n=e.parent.__r3f.root.getState().onPointerMissed),e.__r3f!=null&&(n=e.__r3f.handlers[Zn[t]]),n!=null)return[n]}const er=new Ne(1e10),tr=new Map;function nr(e){let t=tr.get(e);return t??(t=new I(er),t.isVoidObject=!0,t.parent=e,t.pointerEventsOrder=-1/0,tr.set(e,t)),t}function rr(e,t,n){let r=t.normal??t.face?.normal;return r==null?!1:(e.setFromNormalAndCoplanarPoint(r,t.localPoint),e.applyMatrix4(n),!0)}function ir(e,t,n){if(t===`none`||t===`listener`&&!e)return!1;if(n===`all`)return!0;if(typeof n==`function`)return({id:e,type:t,state:r})=>n(e,t,r);let r,i;return`deny`in n?(i=!0,r=n.deny):(i=!1,r=n.allow),Array.isArray(r)?e=>ar(r.includes(e.type),i):e=>ar(r===e.type,i)}function ar(e,t){return t?!e:e}function or(e,t,n,r=!1,i,a,o){let s=r||sr(e,t),c=t.pointerEvents??i,l=c??t.defaultPointerEvents??`listener`,u=t.pointerEventsType??a??`all`,d=t.pointerEventsOrder??o??0,f=ir(s,l,u),p=n.length;if(p===1)(f===!0||typeof f==`function`&&f(n[0]))&&cr(n[0],t,l,u,d);else if(f===!0)for(let e=0;e<p;e++)cr(n[e],t,l,u,d);else if(typeof f==`function`)for(let e=0;e<p;e++){let r=n[e];f(r)&&cr(r,t,l,u,d)}if(t.children.length===0||t.intersectChildren===!1)return;let m=t.interactableDescendants??t.children,h=m.length;for(let t=0;t<h;t++)or(e,m[t],n,s,c,u,d)}function sr(e,t){if(t.ancestorsHaveListeners||e===`pointer`&&t.ancestorsHavePointerListeners||e===`wheel`&&t.ancestorsHaveWheelListeners||t.__r3f!=null&&t.__r3f?.eventCount>0&&(e===`wheel`&&t.__r3f.handlers.onWheel!=null||e===`pointer`&&Object.keys(t.__r3f.handlers).some(e=>e!=`onWheel`)))return!0;if(t._listeners==null)return!1;if(e===`wheel`){let e=t._listeners.wheel;return e!=null&&e.length>0}let n=Object.entries(t._listeners),r=n.length;for(let e=0;e<r;e++){let t=n[e];if(t[0]!==`wheel`&&Qn.includes(t[0])&&t[1]!=null&&t[1].length>0)return!0}return!1}function cr({intersector:e,options:t},n,r,i,a){t.filter?.(n,r,i,a)!==!1&&e.executeIntersection(n,a)}function lr(e,t,{customSort:n=ur}={},r){let i,a,o,s=e.length;for(let c=0;c<s;c++){let s=e[c];if(r?.(s)===!1)continue;let l=t?.[c];(i==null||n(s,l,i,a)<0)&&(o=c,i=s,a=l)}return o}function ur(e,t=0,n,r=0){return t==r?e.distance-n.distance:r-t}const dr=1e7;function fr(e,t,n,r,i,a=0){let o=t.direction.clone().multiplyScalar(dr),s=dr;return{distance:s+a,object:nr(e),point:o,normal:t.origin.clone().sub(o).normalize(),details:n(o,s),pointerPosition:r,pointerQuaternion:i,pointOnFace:o,localPoint:o}}function pr(e,t,n){for(;n>0;)e.push(t),--n}const mr=Symbol(`buttonsDownTime`),hr=Symbol(`buttonsClickTime`);globalThis.pointerEventspointerMap??=new Map,xe.prototype.setPointerCapture=function(e){gr(e)?.setCapture(this)},xe.prototype.releasePointerCapture=function(e){let t=gr(e);t==null||!t.hasCaptured(this)||t.setCapture(void 0)},xe.prototype.hasPointerCapture=function(e){return gr(e)?.hasCaptured(this)??!1};function gr(e){return globalThis.pointerEventspointerMap?.get(e)}var _r=class{id;type;state;intersector;getCamera;onMoveCommited;parentSetPointerCapture;parentReleasePointerCapture;options;prevIntersection;intersection;prevEnabled=!0;enabled=!0;wheelIntersection;pointerEntered=[];pointerEnteredHelper=[];pointerCapture;buttonsDownTime=new Map;buttonsDown=new Set;wasMoved=!1;onFirstMove=[];constructor(e,t,n,r,i,a,o,s,c={}){this.id=e,this.type=t,this.state=n,this.intersector=r,this.getCamera=i,this.onMoveCommited=a,this.parentSetPointerCapture=o,this.parentReleasePointerCapture=s,this.options=c,globalThis.pointerEventspointerMap?.set(e,this)}getPointerCapture(){return this.pointerCapture}hasCaptured(e){return this.pointerCapture?.object===e}setCapture(e){this.pointerCapture?.object!==e&&(this.clearPointerCapture(),e!=null&&this.intersection!=null&&(this.pointerCapture={object:e,intersection:this.intersection},this.parentSetPointerCapture?.()))}getButtonsDown(){return this.buttonsDown}getIntersection(){return this.intersection}getEnabled(){return this.enabled}setEnabled(e,t,n=!0){this.enabled!==e&&(!e&&this.pointerCapture!=null&&this.clearPointerCapture(),this.enabled=e,n&&this.commit(t,!1))}computeIntersection(e,t,n){return this.pointerCapture==null?(this.intersector.startIntersection(n),or(e,t,[this]),this.intersector.finalizeIntersection(t)):this.intersector.intersectPointerCapture(this.pointerCapture,n)}setIntersection(e){this.intersection=e}commit(e,t){let n=this.getCamera(),r=this.prevEnabled?this.prevIntersection:void 0,i=this.enabled?this.intersection:void 0;r!=null&&r.object!=i?.object&&B(new Jn(`pointerout`,!0,e,this,r,n));let a=this.pointerEntered;this.pointerEntered=[],this.pointerEnteredHelper.length=0,vr(i?.object,this.pointerEntered,a,this.pointerEnteredHelper);let o=a.length;for(let t=0;t<o;t++){let i=a[t];B(new Jn(`pointerleave`,!1,e,this,r,n,i))}i!=null&&r?.object!=i.object&&B(new Jn(`pointerover`,!0,e,this,i,n));for(let t=this.pointerEnteredHelper.length-1;t>=0;t--){let r=this.pointerEnteredHelper[t];B(new Jn(`pointerenter`,!1,e,this,i,n,r))}if(t&&i!=null&&B(new Jn(`pointermove`,!0,e,this,i,n)),this.prevIntersection=this.intersection,this.prevEnabled=this.enabled,!this.wasMoved&&this.intersector.isReady()){this.wasMoved=!0;let e=this.onFirstMove.length;for(let t=0;t<e;t++)this.onFirstMove[t](n);this.onFirstMove.length=0}this.onMoveCommited?.(this)}move(e,t){this.intersection=this.computeIntersection(`pointer`,e,t),this.commit(t,!0)}over(e,t){this.wasMoved||(this.intersection=this.computeIntersection(`pointer`,e,t),this.commit(t,!1))}emitMove(e){this.intersection!=null&&B(new Jn(`pointermove`,!0,e,this,this.intersection,this.getCamera()))}down(e){if(this.buttonsDown.add(e.button),!this.enabled)return;if(!this.wasMoved){this.onFirstMove.push(this.down.bind(this,e));return}if(this.intersection==null)return;B(new Jn(`pointerdown`,!0,e,this,this.intersection,this.getCamera()));let{object:t}=this.intersection;t[mr]??=new Map,t[mr].set(e.button,e.timeStamp),this.buttonsDownTime.set(e.button,e.timeStamp)}up(e){if(this.buttonsDown.delete(e.button),!this.enabled)return;if(!this.wasMoved){this.onFirstMove.push(this.up.bind(this,e));return}if(this.intersection==null)return;let{clickThesholdMs:t,contextMenuButton:n=2,dblClickThresholdMs:r=500,clickThresholdMs:i=t??300}=this.options;this.clearPointerCapture();let a=yr(this.buttonsDownTime,this.intersection.object[mr],e.button,e.timeStamp,i),o=this.getCamera();if(a&&e.button===n&&B(new Jn(`contextmenu`,!0,e,this,this.intersection,o)),B(new Jn(`pointerup`,!0,e,this,this.intersection,o)),!a||e.button===n)return;B(new Jn(`click`,!0,e,this,this.intersection,o));let{object:s}=this.intersection,c=s[hr]??=new Map,l=c.get(e.button);if(l==null||e.timeStamp-l>r){c.set(e.button,e.timeStamp);return}B(new Jn(`dblclick`,!0,e,this,this.intersection,o)),c.delete(e.button)}cancel(e){this.buttonsDown.clear(),this.buttonsDownTime.clear(),this.clearPointerCapture(),this.onFirstMove.length=0,!(!this.enabled||!this.wasMoved||this.intersection==null)&&B(new Jn(`pointercancel`,!0,e,this,this.intersection,this.getCamera()))}wheel(e,t,n=!1){if(!this.enabled)return;if(!this.wasMoved&&n){this.onFirstMove.push(this.wheel.bind(this,e,t,n));return}n||(this.wheelIntersection=this.computeIntersection(`wheel`,e,t));let r=n?this.intersection:this.wheelIntersection;r!=null&&B(new Yn(t,this,r,this.getCamera()))}emitWheel(e,t=!1){if(!this.enabled)return;if(!this.wasMoved&&t){this.onFirstMove.push(this.emitWheel.bind(this,e,t));return}let n=t?this.intersection:this.wheelIntersection;n!=null&&B(new Yn(e,this,n,this.getCamera()))}exit(e){(this.buttonsDown.size>0||this.pointerCapture!=null)&&this.cancel(e),this.wasMoved&&(this.intersection=void 0,this.commit(e,!1)),this.onFirstMove.length=0,this.wasMoved=!1}clearPointerCapture(){this.pointerCapture!=null&&(this.parentReleasePointerCapture?.(),this.pointerCapture=void 0)}};function vr(e,t,n,r){if(e==null)return;let i=n.indexOf(e);i==-1?r.push(e):n.splice(i,1),t.push(e),vr(e.parent,t,n,r)}function yr(e,t,n,r,i){if(t==null)return!1;let a=t.get(n);return!(a==null||r-a>i||a!=e.get(n))}const br=new Ie,xr=new Ie,Sr=new L,Cr=new L,wr=new L,Tr=new R,Er=new ve,Dr=new R;function Or(e,t,n){Dr.copy(t).applyMatrix4(Er.copy(n.matrixWorld).invert());let r=n.geometry.attributes.uv;if(r==null||!(r instanceof se))return!1;let i;return kr(n,(e,t,a)=>{n.getVertexPosition(e,br.a),n.getVertexPosition(t,br.b),n.getVertexPosition(a,br.c);let o=br.closestPointToPoint(Dr,Tr).distanceTo(Dr);i!=null&&o>=i||(i=o,xr.copy(br),Sr.fromBufferAttribute(r,e),Cr.fromBufferAttribute(r,t),wr.fromBufferAttribute(r,a))}),i==null?!1:(xr.closestPointToPoint(Dr,Tr),xr.getInterpolation(Tr,Sr,Cr,wr,e),!0)}function kr(e,t){let n=e.geometry.drawRange;if(e.geometry.index!=null){let r=e.geometry.index,i=Math.max(0,n.start),a=Math.min(r.count,n.start+n.count);for(let e=i;e<a;e+=3)t(r.getX(e),r.getX(e+1),r.getX(e+2));return}let r=e.geometry.attributes.position;if(r==null)return;let i=Math.max(0,n.start),a=Math.min(r.count,n.start+n.count);for(let e=i;e<a;e+=3)t(e,e+1,e+2)}new ve,new he,new R,new we,new ke,new L,new R(0,0,0),new R(0,0,1);const Ar=new ve,jr=new R;new R(0,0,-1),new we;const Mr=new L,Nr=new R;var Pr=class{prepareTransformation;options;raycaster=new Ae;cameraQuaternion=new Ee;fromPosition=new R;fromQuaternion=new Ee;coords=new L;viewPlane=new we;intersects=[];pointerEventsOrders=[];constructor(e,t){this.prepareTransformation=e,this.options=t}isReady(){return!0}intersectPointerCapture({intersection:e,object:t},n){let r=e.details;if(r.type!=`screen-ray`)throw Error(`unable to process a pointer capture of type "${e.details.type}" with a camera ray intersector`);if(!this.startIntersection(n))return e;this.viewPlane.constant-=r.distanceViewPlane;let i=this.raycaster.ray.intersectPlane(this.viewPlane,new R);if(i==null)return e;e.object.updateWorldMatrix(!0,!1),rr(this.viewPlane,e,e.object.matrixWorld);let a=e.uv;return e.object instanceof I&&Or(Mr,i,e.object)&&(a=Mr.clone()),{...e,details:{...r,direction:this.raycaster.ray.direction.clone(),screenPoint:this.coords.clone()},uv:a,object:t,point:i,pointOnFace:i,pointerPosition:this.raycaster.ray.origin.clone(),pointerQuaternion:this.cameraQuaternion.clone()}}startIntersection(e){let t=this.prepareTransformation(e,this.coords);return t==null?!1:(t.updateWorldMatrix(!0,!1),t.matrixWorld.decompose(this.fromPosition,this.fromQuaternion,jr),this.raycaster.setFromCamera(this.coords,t),this.viewPlane.setFromNormalAndCoplanarPoint(t.getWorldDirection(Nr),this.raycaster.ray.origin),!0)}executeIntersection(e,t){let n=this.intersects.length;e.raycast(this.raycaster,this.intersects),pr(this.pointerEventsOrders,t,this.intersects.length-n)}finalizeIntersection(e){let t=this.fromPosition.clone(),n=this.cameraQuaternion.clone(),r=this.raycaster.ray.direction.clone(),i=lr(this.intersects,this.pointerEventsOrders,this.options),a=i==null?void 0:this.intersects[i];return this.intersects.length=0,this.pointerEventsOrders.length=0,a==null?fr(e,this.raycaster.ray,(e,t)=>({type:`screen-ray`,distanceViewPlane:t,screenPoint:this.coords.clone(),direction:r}),t,n):(a.object.updateWorldMatrix(!0,!1),Ar.copy(a.object.matrixWorld).invert(),Object.assign(a,{details:{type:`screen-ray`,distanceViewPlane:this.viewPlane.distanceToPoint(a.point),screenPoint:this.coords.clone(),direction:r},pointOnFace:a.point,pointerPosition:t,pointerQuaternion:n,localPoint:a.point.clone().applyMatrix4(Ar)}))}};new R,new L,new ve,new R,new Ee,new we,new Me,new R,new R,new R,new R(1e-4,1e-4,1e-4),new ve;let Fr=23412;function Ir(){return Fr++}function Lr(e,t,n){if(!(t instanceof globalThis.MouseEvent))return n.set(0,0);let{width:r,height:i,top:a,left:o}=e.getBoundingClientRect(),s=t.clientX-o,c=t.clientY-a;return n.set(s/r*2-1,-(c/i)*2+1)}function Rr(e,t,n,r){return zr(e,typeof t==`function`?t:()=>t,n,Lr.bind(null,e),e.setPointerCapture.bind(e),t=>{e.hasPointerCapture(t)&&e.releasePointerCapture(t)},{pointerTypePrefix:`screen-`,...r})}function zr(e,t,n,r,i,a,o={}){let s=o?.forwardPointerCapture??!0,c=new Map,l=o.pointerTypePrefix??`forward-`,u=(e,u)=>{let d=c.get(e.pointerId);return d??(d=new _r(Ir(),`${l}${e.pointerType}`,e.pointerState,new Pr((e,n)=>(r(e,n),t()),o),t,void 0,s?i.bind(null,e.pointerId):void 0,s?a.bind(null,e.pointerId):void 0,o),u!=`move`&&u!=`wheel`&&(d.setIntersection(d.computeIntersection(`pointer`,n,e)),d.commit(e,!1)),c.set(e.pointerId,d),d)},d=new Map,f=new Map,p=[],m=[],h=(e,t,r)=>{switch(e){case`move`:r.move(n,t);return;case`over`:r.move(n,t);return;case`wheel`:r.wheel(n,t);return;case`cancel`:r.cancel(t);return;case`down`:if(!Br(t))return;r.down(t);return;case`up`:if(!Br(t))return;r.up(t);return;case`exit`:f.delete(r),d.delete(r),r.exit(t);return}},g=(e,t)=>{let n=u(t,e);e===`move`&&f.set(n,t),e===`wheel`&&d.set(n,t),o.batchEvents??!0?m.push({type:e,event:t}):h(e,t,n)},_=g.bind(null,`move`),v=g.bind(null,`over`),y=g.bind(null,`cancel`),b=g.bind(null,`down`),x=g.bind(null,`up`),S=g.bind(null,`wheel`),C=g.bind(null,`exit`);return e.addEventListener(`pointermove`,_),e.addEventListener(`pointerover`,v),e.addEventListener(`pointercancel`,y),e.addEventListener(`pointerdown`,b),e.addEventListener(`pointerup`,x),e.addEventListener(`wheel`,S),e.addEventListener(`pointerleave`,C),{destroy(){e.removeEventListener(`pointermove`,_),e.removeEventListener(`pointerover`,v),e.removeEventListener(`pointercancel`,y),e.removeEventListener(`pointerdown`,b),e.removeEventListener(`pointerup`,x),e.removeEventListener(`wheel`,S),e.removeEventListener(`pointerleave`,C),f.clear(),d.clear()},update(){let e=m.length;for(let t=0;t<e;t++){let{type:e,event:n}=m[t],r=u(n,e);if(e===`move`&&(p.push(r),f.get(r)!=n)){r.emitMove(n);continue}if(e===`wheel`&&d.get(r)!=n){r.emitWheel(n);continue}h(e,n,r)}if(m.length=0,o.intersectEveryFrame??!1)for(let[e,t]of f.entries())p.includes(e)||e.move(n,t);p.length=0}}}function Br(e){return e.button!=null}
7
+ /*! #__NO_SIDE_EFFECTS__ */
8
+ const Vr=e=>t=>Wn(t)&&e in t&&!!t[e],Hr=Vr(`isCamera`),Ur=Vr(`isPerspectiveCamera`);function Wr(){try{let e=import.meta.env?.MODE;if(e)return e}catch{}return typeof process<`u`&&process.env,`production`}Wr();const Gr=`[TresJS ▲ ■ ●] `;function Kr(...e){typeof e[0]==`string`?e[0]=Gr+e[0]:e.unshift(Gr),console.warn(...e)}const qr=({sizes:e})=>{let t=C([]),n=r(()=>t.value[0]),i=e=>{let n=Hr(e)?e:t.value.find(t=>t.uuid===e);n&&(t.value=[n,...t.value.filter(({uuid:e})=>e!==n.uuid)])};return A(()=>{e.aspectRatio.value&&t.value.forEach(t=>{Ur(t)&&(t.aspect=e.aspectRatio.value,t.updateProjectionMatrix())})}),{activeCamera:n,cameras:t,registerCamera:(e,n=!1)=>{t.value.some(({uuid:t})=>t===e.uuid)||(t.value.push(e),n&&i(e.uuid))},deregisterCamera:e=>{t.value=t.value.filter(({uuid:t})=>t!==e.uuid)},setActiveCamera:i}};function Jr(){let e=new Map,t=new Set,n=0,r=!1,i=()=>{let n=Array.from(e.entries()).sort((e,t)=>{let n=e[1].priority-t[1].priority;return n===0?e[1].addI-t[1].addI:n});t.clear(),n.forEach(e=>t.add(e[0]))},a=n=>{e.delete(n),t.delete(n)};return{on:(t,i=0)=>{e.set(t,{priority:i,addI:n++});let o=()=>a(t);return an(o),r=!0,{off:o}},off:a,trigger:(...e)=>(r&&=(i(),!1),Promise.all(Array.from(t).map(t=>t(...e)))),dispose:()=>{e.clear(),t.clear()},get count(){return e.size}}}const Yr=C({}),Xr=e=>Object.assign(Yr.value,e),Zr=(e,t,n)=>{if(!Hn(e.setPixelRatio))return;let r=0;if(n&&Array.isArray(n)&&n.length>=2){let[e,i]=n;r=_e.clamp(t,e,i)}else r=Un(n)?n:t;r!==e.getPixelRatio?.()&&e.setPixelRatio(r)},Qr=Number.parseInt(De.replace(`dev`,``));function $r(){if(Qr>=179){let e=new j.Timer;return{getDelta:()=>e.getDelta(),getElapsed:()=>e.getElapsed(),update:()=>e.update(),start:()=>{typeof document<`u`&&e.connect(document)},stop:()=>e.disconnect()}}else{let e=new j.Clock;return{getDelta:()=>e.getDelta(),getElapsed:()=>e.elapsedTime,update:()=>{},start:()=>e.start(),stop:()=>e.stop()}}}const ei=(e,{fpsLimit:t}={})=>{let n=$r(),r={before:on(),after:on()},{pause:i,resume:a,isActive:o}=Mn(()=>{n.update();let t={delta:n.getDelta(),elapsed:n.getElapsed()};r.before.trigger(t),e(),r.after.trigger(t)},{immediate:!1,fpsLimit:t});return{start:()=>{n.start(),a()},stop:()=>{n.stop(),i()},isActive:o,onBeforeLoop:r.before.on,onLoop:r.after.on}};var ti=class extends Error{name=`TresRendererError`;constructor(e,t,n){super(e,n),this.code=t}};function ni({scene:e,canvas:t,options:n,fpsLimit:i,contextParts:{sizes:a,camera:o}}){let s=Hn(n.renderer)?n.renderer({sizes:a,scene:e,camera:o,canvas:t}):new Ve({...n,canvas:On(t)}),c=C(D(n.renderMode)===`manual`?0:1),l=r(()=>D(n.renderMode)===`on-demand`&&c.value===0),u=()=>e.value.traverse(e=>{e instanceof I&&e.material instanceof ge&&(e.material.needsUpdate=!0)}),d=(e=1)=>{l.value&&(c.value=Math.min(60,c.value+e))},f=()=>{if(D(n.renderMode)!==`manual`)throw Error(`advance can only be called in manual render mode.`);c.value=1},p=()=>{D(n.renderMode)===`on-demand`&&d()},h=r(()=>D(n.renderMode)===`always`),g=e=>Wn(e)&&`isRenderer`in e&&!!e.isRenderer,_=on(),y=on(),b=!1,x=C(!1),S=C(null),w=async()=>{try{g(s)&&await s.init(),x.value=!0}catch(e){let t=new ti(e instanceof Error?e.message:`Unknown error`,`INITIALIZATION_FAILED`,{cause:e instanceof Error?e:void 0});S.value=t,console.error(`[TresJS] Renderer initialization failed. This may occur if:
9
+ - WebGPU is not supported by your browser
10
+ - GPU is not available or lacks required features
11
+ - GPU drivers are outdated
12
+ Error details: ${t.message}`,t),y.trigger(t)}},T=on(),E=()=>{c.value=h.value?1:Math.max(0,c.value-1),T.trigger(s)},ee=t=>{o.activeCamera.value&&(s.render(e.value,o.activeCamera.value),t())},O=e=>{ee=e},te=ei(()=>{c.value&&ee(E)},{fpsLimit:i});_.on(()=>{x.value&&te.start()}),k([a.width,a.height,x],()=>{x.value&&(s.setSize(a.width.value,a.height.value),!b&&s.domElement.width&&s.domElement.height&&(b=!0,m(()=>{_.trigger(s)})),p())},{immediate:!0}),A(()=>{x.value&&Zr(s,a.pixelRatio.value,D(n.dpr))}),w(),D(n.renderMode)===`on-demand`&&d(),D(n.renderMode)===`manual`&&wn(100,{callback:f});let ne=r(()=>{let e=D(n.clearColor),t=D(n.clearAlpha),r=typeof e==`string`&&e.length===9&&e.startsWith(`#`);return r&&t!==void 0&&Kr(`clearColor with alpha (e.g. ${e}) and clearAlpha cannot both be set, using clearColor as source of truth`),r?{alpha:Number.parseInt(e.slice(7,9),16)/255,color:e.slice(0,7)}:{alpha:t,color:e}});return A(()=>{if(!x.value)return;let e=ne.value;e.color===void 0||e.alpha===void 0||s.setClearColor(e.color,e.alpha)}),A(()=>{if(!x.value)return;let e=n.toneMapping;e&&(s.toneMapping=e)}),A(()=>{if(!x.value)return;let e=n.toneMappingExposure;e&&(s.toneMappingExposure=e)}),A(()=>{if(!x.value)return;let e=n.outputColorSpace;e&&(s.outputColorSpace=e)}),A(()=>{if(!x.value)return;let e=n.shadows;e!==void 0&&(s.shadowMap.enabled=e,u())}),A(()=>{if(!x.value)return;let e=n.shadowMapType;e!==void 0&&(s.shadowMap.type=e,u())}),v(()=>{s.dispose(),`forceContextLoss`in s&&s.forceContextLoss()}),{loop:te,instance:s,advance:f,onReady:_.on,onRender:T.on,onError:y.on,invalidate:d,canBeInvalidated:l,mode:D(n.renderMode),replaceRenderFunction:O,isInitialized:x,error:S}}function ri(e,t,n=10){let{pixelRatio:i}=In(),a=D(e)?Vn():Rn(r(()=>D(t).parentElement)),o=S(xn(a.width,n)),s=S(xn(a.height,n));return{width:o,height:s,pixelRatio:i,aspectRatio:r(()=>o.value/s.value)}}function ii({canvas:e,contextParts:{scene:t,camera:n,renderer:r}}){let{update:i,destroy:a}=Rr(D(e),()=>D(n.activeCamera),t.value),{off:o}=r.loop.onLoop(i);v(a),v(o);let s=nr(t.value),c=on();return s.addEventListener(`click`,c.trigger),{onPointerMissed:c.on}}const[ai,oi]=un(({scene:e,canvas:t,fpsLimit:n,windowSize:r,rendererOptions:i})=>{let a=E(e),o=ri(r,t),s=qr({sizes:o}),c=ni({scene:a,canvas:t,options:i,fpsLimit:n,contextParts:{sizes:o,camera:s}}),l=ii({canvas:t,contextParts:{scene:a,camera:s,renderer:c}}),u={sizes:o,scene:a,camera:s,renderer:c,controls:C(null),extend:Xr,events:l};return u.scene.value.__tres={root:u,objects:[],isUnmounting:!1},u},{injectionKey:`useTres`}),si=()=>{let e=oi();if(!e)throw Error(`useTresContext must be used together with useTresContextProvider.
13
+ You probably tried to use it above or on the same level as a TresCanvas component.
14
+ It should be used in child components of a TresCanvas instance.`);return e};function ci(){let{scene:e,renderer:t,camera:n,sizes:r,controls:i,extend:a,events:o}=si();return{scene:e,renderer:t.instance,camera:n.activeCamera,sizes:r,controls:i,extend:a,events:o,invalidate:t.invalidate,advance:t.advance}}const li=()=>{let e=ci(),{renderer:t}=si(),n=Jr(),r=Jr();t.loop.onBeforeLoop(t=>{n.trigger({...e,...t})}),t.loop.onLoop(t=>{r.trigger({...e,...t})});let i=t.replaceRenderFunction;return{stop:t.loop.stop,start:t.loop.start,isActive:t.loop.isActive,onBeforeRender:n.on,onRender:r.on,render:i}};j.Mesh;const ui=parseInt(De.replace(/\D+/g,``));var di=Object.defineProperty,fi=(e,t,n)=>t in e?di(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,pi=(e,t,n)=>(fi(e,typeof t==`symbol`?t:t+``,n),n);const mi=(()=>{let e=class extends I{constructor(t,n={}){super(t),this.isReflector=!0,this.type=`Reflector`,this.camera=new Ce;let r=this,i=n.color===void 0?new le(8355711):new le(n.color),a=n.textureWidth||512,o=n.textureHeight||512,s=n.clipBias||0,c=n.shader||e.ReflectorShader,l=n.multisample===void 0?4:n.multisample,u=new we,d=new R,f=new R,p=new R,m=new ve,h=new R(0,0,-1),g=new ze,_=new R,v=new R,y=new ze,b=new ve,x=this.camera,S=new Be(a,o,{samples:l,type:pe}),C=new je({uniforms:Le.clone(c.uniforms),fragmentShader:c.fragmentShader,vertexShader:c.vertexShader});C.uniforms.tDiffuse.value=S.texture,C.uniforms.color.value=i,C.uniforms.textureMatrix.value=b,this.material=C,this.onBeforeRender=function(e,t,n){if(f.setFromMatrixPosition(r.matrixWorld),p.setFromMatrixPosition(n.matrixWorld),m.extractRotation(r.matrixWorld),d.set(0,0,1),d.applyMatrix4(m),_.subVectors(f,p),_.dot(d)>0)return;_.reflect(d).negate(),_.add(f),m.extractRotation(n.matrixWorld),h.set(0,0,-1),h.applyMatrix4(m),h.add(p),v.subVectors(f,h),v.reflect(d).negate(),v.add(f),x.position.copy(_),x.up.set(0,1,0),x.up.applyMatrix4(m),x.up.reflect(d),x.lookAt(v),x.far=n.far,x.updateMatrixWorld(),x.projectionMatrix.copy(n.projectionMatrix),b.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),b.multiply(x.projectionMatrix),b.multiply(x.matrixWorldInverse),b.multiply(r.matrixWorld),u.setFromNormalAndCoplanarPoint(d,f),u.applyMatrix4(x.matrixWorldInverse),g.set(u.normal.x,u.normal.y,u.normal.z,u.constant);let i=x.projectionMatrix;y.x=(Math.sign(g.x)+i.elements[8])/i.elements[0],y.y=(Math.sign(g.y)+i.elements[9])/i.elements[5],y.z=-1,y.w=(1+i.elements[10])/i.elements[14],g.multiplyScalar(2/g.dot(y)),i.elements[2]=g.x,i.elements[6]=g.y,i.elements[10]=g.z+1-s,i.elements[14]=g.w,r.visible=!1;let a=e.getRenderTarget(),o=e.xr.enabled,c=e.shadowMap.autoUpdate,l=e.toneMapping,C=!1;C=`outputColorSpace`in e?e.outputColorSpace===`srgb`:e.outputEncoding===3001,e.xr.enabled=!1,e.shadowMap.autoUpdate=!1,`outputColorSpace`in e?e.outputColorSpace=`srgb-linear`:e.outputEncoding=3e3,e.toneMapping=be,e.setRenderTarget(S),e.state.buffers.depth.setMask(!0),e.autoClear===!1&&e.clear(),e.render(t,x),e.xr.enabled=o,e.shadowMap.autoUpdate=c,e.toneMapping=l,`outputColorSpace`in e?e.outputColorSpace=C?`srgb`:`srgb-linear`:e.outputEncoding=C?3001:3e3,e.setRenderTarget(a);let w=n.viewport;w!==void 0&&e.state.viewport(w),r.visible=!0},this.getRenderTarget=function(){return S},this.dispose=function(){S.dispose(),r.material.dispose()}}},t=e;return pi(t,`ReflectorShader`,{uniforms:{color:{value:null},tDiffuse:{value:null},textureMatrix:{value:null}},vertexShader:`
15
+ uniform mat4 textureMatrix;
16
+ varying vec4 vUv;
17
+
18
+ #include <common>
19
+ #include <logdepthbuf_pars_vertex>
20
+
21
+ void main() {
22
+
23
+ vUv = textureMatrix * vec4( position, 1.0 );
24
+
25
+ gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
26
+
27
+ #include <logdepthbuf_vertex>
28
+
29
+ }`,fragmentShader:`
30
+ uniform vec3 color;
31
+ uniform sampler2D tDiffuse;
32
+ varying vec4 vUv;
33
+
34
+ #include <logdepthbuf_pars_fragment>
35
+
36
+ float blendOverlay( float base, float blend ) {
37
+
38
+ return( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );
39
+
40
+ }
41
+
42
+ vec3 blendOverlay( vec3 base, vec3 blend ) {
43
+
44
+ return vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) );
45
+
46
+ }
47
+
48
+ void main() {
49
+
50
+ #include <logdepthbuf_fragment>
51
+
52
+ vec4 base = texture2DProj( tDiffuse, vUv );
53
+ gl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );
54
+
55
+ #include <tonemapping_fragment>
56
+ #include <${ui>=154?`colorspace_fragment`:`encodings_fragment`}>
57
+
58
+ }`}),t})();var hi=Object.defineProperty,gi=(e,t,n)=>t in e?hi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_i=(e,t,n)=>(gi(e,typeof t==`symbol`?t:t+``,n),n),vi=class{constructor(){_i(this,`_listeners`)}addEventListener(e,t){this._listeners===void 0&&(this._listeners={});let n=this._listeners;n[e]===void 0&&(n[e]=[]),n[e].indexOf(t)===-1&&n[e].push(t)}hasEventListener(e,t){if(this._listeners===void 0)return!1;let n=this._listeners;return n[e]!==void 0&&n[e].indexOf(t)!==-1}removeEventListener(e,t){if(this._listeners===void 0)return;let n=this._listeners[e];if(n!==void 0){let e=n.indexOf(t);e!==-1&&n.splice(e,1)}}dispatchEvent(e){if(this._listeners===void 0)return;let t=this._listeners[e.type];if(t!==void 0){e.target=this;let n=t.slice(0);for(let t=0,r=n.length;t<r;t++)n[t].call(this,e);e.target=null}}},yi=Object.defineProperty,bi=(e,t,n)=>t in e?yi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,V=(e,t,n)=>(bi(e,typeof t==`symbol`?t:t+``,n),n);const xi=new de(0,0,0,`YXZ`),Si=new R,Ci={type:`change`},wi={type:`lock`},Ti={type:`unlock`},Ei=.002,Di=Math.PI/2;var Oi=class extends vi{constructor(e,t){super(),V(this,`camera`),V(this,`domElement`),V(this,`isLocked`),V(this,`minPolarAngle`),V(this,`maxPolarAngle`),V(this,`pointerSpeed`),V(this,`onMouseMove`,e=>{!this.domElement||this.isLocked===!1||(xi.setFromQuaternion(this.camera.quaternion),xi.y-=e.movementX*Ei*this.pointerSpeed,xi.x-=e.movementY*Ei*this.pointerSpeed,xi.x=Math.max(Di-this.maxPolarAngle,Math.min(Di-this.minPolarAngle,xi.x)),this.camera.quaternion.setFromEuler(xi),this.dispatchEvent(Ci))}),V(this,`onPointerlockChange`,()=>{this.domElement&&(this.domElement.ownerDocument.pointerLockElement===this.domElement?(this.dispatchEvent(wi),this.isLocked=!0):(this.dispatchEvent(Ti),this.isLocked=!1))}),V(this,`onPointerlockError`,()=>{console.error(`THREE.PointerLockControls: Unable to use Pointer Lock API`)}),V(this,`connect`,e=>{this.domElement=e||this.domElement,this.domElement&&(this.domElement.ownerDocument.addEventListener(`mousemove`,this.onMouseMove),this.domElement.ownerDocument.addEventListener(`pointerlockchange`,this.onPointerlockChange),this.domElement.ownerDocument.addEventListener(`pointerlockerror`,this.onPointerlockError))}),V(this,`disconnect`,()=>{this.domElement&&(this.domElement.ownerDocument.removeEventListener(`mousemove`,this.onMouseMove),this.domElement.ownerDocument.removeEventListener(`pointerlockchange`,this.onPointerlockChange),this.domElement.ownerDocument.removeEventListener(`pointerlockerror`,this.onPointerlockError))}),V(this,`dispose`,()=>{this.disconnect()}),V(this,`getObject`,()=>this.camera),V(this,`direction`,new R(0,0,-1)),V(this,`getDirection`,e=>e.copy(this.direction).applyQuaternion(this.camera.quaternion)),V(this,`moveForward`,e=>{Si.setFromMatrixColumn(this.camera.matrix,0),Si.crossVectors(this.camera.up,Si),this.camera.position.addScaledVector(Si,e)}),V(this,`moveRight`,e=>{Si.setFromMatrixColumn(this.camera.matrix,0),this.camera.position.addScaledVector(Si,e)}),V(this,`lock`,()=>{this.domElement&&this.domElement.requestPointerLock()}),V(this,`unlock`,()=>{this.domElement&&this.domElement.ownerDocument.exitPointerLock()}),this.camera=e,this.domElement=t,this.isLocked=!1,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.pointerSpeed=1,t&&this.connect(t)}},ki=Object.defineProperty,Ai=(e,t,n)=>t in e?ki(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,H=(e,t,n)=>(Ai(e,typeof t==`symbol`?t:t+``,n),n);const ji=new ke,Mi=new we,Ni=Math.cos(Math.PI/180*70),Pi=(e,t)=>(e%t+t)%t;var Fi=class extends vi{constructor(e,t){super(),H(this,`object`),H(this,`domElement`),H(this,`enabled`,!0),H(this,`target`,new R),H(this,`minDistance`,0),H(this,`maxDistance`,1/0),H(this,`minZoom`,0),H(this,`maxZoom`,1/0),H(this,`minPolarAngle`,0),H(this,`maxPolarAngle`,Math.PI),H(this,`minAzimuthAngle`,-1/0),H(this,`maxAzimuthAngle`,1/0),H(this,`enableDamping`,!1),H(this,`dampingFactor`,.05),H(this,`enableZoom`,!0),H(this,`zoomSpeed`,1),H(this,`enableRotate`,!0),H(this,`rotateSpeed`,1),H(this,`enablePan`,!0),H(this,`panSpeed`,1),H(this,`screenSpacePanning`,!0),H(this,`keyPanSpeed`,7),H(this,`zoomToCursor`,!1),H(this,`autoRotate`,!1),H(this,`autoRotateSpeed`,2),H(this,`reverseOrbit`,!1),H(this,`reverseHorizontalOrbit`,!1),H(this,`reverseVerticalOrbit`,!1),H(this,`keys`,{LEFT:`ArrowLeft`,UP:`ArrowUp`,RIGHT:`ArrowRight`,BOTTOM:`ArrowDown`}),H(this,`mouseButtons`,{LEFT:F.ROTATE,MIDDLE:F.DOLLY,RIGHT:F.PAN}),H(this,`touches`,{ONE:Fe.ROTATE,TWO:Fe.DOLLY_PAN}),H(this,`target0`),H(this,`position0`),H(this,`zoom0`),H(this,`_domElementKeyEvents`,null),H(this,`getPolarAngle`),H(this,`getAzimuthalAngle`),H(this,`setPolarAngle`),H(this,`setAzimuthalAngle`),H(this,`getDistance`),H(this,`getZoomScale`),H(this,`listenToKeyEvents`),H(this,`stopListenToKeyEvents`),H(this,`saveState`),H(this,`reset`),H(this,`update`),H(this,`connect`),H(this,`dispose`),H(this,`dollyIn`),H(this,`dollyOut`),H(this,`getScale`),H(this,`setScale`),this.object=e,this.domElement=t,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=()=>l.phi,this.getAzimuthalAngle=()=>l.theta,this.setPolarAngle=e=>{let t=Pi(e,2*Math.PI),r=l.phi;r<0&&(r+=2*Math.PI),t<0&&(t+=2*Math.PI);let i=Math.abs(t-r);2*Math.PI-i<i&&(t<r?t+=2*Math.PI:r+=2*Math.PI),u.phi=t-r,n.update()},this.setAzimuthalAngle=e=>{let t=Pi(e,2*Math.PI),r=l.theta;r<0&&(r+=2*Math.PI),t<0&&(t+=2*Math.PI);let i=Math.abs(t-r);2*Math.PI-i<i&&(t<r?t+=2*Math.PI:r+=2*Math.PI),u.theta=t-r,n.update()},this.getDistance=()=>n.object.position.distanceTo(n.target),this.listenToKeyEvents=e=>{e.addEventListener(`keydown`,Ae),this._domElementKeyEvents=e},this.stopListenToKeyEvents=()=>{this._domElementKeyEvents.removeEventListener(`keydown`,Ae),this._domElementKeyEvents=null},this.saveState=()=>{n.target0.copy(n.target),n.position0.copy(n.object.position),n.zoom0=n.object.zoom},this.reset=()=>{n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),n.dispatchEvent(r),n.update(),s=o.NONE},this.update=(()=>{let t=new R,i=new R(0,1,0),a=new Ee().setFromUnitVectors(e.up,i),p=a.clone().invert(),m=new R,h=new Ee,g=2*Math.PI;return function(){let _=n.object.position;a.setFromUnitVectors(e.up,i),p.copy(a).invert(),t.copy(_).sub(n.target),t.applyQuaternion(a),l.setFromVector3(t),n.autoRotate&&s===o.NONE&&O(ee()),n.enableDamping?(l.theta+=u.theta*n.dampingFactor,l.phi+=u.phi*n.dampingFactor):(l.theta+=u.theta,l.phi+=u.phi);let v=n.minAzimuthAngle,y=n.maxAzimuthAngle;isFinite(v)&&isFinite(y)&&(v<-Math.PI?v+=g:v>Math.PI&&(v-=g),y<-Math.PI?y+=g:y>Math.PI&&(y-=g),v<=y?l.theta=Math.max(v,Math.min(y,l.theta)):l.theta=l.theta>(v+y)/2?Math.max(v,l.theta):Math.min(y,l.theta)),l.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,l.phi)),l.makeSafe(),n.enableDamping===!0?n.target.addScaledVector(f,n.dampingFactor):n.target.add(f),n.zoomToCursor&&w||n.object.isOrthographicCamera?l.radius=ae(l.radius):l.radius=ae(l.radius*d),t.setFromSpherical(l),t.applyQuaternion(p),_.copy(n.target).add(t),n.object.matrixAutoUpdate||n.object.updateMatrix(),n.object.lookAt(n.target),n.enableDamping===!0?(u.theta*=1-n.dampingFactor,u.phi*=1-n.dampingFactor,f.multiplyScalar(1-n.dampingFactor)):(u.set(0,0,0),f.set(0,0,0));let b=!1;if(n.zoomToCursor&&w){let r=null;if(n.object instanceof Ce&&n.object.isPerspectiveCamera){let e=t.length();r=ae(e*d);let i=e-r;n.object.position.addScaledVector(S,i),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){let e=new R(C.x,C.y,0);e.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/d)),n.object.updateProjectionMatrix(),b=!0;let i=new R(C.x,C.y,0);i.unproject(n.object),n.object.position.sub(i).add(e),n.object.updateMatrixWorld(),r=t.length()}else console.warn(`WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled.`),n.zoomToCursor=!1;r!==null&&(n.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(r).add(n.object.position):(ji.origin.copy(n.object.position),ji.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(ji.direction))<Ni?e.lookAt(n.target):(Mi.setFromNormalAndCoplanarPoint(n.object.up,n.target),ji.intersectPlane(Mi,n.target))))}else n.object instanceof Se&&n.object.isOrthographicCamera&&(b=d!==1,b&&(n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/d)),n.object.updateProjectionMatrix()));return d=1,w=!1,b||m.distanceToSquared(n.object.position)>c||8*(1-h.dot(n.object.quaternion))>c?(n.dispatchEvent(r),m.copy(n.object.position),h.copy(n.object.quaternion),b=!1,!0):!1}})(),this.connect=e=>{n.domElement=e,n.domElement.style.touchAction=`none`,n.domElement.addEventListener(`contextmenu`,Ne),n.domElement.addEventListener(`pointerdown`,xe),n.domElement.addEventListener(`pointercancel`,Te),n.domElement.addEventListener(`wheel`,ke)},this.dispose=()=>{var e,t,r,i,a,o;n.domElement&&(n.domElement.style.touchAction=`auto`),(e=n.domElement)==null||e.removeEventListener(`contextmenu`,Ne),(t=n.domElement)==null||t.removeEventListener(`pointerdown`,xe),(r=n.domElement)==null||r.removeEventListener(`pointercancel`,Te),(i=n.domElement)==null||i.removeEventListener(`wheel`,ke),(a=n.domElement)==null||a.ownerDocument.removeEventListener(`pointermove`,we),(o=n.domElement)==null||o.ownerDocument.removeEventListener(`pointerup`,Te),n._domElementKeyEvents!==null&&n._domElementKeyEvents.removeEventListener(`keydown`,Ae)};let n=this,r={type:`change`},i={type:`start`},a={type:`end`},o={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},s=o.NONE,c=1e-6,l=new Pe,u=new Pe,d=1,f=new R,p=new L,m=new L,h=new L,g=new L,_=new L,v=new L,y=new L,b=new L,x=new L,S=new R,C=new L,w=!1,T=[],E={};function ee(){return 2*Math.PI/60/60*n.autoRotateSpeed}function D(){return .95**n.zoomSpeed}function O(e){n.reverseOrbit||n.reverseHorizontalOrbit?u.theta+=e:u.theta-=e}function te(e){n.reverseOrbit||n.reverseVerticalOrbit?u.phi+=e:u.phi-=e}let ne=(()=>{let e=new R;return function(t,n){e.setFromMatrixColumn(n,0),e.multiplyScalar(-t),f.add(e)}})(),k=(()=>{let e=new R;return function(t,r){n.screenSpacePanning===!0?e.setFromMatrixColumn(r,1):(e.setFromMatrixColumn(r,0),e.crossVectors(n.object.up,e)),e.multiplyScalar(t),f.add(e)}})(),A=(()=>{let e=new R;return function(t,r){let i=n.domElement;if(i&&n.object instanceof Ce&&n.object.isPerspectiveCamera){let a=n.object.position;e.copy(a).sub(n.target);let o=e.length();o*=Math.tan(n.object.fov/2*Math.PI/180),ne(2*t*o/i.clientHeight,n.object.matrix),k(2*r*o/i.clientHeight,n.object.matrix)}else i&&n.object instanceof Se&&n.object.isOrthographicCamera?(ne(t*(n.object.right-n.object.left)/n.object.zoom/i.clientWidth,n.object.matrix),k(r*(n.object.top-n.object.bottom)/n.object.zoom/i.clientHeight,n.object.matrix)):(console.warn(`WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.`),n.enablePan=!1)}})();function j(e){n.object instanceof Ce&&n.object.isPerspectiveCamera||n.object instanceof Se&&n.object.isOrthographicCamera?d=e:(console.warn(`WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.`),n.enableZoom=!1)}function M(e){j(d/e)}function re(e){j(d*e)}function ie(e){if(!n.zoomToCursor||!n.domElement)return;w=!0;let t=n.domElement.getBoundingClientRect(),r=e.clientX-t.left,i=e.clientY-t.top,a=t.width,o=t.height;C.x=r/a*2-1,C.y=-(i/o)*2+1,S.set(C.x,C.y,1).unproject(n.object).sub(n.object.position).normalize()}function ae(e){return Math.max(n.minDistance,Math.min(n.maxDistance,e))}function oe(e){p.set(e.clientX,e.clientY)}function N(e){ie(e),y.set(e.clientX,e.clientY)}function se(e){g.set(e.clientX,e.clientY)}function ce(e){m.set(e.clientX,e.clientY),h.subVectors(m,p).multiplyScalar(n.rotateSpeed);let t=n.domElement;t&&(O(2*Math.PI*h.x/t.clientHeight),te(2*Math.PI*h.y/t.clientHeight)),p.copy(m),n.update()}function le(e){b.set(e.clientX,e.clientY),x.subVectors(b,y),x.y>0?M(D()):x.y<0&&re(D()),y.copy(b),n.update()}function ue(e){_.set(e.clientX,e.clientY),v.subVectors(_,g).multiplyScalar(n.panSpeed),A(v.x,v.y),g.copy(_),n.update()}function de(e){ie(e),e.deltaY<0?re(D()):e.deltaY>0&&M(D()),n.update()}function fe(e){let t=!1;switch(e.code){case n.keys.UP:A(0,n.keyPanSpeed),t=!0;break;case n.keys.BOTTOM:A(0,-n.keyPanSpeed),t=!0;break;case n.keys.LEFT:A(n.keyPanSpeed,0),t=!0;break;case n.keys.RIGHT:A(-n.keyPanSpeed,0),t=!0;break}t&&(e.preventDefault(),n.update())}function pe(){if(T.length==1)p.set(T[0].pageX,T[0].pageY);else{let e=.5*(T[0].pageX+T[1].pageX),t=.5*(T[0].pageY+T[1].pageY);p.set(e,t)}}function me(){if(T.length==1)g.set(T[0].pageX,T[0].pageY);else{let e=.5*(T[0].pageX+T[1].pageX),t=.5*(T[0].pageY+T[1].pageY);g.set(e,t)}}function P(){let e=T[0].pageX-T[1].pageX,t=T[0].pageY-T[1].pageY,n=Math.sqrt(e*e+t*t);y.set(0,n)}function he(){n.enableZoom&&P(),n.enablePan&&me()}function ge(){n.enableZoom&&P(),n.enableRotate&&pe()}function _e(e){if(T.length==1)m.set(e.pageX,e.pageY);else{let t=ze(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);m.set(n,r)}h.subVectors(m,p).multiplyScalar(n.rotateSpeed);let t=n.domElement;t&&(O(2*Math.PI*h.x/t.clientHeight),te(2*Math.PI*h.y/t.clientHeight)),p.copy(m)}function ve(e){if(T.length==1)_.set(e.pageX,e.pageY);else{let t=ze(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);_.set(n,r)}v.subVectors(_,g).multiplyScalar(n.panSpeed),A(v.x,v.y),g.copy(_)}function I(e){let t=ze(e),r=e.pageX-t.x,i=e.pageY-t.y,a=Math.sqrt(r*r+i*i);b.set(0,a),x.set(0,(b.y/y.y)**+n.zoomSpeed),M(x.y),y.copy(b)}function ye(e){n.enableZoom&&I(e),n.enablePan&&ve(e)}function be(e){n.enableZoom&&I(e),n.enableRotate&&_e(e)}function xe(e){var t,r;n.enabled!==!1&&(T.length===0&&((t=n.domElement)==null||t.ownerDocument.addEventListener(`pointermove`,we),(r=n.domElement)==null||r.ownerDocument.addEventListener(`pointerup`,Te)),Ie(e),e.pointerType===`touch`?je(e):De(e))}function we(e){n.enabled!==!1&&(e.pointerType===`touch`?Me(e):Oe(e))}function Te(e){var t,r,i;Le(e),T.length===0&&((t=n.domElement)==null||t.releasePointerCapture(e.pointerId),(r=n.domElement)==null||r.ownerDocument.removeEventListener(`pointermove`,we),(i=n.domElement)==null||i.ownerDocument.removeEventListener(`pointerup`,Te)),n.dispatchEvent(a),s=o.NONE}function De(e){let t;switch(e.button){case 0:t=n.mouseButtons.LEFT;break;case 1:t=n.mouseButtons.MIDDLE;break;case 2:t=n.mouseButtons.RIGHT;break;default:t=-1}switch(t){case F.DOLLY:if(n.enableZoom===!1)return;N(e),s=o.DOLLY;break;case F.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(n.enablePan===!1)return;se(e),s=o.PAN}else{if(n.enableRotate===!1)return;oe(e),s=o.ROTATE}break;case F.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(n.enableRotate===!1)return;oe(e),s=o.ROTATE}else{if(n.enablePan===!1)return;se(e),s=o.PAN}break;default:s=o.NONE}s!==o.NONE&&n.dispatchEvent(i)}function Oe(e){if(n.enabled!==!1)switch(s){case o.ROTATE:if(n.enableRotate===!1)return;ce(e);break;case o.DOLLY:if(n.enableZoom===!1)return;le(e);break;case o.PAN:if(n.enablePan===!1)return;ue(e);break}}function ke(e){n.enabled===!1||n.enableZoom===!1||s!==o.NONE&&s!==o.ROTATE||(e.preventDefault(),n.dispatchEvent(i),de(e),n.dispatchEvent(a))}function Ae(e){n.enabled===!1||n.enablePan===!1||fe(e)}function je(e){switch(Re(e),T.length){case 1:switch(n.touches.ONE){case Fe.ROTATE:if(n.enableRotate===!1)return;pe(),s=o.TOUCH_ROTATE;break;case Fe.PAN:if(n.enablePan===!1)return;me(),s=o.TOUCH_PAN;break;default:s=o.NONE}break;case 2:switch(n.touches.TWO){case Fe.DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;he(),s=o.TOUCH_DOLLY_PAN;break;case Fe.DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;ge(),s=o.TOUCH_DOLLY_ROTATE;break;default:s=o.NONE}break;default:s=o.NONE}s!==o.NONE&&n.dispatchEvent(i)}function Me(e){switch(Re(e),s){case o.TOUCH_ROTATE:if(n.enableRotate===!1)return;_e(e),n.update();break;case o.TOUCH_PAN:if(n.enablePan===!1)return;ve(e),n.update();break;case o.TOUCH_DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;ye(e),n.update();break;case o.TOUCH_DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;be(e),n.update();break;default:s=o.NONE}}function Ne(e){n.enabled!==!1&&e.preventDefault()}function Ie(e){T.push(e)}function Le(e){delete E[e.pointerId];for(let t=0;t<T.length;t++)if(T[t].pointerId==e.pointerId){T.splice(t,1);return}}function Re(e){let t=E[e.pointerId];t===void 0&&(t=new L,E[e.pointerId]=t),t.set(e.pageX,e.pageY)}function ze(e){return E[(e.pointerId===T[0].pointerId?T[1]:T[0]).pointerId]}this.dollyIn=(e=D())=>{re(e),n.update()},this.dollyOut=(e=D())=>{M(e),n.update()},this.getScale=()=>d,this.setScale=e=>{j(e),n.update()},this.getZoomScale=()=>D(),t!==void 0&&this.connect(t),this.update()}},Ii=class extends Fi{constructor(e,t){super(e,t),this.screenSpacePanning=!1,this.mouseButtons.LEFT=F.PAN,this.mouseButtons.RIGHT=F.ROTATE,this.touches.ONE=Fe.PAN,this.touches.TWO=Fe.DOLLY_ROTATE}}
59
+ /*!
60
+ * camera-controls
61
+ * https://github.com/yomotsu/camera-controls
62
+ * (c) 2017 @yomotsu
63
+ * Released under the MIT License.
64
+ */
65
+ ;Object.freeze({NONE:0,ROTATE:1,TRUCK:2,SCREEN_PAN:4,OFFSET:8,DOLLY:16,ZOOM:32,TOUCH_ROTATE:64,TOUCH_TRUCK:128,TOUCH_SCREEN_PAN:256,TOUCH_OFFSET:512,TOUCH_DOLLY:1024,TOUCH_ZOOM:2048,TOUCH_DOLLY_TRUCK:4096,TOUCH_DOLLY_SCREEN_PAN:8192,TOUCH_DOLLY_OFFSET:16384,TOUCH_DOLLY_ROTATE:32768,TOUCH_ZOOM_TRUCK:65536,TOUCH_ZOOM_OFFSET:131072,TOUCH_ZOOM_SCREEN_PAN:262144,TOUCH_ZOOM_ROTATE:524288}),Math.PI*2,Math.PI/2,Math.PI/180,/Mac/.test(globalThis?.navigator?.platform);var Li=t(n(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):n.Stats=r()})(e,function(){var e=function(){function t(e){return i.appendChild(e.dom),e}function n(e){for(var t=0;t<i.children.length;t++)i.children[t].style.display=t===e?`block`:`none`;r=e}var r=0,i=document.createElement(`div`);i.style.cssText=`position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000`,i.addEventListener(`click`,function(e){e.preventDefault(),n(++r%i.children.length)},!1);var a=(performance||Date).now(),o=a,s=0,c=t(new e.Panel(`FPS`,`#0ff`,`#002`)),l=t(new e.Panel(`MS`,`#0f0`,`#020`));if(self.performance&&self.performance.memory)var u=t(new e.Panel(`MB`,`#f08`,`#201`));return n(0),{REVISION:16,dom:i,addPanel:t,showPanel:n,begin:function(){a=(performance||Date).now()},end:function(){s++;var e=(performance||Date).now();if(l.update(e-a,200),e>o+1e3&&(c.update(1e3*s/(e-o),100),o=e,s=0,u)){var t=performance.memory;u.update(t.usedJSHeapSize/1048576,t.jsHeapSizeLimit/1048576)}return e},update:function(){a=this.end()},domElement:i,setMode:n}};return e.Panel=function(e,t,n){var r=1/0,i=0,a=Math.round,o=a(window.devicePixelRatio||1),s=80*o,c=48*o,l=3*o,u=2*o,d=3*o,f=15*o,p=74*o,m=30*o,h=document.createElement(`canvas`);h.width=s,h.height=c,h.style.cssText=`width:80px;height:48px`;var g=h.getContext(`2d`);return g.font=`bold `+9*o+`px Helvetica,Arial,sans-serif`,g.textBaseline=`top`,g.fillStyle=n,g.fillRect(0,0,s,c),g.fillStyle=t,g.fillText(e,l,u),g.fillRect(d,f,p,m),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(d,f,p,m),{dom:h,update:function(c,_){r=Math.min(r,c),i=Math.max(i,c),g.fillStyle=n,g.globalAlpha=1,g.fillRect(0,0,s,f),g.fillStyle=t,g.fillText(a(c)+` `+e+` (`+a(r)+`-`+a(i)+`)`,l,u),g.drawImage(h,d+o,f,p-o,m,d,f,p-o,m),g.fillRect(d+p-o,f,o,m),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(d+p-o,f,o,a((1-c/_)*m))}}},e})}))(),1),Ri=class{constructor({trackGPU:e=!1,trackCPT:t=!1,trackHz:n=!1,trackFPS:r=!0,logsPerSecond:i=4,graphsPerSecond:a=30,samplesLog:o=40,samplesGraph:s=10,precision:c=2}={}){this.gl=null,this.ext=null,this.gpuDevice=null,this.gpuBackend=null,this.renderer=null,this.activeQuery=null,this.gpuQueries=[],this.threeRendererPatched=!1,this.webgpuNative=!1,this.gpuQuerySet=null,this.gpuResolveBuffer=null,this.gpuReadBuffers=[],this.gpuWriteBufferIndex=0,this.gpuFrameCount=0,this.pendingResolve=null,this.frameTimes=[],this.frameTimesHead=0,this.renderCount=0,this.cpuStartTime=0,this.totalCpuDuration=0,this.totalGpuDuration=0,this.totalGpuDurationCompute=0,this.averageFps={logs:[],graph:[]},this.averageCpu={logs:[],graph:[]},this.averageGpu={logs:[],graph:[]},this.averageGpuCompute={logs:[],graph:[]},this.trackGPU=e,this.trackCPT=t,this.trackHz=n,this.trackFPS=r,this.samplesLog=o,this.samplesGraph=s,this.precision=c,this.logsPerSecond=i,this.graphsPerSecond=a;let l=performance.now();this.prevGraphTime=l,this.beginTime=l,this.prevTextTime=l,this.prevCpuTime=l}async init(e){if(!e){console.error(`Stats: The "canvas" parameter is undefined.`);return}if(!this.handleThreeRenderer(e)&&!await this.handleWebGPURenderer(e)&&!this.handleNativeWebGPU(e))if(this.initializeWebGL(e)){this.trackGPU&&this.initializeGPUTracking();return}else console.error(`Stats-gl: Failed to initialize WebGL context`)}handleNativeWebGPU(e){return e&&typeof e.createCommandEncoder==`function`&&typeof e.createQuerySet==`function`&&e.queue?(this.gpuDevice=e,this.webgpuNative=!0,this.trackGPU&&e.features?.has(`timestamp-query`)&&(this.initializeWebGPUTiming(),this.onWebGPUTimestampSupported()),!0):!1}initializeWebGPUTiming(){if(this.gpuDevice){this.gpuQuerySet=this.gpuDevice.createQuerySet({type:`timestamp`,count:2}),this.gpuResolveBuffer=this.gpuDevice.createBuffer({size:16,usage:GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC});for(let e=0;e<2;e++)this.gpuReadBuffers.push(this.gpuDevice.createBuffer({size:16,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}))}}handleThreeRenderer(e){return e.isWebGLRenderer&&!this.threeRendererPatched?(this.patchThreeRenderer(e),this.gl=e.getContext(),this.trackGPU&&this.initializeGPUTracking(),!0):!1}async handleWebGPURenderer(e){return e.isWebGPURenderer?(this.renderer=e,(this.trackGPU||this.trackCPT)&&(e.backend.trackTimestamp=!0,e._initialized||await e.init(),e.hasFeature(`timestamp-query`)&&this.onWebGPUTimestampSupported()),this.info=e.info,this.gpuBackend=e.backend,this.gpuDevice=e.backend?.device||null,this.patchThreeWebGPU(e),!0):!1}onWebGPUTimestampSupported(){}initializeWebGL(e){if(e instanceof WebGL2RenderingContext)this.gl=e;else if(e instanceof HTMLCanvasElement||e instanceof OffscreenCanvas){if(this.gl=e.getContext(`webgl2`),!this.gl)return console.error(`Stats: Unable to obtain WebGL2 context.`),!1}else return console.error(`Stats: Invalid input type. Expected WebGL2RenderingContext, HTMLCanvasElement, or OffscreenCanvas.`),!1;return!0}initializeGPUTracking(){this.gl&&(this.ext=this.gl.getExtension(`EXT_disjoint_timer_query_webgl2`),this.ext&&this.onGPUTrackingInitialized())}onGPUTrackingInitialized(){}getTimestampWrites(){if(!(!this.webgpuNative||!this.gpuQuerySet))return{querySet:this.gpuQuerySet,beginningOfPassWriteIndex:0,endOfPassWriteIndex:1}}begin(e){this.beginProfiling(),!this.webgpuNative&&(!this.gl||!this.ext||(this.activeQuery&&this.gl.endQuery(this.ext.TIME_ELAPSED_EXT),this.activeQuery=this.gl.createQuery(),this.activeQuery&&this.gl.beginQuery(this.ext.TIME_ELAPSED_EXT,this.activeQuery)))}end(e){if(this.renderCount++,this.webgpuNative&&e&&this.gpuQuerySet&&this.gpuResolveBuffer&&this.gpuReadBuffers.length>0){this.gpuFrameCount++;let t=this.gpuReadBuffers[this.gpuWriteBufferIndex];t.mapState===`unmapped`&&(e.resolveQuerySet(this.gpuQuerySet,0,2,this.gpuResolveBuffer,0),e.copyBufferToBuffer(this.gpuResolveBuffer,0,t,0,16)),this.endProfiling();return}this.gl&&this.ext&&this.activeQuery&&(this.gl.endQuery(this.ext.TIME_ELAPSED_EXT),this.gpuQueries.push({query:this.activeQuery}),this.activeQuery=null),this.endProfiling()}async resolveTimestampsAsync(){if(!this.webgpuNative||this.gpuReadBuffers.length===0)return this.totalGpuDuration;if(this.pendingResolve)return this.pendingResolve;let e=(this.gpuWriteBufferIndex+1)%2,t=this.gpuReadBuffers[e];if(this.gpuWriteBufferIndex=(this.gpuWriteBufferIndex+1)%2,this.gpuFrameCount<2||t.mapState!==`unmapped`)return this.totalGpuDuration;this.pendingResolve=this._resolveTimestamps(t);try{return await this.pendingResolve}finally{this.pendingResolve=null}}async _resolveTimestamps(e){try{await e.mapAsync(GPUMapMode.READ);let t=new BigInt64Array(e.getMappedRange()),n=t[0],r=t[1];e.unmap();let i=Number(r-n);return this.totalGpuDuration=i/1e6,this.totalGpuDuration}catch{return this.totalGpuDuration}}processGpuQueries(){if(!(!this.gl||!this.ext)){this.totalGpuDuration=0;for(let e=this.gpuQueries.length-1;e>=0;e--){let t=this.gpuQueries[e],n=this.gl.getQueryParameter(t.query,this.gl.QUERY_RESULT_AVAILABLE),r=this.gl.getParameter(this.ext.GPU_DISJOINT_EXT);if(n&&!r){let n=this.gl.getQueryParameter(t.query,this.gl.QUERY_RESULT)*1e-6;this.totalGpuDuration+=n,this.gl.deleteQuery(t.query),this.gpuQueries.splice(e,1)}}}}processWebGPUTimestamps(){this.totalGpuDuration=this.info.render.timestamp,this.totalGpuDurationCompute=this.info.compute.timestamp}beginProfiling(){this.cpuStartTime=performance.now()}endProfiling(){this.totalCpuDuration+=performance.now()-this.cpuStartTime}calculateFps(){let e=performance.now(),t=e-1e3;for(this.frameTimes.push(e);this.frameTimesHead<this.frameTimes.length&&this.frameTimes[this.frameTimesHead]<=t;)this.frameTimesHead++;return this.frameTimesHead>128&&(this.frameTimes=this.frameTimes.slice(this.frameTimesHead),this.frameTimesHead=0),Math.round(this.frameTimes.length-this.frameTimesHead)}updateAverages(){this.addToAverage(this.totalCpuDuration,this.averageCpu),this.addToAverage(this.totalGpuDuration,this.averageGpu),this.info&&this.totalGpuDurationCompute!==void 0&&this.addToAverage(this.totalGpuDurationCompute,this.averageGpuCompute)}addToAverage(e,t){for(t.logs.push(e);t.logs.length>this.samplesLog;)t.logs.shift();for(t.graph.push(e);t.graph.length>this.samplesGraph;)t.graph.shift()}resetCounters(){this.renderCount=0,this.totalCpuDuration=0,this.beginTime=performance.now()}getData(){let e=this.averageFps.logs,t=this.averageCpu.logs,n=this.averageGpu.logs,r=this.averageGpuCompute.logs;return{fps:e.length>0?e[e.length-1]:0,cpu:t.length>0?t[t.length-1]:0,gpu:n.length>0?n[n.length-1]:0,gpuCompute:r.length>0?r[r.length-1]:0}}patchThreeWebGPU(e){let t=e.info.reset,n=this;e.info.reset=function(){n.beginProfiling(),t.call(this)}}patchThreeRenderer(e){let t=e.render,n=this;e.render=function(e,r){n.begin(),t.call(this,e,r),n.end()},this.threeRendererPatched=!0}dispose(){if(this.gl){if(this.activeQuery&&this.ext){try{this.gl.endQuery(this.ext.TIME_ELAPSED_EXT)}catch{}this.gl.deleteQuery(this.activeQuery),this.activeQuery=null}for(let e of this.gpuQueries)this.gl.deleteQuery(e.query);this.gpuQueries.length=0}this.gpuQuerySet&&=(this.gpuQuerySet.destroy(),null),this.gpuResolveBuffer&&=(this.gpuResolveBuffer.destroy(),null);for(let e of this.gpuReadBuffers)e.mapState===`mapped`&&e.unmap(),e.destroy();this.gpuReadBuffers.length=0,this.gpuFrameCount=0,this.pendingResolve=null,this.webgpuNative=!1,this.gl=null,this.ext=null,this.info=void 0,this.gpuDevice=null,this.gpuBackend=null,this.renderer=null,this.frameTimes.length=0,this.frameTimesHead=0,this.averageFps.logs.length=0,this.averageFps.graph.length=0,this.averageCpu.logs.length=0,this.averageCpu.graph.length=0,this.averageGpu.logs.length=0,this.averageGpu.graph.length=0,this.averageGpuCompute.logs.length=0,this.averageGpuCompute.graph.length=0}},zi=class{constructor(e,t,n){this.id=0,this.name=e,this.fg=t,this.bg=n,this.gradient=null,this.PR=Math.round(typeof window<`u`&&window.devicePixelRatio||1),this.WIDTH=90*this.PR,this.HEIGHT=48*this.PR,this.TEXT_X=3*this.PR,this.TEXT_Y=2*this.PR,this.GRAPH_X=3*this.PR,this.GRAPH_Y=15*this.PR,this.GRAPH_WIDTH=84*this.PR,this.GRAPH_HEIGHT=30*this.PR,this.canvas=typeof document<`u`?document.createElement(`canvas`):new OffscreenCanvas(this.WIDTH,this.HEIGHT),this.canvas.width=this.WIDTH,this.canvas.height=this.HEIGHT,this.canvas.style.width=`90px`,this.canvas.style.height=`48px`,this.canvas.style.position=`absolute`,this.canvas.style.cssText=`width:90px;height:48px;background-color: transparent !important;`,this.context=this.canvas.getContext(`2d`),this.initializeCanvas()}createGradient(){if(!this.context)throw Error(`No context`);let e=this.context.createLinearGradient(0,this.GRAPH_Y,0,this.GRAPH_Y+this.GRAPH_HEIGHT),t,n=this.fg;switch(this.fg.toLowerCase()){case`#0ff`:t=`#006666`;break;case`#0f0`:t=`#006600`;break;case`#ff0`:t=`#666600`;break;case`#e1e1e1`:t=`#666666`;break;default:t=this.bg;break}return e.addColorStop(0,t),e.addColorStop(1,n),e}initializeCanvas(){this.context&&(this.context.imageSmoothingEnabled=!1,this.context.font=`bold `+9*this.PR+`px Helvetica,Arial,sans-serif`,this.context.textBaseline=`top`,this.gradient=this.createGradient(),this.context.fillStyle=this.bg,this.context.fillRect(0,0,this.WIDTH,this.HEIGHT),this.context.fillStyle=this.fg,this.context.fillText(this.name,this.TEXT_X,this.TEXT_Y),this.context.fillStyle=this.bg,this.context.globalAlpha=.9,this.context.fillRect(this.GRAPH_X,this.GRAPH_Y,this.GRAPH_WIDTH,this.GRAPH_HEIGHT))}update(e,t,n=0,r=``){if(!this.context||!this.gradient)return;let i=Math.min(1/0,e),a=Math.max(t,e);this.context.globalAlpha=1,this.context.fillStyle=this.bg,this.context.fillRect(0,0,this.WIDTH,this.GRAPH_Y);let o=`${e.toFixed(n)} ${this.name}`;this.context.fillStyle=this.fg,this.context.fillText(o,this.TEXT_X,this.TEXT_Y);let s=this.TEXT_X+this.context.measureText(o).width;r&&(this.context.fillStyle=`#f90`,this.context.fillText(r,s,this.TEXT_Y),s+=this.context.measureText(r).width),this.context.fillStyle=this.fg,this.context.fillText(` (${i.toFixed(n)}-${parseFloat(a.toFixed(n))})`,s,this.TEXT_Y)}updateGraph(e,t){if(!this.context||!this.gradient)return;e===0&&t===0&&(t=1),t=Math.max(t,e,.1),e=Math.max(e,0);let n=Math.round(this.GRAPH_X),r=Math.round(this.GRAPH_Y),i=Math.round(this.GRAPH_WIDTH),a=Math.round(this.GRAPH_HEIGHT),o=Math.round(this.PR);this.context.drawImage(this.canvas,n+o,r,i-o,a,n,r,i-o,a),this.context.fillStyle=this.bg,this.context.fillRect(n+i-o,r,o,a);let s=Math.min(a,Math.round(e/t*a));s>0&&(this.context.globalAlpha=.9,this.context.fillStyle=this.gradient,this.context.fillRect(n+i-o,r+(a-s),o,s)),this.context.globalAlpha=1}},Bi=class extends zi{constructor(e,t,n){super(e,t,n),this.vsyncValue=0,this.SMALL_HEIGHT=9*this.PR,this.HEIGHT=this.SMALL_HEIGHT,this.WIDTH=35*this.PR,this.TEXT_Y=0*this.PR,this.canvas.height=this.HEIGHT,this.canvas.width=this.WIDTH,this.canvas.style.height=`9px`,this.canvas.style.width=`35px`,this.canvas.style.cssText=`
66
+ width: 35px;
67
+ height: 9px;
68
+ position: absolute;
69
+ top: 0;
70
+ left: 0;
71
+ background-color: transparent !important;
72
+ pointer-events: none;
73
+ `,this.initializeCanvas()}initializeCanvas(){this.context&&(this.context.imageSmoothingEnabled=!1,this.context.font=`bold `+9*this.PR+`px Helvetica,Arial,sans-serif`,this.context.textBaseline=`top`,this.context.globalAlpha=1)}update(e,t,n=0){this.context&&(this.vsyncValue=e,this.context.clearRect(0,0,this.WIDTH,this.HEIGHT),this.context.globalAlpha=1,this.context.fillStyle=this.bg,this.context.fillText(`${e.toFixed(0)}Hz`,this.TEXT_X,this.TEXT_Y))}updateGraph(e,t){}setOffset(e,t){this.canvas.style.transform=`translate(${e}px, ${t}px)`}},Vi=class extends zi{constructor(e){super(e,`#fff`,`#111`),this.currentBitmap=null,this.sourceAspect=1,this.initializeCanvas()}initializeCanvas(){this.context&&(this.context.imageSmoothingEnabled=!0,this.context.font=`bold `+9*this.PR+`px Helvetica,Arial,sans-serif`,this.context.textBaseline=`top`,this.context.fillStyle=`#000`,this.context.fillRect(0,0,this.WIDTH,this.HEIGHT),this.drawLabelOverlay())}drawLabelOverlay(){this.context&&(this.context.fillStyle=`rgba(0, 0, 0, 0.5)`,this.context.fillRect(0,0,this.WIDTH,this.GRAPH_Y),this.context.fillStyle=this.fg,this.context.fillText(this.name,this.TEXT_X,this.TEXT_Y))}setSourceSize(e,t){this.sourceAspect=e/t}updateTexture(e){if(!this.context)return;this.currentBitmap&&this.currentBitmap.close(),this.currentBitmap=e,this.context.fillStyle=`#000`,this.context.fillRect(0,0,this.WIDTH,this.HEIGHT);let t=this.WIDTH/this.HEIGHT,n,r,i,a;this.sourceAspect>t?(n=this.WIDTH,r=this.WIDTH/this.sourceAspect,i=0,a=(this.HEIGHT-r)/2):(r=this.HEIGHT,n=this.HEIGHT*this.sourceAspect,i=(this.WIDTH-n)/2,a=0),this.context.drawImage(e,i,a,n,r),this.drawLabelOverlay()}setLabel(e){this.name=e,this.drawLabelOverlay()}update(e,t,n=0,r=``){}updateGraph(e,t){}dispose(){this.currentBitmap&&=(this.currentBitmap.close(),null)}},Hi=class{constructor(e,t=90,n=48){this.previewFbo=null,this.previewTexture=null,this.gl=e,this.previewWidth=t,this.previewHeight=n,this.pixels=new Uint8Array(t*n*4),this.flippedPixels=new Uint8Array(t*n*4),this.initResources()}resize(e,t){e===this.previewWidth&&t===this.previewHeight||(this.previewWidth=e,this.previewHeight=t,this.pixels=new Uint8Array(e*t*4),this.flippedPixels=new Uint8Array(e*t*4),this.dispose(),this.initResources())}initResources(){let e=this.gl;this.previewTexture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.previewTexture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA8,this.previewWidth,this.previewHeight,0,e.RGBA,e.UNSIGNED_BYTE,null),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),this.previewFbo=e.createFramebuffer(),e.bindFramebuffer(e.FRAMEBUFFER,this.previewFbo),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.previewTexture,0),e.bindFramebuffer(e.FRAMEBUFFER,null),e.bindTexture(e.TEXTURE_2D,null)}async capture(e,t,n,r=`default`){let i=this.gl,a=i.getParameter(i.READ_FRAMEBUFFER_BINDING),o=i.getParameter(i.DRAW_FRAMEBUFFER_BINDING);i.bindFramebuffer(i.READ_FRAMEBUFFER,e),i.bindFramebuffer(i.DRAW_FRAMEBUFFER,this.previewFbo),i.blitFramebuffer(0,0,t,n,0,0,this.previewWidth,this.previewHeight,i.COLOR_BUFFER_BIT,i.LINEAR),i.bindFramebuffer(i.READ_FRAMEBUFFER,this.previewFbo),i.readPixels(0,0,this.previewWidth,this.previewHeight,i.RGBA,i.UNSIGNED_BYTE,this.pixels),i.bindFramebuffer(i.READ_FRAMEBUFFER,a),i.bindFramebuffer(i.DRAW_FRAMEBUFFER,o);let s=this.flipY(this.pixels,this.previewWidth,this.previewHeight),c=new ImageData(new Uint8ClampedArray(s),this.previewWidth,this.previewHeight);return createImageBitmap(c)}flipY(e,t,n){let r=t*4;for(let t=0;t<n;t++){let i=t*r,a=(n-1-t)*r;this.flippedPixels.set(e.subarray(i,i+r),a)}return this.flippedPixels}removeSource(e){}dispose(){let e=this.gl;this.previewFbo&&=(e.deleteFramebuffer(this.previewFbo),null),this.previewTexture&&=(e.deleteTexture(this.previewTexture),null)}},Ui=class{constructor(e,t=90,n=48){this.previewTexture=null,this.stagingBuffer=null,this.blitPipeline=null,this.sampler=null,this.bindGroupLayout=null,this.initialized=!1,this.device=e,this.previewWidth=t,this.previewHeight=n,this.pixelsBuffer=new Uint8ClampedArray(t*n*4)}resize(e,t){e===this.previewWidth&&t===this.previewHeight||(this.previewWidth=e,this.previewHeight=t,this.pixelsBuffer=new Uint8ClampedArray(e*t*4),this.previewTexture&&this.previewTexture.destroy(),this.stagingBuffer&&this.stagingBuffer.destroy(),this.previewTexture=null,this.stagingBuffer=null,this.initialized&&this.createSizeResources())}createSizeResources(){let e=this.device;this.previewTexture=e.createTexture({size:{width:this.previewWidth,height:this.previewHeight},format:`rgba8unorm`,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC});let t=Math.ceil(this.previewWidth*4/256)*256;this.stagingBuffer=e.createBuffer({size:t*this.previewHeight,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ})}async initResources(){if(this.initialized)return;let e=this.device;this.createSizeResources(),this.sampler=e.createSampler({minFilter:`linear`,magFilter:`linear`});let t=e.createShaderModule({code:`
74
+ @group(0) @binding(0) var texSampler: sampler;
75
+ @group(0) @binding(1) var texInput: texture_2d<f32>;
76
+
77
+ struct VertexOutput {
78
+ @builtin(position) position: vec4f,
79
+ @location(0) uv: vec2f
80
+ }
81
+
82
+ @vertex
83
+ fn vertexMain(@builtin(vertex_index) vertexIndex: u32) -> VertexOutput {
84
+ var positions = array<vec2f, 3>(
85
+ vec2f(-1.0, -1.0),
86
+ vec2f(3.0, -1.0),
87
+ vec2f(-1.0, 3.0)
88
+ );
89
+ var uvs = array<vec2f, 3>(
90
+ vec2f(0.0, 1.0),
91
+ vec2f(2.0, 1.0),
92
+ vec2f(0.0, -1.0)
93
+ );
94
+
95
+ var output: VertexOutput;
96
+ output.position = vec4f(positions[vertexIndex], 0.0, 1.0);
97
+ output.uv = uvs[vertexIndex];
98
+ return output;
99
+ }
100
+
101
+ @fragment
102
+ fn fragmentMain(@location(0) uv: vec2f) -> @location(0) vec4f {
103
+ return textureSample(texInput, texSampler, uv);
104
+ }
105
+ `});this.bindGroupLayout=e.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,sampler:{type:`filtering`}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:`float`}}]}),this.blitPipeline=e.createRenderPipeline({layout:e.createPipelineLayout({bindGroupLayouts:[this.bindGroupLayout]}),vertex:{module:t,entryPoint:`vertexMain`},fragment:{module:t,entryPoint:`fragmentMain`,targets:[{format:`rgba8unorm`}]},primitive:{topology:`triangle-list`}}),this.initialized=!0}async capture(e){if(await this.initResources(),!this.previewTexture||!this.stagingBuffer||!this.blitPipeline||!this.sampler||!this.bindGroupLayout)return null;let t=this.device,n=t.createBindGroup({layout:this.bindGroupLayout,entries:[{binding:0,resource:this.sampler},{binding:1,resource:e.createView()}]}),r=t.createCommandEncoder(),i=r.beginRenderPass({colorAttachments:[{view:this.previewTexture.createView(),loadOp:`clear`,storeOp:`store`,clearValue:{r:0,g:0,b:0,a:1}}]});i.setPipeline(this.blitPipeline),i.setBindGroup(0,n),i.draw(3),i.end();let a=Math.ceil(this.previewWidth*4/256)*256;r.copyTextureToBuffer({texture:this.previewTexture},{buffer:this.stagingBuffer,bytesPerRow:a},{width:this.previewWidth,height:this.previewHeight}),t.queue.submit([r.finish()]),await this.stagingBuffer.mapAsync(GPUMapMode.READ);let o=new Uint8Array(this.stagingBuffer.getMappedRange());for(let e=0;e<this.previewHeight;e++){let t=e*a,n=e*this.previewWidth*4;this.pixelsBuffer.set(o.subarray(t,t+this.previewWidth*4),n)}this.stagingBuffer.unmap();let s=new ImageData(new Uint8ClampedArray(this.pixelsBuffer),this.previewWidth,this.previewHeight);return createImageBitmap(s)}dispose(){this.previewTexture&&this.previewTexture.destroy(),this.stagingBuffer&&this.stagingBuffer.destroy(),this.previewTexture=null,this.stagingBuffer=null,this.blitPipeline=null,this.sampler=null,this.bindGroupLayout=null,this.initialized=!1}};function Wi(e,t){return e.isWebGLRenderTarget&&e.__webglFramebuffer?{framebuffer:e.__webglFramebuffer,width:e.width||1,height:e.height||1}:null}function Gi(e,t){return e.isRenderTarget&&e.texture&&t.get&&t.get(e.texture)?.texture||null}const Ki=class e extends Ri{constructor({trackGPU:t=!1,trackCPT:n=!1,trackHz:r=!1,trackFPS:i=!0,logsPerSecond:a=4,graphsPerSecond:o=30,samplesLog:s=40,samplesGraph:c=10,precision:l=2,minimal:u=!1,horizontal:d=!0,mode:f=0}={}){super({trackGPU:t,trackCPT:n,trackHz:r,trackFPS:i,logsPerSecond:a,graphsPerSecond:o,samplesLog:s,samplesGraph:c,precision:l}),this.fpsPanel=null,this.msPanel=null,this.gpuPanel=null,this.gpuPanelCompute=null,this.vsyncPanel=null,this.workerCpuPanel=null,this.texturePanels=new Map,this.texturePanelRow=null,this.textureCaptureWebGL=null,this.textureCaptureWebGPU=null,this.textureSourcesWebGL=new Map,this.textureSourcesWebGPU=new Map,this.texturePreviewWidth=90,this.texturePreviewHeight=48,this.lastRendererWidth=0,this.lastRendererHeight=0,this.textureUpdatePending=!1,this.updateCounter=0,this.lastMin={},this.lastMax={},this.lastValue={},this.VSYNC_RATES=[{refreshRate:60,frameTime:16.67},{refreshRate:75,frameTime:13.33},{refreshRate:90,frameTime:11.11},{refreshRate:120,frameTime:8.33},{refreshRate:144,frameTime:6.94},{refreshRate:165,frameTime:6.06},{refreshRate:240,frameTime:4.17}],this.detectedVSync=null,this.frameTimeHistory=[],this.HISTORY_SIZE=120,this.VSYNC_THRESHOLD=.05,this.lastFrameTime=0,this.externalData=null,this.hasNewExternalData=!1,this.isWorker=!1,this.averageWorkerCpu={logs:[],graph:[]},this.handleClick=e=>{e.preventDefault(),this.showPanel(++this.mode%this.dom.children.length)},this.handleResize=()=>{this.fpsPanel&&this.resizePanel(this.fpsPanel),this.msPanel&&this.resizePanel(this.msPanel),this.workerCpuPanel&&this.resizePanel(this.workerCpuPanel),this.gpuPanel&&this.resizePanel(this.gpuPanel),this.gpuPanelCompute&&this.resizePanel(this.gpuPanelCompute)},this.mode=f,this.horizontal=d,this.minimal=u,this.dom=document.createElement(`div`),this.initializeDOM(),this._panelId=0,this.trackFPS&&(this.fpsPanel=this.addPanel(new e.Panel(`FPS`,`#0ff`,`#002`)),this.msPanel=this.addPanel(new e.Panel(`CPU`,`#0f0`,`#020`))),this.trackGPU&&(this.gpuPanel=this.addPanel(new e.Panel(`GPU`,`#ff0`,`#220`))),this.trackCPT&&(this.gpuPanelCompute=this.addPanel(new e.Panel(`CPT`,`#e1e1e1`,`#212121`))),this.trackHz===!0&&(this.vsyncPanel=new Bi(``,`#f0f`,`#202`),this.dom.appendChild(this.vsyncPanel.canvas),this.vsyncPanel.setOffset(56,35)),this.setupEventListeners()}initializeDOM(){this.dom.style.cssText=`
106
+ position: fixed;
107
+ top: 0;
108
+ left: 0;
109
+ opacity: 0.9;
110
+ z-index: 10000;
111
+ ${this.minimal?`cursor: pointer;`:``}
112
+ `}setupEventListeners(){this.minimal?(this.dom.addEventListener(`click`,this.handleClick),this.showPanel(this.mode)):window.addEventListener(`resize`,this.handleResize)}updateTexturePreviewDimensions(){if(!this.renderer)return;let e=this.renderer.domElement?.width||0,t=this.renderer.domElement?.height||0;if(e===this.lastRendererWidth&&t===this.lastRendererHeight||e===0||t===0)return;this.lastRendererWidth=e,this.lastRendererHeight=t;let n=e/t,r,i;if(n>1.875?(r=90,i=Math.round(90/n)):(i=48,r=Math.round(48*n)),r=Math.max(r,16),i=Math.max(i,16),r!==this.texturePreviewWidth||i!==this.texturePreviewHeight){this.texturePreviewWidth=r,this.texturePreviewHeight=i,this.textureCaptureWebGL&&this.textureCaptureWebGL.resize(r,i),this.textureCaptureWebGPU&&this.textureCaptureWebGPU.resize(r,i);for(let n of this.texturePanels.values())n.setSourceSize(e,t)}}onWebGPUTimestampSupported(){}onGPUTrackingInitialized(){}setData(t){if(this.externalData=t,this.hasNewExternalData=!0,!this.isWorker&&this.msPanel){this.isWorker=!0,this.workerCpuPanel=new e.Panel(`WRK`,`#f90`,`#220`);let t=this.msPanel.id+1;this.workerCpuPanel.id=t,this.gpuPanel&&this.gpuPanel.id>=t&&(this.gpuPanel.id++,this.resizePanel(this.gpuPanel)),this.gpuPanelCompute&&this.gpuPanelCompute.id>=t&&(this.gpuPanelCompute.id++,this.resizePanel(this.gpuPanelCompute));let n=this.msPanel.canvas;n.nextSibling?this.dom.insertBefore(this.workerCpuPanel.canvas,n.nextSibling):this.dom.appendChild(this.workerCpuPanel.canvas),this.resizePanel(this.workerCpuPanel),this._panelId++}}update(){this.externalData?this.updateFromExternalData():this.updateFromInternalData()}updateFromExternalData(){let e=this.externalData;this.endProfiling(),this.addToAverage(this.totalCpuDuration,this.averageCpu),this.totalCpuDuration=0,this.hasNewExternalData&&=(this.addToAverage(e.cpu,this.averageWorkerCpu),this.addToAverage(e.fps,this.averageFps),this.addToAverage(e.gpu,this.averageGpu),this.addToAverage(e.gpuCompute,this.averageGpuCompute),!1),this.renderPanels()}updateFromInternalData(){this.endProfiling(),this.webgpuNative?this.resolveTimestampsAsync():this.info?this.processWebGPUTimestamps():this.processGpuQueries(),this.updateAverages(),this.resetCounters(),this.renderPanels()}renderPanels(){let e=performance.now();if(!this.isWorker){for(this.frameTimes.push(e);this.frameTimes.length>0&&this.frameTimes[0]<=e-1e3;)this.frameTimes.shift();let t=Math.round(this.frameTimes.length);this.addToAverage(t,this.averageFps)}let t=e>=this.prevTextTime+1e3/this.logsPerSecond,n=e>=this.prevGraphTime+1e3/this.graphsPerSecond,r=this.isWorker?` ⛭`:``;if(this.updatePanelComponents(this.fpsPanel,this.averageFps,0,t,n,r),this.updatePanelComponents(this.msPanel,this.averageCpu,this.precision,t,n,``),this.workerCpuPanel&&this.isWorker&&this.updatePanelComponents(this.workerCpuPanel,this.averageWorkerCpu,this.precision,t,n,` ⛭`),this.gpuPanel&&this.updatePanelComponents(this.gpuPanel,this.averageGpu,this.precision,t,n,r),this.trackCPT&&this.gpuPanelCompute&&this.updatePanelComponents(this.gpuPanelCompute,this.averageGpuCompute,this.precision,t,n,r),t&&(this.prevTextTime=e),n&&(this.prevGraphTime=e,this.texturePanels.size>0&&!this.textureUpdatePending&&(this.textureUpdatePending=!0,this.updateTexturePanels().finally(()=>{this.textureUpdatePending=!1})),this.captureStatsGLNodes()),this.vsyncPanel!==null){this.detectVSync(e);let n=this.detectedVSync?.refreshRate||0;t&&n>0&&this.vsyncPanel.update(n,n)}}resetCounters(){this.renderCount=0,this.totalCpuDuration=0,this.beginTime=performance.now()}resizePanel(e){e.canvas.style.position=`absolute`,this.minimal?e.canvas.style.display=`none`:(e.canvas.style.display=`block`,this.horizontal?(e.canvas.style.top=`0px`,e.canvas.style.left=e.id*e.WIDTH/e.PR+`px`):(e.canvas.style.left=`0px`,e.canvas.style.top=e.id*e.HEIGHT/e.PR+`px`))}addPanel(e){return e.canvas&&(this.dom.appendChild(e.canvas),e.id=this._panelId,this.resizePanel(e),this._panelId++),e}showPanel(e){for(let t=0;t<this.dom.children.length;t++){let n=this.dom.children[t];n.style.display=t===e?`block`:`none`}this.mode=e}addTexturePanel(e){this.texturePanelRow||(this.texturePanelRow=document.createElement(`div`),this.texturePanelRow.style.cssText=`
113
+ position: absolute;
114
+ top: 48px;
115
+ left: 0;
116
+ display: flex;
117
+ flex-direction: row;
118
+ `,this.dom.appendChild(this.texturePanelRow));let t=new Vi(e);return t.canvas.style.position=`relative`,t.canvas.style.left=``,t.canvas.style.top=``,this.texturePanelRow.appendChild(t.canvas),this.texturePanels.set(e,t),t}setTexture(e,t){this.updateTexturePreviewDimensions(),this.gl&&!this.textureCaptureWebGL&&(this.textureCaptureWebGL=new Hi(this.gl,this.texturePreviewWidth,this.texturePreviewHeight)),this.gpuDevice&&!this.textureCaptureWebGPU&&(this.textureCaptureWebGPU=new Ui(this.gpuDevice,this.texturePreviewWidth,this.texturePreviewHeight));let n=this.texturePanels.get(e);if(t.isWebGLRenderTarget&&this.gl){let r=Wi(t,this.gl);r&&(this.textureSourcesWebGL.set(e,{target:t,...r}),n&&n.setSourceSize(r.width,r.height));return}if(t.isRenderTarget&&this.gpuBackend){let r=Gi(t,this.gpuBackend);r&&(this.textureSourcesWebGPU.set(e,r),n&&t.width&&t.height&&n.setSourceSize(t.width,t.height));return}if(t&&typeof t.createView==`function`){this.textureSourcesWebGPU.set(e,t);return}}setTextureWebGL(e,t,n,r){this.updateTexturePreviewDimensions(),this.gl&&!this.textureCaptureWebGL&&(this.textureCaptureWebGL=new Hi(this.gl,this.texturePreviewWidth,this.texturePreviewHeight)),this.textureSourcesWebGL.set(e,{target:{isWebGLRenderTarget:!0},framebuffer:t,width:n,height:r});let i=this.texturePanels.get(e);i&&i.setSourceSize(n,r)}setTextureBitmap(e,t,n,r){let i=this.texturePanels.get(e);i&&(n!==void 0&&r!==void 0&&i.setSourceSize(n,r),i.updateTexture(t))}removeTexturePanel(e){let t=this.texturePanels.get(e);t&&(t.dispose(),t.canvas.remove(),this.texturePanels.delete(e),this.textureSourcesWebGL.delete(e),this.textureSourcesWebGPU.delete(e))}async updateTexturePanels(){if(this.updateTexturePreviewDimensions(),this.textureCaptureWebGL)for(let[e,t]of this.textureSourcesWebGL){let n=this.texturePanels.get(e);if(n){let r=t.framebuffer,i=t.width,a=t.height;t.target.isWebGLRenderTarget&&t.target.__webglFramebuffer&&(r=t.target.__webglFramebuffer,i=t.target.width||i,a=t.target.height||a);let o=await this.textureCaptureWebGL.capture(r,i,a,e);o&&n.updateTexture(o)}}if(this.textureCaptureWebGPU)for(let[e,t]of this.textureSourcesWebGPU){let n=this.texturePanels.get(e);if(n){let e=await this.textureCaptureWebGPU.capture(t);e&&n.updateTexture(e)}}}captureStatsGLNodes(){let e=this._statsGLCaptures;if(!(!e||e.size===0||!this.renderer))for(let t of e.values())t.capture&&t.capture(this.renderer)}detectVSync(e){if(this.lastFrameTime===0){this.lastFrameTime=e;return}let t=e-this.lastFrameTime;if(this.lastFrameTime=e,this.frameTimeHistory.push(t),this.frameTimeHistory.length>this.HISTORY_SIZE&&this.frameTimeHistory.shift(),this.frameTimeHistory.length<60)return;let n=this.frameTimeHistory.reduce((e,t)=>e+t)/this.frameTimeHistory.length,r=this.frameTimeHistory.reduce((e,t)=>e+(t-n)**2,0)/this.frameTimeHistory.length;if(Math.sqrt(r)>2){this.detectedVSync=null;return}let i=null,a=1/0;for(let e of this.VSYNC_RATES){let t=Math.abs(n-e.frameTime);t<a&&(a=t,i=e)}i&&a/i.frameTime<=this.VSYNC_THRESHOLD?this.detectedVSync=i:this.detectedVSync=null}updatePanelComponents(e,t,n,r,i,a=``){if(!e||t.logs.length===0)return;let o=String(e.id);o in this.lastMin||(this.lastMin[o]=1/0,this.lastMax[o]=0,this.lastValue[o]=0);let s=t.logs[t.logs.length-1];this.lastMax[o]=Math.max(...t.logs),this.lastMin[o]=Math.min(this.lastMin[o],s),this.lastValue[o]=this.lastValue[o]*.7+s*.3;let c=Math.max(Math.max(...t.logs),...t.graph.slice(-this.samplesGraph));this.updateCounter++,r&&e.update(this.lastValue[o],this.lastMax[o],n,a),i&&e.updateGraph(s,c)}updatePanel(e,t,n=2){if(!e||t.logs.length===0)return;let r=performance.now();e.name in this.lastMin||(this.lastMin[e.name]=1/0,this.lastMax[e.name]=0,this.lastValue[e.name]=0);let i=t.logs[t.logs.length-1],a=Math.max(...t.logs.slice(-30));this.lastMin[e.name]=Math.min(this.lastMin[e.name],i),this.lastMax[e.name]=Math.max(this.lastMax[e.name],i),this.lastValue[e.name]=this.lastValue[e.name]*.7+i*.3;let o=Math.max(a,...t.graph.slice(-this.samplesGraph));this.updateCounter++,this.updateCounter%(this.logsPerSecond*2)==0&&(this.lastMax[e.name]=a,this.lastMin[e.name]=i),e.update&&(r>=this.prevCpuTime+1e3/this.logsPerSecond&&e.update(this.lastValue[e.name],i,this.lastMax[e.name],o,n),r>=this.prevGraphTime+1e3/this.graphsPerSecond&&(e.updateGraph(i,o),this.prevGraphTime=r))}get domElement(){return this.dom}dispose(){this.minimal?this.dom.removeEventListener(`click`,this.handleClick):window.removeEventListener(`resize`,this.handleResize),this.textureCaptureWebGL&&=(this.textureCaptureWebGL.dispose(),null),this.textureCaptureWebGPU&&=(this.textureCaptureWebGPU.dispose(),null);for(let e of this.texturePanels.values())e.dispose();this.texturePanels.clear(),this.textureSourcesWebGL.clear(),this.textureSourcesWebGPU.clear();let e=this._statsGLCaptures;if(e){for(let t of e.values())t.dispose&&t.dispose();e.clear()}this.texturePanelRow&&=(this.texturePanelRow.remove(),null),this.dom.remove(),this.fpsPanel=null,this.msPanel=null,this.gpuPanel=null,this.gpuPanelCompute=null,this.vsyncPanel=null,this.workerCpuPanel=null,this.frameTimeHistory.length=0,this.averageWorkerCpu.logs.length=0,this.averageWorkerCpu.graph.length=0,super.dispose()}};Ki.Panel=zi,Ki.PanelTexture=Vi;let qi=Ki;const U={diffuse:`csm_DiffuseColor`,roughness:`csm_Roughness`,metalness:`csm_Metalness`,emissive:`csm_Emissive`,ao:`csm_AO`,fragNormal:`csm_FragNormal`,clearcoat:`csm_Clearcoat`,clearcoatRoughness:`csm_ClearcoatRoughness`,clearcoatNormal:`csm_ClearcoatNormal`,transmission:`csm_Transmission`,thickness:`csm_Thickness`,iridescence:`csm_Iridescence`,pointSize:`csm_PointSize`,fragColor:`csm_FragColor`,depthAlpha:`csm_DepthAlpha`,unlitFac:`csm_UnlitFac`,position:`csm_Position`,positionRaw:`csm_PositionRaw`,normal:`csm_Normal`};`${U.position}`,`${U.positionRaw}`,`${U.normal}`,`${U.depthAlpha}`,`${U.pointSize}`,`${U.diffuse}`,`${U.fragColor}`,`${U.fragNormal}`,`${U.unlitFac}`,`${U.emissive}`,`${U.roughness}`,`${U.metalness}`,`${U.iridescence}`,`${U.ao}`,`${U.clearcoat}`,`${U.clearcoatRoughness}`,`${U.clearcoatNormal}`,`${U.transmission}`,`${U.thickness}`,j.ShaderChunk.lights_physical_fragment,j.ShaderChunk.transmission_fragment,`${U.normal}`,`${U.normal}`,`${U.position}`,`${U.position}`,`${U.positionRaw}`,`${U.positionRaw}`,`${U.pointSize}`,`${U.pointSize}`,`${U.diffuse}`,`${U.diffuse}`,`${U.fragColor}`,`${U.fragColor}${U.unlitFac}`,`${U.emissive}`,`${U.emissive}`,`${U.roughness}`,`${U.roughness}`,`${U.metalness}`,`${U.metalness}`,`${U.ao}`,`${U.ao}`,`${U.fragNormal}`,`${U.fragNormal}`,`${U.depthAlpha}`,`${U.depthAlpha}`,`${U.depthAlpha}`,`${U.depthAlpha}`,`${U.clearcoat}`,`${U.clearcoat}`,`${U.clearcoatRoughness}`,`${U.clearcoatRoughness}`,`${U.clearcoatNormal}`,`${U.transmission}`,`${U.transmission}`,`${U.thickness}`,`${U.thickness}`,`${U.iridescence}`,`${U.iridescence}`,U.clearcoat,U.clearcoatNormal,U.clearcoatRoughness,U.transmission,U.iridescence,j.Material,new ve,new R,new R,new ve,new N,Array.from({length:8},()=>new R),new R,new R,new R,new R,new R,new R,Object.freeze(new R(0,0,1)),(()=>{let e=new I;return e.matrixAutoUpdate=!1,e.matrixWorldAutoUpdate=!1,e})(),new le(`black`),new L(1,1),new j.Vector3,new j.Vector3,new j.Vector3;var Ji=c({__name:`KeyboardControls`,props:{makeDefault:{type:Boolean,required:!1,default:!0},camera:{type:Object,required:!1},domElement:{type:null,required:!1},moveSpeed:{type:Number,required:!1,default:.2},selector:{type:String,required:!1}},emits:[`isLock`,`change`],setup(e,{expose:t,emit:n}){let r=e,o=n,{moveSpeed:s}=ee(r),{camera:c,controls:l,renderer:u,invalidate:d}=ci();k(r,()=>{d()});let f=C(0),p=C(0),{KeyW:m,KeyA:h,KeyS:g,KeyD:_,Up:v,Down:b,Left:x,Right:S}=Bn();A(()=>{h.value||x.value?f.value=-s.value:_.value||S.value?f.value=s.value:f.value=0,m.value||v.value?p.value=s.value:g.value||b.value?p.value=-s.value:p.value=0}),t({instance:l});let w=e=>{o(`isLock`,e)},T=e=>{o(`change`,e)},E=new R,D=new R,te=new Ee,ne=(e,t)=>{if(!c.value?.position&&!E)return;let n=c.value,r=e*.001;n?.translateZ(-t),te.set(D.x*r,D.y*r,D.z*r,1).normalize(),n?.quaternion.multiply(te),(f.value||p.value)&&(d(),o(`change`,l.value))},{onBeforeRender:j}=li();return j(({delta:e})=>{l.value instanceof Oi&&l.value?.isLocked&&(ne(e,p.value),l.value.moveRight(f.value))}),(t,n)=>O(u)?(y(),i(O(na),{key:0,selector:e.selector,"make-default":e.makeDefault,camera:e.camera||O(c),"dom-element":e.domElement||O(u).domElement,onIsLock:w,onChange:T},null,8,[`selector`,`make-default`,`camera`,`dom-element`])):a(`v-if`,!0)}});const Yi={makeDefault:!1,autoRotate:!1,autoRotateSpeed:2,enableDamping:!0,dampingFactor:.05,enablePan:!0,keyPanSpeed:7,maxAzimuthAngle:1/0,minAzimuthAngle:-1/0,maxPolarAngle:Math.PI,minPolarAngle:0,minDistance:0,maxDistance:1/0,minZoom:0,maxZoom:1/0,enableZoom:!0,zoomSpeed:1,enableRotate:!0,rotateSpeed:1,target:()=>[0,0,0]};function Xi(e,t,n){let{controls:r,invalidate:i}=ci();k(t,()=>{i()}),En(e,a=>{a.addEventListener(`change`,()=>{i(),a&&n(`change`,e.value)}),a.addEventListener(`start`,()=>{e.value&&n(`start`,e.value)}),a.addEventListener(`end`,()=>{e.value&&n(`end`,e.value)}),t.makeDefault?r.value=a:r.value=null},{once:!0});let{onBeforeRender:a}=li();a(()=>{e.value&&e.value.enabled&&(t.enableDamping||t.autoRotate)&&e.value.update()}),v(()=>{e.value&&e.value.dispose()})}const Zi=[`args`,`target`,`auto-rotate`,`auto-rotate-speed`,`enable-damping`,`damping-factor`,`enable-pan`,`key-pan-speed`,`keys`,`max-azimuth-angle`,`min-azimuth-angle`,`max-polar-angle`,`min-polar-angle`,`min-distance`,`max-distance`,`min-zoom`,`max-zoom`,`touches`,`enable-zoom`,`zoom-speed`,`enable-rotate`,`rotate-speed`,`mouse-buttons`,`screen-space-panning`];var Qi=c({__name:`MapControls`,props:p({makeDefault:{type:Boolean,required:!1},camera:{type:Object,required:!1},domElement:{type:null,required:!1},target:{type:null,required:!1},enableDamping:{type:Boolean,required:!1},dampingFactor:{type:Number,required:!1},autoRotate:{type:Boolean,required:!1},autoRotateSpeed:{type:Number,required:!1},enablePan:{type:Boolean,required:!1},keyPanSpeed:{type:Number,required:!1},keys:{type:Object,required:!1},maxAzimuthAngle:{type:Number,required:!1},minAzimuthAngle:{type:Number,required:!1},maxPolarAngle:{type:Number,required:!1},minPolarAngle:{type:Number,required:!1},minDistance:{type:Number,required:!1},maxDistance:{type:Number,required:!1},minZoom:{type:Number,required:!1},maxZoom:{type:Number,required:!1},touches:{type:Object,required:!1},enableZoom:{type:Boolean,required:!1},zoomSpeed:{type:Number,required:!1},enableRotate:{type:Boolean,required:!1},rotateSpeed:{type:Number,required:!1},mouseButtons:{type:Object,required:!1},screenSpacePanning:{type:Boolean,required:!1}},{...Yi,touches:()=>({ONE:Fe.PAN,TWO:Fe.DOLLY_ROTATE}),mouseButtons:()=>({LEFT:F.PAN,MIDDLE:F.DOLLY,RIGHT:F.ROTATE}),screenSpacePanning:!1}),emits:[`change`,`start`,`end`],setup(e,{expose:t,emit:n}){let r=e,i=n,{camera:s,renderer:c,extend:l}=ci(),u=E(null);return l({MapControls:Ii}),Xi(u,r,i),t({instance:u}),(t,n)=>(e.camera||O(s))&&(e.domElement||O(c).domElement)?(y(),o(`TresMapControls`,{key:0,ref_key:`controlsRef`,ref:u,args:[e.camera||O(s),e.domElement||O(c).domElement],target:e.target,"auto-rotate":e.autoRotate,"auto-rotate-speed":e.autoRotateSpeed,"enable-damping":e.enableDamping,"damping-factor":e.dampingFactor,"enable-pan":e.enablePan,"key-pan-speed":e.keyPanSpeed,keys:e.keys,"max-azimuth-angle":e.maxAzimuthAngle,"min-azimuth-angle":e.minAzimuthAngle,"max-polar-angle":e.maxPolarAngle,"min-polar-angle":e.minPolarAngle,"min-distance":e.minDistance,"max-distance":e.maxDistance,"min-zoom":e.minZoom,"max-zoom":e.maxZoom,touches:e.touches,"enable-zoom":e.enableZoom,"zoom-speed":e.zoomSpeed,"enable-rotate":e.enableRotate,"rotate-speed":e.rotateSpeed,"mouse-buttons":e.mouseButtons,"screen-space-panning":e.screenSpacePanning},null,8,Zi)):a(`v-if`,!0)}});const $i=[`args`,`target`,`auto-rotate`,`auto-rotate-speed`,`enable-damping`,`damping-factor`,`enable-pan`,`key-pan-speed`,`keys`,`max-azimuth-angle`,`min-azimuth-angle`,`max-polar-angle`,`min-polar-angle`,`min-distance`,`max-distance`,`min-zoom`,`max-zoom`,`touches`,`enable-zoom`,`zoom-speed`,`enable-rotate`,`rotate-speed`,`mouse-buttons`,`screen-space-panning`];var ea=c({__name:`OrbitControls`,props:p({mouseButtons:{type:Object,required:!1},makeDefault:{type:Boolean,required:!1},camera:{type:Object,required:!1},domElement:{type:null,required:!1},target:{type:null,required:!1},enableDamping:{type:Boolean,required:!1},dampingFactor:{type:Number,required:!1},autoRotate:{type:Boolean,required:!1},autoRotateSpeed:{type:Number,required:!1},enablePan:{type:Boolean,required:!1},keyPanSpeed:{type:Number,required:!1},keys:{type:Object,required:!1},maxAzimuthAngle:{type:Number,required:!1},minAzimuthAngle:{type:Number,required:!1},maxPolarAngle:{type:Number,required:!1},minPolarAngle:{type:Number,required:!1},minDistance:{type:Number,required:!1},maxDistance:{type:Number,required:!1},minZoom:{type:Number,required:!1},maxZoom:{type:Number,required:!1},touches:{type:Object,required:!1},enableZoom:{type:Boolean,required:!1},zoomSpeed:{type:Number,required:!1},enableRotate:{type:Boolean,required:!1},rotateSpeed:{type:Number,required:!1},screenSpacePanning:{type:Boolean,required:!1}},{...Yi,touches:()=>({ONE:Fe.ROTATE,TWO:Fe.DOLLY_PAN}),mouseButtons:()=>({LEFT:F.ROTATE,MIDDLE:F.DOLLY,RIGHT:F.PAN}),screenSpacePanning:!0}),emits:[`change`,`start`,`end`],setup(e,{expose:t,emit:n}){let r=e,i=n,{camera:s,renderer:c,extend:l}=ci(),u=E(null);return l({OrbitControls:Fi}),Xi(u,r,i),t({instance:u}),(t,n)=>(e.camera||O(s))&&(e.domElement||O(c).domElement)?(y(),o(`TresOrbitControls`,{ref_key:`controlsRef`,ref:u,key:(e.camera||O(s))?.uuid,args:[e.camera||O(s),e.domElement||O(c).domElement],target:e.target,"auto-rotate":e.autoRotate,"auto-rotate-speed":e.autoRotateSpeed,"enable-damping":e.enableDamping,"damping-factor":e.dampingFactor,"enable-pan":e.enablePan,"key-pan-speed":e.keyPanSpeed,keys:e.keys,"max-azimuth-angle":e.maxAzimuthAngle,"min-azimuth-angle":e.minAzimuthAngle,"max-polar-angle":e.maxPolarAngle,"min-polar-angle":e.minPolarAngle,"min-distance":e.minDistance,"max-distance":e.maxDistance,"min-zoom":e.minZoom,"max-zoom":e.maxZoom,touches:e.touches,"enable-zoom":e.enableZoom,"zoom-speed":e.zoomSpeed,"enable-rotate":e.enableRotate,"rotate-speed":e.rotateSpeed,"mouse-buttons":e.mouseButtons,"screen-space-panning":e.screenSpacePanning},null,8,$i)):a(`v-if`,!0)}});const ta=[`args`];var na=c({__name:`PointerLockControls`,props:{makeDefault:{type:Boolean,required:!1,default:!1},camera:{type:Object,required:!1},domElement:{type:null,required:!1},selector:{type:String,required:!1}},emits:[`isLock`,`change`],setup(e,{expose:t,emit:n}){let r=e,i=n,{camera:s,renderer:c,extend:l,controls:u,invalidate:d}=ci();k(r,()=>{d()});let f=E(null),p;l({PointerLockControls:Oi});let m=()=>i(`isLock`,!0),h=()=>i(`isLock`,!1),g=()=>d();return k(f,(e,t)=>{if(t&&(t.removeEventListener(`lock`,m),t.removeEventListener(`unlock`,h),t.removeEventListener(`change`,g)),!e){u.value=null;return}r.makeDefault&&(u.value=e),e.addEventListener(`lock`,m),e.addEventListener(`unlock`,h),e.addEventListener(`change`,g),p=document.getElementById(r.selector||``)||c.domElement,kn(p,`click`,()=>{e.lock(),d()})}),v(()=>{let e=f.value;e&&(e.removeEventListener(`lock`,m),e.removeEventListener(`unlock`,h),e.removeEventListener(`change`,g),e.dispose())}),t({instance:u}),(t,n)=>(e.camera||O(s))&&(e.domElement||O(c).domElement)?(y(),o(`TresPointerLockControls`,{key:0,ref_key:`controlsRef`,ref:f,args:[e.camera||O(s),e.domElement||O(c).domElement]},null,8,ta)):a(`v-if`,!0)}});function ra(e,t,...n){let r=E(),{scene:i}=ci(),a;return A(()=>{e&&D(e)&&t&&(r.value=a=new t(D(e),...n)),a&&(a.traverse(e=>e.raycast=()=>null),i.value.add(a))}),h(()=>{r.value=void 0,i.value.remove(a),a.dispose?.()}),li().onBeforeRender(()=>{r.value?.update?.()}),r}var ia=c({__name:`component`,props:{type:{type:null,required:!0},args:{type:Array,required:!1}},setup(e){let t=e,n=E(),r=E();return A(()=>{n.value&&n.value.parent&&(r.value=n.value.parent)}),ra(r,t.type,...t.args??[]),(e,t)=>(y(),o(`TresObject3D`,{ref_key:`objRef`,ref:n},null,512))}});c({name:`Stats`,props:{showPanel:{type:Number,default:0}},setup(e,{expose:t}){let n=new Li.default;t({instance:n});let r=document.body;n.showPanel(e.showPanel||0),r?.appendChild(n.dom);let{onBeforeRender:i,onRender:a}=li();i(()=>n.begin(),-1/0),a(()=>n.end(),1/0),v(()=>{r?.removeChild(n.dom)})}}),c({name:`StatsGl`,props:[`logsPerSecond`,`samplesLog`,`samplesGraph`,`precision`,`horizontal`,`minimal`,`mode`],setup(e,{expose:t}){let n=new qi({logsPerSecond:e.logsPerSecond,samplesLog:e.samplesLog,samplesGraph:e.samplesGraph,precision:e.precision,horizontal:e.horizontal,minimal:e.minimal,mode:e.mode});t({instance:n});let r=document.body,i=n.domElement;r?.appendChild(i);let{renderer:a}=si(),{onRender:o}=li();n.init(a.instance),o(()=>n.update(),1/0),v(()=>{r?.removeChild(i)})}}),new le,c({name:`BakeShadows`,setup(){let{renderer:e}=ci();A(()=>{e instanceof Ve&&(e.shadowMap.autoUpdate=!1,e.shadowMap.needsUpdate=!0)})}});var aa=class e extends I{static Geometry;isLensflare=!0;type=`Lensflare`;addElement(e){}dispose(){}constructor(){super(e.Geometry,new ye({opacity:0,transparent:!0})),this.frustumCulled=!1,this.renderOrder=1/0;let t=new R,n=new R,r=new fe(16,16),i=new fe(16,16),a=Re,o=e.Geometry,s=new Oe({uniforms:{scale:{value:null},screenPosition:{value:null}},vertexShader:`
119
+
120
+ precision highp float;
121
+
122
+ uniform vec3 screenPosition;
123
+ uniform vec2 scale;
124
+
125
+ attribute vec3 position;
126
+
127
+ void main() {
128
+
129
+ gl_Position = vec4( position.xy * scale + screenPosition.xy, screenPosition.z, 1.0 );
130
+
131
+ }`,fragmentShader:`
132
+
133
+ precision highp float;
134
+
135
+ void main() {
136
+
137
+ gl_FragColor = vec4( 1.0, 0.0, 1.0, 1.0 );
138
+
139
+ }`,depthTest:!0,depthWrite:!1,transparent:!1}),c=new Oe({uniforms:{map:{value:r},scale:{value:null},screenPosition:{value:null}},vertexShader:`
140
+
141
+ precision highp float;
142
+
143
+ uniform vec3 screenPosition;
144
+ uniform vec2 scale;
145
+
146
+ attribute vec3 position;
147
+ attribute vec2 uv;
148
+
149
+ varying vec2 vUV;
150
+
151
+ void main() {
152
+
153
+ vUV = uv;
154
+
155
+ gl_Position = vec4( position.xy * scale + screenPosition.xy, screenPosition.z, 1.0 );
156
+
157
+ }`,fragmentShader:`
158
+
159
+ precision highp float;
160
+
161
+ uniform sampler2D map;
162
+
163
+ varying vec2 vUV;
164
+
165
+ void main() {
166
+
167
+ gl_FragColor = texture2D( map, vUV );
168
+
169
+ }`,depthTest:!1,depthWrite:!1,transparent:!1}),l=new I(o,s),u=[],d=oa.Shader,f=new Oe({name:d.name,uniforms:{map:{value:null},occlusionMap:{value:i},color:{value:new le(16777215)},scale:{value:new L},screenPosition:{value:new R}},vertexShader:d.vertexShader,fragmentShader:d.fragmentShader,blending:M,transparent:!0,depthWrite:!1}),p=new I(o,f);this.addElement=function(e){u.push(e)};let m=new L,h=new L,g=new oe,_=new ze;this.onBeforeRender=function(e,d,v){e.getCurrentViewport(_);let y=e.getRenderTarget(),b=y===null?Re:y.texture.type;a!==b&&(r.dispose(),i.dispose(),r.type=i.type=b,a=b);let x=_.w/_.z,S=_.z/2,C=_.w/2,w=16/_.w;if(m.set(w*x,w),g.min.set(_.x,_.y),g.max.set(_.x+(_.z-16),_.y+(_.w-16)),n.setFromMatrixPosition(this.matrixWorld),n.applyMatrix4(v.matrixWorldInverse),!(n.z>0)&&(t.copy(n).applyMatrix4(v.projectionMatrix),h.x=_.x+t.x*S+S-8,h.y=_.y+t.y*C+C-8,g.containsPoint(h))){e.copyFramebufferToTexture(r,h);let n=s.uniforms;n.scale.value=m,n.screenPosition.value=t,e.renderBufferDirect(v,null,o,s,l,null),e.copyFramebufferToTexture(i,h),n=c.uniforms,n.scale.value=m,n.screenPosition.value=t,e.renderBufferDirect(v,null,o,c,l,null);let a=-t.x*2,d=-t.y*2;for(let n=0,r=u.length;n<r;n++){let r=u[n],i=f.uniforms;i.color.value.copy(r.color),i.map.value=r.texture,i.screenPosition.value.x=t.x+a*r.distance,i.screenPosition.value.y=t.y+d*r.distance,w=r.size/_.w;let s=_.w/_.z;i.scale.value.set(w*s,w),f.uniformsNeedUpdate=!0,e.renderBufferDirect(v,null,o,f,p,null)}}},this.dispose=function(){s.dispose(),c.dispose(),f.dispose(),r.dispose(),i.dispose();for(let e=0,t=u.length;e<t;e++)u[e].texture.dispose()}}},oa=class{texture;size;distance;color;static Shader;constructor(e,t=1,n=0,r=new le(16777215)){this.texture=e,this.size=t,this.distance=n,this.color=r}};oa.Shader={name:`LensflareElementShader`,uniforms:{map:{value:null},occlusionMap:{value:null},color:{value:null},scale:{value:null},screenPosition:{value:null}},vertexShader:`
170
+
171
+ precision highp float;
172
+
173
+ uniform vec3 screenPosition;
174
+ uniform vec2 scale;
175
+
176
+ uniform sampler2D occlusionMap;
177
+
178
+ attribute vec3 position;
179
+ attribute vec2 uv;
180
+
181
+ varying vec2 vUV;
182
+ varying float vVisibility;
183
+
184
+ void main() {
185
+
186
+ vUV = uv;
187
+
188
+ vec2 pos = position.xy;
189
+
190
+ vec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );
191
+ visibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );
192
+ visibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );
193
+ visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );
194
+ visibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );
195
+ visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );
196
+ visibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );
197
+ visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );
198
+ visibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );
199
+
200
+ vVisibility = visibility.r / 9.0;
201
+ vVisibility *= 1.0 - visibility.g / 9.0;
202
+ vVisibility *= visibility.b / 9.0;
203
+
204
+ gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );
205
+
206
+ }`,fragmentShader:`
207
+
208
+ precision highp float;
209
+
210
+ uniform sampler2D map;
211
+ uniform vec3 color;
212
+
213
+ varying vec2 vUV;
214
+ varying float vVisibility;
215
+
216
+ void main() {
217
+
218
+ vec4 texture = texture2D( map, vUV );
219
+ texture.a *= vVisibility;
220
+ gl_FragColor = texture;
221
+ gl_FragColor.rgb *= color;
222
+
223
+ }`},aa.Geometry=(function(){let e=new ce,t=new me(new Float32Array([-1,-1,0,0,0,1,-1,0,1,0,1,1,0,1,1,-1,1,0,0,1]),5);return e.setIndex([0,1,2,0,2,3]),e.setAttribute(`position`,new P(t,3,0,!1)),e.setAttribute(`uv`,new P(t,2,3,!1)),e})(),_e.clamp,_e.lerp,c({name:`GlobalAudio`,props:[`src`,`loop`,`volume`,`playbackRate`,`playTrigger`,`stopTrigger`],async setup(e,{expose:t,emit:n}){let{camera:r,renderer:i}=si(),a=new ie;r.activeCamera.value?.add(a);let o=new re(a),s=new ae;t({instance:o}),v(()=>{o&&o.disconnect()}),k(()=>[e.playbackRate],()=>o.setPlaybackRate(e.playbackRate??1),{immediate:!0}),k(()=>[e.volume],()=>o.setVolume(e.volume??.5),{immediate:!0}),k(()=>[e.loop],()=>o.setLoop(e.loop??!1),{immediate:!0}),k(()=>[e.src],async()=>{let t=await s.loadAsync(e.src);o.setBuffer(t)},{immediate:!0}),kn(document.getElementById(e.playTrigger??``)||i.instance.domElement,`click`,()=>{o.isPlaying?o.pause():o.play(),n(`isPlaying`,o.isPlaying)});let c=document.getElementById(e.stopTrigger??``);return c&&kn(c,`click`,()=>{o.stop(),n(`isPlaying`,o.isPlaying)}),null}});var sa=`void main() {
224
+ gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
225
+ }`,ca=`#include <common>
226
+
227
+ uniform float uWidth;
228
+ uniform float uHeight;
229
+
230
+ void main() {
231
+
232
+ vec4 mvPosition = modelViewMatrix * vec4(0.0, 0.0, 0.0, 1.0);
233
+
234
+ vec2 quad = position.xy;
235
+
236
+ vec2 alignedPosition = quad * vec2(uWidth, uHeight);
237
+
238
+ mvPosition.xy += alignedPosition;
239
+
240
+ gl_Position = projectionMatrix * mvPosition;
241
+ }`,la=`#include <common>
242
+
243
+ void main() {
244
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
245
+ }`;const ua=new R(0,0,0),da=new R(0,0,0),fa=new R(0,0,0);function pa(e,t,n){let r=ua.setFromMatrixPosition(e.matrixWorld);r.project(t);let i=n.width/2,a=n.height/2;return[(Number.isNaN(r.x)?0:r.x)*i+i,-(r.y*a)+a,r.z]}function ma(e,t){let n=ua.setFromMatrixPosition(e.matrixWorld),r=da.setFromMatrixPosition(t.matrixWorld),i=n.sub(r),a=t.getWorldDirection(fa);return i.angleTo(a)>Math.PI/2}function ha(e,t,n,r){let i=ua.setFromMatrixPosition(e.matrixWorld),a=i.clone();a.project(t),n.setFromCamera(new L(a.x,a.y),t);let o=n.intersectObjects(r,!0);if(o.length>0){let e=o[0].distance;return i.distanceTo(n.ray.origin)<e}return!0}function ga(e,t=new R(0,0,0),n){let{width:r,height:i}=n,a=r/i,o=ua,s=da;s.copy(t);let c=e.getWorldPosition(o).distanceTo(s);if(e instanceof Se)return 1;let l=e.fov*Math.PI/180;return r/(2*Math.tan(l/2)*c*a)}function _a(e,t){if(t instanceof Se)return t.zoom;if(t instanceof Ce){let n=ua.setFromMatrixPosition(e.matrixWorld),r=da.setFromMatrixPosition(t.matrixWorld),i=t.fov*Math.PI/180,a=n.distanceTo(r);return 1/(2*Math.tan(i/2)*a)}else return 1}function va(e,t,n){if(t instanceof Ce||t instanceof Se){let r=ua.setFromMatrixPosition(e.matrixWorld),i=da.setFromMatrixPosition(t.matrixWorld),a=r.distanceTo(i),o=(n[1]-n[0])/(t.far-t.near),s=n[1]-o*t.far;return Math.round(o*a+s)}}const ya=e=>Math.abs(e)<1e-10?0:e;function ba(e,t,n=``){let r=`matrix3d(`;for(let n=0;n!==16;n++)r+=ya(t[n]*e.elements[n])+(n===15?`)`:`,`);return n+r}const xa=(e=>t=>ba(t,e))([1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1]),Sa=(e,t)=>ba(e,[1/t,1/t,1/t,1,-1/t,-1/t,-1/t,-1,1/t,1/t,1/t,1,1,1,1,1],`translate(-50%,-50%)`),Ca=[`material`,`cast-shadow`,`receive-shadow`,`geometry`];var wa=c({__name:`HTML`,props:{geometry:{type:null,required:!1},material:{type:null,required:!1},as:{type:String,required:!1,default:`div`},transform:{type:Boolean,required:!1,default:!1},prepend:{type:Boolean,required:!1,default:!1},portal:{type:null,required:!1},wrapperClass:{type:String,required:!1},eps:{type:Number,required:!1,default:1e-4},distanceFactor:{type:Number,required:!1},fullscreen:{type:Boolean,required:!1},center:{type:Boolean,required:!1},pointerEvents:{type:String,required:!1,default:`auto`},sprite:{type:Boolean,required:!1,default:!1},transparentMaterial:{type:Boolean,required:!1,default:!1},zIndexRange:{type:Array,required:!1,default:()=>[16777271,0]},calculatePosition:{type:null,required:!1,default:()=>pa},occlude:{type:[Object,null,Array,Boolean,String],required:!1},castShadow:{type:Boolean,required:!1,default:!1},receiveShadow:{type:Boolean,required:!1,default:!1}},emits:[`onOcclude`],setup(e,{expose:t,emit:n}){let i=e,c=n,l=ne(),{geometry:u,material:d,as:f,transform:p,portal:m,wrapperClass:h,eps:g,distanceFactor:_,fullscreen:b,center:x,pointerEvents:S,sprite:T,prepend:D,occlude:j,zIndexRange:M,castShadow:re,receiveShadow:ie,transparentMaterial:ae,calculatePosition:oe}=ee(i),N=te(),se=E(null),ce=E(null),le=new Te,{renderer:de,scene:fe,camera:pe,sizes:me}=si(),P=r(()=>document.createElement(f.value)),he=new Ae,F=new R,ge=new ve,_e=new Ee,I=C([0,0,0]),ye=C(0),be=C(null),xe=C(!0),Ce=C(!1),we=r(()=>({position:`absolute`,top:`0`,left:`0`,willChange:`transform`,pointerEvents:S.value,...typeof N.style==`object`?N.style:{}})),De=r(()=>{let e=me.width.value,t=me.height.value;return p.value?{...we.value,transformStyle:`preserve-3d`,pointerEvents:`none`,width:`${e}px`,height:`${t}px`}:{...we.value,transform:x.value?`translate3d(-50%,-50%,0)`:`none`,...b.value&&{top:`-${t/2}px`,left:`-${e/2}px`,width:`${e}px`,height:`${t}px`},pointerEvents:b.value?`none`:S.value}}),Oe=r(()=>({position:`absolute`,pointerEvents:S.value})),ke=r(()=>{let e=j.value;return e&&e!==`blending`&&(Array.isArray(e)?e.length&&typeof e[0]!=`boolean`:!0)}),Me=r(()=>d.value?d.value:new je({vertexShader:T.value?ca:p.value?la:ca,fragmentShader:sa,side:ue,transparent:ae.value,uniforms:{uWidth:{value:1},uHeight:{value:1}}}));A(()=>{Me.value.transparent=ae.value}),k([j,()=>de.instance],([e,t])=>{if(!t||e!==`blending`)return;let n=t.domElement;n.style.zIndex=`${Math.floor(M.value[0]/2)}`,n.style.position=`absolute`},{immediate:!0}),k(()=>[se.value,de.instance,me.width.value,me.height.value,l.default?.(),pe.activeCamera.value],([e,t])=>{if(!e||!t||!pe.activeCamera.value)return;Ce.value=!1,fe.value?.updateMatrixWorld();let n=P.value.style;n.position=`absolute`,n.top=`0`,n.left=`0`,p.value?(n.pointerEvents=`none`,n.overflow=`hidden`,n.transformStyle=`preserve-3d`):(n.transformOrigin=`0 0`,n.willChange=`transform`,j.value||(n.zIndex=`${M.value[0]}`));let r=m.value||t.domElement?.parentNode;r&&!P.value.parentNode&&(D.value?r.prepend(P.value):r.appendChild(P.value)),be.value=p.value?s(`div`,{style:De.value},[s(`div`,{style:Oe.value},[s(`div`,{key:se.value?.uuid,class:N.class,style:N.style},l.default?.())])]):s(`div`,{key:se.value?.uuid,style:De.value,class:N.class},l.default?.()),w(be.value,P.value)}),A(()=>{h.value&&(P.value.className=h.value)});let{onBeforeRender:Ne}=li();return Ne(({invalidate:e})=>{let t=se.value,n=pe.activeCamera.value,r=de.instance;if(!t||!n||!r)return;n.updateMatrixWorld(),t.updateWorldMatrix(!0,!1);let i=me.width.value,a=me.height.value,o=i*.5,s=a*.5,l=p.value?I.value:oe.value(t,n,{width:i,height:a}),d=Math.abs(ye.value-n.zoom)>g.value||Math.abs(I.value[0]-l[0])>g.value||Math.abs(I.value[1]-l[1])>g.value||Math.abs(I.value[2]-l[2])>g.value,f=p.value||d,m=!0,h=ma(t,n);if(ke.value){let e=!1;Array.isArray(j.value)?e=j.value:j.value!==`blending`&&(e=[fe.value]),e&&(m=ha(t,n,he,e)&&!h)}else m=!h;m!==xe.value&&(xe.value=m,P.value.style.display=m?`block`:`none`,c(`onOcclude`,!m),f=!0);let v=Math.floor(M.value[0]/2),y=j.value?ke.value?[M.value[0],v]:[v-1,0]:M.value;if(P.value.style.zIndex=`${va(t,n,y)}`,p.value){let e=n.projectionMatrix.elements[5]*s,r=xa(n.matrixWorldInverse),c=n instanceof Se,l=c?`scale(${e})translate(${ya(-(n.right+n.left)/2)}px,${ya((n.top+n.bottom)/2)}px)`:`translateZ(${e}px)`,u=t.matrixWorld;if(T.value){ge.copy(t.matrixWorld);let e=n.matrixWorldInverse.clone().transpose();_e.setFromRotationMatrix(e),ge.makeRotationFromQuaternion(_e),t.getWorldPosition(F),ge.setPosition(F),ge.scale(t.scale),ge.elements[3]=ge.elements[7]=ge.elements[11]=0,ge.elements[15]=1,u=ge}let d=P.value.style;if(d.width=`${i}px`,d.height=`${a}px`,d.perspective=c?``:`${e}px`,be.value?.el){be.value.el.style.transform=`${l}${r}translate(${o}px,${s}px)`;let e;Array.isArray(be.value.children)&&(e=be.value.children[0]),e?.el&&(e.el.style.transform=Sa(u,1/((_.value||10)/400)))}}else{let e=_.value===void 0?1:_a(t,n)*_.value;P.value.style.transform=`translate3d(${l[0]}px,${l[1]}px,0) scale(${e})`}if(I.value=[l[0],l[1],l[2]],ye.value=n.zoom,!ke.value&&ce.value&&!Ce.value){let e=ce.value;if(p.value){let t=be.value?.children;if(Array.isArray(t)){let r=t[0]?.el;if(r){let t=n instanceof Se;if(t&&u.value&&N.scale)Array.isArray(N.scale)?N.scale instanceof R?e.scale.copy(N.scale):e.scale.set(1/N.scale[0],1/N.scale[1],1/N.scale[2]):e.scale.setScalar(1/N.scale);else if(!t&&!u.value){let t=(_.value||10)/400;if(T.value)Me.value.uniforms.uWidth.value=r.clientWidth*t,Me.value.uniforms.uHeight.value=r.clientHeight*t,e.lookAt(n.position),e.scale.set(1,1,1);else{let n=r.clientWidth*t,i=r.clientHeight*t;e.scale.set(n,i,1)}}Ce.value=!0}}}else{let r=P.value.children[0];if(r?.clientWidth&&r?.clientHeight){t.getWorldPosition(F);let o=1/ga(n,F,{width:i,height:a});Me.value.uniforms.uWidth.value=r.clientWidth*o,Me.value.uniforms.uHeight.value=r.clientHeight*o,e.scale.set(1,1,1),e.lookAt(n.position),Ce.value=!0}}}f&&e()}),v(()=>{le?.dispose(),Me.value?.dispose(),P.value?.parentNode&&P.value.parentNode.removeChild(P.value)}),t({instance:se,isVisible:xe,occlusionMesh:ce}),(e,t)=>(y(),o(`TresGroup`,{ref_key:`groupRef`,ref:se},[O(j)&&!ke.value?(y(),o(`TresMesh`,{key:0,ref_key:`occlusionMeshRef`,ref:ce,material:Me.value,"cast-shadow":O(re),"receive-shadow":O(ie),geometry:O(u)||O(le)},null,8,Ca)):a(`v-if`,!0)],512))}});mi.ReflectorShader,new le(16777215);var Ta=e({default:()=>Ea});async function Ea(e={}){var t,n=e,r=!!globalThis.window,i=!!globalThis.WorkerGlobalScope;function a(e){e={log:e||function(){}};for(let t of a.Pa)t(e);return n.quickJSEmscriptenExtensions=e}a.Pa=[],n.quickjsEmscriptenInit=a,a.Pa.push(e=>{e.getWasmMemory=function(){return M}});var o=`./this.program`,s=import.meta.url,c=``,l,u;if(r||i){try{c=new URL(`.`,s).href}catch{}i&&(u=e=>{var t=new XMLHttpRequest;return t.open(`GET`,e,!1),t.responseType=`arraybuffer`,t.send(null),new Uint8Array(t.response)}),l=async e=>{if(e=await fetch(e,{credentials:`same-origin`}),e.ok)return e.arrayBuffer();throw Error(e.status+` : `+e.url)}}var d=console.log.bind(console),f=console.error.bind(console),p,m=!1,h,g,_,v,y,b,x,S=!1;function C(){var e=M.buffer;n.HEAP8=v=new Int8Array(e),new Int16Array(e),n.HEAPU8=y=new Uint8Array(e),new Uint16Array(e),b=new Int32Array(e),x=new Uint32Array(e),new Float32Array(e),new Float64Array(e),new BigInt64Array(e),new BigUint64Array(e)}function w(e){throw n.onAbort?.(e),e=`Aborted(`+e+`)`,f(e),m=!0,e=new WebAssembly.RuntimeError(e+`. Build with -sASSERTIONS for more info.`),_?.(e),e}var T;async function E(e){if(!p)try{var t=await l(e);return new Uint8Array(t)}catch{}if(e==T&&p)e=new Uint8Array(p);else if(u)e=u(e);else throw`both async and sync fetching of the wasm failed`;return e}async function ee(e,t){try{var n=await E(e);return await WebAssembly.instantiate(n,t)}catch(e){f(`failed to asynchronously prepare wasm: ${e}`),w(e)}}async function D(e){var t=T;if(!p)try{var n=fetch(t,{credentials:`same-origin`});return await WebAssembly.instantiateStreaming(n,e)}catch(e){f(`wasm streaming compile failed: ${e}`),f(`falling back to ArrayBuffer instantiation`)}return ee(t,e)}class O{name=`ExitStatus`;constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var te=e=>{for(;0<e.length;)e.shift()(n)},ne=[],k=[],A=()=>{var e=n.preRun.shift();k.push(e)},j=!0,M,re=new TextDecoder,ie=(e,t,n,r)=>{if(n=t+n,r)return n;for(;e[t]&&!(t>=n);)++t;return t},ae=(e,t,n)=>e?re.decode(y.subarray(e,ie(y,e,t,n))):``,oe=0,N=[0,31,60,91,121,152,182,213,244,274,305,335],se=[0,31,59,90,120,151,181,212,243,273,304,334],ce={},le=e=>{if(!(e instanceof O||e==`unwind`))throw e},ue=e=>{throw h=e,j||0<oe||(n.onExit?.(e),m=!0),new O(e)},de=e=>{if(!m)try{e()}catch(e){le(e)}finally{if(!(j||0<oe))try{h=e=h,ue(e)}catch(e){le(e)}}},fe=(e,t,n)=>{var r=y;if(!(0<n))return 0;var i=t;n=t+n-1;for(var a=0;a<e.length;++a){var o=e.codePointAt(a);if(127>=o){if(t>=n)break;r[t++]=o}else if(2047>=o){if(t+1>=n)break;r[t++]=192|o>>6,r[t++]=128|o&63}else if(65535>=o){if(t+2>=n)break;r[t++]=224|o>>12,r[t++]=128|o>>6&63,r[t++]=128|o&63}else{if(t+3>=n)break;r[t++]=240|o>>18,r[t++]=128|o>>12&63,r[t++]=128|o>>6&63,r[t++]=128|o&63,a++}}return r[t]=0,t-i},pe={},me=()=>{if(!P){var e={USER:`web_user`,LOGNAME:`web_user`,PATH:`/`,PWD:`/`,HOME:`/home/web_user`,LANG:(globalThis.navigator?.language??`C`).replace(`-`,`_`)+`.UTF-8`,_:o||`./this.program`},t;for(t in pe)pe[t]===void 0?delete e[t]:e[t]=pe[t];var n=[];for(t in e)n.push(`${t}=${e[t]}`);P=n}return P},P,he=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);127>=r?t++:2047>=r?t+=2:55296<=r&&57343>=r?(t+=4,++n):t+=3}return t},F=[null,[],[]],ge=(e,t,r,i)=>{var a={string:e=>{var t=0;if(e!=null&&e!==0){t=he(e)+1;var n=I(t);fe(e,n,t),t=n}return t},array:e=>{var t=I(e.length);return v.set(e,t),t}};e=n[`_`+e];var o=[],s=0;if(i)for(var c=0;c<i.length;c++){var l=a[r[c]];l?(s===0&&(s=ye()),o[c]=l(i[c])):o[c]=i[c]}return r=e(...o),r=function(e){return s!==0&&ve(s),t===`string`?ae(e):t===`boolean`?!!e:e}(r)};if(M=n.wasmMemory?n.wasmMemory:new WebAssembly.Memory({initial:(n.INITIAL_MEMORY||16777216)/65536,maximum:32768}),C(),n.noExitRuntime&&(j=n.noExitRuntime),n.print&&(d=n.print),n.printErr&&(f=n.printErr),n.wasmBinary&&(p=n.wasmBinary),n.thisProgram&&(o=n.thisProgram),n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);0<n.preInit.length;)n.preInit.shift()();n.cwrap=(e,t,r,i)=>{var a=!r||r.every(e=>e===`number`||e===`boolean`);return t!==`string`&&a&&!i?n[`_`+e]:(...n)=>ge(e,t,r,n)},n.UTF8ToString=ae,n.stringToUTF8=(e,t,n)=>fe(e,t,n),n.lengthBytesUTF8=he;var _e,ve,I,ye,be={b:(e,t,n,r)=>w(`Assertion failed: ${ae(e)}, at: `+[t?ae(t):`unknown filename`,n,r?ae(r):`unknown function`]),q:()=>w(``),l:()=>{j=!1,oe=0},m:function(e,t){e=-9007199254740992>e||9007199254740992<e?NaN:Number(e),e=new Date(1e3*e),b[t>>2]=e.getSeconds(),b[t+4>>2]=e.getMinutes(),b[t+8>>2]=e.getHours(),b[t+12>>2]=e.getDate(),b[t+16>>2]=e.getMonth(),b[t+20>>2]=e.getFullYear()-1900,b[t+24>>2]=e.getDay();var n=e.getFullYear();b[t+28>>2]=(n%4!=0||n%100==0&&n%400!=0?se:N)[e.getMonth()]+e.getDate()-1|0,b[t+36>>2]=-(60*e.getTimezoneOffset()),n=new Date(e.getFullYear(),6,1).getTimezoneOffset();var r=new Date(e.getFullYear(),0,1).getTimezoneOffset();b[t+32>>2]=(n!=r&&e.getTimezoneOffset()==Math.min(r,n))|0},j:(e,t)=>(ce[e]&&(clearTimeout(ce[e].id),delete ce[e]),t&&(ce[e]={id:setTimeout(()=>{delete ce[e],de(()=>_e(e,performance.now()))},t),Qa:t}),0),n:(e,t,n,r)=>{var i=new Date().getFullYear(),a=new Date(i,0,1).getTimezoneOffset();i=new Date(i,6,1).getTimezoneOffset(),x[e>>2]=60*Math.max(a,i),b[t>>2]=Number(a!=i),t=e=>{var t=Math.abs(e);return`UTC${0<=e?`-`:`+`}${String(Math.floor(t/60)).padStart(2,`0`)}${String(t%60).padStart(2,`0`)}`},e=t(a),t=t(i),i<a?(fe(e,n,17),fe(t,r,17)):(fe(e,r,17),fe(t,n,17))},p:()=>Date.now(),k:e=>{var t=y.length;if(e>>>=0,2147483648<e)return!1;for(var n=1;4>=n;n*=2){var r=t*(1+.2/n);r=Math.min(r,e+100663296);a:{r=(Math.min(2147483648,65536*Math.ceil(Math.max(e,r)/65536))-M.buffer.byteLength+65535)/65536|0;try{M.grow(r),C();var i=1;break a}catch{}i=void 0}if(i)return!0}return!1},e:(e,t)=>{var n=0,r=0,i;for(i of me()){var a=t+n;x[e+r>>2]=a,n+=fe(i,a,1/0)+1,r+=4}return 0},f:(e,t)=>{var n=me();x[e>>2]=n.length,e=0;for(var r of n)e+=he(r)+1;return x[t>>2]=e,0},d:()=>52,o:function(){return 70},c:(e,t,n,r)=>{for(var i=0,a=0;a<n;a++){var o=x[t>>2],s=x[t+4>>2];t+=8;for(var c=0;c<s;c++){var l=e,u=y[o+c],p=F[l];u===0||u===10?(l=l===1?d:f,u=ie(p,0),u=re.decode(p.buffer?p.subarray(0,u):new Uint8Array(p.slice(0,u))),l(u),p.length=0):p.push(u)}i+=s}return x[r>>2]=i,0},a:M,r:ue,s:function(e,t,r,i,a){return n.callbacks.callFunction(void 0,e,t,r,i,a)},i:function(e){return n.callbacks.shouldInterrupt(void 0,e)},h:function(e,t,r){return r=ae(r),n.callbacks.loadModuleSource(void 0,e,t,r)},g:function(e,t,r,i){return r=ae(r),i=ae(i),n.callbacks.normalizeModule(void 0,e,t,r,i)},t:function(e,t){n.callbacks.freeHostRef(void 0,e,t)}},xe=await async function(){function e(e){return e=xe=e.exports,n._malloc=e.v,n._QTS_Throw=e.w,n._QTS_NewError=e.x,n._QTS_RuntimeSetMemoryLimit=e.y,n._QTS_RuntimeComputeMemoryUsage=e.z,n._QTS_RuntimeDumpMemoryUsage=e.A,n._QTS_RecoverableLeakCheck=e.B,n._QTS_BuildIsSanitizeLeak=e.C,n._QTS_RuntimeSetMaxStackSize=e.D,n._QTS_GetUndefined=e.E,n._QTS_GetNull=e.F,n._QTS_GetFalse=e.G,n._QTS_GetTrue=e.H,n._QTS_NewHostRef=e.I,n._QTS_GetHostRefId=e.J,n._QTS_NewRuntime=e.K,n._QTS_FreeRuntime=e.L,n._free=e.M,n._QTS_NewContext=e.N,n._QTS_FreeContext=e.O,n._QTS_FreeValuePointer=e.P,n._QTS_FreeValuePointerRuntime=e.Q,n._QTS_FreeVoidPointer=e.R,n._QTS_FreeCString=e.S,n._QTS_DupValuePointer=e.T,n._QTS_NewObject=e.U,n._QTS_NewObjectProto=e.V,n._QTS_NewArray=e.W,n._QTS_NewArrayBuffer=e.X,n._QTS_NewFloat64=e.Y,n._QTS_GetFloat64=e.Z,n._QTS_NewString=e._,n._QTS_GetString=e.$,n._QTS_GetArrayBuffer=e.aa,n._QTS_GetArrayBufferLength=e.ba,n._QTS_NewSymbol=e.ca,n._QTS_GetSymbolDescriptionOrKey=e.da,n._QTS_IsGlobalSymbol=e.ea,n._QTS_IsJobPending=e.fa,n._QTS_ExecutePendingJob=e.ga,n._QTS_GetProp=e.ha,n._QTS_GetPropNumber=e.ia,n._QTS_SetProp=e.ja,n._QTS_DefineProp=e.ka,n._QTS_GetOwnPropertyNames=e.la,n._QTS_Call=e.ma,n._QTS_ResolveException=e.na,n._QTS_Dump=e.oa,n._QTS_Eval=e.pa,n._QTS_GetModuleNamespace=e.qa,n._QTS_Typeof=e.ra,n._QTS_GetLength=e.sa,n._QTS_IsEqual=e.ta,n._QTS_GetGlobalObject=e.ua,n._QTS_NewPromiseCapability=e.va,n._QTS_PromiseState=e.wa,n._QTS_PromiseResult=e.xa,n._QTS_TestStringArg=e.ya,n._QTS_GetDebugLogEnabled=e.za,n._QTS_SetDebugLogEnabled=e.Aa,n._QTS_BuildIsDebug=e.Ba,n._QTS_BuildIsAsyncify=e.Ca,n._QTS_NewFunction=e.Da,n._QTS_ArgvGetJSValueConstPointer=e.Ea,n._QTS_RuntimeEnableInterruptHandler=e.Fa,n._QTS_RuntimeDisableInterruptHandler=e.Ga,n._QTS_RuntimeEnableModuleLoader=e.Ha,n._QTS_RuntimeDisableModuleLoader=e.Ia,n._QTS_bjson_encode=e.Ja,n._QTS_bjson_decode=e.Ka,_e=e.La,ve=e.Ma,I=e.Na,ye=e.Oa,xe}var t={a:be};return n.instantiateWasm?new Promise(r=>{n.instantiateWasm(t,(t,n)=>{r(e(t,n))})}):(T??=n.locateFile?n.locateFile?n.locateFile(`emscripten-module.wasm`,c):c+`emscripten-module.wasm`:new URL(`emscripten-module.wasm`,import.meta.url).href,e((await D(t)).instance))}();return(function(){function e(){if(n.calledRun=!0,!m){if(S=!0,xe.u(),g?.(n),n.onRuntimeInitialized?.(),n.postRun)for(typeof n.postRun==`function`&&(n.postRun=[n.postRun]);n.postRun.length;){var e=n.postRun.shift();ne.push(e)}te(ne)}}if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)A();te(k),n.setStatus?(n.setStatus(`Running...`),setTimeout(()=>{setTimeout(()=>n.setStatus(``),1),e()},1)):e()})(),t=S?n:new Promise((e,t)=>{g=e,_=t}),t}var Da=e({QuickJSFFI:()=>Oa}),Oa=class{constructor(e){this.module=e,this.DEBUG=!1,this.QTS_Throw=this.module.cwrap(`QTS_Throw`,`number`,[`number`,`number`]),this.QTS_NewError=this.module.cwrap(`QTS_NewError`,`number`,[`number`]),this.QTS_RuntimeSetMemoryLimit=this.module.cwrap(`QTS_RuntimeSetMemoryLimit`,null,[`number`,`number`]),this.QTS_RuntimeComputeMemoryUsage=this.module.cwrap(`QTS_RuntimeComputeMemoryUsage`,`number`,[`number`,`number`]),this.QTS_RuntimeDumpMemoryUsage=this.module.cwrap(`QTS_RuntimeDumpMemoryUsage`,`number`,[`number`]),this.QTS_RecoverableLeakCheck=this.module.cwrap(`QTS_RecoverableLeakCheck`,`number`,[]),this.QTS_BuildIsSanitizeLeak=this.module.cwrap(`QTS_BuildIsSanitizeLeak`,`number`,[]),this.QTS_RuntimeSetMaxStackSize=this.module.cwrap(`QTS_RuntimeSetMaxStackSize`,null,[`number`,`number`]),this.QTS_GetUndefined=this.module.cwrap(`QTS_GetUndefined`,`number`,[]),this.QTS_GetNull=this.module.cwrap(`QTS_GetNull`,`number`,[]),this.QTS_GetFalse=this.module.cwrap(`QTS_GetFalse`,`number`,[]),this.QTS_GetTrue=this.module.cwrap(`QTS_GetTrue`,`number`,[]),this.QTS_NewHostRef=this.module.cwrap(`QTS_NewHostRef`,`number`,[`number`,`number`]),this.QTS_GetHostRefId=this.module.cwrap(`QTS_GetHostRefId`,`number`,[`number`]),this.QTS_NewRuntime=this.module.cwrap(`QTS_NewRuntime`,`number`,[]),this.QTS_FreeRuntime=this.module.cwrap(`QTS_FreeRuntime`,null,[`number`]),this.QTS_NewContext=this.module.cwrap(`QTS_NewContext`,`number`,[`number`,`number`]),this.QTS_FreeContext=this.module.cwrap(`QTS_FreeContext`,null,[`number`]),this.QTS_FreeValuePointer=this.module.cwrap(`QTS_FreeValuePointer`,null,[`number`,`number`]),this.QTS_FreeValuePointerRuntime=this.module.cwrap(`QTS_FreeValuePointerRuntime`,null,[`number`,`number`]),this.QTS_FreeVoidPointer=this.module.cwrap(`QTS_FreeVoidPointer`,null,[`number`,`number`]),this.QTS_FreeCString=this.module.cwrap(`QTS_FreeCString`,null,[`number`,`number`]),this.QTS_DupValuePointer=this.module.cwrap(`QTS_DupValuePointer`,`number`,[`number`,`number`]),this.QTS_NewObject=this.module.cwrap(`QTS_NewObject`,`number`,[`number`]),this.QTS_NewObjectProto=this.module.cwrap(`QTS_NewObjectProto`,`number`,[`number`,`number`]),this.QTS_NewArray=this.module.cwrap(`QTS_NewArray`,`number`,[`number`]),this.QTS_NewArrayBuffer=this.module.cwrap(`QTS_NewArrayBuffer`,`number`,[`number`,`number`,`number`]),this.QTS_NewFloat64=this.module.cwrap(`QTS_NewFloat64`,`number`,[`number`,`number`]),this.QTS_GetFloat64=this.module.cwrap(`QTS_GetFloat64`,`number`,[`number`,`number`]),this.QTS_NewString=this.module.cwrap(`QTS_NewString`,`number`,[`number`,`number`]),this.QTS_GetString=this.module.cwrap(`QTS_GetString`,`number`,[`number`,`number`]),this.QTS_GetArrayBuffer=this.module.cwrap(`QTS_GetArrayBuffer`,`number`,[`number`,`number`]),this.QTS_GetArrayBufferLength=this.module.cwrap(`QTS_GetArrayBufferLength`,`number`,[`number`,`number`]),this.QTS_NewSymbol=this.module.cwrap(`QTS_NewSymbol`,`number`,[`number`,`number`,`number`]),this.QTS_GetSymbolDescriptionOrKey=this.module.cwrap(`QTS_GetSymbolDescriptionOrKey`,`number`,[`number`,`number`]),this.QTS_IsGlobalSymbol=this.module.cwrap(`QTS_IsGlobalSymbol`,`number`,[`number`,`number`]),this.QTS_IsJobPending=this.module.cwrap(`QTS_IsJobPending`,`number`,[`number`]),this.QTS_ExecutePendingJob=this.module.cwrap(`QTS_ExecutePendingJob`,`number`,[`number`,`number`,`number`]),this.QTS_GetProp=this.module.cwrap(`QTS_GetProp`,`number`,[`number`,`number`,`number`]),this.QTS_GetPropNumber=this.module.cwrap(`QTS_GetPropNumber`,`number`,[`number`,`number`,`number`]),this.QTS_SetProp=this.module.cwrap(`QTS_SetProp`,null,[`number`,`number`,`number`,`number`]),this.QTS_DefineProp=this.module.cwrap(`QTS_DefineProp`,null,[`number`,`number`,`number`,`number`,`number`,`number`,`boolean`,`boolean`,`boolean`]),this.QTS_GetOwnPropertyNames=this.module.cwrap(`QTS_GetOwnPropertyNames`,`number`,[`number`,`number`,`number`,`number`,`number`]),this.QTS_Call=this.module.cwrap(`QTS_Call`,`number`,[`number`,`number`,`number`,`number`,`number`]),this.QTS_ResolveException=this.module.cwrap(`QTS_ResolveException`,`number`,[`number`,`number`]),this.QTS_Dump=this.module.cwrap(`QTS_Dump`,`number`,[`number`,`number`]),this.QTS_Eval=this.module.cwrap(`QTS_Eval`,`number`,[`number`,`number`,`number`,`string`,`number`,`number`]),this.QTS_GetModuleNamespace=this.module.cwrap(`QTS_GetModuleNamespace`,`number`,[`number`,`number`]),this.QTS_Typeof=this.module.cwrap(`QTS_Typeof`,`number`,[`number`,`number`]),this.QTS_GetLength=this.module.cwrap(`QTS_GetLength`,`number`,[`number`,`number`,`number`]),this.QTS_IsEqual=this.module.cwrap(`QTS_IsEqual`,`number`,[`number`,`number`,`number`,`number`]),this.QTS_GetGlobalObject=this.module.cwrap(`QTS_GetGlobalObject`,`number`,[`number`]),this.QTS_NewPromiseCapability=this.module.cwrap(`QTS_NewPromiseCapability`,`number`,[`number`,`number`]),this.QTS_PromiseState=this.module.cwrap(`QTS_PromiseState`,`number`,[`number`,`number`]),this.QTS_PromiseResult=this.module.cwrap(`QTS_PromiseResult`,`number`,[`number`,`number`]),this.QTS_TestStringArg=this.module.cwrap(`QTS_TestStringArg`,null,[`string`]),this.QTS_GetDebugLogEnabled=this.module.cwrap(`QTS_GetDebugLogEnabled`,`number`,[`number`]),this.QTS_SetDebugLogEnabled=this.module.cwrap(`QTS_SetDebugLogEnabled`,null,[`number`,`number`]),this.QTS_BuildIsDebug=this.module.cwrap(`QTS_BuildIsDebug`,`number`,[]),this.QTS_BuildIsAsyncify=this.module.cwrap(`QTS_BuildIsAsyncify`,`number`,[]),this.QTS_NewFunction=this.module.cwrap(`QTS_NewFunction`,`number`,[`number`,`string`,`number`,`boolean`,`number`]),this.QTS_ArgvGetJSValueConstPointer=this.module.cwrap(`QTS_ArgvGetJSValueConstPointer`,`number`,[`number`,`number`]),this.QTS_RuntimeEnableInterruptHandler=this.module.cwrap(`QTS_RuntimeEnableInterruptHandler`,null,[`number`]),this.QTS_RuntimeDisableInterruptHandler=this.module.cwrap(`QTS_RuntimeDisableInterruptHandler`,null,[`number`]),this.QTS_RuntimeEnableModuleLoader=this.module.cwrap(`QTS_RuntimeEnableModuleLoader`,null,[`number`,`number`]),this.QTS_RuntimeDisableModuleLoader=this.module.cwrap(`QTS_RuntimeDisableModuleLoader`,null,[`number`]),this.QTS_bjson_encode=this.module.cwrap(`QTS_bjson_encode`,`number`,[`number`,`number`]),this.QTS_bjson_decode=this.module.cwrap(`QTS_bjson_decode`,`number`,[`number`,`number`])}},ka=e({QuickJSModuleCallbacks:()=>Kt,QuickJSWASMModule:()=>Yt,applyBaseRuntimeOptions:()=>qt,applyModuleEvalRuntimeOptions:()=>Jt}),Aa=[258,e=>[e],[``,``,``]],ja=[259,(e,t)=>[e,t],[``,``,``,``,``]],W=[260,()=>[Aa],[``]],G=[261,()=>[Aa],[``]],Ma=[262,()=>[Aa],[``]],q=[264,()=>[Aa],[``]],J=[265,()=>[Aa],[``]],Na=[266,()=>[Aa],[``]],Pa=[267,()=>[Aa],[``]],Fa=[268,()=>[Aa],[``]],Ia=[272,()=>[Aa],[``]],La=[273,()=>[Aa],[``]],Ra=[274,()=>[Aa],[``]],za=[275,()=>[Aa],[``]],Ba=[276,()=>[Aa],[``]],Va=[277,()=>[ja],[``]],Y=[278,()=>[ja],[``]],Ha=[280,()=>[ja],[``]],Ha=[281,()=>[],[``,``,``,``,``,``,``,``,``]],Ua=[282,()=>[ja],[``]],Ua=[283,()=>[],[``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``]],Wa=[284,()=>[Wa,Wa,ja],[``,``,``]],Wa=[285,()=>[],[``,``,``]],Ga=[288,()=>[ja],[``]],Ga=[289,()=>[Ga,Ga,Ga],[``,``,``,``,``,``]],Ka=[290,()=>[Array,Array,ArrayBuffer,WebAssembly.Module],`...............................`.split(`.`)],qa=[291,()=>[],[``,``,``,``]],Ja=[292,()=>[qa,Ka.WasmOffsetConverter,Ka.WasmOffsetConverter,ArrayBuffer,WebAssembly.Module,WebAssembly.Memory],[``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``]],Ya=[293,()=>[ArrayBuffer,WebAssembly.Memory,WebAssembly.Imports,WebAssembly.Instance,WebAssembly.Exports,WebAssembly.Exports,Promise,console.log,Ja],`...........................`.split(`.`)],Xa=[294,()=>[La,Ia,Ka.ValueType,Ka.ValueType,Ka.CCallOpts,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,Ya],`..............................................`.split(`.`)],Za=[295,()=>[],[]],Qa=[296,e=>[e,Za],[``,``,``]],$a=[297,e=>[e,e,Qa],[``,``,``,``,``,``,``,``]],eo=[298,()=>[$a,W,Y,$a,G,J,J,Y,q,q,Qa,$a,W,G,Ia,Ia,Qa,$a,W,G,Ia,Ia,Qa,$a,W,Qa],`..................................................`.split(`.`)],to=[299,()=>[eo,Xa],[``,``,``,``]],no=[300,()=>[eo,Xa],[``,``,``,``]],ro=[301,()=>[to,no],[``,``]],io=[303,()=>[G,q,J,q,G,q,W,W,G,q,W,La,W,J,J,J,J,G,Y,q,q,J,Y,W,W,W,Ua,G,G,G,q,W,q,G,za,G,Ra,G,q,J,q,G,q,G,q,J,q,G,q,G,za,q,G,q,G,q,J,G,Ia,q,G,q,J,Ra,G,q,J,za,G,q,J,G,Ia,q,G,q,J,Ra,G,q,J,W,W,Ma,q,G,q,J,q,J,q,G,q,J,q,G,q,J,q,J,q,J,G,q,J,q,J,q,J,q,J,q,J,G,Pa,Ba,q,J,q,G,q,J,q,J,Fa,q,G,q,q,G,q,J,Ra,G,Ia,Va,Ha,q,G,q,J,q,G,q,J,La,G,Ba,q,J,G,q,J,q,J,Ga,G,q,G,Na,q,G,q,J,Wa,G,q,J,q,W,W,G,Y,q,q,J,J,W,W,W,W,G,q,J,q,G,q,J,q],`.......................................................................................................................................................................................................................................................................................................................................................................................................`.split(`.`)],ao=[304,()=>[G,q,J,q,G,q,W,W,G,q,W,La,W,J,J,J,J,G,Y,q,q,J,Y,W,W,W,Ua,G,G,G,q,W,q,G,za,G,Ra,G,q,J,q,G,q,G,q,J,q,G,q,G,za,q,G,q,G,q,J,G,Ia,q,G,q,J,Ra,G,q,J,za,G,q,J,G,Ia,q,G,q,J,Ra,G,q,J,Ra,Ra,Promise,G,q,J,W,W,Ma,q,W,Ma,q,q,Promise,G,q,J,q,J,q,G,q,J,q,J,q,q,Promise,G,q,J,q,G,q,J,q,q,Promise,G,q,J,q,J,q,J,G,q,J,q,J,q,J,Promise,G,q,J,q,J,q,J,q,J,q,J,G,Pa,Ba,q,J,q,G,Pa,Ba,q,J,q,q,Promise,G,q,J,q,J,Fa,q,G,q,J,q,J,Fa,q,q,Promise,G,q,q,G,q,J,Ra,G,q,J,Ra,Ra,Promise,G,Ia,Va,Ha,q,G,Ia,Va,Ha,q,q,Promise,G,q,J,q,G,q,J,La,G,Ba,q,J,G,q,J,q,J,Ga,G,q,G,Na,q,G,q,J,Wa,G,q,J,q,W,W,G,Y,q,q,J,J,W,W,W,W,G,q,J,q,G,q,J,q],`................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................`.split(`.`)],oo=[309,()=>[io,ao],[``,``]],so=[310,(e,t)=>[e,t],[``,``,``,``,``,``,``]],co=[313,e=>[e,e,so],[``,``,``,``]],lo=[314,e=>[e,e,e,e,co],[``,``,``,``,``,``,``,``]],uo=[315,e=>[e,e,e,e,e,e,e,e,e,e,lo,e,e,e,e,e,e,e,e,e,e,fo,e,e,e,e,co,e,co],`................................................................`.split(`.`)],fo=[316,e=>[e,e,e,e,e],[``,``,``,``,``,``,``,``,``,``,``,``,``,``]],po=[317,e=>[e,e,Promise,e,e,Promise,e,e,Generator],[``,``,``,``,``,``,``,``,``,``,``]],mo=[318,(e,t)=>[t,t,Promise,e,t,Generator,e,e,Promise,e,e,Generator],[``,``,``,``,``,``,``,``,``,``,``,``,``,``,``]],ho=[319,()=>[po,mo],[``,``,``]],go=[320,(e,t,n,r)=>[t,ho,r,n,n,Promise,e,n,Generator],[``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``]],_o=[321,()=>[za],[``,``,``]],vo=[322,()=>[Int32Array,Uint32Array],[``,``]],yo=[323,e=>[e,ArrayLike,ArrayBufferLike,e,ArrayBufferLike,e],[``,``,``,``,``,``,``,``,``,``,``,``,``]],bo=[324,(e,t)=>[vo,e,t,$],[``,``,``,``,``,``,``,``]],xo=[325,(e,t,n)=>[ro,ro,Z,Fa,$,vo,e,yo,e,t,bo,Int32Array,n,$,La,$,Uint8Array,_o,$,La],`..........................................`.split(`.`)],So=[326,()=>[Y,Y,Y],[``,``,``,``,``,``,``,``,``,``,``,``,``]],Co=[327,e=>[X,Z,Y,X,Z,Y,e,qo,Disposable],[``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``]],wo=[328,()=>[X],[``,``]],To=[329,()=>[Z,ls,$o],[``,``,``,``]],X=[330,()=>[ls,ro,xo,oo,W,$,hs,Jo,G,ls,Map,Io,Vo,So,ro,oo,W,$,hs,Q,Uo,ls,Io,Vo,wo,To,Z,Z,qo,Q],`..............................................................................`.split(`.`)],Eo=[331,()=>[Oo,no,ao,W,$,hs,G,Oo,Map,no,ao,W,$,hs,Uo,Oo,Fo,Bo,X],`.....................................`.split(`.`)],Do=[332,()=>[Z,Z,Z,Z,co,Promise],[``,``,``,``,``,``,``,``]],Oo=[333,()=>[Eo,no,ao,W,$,hs,Wo,Z,os,Promise,Do,Z,ls],[``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``]],ko=[334,()=>[J,J,X,$],[``,``,``,``]],Ao=[335,()=>[J,q,X,$],[``,``,``,``]],jo=[336,()=>[q,q,X,$],[``,``,``,``]],Z=[337,()=>[ko,jo,Ao],[``,``,``]],Mo=[338,()=>[],[]],No=[339,()=>[Error,Z],[``,``]],Po=[340,()=>[Mo,Mo,No,so],[``,``,``,``]],Fo=[341,()=>[Oo,Po,Po,Promise],[``,``,``,``,``,``]],Io=[342,()=>[ls,Po],[``,``,``,``]],Lo=[343,()=>[],[]],Ro=[344,()=>[Error,Z],[``,``]],zo=[345,()=>[Lo,Lo,Ro,so],[``,``,``,``]],Bo=[346,()=>[Oo,zo,zo,Promise],[``,``,``,``,``,``,``]],Vo=[347,()=>[ls,zo,Bo],[``,``,``,``,``,``]],Ho=[352,()=>[],[``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``]],Uo=[354,()=>[Ho,G,Q],[``,``,``,``,``,``]],Wo=[355,()=>[],[``,``,``,``,``]],Go=[356,()=>[],[``,``,``,``,``,``]],Ko=[357,(e,t)=>[e,e,PromiseLike,t],[``,``,``,``,``,``,``,``,``,``]],Q=[358,()=>[Symbol.dispose],[``,``,``,``,``]],qo=[359,()=>[Symbol.dispose,Q],[``,``,``,``,``]],$=[360,(e,t,n,r)=>[t,t,n,n,t,n,r,t,t,n,n,t,n,r,t,r,n,n,r,$,e,e,Z,e,e,e,e,Z,e,e,Z,Z,qo,Q],`................................................................................`.split(`.`)],Jo=[363,(e,t,n,r,i)=>[Jo,e,e,n,t,n,r,Jo,go,t,t,Promise,Jo,e,Promise,e,Promise,Q,i,i,qo,Q],`.........................................`.split(`.`)],Yo=[364,e=>[e,Q],[``,``,``]],Xo=[366,(e,t)=>[e,e,Zo,t,e,t,so,t,Qo,e,t,so,e,t,$o,qo,Q],`.................................`.split(`.`)],Zo=[367,(e,t)=>[t,t,t,e,t,e,Xo],[``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``]],Qo=[368,(e,t)=>[t,t,t,so,e,e,Xo],[``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``,``]],$o=[369,(e,t)=>[e,Zo,t,Qo],[``,``,``,``,``,``]],$o=[370,()=>[Xo],[``]],es=[371,()=>[ts,ns,rs],[``,``,``]],ts=[372,()=>[Error],[``,``,``]],ns=[373,()=>[Z],[``,``,``,``,``]],rs=[374,()=>[Z],[``,``,``]],is=[375,()=>[X,ls,Z,Promise,ls,Z,Z,Z,Z,Z,qo,Q],`...............................`.split(`.`)],as=[376,()=>[Z,os,Z,ls,X,Z,ls,Symbol.iterator,Z,Z,os,IteratorResult,Z,Z,os,IteratorResult,Z,os,IteratorResult,qo,Disposable,IterableIterator],`.......................................`.split(`.`)],os=[377,e=>[e,Z,$o],[``,``,``,``]],ss=[378,()=>[Z],[``]],cs=[379,e=>[X,G,$,W,$,ro,oo,Jo,X,ro,oo,G,$,W,$,Q,Symbol.dispose,Q,e,e,q,J,q,q,Ra,q,jo,q,J,ko,xo,Q],`..............................................................`.split(`.`)],ls=[380,(e,t)=>[Z,X,G,$,W,$,ro,oo,cs,Z,Z,Z,Z,Z,Z,Uint32Array,Ba,bo,Z,Z,Z,ro,oo,G,$,W,$,X,Q,hs,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,ArrayBufferLike,Z,is,Z,Promise,is,Z,Error,Z,Ko,is,Z,lo,Z,Z,lo,Z,Z,lo,Z,Z,lo,Z,Z,lo,Z,Z,Z,Z,e,e,Co,Z,e,Co,Z,e,Z,Z,Z,Z,Z,Z,Uint8Array,$,Z,es,Z,Z,os,Promise,Z,Z,Z,Z,Z,Z,Z,ss,Z,Z,Z,Go,Z,Yo,os,Z,as,os,Z,ss,Z,Z,ss,Z,fo,Z,Z,Z,Z,os,Z,Z,Z,Z,os,Z,ss,Z,Z,os,Wo,Z,os,Error,Z,q,ss,Z,W,cs,Z,e,Z,so,e,Y,Z,lo,Z,Z,Z,Z,t,t,Zo,Z,Z,Qo,qo,uo,Q],`...............................................................................................................................................................................................................................................................................................................................................`.split(`.`)],us=[381,(e,t)=>[$a,e,t,t,Qa],[``,``,``,``,``,``,``,``]],ds=[382,e=>[us,e,us,Args,Result,Result,Promise],[``,``,``,``,``,``,``,``,``,``,``]],fs=[383,()=>[eo,eo,K,ds],[``,``,``,``,``]],ps=[384,()=>[fs],[``,``]],ms=[385,()=>[fs,fs,fs,fs],[``,``,``,``,``,``,``,``]],hs=[387,()=>[ro,W,ms,W,G,ps,G],`.........................`.split(`.`)];export{Ji as a,ia as c,wa as i,nn as l,is as n,Qi as o,X as r,ea as s,ls as t,rn as u};