You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
hy-screen-2.0/docs/assets/TopicSwitcher-3ee7ffcb-1784...

2 lines
86 KiB

var Fe=Object.defineProperty,Qe=Object.defineProperties;var Pe=Object.getOwnPropertyDescriptors;var ie=Object.getOwnPropertySymbols;var He=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable;var oe=(d,t,e)=>t in d?Fe(d,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):d[t]=e,ae=(d,t)=>{for(var e in t||(t={}))He.call(t,e)&&oe(d,e,t[e]);if(ie)for(var e of ie(t))ve.call(t,e)&&oe(d,e,t[e]);return d},ce=(d,t)=>Qe(d,Pe(t));import{ao as Ke,ap as ee,aq as Se,z as re,w as G,ar as Ae,as as v,p as Y,C as D,at as y,au as je,f as Ve,d as Ye,a as H,S as U,av as B,a6 as Be,a7 as X,V as O,aw as Xe,ax as Je,O as be,ay as ke,az as We,aA as qe,v as Le,aB as Me,R as te,m as ze,aC as W,L as _e,h as De,D as Ze,aD as $e,aE as et,b as tt,aF as st,H as nt,E as rt,a5 as At,G as q,_ as it,am as ot,Z as at,aG as ct,aH as ut,aI as lt,aJ as Ne,aK as ue,a8 as Ue,N as dt,aL as ft,aM as ht,aN as pt,u as gt,aO as mt,aP as Tt,aQ as Et,ad as Rt,aR as le,aS as de,aT as fe,aU as he,aa as wt,af as Ct,aV as xt,aW as It}from"./screen2Standard-9c6af3a2-1784074877048.js";import{_ as pe,a as ge}from"./index-bc047bb3-1784074877048.js";import{f as me}from"./townshipBoundaries-1b068bef-1784074877048.js";import{g as yt,o as K,c as j,a as S,F as St,y as Bt,n as Te,J as bt,t as Ee,j as kt}from"./index-1784074877048.js";class Lt{constructor(){this.events=new Map}on(t,e){let r=this.events.get(t);r||(r=new Set,this.events.set(t,r)),r.add(e)}off(t,e){const r=this.events.get(t);r&&(e?r.delete(e):this.events.delete(t))}emit(t,...e){const r=this.events.get(t);r&&r.forEach(s=>{s(...e)})}once(t,e){const r=(...s)=>{e(...s),this.off(t,r)};this.on(t,r)}}function Is(d,t=!1){const e=d[0].index!==null,r=new Set(Object.keys(d[0].attributes)),s=new Set(Object.keys(d[0].morphAttributes)),A={},n={},o=d[0].morphTargetsRelative,i=new re;let a=0;for(let c=0;c<d.length;++c){const u=d[c];let l=0;if(e!==(u.index!==null))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+c+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(const f in u.attributes){if(!r.has(f))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+c+'. All geometries must have compatible attributes; make sure "'+f+'" attribute exists among all geometries, or in none of them.'),null;A[f]===void 0&&(A[f]=[]),A[f].push(u.attributes[f]),l++}if(l!==r.size)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+c+". Make sure all geometries have the same number of attributes."),null;if(o!==u.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+c+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(const f in u.morphAttributes){if(!s.has(f))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+c+". .morphAttributes must be consistent throughout all geometries."),null;n[f]===void 0&&(n[f]=[]),n[f].push(u.morphAttributes[f])}if(t){let f;if(e)f=u.index.count;else if(u.attributes.position!==void 0)f=u.attributes.position.count;else return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+c+". The geometry must have either an index or a position attribute"),null;i.addGroup(a,f,c),a+=f}}if(e){let c=0;const u=[];for(let l=0;l<d.length;++l){const f=d[l].index;for(let h=0;h<f.count;++h)u.push(f.getX(h)+c);c+=d[l].attributes.position.count}i.setIndex(u)}for(const c in A){const u=Re(A[c]);if(!u)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+c+" attribute."),null;i.setAttribute(c,u)}for(const c in n){const u=n[c][0].length;if(u===0)break;i.morphAttributes=i.morphAttributes||{},i.morphAttributes[c]=[];for(let l=0;l<u;++l){const f=[];for(let g=0;g<n[c].length;++g)f.push(n[c][g][l]);const h=Re(f);if(!h)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+c+" morphAttribute."),null;i.morphAttributes[c].push(h)}}return i}function Re(d){let t,e,r,s=-1,A=0;for(let a=0;a<d.length;++a){const c=d[a];if(t===void 0&&(t=c.array.constructor),t!==c.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(e===void 0&&(e=c.itemSize),e!==c.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(r===void 0&&(r=c.normalized),r!==c.normalized)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;if(s===-1&&(s=c.gpuType),s!==c.gpuType)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."),null;A+=c.count*e}const n=new t(A),o=new G(n,e,r);let i=0;for(let a=0;a<d.length;++a){const c=d[a];if(c.isInterleavedBufferAttribute){const u=i/e;for(let l=0,f=c.count;l<f;l++)for(let h=0;h<e;h++){const g=c.getComponent(l,h);o.setComponent(l+u,h,g)}}else n.set(c.array,i);i+=c.count*e}return s!==void 0&&(o.gpuType=s),o}function we(d,t){if(t===Ke)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),d;if(t===ee||t===Se){let e=d.getIndex();if(e===null){const n=[],o=d.getAttribute("position");if(o!==void 0){for(let i=0;i<o.count;i++)n.push(i);d.setIndex(n),e=d.getIndex()}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),d}const r=e.count-2,s=[];if(t===ee)for(let n=1;n<=r;n++)s.push(e.getX(0)),s.push(e.getX(n)),s.push(e.getX(n+1));else for(let n=0;n<r;n++)n%2===0?(s.push(e.getX(n)),s.push(e.getX(n+1)),s.push(e.getX(n+2))):(s.push(e.getX(n+2)),s.push(e.getX(n+1)),s.push(e.getX(n)));s.length/3!==r&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const A=d.clone();return A.setIndex(s),A.clearGroups(),A}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",t),d}class Mt extends Ae{constructor(t){super(t),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new Gt(e)}),this.register(function(e){return new Yt(e)}),this.register(function(e){return new Xt(e)}),this.register(function(e){return new Jt(e)}),this.register(function(e){return new Qt(e)}),this.register(function(e){return new Pt(e)}),this.register(function(e){return new Ht(e)}),this.register(function(e){return new vt(e)}),this.register(function(e){return new Ot(e)}),this.register(function(e){return new Kt(e)}),this.register(function(e){return new Ft(e)}),this.register(function(e){return new Vt(e)}),this.register(function(e){return new jt(e)}),this.register(function(e){return new Nt(e)}),this.register(function(e){return new Wt(e)}),this.register(function(e){return new qt(e)})}load(t,e,r,s){const A=this;let n;if(this.resourcePath!=="")n=this.resourcePath;else if(this.path!==""){const a=v.extractUrlBase(t);n=v.resolveURL(a,this.path)}else n=v.extractUrlBase(t);this.manager.itemStart(t);const o=function(a){s?s(a):console.error(a),A.manager.itemError(t),A.manager.itemEnd(t)},i=new Y(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(t,function(a){try{A.parse(a,n,function(c){e(c),A.manager.itemEnd(t)},o)}catch(c){o(c)}},r,o)}setDRACOLoader(t){return this.dracoLoader=t,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(t){return this.ktx2Loader=t,this}setMeshoptDecoder(t){return this.meshoptDecoder=t,this}register(t){return this.pluginCallbacks.indexOf(t)===-1&&this.pluginCallbacks.push(t),this}unregister(t){return this.pluginCallbacks.indexOf(t)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(t),1),this}parse(t,e,r,s){let A;const n={},o={},i=new TextDecoder;if(typeof t=="string")A=JSON.parse(t);else if(t instanceof ArrayBuffer)if(i.decode(new Uint8Array(t,0,4))===Oe){try{n[T.KHR_BINARY_GLTF]=new zt(t)}catch(u){s&&s(u);return}A=JSON.parse(n[T.KHR_BINARY_GLTF].content)}else A=JSON.parse(i.decode(t));else A=t;if(A.asset===void 0||A.asset.version[0]<2){s&&s(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}const a=new cs(A,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});a.fileLoader.setRequestHeader(this.requestHeader);for(let c=0;c<this.pluginCallbacks.length;c++){const u=this.pluginCallbacks[c](a);u.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),o[u.name]=u,n[u.name]=!0}if(A.extensionsUsed)for(let c=0;c<A.extensionsUsed.length;++c){const u=A.extensionsUsed[c],l=A.extensionsRequired||[];switch(u){case T.KHR_MATERIALS_UNLIT:n[u]=new Ut;break;case T.KHR_DRACO_MESH_COMPRESSION:n[u]=new _t(A,this.dracoLoader);break;case T.KHR_TEXTURE_TRANSFORM:n[u]=new Zt;break;case T.KHR_MESH_QUANTIZATION:n[u]=new $t;break;default:l.indexOf(u)>=0&&o[u]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+u+'".')}}a.setExtensions(n),a.setPlugins(o),a.parse(r,s)}parseAsync(t,e){const r=this;return new Promise(function(s,A){r.parse(t,e,s,A)})}}function Dt(){let d={};return{get:function(t){return d[t]},add:function(t,e){d[t]=e},remove:function(t){delete d[t]},removeAll:function(){d={}}}}const T={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Nt{constructor(t){this.parser=t,this.name=T.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const t=this.parser,e=this.parser.json.nodes||[];for(let r=0,s=e.length;r<s;r++){const A=e[r];A.extensions&&A.extensions[this.name]&&A.extensions[this.name].light!==void 0&&t._addNodeRef(this.cache,A.extensions[this.name].light)}}_loadLight(t){const e=this.parser,r="light:"+t;let s=e.cache.get(r);if(s)return s;const A=e.json,i=((A.extensions&&A.extensions[this.name]||{}).lights||[])[t];let a;const c=new D(16777215);i.color!==void 0&&c.setRGB(i.color[0],i.color[1],i.color[2],y);const u=i.range!==void 0?i.range:0;switch(i.type){case"directional":a=new Ye(c),a.target.position.set(0,0,-1),a.add(a.target);break;case"point":a=new Ve(c),a.distance=u;break;case"spot":a=new je(c),a.distance=u,i.spot=i.spot||{},i.spot.innerConeAngle=i.spot.innerConeAngle!==void 0?i.spot.innerConeAngle:0,i.spot.outerConeAngle=i.spot.outerConeAngle!==void 0?i.spot.outerConeAngle:Math.PI/4,a.angle=i.spot.outerConeAngle,a.penumbra=1-i.spot.innerConeAngle/i.spot.outerConeAngle,a.target.position.set(0,0,-1),a.add(a.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+i.type)}return a.position.set(0,0,0),a.decay=2,M(a,i),i.intensity!==void 0&&(a.intensity=i.intensity),a.name=e.createUniqueName(i.name||"light_"+t),s=Promise.resolve(a),e.cache.add(r,s),s}getDependency(t,e){if(t==="light")return this._loadLight(e)}createNodeAttachment(t){const e=this,r=this.parser,A=r.json.nodes[t],o=(A.extensions&&A.extensions[this.name]||{}).light;return o===void 0?null:this._loadLight(o).then(function(i){return r._getNodeRef(e.cache,o,i)})}}class Ut{constructor(){this.name=T.KHR_MATERIALS_UNLIT}getMaterialType(){return H}extendParams(t,e,r){const s=[];t.color=new D(1,1,1),t.opacity=1;const A=e.pbrMetallicRoughness;if(A){if(Array.isArray(A.baseColorFactor)){const n=A.baseColorFactor;t.color.setRGB(n[0],n[1],n[2],y),t.opacity=n[3]}A.baseColorTexture!==void 0&&s.push(r.assignTexture(t,"map",A.baseColorTexture,U))}return Promise.all(s)}}class Ot{constructor(t){this.parser=t,this.name=T.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(t,e){const s=this.parser.json.materials[t];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const A=s.extensions[this.name].emissiveStrength;return A!==void 0&&(e.emissiveIntensity=A),Promise.resolve()}}class Gt{constructor(t){this.parser=t,this.name=T.KHR_MATERIALS_CLEARCOAT}getMaterialType(t){const r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:B}extendMaterialParams(t,e){const r=this.parser,s=r.json.materials[t];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const A=[],n=s.extensions[this.name];if(n.clearcoatFactor!==void 0&&(e.clearcoat=n.clearcoatFactor),n.clearcoatTexture!==void 0&&A.push(r.assignTexture(e,"clearcoatMap",n.clearcoatTexture)),n.clearcoatRoughnessFactor!==void 0&&(e.clearcoatRoughness=n.clearcoatRoughnessFactor),n.clearcoatRoughnessTexture!==void 0&&A.push(r.assignTexture(e,"clearcoatRoughnessMap",n.clearcoatRoughnessTexture)),n.clearcoatNormalTexture!==void 0&&(A.push(r.assignTexture(e,"clearcoatNormalMap",n.clearcoatNormalTexture)),n.clearcoatNormalTexture.scale!==void 0)){const o=n.clearcoatNormalTexture.scale;e.clearcoatNormalScale=new Be(o,o)}return Promise.all(A)}}class Ft{constructor(t){this.parser=t,this.name=T.KHR_MATERIALS_IRIDESCENCE}getMaterialType(t){const r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:B}extendMaterialParams(t,e){const r=this.parser,s=r.json.materials[t];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const A=[],n=s.extensions[this.name];return n.iridescenceFactor!==void 0&&(e.iridescence=n.iridescenceFactor),n.iridescenceTexture!==void 0&&A.push(r.assignTexture(e,"iridescenceMap",n.iridescenceTexture)),n.iridescenceIor!==void 0&&(e.iridescenceIOR=n.iridescenceIor),e.iridescenceThicknessRange===void 0&&(e.iridescenceThicknessRange=[100,400]),n.iridescenceThicknessMinimum!==void 0&&(e.iridescenceThicknessRange[0]=n.iridescenceThicknessMinimum),n.iridescenceThicknessMaximum!==void 0&&(e.iridescenceThicknessRange[1]=n.iridescenceThicknessMaximum),n.iridescenceThicknessTexture!==void 0&&A.push(r.assignTexture(e,"iridescenceThicknessMap",n.iridescenceThicknessTexture)),Promise.all(A)}}class Qt{constructor(t){this.parser=t,this.name=T.KHR_MATERIALS_SHEEN}getMaterialType(t){const r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:B}extendMaterialParams(t,e){const r=this.parser,s=r.json.materials[t];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const A=[];e.sheenColor=new D(0,0,0),e.sheenRoughness=0,e.sheen=1;const n=s.extensions[this.name];if(n.sheenColorFactor!==void 0){const o=n.sheenColorFactor;e.sheenColor.setRGB(o[0],o[1],o[2],y)}return n.sheenRoughnessFactor!==void 0&&(e.sheenRoughness=n.sheenRoughnessFactor),n.sheenColorTexture!==void 0&&A.push(r.assignTexture(e,"sheenColorMap",n.sheenColorTexture,U)),n.sheenRoughnessTexture!==void 0&&A.push(r.assignTexture(e,"sheenRoughnessMap",n.sheenRoughnessTexture)),Promise.all(A)}}class Pt{constructor(t){this.parser=t,this.name=T.KHR_MATERIALS_TRANSMISSION}getMaterialType(t){const r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:B}extendMaterialParams(t,e){const r=this.parser,s=r.json.materials[t];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const A=[],n=s.extensions[this.name];return n.transmissionFactor!==void 0&&(e.transmission=n.transmissionFactor),n.transmissionTexture!==void 0&&A.push(r.assignTexture(e,"transmissionMap",n.transmissionTexture)),Promise.all(A)}}class Ht{constructor(t){this.parser=t,this.name=T.KHR_MATERIALS_VOLUME}getMaterialType(t){const r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:B}extendMaterialParams(t,e){const r=this.parser,s=r.json.materials[t];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const A=[],n=s.extensions[this.name];e.thickness=n.thicknessFactor!==void 0?n.thicknessFactor:0,n.thicknessTexture!==void 0&&A.push(r.assignTexture(e,"thicknessMap",n.thicknessTexture)),e.attenuationDistance=n.attenuationDistance||1/0;const o=n.attenuationColor||[1,1,1];return e.attenuationColor=new D().setRGB(o[0],o[1],o[2],y),Promise.all(A)}}class vt{constructor(t){this.parser=t,this.name=T.KHR_MATERIALS_IOR}getMaterialType(t){const r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:B}extendMaterialParams(t,e){const s=this.parser.json.materials[t];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const A=s.extensions[this.name];return e.ior=A.ior!==void 0?A.ior:1.5,Promise.resolve()}}class Kt{constructor(t){this.parser=t,this.name=T.KHR_MATERIALS_SPECULAR}getMaterialType(t){const r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:B}extendMaterialParams(t,e){const r=this.parser,s=r.json.materials[t];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const A=[],n=s.extensions[this.name];e.specularIntensity=n.specularFactor!==void 0?n.specularFactor:1,n.specularTexture!==void 0&&A.push(r.assignTexture(e,"specularIntensityMap",n.specularTexture));const o=n.specularColorFactor||[1,1,1];return e.specularColor=new D().setRGB(o[0],o[1],o[2],y),n.specularColorTexture!==void 0&&A.push(r.assignTexture(e,"specularColorMap",n.specularColorTexture,U)),Promise.all(A)}}class jt{constructor(t){this.parser=t,this.name=T.EXT_MATERIALS_BUMP}getMaterialType(t){const r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:B}extendMaterialParams(t,e){const r=this.parser,s=r.json.materials[t];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const A=[],n=s.extensions[this.name];return e.bumpScale=n.bumpFactor!==void 0?n.bumpFactor:1,n.bumpTexture!==void 0&&A.push(r.assignTexture(e,"bumpMap",n.bumpTexture)),Promise.all(A)}}class Vt{constructor(t){this.parser=t,this.name=T.KHR_MATERIALS_ANISOTROPY}getMaterialType(t){const r=this.parser.json.materials[t];return!r.extensions||!r.extensions[this.name]?null:B}extendMaterialParams(t,e){const r=this.parser,s=r.json.materials[t];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();const A=[],n=s.extensions[this.name];return n.anisotropyStrength!==void 0&&(e.anisotropy=n.anisotropyStrength),n.anisotropyRotation!==void 0&&(e.anisotropyRotation=n.anisotropyRotation),n.anisotropyTexture!==void 0&&A.push(r.assignTexture(e,"anisotropyMap",n.anisotropyTexture)),Promise.all(A)}}class Yt{constructor(t){this.parser=t,this.name=T.KHR_TEXTURE_BASISU}loadTexture(t){const e=this.parser,r=e.json,s=r.textures[t];if(!s.extensions||!s.extensions[this.name])return null;const A=s.extensions[this.name],n=e.options.ktx2Loader;if(!n){if(r.extensionsRequired&&r.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(t,A.source,n)}}class Xt{constructor(t){this.parser=t,this.name=T.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(t){const e=this.name,r=this.parser,s=r.json,A=s.textures[t];if(!A.extensions||!A.extensions[e])return null;const n=A.extensions[e],o=s.images[n.source];let i=r.textureLoader;if(o.uri){const a=r.options.manager.getHandler(o.uri);a!==null&&(i=a)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(t,n.source,i);if(s.extensionsRequired&&s.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}}class Jt{constructor(t){this.parser=t,this.name=T.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(t){const e=this.name,r=this.parser,s=r.json,A=s.textures[t];if(!A.extensions||!A.extensions[e])return null;const n=A.extensions[e],o=s.images[n.source];let i=r.textureLoader;if(o.uri){const a=r.options.manager.getHandler(o.uri);a!==null&&(i=a)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(t,n.source,i);if(s.extensionsRequired&&s.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}}class Wt{constructor(t){this.name=T.EXT_MESHOPT_COMPRESSION,this.parser=t}loadBufferView(t){const e=this.parser.json,r=e.bufferViews[t];if(r.extensions&&r.extensions[this.name]){const s=r.extensions[this.name],A=this.parser.getDependency("buffer",s.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return A.then(function(o){const i=s.byteOffset||0,a=s.byteLength||0,c=s.count,u=s.byteStride,l=new Uint8Array(o,i,a);return n.decodeGltfBufferAsync?n.decodeGltfBufferAsync(c,u,l,s.mode,s.filter).then(function(f){return f.buffer}):n.ready.then(function(){const f=new ArrayBuffer(c*u);return n.decodeGltfBuffer(new Uint8Array(f),c,u,l,s.mode,s.filter),f})})}else return null}}class qt{constructor(t){this.name=T.EXT_MESH_GPU_INSTANCING,this.parser=t}createNodeMesh(t){const e=this.parser.json,r=e.nodes[t];if(!r.extensions||!r.extensions[this.name]||r.mesh===void 0)return null;const s=e.meshes[r.mesh];for(const a of s.primitives)if(a.mode!==C.TRIANGLES&&a.mode!==C.TRIANGLE_STRIP&&a.mode!==C.TRIANGLE_FAN&&a.mode!==void 0)return null;const n=r.extensions[this.name].attributes,o=[],i={};for(const a in n)o.push(this.parser.getDependency("accessor",n[a]).then(c=>(i[a]=c,i[a])));return o.length<1?null:(o.push(this.parser.createNodeMesh(t)),Promise.all(o).then(a=>{const c=a.pop(),u=c.isGroup?c.children:[c],l=a[0].count,f=[];for(const h of u){const g=new X,p=new O,m=new Ue,E=new O(1,1,1),w=new Xe(h.geometry,h.material,l);for(let R=0;R<l;R++)i.TRANSLATION&&p.fromBufferAttribute(i.TRANSLATION,R),i.ROTATION&&m.fromBufferAttribute(i.ROTATION,R),i.SCALE&&E.fromBufferAttribute(i.SCALE,R),w.setMatrixAt(R,g.compose(p,m,E));for(const R in i)if(R==="_COLOR_0"){const I=i[R];w.instanceColor=new Je(I.array,I.itemSize,I.normalized)}else R!=="TRANSLATION"&&R!=="ROTATION"&&R!=="SCALE"&&h.geometry.setAttribute(R,i[R]);be.prototype.copy.call(w,h),this.parser.assignFinalMaterial(w),f.push(w)}return c.isGroup?(c.clear(),c.add(...f),c):f[0]}))}}const Oe="glTF",P=12,Ce={JSON:1313821514,BIN:5130562};class zt{constructor(t){this.name=T.KHR_BINARY_GLTF,this.content=null,this.body=null;const e=new DataView(t,0,P),r=new TextDecoder;if(this.header={magic:r.decode(new Uint8Array(t.slice(0,4))),version:e.getUint32(4,!0),length:e.getUint32(8,!0)},this.header.magic!==Oe)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const s=this.header.length-P,A=new DataView(t,P);let n=0;for(;n<s;){const o=A.getUint32(n,!0);n+=4;const i=A.getUint32(n,!0);if(n+=4,i===Ce.JSON){const a=new Uint8Array(t,P+n,o);this.content=r.decode(a)}else if(i===Ce.BIN){const a=P+n;this.body=t.slice(a,a+o)}n+=o}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class _t{constructor(t,e){if(!e)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=T.KHR_DRACO_MESH_COMPRESSION,this.json=t,this.dracoLoader=e,this.dracoLoader.preload()}decodePrimitive(t,e){const r=this.json,s=this.dracoLoader,A=t.extensions[this.name].bufferView,n=t.extensions[this.name].attributes,o={},i={},a={};for(const c in n){const u=se[c]||c.toLowerCase();o[u]=n[c]}for(const c in t.attributes){const u=se[c]||c.toLowerCase();if(n[c]!==void 0){const l=r.accessors[t.attributes[c]],f=F[l.componentType];a[u]=f.name,i[u]=l.normalized===!0}}return e.getDependency("bufferView",A).then(function(c){return new Promise(function(u,l){s.decodeDracoFile(c,function(f){for(const h in f.attributes){const g=f.attributes[h],p=i[h];p!==void 0&&(g.normalized=p)}u(f)},o,a,y,l)})})}}class Zt{constructor(){this.name=T.KHR_TEXTURE_TRANSFORM}extendTexture(t,e){return(e.texCoord===void 0||e.texCoord===t.channel)&&e.offset===void 0&&e.rotation===void 0&&e.scale===void 0||(t=t.clone(),e.texCoord!==void 0&&(t.channel=e.texCoord),e.offset!==void 0&&t.offset.fromArray(e.offset),e.rotation!==void 0&&(t.rotation=e.rotation),e.scale!==void 0&&t.repeat.fromArray(e.scale),t.needsUpdate=!0),t}}class $t{constructor(){this.name=T.KHR_MESH_QUANTIZATION}}class Ge extends xt{constructor(t,e,r,s){super(t,e,r,s)}copySampleValue_(t){const e=this.resultBuffer,r=this.sampleValues,s=this.valueSize,A=t*s*3+s;for(let n=0;n!==s;n++)e[n]=r[A+n];return e}interpolate_(t,e,r,s){const A=this.resultBuffer,n=this.sampleValues,o=this.valueSize,i=o*2,a=o*3,c=s-e,u=(r-e)/c,l=u*u,f=l*u,h=t*a,g=h-a,p=-2*f+3*l,m=f-l,E=1-p,w=m-l+u;for(let R=0;R!==o;R++){const I=n[g+R+o],b=n[g+R+i]*c,x=n[h+R+o],Q=n[h+R]*c;A[R]=E*I+w*b+p*x+m*Q}return A}}const es=new Ue;class ts extends Ge{interpolate_(t,e,r,s){const A=super.interpolate_(t,e,r,s);return es.fromArray(A).normalize().toArray(A),A}}const C={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},F={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},xe={9728:dt,9729:Le,9984:ft,9985:ht,9986:pt,9987:Me},Ie={33071:gt,33648:mt,10497:te},z={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},se={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},L={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},ss={CUBICSPLINE:void 0,LINEAR:Ne,STEP:Tt},_={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function ns(d){return d.DefaultMaterial===void 0&&(d.DefaultMaterial=new De({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:Et})),d.DefaultMaterial}function N(d,t,e){for(const r in e.extensions)d[r]===void 0&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[r]=e.extensions[r])}function M(d,t){t.extras!==void 0&&(typeof t.extras=="object"?Object.assign(d.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function rs(d,t,e){let r=!1,s=!1,A=!1;for(let a=0,c=t.length;a<c;a++){const u=t[a];if(u.POSITION!==void 0&&(r=!0),u.NORMAL!==void 0&&(s=!0),u.COLOR_0!==void 0&&(A=!0),r&&s&&A)break}if(!r&&!s&&!A)return Promise.resolve(d);const n=[],o=[],i=[];for(let a=0,c=t.length;a<c;a++){const u=t[a];if(r){const l=u.POSITION!==void 0?e.getDependency("accessor",u.POSITION):d.attributes.position;n.push(l)}if(s){const l=u.NORMAL!==void 0?e.getDependency("accessor",u.NORMAL):d.attributes.normal;o.push(l)}if(A){const l=u.COLOR_0!==void 0?e.getDependency("accessor",u.COLOR_0):d.attributes.color;i.push(l)}}return Promise.all([Promise.all(n),Promise.all(o),Promise.all(i)]).then(function(a){const c=a[0],u=a[1],l=a[2];return r&&(d.morphAttributes.position=c),s&&(d.morphAttributes.normal=u),A&&(d.morphAttributes.color=l),d.morphTargetsRelative=!0,d})}function As(d,t){if(d.updateMorphTargets(),t.weights!==void 0)for(let e=0,r=t.weights.length;e<r;e++)d.morphTargetInfluences[e]=t.weights[e];if(t.extras&&Array.isArray(t.extras.targetNames)){const e=t.extras.targetNames;if(d.morphTargetInfluences.length===e.length){d.morphTargetDictionary={};for(let r=0,s=e.length;r<s;r++)d.morphTargetDictionary[e[r]]=r}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function is(d){let t;const e=d.extensions&&d.extensions[T.KHR_DRACO_MESH_COMPRESSION];if(e?t="draco:"+e.bufferView+":"+e.indices+":"+Z(e.attributes):t=d.indices+":"+Z(d.attributes)+":"+d.mode,d.targets!==void 0)for(let r=0,s=d.targets.length;r<s;r++)t+=":"+Z(d.targets[r]);return t}function Z(d){let t="";const e=Object.keys(d).sort();for(let r=0,s=e.length;r<s;r++)t+=e[r]+":"+d[e[r]]+";";return t}function ne(d){switch(d){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}function os(d){return d.search(/\.jpe?g($|\?)/i)>0||d.search(/^data\:image\/jpeg/)===0?"image/jpeg":d.search(/\.webp($|\?)/i)>0||d.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}const as=new X;class cs{constructor(t={},e={}){this.json=t,this.extensions={},this.plugins={},this.options=e,this.cache=new Dt,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let r=!1,s=!1,A=-1;typeof navigator!="undefined"&&(r=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,s=navigator.userAgent.indexOf("Firefox")>-1,A=s?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap=="undefined"||r||s&&A<98?this.textureLoader=new ke(this.options.manager):this.textureLoader=new We(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new Y(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(t){this.extensions=t}setPlugins(t){this.plugins=t}parse(t,e){const r=this,s=this.json,A=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(n){return n._markDefs&&n._markDefs()}),Promise.all(this._invokeAll(function(n){return n.beforeRoot&&n.beforeRoot()})).then(function(){return Promise.all([r.getDependencies("scene"),r.getDependencies("animation"),r.getDependencies("camera")])}).then(function(n){const o={scene:n[0][s.scene||0],scenes:n[0],animations:n[1],cameras:n[2],asset:s.asset,parser:r,userData:{}};return N(A,o,s),M(o,s),Promise.all(r._invokeAll(function(i){return i.afterRoot&&i.afterRoot(o)})).then(function(){t(o)})}).catch(e)}_markDefs(){const t=this.json.nodes||[],e=this.json.skins||[],r=this.json.meshes||[];for(let s=0,A=e.length;s<A;s++){const n=e[s].joints;for(let o=0,i=n.length;o<i;o++)t[n[o]].isBone=!0}for(let s=0,A=t.length;s<A;s++){const n=t[s];n.mesh!==void 0&&(this._addNodeRef(this.meshCache,n.mesh),n.skin!==void 0&&(r[n.mesh].isSkinnedMesh=!0)),n.camera!==void 0&&this._addNodeRef(this.cameraCache,n.camera)}}_addNodeRef(t,e){e!==void 0&&(t.refs[e]===void 0&&(t.refs[e]=t.uses[e]=0),t.refs[e]++)}_getNodeRef(t,e,r){if(t.refs[e]<=1)return r;const s=r.clone(),A=(n,o)=>{const i=this.associations.get(n);i!=null&&this.associations.set(o,i);for(const[a,c]of n.children.entries())A(c,o.children[a])};return A(r,s),s.name+="_instance_"+t.uses[e]++,s}_invokeOne(t){const e=Object.values(this.plugins);e.push(this);for(let r=0;r<e.length;r++){const s=t(e[r]);if(s)return s}return null}_invokeAll(t){const e=Object.values(this.plugins);e.unshift(this);const r=[];for(let s=0;s<e.length;s++){const A=t(e[s]);A&&r.push(A)}return r}getDependency(t,e){const r=t+":"+e;let s=this.cache.get(r);if(!s){switch(t){case"scene":s=this.loadScene(e);break;case"node":s=this._invokeOne(function(A){return A.loadNode&&A.loadNode(e)});break;case"mesh":s=this._invokeOne(function(A){return A.loadMesh&&A.loadMesh(e)});break;case"accessor":s=this.loadAccessor(e);break;case"bufferView":s=this._invokeOne(function(A){return A.loadBufferView&&A.loadBufferView(e)});break;case"buffer":s=this.loadBuffer(e);break;case"material":s=this._invokeOne(function(A){return A.loadMaterial&&A.loadMaterial(e)});break;case"texture":s=this._invokeOne(function(A){return A.loadTexture&&A.loadTexture(e)});break;case"skin":s=this.loadSkin(e);break;case"animation":s=this._invokeOne(function(A){return A.loadAnimation&&A.loadAnimation(e)});break;case"camera":s=this.loadCamera(e);break;default:if(s=this._invokeOne(function(A){return A!=this&&A.getDependency&&A.getDependency(t,e)}),!s)throw new Error("Unknown type: "+t);break}this.cache.add(r,s)}return s}getDependencies(t){let e=this.cache.get(t);if(!e){const r=this,s=this.json[t+(t==="mesh"?"es":"s")]||[];e=Promise.all(s.map(function(A,n){return r.getDependency(t,n)})),this.cache.add(t,e)}return e}loadBuffer(t){const e=this.json.buffers[t],r=this.fileLoader;if(e.type&&e.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+e.type+" buffer type is not supported.");if(e.uri===void 0&&t===0)return Promise.resolve(this.extensions[T.KHR_BINARY_GLTF].body);const s=this.options;return new Promise(function(A,n){r.load(v.resolveURL(e.uri,s.path),A,void 0,function(){n(new Error('THREE.GLTFLoader: Failed to load buffer "'+e.uri+'".'))})})}loadBufferView(t){const e=this.json.bufferViews[t];return this.getDependency("buffer",e.buffer).then(function(r){const s=e.byteLength||0,A=e.byteOffset||0;return r.slice(A,A+s)})}loadAccessor(t){const e=this,r=this.json,s=this.json.accessors[t];if(s.bufferView===void 0&&s.sparse===void 0){const n=z[s.type],o=F[s.componentType],i=s.normalized===!0,a=new o(s.count*n);return Promise.resolve(new G(a,n,i))}const A=[];return s.bufferView!==void 0?A.push(this.getDependency("bufferView",s.bufferView)):A.push(null),s.sparse!==void 0&&(A.push(this.getDependency("bufferView",s.sparse.indices.bufferView)),A.push(this.getDependency("bufferView",s.sparse.values.bufferView))),Promise.all(A).then(function(n){const o=n[0],i=z[s.type],a=F[s.componentType],c=a.BYTES_PER_ELEMENT,u=c*i,l=s.byteOffset||0,f=s.bufferView!==void 0?r.bufferViews[s.bufferView].byteStride:void 0,h=s.normalized===!0;let g,p;if(f&&f!==u){const m=Math.floor(l/f),E="InterleavedBuffer:"+s.bufferView+":"+s.componentType+":"+m+":"+s.count;let w=e.cache.get(E);w||(g=new a(o,m*f,s.count*f/c),w=new qe(g,f/c),e.cache.add(E,w)),p=new Rt(w,i,l%f/c,h)}else o===null?g=new a(s.count*i):g=new a(o,l,s.count*i),p=new G(g,i,h);if(s.sparse!==void 0){const m=z.SCALAR,E=F[s.sparse.indices.componentType],w=s.sparse.indices.byteOffset||0,R=s.sparse.values.byteOffset||0,I=new E(n[1],w,s.sparse.count*m),b=new a(n[2],R,s.sparse.count*i);o!==null&&(p=new G(p.array.slice(),p.itemSize,p.normalized));for(let x=0,Q=I.length;x<Q;x++){const k=I[x];if(p.setX(k,b[x*i]),i>=2&&p.setY(k,b[x*i+1]),i>=3&&p.setZ(k,b[x*i+2]),i>=4&&p.setW(k,b[x*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return p})}loadTexture(t){const e=this.json,r=this.options,A=e.textures[t].source,n=e.images[A];let o=this.textureLoader;if(n.uri){const i=r.manager.getHandler(n.uri);i!==null&&(o=i)}return this.loadTextureImage(t,A,o)}loadTextureImage(t,e,r){const s=this,A=this.json,n=A.textures[t],o=A.images[e],i=(o.uri||o.bufferView)+":"+n.sampler;if(this.textureCache[i])return this.textureCache[i];const a=this.loadImageSource(e,r).then(function(c){c.flipY=!1,c.name=n.name||o.name||"",c.name===""&&typeof o.uri=="string"&&o.uri.startsWith("data:image/")===!1&&(c.name=o.uri);const l=(A.samplers||{})[n.sampler]||{};return c.magFilter=xe[l.magFilter]||Le,c.minFilter=xe[l.minFilter]||Me,c.wrapS=Ie[l.wrapS]||te,c.wrapT=Ie[l.wrapT]||te,s.associations.set(c,{textures:t}),c}).catch(function(){return null});return this.textureCache[i]=a,a}loadImageSource(t,e){const r=this,s=this.json,A=this.options;if(this.sourceCache[t]!==void 0)return this.sourceCache[t].then(u=>u.clone());const n=s.images[t],o=self.URL||self.webkitURL;let i=n.uri||"",a=!1;if(n.bufferView!==void 0)i=r.getDependency("bufferView",n.bufferView).then(function(u){a=!0;const l=new Blob([u],{type:n.mimeType});return i=o.createObjectURL(l),i});else if(n.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+t+" is missing URI and bufferView");const c=Promise.resolve(i).then(function(u){return new Promise(function(l,f){let h=l;e.isImageBitmapLoader===!0&&(h=function(g){const p=new le(g);p.needsUpdate=!0,l(p)}),e.load(v.resolveURL(u,A.path),h,void 0,f)})}).then(function(u){return a===!0&&o.revokeObjectURL(i),u.userData.mimeType=n.mimeType||os(n.uri),u}).catch(function(u){throw console.error("THREE.GLTFLoader: Couldn't load texture",i),u});return this.sourceCache[t]=c,c}assignTexture(t,e,r,s){const A=this;return this.getDependency("texture",r.index).then(function(n){if(!n)return null;if(r.texCoord!==void 0&&r.texCoord>0&&(n=n.clone(),n.channel=r.texCoord),A.extensions[T.KHR_TEXTURE_TRANSFORM]){const o=r.extensions!==void 0?r.extensions[T.KHR_TEXTURE_TRANSFORM]:void 0;if(o){const i=A.associations.get(n);n=A.extensions[T.KHR_TEXTURE_TRANSFORM].extendTexture(n,o),A.associations.set(n,i)}}return s!==void 0&&(n.colorSpace=s),t[e]=n,n})}assignFinalMaterial(t){const e=t.geometry;let r=t.material;const s=e.attributes.tangent===void 0,A=e.attributes.color!==void 0,n=e.attributes.normal===void 0;if(t.isPoints){const o="PointsMaterial:"+r.uuid;let i=this.cache.get(o);i||(i=new ze,W.prototype.copy.call(i,r),i.color.copy(r.color),i.map=r.map,i.sizeAttenuation=!1,this.cache.add(o,i)),r=i}else if(t.isLine){const o="LineBasicMaterial:"+r.uuid;let i=this.cache.get(o);i||(i=new _e,W.prototype.copy.call(i,r),i.color.copy(r.color),i.map=r.map,this.cache.add(o,i)),r=i}if(s||A||n){let o="ClonedMaterial:"+r.uuid+":";s&&(o+="derivative-tangents:"),A&&(o+="vertex-colors:"),n&&(o+="flat-shading:");let i=this.cache.get(o);i||(i=r.clone(),A&&(i.vertexColors=!0),n&&(i.flatShading=!0),s&&(i.normalScale&&(i.normalScale.y*=-1),i.clearcoatNormalScale&&(i.clearcoatNormalScale.y*=-1)),this.cache.add(o,i),this.associations.set(i,this.associations.get(r))),r=i}t.material=r}getMaterialType(){return De}loadMaterial(t){const e=this,r=this.json,s=this.extensions,A=r.materials[t];let n;const o={},i=A.extensions||{},a=[];if(i[T.KHR_MATERIALS_UNLIT]){const u=s[T.KHR_MATERIALS_UNLIT];n=u.getMaterialType(),a.push(u.extendParams(o,A,e))}else{const u=A.pbrMetallicRoughness||{};if(o.color=new D(1,1,1),o.opacity=1,Array.isArray(u.baseColorFactor)){const l=u.baseColorFactor;o.color.setRGB(l[0],l[1],l[2],y),o.opacity=l[3]}u.baseColorTexture!==void 0&&a.push(e.assignTexture(o,"map",u.baseColorTexture,U)),o.metalness=u.metallicFactor!==void 0?u.metallicFactor:1,o.roughness=u.roughnessFactor!==void 0?u.roughnessFactor:1,u.metallicRoughnessTexture!==void 0&&(a.push(e.assignTexture(o,"metalnessMap",u.metallicRoughnessTexture)),a.push(e.assignTexture(o,"roughnessMap",u.metallicRoughnessTexture))),n=this._invokeOne(function(l){return l.getMaterialType&&l.getMaterialType(t)}),a.push(Promise.all(this._invokeAll(function(l){return l.extendMaterialParams&&l.extendMaterialParams(t,o)})))}A.doubleSided===!0&&(o.side=Ze);const c=A.alphaMode||_.OPAQUE;if(c===_.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,c===_.MASK&&(o.alphaTest=A.alphaCutoff!==void 0?A.alphaCutoff:.5)),A.normalTexture!==void 0&&n!==H&&(a.push(e.assignTexture(o,"normalMap",A.normalTexture)),o.normalScale=new Be(1,1),A.normalTexture.scale!==void 0)){const u=A.normalTexture.scale;o.normalScale.set(u,u)}if(A.occlusionTexture!==void 0&&n!==H&&(a.push(e.assignTexture(o,"aoMap",A.occlusionTexture)),A.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=A.occlusionTexture.strength)),A.emissiveFactor!==void 0&&n!==H){const u=A.emissiveFactor;o.emissive=new D().setRGB(u[0],u[1],u[2],y)}return A.emissiveTexture!==void 0&&n!==H&&a.push(e.assignTexture(o,"emissiveMap",A.emissiveTexture,U)),Promise.all(a).then(function(){const u=new n(o);return A.name&&(u.name=A.name),M(u,A),e.associations.set(u,{materials:t}),A.extensions&&N(s,u,A),u})}createUniqueName(t){const e=$e.sanitizeNodeName(t||"");return e in this.nodeNamesUsed?e+"_"+ ++this.nodeNamesUsed[e]:(this.nodeNamesUsed[e]=0,e)}loadGeometries(t){const e=this,r=this.extensions,s=this.primitiveCache;function A(o){return r[T.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(o,e).then(function(i){return ye(i,o,e)})}const n=[];for(let o=0,i=t.length;o<i;o++){const a=t[o],c=is(a),u=s[c];if(u)n.push(u.promise);else{let l;a.extensions&&a.extensions[T.KHR_DRACO_MESH_COMPRESSION]?l=A(a):l=ye(new re,a,e),s[c]={primitive:a,promise:l},n.push(l)}}return Promise.all(n)}loadMesh(t){const e=this,r=this.json,s=this.extensions,A=r.meshes[t],n=A.primitives,o=[];for(let i=0,a=n.length;i<a;i++){const c=n[i].material===void 0?ns(this.cache):this.getDependency("material",n[i].material);o.push(c)}return o.push(e.loadGeometries(n)),Promise.all(o).then(function(i){const a=i.slice(0,i.length-1),c=i[i.length-1],u=[];for(let f=0,h=c.length;f<h;f++){const g=c[f],p=n[f];let m;const E=a[f];if(p.mode===C.TRIANGLES||p.mode===C.TRIANGLE_STRIP||p.mode===C.TRIANGLE_FAN||p.mode===void 0)m=A.isSkinnedMesh===!0?new et(g,E):new tt(g,E),m.isSkinnedMesh===!0&&m.normalizeSkinWeights(),p.mode===C.TRIANGLE_STRIP?m.geometry=we(m.geometry,Se):p.mode===C.TRIANGLE_FAN&&(m.geometry=we(m.geometry,ee));else if(p.mode===C.LINES)m=new st(g,E);else if(p.mode===C.LINE_STRIP)m=new nt(g,E);else if(p.mode===C.LINE_LOOP)m=new rt(g,E);else if(p.mode===C.POINTS)m=new At(g,E);else throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+p.mode);Object.keys(m.geometry.morphAttributes).length>0&&As(m,A),m.name=e.createUniqueName(A.name||"mesh_"+t),M(m,A),p.extensions&&N(s,m,p),e.assignFinalMaterial(m),u.push(m)}for(let f=0,h=u.length;f<h;f++)e.associations.set(u[f],{meshes:t,primitives:f});if(u.length===1)return A.extensions&&N(s,u[0],A),u[0];const l=new q;A.extensions&&N(s,l,A),e.associations.set(l,{meshes:t});for(let f=0,h=u.length;f<h;f++)l.add(u[f]);return l})}loadCamera(t){let e;const r=this.json.cameras[t],s=r[r.type];if(!s){console.warn("THREE.GLTFLoader: Missing camera parameters.");return}return r.type==="perspective"?e=new it(ot.radToDeg(s.yfov),s.aspectRatio||1,s.znear||1,s.zfar||2e6):r.type==="orthographic"&&(e=new at(-s.xmag,s.xmag,s.ymag,-s.ymag,s.znear,s.zfar)),r.name&&(e.name=this.createUniqueName(r.name)),M(e,r),Promise.resolve(e)}loadSkin(t){const e=this.json.skins[t],r=[];for(let s=0,A=e.joints.length;s<A;s++)r.push(this._loadNodeShallow(e.joints[s]));return e.inverseBindMatrices!==void 0?r.push(this.getDependency("accessor",e.inverseBindMatrices)):r.push(null),Promise.all(r).then(function(s){const A=s.pop(),n=s,o=[],i=[];for(let a=0,c=n.length;a<c;a++){const u=n[a];if(u){o.push(u);const l=new X;A!==null&&l.fromArray(A.array,a*16),i.push(l)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',e.joints[a])}return new ct(o,i)})}loadAnimation(t){const e=this.json,r=this,s=e.animations[t],A=s.name?s.name:"animation_"+t,n=[],o=[],i=[],a=[],c=[];for(let u=0,l=s.channels.length;u<l;u++){const f=s.channels[u],h=s.samplers[f.sampler],g=f.target,p=g.node,m=s.parameters!==void 0?s.parameters[h.input]:h.input,E=s.parameters!==void 0?s.parameters[h.output]:h.output;g.node!==void 0&&(n.push(this.getDependency("node",p)),o.push(this.getDependency("accessor",m)),i.push(this.getDependency("accessor",E)),a.push(h),c.push(g))}return Promise.all([Promise.all(n),Promise.all(o),Promise.all(i),Promise.all(a),Promise.all(c)]).then(function(u){const l=u[0],f=u[1],h=u[2],g=u[3],p=u[4],m=[];for(let E=0,w=l.length;E<w;E++){const R=l[E],I=f[E],b=h[E],x=g[E],Q=p[E];if(R===void 0)continue;R.updateMatrix&&R.updateMatrix();const k=r._createAnimationTracks(R,I,b,x,Q);if(k)for(let J=0;J<k.length;J++)m.push(k[J])}return new ut(A,void 0,m)})}createNodeMesh(t){const e=this.json,r=this,s=e.nodes[t];return s.mesh===void 0?null:r.getDependency("mesh",s.mesh).then(function(A){const n=r._getNodeRef(r.meshCache,s.mesh,A);return s.weights!==void 0&&n.traverse(function(o){if(o.isMesh)for(let i=0,a=s.weights.length;i<a;i++)o.morphTargetInfluences[i]=s.weights[i]}),n})}loadNode(t){const e=this.json,r=this,s=e.nodes[t],A=r._loadNodeShallow(t),n=[],o=s.children||[];for(let a=0,c=o.length;a<c;a++)n.push(r.getDependency("node",o[a]));const i=s.skin===void 0?Promise.resolve(null):r.getDependency("skin",s.skin);return Promise.all([A,Promise.all(n),i]).then(function(a){const c=a[0],u=a[1],l=a[2];l!==null&&c.traverse(function(f){f.isSkinnedMesh&&f.bind(l,as)});for(let f=0,h=u.length;f<h;f++)c.add(u[f]);return c})}_loadNodeShallow(t){const e=this.json,r=this.extensions,s=this;if(this.nodeCache[t]!==void 0)return this.nodeCache[t];const A=e.nodes[t],n=A.name?s.createUniqueName(A.name):"",o=[],i=s._invokeOne(function(a){return a.createNodeMesh&&a.createNodeMesh(t)});return i&&o.push(i),A.camera!==void 0&&o.push(s.getDependency("camera",A.camera).then(function(a){return s._getNodeRef(s.cameraCache,A.camera,a)})),s._invokeAll(function(a){return a.createNodeAttachment&&a.createNodeAttachment(t)}).forEach(function(a){o.push(a)}),this.nodeCache[t]=Promise.all(o).then(function(a){let c;if(A.isBone===!0?c=new lt:a.length>1?c=new q:a.length===1?c=a[0]:c=new be,c!==a[0])for(let u=0,l=a.length;u<l;u++)c.add(a[u]);if(A.name&&(c.userData.name=A.name,c.name=n),M(c,A),A.extensions&&N(r,c,A),A.matrix!==void 0){const u=new X;u.fromArray(A.matrix),c.applyMatrix4(u)}else A.translation!==void 0&&c.position.fromArray(A.translation),A.rotation!==void 0&&c.quaternion.fromArray(A.rotation),A.scale!==void 0&&c.scale.fromArray(A.scale);return s.associations.has(c)||s.associations.set(c,{}),s.associations.get(c).nodes=t,c}),this.nodeCache[t]}loadScene(t){const e=this.extensions,r=this.json.scenes[t],s=this,A=new q;r.name&&(A.name=s.createUniqueName(r.name)),M(A,r),r.extensions&&N(e,A,r);const n=r.nodes||[],o=[];for(let i=0,a=n.length;i<a;i++)o.push(s.getDependency("node",n[i]));return Promise.all(o).then(function(i){for(let c=0,u=i.length;c<u;c++)A.add(i[c]);const a=c=>{const u=new Map;for(const[l,f]of s.associations)(l instanceof W||l instanceof le)&&u.set(l,f);return c.traverse(l=>{const f=s.associations.get(l);f!=null&&u.set(l,f)}),u};return s.associations=a(A),A})}_createAnimationTracks(t,e,r,s,A){const n=[],o=t.name?t.name:t.uuid,i=[];L[A.path]===L.weights?t.traverse(function(l){l.morphTargetInfluences&&i.push(l.name?l.name:l.uuid)}):i.push(o);let a;switch(L[A.path]){case L.weights:a=fe;break;case L.rotation:a=he;break;case L.position:case L.scale:a=de;break;default:switch(r.itemSize){case 1:a=fe;break;case 2:case 3:default:a=de;break}break}const c=s.interpolation!==void 0?ss[s.interpolation]:Ne,u=this._getArrayFromAccessor(r);for(let l=0,f=i.length;l<f;l++){const h=new a(i[l]+"."+L[A.path],e.array,u,c);s.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(h),n.push(h)}return n}_getArrayFromAccessor(t){let e=t.array;if(t.normalized){const r=ne(e.constructor),s=new Float32Array(e.length);for(let A=0,n=e.length;A<n;A++)s[A]=e[A]*r;e=s}return e}_createCubicSplineTrackInterpolant(t){t.createInterpolant=function(r){const s=this instanceof he?ts:Ge;return new s(this.times,this.values,this.getValueSize()/3,r)},t.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function us(d,t,e){const r=t.attributes,s=new wt;if(r.POSITION!==void 0){const o=e.json.accessors[r.POSITION],i=o.min,a=o.max;if(i!==void 0&&a!==void 0){if(s.set(new O(i[0],i[1],i[2]),new O(a[0],a[1],a[2])),o.normalized){const c=ne(F[o.componentType]);s.min.multiplyScalar(c),s.max.multiplyScalar(c)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else return;const A=t.targets;if(A!==void 0){const o=new O,i=new O;for(let a=0,c=A.length;a<c;a++){const u=A[a];if(u.POSITION!==void 0){const l=e.json.accessors[u.POSITION],f=l.min,h=l.max;if(f!==void 0&&h!==void 0){if(i.setX(Math.max(Math.abs(f[0]),Math.abs(h[0]))),i.setY(Math.max(Math.abs(f[1]),Math.abs(h[1]))),i.setZ(Math.max(Math.abs(f[2]),Math.abs(h[2]))),l.normalized){const g=ne(F[l.componentType]);i.multiplyScalar(g)}o.max(i)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}s.expandByVector(o)}d.boundingBox=s;const n=new Ct;s.getCenter(n.center),n.radius=s.min.distanceTo(s.max)/2,d.boundingSphere=n}function ye(d,t,e){const r=t.attributes,s=[];function A(n,o){return e.getDependency("accessor",n).then(function(i){d.setAttribute(o,i)})}for(const n in r){const o=se[n]||n.toLowerCase();o in d.attributes||s.push(A(r[n],o))}if(t.indices!==void 0&&!d.index){const n=e.getDependency("accessor",t.indices).then(function(o){d.setIndex(o)});s.push(n)}return ue.workingColorSpace!==y&&"COLOR_0"in r&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${ue.workingColorSpace}" not supported.`),M(d,t),us(d,t,e),Promise.all(s).then(function(){return t.targets!==void 0?rs(d,t.targets,e):d})}const $=new WeakMap;class ls extends Ae{constructor(t){super(t),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(t){return this.decoderPath=t,this}setDecoderConfig(t){return this.decoderConfig=t,this}setWorkerLimit(t){return this.workerLimit=t,this}load(t,e,r,s){const A=new Y(this.manager);A.setPath(this.path),A.setResponseType("arraybuffer"),A.setRequestHeader(this.requestHeader),A.setWithCredentials(this.withCredentials),A.load(t,n=>{this.parse(n,e,s)},r,s)}parse(t,e,r=()=>{}){this.decodeDracoFile(t,e,null,null,U).catch(r)}decodeDracoFile(t,e,r,s,A=y,n=()=>{}){const o={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:s||this.defaultAttributeTypes,useUniqueIDs:!!r,vertexColorSpace:A};return this.decodeGeometry(t,o).then(e).catch(n)}decodeGeometry(t,e){const r=JSON.stringify(e);if($.has(t)){const i=$.get(t);if(i.key===r)return i.promise;if(t.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let s;const A=this.workerNextTaskID++,n=t.byteLength,o=this._getWorker(A,n).then(i=>(s=i,new Promise((a,c)=>{s._callbacks[A]={resolve:a,reject:c},s.postMessage({type:"decode",id:A,taskConfig:e,buffer:t},[t])}))).then(i=>this._createGeometry(i.geometry));return o.catch(()=>!0).then(()=>{s&&A&&this._releaseTask(s,A)}),$.set(t,{key:r,promise:o}),o}_createGeometry(t){const e=new re;t.index&&e.setIndex(new G(t.index.array,1));for(let r=0;r<t.attributes.length;r++){const s=t.attributes[r],A=s.name,n=s.array,o=s.itemSize,i=new G(n,o);A==="color"&&(this._assignVertexColorSpace(i,s.vertexColorSpace),i.normalized=!(n instanceof Float32Array)),e.setAttribute(A,i)}return e}_assignVertexColorSpace(t,e){if(e!==U)return;const r=new D;for(let s=0,A=t.count;s<A;s++)r.fromBufferAttribute(t,s).convertSRGBToLinear(),t.setXYZ(s,r.r,r.g,r.b)}_loadLibrary(t,e){const r=new Y(this.manager);return r.setPath(this.decoderPath),r.setResponseType(e),r.setWithCredentials(this.withCredentials),new Promise((s,A)=>{r.load(t,s,void 0,A)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const t=typeof WebAssembly!="object"||this.decoderConfig.type==="js",e=[];return t?e.push(this._loadLibrary("draco_decoder.js","text")):(e.push(this._loadLibrary("draco_wasm_wrapper.js","text")),e.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(e).then(r=>{const s=r[0];t||(this.decoderConfig.wasmBinary=r[1]);const A=ds.toString(),n=["/* draco decoder */",s,"","/* worker */",A.substring(A.indexOf("{")+1,A.lastIndexOf("}"))].join(`
`);this.workerSourceURL=URL.createObjectURL(new Blob([n]))}),this.decoderPending}_getWorker(t,e){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const s=new Worker(this.workerSourceURL);s._callbacks={},s._taskCosts={},s._taskLoad=0,s.postMessage({type:"init",decoderConfig:this.decoderConfig}),s.onmessage=function(A){const n=A.data;switch(n.type){case"decode":s._callbacks[n.id].resolve(n);break;case"error":s._callbacks[n.id].reject(n);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+n.type+'"')}},this.workerPool.push(s)}else this.workerPool.sort(function(s,A){return s._taskLoad>A._taskLoad?-1:1});const r=this.workerPool[this.workerPool.length-1];return r._taskCosts[t]=e,r._taskLoad+=e,r})}_releaseTask(t,e){t._taskLoad-=t._taskCosts[e],delete t._callbacks[e],delete t._taskCosts[e]}debug(){console.log("Task load: ",this.workerPool.map(t=>t._taskLoad))}dispose(){for(let t=0;t<this.workerPool.length;++t)this.workerPool[t].terminate();return this.workerPool.length=0,this.workerSourceURL!==""&&URL.revokeObjectURL(this.workerSourceURL),this}}function ds(){let d,t;onmessage=function(n){const o=n.data;switch(o.type){case"init":d=o.decoderConfig,t=new Promise(function(c){d.onModuleLoaded=function(u){c({draco:u})},DracoDecoderModule(d)});break;case"decode":const i=o.buffer,a=o.taskConfig;t.then(c=>{const u=c.draco,l=new u.Decoder;try{const f=e(u,l,new Int8Array(i),a),h=f.attributes.map(g=>g.array.buffer);f.index&&h.push(f.index.array.buffer),self.postMessage({type:"decode",id:o.id,geometry:f},h)}catch(f){console.error(f),self.postMessage({type:"error",id:o.id,error:f.message})}finally{u.destroy(l)}});break}};function e(n,o,i,a){const c=a.attributeIDs,u=a.attributeTypes;let l,f;const h=o.GetEncodedGeometryType(i);if(h===n.TRIANGULAR_MESH)l=new n.Mesh,f=o.DecodeArrayToMesh(i,i.byteLength,l);else if(h===n.POINT_CLOUD)l=new n.PointCloud,f=o.DecodeArrayToPointCloud(i,i.byteLength,l);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!f.ok()||l.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+f.error_msg());const g={index:null,attributes:[]};for(const p in c){const m=self[u[p]];let E,w;if(a.useUniqueIDs)w=c[p],E=o.GetAttributeByUniqueId(l,w);else{if(w=o.GetAttributeId(l,n[c[p]]),w===-1)continue;E=o.GetAttribute(l,w)}const R=s(n,o,l,p,m,E);p==="color"&&(R.vertexColorSpace=a.vertexColorSpace),g.attributes.push(R)}return h===n.TRIANGULAR_MESH&&(g.index=r(n,o,l)),n.destroy(l),g}function r(n,o,i){const c=i.num_faces()*3,u=c*4,l=n._malloc(u);o.GetTrianglesUInt32Array(i,u,l);const f=new Uint32Array(n.HEAPF32.buffer,l,c).slice();return n._free(l),{array:f,itemSize:1}}function s(n,o,i,a,c,u){const l=u.num_components(),h=i.num_points()*l,g=h*c.BYTES_PER_ELEMENT,p=A(n,c),m=n._malloc(g);o.GetAttributeDataArrayForAllPoints(i,u,p,g,m);const E=new c(n.HEAPF32.buffer,m,h).slice();return n._free(m),{name:a,array:E,itemSize:l}}function A(n,o){switch(o){case Float32Array:return n.DT_FLOAT32;case Int8Array:return n.DT_INT8;case Int16Array:return n.DT_INT16;case Int32Array:return n.DT_INT32;case Uint8Array:return n.DT_UINT8;case Uint16Array:return n.DT_UINT16;case Uint32Array:return n.DT_UINT32}}}let V={GLTFLoader:"GLTF",TextureLoader:"Texture",FontLoader:"Font",MMDLoader:"MMD",MTLLoader:"MTL",OBJLoader:"OBJ",PCDLoader:"PCD",FileLoader:"File",ImageLoader:"Image",ObjectLoader:"Object",MaterialLoader:"Material",CubeTextureLoader:"CubeTexture",RGBELoader:"RGBELoader",FBXLoader:"FBX"};const fs=Object.values(V);class ys extends Lt{constructor({dracoPath:t,cloneTextures:e=!1}={}){super(),this.dracoPath=t||"./draco/gltf/",this.cloneTextures=e,this.loaded=!1,this.itemsLoaded=0,this.itemsTotal=0,this.assets=[],this.loaders={},this.initDefaultLoader()}initManager(){const t=new It;return t.onProgress=(e,r,s)=>{this.itemsLoaded=r,this.itemsTotal=s,this.emit("onProgress",e,r,s)},t.onError=e=>{this.emit("onError",e)},t}initDefaultLoader(){[{loader:Mt,name:"GLTFLoader"},{loader:ke,name:"TextureLoader"}].map(t=>this.addLoader(t.loader,t.name))}initDraco(t){const e=new ls;e.setDecoderPath(this.dracoPath),e.preload(),t.setDRACOLoader(e)}addLoader(t,e=""){if(t.name&&V[e]){if(!this.loaders[e]){let s=new t(this.manager),A=e;s instanceof Ae&&(A==="GLTFLoader"&&this.initDraco(s),this.loaders[V[A]]=s)}}else throw new Error("请配置正确的加载器")}loadItem(t){return new Promise((e,r)=>{if(!this.loaders[t.type])throw new Error(`资源${t.path}没有配置加载器`);this.loaders[t.type].load(t.path,s=>{this.itemsLoaded++,this.emit("onProgress",t.path,this.itemsLoaded,this.itemsTotal),e(ce(ae({},t),{data:s}))},null,s=>{this.emit("onError",s),r(s)})})}loadAll(t){return this.itemsLoaded=0,this.itemsTotal=0,new Promise((e,r)=>{let s=this.matchType(t),A=[];this.itemsTotal=s.length,s.map(n=>{let o=this.loadItem(n);A.push(o)}),Promise.all(A).then(n=>{this.assets=n,this.loaded=!0,this.emit("onLoad"),e(n)}).catch(n=>{this.emit("onError",n),r(n)})})}matchType(t){return this.assets=t.map(e=>({type:fs.includes(e.type)?e.type:"",path:e.path,name:e.name,data:null})).filter(e=>{if(!e.type)throw new Error(`资源${e.path},type不正确`);return e.type}),this.assets}getResource(t){var r;let e=this.assets.find(s=>s.name===t);if(!e)throw new Error(`资源${t}不存在`);return this.cloneTextures&&e.type===V.TextureLoader&&((r=e.data)!=null&&r.isTexture)?e.data.clone():e.data}destroy(){this.off("onProgress"),this.off("onLoad"),this.off("onError"),this.assets=[]}}const Ss="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAD0SURBVHgB7dEBDcAgEACxZ/5NTgkg40JaC137mgesf57wDSlCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTEHKbcBaYZyb5dAAAAAElFTkSuQmCC",Bs=""+new URL("pathLine2-d4134d4b-balabala-1784074877048.png",import.meta.url).href,bs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADzSURBVHgB7dEBDcAwDMCw9vw5f4MRTTYF73/NC3bnBd+QIiRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSMwBQCIExogIrTYAAAAASUVORK5CYII=",ks="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMxSURBVHgB7dZBDcJQFADBB/kCuHAgAQckHAA3Tf27aIXsjIjNXv7bfgyQdB0gSwAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgbN2erwGaHACECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCErfv7M0CTA4AwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYCw9fj+BmhyABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABB2Amb1BS2MWc5zAAAAAElFTkSuQmCC",Ls=""+new URL("ocean-bg-8c848b8f-balabala-1784074877048.png",import.meta.url).href,Ms=""+new URL("rotationBorder1-2ce8e0ef-balabala-1784074877048.png",import.meta.url).href,Ds=""+new URL("rotationBorder2-7496b968-balabala-1784074877048.png",import.meta.url).href,Ns=""+new URL("chinaBlurLine-1a2cbc0f-balabala-1784074877048.png",import.meta.url).href,Us="data:image/png;base64,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",Os="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA4qSURBVHgB7Z3xVdvMEsX15bz/k1RAOoBUQDrAHUAHpgOgAkgF2BWAKwBXEKggUEGcCvx09d76M/LMalfalXal+zvnHhPFllbWXu3MrCT/UxTFtiCEiHwqCCEqNAghFmgQQizQIIRYoEEIsfCfgkThy5cvlU5OTopv375Vfx8dHe2WY9n++yQ2m00l8Pb2tnt9f3+vlr+8vFSvWGbeR8LyT8Eyb2dgAuj4+Ljq+MYUfQKTQDDNer3e/U26QYN4YkaFs7OznTG0EWBozCgDrVar3YhD3KFBHPjx40dxenpavUI58/z8XI0weIWIHRpEAUbAKHFxcRF8hDC5xX6OoWFyFFuu0haEYTDJcrmkWRRokD1CmcLE/0imTW5gEmmTbLcFuY1J+s3fyH1M6NelzTTLIZM3CDrWfD4vZrNZqw5mOtbr62v1OmRFyZhkv2jQdp9ubm52+zN1tlNUOVpsHx4etn/+/Nn68OvXr+3d3d22NNS27JDJ7yfaiLaizWi7L/f399V3lfp+RlRWje0sHOynpyfnDgID4f2Xl5dZGKJJZUi2LUPI6uTgA74DfC6nfQ2krBrbWji4v3//duoMxhT4zBhMoQn75msWfIcTM0pWjfWWjzHGNFL4yowsrmHYhIySVWOd5RpKYbRAfD7xOPuDysR+u1gsti7AKMhxcto/T2XV2EbhTOhqjOvr60mOFj7fpesIjGQe789p/xyVVWNVoaNfXV01Hkgc7KmGUV3kahQcg5F9t1k1VhTCo6aDN8HkMopcjDKy7zqrxn4QzlRNFRiGUnHkYpSRhF1ZNXYnl1EDyTeNEU/o/PiORz6aZNXYqsPf3t5aDwqS9JEmjEnKpTCCY5bpySqfxuJA2EYNhFNIwHPapzGpKezC/2V44sqjofP53HrdFHIRhlPDCwawzaFkeBJLv5G2kApf+MgnqrJU02iCcnAm+5Ju4zAi2GJb5hppqyk3wWUtGRy/NBvWlG+gdJtq26mPwrHSyCAvSa9RuBZIyzewnNdN5SdbWR7LccwTbXtaDTo/P1fNkcmQTClqigpw7BNsdzqNQaVKA5URVqnyF46hbXIxwQpXGg2xXWjIfGN8suUliVW4hm+EzRyc+BuvMjHJsA2wmYNX345fOMaJm2S4jWs5BytV0xKOtVaYSSCCGGbDqFho5ki45EdFkq20P3B1a5gvg+agpH4hmWTgftHvBm21cIZVFPqAdvIcaA6sv43ZzMGEnDLSEnf0nQHmwvrbmPbMJc5zUHUhOZfAxY89t6WfDWnlXJqD0qTNk+D2hx7bEX8jWjkXlxz0uKNUhtJuvuqx/Bt3A8g7pMrEQPEklZnQR6TQvMekPe7OSUl5pvcmUwNp4JNsvJVrt8qynEv5Siv/9pCPxFmxVqpjUk61lZa0Rz7hhl+pNt8xQImOGpmke9wjh1rhV4pHTko7wbyD6iotH8FjnyJtM+wKtdCKM+VUKOExTz2GWuFWplWtMKLE+KKo6Up6aHmkUCvcyqTZcoZWVAzBCFKoFaEIFGZFMAFDK6pPaddrBT4hh1mRlJizakXFllTVCtzvuq9ES5oYWlGxpUUuARP27iuREnNeiEj1Jek5WwFHkW4rkMq6TMypPqUl7IHy324rkEYPJuZU35IuQ0HfDLDu9h/WRo8+vhCK2pc2BxfgZN3+wxw9qJQU6YSdVGMoqpOkk3bHila7D0r1Z44e1NCSJg87VrT8PyTdvMLRg0pBWkWr7SjyqWjB+fn5wbKbm5uCkKHZbDbFz58/D5bP5/OiLV6O0mYuOe9BpSJpFMG/21zp6z2ClEPVwbLFYlG8vb0VhKQARpHlcvlhWWmOosxPijZ4OUqqEvCB01RqkvJkPD6oxboG2ShFRZdUafVN1r1CLCk5lxIiQlJgtVodLJvNZoUvzm6Swism51Sq0pJ1z/W4vVEKrx4fHwf/EijKpq5hlnOIJYVXpUEKQlKmXs0CvmGWk5Ok8IoPn6ZSV9cwy2kEwdxHmWt8WIYECPVmQlIGffTl5eXDMsyJSPN5Es4GqcPwiuSCVM1yNQhoHGakRIfVKyoXIcyq43GFr//KOTlI5SbpR3hccujGEOvk5ORg2Xq9LgjJCanPSn27TqNBpJLY8/NzQUhOSH3WpdzbaJDj42OnjRGSMlKflfq2hDUGq9eQmX9Quao+l+cyH2IdQRCjoWa8T72mTEgu1PMQ9O2mPMRqkPrkIHh9fS0IyRHp5N7JINJkCkcQkitSHtLJIFISQ4OQXJFuC5eipH28QiyYg9dfkVxB362bpKmSpRoECUzdIDQHyZ16BIQ+Xi9E7aMahAk6GSPv7+8Hyz5//qy+3zqC1OGjfUjuSH34+/fv6vtVg0jZPQ1Ccsc3UfcaQZiDkNyRDBIsBymn6gtCckY6yR8dHanvVw0ifUhKcAjJCWkE+fr1q/p+56eaMLwiY6Hel1tVsTgHQsZKvS+3StKbVkpIrvj0ZecqFg1CxkK9L7eqYtk+RMiYaGUQQggNQogVGoQQCzQIIRZoEEIsqAZhWZdMBVtfdzYIy75kLPjM8TmHWDQIGQs+fVk1SP2qRxqEjIV6X7bdCMgQi0yOICPI379/D5bZbiwhJAekK3dbjSC+N5YQkgOSQWw3AnqVeZueQkdI6vg+a8FrBKFBSO5Ifdj2OF3VINKHaBCSO1IfDjJRqK2ckJyQnsXbuszr+6BfQlJHmgNpPZPu+6BfQlJG+kWppqeFWg0ilb8YZpFckR6n2/RAdq8RBEi/OkVIDkgGafrFZm+DMA8hueKboBusP4Nb/xlo/JRu02coKkXhJ8yD/gw0YKJOxoCUoLv83majQaQkhnkIyQ2pz7r8YlqjQR4fH502RkjKSH1W6tsS1hisHJq2dRDLNX2OolJSPf8A6NsOn21e+dPTU9uVU9TgKvPmg/6LPu3yWad70tfr9cGyi4uLgpAckMIrqU9LOBlEmkw5OzsrCMkBqa82TRDu4zTU1OdD8G+GWVTqknJon7k858f+LJfLD/9GXXk2mxWEpIzUR31GD+DkpDKOa53oUNRQenh4OOi36Mse63DfGMMsKidJ1SvfS6W8Hl4thVmsZpFUkapXvuEVcHYTwywqJ0mTg57hFTTIRikqqk5OTjqHV5D374OsVquDZaxmkdSYz+cHy25uboo2eDkKSTmTdSplSck5wHLfdXmPIHgCRD3RQbJ+eXlZEJICUnK+WCyc7h6U8HaVlKxzFKFSEXKNgHlyu0ZIV/iWo8ggXwhFGZXTDgf9smOltd0HpVGE96tTQ0saPWCaDutMqjEU1VrS6BHgpB2+QcxFqCEU6YQdvlHX19e9fSkUBUUaPaDwDWNFi+pTmN+IGO53b6BU0bq9ve3tC6KmLfS1SKMH1H0lUkULtJm5pCgfabPms9ks1DbCNFQaRXilLxVbUr+7v78PuY0wK9KczMlDKpak/DdC5BKuwahe1WHCTsWQlphHqKCGWxmMIDUa9wXH+qKoaQphVJ1Ic3BhG64l7AGTJmri0kKrSFdxhN8B6UkSCLVY1aK6SgutAifm+wq/Ui3UYlWL6iqpaoW+FvHkG2dHtFDr6uoq1o5QIxf6To+hlVG8Hbq7uxN3iA95oHylnXDRxyJvO97KtVCL+QjlIy3v6OnK8fg7V3/IA8Djgzg/QjUpgZNs/J3EbLpExMoDNRJJFyKCHq/Q6GUjaj7CpJ3SpCXlPd9v1NuGxBJdz2cDKhNp5hjg9zH725gWT4Lz8/O+d5xKVOgLEpHnOzT1ujE1aQcs/1JaOXcgc0C9b7B6sLBkEizD/w3RJmp4af0CDNgvBtmoesEZTTJN2cwx8KOkBtuwWv7FF8VwazrCsdbMkUABZ9CNizdZGZi4j19aQg4SeXzU4A2wmoTzJOPVfD5P3RxQEo2gSSYmbZ4jMXNAyTREzUkALjngtVv5C8dQul3WkOCkcVKNUatbYMBaOBVAOHbSb1wCJOmJPvg8uQZVJT9txh3LWeHKT7ZKVeKl/SQbpd4DYGBeko9s+UYGUUGyDbMOyQAXPzLkSvv4aReomuOXQV6ZdOMq2SpcOAPxR3vSEx7zpIVUoIdbZUMpi0ZW1Q3bF47KCEeT4YURQXrskwHHMLPbG7JpaGNewtFkWGHiz3YSy7QKmVVjqzOUdneigblJv2rKNQCOWabzWFk1dieMFLbRBGBykUaJJ3R47Z7x/VEj87J8Vo39IHT+xWLReIAYdoUVjIHSrS2cAshFRnD1Q1aNFeUymtAo/X7XI5rMzaqxqnCmspWDaZRu3y0qT03GADgGI7tmLqvGNsol7No3CnMUXa6hFBhxYSSrxjoLE1UuZzyAORTe5vuvEB4h+XY1xsivjcuqsd5yiZkNuKxlqqOKCaOayrWGCYWqWTW2tXyMAlCBwWfGfA8K9g37CFO4jBYTM4ZRVo3tLNMhfDBmGcPIsj9SuJoCTCCU0pRVY4MJB9slma+DMAzxOXKcHEYXtBFtRZttV0ZLwEA4OUz5/pt//v/HZClHhaLsAEVZran+9uXl5aXS6+vr7u/NZlMMQWmG3f4cHx9Xr233abVaFXd3d4PtSypM3iD7oEOVoVRxenraqmMZjEnw+v7+Xry9vVX/xivUBbTLGAE6OjqqXssqXKc2o33L5bJ4fHwsnp+fC/I/aBCFUGaRQGfclw2YYV+h20FT2KFBHIBZIJgFrzkDI6zX6+qVpmiGBvEEZ3GEM2XiW8X5+Dv0mT0UJsxDfoRRYsj8KFdokACY+N8kxyY/6BPkNibnMcUCiHSDBomESaTNiINXk1AD82rLLfZzFJPoQzCBSfrNqMCRIQ40CCEWPhWEEBUahBALNAghFmgQQizQIIRY+C9cNXNlJEjHoQAAAABJRU5ErkJggg==",Gs=""+new URL("huiguang-3c5dfda5-balabala-1784074877048.png",import.meta.url).href,Fs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFPSURBVHgB7ddhbcMwEAXglyEoBEPoGARCIYTBymBhMAgrhDFoIZTBIATC21lxtGhdYieOW7u6T7L6x5HvfPXJBpRSSj0jko2MGqWTJL7tQMkkgSN/tSiRBG5cNQadjB1KI0GfeOsDJXHVmFKjFBLseSaRM0rg2q3PAbn7c8Cn2Dn5HnwJ7p3hWuSI/QHvFiRi5xrkhv+3W59P5ITz7danRi4YdsCn5NGOGdZufRo8kgSwi6zGIPoe9oI4bzIM4tkkjngExh3wqaoYrBRTkRbbslW5bzuWnTswnRorVFiB/dPVII1rVVWvWGjxX4t9qzRIZy9rpD34vH2+zrnIaN03dtj3+zXw27TPYvrvUxcXsMH8ZjRu7pw0z2JOt9sh+MU7GJCUwdZG1ejcwg03LP8oqa9RItvew9i325P7Tf6yY3/1GdbcQymllFJKKaUy9gO4eI9ILG1riwAAAABJRU5ErkJggg==",Qs="data:image/png;base64,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",Ps="data:image/png;base64,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",Hs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAD/CAMAAABb2Q/2AAAAsVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+3mHKcAAAAO3RSTlMABQoPExgdISgxJTYsQDtTRUr+9vpOWXJdaWVhgIx2om2n6oiWmYTKr5G68J22eqvBfeHZ5c++1LPdxUM4ZWUAAAZvSURBVGjerdrZdpswFAXQmnk0EMB4Ajwbz2Mc1///Yb0SuLg1km66mtfsdRBXRyIP+fH205IURZZa7794h7KqKZKEkrqFCgVpOSpOKoaJljZWOm1VwUnTRUv7/0sbvc62r2FlgJOy0o6x0kVL30NJiUh0ZkfHZuLXGWj/PTNArzPu68hMr4/MVEGqMlJaWNkDKWGukM4IK70uTipq3NVBthASMoWb1CJS644cIoG2OJDIQUYlm4KDH7mWxDJoKfX+3iSyooxEMqRSyhVlJFJp9YY2SGZoiyGZkMh+YtPRN4eWDqQCckSl1CoxIxKkQTMVSWp+pyeUQY4WbSqftuG9S+kkqWupitwkgdZSe5VSo5SeMgOpiaWqmfuVb1BZUUbkU6pyHdokJSJPs0AoZcjU7WRBMhWgQjnkSqmW2dB3ailx5HAW1FJqzJRLOd3Gjo6R7cVTym+y9aecbr1KCjLdae7hMt0090yupBAq/yLld1lHapa7WMVEElqNnimnr1JiS3+Rxqal8aVCZZp3+FJ+ylnRBalSyperA1IGM7ScFwNbIJXvSSOY3/u2QaTSIKVXudp2uVIupW7Eq3kHLetMmSu3RQ8p8/XoVQJtGieVu55A0lfXHY9m6iqhQpkg5fhNtljySKSGkPNxry2SKpGdec6VciUtIvtIOV5nbQekypLKUx4ep1rKHNk9PPZIWdRSEcmTi5KDYjl0HatZSn/IO1Kag/E9E0m1kkVSSlUg++Mic02UvD8WCKkbZn/3ORVLrZSLb0kdIdf06brGkspT9tZf6T9KiSmL25Aj5Ve5Bml8VyqNUn2u8zP1cfJ2mQmlRuToeJnRp2v/TdpE+jaVKk86IH8iZfJAy/UjRcrdkUhLIC0iH1j5uMwDnFyec7TcBrYjkDrIrJI6RuYYaYK8YqRh2vvP61gkNSpPy69t0EbI9pDK+iDx5GUbU6kJ5OIyKQKc/LnZ4TKnZ5R0zHZ63qxxmatreItdkbQM011NwqPHk1WVcJIWxJ2dJzuQDl5aukjOr5O159oYOYmWT6ny5Sb6xMktSkI9fSp9jMw30VcHpCGW4QeRpki2vyM34bITtHmSFqSSPkaO8TKMvujT4WZiSZ3IYBx+XLoI6WKljZVOJQccqbxJhyeNSv4cBLRMfBnDPD8HMVIuqTQwmRjpx7BHF5GkVYoP8EZ9DyG9UkJBOdJ6le3/JB2okleA7OFlWVBmQ0C6IDfhF5UOS2oaLUjnXkqXJ+kWUTnCyTA6j7qwSSxJBw+yew8/zgmVhqaxpe91d7XUEXIQ+zRTZUnYokEpq41XBPKaVZKb2aeSbDxb0hukAzK8iCSMs5J72CS+hMzeGuSJSJsnYfAgP64nsp0Mqfwhh1Q6fDkqZTcWy1v4McHIAZWLpC5Tk4QqeThJNzP5jgzPC6iISPaTI8gpXxovstx4kYR1iiUUJDtGONnLHiDTPU/qpdx/W9KCsiQUuTuicnXqieWJyqFIxiCXYXRd0YIypUPlcBmGRMJHli+TWvIzB8liCeucLWiV2dKv5Ga2SKjUm6RGpFfJOZRJIPsZXk5LmdF7kSVJ6fbTz0p6bGnWcgu140lakPQzjCbbVCxPIEOBtF5kXhaUKeH2HA1XX7DOfLXvYeWJL6EgtewEzVKt5GJG5LiqcrM0XuWsklqjpKWjMgQ5EshsSjMPAul7IOdfUbQ5zKHKIC2uvEThBGTCl1C6LchNQWTMlynIj7DYTkG6PLmv5YAre/vVU2YCeVrlP4nMsfKep3A8GFIH2flL2oxMUuThbFzJfZ8ldQfkiMpos8tXWDkm0ufJxfwpT0J5OMM61wcoPUiDKRMiP4ic8WU3mW6pvEFBhbI4RyALjLxSOYfSs2VM5P0KTz9CQblykKQ5kdHxLpIZkVEUVrLNkC6VOyIf9y3IgCHNV7mD0nPlfjXekXUudzkcJLb0+iDXE5ycVXItkqdapgypUNk7zQ63/y2Hv+U4zVjSKmVxm8A8P29COS+Ov+WgUcog/VouK+nwJawTl0nlmitdpNRrWc8TLW2OpJOvukROh6pITZ33+q8STodpNUgFZFz2k3SenCPPfZctkOT+pKeDyCO5Q0CW/3vyJu3qZgC5Jrdi7Dram6xGT+9kuEOie135Ur4dOfLlOoOsLjCr/rzXki6U/nVBvkf0c1Qu809Z9w4+8GeYUnrqkWm+LvMXnJRTlwruvBIAAAAASUVORK5CYII=",vs=""+new URL("focus_bg-b6803e2d-balabala-1784074877048.png",import.meta.url).href,Ks="data:image/png;base64,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",js=""+new URL("focus_move_bg-cf41417a-balabala-1784074877048.png",import.meta.url).href;const hs={class:"topic-switcher"},ps={class:"topic-switcher-menu"},gs=["onPointerup","onClick"],ms={class:"topic-title"},Ts={key:0},Vs={__name:"TopicSwitcher",props:{modelValue:{type:String,required:!0},topics:{type:Array,default:()=>me}},emits:["update:modelValue"],setup(d,{emit:t}){const e=d,r=t;let s="",A=0;const n=yt(()=>{var i;return(i=e.topics)!=null&&i.length?e.topics:me});function o(i,a){var u,l;if((l=(u=i.currentTarget)==null?void 0:u.blur)==null||l.call(u),a===e.modelValue)return;const c=Date.now();i.type==="click"&&s===a&&c-A<450||(i.type==="pointerup"&&(s=a,A=c),r("update:modelValue",a))}return(i,a)=>(K(),j("div",hs,[a[0]||(a[0]=S("div",{class:"topic-switcher-arrow"},[S("img",{src:pe,alt:""}),S("img",{src:ge,alt:""})],-1)),S("div",ps,[(K(!0),j(St,null,Bt(n.value,c=>(K(),j("button",{key:c.key,class:Te(["topic-switcher-item",{"is-active":c.key===d.modelValue}]),style:bt({"--topic-color":c.color,"--topic-item-width":c.width?`${c.width}px`:void 0}),type:"button",onPointerup:u=>o(u,c.key),onClick:u=>o(u,c.key)},[S("span",{class:Te(["topic-name",{"has-sub-name":c.subName}])},[S("span",ms,Ee(c.name),1),c.subName?(K(),j("small",Ts,Ee(c.subName),1)):kt("",!0)],2)],46,gs))),128))]),a[1]||(a[1]=S("div",{class:"topic-switcher-arrow is-reverse"},[S("img",{src:pe,alt:""}),S("img",{src:ge,alt:""})],-1))]))}};export{Lt as E,ys as R,Vs as _,Ds as a,Ss as b,Ns as c,bs as d,Os as e,Fs as f,Us as g,Gs as h,Qs as i,Ps as j,Hs as k,vs as l,Ks as m,js as n,Ls as o,Bs as p,Is as q,Ms as r,ks as s};