@abi-software/scaffoldvuer 1.4.0-beta.2 → 1.4.1-image.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/scaffoldvuer.js +478 -479
- package/dist/scaffoldvuer.umd.cjs +4 -4
- package/dist/style.css +1 -1
- package/package.json +2 -2
- package/src/App.vue +3 -2
- package/src/components/ScaffoldVuer.vue +93 -72
- package/src/mixins/imageMixin.js +0 -2
|
@@ -3179,9 +3179,9 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
3179
3179
|
`),s=["float glossinessFactor = glossiness;","#ifdef USE_GLOSSINESSMAP"," vec4 texelGlossiness = texture2D( glossinessMap, vUv );"," // reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture"," glossinessFactor *= texelGlossiness.a;","#endif"].join(`
|
|
3180
3180
|
`),o=["PhysicalMaterial material;","material.diffuseColor = diffuseColor.rgb * ( 1. - max( specularFactor.r, max( specularFactor.g, specularFactor.b ) ) );","vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );","material.specularRoughness = max( 1.0 - glossinessFactor, 0.0525 ); // 0.0525 corresponds to the base mip of a 256 cubemap.","material.specularRoughness += geometryRoughness;","material.specularRoughness = min( material.specularRoughness, 1.0 );","material.specularColor = specularFactor;"].join(`
|
|
3181
3181
|
`),l={specular:{value:new Ce().setHex(16777215)},glossiness:{value:1},specularMap:{value:null},glossinessMap:{value:null}};this._extraUniforms=l,this.onBeforeCompile=function(c){for(const u in l)c.uniforms[u]=l[u];c.fragmentShader=c.fragmentShader.replace("uniform float roughness;","uniform vec3 specular;").replace("uniform float metalness;","uniform float glossiness;").replace("#include <roughnessmap_pars_fragment>",t).replace("#include <metalnessmap_pars_fragment>",i).replace("#include <roughnessmap_fragment>",r).replace("#include <metalnessmap_fragment>",s).replace("#include <lights_physical_fragment>",o)},Object.defineProperties(this,{specular:{get:function(){return l.specular.value},set:function(c){l.specular.value=c}},specularMap:{get:function(){return l.specularMap.value},set:function(c){l.specularMap.value=c,c?this.defines.USE_SPECULARMAP="":delete this.defines.USE_SPECULARMAP}},glossiness:{get:function(){return l.glossiness.value},set:function(c){l.glossiness.value=c}},glossinessMap:{get:function(){return l.glossinessMap.value},set:function(c){l.glossinessMap.value=c,c?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_UV=""):(delete this.defines.USE_GLOSSINESSMAP,delete this.defines.USE_UV)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(e)}copy(e){return super.copy(e),this.specularMap=e.specularMap,this.specular.copy(e.specular),this.glossinessMap=e.glossinessMap,this.glossiness=e.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this}}class CF{constructor(){this.name=rt.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,this.specularGlossinessParams=["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity","refractionRatio"]}getMaterialType(){return Rf}extendParams(e,t,i){const r=t.extensions[this.name];e.color=new Ce(1,1,1),e.opacity=1;const s=[];if(Array.isArray(r.diffuseFactor)){const o=r.diffuseFactor;e.color.fromArray(o),e.opacity=o[3]}if(r.diffuseTexture!==void 0&&s.push(i.assignTexture(e,"map",r.diffuseTexture)),e.emissive=new Ce(0,0,0),e.glossiness=r.glossinessFactor!==void 0?r.glossinessFactor:1,e.specular=new Ce(1,1,1),Array.isArray(r.specularFactor)&&e.specular.fromArray(r.specularFactor),r.specularGlossinessTexture!==void 0){const o=r.specularGlossinessTexture;s.push(i.assignTexture(e,"glossinessMap",o)),s.push(i.assignTexture(e,"specularMap",o))}return Promise.all(s)}createMaterial(e){const t=new Rf(e);return t.fog=!0,t.color=e.color,t.map=e.map===void 0?null:e.map,t.lightMap=null,t.lightMapIntensity=1,t.aoMap=e.aoMap===void 0?null:e.aoMap,t.aoMapIntensity=1,t.emissive=e.emissive,t.emissiveIntensity=1,t.emissiveMap=e.emissiveMap===void 0?null:e.emissiveMap,t.bumpMap=e.bumpMap===void 0?null:e.bumpMap,t.bumpScale=1,t.normalMap=e.normalMap===void 0?null:e.normalMap,t.normalMapType=or,e.normalScale&&(t.normalScale=e.normalScale),t.displacementMap=null,t.displacementScale=1,t.displacementBias=0,t.specularMap=e.specularMap===void 0?null:e.specularMap,t.specular=e.specular,t.glossinessMap=e.glossinessMap===void 0?null:e.glossinessMap,t.glossiness=e.glossiness,t.alphaMap=null,t.envMap=e.envMap===void 0?null:e.envMap,t.envMapIntensity=1,t.refractionRatio=.98,t}}class AF{constructor(){this.name=rt.KHR_MESH_QUANTIZATION}}class Ao extends ai{constructor(e,t,i,r){super(e,t,i,r)}copySampleValue_(e){const t=this.resultBuffer,i=this.sampleValues,r=this.valueSize,s=e*r*3+r;for(let o=0;o!==r;o++)t[o]=i[s+o];return t}}Ao.prototype.beforeStart_=Ao.prototype.copySampleValue_,Ao.prototype.afterEnd_=Ao.prototype.copySampleValue_,Ao.prototype.interpolate_=function(n,e,t,i){const r=this.resultBuffer,s=this.sampleValues,o=this.valueSize,l=o*2,c=o*3,u=i-e,f=(t-e)/u,d=f*f,p=d*f,y=n*c,m=y-c,h=-2*p+3*d,b=p-d,v=1-h,g=b-d+f;for(let x=0;x!==o;x++){const _=s[m+x+o],E=s[m+x+l]*u,S=s[y+x+o],M=s[y+x]*u;r[x]=v*_+g*E+h*S+b*M}return r};const ki={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},Ha={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},Ex={9728:Rt,9729:St,9984:na,9985:Hl,9986:ia,9987:Ei},Cx={33071:Gt,33648:Os,10497:sr},Ax={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Lf={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},_r={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},RF={CUBICSPLINE:void 0,LINEAR:zr,STEP:Bs},Pf={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function Rx(n,e){return typeof n!="string"||n===""?"":(/^https?:\/\//i.test(e)&&/^\//.test(n)&&(e=e.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(n)||/^data:.*,.*$/i.test(n)||/^blob:.*$/i.test(n)?n:e+n)}function LF(n){return n.DefaultMaterial===void 0&&(n.DefaultMaterial=new es({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:nr})),n.DefaultMaterial}function Wa(n,e,t){for(const i in t.extensions)n[i]===void 0&&(e.userData.gltfExtensions=e.userData.gltfExtensions||{},e.userData.gltfExtensions[i]=t.extensions[i])}function ds(n,e){e.extras!==void 0&&(typeof e.extras=="object"?Object.assign(n.userData,e.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+e.extras))}function PF(n,e,t){let i=!1,r=!1;for(let l=0,c=e.length;l<c;l++){const u=e[l];if(u.POSITION!==void 0&&(i=!0),u.NORMAL!==void 0&&(r=!0),i&&r)break}if(!i&&!r)return Promise.resolve(n);const s=[],o=[];for(let l=0,c=e.length;l<c;l++){const u=e[l];if(i){const f=u.POSITION!==void 0?t.getDependency("accessor",u.POSITION):n.attributes.position;s.push(f)}if(r){const f=u.NORMAL!==void 0?t.getDependency("accessor",u.NORMAL):n.attributes.normal;o.push(f)}}return Promise.all([Promise.all(s),Promise.all(o)]).then(function(l){const c=l[0],u=l[1];return i&&(n.morphAttributes.position=c),r&&(n.morphAttributes.normal=u),n.morphTargetsRelative=!0,n})}function IF(n,e){if(n.updateMorphTargets(),e.weights!==void 0)for(let t=0,i=e.weights.length;t<i;t++)n.morphTargetInfluences[t]=e.weights[t];if(e.extras&&Array.isArray(e.extras.targetNames)){const t=e.extras.targetNames;if(n.morphTargetInfluences.length===t.length){n.morphTargetDictionary={};for(let i=0,r=t.length;i<r;i++)n.morphTargetDictionary[t[i]]=i}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function OF(n){const e=n.extensions&&n.extensions[rt.KHR_DRACO_MESH_COMPRESSION];let t;return e?t="draco:"+e.bufferView+":"+e.indices+":"+Lx(e.attributes):t=n.indices+":"+Lx(n.attributes)+":"+n.mode,t}function Lx(n){let e="";const t=Object.keys(n).sort();for(let i=0,r=t.length;i<r;i++)e+=t[i]+":"+n[t[i]]+";";return e}function If(n){switch(n){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.")}}class NF{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new gF,this.associations=new Map,this.primitiveCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.textureCache={},this.nodeNamesUsed={},typeof createImageBitmap<"u"&&/Firefox/.test(navigator.userAgent)===!1?this.textureLoader=new ff(this.options.manager):this.textureLoader=new rf(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new Sn(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const i=this,r=this.json,s=this.extensions;this.cache.removeAll(),this._invokeAll(function(o){return o._markDefs&&o._markDefs()}),Promise.all(this._invokeAll(function(o){return o.beforeRoot&&o.beforeRoot()})).then(function(){return Promise.all([i.getDependencies("scene"),i.getDependencies("animation"),i.getDependencies("camera")])}).then(function(o){const l={scene:o[0][r.scene||0],scenes:o[0],animations:o[1],cameras:o[2],asset:r.asset,parser:i,userData:{}};Wa(s,l,r),ds(l,r),Promise.all(i._invokeAll(function(c){return c.afterRoot&&c.afterRoot(l)})).then(function(){e(l)})}).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],i=this.json.meshes||[];for(let r=0,s=t.length;r<s;r++){const o=t[r].joints;for(let l=0,c=o.length;l<c;l++)e[o[l]].isBone=!0}for(let r=0,s=e.length;r<s;r++){const o=e[r];o.mesh!==void 0&&(this._addNodeRef(this.meshCache,o.mesh),o.skin!==void 0&&(i[o.mesh].isSkinnedMesh=!0)),o.camera!==void 0&&this._addNodeRef(this.cameraCache,o.camera)}}_addNodeRef(e,t){t!==void 0&&(e.refs[t]===void 0&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,i){if(e.refs[t]<=1)return i;const r=i.clone();return r.name+="_instance_"+e.uses[t]++,r}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let i=0;i<t.length;i++){const r=e(t[i]);if(r)return r}return null}_invokeAll(e){const t=Object.values(this.plugins);t.unshift(this);const i=[];for(let r=0;r<t.length;r++){const s=e(t[r]);s&&i.push(s)}return i}getDependency(e,t){const i=e+":"+t;let r=this.cache.get(i);if(!r){switch(e){case"scene":r=this.loadScene(t);break;case"node":r=this.loadNode(t);break;case"mesh":r=this._invokeOne(function(s){return s.loadMesh&&s.loadMesh(t)});break;case"accessor":r=this.loadAccessor(t);break;case"bufferView":r=this._invokeOne(function(s){return s.loadBufferView&&s.loadBufferView(t)});break;case"buffer":r=this.loadBuffer(t);break;case"material":r=this._invokeOne(function(s){return s.loadMaterial&&s.loadMaterial(t)});break;case"texture":r=this._invokeOne(function(s){return s.loadTexture&&s.loadTexture(t)});break;case"skin":r=this.loadSkin(t);break;case"animation":r=this.loadAnimation(t);break;case"camera":r=this.loadCamera(t);break;default:throw new Error("Unknown type: "+e)}this.cache.add(i,r)}return r}getDependencies(e){let t=this.cache.get(e);if(!t){const i=this,r=this.json[e+(e==="mesh"?"es":"s")]||[];t=Promise.all(r.map(function(s,o){return i.getDependency(e,o)})),this.cache.add(e,t)}return t}loadBuffer(e){const t=this.json.buffers[e],i=this.fileLoader;if(t.type&&t.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(t.uri===void 0&&e===0)return Promise.resolve(this.extensions[rt.KHR_BINARY_GLTF].body);const r=this.options;return new Promise(function(s,o){i.load(Rx(t.uri,r.path),s,void 0,function(){o(new Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))})})}loadBufferView(e){const t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then(function(i){const r=t.byteLength||0,s=t.byteOffset||0;return i.slice(s,s+r)})}loadAccessor(e){const t=this,i=this.json,r=this.json.accessors[e];if(r.bufferView===void 0&&r.sparse===void 0)return Promise.resolve(null);const s=[];return r.bufferView!==void 0?s.push(this.getDependency("bufferView",r.bufferView)):s.push(null),r.sparse!==void 0&&(s.push(this.getDependency("bufferView",r.sparse.indices.bufferView)),s.push(this.getDependency("bufferView",r.sparse.values.bufferView))),Promise.all(s).then(function(o){const l=o[0],c=Ax[r.type],u=Ha[r.componentType],f=u.BYTES_PER_ELEMENT,d=f*c,p=r.byteOffset||0,y=r.bufferView!==void 0?i.bufferViews[r.bufferView].byteStride:void 0,m=r.normalized===!0;let h,b;if(y&&y!==d){const v=Math.floor(p/y),g="InterleavedBuffer:"+r.bufferView+":"+r.componentType+":"+v+":"+r.count;let x=t.cache.get(g);x||(h=new u(l,v*y,r.count*y/f),x=new yr(h,y/f),t.cache.add(g,x)),b=new Fi(x,c,p%y/f,m)}else l===null?h=new u(r.count*c):h=new u(l,p,r.count*c),b=new We(h,c,m);if(r.sparse!==void 0){const v=Ax.SCALAR,g=Ha[r.sparse.indices.componentType],x=r.sparse.indices.byteOffset||0,_=r.sparse.values.byteOffset||0,E=new g(o[1],x,r.sparse.count*v),S=new u(o[2],_,r.sparse.count*c);l!==null&&(b=new We(b.array.slice(),b.itemSize,b.normalized));for(let M=0,T=E.length;M<T;M++){const A=E[M];if(b.setX(A,S[M*c]),c>=2&&b.setY(A,S[M*c+1]),c>=3&&b.setZ(A,S[M*c+2]),c>=4&&b.setW(A,S[M*c+3]),c>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return b})}loadTexture(e){const t=this.json,i=this.options,r=t.textures[e],s=t.images[r.source];let o=this.textureLoader;if(s.uri){const l=i.manager.getHandler(s.uri);l!==null&&(o=l)}return this.loadTextureImage(e,s,o)}loadTextureImage(e,t,i){const r=this,s=this.json,o=this.options,l=s.textures[e],c=(t.uri||t.bufferView)+":"+l.sampler;if(this.textureCache[c])return this.textureCache[c];const u=self.URL||self.webkitURL;let f=t.uri||"",d=!1,p=!0;const y=f.search(/\.jpe?g($|\?)/i)>0||f.search(/^data\:image\/jpeg/)===0;if((t.mimeType==="image/jpeg"||y)&&(p=!1),t.bufferView!==void 0)f=r.getDependency("bufferView",t.bufferView).then(function(h){if(t.mimeType==="image/png"){const v=new DataView(h,25,1).getUint8(0,!1);p=v===6||v===4||v===3}d=!0;const b=new Blob([h],{type:t.mimeType});return f=u.createObjectURL(b),f});else if(t.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const m=Promise.resolve(f).then(function(h){return new Promise(function(b,v){let g=b;i.isImageBitmapLoader===!0&&(g=function(x){const _=new Lt(x);_.needsUpdate=!0,b(_)}),i.load(Rx(h,o.path),g,void 0,v)})}).then(function(h){d===!0&&u.revokeObjectURL(f),h.flipY=!1,l.name&&(h.name=l.name),p||(h.format=Ai);const v=(s.samplers||{})[l.sampler]||{};return h.magFilter=Ex[v.magFilter]||St,h.minFilter=Ex[v.minFilter]||Ei,h.wrapS=Cx[v.wrapS]||sr,h.wrapT=Cx[v.wrapT]||sr,r.associations.set(h,{type:"textures",index:e}),h}).catch(function(){return console.error("THREE.GLTFLoader: Couldn't load texture",f),null});return this.textureCache[c]=m,m}assignTexture(e,t,i){const r=this;return this.getDependency("texture",i.index).then(function(s){if(i.texCoord!==void 0&&i.texCoord!=0&&!(t==="aoMap"&&i.texCoord==1)&&console.warn("THREE.GLTFLoader: Custom UV set "+i.texCoord+" for texture "+t+" not yet supported."),r.extensions[rt.KHR_TEXTURE_TRANSFORM]){const o=i.extensions!==void 0?i.extensions[rt.KHR_TEXTURE_TRANSFORM]:void 0;if(o){const l=r.associations.get(s);s=r.extensions[rt.KHR_TEXTURE_TRANSFORM].extendTexture(s,o),r.associations.set(s,l)}}e[t]=s})}assignFinalMaterial(e){const t=e.geometry;let i=e.material;const r=t.attributes.tangent!==void 0,s=t.attributes.color!==void 0,o=t.attributes.normal===void 0,l=Object.keys(t.morphAttributes).length>0,c=l&&t.morphAttributes.normal!==void 0;if(e.isPoints){const u="PointsMaterial:"+i.uuid;let f=this.cache.get(u);f||(f=new vr,Ft.prototype.copy.call(f,i),f.color.copy(i.color),f.map=i.map,f.sizeAttenuation=!1,this.cache.add(u,f)),i=f}else if(e.isLine){const u="LineBasicMaterial:"+i.uuid;let f=this.cache.get(u);f||(f=new zt,Ft.prototype.copy.call(f,i),f.color.copy(i.color),this.cache.add(u,f)),i=f}if(r||s||o||l){let u="ClonedMaterial:"+i.uuid+":";i.isGLTFSpecularGlossinessMaterial&&(u+="specular-glossiness:"),r&&(u+="vertex-tangents:"),s&&(u+="vertex-colors:"),o&&(u+="flat-shading:"),l&&(u+="morph-targets:"),c&&(u+="morph-normals:");let f=this.cache.get(u);f||(f=i.clone(),s&&(f.vertexColors=!0),o&&(f.flatShading=!0),l&&(f.morphTargets=!0),c&&(f.morphNormals=!0),r&&(f.vertexTangents=!0,f.normalScale&&(f.normalScale.y*=-1),f.clearcoatNormalScale&&(f.clearcoatNormalScale.y*=-1)),this.cache.add(u,f),this.associations.set(f,this.associations.get(i))),i=f}i.aoMap&&t.attributes.uv2===void 0&&t.attributes.uv!==void 0&&t.setAttribute("uv2",t.attributes.uv),e.material=i}getMaterialType(){return es}loadMaterial(e){const t=this,i=this.json,r=this.extensions,s=i.materials[e];let o;const l={},c=s.extensions||{},u=[];if(c[rt.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){const d=r[rt.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];o=d.getMaterialType(),u.push(d.extendParams(l,s,t))}else if(c[rt.KHR_MATERIALS_UNLIT]){const d=r[rt.KHR_MATERIALS_UNLIT];o=d.getMaterialType(),u.push(d.extendParams(l,s,t))}else{const d=s.pbrMetallicRoughness||{};if(l.color=new Ce(1,1,1),l.opacity=1,Array.isArray(d.baseColorFactor)){const p=d.baseColorFactor;l.color.fromArray(p),l.opacity=p[3]}d.baseColorTexture!==void 0&&u.push(t.assignTexture(l,"map",d.baseColorTexture)),l.metalness=d.metallicFactor!==void 0?d.metallicFactor:1,l.roughness=d.roughnessFactor!==void 0?d.roughnessFactor:1,d.metallicRoughnessTexture!==void 0&&(u.push(t.assignTexture(l,"metalnessMap",d.metallicRoughnessTexture)),u.push(t.assignTexture(l,"roughnessMap",d.metallicRoughnessTexture))),o=this._invokeOne(function(p){return p.getMaterialType&&p.getMaterialType(e)}),u.push(Promise.all(this._invokeAll(function(p){return p.extendMaterialParams&&p.extendMaterialParams(e,l)})))}s.doubleSided===!0&&(l.side=ir);const f=s.alphaMode||Pf.OPAQUE;return f===Pf.BLEND?(l.transparent=!0,l.depthWrite=!1):(l.transparent=!1,f===Pf.MASK&&(l.alphaTest=s.alphaCutoff!==void 0?s.alphaCutoff:.5)),s.normalTexture!==void 0&&o!==mn&&(u.push(t.assignTexture(l,"normalMap",s.normalTexture)),l.normalScale=new Se(1,-1),s.normalTexture.scale!==void 0&&l.normalScale.set(s.normalTexture.scale,-s.normalTexture.scale)),s.occlusionTexture!==void 0&&o!==mn&&(u.push(t.assignTexture(l,"aoMap",s.occlusionTexture)),s.occlusionTexture.strength!==void 0&&(l.aoMapIntensity=s.occlusionTexture.strength)),s.emissiveFactor!==void 0&&o!==mn&&(l.emissive=new Ce().fromArray(s.emissiveFactor)),s.emissiveTexture!==void 0&&o!==mn&&u.push(t.assignTexture(l,"emissiveMap",s.emissiveTexture)),Promise.all(u).then(function(){let d;return o===Rf?d=r[rt.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(l):d=new o(l),s.name&&(d.name=s.name),d.map&&(d.map.encoding=Hr),d.emissiveMap&&(d.emissiveMap.encoding=Hr),ds(d,s),t.associations.set(d,{type:"materials",index:e}),s.extensions&&Wa(r,d,s),d})}createUniqueName(e){const t=Ke.sanitizeNodeName(e||"");let i=t;for(let r=1;this.nodeNamesUsed[i];++r)i=t+"_"+r;return this.nodeNamesUsed[i]=!0,i}loadGeometries(e){const t=this,i=this.extensions,r=this.primitiveCache;function s(l){return i[rt.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(l,t).then(function(c){return Ix(c,l,t)})}const o=[];for(let l=0,c=e.length;l<c;l++){const u=e[l],f=OF(u),d=r[f];if(d)o.push(d.promise);else{let p;u.extensions&&u.extensions[rt.KHR_DRACO_MESH_COMPRESSION]?p=s(u):p=Ix(new Ve,u,t),r[f]={primitive:u,promise:p},o.push(p)}}return Promise.all(o)}loadMesh(e){const t=this,i=this.json,r=this.extensions,s=i.meshes[e],o=s.primitives,l=[];for(let c=0,u=o.length;c<u;c++){const f=o[c].material===void 0?LF(this.cache):this.getDependency("material",o[c].material);l.push(f)}return l.push(t.loadGeometries(o)),Promise.all(l).then(function(c){const u=c.slice(0,c.length-1),f=c[c.length-1],d=[];for(let y=0,m=f.length;y<m;y++){const h=f[y],b=o[y];let v;const g=u[y];if(b.mode===ki.TRIANGLES||b.mode===ki.TRIANGLE_STRIP||b.mode===ki.TRIANGLE_FAN||b.mode===void 0)v=s.isSkinnedMesh===!0?new _a(h,g):new It(h,g),v.isSkinnedMesh===!0&&!v.geometry.attributes.skinWeight.normalized&&v.normalizeSkinWeights(),b.mode===ki.TRIANGLE_STRIP?v.geometry=Ox(v.geometry,By):b.mode===ki.TRIANGLE_FAN&&(v.geometry=Ox(v.geometry,Hd));else if(b.mode===ki.LINES)v=new un(h,g);else if(b.mode===ki.LINE_STRIP)v=new ri(h,g);else if(b.mode===ki.LINE_LOOP)v=new Ec(h,g);else if(b.mode===ki.POINTS)v=new oo(h,g);else throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+b.mode);Object.keys(v.geometry.morphAttributes).length>0&&IF(v,s),v.name=t.createUniqueName(s.name||"mesh_"+e),ds(v,s),b.extensions&&Wa(r,v,b),t.assignFinalMaterial(v),d.push(v)}if(d.length===1)return d[0];const p=new ii;for(let y=0,m=d.length;y<m;y++)p.add(d[y]);return p})}loadCamera(e){let t;const i=this.json.cameras[e],r=i[i.type];if(!r){console.warn("THREE.GLTFLoader: Missing camera parameters.");return}return i.type==="perspective"?t=new kt(Jd.radToDeg(r.yfov),r.aspectRatio||1,r.znear||1,r.zfar||2e6):i.type==="orthographic"&&(t=new So(-r.xmag,r.xmag,r.ymag,-r.ymag,r.znear,r.zfar)),i.name&&(t.name=this.createUniqueName(i.name)),ds(t,i),Promise.resolve(t)}loadSkin(e){const t=this.json.skins[e],i={joints:t.joints};return t.inverseBindMatrices===void 0?Promise.resolve(i):this.getDependency("accessor",t.inverseBindMatrices).then(function(r){return i.inverseBindMatrices=r,i})}loadAnimation(e){const i=this.json.animations[e],r=[],s=[],o=[],l=[],c=[];for(let u=0,f=i.channels.length;u<f;u++){const d=i.channels[u],p=i.samplers[d.sampler],y=d.target,m=y.node!==void 0?y.node:y.id,h=i.parameters!==void 0?i.parameters[p.input]:p.input,b=i.parameters!==void 0?i.parameters[p.output]:p.output;r.push(this.getDependency("node",m)),s.push(this.getDependency("accessor",h)),o.push(this.getDependency("accessor",b)),l.push(p),c.push(y)}return Promise.all([Promise.all(r),Promise.all(s),Promise.all(o),Promise.all(l),Promise.all(c)]).then(function(u){const f=u[0],d=u[1],p=u[2],y=u[3],m=u[4],h=[];for(let v=0,g=f.length;v<g;v++){const x=f[v],_=d[v],E=p[v],S=y[v],M=m[v];if(x===void 0)continue;x.updateMatrix(),x.matrixAutoUpdate=!0;let T;switch(_r[M.path]){case _r.weights:T=xo;break;case _r.rotation:T=ns;break;case _r.position:case _r.scale:default:T=wo;break}const A=x.name?x.name:x.uuid,C=S.interpolation!==void 0?RF[S.interpolation]:zr,R=[];_r[M.path]===_r.weights?x.traverse(function(I){I.isMesh===!0&&I.morphTargetInfluences&&R.push(I.name?I.name:I.uuid)}):R.push(A);let L=E.array;if(E.normalized){const I=If(L.constructor),O=new Float32Array(L.length);for(let N=0,w=L.length;N<w;N++)O[N]=L[N]*I;L=O}for(let I=0,O=R.length;I<O;I++){const N=new T(R[I]+"."+_r[M.path],_.array,L,C);S.interpolation==="CUBICSPLINE"&&(N.createInterpolant=function(P){return new Ao(this.times,this.values,this.getValueSize()/3,P)},N.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0),h.push(N)}}const b=i.name?i.name:"animation_"+e;return new Mo(b,void 0,h)})}createNodeMesh(e){const t=this.json,i=this,r=t.nodes[e];return r.mesh===void 0?null:i.getDependency("mesh",r.mesh).then(function(s){const o=i._getNodeRef(i.meshCache,r.mesh,s);return r.weights!==void 0&&o.traverse(function(l){if(l.isMesh)for(let c=0,u=r.weights.length;c<u;c++)l.morphTargetInfluences[c]=r.weights[c]}),o})}loadNode(e){const t=this.json,i=this.extensions,r=this,s=t.nodes[e],o=s.name?r.createUniqueName(s.name):"";return function(){const l=[],c=r._invokeOne(function(u){return u.createNodeMesh&&u.createNodeMesh(e)});return c&&l.push(c),s.camera!==void 0&&l.push(r.getDependency("camera",s.camera).then(function(u){return r._getNodeRef(r.cameraCache,s.camera,u)})),r._invokeAll(function(u){return u.createNodeAttachment&&u.createNodeAttachment(e)}).forEach(function(u){l.push(u)}),Promise.all(l)}().then(function(l){let c;if(s.isBone===!0?c=new Ta:l.length>1?c=new ii:l.length===1?c=l[0]:c=new Xe,c!==l[0])for(let u=0,f=l.length;u<f;u++)c.add(l[u]);if(s.name&&(c.userData.name=s.name,c.name=o),ds(c,s),s.extensions&&Wa(i,c,s),s.matrix!==void 0){const u=new De;u.fromArray(s.matrix),c.applyMatrix4(u)}else s.translation!==void 0&&c.position.fromArray(s.translation),s.rotation!==void 0&&c.quaternion.fromArray(s.rotation),s.scale!==void 0&&c.scale.fromArray(s.scale);return r.associations.set(c,{type:"nodes",index:e}),c})}loadScene(e){const t=this.json,i=this.extensions,r=this.json.scenes[e],s=this,o=new ii;r.name&&(o.name=s.createUniqueName(r.name)),ds(o,r),r.extensions&&Wa(i,o,r);const l=r.nodes||[],c=[];for(let u=0,f=l.length;u<f;u++)c.push(Px(l[u],o,t,s));return Promise.all(c).then(function(){return o})}}function Px(n,e,t,i){const r=t.nodes[n];return i.getDependency("node",n).then(function(s){if(r.skin===void 0)return s;let o;return i.getDependency("skin",r.skin).then(function(l){o=l;const c=[];for(let u=0,f=o.joints.length;u<f;u++)c.push(i.getDependency("node",o.joints[u]));return Promise.all(c)}).then(function(l){return s.traverse(function(c){if(!c.isMesh)return;const u=[],f=[];for(let d=0,p=l.length;d<p;d++){const y=l[d];if(y){u.push(y);const m=new De;o.inverseBindMatrices!==void 0&&m.fromArray(o.inverseBindMatrices.array,d*16),f.push(m)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',o.joints[d])}c.bind(new Ea(u,f),c.matrixWorld)}),s})}).then(function(s){e.add(s);const o=[];if(r.children){const l=r.children;for(let c=0,u=l.length;c<u;c++){const f=l[c];o.push(Px(f,s,t,i))}}return Promise.all(o)})}function DF(n,e,t){const i=e.attributes,r=new pn;if(i.POSITION!==void 0){const l=t.json.accessors[i.POSITION],c=l.min,u=l.max;if(c!==void 0&&u!==void 0){if(r.set(new X(c[0],c[1],c[2]),new X(u[0],u[1],u[2])),l.normalized){const f=If(Ha[l.componentType]);r.min.multiplyScalar(f),r.max.multiplyScalar(f)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else return;const s=e.targets;if(s!==void 0){const l=new X,c=new X;for(let u=0,f=s.length;u<f;u++){const d=s[u];if(d.POSITION!==void 0){const p=t.json.accessors[d.POSITION],y=p.min,m=p.max;if(y!==void 0&&m!==void 0){if(c.setX(Math.max(Math.abs(y[0]),Math.abs(m[0]))),c.setY(Math.max(Math.abs(y[1]),Math.abs(m[1]))),c.setZ(Math.max(Math.abs(y[2]),Math.abs(m[2]))),p.normalized){const h=If(Ha[p.componentType]);c.multiplyScalar(h)}l.max(c)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}r.expandByVector(l)}n.boundingBox=r;const o=new Li;r.getCenter(o.center),o.radius=r.min.distanceTo(r.max)/2,n.boundingSphere=o}function Ix(n,e,t){const i=e.attributes,r=[];function s(o,l){return t.getDependency("accessor",o).then(function(c){n.setAttribute(l,c)})}for(const o in i){const l=Lf[o]||o.toLowerCase();l in n.attributes||r.push(s(i[o],l))}if(e.indices!==void 0&&!n.index){const o=t.getDependency("accessor",e.indices).then(function(l){n.setIndex(l)});r.push(o)}return ds(n,e),DF(n,e,t),Promise.all(r).then(function(){return e.targets!==void 0?PF(n,e.targets,t):n})}function Ox(n,e){let t=n.getIndex();if(t===null){const o=[],l=n.getAttribute("position");if(l!==void 0){for(let c=0;c<l.count;c++)o.push(c);n.setIndex(o),t=n.getIndex()}else return console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),n}const i=t.count-2,r=[];if(e===Hd)for(let o=1;o<=i;o++)r.push(t.getX(0)),r.push(t.getX(o)),r.push(t.getX(o+1));else for(let o=0;o<i;o++)o%2===0?(r.push(t.getX(o)),r.push(t.getX(o+1)),r.push(t.getX(o+2))):(r.push(t.getX(o+2)),r.push(t.getX(o+1)),r.push(t.getX(o)));r.length/3!==i&&console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const s=n.clone();return s.setIndex(r),s}const BF=Il(Object.freeze(Object.defineProperty({__proto__:null,GLTFLoader:mF},Symbol.toStringTag,{value:"Module"})));var Of={exports:{}},Nx;function FF(){return Nx||(Nx=1,function(n){function e(u){var f={};function d(y){if(f[y])return f[y].exports;var m=f[y]={i:y,l:!1,exports:{}};return u[y].call(m.exports,m,m.exports,d),m.l=!0,m.exports}d.m=u,d.c=f,d.i=function(y){return y},d.d=function(y,m,h){d.o(y,m)||Object.defineProperty(y,m,{configurable:!1,enumerable:!0,get:h})},d.r=function(y){Object.defineProperty(y,"__esModule",{value:!0})},d.n=function(y){var m=y&&y.__esModule?function(){return y.default}:function(){return y};return d.d(m,"a",m),m},d.o=function(y,m){return Object.prototype.hasOwnProperty.call(y,m)},d.p="/",d.oe=function(y){throw console.error(y),y};var p=d(d.s=ENTRY_MODULE);return p.default||p}var t="[\\.|\\-|\\+|\\w|/|@]+",i="\\(\\s*(/\\*.*?\\*/)?\\s*.*?("+t+").*?\\)";function r(u){return(u+"").replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}function s(u){return!isNaN(1*u)}function o(u,f,d){var p={};p[d]=[];var y=f.toString(),m=y.match(/^function\s?\w*\(\w+,\s*\w+,\s*(\w+)\)/);if(!m)return p;for(var h=m[1],b=new RegExp("(\\\\n|\\W)"+r(h)+i,"g"),v;v=b.exec(y);)v[3]!=="dll-reference"&&p[d].push(v[3]);for(b=new RegExp("\\("+r(h)+'\\("(dll-reference\\s('+t+'))"\\)\\)'+i,"g");v=b.exec(y);)u[v[2]]||(p[d].push(v[1]),u[v[2]]=__webpack_require__(v[1]).m),p[v[2]]=p[v[2]]||[],p[v[2]].push(v[4]);for(var g=Object.keys(p),x=0;x<g.length;x++)for(var _=0;_<p[g[x]].length;_++)s(p[g[x]][_])&&(p[g[x]][_]=1*p[g[x]][_]);return p}function l(u){var f=Object.keys(u);return f.reduce(function(d,p){return d||u[p].length>0},!1)}function c(u,f){for(var d={main:[f]},p={main:[]},y={main:{}};l(d);)for(var m=Object.keys(d),h=0;h<m.length;h++){var b=m[h],v=d[b],g=v.pop();if(y[b]=y[b]||{},!(y[b][g]||!u[b][g])){y[b][g]=!0,p[b]=p[b]||[],p[b].push(g);for(var x=o(u,u[b][g],b),_=Object.keys(x),E=0;E<_.length;E++)d[_[E]]=d[_[E]]||[],d[_[E]]=d[_[E]].concat(x[_[E]])}}return p}n.exports=function(u,f){f=f||{};var d={main:__webpack_modules__},p=f.all?{main:Object.keys(d.main)}:c(d,u),y="";Object.keys(p).filter(function(g){return g!=="main"}).forEach(function(g){for(var x=0;p[g][x];)x++;p[g].push(x),d[g][x]="(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })",y=y+"var "+g+" = ("+e.toString().replace("ENTRY_MODULE",JSON.stringify(x))+")({"+p[g].map(function(_){return""+JSON.stringify(_)+": "+d[g][_].toString()}).join(",")+`});
|
|
3182
|
-
`}),y=y+"new (("+e.toString().replace("ENTRY_MODULE",JSON.stringify(u))+")({"+p.main.map(function(g){return""+JSON.stringify(g)+": "+d.main[g].toString()}).join(",")+"}))(self);";var m=new window.Blob([y],{type:"text/javascript"});if(f.bare)return m;var h=window.URL||window.webkitURL||window.mozURL||window.msURL,b=h.createObjectURL(m),v=new window.Worker(b);return v.objectURL=b,v}}(Of)),Of.exports}function VF(n){var e=this.constructor;return this.then(function(t){return e.resolve(n()).then(function(){return t})},function(t){return e.resolve(n()).then(function(){return e.reject(t)})})}function kF(n){var e=this;return new e(function(t,i){if(!(n&&typeof n.length<"u"))return i(new TypeError(typeof n+" "+n+" is not iterable(cannot read property Symbol(Symbol.iterator))"));var r=Array.prototype.slice.call(n);if(r.length===0)return t([]);var s=r.length;function o(c,u){if(u&&(typeof u=="object"||typeof u=="function")){var f=u.then;if(typeof f=="function"){f.call(u,function(d){o(c,d)},function(d){r[c]={status:"rejected",reason:d},--s===0&&t(r)});return}}r[c]={status:"fulfilled",value:u},--s===0&&t(r)}for(var l=0;l<r.length;l++)o(l,r[l])})}function Dx(n,e){this.name="AggregateError",this.errors=n,this.message=e||""}Dx.prototype=Error.prototype;function zF(n){var e=this;return new e(function(t,i){if(!(n&&typeof n.length<"u"))return i(new TypeError("Promise.any accepts an array"));var r=Array.prototype.slice.call(n);if(r.length===0)return i();for(var s=[],o=0;o<r.length;o++)try{e.resolve(r[o]).then(t).catch(function(l){s.push(l),s.length===r.length&&i(new Dx(s,"All promises were rejected"))})}catch(l){i(l)}})}var UF=setTimeout;function Bx(n){return!!(n&&typeof n.length<"u")}function GF(){}function HF(n,e){return function(){n.apply(e,arguments)}}function wt(n){if(!(this instanceof wt))throw new TypeError("Promises must be constructed via new");if(typeof n!="function")throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],Vx(n,this)}function Fx(n,e){for(;n._state===3;)n=n._value;if(n._state===0){n._deferreds.push(e);return}n._handled=!0,wt._immediateFn(function(){var t=n._state===1?e.onFulfilled:e.onRejected;if(t===null){(n._state===1?Nf:ja)(e.promise,n._value);return}var i;try{i=t(n._value)}catch(r){ja(e.promise,r);return}Nf(e.promise,i)})}function Nf(n,e){try{if(e===n)throw new TypeError("A promise cannot be resolved with itself.");if(e&&(typeof e=="object"||typeof e=="function")){var t=e.then;if(e instanceof wt){n._state=3,n._value=e,Df(n);return}else if(typeof t=="function"){Vx(HF(t,e),n);return}}n._state=1,n._value=e,Df(n)}catch(i){ja(n,i)}}function ja(n,e){n._state=2,n._value=e,Df(n)}function Df(n){n._state===2&&n._deferreds.length===0&&wt._immediateFn(function(){n._handled||wt._unhandledRejectionFn(n._value)});for(var e=0,t=n._deferreds.length;e<t;e++)Fx(n,n._deferreds[e]);n._deferreds=null}function WF(n,e,t){this.onFulfilled=typeof n=="function"?n:null,this.onRejected=typeof e=="function"?e:null,this.promise=t}function Vx(n,e){var t=!1;try{n(function(i){t||(t=!0,Nf(e,i))},function(i){t||(t=!0,ja(e,i))})}catch(i){if(t)return;t=!0,ja(e,i)}}wt.prototype.catch=function(n){return this.then(null,n)},wt.prototype.then=function(n,e){var t=new this.constructor(GF);return Fx(this,new WF(n,e,t)),t},wt.prototype.finally=VF,wt.all=function(n){return new wt(function(e,t){if(!Bx(n))return t(new TypeError("Promise.all accepts an array"));var i=Array.prototype.slice.call(n);if(i.length===0)return e([]);var r=i.length;function s(l,c){try{if(c&&(typeof c=="object"||typeof c=="function")){var u=c.then;if(typeof u=="function"){u.call(c,function(f){s(l,f)},t);return}}i[l]=c,--r===0&&e(i)}catch(f){t(f)}}for(var o=0;o<i.length;o++)s(o,i[o])})},wt.any=zF,wt.allSettled=kF,wt.resolve=function(n){return n&&typeof n=="object"&&n.constructor===wt?n:new wt(function(e){e(n)})},wt.reject=function(n){return new wt(function(e,t){t(n)})},wt.race=function(n){return new wt(function(e,t){if(!Bx(n))return t(new TypeError("Promise.race accepts an array"));for(var i=0,r=n.length;i<r;i++)wt.resolve(n[i]).then(e,t)})},wt._immediateFn=typeof setImmediate=="function"&&function(n){setImmediate(n)}||function(n){UF(n,0)},wt._unhandledRejectionFn=function(e){typeof console<"u"&&console&&console.warn("Possible Unhandled Promise Rejection:",e)};const jF=Il(Object.freeze(Object.defineProperty({__proto__:null,default:wt},Symbol.toStringTag,{value:"Module"})));(function(n,e){(function(i,r){n.exports=r()})(er,()=>(()=>{var t=[(o,l,c)=>{c(1);var u=c(2),f=u.version,d=function(){this.Revision=f,this.defaultMaterialColor=16777215,this.defaultOpacity=1,this.modelPrefix=void 0,this.Geometry=c(3).Geometry,this.Glyph=c(16).Glyph,this.Glyphset=c(18).Glyphset,this.Pointset=c(22).Pointset,this.Label=c(17).Label,this.Lines=c(24).Lines,this.TextureArray=c(25).TextureArray,this.TextureSlides=c(27).TextureSlides,this.Renderer=c(30).Renderer,this.Scene=c(32).Scene,this.GeometryCSG=c(50).GeometryCSG,this.GlyphsetCSG=c(56).GlyphsetCSG,this.Viewport=c(43).Viewport,this.CameraControls=c(43).CameraControls,this.SmoothCameraTransition=c(43).SmoothCameraTransition,this.RayCaster=c(43).RayCaster,this.CameraAutoTumble=c(43).CameraAutoTumble,this.StereoEffect=c(43).StereoEffect,this.loadExternalFile=c(5).loadExternalFile,this.loadExternalFiles=c(5).loadExternalFiles,this.THREE=c(4)};o.exports=new d},o=>{o.exports=VL()},o=>{o.exports=JSON.parse('{"name":"zincjs","version":"1.11.3","description":"ZincJS (Web-based-Zinc-Visualisation)","main":"build/zinc.js","directories":{"doc":"docs"},"files":["package.json","LICENSE","README.md","src/*","build/zinc.js","build/zinc.frontend.js","build/zinc.js.map","webpack.config.js"],"scripts":{"build-bundle":"webpack --config webpack.frontend.js; webpack --config webpack.backend.js","build-backend":"webpack --config webpack.backend.js","test":"npm --prefix ./test install && npm --prefix ./test run test-ci","changelog":"auto-changelog -p --output CHANGELOG.md --template keepachangelog","jsdoc":"jsdoc -c jsdoc_conf.json","version":"npm run build-bundle;npm run jsdoc;npm run changelog; git add CHANGELOG.md docs","release:beta":"npm version prerelease --preid=beta; npm publish --tag beta","release:minor":"npm version minor; npm publish","release:patch":"npm version patch; npm publish"},"repository":{"type":"git","url":"git+https://github.com/alan-wu/ZincJS.git"},"keywords":["library","webgl","3d","zincjs"],"author":"Alan Wu <alan.wu@auckland.ac.nz>","license":"MIT","bugs":{"url":"https://github.com/alan-wu/ZincJS/issues"},"homepage":"http://alan-wu.github.io/ZincJS/","devDependencies":{"@babel/core":"^7.23.9","@babel/preset-env":"^7.23.9","auto-changelog":"^2.4.0","babel-loader":"^9.1.3","babel-preset-minify":"^0.5.1","file-loader":"^6.2.0","jsdoc":"^4.0.2","raw-loader":"^4.0.2","webpack":"^5.90.3","webpack-cli":"^5.1.4","webpack-node-externals":"^3.0.0"},"dependencies":{"css-element-queries":"^1.2.2","lodash":"^4.17.19","promise-polyfill":"^8.1.3","three":"^0.130.1","three-spritetext":"1.6.2","url-loader":"^4.1.1","url-polyfill":"^1.1.7","webworkify-webpack":"^2.1.5"}}')},function(o,l,c){var u=c(4),f=c(5).toBufferGeometry,d=(y,m,h)=>{var b=f(y,h),v=!1;1>h.opacity&&(v=!0);var g;if(b._video===void 0){var x=h.localTimeEnabled||h.localMorphColour;m?(g=m,g.morphTargets=x,g.morphNormals=h.localTimeEnabled):b instanceof u.BufferGeometry&&b.attributes.color===void 0?g=new u.MeshPhongMaterial({color:h.colour,morphTargets:x,morphNormals:h.localTimeEnabled,transparent:v,opacity:h.opacity,side:u.DoubleSide}):g=new u.MeshPhongMaterial({color:h.colour,morphTargets:x,morphNormals:h.localTimeEnabled,vertexColors:u.VertexColors,transparent:v,opacity:h.opacity,side:u.DoubleSide}),h.localMorphColour&&b.morphAttributes.color&&(g.onBeforeCompile=c(9).augmentMorphColor())}else{var _=b._video.createCanvasVideoTexture();g=new u.MeshBasicMaterial({morphTargets:h.localTimeEnabled,color:new u.Color(1,1,1),transparent:v,opacity:h.opacity,map:_,side:u.DoubleSide}),this.videoHandler=b._video}return new u.Mesh(b,g)},p=function(){c(10).ZincObject.call(this),this.videoHandler=void 0,this.isGeometry=!0,this.createMesh=(y,m,h)=>{if(!(this.morph&&this.morph.geometry&&y!=null)){var b=d(y,m,h);this.setMesh(b,h.localTimeEnabled,h.localMorphColour)}},this.calculateUVs=()=>{this.geometry.computeBoundingBox();var y=this.geometry.boundingBox.max,m=this.geometry.boundingBox.min,h=new u.Vector2(0-m.x,0-m.y),b=new u.Vector2(y.x-m.x,y.y-m.y);this.geometry.faceVertexUvs[0]=[];for(var v=0;v<this.geometry.faces.length;v++){var g=this.geometry.vertices[this.geometry.faces[v].a],x=this.geometry.vertices[this.geometry.faces[v].b],_=this.geometry.vertices[this.geometry.faces[v].c];geometry.faceVertexUvs[0].push([new u.Vector2((g.x+h.x)/b.x,(g.y+h.y)/b.y),new u.Vector2((x.x+h.x)/b.x,(x.y+h.y)/b.y),new u.Vector2((_.x+h.x)/b.x,(_.y+h.y)/b.y)])}geometry.uvsNeedUpdate=!0},this.checkTransparentMesh=function(){this._lod.checkTransparentMesh()},this.setWireframe=y=>{this.morph.material.wireframe=y},this.editVertices=function(y,m){if(y&&y.length){var h=this.getMorph(),b=h.geometry.getAttribute("position");if(!h||0>m)return;var v=3*m;y.forEach(g=>{b.array[v++]=g[0],b.array[v++]=g[1],b.array[v++]=g[2]}),b.needsUpdate=!0,h.geometry.computeBoundingBox(),h.geometry.computeBoundingSphere(),this.boundingBoxUpdateRequired=!0}}};p.prototype=Object.create(c(10).ZincObject.prototype),l.Geometry=p},o=>{o.exports=qB},(o,l,c)=>{function u(M){throw new TypeError('"'+M+'" is read-only')}var f=c(4),d=c(6).Geometry,p=c(7).default;function y(M){var T=M,A=c(0).modelPrefix;return A&&(A[A.length-1]!="/"&&u("prefix"),/^(?:[a-z]+:)?\/\//i.test(M)||(T=A+M)),T}function m(M,T){var A=(R,L)=>{try{var I=new URL(R,L).href;if(R&&2>R.split("?").length){var O=L.split("?");O.length===2&&(I=I+"?"+O[1])}return I}catch{console.error("There is an issue creting the url link with: ".concat(R,"."))}};if(!Array.isArray(M))return A(M,T);var C=[];return M.forEach(R=>{C.push(A(R,T))}),C}function h(M,T,A,C,R){var L=M.morphTargetInfluences,I=void 0;M.geometry&&(I=M.geometry.morphAttributes);var O=!1;if(L&&I&&I.position){C.set(0,0,0),R.set(0,0,0);for(var N=0;N<L.length;N++)0<L[N]&&(O=!0,A.setFromArray(I.position[N].array),C.add(A.min.multiplyScalar(L[N])),R.add(A.max.multiplyScalar(L[N])));O&&T.set(C,R)}O||T.setFromBufferAttribute(M.geometry.attributes.position),M.updateWorldMatrix(!0,!0),T.applyMatrix4(M.matrixWorld)}function b(M,T,A,C){var R=new XMLHttpRequest;R.open("GET",y(M),!0),R.onreadystatechange=()=>{R.readyState==4&&(R.status==200?A(R.responseText,T):C(M))},R.send(null)}function v(M,T,A){function C(N,w){I[w]=N,L++,L==R&&T(I)}for(var R=M.length,L=0,I=[],O=0;O<R;O++)b(M[O],O,C,A)}l.getColorsRGB=(M,T)=>{var A=Math.floor(T/3),C=T%3,R=0;C==0?R=M[A].r:C==1?R=M[A].g:C==2&&(R=M[A].b);var L=new f.Color(R);return[L.r,L.g,L.b]},l.updateMorphColorAttribute=function(M,T){if(T&&M&&M.morphAttributes&&M.morphAttributes.color){var A=M.morphAttributes.color,C=T.morphTargetInfluences,R=C.length;M.deleteAttribute("morphColor0"),M.deleteAttribute("morphColor1");for(var L=0,I=[],O=0;1>L||O<R;O++)0<C[O]&&(L++,I.push([O,C[O]]));I.length==2?(M.setAttribute("morphColor0",A[I[0][0]]),M.setAttribute("morphColor1",A[I[1][0]])):I.length==1&&(M.setAttribute("morphColor0",A[I[0][0]]),M.setAttribute("morphColor1",A[I[0][0]]))}},l.toBufferGeometry=(M,T)=>{var A;return M instanceof d?(T.localTimeEnabled&&!M.morphNormalsReady&&(M.morphNormals==null||M.morphNormals.length==0)&&M.computeMorphNormals(),A=M.toIndexedBufferGeometry(),T.localMorphColour&&g(M,A)):M instanceof f.BufferGeometry&&(A=M.clone()),A.colorsNeedUpdate=!0,A.computeBoundingBox(),A.computeBoundingSphere(),M._video&&(A._video=M._video),A},l.copyMorphColorsToBufferGeometry=(M,T)=>{if(M&&M.morphColors&&0<M.morphColors.length){for(var A=[],C=M.morphColors,R=c(5).getColorsRGB,L=0,I=C.length;L<I;L++){for(var O=C[L],N=[],w=0;w<M.faces.length;w++){var P=M.faces[w],B=R(O.colors,P.a);N.push(B[0],B[1],B[2]),B=R(O.colors,P.b),N.push(B[0],B[1],B[2]),B=R(O.colors,P.c),N.push(B[0],B[1],B[2])}var D=new f.Float32BufferAttribute(3*(3*M.faces.length),3);D.name=O.name,A.push(D.copyArray(N))}T.morphAttributes.color=A}};var g=(M,T)=>{if(M&&M.morphColors&&0<M.morphColors.length){for(var A=[],C=M.morphColors,R=c(5).getColorsRGB,L=0,I=C.length;L<I;L++){for(var O,N=C[L],w=[],P=0;P<3*N.colors.length;P++)O=R(N.colors,P),w.push(O[0],O[1],O[2]);var B=new f.Float32BufferAttribute(w,3);B.name=N.name,A.push(B)}T.morphAttributes.color=A}};l.mergeVertices=function(M){var T=1<arguments.length&&arguments[1]!==void 0?arguments[1]:1e-4;T=Math.max(T,Number.EPSILON);for(var A,C={},R=M.getIndex(),L=M.getAttribute("position"),I=R?R.count:L.count,O=0,N=Object.keys(M.attributes),w={},P={},ae=[],B=["getX","getY","getZ","getW"],D=0,V=N.length;D<V;D++){A=N[D],w[A]=[];var G=M.morphAttributes[A];G&&(P[A]=Array(G.length).fill().map(()=>[]))}for(var H=Math.log10(1/T),K=Math.pow(10,H),D=0;D<I;D++){for(var te=R?R.getX(D):D,W="",z=0,V=N.length;z<V;z++)for(var A=N[z],j=M.getAttribute(A),Z=j.itemSize,Q=0;Q<Z;Q++)W+="".concat(~~(j[B[Q]](te)*K),",");if(W in C)ae.push(C[W]);else{for(var z=0,V=N.length;z<V;z++)for(var ee,A=N[z],j=M.getAttribute(A),G=M.morphAttributes[A],Z=j.itemSize,ie=w[A],q=P[A],Q=0;Q<Z;Q++)if(ee=B[Q],ie.push(j[ee](te)),G)for(var ne=0,F=G.length;ne<F;ne++)q[ne].push(G[ne][ee](te));C[W]=O,ae.push(O),O++}}for(var $=M.clone(),D=0,V=N.length;D<V;D++){var j,A=N[D],J=M.getAttribute(A),k=new J.array.constructor(w[A]);if(J.isInterleavedBufferAttribute?j=new f.BufferAttribute(k,J.itemSize,J.itemSize):(j=M.getAttribute(A).clone(),j.setArray(k)),$.setAttribute(A,j),A in P)for(var U,z=0;z<P[A].length;z++)U=M.morphAttributes[A][z].clone(),U.setArray(new U.array.constructor(P[A][z])),$.morphAttributes[A][z]=U}var oe=Uint8Array;ae.length>=Math.pow(2,8)&&(oe=Uint16Array),ae.length>=Math.pow(2,16)&&(oe=Uint32Array);var le=new oe(ae),ae=null;return R===null?ae=new f.BufferAttribute(le,1):(ae=M.getIndex().clone(),ae.setArray(le)),$.setIndex(ae),$};function x(M){if(M.isMeshPhongMaterial){var T=new f.MeshToonMaterial({color:M.color.clone(),morphTargets:M.morphTargets,morphNormals:M.morphNormals,vertexColors:M.vertexColors,transparent:M.transparent,opacity:M.opacity,side:M.side});return M.map&&(T.map=M.map),T}return M}function _(M,T){if(T&&M>=T.length){var A=new f.BufferGeometry,C=new Float32Array(3*M),R=0;return T.forEach(L=>{C[R++]=L[0],C[R++]=L[1],C[R++]=L[2]}),A.setAttribute("position",new f.BufferAttribute(C,3)),A.setDrawRange(0,T.length),A}}function E(){var M=new Image;M.src=c(8);var T=new f.Texture;return T.image=M,T.needsUpdate=!0,T}function S(M,T,A,C,R,L){var I=new p(M,T,A,C,R,L);return I.material.sizeAttenuation=!1,I.material.alphaTest=.5,I.material.transparent=!0,I.material.depthWrite=!1,I.material.depthTest=!1,I.center.set(.5,-1.2),I.renderOrder=1e4,I}l.getBoundingBox=h,l.createNewURL=m,l.createBufferGeometry=_,l.getCircularTexture=E,l.resolveURL=y,l.loadExternalFile=b,l.loadExternalFiles=v,l.PhongToToon=x,l.createNewSpriteText=S},(o,l,c)=>{c.r(l),c.d(l,{Face3:()=>b,Geometry:()=>m});var u=c(4),f=new u.Matrix4,d=new u.Object3D,p=new u.Vector3,y=new u.Vector3;function m(){this.uuid=u.MathUtils.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.normals=[],this.uvs=[],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1,this.morphNormalsReady=!1}m.prototype=Object.assign(Object.create(u.EventDispatcher.prototype),{constructor:m,isGeometry:!0,applyMatrix4:function(g){for(var x,_=new u.Matrix3().getNormalMatrix(g),E=0,S=this.vertices.length;E<S;E++)x=this.vertices[E],x.applyMatrix4(g);for(var M,T=0,A=this.faces.length;T<A;T++){M=this.faces[T],M.normal.applyMatrix3(_).normalize();for(var C=0,R=M.vertexNormals.length;C<R;C++)M.vertexNormals[C].applyMatrix3(_).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this},rotateX:function(g){return f.makeRotationX(g),this.applyMatrix4(f),this},rotateY:function(g){return f.makeRotationY(g),this.applyMatrix4(f),this},rotateZ:function(g){return f.makeRotationZ(g),this.applyMatrix4(f),this},translate:function(g,x,_){return f.makeTranslation(g,x,_),this.applyMatrix4(f),this},scale:function(g,x,_){return f.makeScale(g,x,_),this.applyMatrix4(f),this},lookAt:function(g){return d.lookAt(g),d.updateMatrix(),this.applyMatrix4(d.matrix),this},fromBufferGeometry:function(g){function x(H,K,te,W){var z=A===void 0?[]:[_.colors[H].clone(),_.colors[K].clone(),_.colors[te].clone()],j=T===void 0?[]:[new u.Vector3().fromBufferAttribute(T,H),new u.Vector3().fromBufferAttribute(T,K),new u.Vector3().fromBufferAttribute(T,te)],Z=new b(H,K,te,j,z,W);_.faces.push(Z),C!==void 0&&_.faceVertexUvs[0].push([new u.Vector2().fromBufferAttribute(C,H),new u.Vector2().fromBufferAttribute(C,K),new u.Vector2().fromBufferAttribute(C,te)]),R!==void 0&&_.faceVertexUvs[1].push([new u.Vector2().fromBufferAttribute(R,H),new u.Vector2().fromBufferAttribute(R,K),new u.Vector2().fromBufferAttribute(R,te)])}var _=this,E=g.index===null?void 0:g.index,S=g.attributes;if(S.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;var M=S.position,T=S.normal,A=S.color,C=S.uv,R=S.uv2;R!==void 0&&(this.faceVertexUvs[1]=[]);for(var L=0;L<M.count;L++)_.vertices.push(new u.Vector3().fromBufferAttribute(M,L)),A!==void 0&&_.colors.push(new u.Color().fromBufferAttribute(A,L));var I=g.groups;if(0<I.length)for(var O=0;O<I.length;O++)for(var N=I[O],w=N.start,P=N.count,B=w,D=w+P;B<D;B+=3)E===void 0?x(B,B+1,B+2,N.materialIndex):x(E.getX(B),E.getX(B+1),E.getX(B+2),N.materialIndex);else if(E!==void 0)for(var V=0;V<E.count;V+=3)x(E.getX(V),E.getX(V+1),E.getX(V+2));else for(var G=0;G<M.count;G+=3)x(G,G+1,G+2);return this.computeFaceNormals(),g.boundingBox!==null&&(this.boundingBox=g.boundingBox.clone()),g.boundingSphere!==null&&(this.boundingSphere=g.boundingSphere.clone()),this},center:function(){return this.computeBoundingBox(),this.boundingBox.getCenter(p).negate(),this.translate(p.x,p.y,p.z),this},normalize:function(){this.computeBoundingSphere();var g=this.boundingSphere.center,x=this.boundingSphere.radius,_=x===0?1:1/x,E=new u.Matrix4;return E.set(_,0,0,-_*g.x,0,_,0,-_*g.y,0,0,_,-_*g.z,0,0,0,1),this.applyMatrix4(E),this},computeFaceNormals:function(){for(var g=new u.Vector3,x=new u.Vector3,_=0,E=this.faces.length;_<E;_++){var S=this.faces[_],M=this.vertices[S.a],T=this.vertices[S.b],A=this.vertices[S.c];g.subVectors(A,T),x.subVectors(M,T),g.cross(x),g.normalize(),S.normal.copy(g)}},computeVertexNormals:function(){for(var g=!(0<arguments.length&&arguments[0]!==void 0)||arguments[0],x=Array(this.vertices.length),_=0,E=this.vertices.length;_<E;_++)x[_]=new u.Vector3;if(g)for(var S=new u.Vector3,M=new u.Vector3,T=0,A=this.faces.length;T<A;T++){var C=this.faces[T],R=this.vertices[C.a],L=this.vertices[C.b],I=this.vertices[C.c];S.subVectors(I,L),M.subVectors(R,L),S.cross(M),x[C.a].add(S),x[C.b].add(S),x[C.c].add(S)}else{this.computeFaceNormals();for(var O,N=0,w=this.faces.length;N<w;N++)O=this.faces[N],x[O.a].add(O.normal),x[O.b].add(O.normal),x[O.c].add(O.normal)}for(var P=0,B=this.vertices.length;P<B;P++)x[P].normalize();for(var D=0,V=this.faces.length;D<V;D++){var G=this.faces[D],H=G.vertexNormals;H.length===3?(H[0].copy(x[G.a]),H[1].copy(x[G.b]),H[2].copy(x[G.c])):(H[0]=x[G.a].clone(),H[1]=x[G.b].clone(),H[2]=x[G.c].clone())}return 0<this.faces.length&&(this.normalsNeedUpdate=!0),x},computeFlatVertexNormals:function(){this.computeFaceNormals();for(var g=0,x=this.faces.length;g<x;g++){var _=this.faces[g],E=_.vertexNormals;E.length===3?(E[0].copy(_.normal),E[1].copy(_.normal),E[2].copy(_.normal)):(E[0]=_.normal.clone(),E[1]=_.normal.clone(),E[2]=_.normal.clone())}0<this.faces.length&&(this.normalsNeedUpdate=!0)},computeMorphNormals:function(){for(var g,x=0,_=this.faces.length;x<_;x++){g=this.faces[x],g.__originalFaceNormal?g.__originalFaceNormal.copy(g.normal):g.__originalFaceNormal=g.normal.clone(),g.__originalVertexNormals||(g.__originalVertexNormals=[]);for(var E=0,S=g.vertexNormals.length;E<S;E++)g.__originalVertexNormals[E]?g.__originalVertexNormals[E].copy(g.vertexNormals[E]):g.__originalVertexNormals[E]=g.vertexNormals[E].clone()}var M=new m;M.faces=this.faces;for(var T=0,A=this.morphTargets.length;T<A;T++){if(!this.morphNormals[T]){this.morphNormals[T]={},this.morphNormals[T].faceNormals=[],this.morphNormals[T].vertexNormals=[];for(var C=this.morphNormals[T].faceNormals,R=this.morphNormals[T].vertexNormals,L=0,I=this.faces.length;L<I;L++){var O=new u.Vector3,N={a:new u.Vector3,b:new u.Vector3,c:new u.Vector3};C.push(O),R.push(N)}}var w=this.morphNormals[T];M.vertices=this.morphTargets[T].vertices,M.computeFaceNormals();var P=M.computeVertexNormals();if(P&&0<P.length){this.morphTargets[T].normals=Array(this.vertices.length);for(var B=0;B<P.length;B++)this.morphTargets[T].normals[B]=P[B].clone()}for(var D=0,V=this.faces.length;D<V;D++){var G=this.faces[D],H=w.faceNormals[D],K=w.vertexNormals[D];H.copy(G.normal),K.a.copy(G.vertexNormals[0]),K.b.copy(G.vertexNormals[1]),K.c.copy(G.vertexNormals[2])}}for(var te,W=0,z=this.faces.length;W<z;W++)te=this.faces[W],te.normal=te.__originalFaceNormal,te.vertexNormals=te.__originalVertexNormals;this.morphNormalsReady=!0},computeBoundingBox:function(){this.boundingBox===null&&(this.boundingBox=new u.Box3),this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){this.boundingSphere===null&&(this.boundingSphere=new u.Sphere),this.boundingSphere.setFromPoints(this.vertices)},mergeMorph:function(g,x){var _=this.morphTargets.length,E=this.morphTargets,S=g.morphTargets,M=this.morphColors.length,T=this.morphColors,A=g.morphColors;if(0<_&&_==S.length)for(var C=0,R=E.length;C<R;C++){for(var L=E[C],I=S[C],O=0,N=I.vertices.length;O<N;O++){var w=I.vertices[O],P=w.clone();x!==void 0&&P.applyMatrix4(x),L.vertices.push(P)}if(L.normals&&I.normals)for(var B=0;B<I.normals.length;B+=3)y.set(I.normals2[B],I.normals2[B+1],I.normals2[B+2]),x!==void 0&&y.applyMatrix4(x),L.normals.push(y.x,y.y,y.z)}if(0<M&&M==A.length)for(var D=0,V=T.length;D<V;D++)for(var G=T[D],H=A[D],K=0,te=H.colors;K<te;K++)G.colors.push(H.colors[K].clone())},merge:function(g,x){var _=2<arguments.length&&arguments[2]!==void 0?arguments[2]:0;if(!(g&&g.isGeometry))return void console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",g);var E,S=this.vertices.length,M=this.vertices,T=g.vertices,A=g.normals,C=this.faces,R=g.faces,L=this.colors,I=g.colors;x!==void 0&&(E=new u.Matrix3().getNormalMatrix(x));for(var O=0,N=T.length;O<N;O++){var w=T[O],P=w.clone();x!==void 0&&P.applyMatrix4(x),M.push(P)}for(var B=0;B<A.length;B+=3)y.set(A[B],A[B+1],A[B+2]),x!==void 0&&y.applyMatrix4(x),this.normals.push(y.x,y.y,y.z);for(var D=0,V=I.length;D<V;D++)typeof I[D]=="number"?L.push(I[D]):L.push(I[D].clone());for(var G=0,H=R.length;G<H;G++){var K=R[G],te=void 0,W=void 0,z=K.vertexNormals,j=K.vertexColors,Z=new b(K.a+S,K.b+S,K.c+S);Z.normal.copy(K.normal),E!==void 0&&Z.normal.applyMatrix3(E).normalize();for(var Q=0,ee=z.length;Q<ee;Q++)te=z[Q].clone(),E!==void 0&&te.applyMatrix3(E).normalize(),Z.vertexNormals.push(te);Z.color.copy(K.color);for(var ie=0,q=j.length;ie<q;ie++)W=j[ie],Z.vertexColors.push(W.clone());Z.materialIndex=K.materialIndex+_,C.push(Z)}for(var ne,F=0,$=g.faceVertexUvs.length;F<$;F++){ne=g.faceVertexUvs[F],this.faceVertexUvs[F]===void 0&&(this.faceVertexUvs[F]=[]);for(var J=0,k=ne.length;J<k;J++){for(var U=ne[J],oe=[],le=0,ae=U.length;le<ae;le++)oe.push(U[le].clone());this.faceVertexUvs[F].push(oe)}}this.mergeMorph(g,x)},mergeMesh:function(g){return g&&g.isMesh?(g.matrixAutoUpdate&&g.updateMatrix(),void this.merge(g.geometry,g.matrix)):void console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",g)},mergeVertices:function(){for(var g=0<arguments.length&&arguments[0]!==void 0?arguments[0]:4,x={},_=[],E=[],S=Math.pow(10,g),M=0,T=this.vertices.length;M<T;M++){var A=this.vertices[M],C=Math.round(A.x*S)+"_"+Math.round(A.y*S)+"_"+Math.round(A.z*S);x[C]===void 0?(x[C]=M,_.push(this.vertices[M]),E[M]=_.length-1):E[M]=E[x[C]]}for(var R,L=[],I=0,O=this.faces.length;I<O;I++){R=this.faces[I],R.a=E[R.a],R.b=E[R.b],R.c=E[R.c];for(var N=[R.a,R.b,R.c],w=0;3>w;w++)if(N[w]===N[(w+1)%3]){L.push(I);break}}for(var P,B=L.length-1;0<=B;B--){P=L[B],this.faces.splice(P,1);for(var D=0,V=this.faceVertexUvs.length;D<V;D++)this.faceVertexUvs[D].splice(P,1)}var G=this.vertices.length-_.length;return this.vertices=_,G},setFromPoints:function(g){this.vertices=[];for(var x,_=0,E=g.length;_<E;_++)x=g[_],this.vertices.push(new u.Vector3(x.x,x.y,x.z||0));return this},sortFacesByMaterialIndex:function(){for(var g=this.faces,x=g.length,_=0;_<x;_++)g[_]._id=_;g.sort(function(R,L){return R.materialIndex-L.materialIndex});var E,S,M=this.faceVertexUvs[0],T=this.faceVertexUvs[1];M&&M.length===x&&(E=[]),T&&T.length===x&&(S=[]);for(var A,C=0;C<x;C++)A=g[C]._id,E&&E.push(M[A]),S&&S.push(T[A]);E&&(this.faceVertexUvs[0]=E),S&&(this.faceVertexUvs[1]=S)},toJSON:function(){function g(q,ne,F){return F?q|1<<ne:q&~(1<<ne)}function x(q){var ne=q.x.toString()+q.y.toString()+q.z.toString();return O[ne]===void 0&&(O[ne]=I.length/3,I.push(q.x,q.y,q.z)),O[ne]}function _(q){var ne=q.r.toString()+q.g.toString()+q.b.toString();return w[ne]===void 0&&(w[ne]=N.length,N.push(q.getHex())),w[ne]}function E(q){var ne=q.x.toString()+q.y.toString();return B[ne]===void 0&&(B[ne]=P.length/2,P.push(q.x,q.y)),B[ne]}var S={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(S.uuid=this.uuid,S.type=this.type,this.name!==""&&(S.name=this.name),this.parameters!==void 0){var M=this.parameters;for(var T in M)M[T]!==void 0&&(S[T]=M[T]);return S}for(var A,C=[],R=0;R<this.vertices.length;R++)A=this.vertices[R],C.push(A.x,A.y,A.z);for(var L=[],I=[],O={},N=[],w={},P=[],B={},D=0;D<this.faces.length;D++){var V=this.faces[D],G=!0,H=!1,K=this.faceVertexUvs[0][D]!==void 0,te=0<V.normal.length(),W=0<V.vertexNormals.length,z=V.color.r!==1||V.color.g!==1||V.color.b!==1,j=0<V.vertexColors.length,Z=0;if(Z=g(Z,0,0),Z=g(Z,1,G),Z=g(Z,2,H),Z=g(Z,3,K),Z=g(Z,4,te),Z=g(Z,5,W),Z=g(Z,6,z),Z=g(Z,7,j),L.push(Z),L.push(V.a,V.b,V.c),L.push(V.materialIndex),K){var Q=this.faceVertexUvs[0][D];L.push(E(Q[0]),E(Q[1]),E(Q[2]))}if(te&&L.push(x(V.normal)),W){var ee=V.vertexNormals;L.push(x(ee[0]),x(ee[1]),x(ee[2]))}if(z&&L.push(_(V.color)),j){var ie=V.vertexColors;L.push(_(ie[0]),_(ie[1]),_(ie[2]))}}return S.data={},S.data.vertices=C,S.data.normals=I,0<N.length&&(S.data.colors=N),0<P.length&&(S.data.uvs=[P]),S.data.faces=L,S},clone:function(){return new m().copy(this)},copy:function(g){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=g.name;for(var x=g.vertices,_=0,E=x.length;_<E;_++)this.vertices.push(x[_].clone());for(var S=g.colors,M=0,T=S.length;M<T;M++)this.colors.push(S[M].clone());for(var A=g.faces,C=0,R=A.length;C<R;C++)this.faces.push(A[C].clone());for(var L,I=0,O=g.faceVertexUvs.length;I<O;I++){L=g.faceVertexUvs[I],this.faceVertexUvs[I]===void 0&&(this.faceVertexUvs[I]=[]);for(var N=0,w=L.length;N<w;N++){for(var P,B=L[N],D=[],V=0,G=B.length;V<G;V++)P=B[V],D.push(P.clone());this.faceVertexUvs[I].push(D)}}for(var H,K=g.morphTargets,te=0,W=K.length;te<W;te++){if(H={},H.name=K[te].name,K[te].vertices!==void 0){H.vertices=[];for(var z=0,j=K[te].vertices.length;z<j;z++)H.vertices.push(K[te].vertices[z].clone())}if(K[te].normals!==void 0){H.normals=[];for(var Z=0,Q=K[te].normals.length;Z<Q;Z++)H.normals.push(K[te].normals[Z].clone())}this.morphTargets.push(H)}for(var ee,ie=g.morphNormals,q=0,ne=ie.length;q<ne;q++){if(ee={},ie[q].vertexNormals!==void 0){ee.vertexNormals=[];for(var F=0,$=ie[q].vertexNormals.length;F<$;F++){var J=ie[q].vertexNormals[F],k={};k.a=J.a.clone(),k.b=J.b.clone(),k.c=J.c.clone(),ee.vertexNormals.push(k)}}if(ie[q].faceNormals!==void 0){ee.faceNormals=[];for(var U=0,oe=ie[q].faceNormals.length;U<oe;U++)ee.faceNormals.push(ie[q].faceNormals[U].clone())}this.morphNormals.push(ee)}for(var le=g.skinWeights,ae=0,he=le.length;ae<he;ae++)this.skinWeights.push(le[ae].clone());for(var ve=g.skinIndices,we=0,ce=ve.length;we<ce;we++)this.skinIndices.push(ve[we].clone());for(var ge=g.lineDistances,re=0,xe=ge.length;re<xe;re++)this.lineDistances.push(ge[re]);var fe=g.boundingBox;fe!==null&&(this.boundingBox=fe.clone());var ye=g.boundingSphere;return ye!==null&&(this.boundingSphere=ye.clone()),this.elementsNeedUpdate=g.elementsNeedUpdate,this.verticesNeedUpdate=g.verticesNeedUpdate,this.uvsNeedUpdate=g.uvsNeedUpdate,this.normalsNeedUpdate=g.normalsNeedUpdate,this.colorsNeedUpdate=g.colorsNeedUpdate,this.lineDistancesNeedUpdate=g.lineDistancesNeedUpdate,this.groupsNeedUpdate=g.groupsNeedUpdate,this},computeGroups(){var v,g,x=[],_=void 0,E=this.faces;for(g=0;g<E.length;g++){var S=E[g];S.materialIndex!==_&&(_=S.materialIndex,v!==void 0&&(v.count=3*g-v.start,x.push(v)),v={start:3*g,materialIndex:_})}return v!==void 0&&(v.count=3*g-v.start,x.push(v)),x},toBufferGeometry:function(){var g=new h().fromGeometry(this),x=new u.BufferGeometry,_=new Float32Array(3*g.vertices.length);if(x.setAttribute("position",new u.BufferAttribute(_,3).copyVector3sArray(g.vertices)),0<g.normals.length){var E=new Float32Array(3*g.normals.length);x.setAttribute("normal",new u.BufferAttribute(E,3).copyVector3sArray(g.normals))}if(0<g.colors.length){var S=new Float32Array(3*g.colors.length);x.setAttribute("color",new u.BufferAttribute(S,3).copyColorsArray(g.colors))}if(0<g.uvs.length){var M=new Float32Array(2*g.uvs.length);x.setAttribute("uv",new u.BufferAttribute(M,2).copyVector2sArray(g.uvs))}if(0<g.uvs2.length){var T=new Float32Array(2*g.uvs2.length);x.setAttribute("uv2",new u.BufferAttribute(T,2).copyVector2sArray(g.uvs2))}for(var A in x.groups=g.groups,g.morphTargets){for(var C=[],R=g.morphTargets[A],L=0,I=R.length;L<I;L++){var O=R[L],N=new u.Float32BufferAttribute(3*O.data.length,3);N.name=O.name,C.push(N.copyVector3sArray(O.data))}x.morphAttributes[A]=C}if(0<g.skinIndices.length){var w=new u.Float32BufferAttribute(4*g.skinIndices.length,4);x.setAttribute("skinIndex",w.copyVector4sArray(g.skinIndices))}if(0<g.skinWeights.length){var P=new u.Float32BufferAttribute(4*g.skinWeights.length,4);x.setAttribute("skinWeight",P.copyVector4sArray(g.skinWeights))}return g.boundingSphere!==null&&(x.boundingSphere=g.boundingSphere.clone()),g.boundingBox!==null&&(x.boundingBox=g.boundingBox.clone()),x},toIndexedBufferGeometry:function(){var g=new u.BufferGeometry,x=new Float32Array(3*this.vertices.length);if(g.setAttribute("position",new u.BufferAttribute(x,3).copyVector3sArray(this.vertices)),0<this.normals.length){var _=new Float32Array(this.normals.length),E=new u.BufferAttribute(_,3).copyArray(this.normals);g.setAttribute("normal",E)}if(0<this.uvs.length&&0<this.uvs[0].length){var S=new Float32Array(2*this.uvs[0].length);g.setAttribute("uv",new u.BufferAttribute(S,2).copyArray(this.uvs[0]))}if(1<this.uvs.length&&0<this.uvs[1].length){var M=new Float32Array(2*this.uvs[1].length);g.setAttribute("uv2",new u.BufferAttribute(M,2).copyArray(this.uvs[1]))}if(0<this.colors.length){for(var T=[],A=0;A<this.colors.length;A++)T.push(new u.Color(this.colors[A]));var C=new Float32Array(3*T.length);g.setAttribute("color",new u.BufferAttribute(C,3).copyColorsArray(T))}else{for(var R=new Float32Array(3*this.vertices.length),L=0;L<3*this.vertices.length;L++)R[L]=1;g.setAttribute("color",new u.BufferAttribute(R,3))}if(0<this.faces.length){for(var I=[],O=[],N=0;N<this.faces.length;N++){O.push(this.faces[N].a,this.faces[N].b,this.faces[N].c);var w=this.faces[N].vertexColors;if(w.length===3)I.push(w[0],w[1],w[2]);else{var P=this.faces[N].color;I.push(P,P,P)}}g.setIndex(O),g.groups=this.computeGroups()}if(0<this.morphTargets.length){for(var B=[],D=[],V=0,G=this.morphTargets.length;V<G;V++){var H=this.morphTargets[V],K=new u.Float32BufferAttribute(3*H.vertices.length,3);if(K.name=H.name,B.push(K.copyVector3sArray(H.vertices)),H.normals){var te=new u.Float32BufferAttribute(3*H.normals.length,3);te.name=H.name,D.push(te.copyVector3sArray(H.normals))}}g.morphAttributes.position=B,g.morphAttributes.normal=D}if(0<this.skinIndices.length){var W=new u.Float32BufferAttribute(4*this.skinIndices.length,4);g.setAttribute("skinIndex",W.copyVector4sArray(this.skinIndices))}if(0<this.skinWeights.length){var z=new u.Float32BufferAttribute(4*this.skinWeights.length,4);g.setAttribute("skinWeight",z.copyVector4sArray(this.skinWeights))}return this.boundingSphere!==null&&(g.boundingSphere=this.boundingSphere.clone()),this.boundingBox!==null&&(g.boundingBox=this.boundingBox.clone()),g},computeTangents:function(){console.error("THREE.Geometry: .computeTangents() has been removed.")},computeLineDistances:function(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")},applyMatrix:function(g){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(g)},dispose:function(){this.dispatchEvent({type:"dispose"})}}),m.createBufferGeometryFromObject=function(v){var g=new u.BufferGeometry,x=v.geometry;if(v.isPoints||v.isLine){var _=new u.Float32BufferAttribute(3*x.vertices.length,3),E=new u.Float32BufferAttribute(3*x.colors.length,3);if(g.setAttribute("position",_.copyVector3sArray(x.vertices)),g.setAttribute("color",E.copyColorsArray(x.colors)),x.lineDistances&&x.lineDistances.length===x.vertices.length){var S=new u.Float32BufferAttribute(x.lineDistances.length,1);g.setAttribute("lineDistance",S.copyArray(x.lineDistances))}x.boundingSphere!==null&&(g.boundingSphere=x.boundingSphere.clone()),x.boundingBox!==null&&(g.boundingBox=x.boundingBox.clone())}else v.isMesh&&(g=x.toBufferGeometry());return g};class h{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(g){var x,_,E=[],S=void 0,M=g.faces;for(_=0;_<M.length;_++){var T=M[_];T.materialIndex!==S&&(S=T.materialIndex,x!==void 0&&(x.count=3*_-x.start,E.push(x)),x={start:3*_,materialIndex:S})}x!==void 0&&(x.count=3*_-x.start,E.push(x)),this.groups=E}fromGeometry(g){var x,_=g.faces,E=g.vertices,S=g.faceVertexUvs,M=S[0]&&0<S[0].length,T=S[1]&&0<S[1].length,A=g.morphTargets,C=A.length;if(0<C){x=[];for(var R=0;R<C;R++)x[R]={name:A[R].name,data:[]};this.morphTargets.position=x}var L,I=g.morphNormals,O=I.length;if(0<O){L=[];for(var N=0;N<O;N++)L[N]={name:I[N].name,data:[]};this.morphTargets.normal=L}var w=g.skinIndices,P=g.skinWeights,B=w.length===E.length,D=P.length===E.length;0<E.length&&_.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(var V,G=0;G<_.length;G++){V=_[G],this.vertices.push(E[V.a],E[V.b],E[V.c]);var H=V.vertexNormals;if(H.length===3)this.normals.push(H[0],H[1],H[2]);else{var K=V.normal;this.normals.push(K,K,K)}var te=V.vertexColors;if(te.length===3)this.colors.push(te[0],te[1],te[2]);else{var W=V.color;this.colors.push(W,W,W)}if(M===!0){var z=S[0][G];z===void 0?(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",G),this.uvs.push(new u.Vector2,new u.Vector2,new u.Vector2)):this.uvs.push(z[0],z[1],z[2])}if(T===!0){var j=S[1][G];j===void 0?(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",G),this.uvs2.push(new u.Vector2,new u.Vector2,new u.Vector2)):this.uvs2.push(j[0],j[1],j[2])}for(var Z,Q=0;Q<C;Q++)Z=A[Q].vertices,x[Q].data.push(Z[V.a],Z[V.b],Z[V.c]);for(var ee,ie=0;ie<O;ie++)ee=I[ie].vertexNormals[G],L[ie].data.push(ee.a,ee.b,ee.c);B&&this.skinIndices.push(w[V.a],w[V.b],w[V.c]),D&&this.skinWeights.push(P[V.a],P[V.b],P[V.c])}return this.computeGroups(g),this.verticesNeedUpdate=g.verticesNeedUpdate,this.normalsNeedUpdate=g.normalsNeedUpdate,this.colorsNeedUpdate=g.colorsNeedUpdate,this.uvsNeedUpdate=g.uvsNeedUpdate,this.groupsNeedUpdate=g.groupsNeedUpdate,g.boundingSphere!==null&&(this.boundingSphere=g.boundingSphere.clone()),g.boundingBox!==null&&(this.boundingBox=g.boundingBox.clone()),this}}class b{constructor(g,x,_,E,S){var M=5<arguments.length&&arguments[5]!==void 0?arguments[5]:0;this.a=g,this.b=x,this.c=_,this.normal=E&&E.isVector3?E:new u.Vector3,this.vertexNormals=Array.isArray(E)?E:[],this.color=S&&S.isColor?S:new u.Color,this.vertexColors=Array.isArray(S)?S:[],this.materialIndex=M}clone(){return new this.constructor().copy(this)}copy(g){this.a=g.a,this.b=g.b,this.c=g.c,this.normal.copy(g.normal),this.color.copy(g.color),this.materialIndex=g.materialIndex;for(var x=0,_=g.vertexNormals.length;x<_;x++)this.vertexNormals[x]=g.vertexNormals[x].clone();for(var E=0,S=g.vertexColors.length;E<S;E++)this.vertexColors[E]=g.vertexColors[E].clone();return this}}},o=>{o.exports=fF},o=>{o.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg=="},(o,l)=>{l.augmentMorphColor=function(){return function(c){c.vertexShader=c.vertexShader.replace("#include <color_pars_vertex>",["varying vec3 vColor;","attribute vec3 morphColor0;","attribute vec3 morphColor1;"].join(`
|
|
3182
|
+
`}),y=y+"new (("+e.toString().replace("ENTRY_MODULE",JSON.stringify(u))+")({"+p.main.map(function(g){return""+JSON.stringify(g)+": "+d.main[g].toString()}).join(",")+"}))(self);";var m=new window.Blob([y],{type:"text/javascript"});if(f.bare)return m;var h=window.URL||window.webkitURL||window.mozURL||window.msURL,b=h.createObjectURL(m),v=new window.Worker(b);return v.objectURL=b,v}}(Of)),Of.exports}function VF(n){var e=this.constructor;return this.then(function(t){return e.resolve(n()).then(function(){return t})},function(t){return e.resolve(n()).then(function(){return e.reject(t)})})}function kF(n){var e=this;return new e(function(t,i){if(!(n&&typeof n.length<"u"))return i(new TypeError(typeof n+" "+n+" is not iterable(cannot read property Symbol(Symbol.iterator))"));var r=Array.prototype.slice.call(n);if(r.length===0)return t([]);var s=r.length;function o(c,u){if(u&&(typeof u=="object"||typeof u=="function")){var f=u.then;if(typeof f=="function"){f.call(u,function(d){o(c,d)},function(d){r[c]={status:"rejected",reason:d},--s===0&&t(r)});return}}r[c]={status:"fulfilled",value:u},--s===0&&t(r)}for(var l=0;l<r.length;l++)o(l,r[l])})}function Dx(n,e){this.name="AggregateError",this.errors=n,this.message=e||""}Dx.prototype=Error.prototype;function zF(n){var e=this;return new e(function(t,i){if(!(n&&typeof n.length<"u"))return i(new TypeError("Promise.any accepts an array"));var r=Array.prototype.slice.call(n);if(r.length===0)return i();for(var s=[],o=0;o<r.length;o++)try{e.resolve(r[o]).then(t).catch(function(l){s.push(l),s.length===r.length&&i(new Dx(s,"All promises were rejected"))})}catch(l){i(l)}})}var UF=setTimeout;function Bx(n){return!!(n&&typeof n.length<"u")}function GF(){}function HF(n,e){return function(){n.apply(e,arguments)}}function wt(n){if(!(this instanceof wt))throw new TypeError("Promises must be constructed via new");if(typeof n!="function")throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],Vx(n,this)}function Fx(n,e){for(;n._state===3;)n=n._value;if(n._state===0){n._deferreds.push(e);return}n._handled=!0,wt._immediateFn(function(){var t=n._state===1?e.onFulfilled:e.onRejected;if(t===null){(n._state===1?Nf:ja)(e.promise,n._value);return}var i;try{i=t(n._value)}catch(r){ja(e.promise,r);return}Nf(e.promise,i)})}function Nf(n,e){try{if(e===n)throw new TypeError("A promise cannot be resolved with itself.");if(e&&(typeof e=="object"||typeof e=="function")){var t=e.then;if(e instanceof wt){n._state=3,n._value=e,Df(n);return}else if(typeof t=="function"){Vx(HF(t,e),n);return}}n._state=1,n._value=e,Df(n)}catch(i){ja(n,i)}}function ja(n,e){n._state=2,n._value=e,Df(n)}function Df(n){n._state===2&&n._deferreds.length===0&&wt._immediateFn(function(){n._handled||wt._unhandledRejectionFn(n._value)});for(var e=0,t=n._deferreds.length;e<t;e++)Fx(n,n._deferreds[e]);n._deferreds=null}function WF(n,e,t){this.onFulfilled=typeof n=="function"?n:null,this.onRejected=typeof e=="function"?e:null,this.promise=t}function Vx(n,e){var t=!1;try{n(function(i){t||(t=!0,Nf(e,i))},function(i){t||(t=!0,ja(e,i))})}catch(i){if(t)return;t=!0,ja(e,i)}}wt.prototype.catch=function(n){return this.then(null,n)},wt.prototype.then=function(n,e){var t=new this.constructor(GF);return Fx(this,new WF(n,e,t)),t},wt.prototype.finally=VF,wt.all=function(n){return new wt(function(e,t){if(!Bx(n))return t(new TypeError("Promise.all accepts an array"));var i=Array.prototype.slice.call(n);if(i.length===0)return e([]);var r=i.length;function s(l,c){try{if(c&&(typeof c=="object"||typeof c=="function")){var u=c.then;if(typeof u=="function"){u.call(c,function(f){s(l,f)},t);return}}i[l]=c,--r===0&&e(i)}catch(f){t(f)}}for(var o=0;o<i.length;o++)s(o,i[o])})},wt.any=zF,wt.allSettled=kF,wt.resolve=function(n){return n&&typeof n=="object"&&n.constructor===wt?n:new wt(function(e){e(n)})},wt.reject=function(n){return new wt(function(e,t){t(n)})},wt.race=function(n){return new wt(function(e,t){if(!Bx(n))return t(new TypeError("Promise.race accepts an array"));for(var i=0,r=n.length;i<r;i++)wt.resolve(n[i]).then(e,t)})},wt._immediateFn=typeof setImmediate=="function"&&function(n){setImmediate(n)}||function(n){UF(n,0)},wt._unhandledRejectionFn=function(e){typeof console<"u"&&console&&console.warn("Possible Unhandled Promise Rejection:",e)};const jF=Il(Object.freeze(Object.defineProperty({__proto__:null,default:wt},Symbol.toStringTag,{value:"Module"})));(function(n,e){(function(i,r){n.exports=r()})(er,()=>(()=>{var t=[(o,l,c)=>{c(1);var u=c(2),f=u.version,d=function(){this.Revision=f,this.defaultMaterialColor=16777215,this.defaultOpacity=1,this.modelPrefix=void 0,this.Geometry=c(3).Geometry,this.Glyph=c(16).Glyph,this.Glyphset=c(18).Glyphset,this.Pointset=c(22).Pointset,this.Label=c(17).Label,this.Lines=c(24).Lines,this.TextureArray=c(25).TextureArray,this.TextureSlides=c(27).TextureSlides,this.Renderer=c(30).Renderer,this.Scene=c(32).Scene,this.GeometryCSG=c(50).GeometryCSG,this.GlyphsetCSG=c(56).GlyphsetCSG,this.Viewport=c(43).Viewport,this.CameraControls=c(43).CameraControls,this.SmoothCameraTransition=c(43).SmoothCameraTransition,this.RayCaster=c(43).RayCaster,this.CameraAutoTumble=c(43).CameraAutoTumble,this.StereoEffect=c(43).StereoEffect,this.loadExternalFile=c(5).loadExternalFile,this.loadExternalFiles=c(5).loadExternalFiles,this.THREE=c(4)};o.exports=new d},o=>{o.exports=VL()},o=>{o.exports=JSON.parse('{"name":"zincjs","version":"1.11.4","description":"ZincJS (Web-based-Zinc-Visualisation)","main":"build/zinc.js","directories":{"doc":"docs"},"files":["package.json","LICENSE","README.md","src/*","build/zinc.js","build/zinc.frontend.js","build/zinc.js.map","webpack.config.js"],"scripts":{"build-bundle":"webpack --config webpack.frontend.js; webpack --config webpack.backend.js","build-backend":"webpack --config webpack.backend.js","test":"npm --prefix ./test install && npm --prefix ./test run test-ci","changelog":"auto-changelog -p --output CHANGELOG.md --template keepachangelog","jsdoc":"jsdoc -c jsdoc_conf.json","version":"npm run build-bundle;npm run jsdoc;npm run changelog; git add CHANGELOG.md docs","release:beta":"npm version prerelease --preid=beta; npm publish --tag beta","release:minor":"npm version minor; npm publish","release:patch":"npm version patch; npm publish"},"repository":{"type":"git","url":"git+https://github.com/alan-wu/ZincJS.git"},"keywords":["library","webgl","3d","zincjs"],"author":"Alan Wu <alan.wu@auckland.ac.nz>","license":"MIT","bugs":{"url":"https://github.com/alan-wu/ZincJS/issues"},"homepage":"http://alan-wu.github.io/ZincJS/","devDependencies":{"@babel/core":"^7.23.9","@babel/preset-env":"^7.23.9","auto-changelog":"^2.4.0","babel-loader":"^9.1.3","babel-preset-minify":"^0.5.1","file-loader":"^6.2.0","jsdoc":"^4.0.2","raw-loader":"^4.0.2","webpack":"^5.90.3","webpack-cli":"^5.1.4","webpack-node-externals":"^3.0.0"},"dependencies":{"css-element-queries":"^1.2.2","lodash":"^4.17.19","promise-polyfill":"^8.1.3","three":"^0.130.1","three-spritetext":"1.6.2","url-loader":"^4.1.1","url-polyfill":"^1.1.7","webworkify-webpack":"^2.1.5"}}')},function(o,l,c){var u=c(4),f=c(5).toBufferGeometry,d=(y,m,h)=>{var b=f(y,h),v=!1;1>h.opacity&&(v=!0);var g;if(b._video===void 0){var x=h.localTimeEnabled||h.localMorphColour;m?(g=m,g.morphTargets=x,g.morphNormals=h.localTimeEnabled):b instanceof u.BufferGeometry&&b.attributes.color===void 0?g=new u.MeshPhongMaterial({color:h.colour,morphTargets:x,morphNormals:h.localTimeEnabled,transparent:v,opacity:h.opacity,side:u.DoubleSide}):g=new u.MeshPhongMaterial({color:h.colour,morphTargets:x,morphNormals:h.localTimeEnabled,vertexColors:u.VertexColors,transparent:v,opacity:h.opacity,side:u.DoubleSide}),h.localMorphColour&&b.morphAttributes.color&&(g.onBeforeCompile=c(9).augmentMorphColor())}else{var _=b._video.createCanvasVideoTexture();g=new u.MeshBasicMaterial({morphTargets:h.localTimeEnabled,color:new u.Color(1,1,1),transparent:v,opacity:h.opacity,map:_,side:u.DoubleSide}),this.videoHandler=b._video}return new u.Mesh(b,g)},p=function(){c(10).ZincObject.call(this),this.videoHandler=void 0,this.isGeometry=!0,this.createMesh=(y,m,h)=>{if(!(this.morph&&this.morph.geometry&&y!=null)){var b=d(y,m,h);this.setMesh(b,h.localTimeEnabled,h.localMorphColour)}},this.calculateUVs=()=>{this.geometry.computeBoundingBox();var y=this.geometry.boundingBox.max,m=this.geometry.boundingBox.min,h=new u.Vector2(0-m.x,0-m.y),b=new u.Vector2(y.x-m.x,y.y-m.y);this.geometry.faceVertexUvs[0]=[];for(var v=0;v<this.geometry.faces.length;v++){var g=this.geometry.vertices[this.geometry.faces[v].a],x=this.geometry.vertices[this.geometry.faces[v].b],_=this.geometry.vertices[this.geometry.faces[v].c];geometry.faceVertexUvs[0].push([new u.Vector2((g.x+h.x)/b.x,(g.y+h.y)/b.y),new u.Vector2((x.x+h.x)/b.x,(x.y+h.y)/b.y),new u.Vector2((_.x+h.x)/b.x,(_.y+h.y)/b.y)])}geometry.uvsNeedUpdate=!0},this.checkTransparentMesh=function(){this._lod.checkTransparentMesh()},this.setWireframe=y=>{this.morph.material.wireframe=y},this.editVertices=function(y,m){if(y&&y.length){var h=this.getMorph(),b=h.geometry.getAttribute("position");if(!h||0>m)return;var v=3*m;y.forEach(g=>{b.array[v++]=g[0],b.array[v++]=g[1],b.array[v++]=g[2]}),b.needsUpdate=!0,h.geometry.computeBoundingBox(),h.geometry.computeBoundingSphere(),this.boundingBoxUpdateRequired=!0}}};p.prototype=Object.create(c(10).ZincObject.prototype),l.Geometry=p},o=>{o.exports=qB},(o,l,c)=>{function u(M){throw new TypeError('"'+M+'" is read-only')}var f=c(4),d=c(6).Geometry,p=c(7).default;function y(M){var T=M,A=c(0).modelPrefix;return A&&(A[A.length-1]!="/"&&u("prefix"),/^(?:[a-z]+:)?\/\//i.test(M)||(T=A+M)),T}function m(M,T){var A=(R,L)=>{try{var I=new URL(R,L).href;if(R&&2>R.split("?").length){var O=L.split("?");O.length===2&&(I=I+"?"+O[1])}return I}catch{console.error("There is an issue creting the url link with: ".concat(R,"."))}};if(!Array.isArray(M))return A(M,T);var C=[];return M.forEach(R=>{C.push(A(R,T))}),C}function h(M,T,A,C,R){var L=M.morphTargetInfluences,I=void 0;M.geometry&&(I=M.geometry.morphAttributes);var O=!1;if(L&&I&&I.position){C.set(0,0,0),R.set(0,0,0);for(var N=0;N<L.length;N++)0<L[N]&&(O=!0,A.setFromArray(I.position[N].array),C.add(A.min.multiplyScalar(L[N])),R.add(A.max.multiplyScalar(L[N])));O&&T.set(C,R)}O||T.setFromBufferAttribute(M.geometry.attributes.position),M.updateWorldMatrix(!0,!0),T.applyMatrix4(M.matrixWorld)}function b(M,T,A,C){var R=new XMLHttpRequest;R.open("GET",y(M),!0),R.onreadystatechange=()=>{R.readyState==4&&(R.status==200?A(R.responseText,T):C(M))},R.send(null)}function v(M,T,A){function C(N,w){I[w]=N,L++,L==R&&T(I)}for(var R=M.length,L=0,I=[],O=0;O<R;O++)b(M[O],O,C,A)}l.getColorsRGB=(M,T)=>{var A=Math.floor(T/3),C=T%3,R=0;C==0?R=M[A].r:C==1?R=M[A].g:C==2&&(R=M[A].b);var L=new f.Color(R);return[L.r,L.g,L.b]},l.updateMorphColorAttribute=function(M,T){if(T&&M&&M.morphAttributes&&M.morphAttributes.color){var A=M.morphAttributes.color,C=T.morphTargetInfluences,R=C.length;M.deleteAttribute("morphColor0"),M.deleteAttribute("morphColor1");for(var L=0,I=[],O=0;1>L||O<R;O++)0<C[O]&&(L++,I.push([O,C[O]]));I.length==2?(M.setAttribute("morphColor0",A[I[0][0]]),M.setAttribute("morphColor1",A[I[1][0]])):I.length==1&&(M.setAttribute("morphColor0",A[I[0][0]]),M.setAttribute("morphColor1",A[I[0][0]]))}},l.toBufferGeometry=(M,T)=>{var A;return M instanceof d?(T.localTimeEnabled&&!M.morphNormalsReady&&(M.morphNormals==null||M.morphNormals.length==0)&&M.computeMorphNormals(),A=M.toIndexedBufferGeometry(),T.localMorphColour&&g(M,A)):M instanceof f.BufferGeometry&&(A=M.clone()),A.colorsNeedUpdate=!0,A.computeBoundingBox(),A.computeBoundingSphere(),M._video&&(A._video=M._video),A},l.copyMorphColorsToBufferGeometry=(M,T)=>{if(M&&M.morphColors&&0<M.morphColors.length){for(var A=[],C=M.morphColors,R=c(5).getColorsRGB,L=0,I=C.length;L<I;L++){for(var O=C[L],N=[],w=0;w<M.faces.length;w++){var P=M.faces[w],B=R(O.colors,P.a);N.push(B[0],B[1],B[2]),B=R(O.colors,P.b),N.push(B[0],B[1],B[2]),B=R(O.colors,P.c),N.push(B[0],B[1],B[2])}var D=new f.Float32BufferAttribute(3*(3*M.faces.length),3);D.name=O.name,A.push(D.copyArray(N))}T.morphAttributes.color=A}};var g=(M,T)=>{if(M&&M.morphColors&&0<M.morphColors.length){for(var A=[],C=M.morphColors,R=c(5).getColorsRGB,L=0,I=C.length;L<I;L++){for(var O,N=C[L],w=[],P=0;P<3*N.colors.length;P++)O=R(N.colors,P),w.push(O[0],O[1],O[2]);var B=new f.Float32BufferAttribute(w,3);B.name=N.name,A.push(B)}T.morphAttributes.color=A}};l.mergeVertices=function(M){var T=1<arguments.length&&arguments[1]!==void 0?arguments[1]:1e-4;T=Math.max(T,Number.EPSILON);for(var A,C={},R=M.getIndex(),L=M.getAttribute("position"),I=R?R.count:L.count,O=0,N=Object.keys(M.attributes),w={},P={},ae=[],B=["getX","getY","getZ","getW"],D=0,V=N.length;D<V;D++){A=N[D],w[A]=[];var G=M.morphAttributes[A];G&&(P[A]=Array(G.length).fill().map(()=>[]))}for(var H=Math.log10(1/T),K=Math.pow(10,H),D=0;D<I;D++){for(var te=R?R.getX(D):D,W="",z=0,V=N.length;z<V;z++)for(var A=N[z],j=M.getAttribute(A),Z=j.itemSize,Q=0;Q<Z;Q++)W+="".concat(~~(j[B[Q]](te)*K),",");if(W in C)ae.push(C[W]);else{for(var z=0,V=N.length;z<V;z++)for(var ee,A=N[z],j=M.getAttribute(A),G=M.morphAttributes[A],Z=j.itemSize,ie=w[A],q=P[A],Q=0;Q<Z;Q++)if(ee=B[Q],ie.push(j[ee](te)),G)for(var ne=0,F=G.length;ne<F;ne++)q[ne].push(G[ne][ee](te));C[W]=O,ae.push(O),O++}}for(var $=M.clone(),D=0,V=N.length;D<V;D++){var j,A=N[D],J=M.getAttribute(A),k=new J.array.constructor(w[A]);if(J.isInterleavedBufferAttribute?j=new f.BufferAttribute(k,J.itemSize,J.itemSize):(j=M.getAttribute(A).clone(),j.setArray(k)),$.setAttribute(A,j),A in P)for(var U,z=0;z<P[A].length;z++)U=M.morphAttributes[A][z].clone(),U.setArray(new U.array.constructor(P[A][z])),$.morphAttributes[A][z]=U}var oe=Uint8Array;ae.length>=Math.pow(2,8)&&(oe=Uint16Array),ae.length>=Math.pow(2,16)&&(oe=Uint32Array);var le=new oe(ae),ae=null;return R===null?ae=new f.BufferAttribute(le,1):(ae=M.getIndex().clone(),ae.setArray(le)),$.setIndex(ae),$};function x(M){if(M.isMeshPhongMaterial){var T=new f.MeshToonMaterial({color:M.color.clone(),morphTargets:M.morphTargets,morphNormals:M.morphNormals,vertexColors:M.vertexColors,transparent:M.transparent,opacity:M.opacity,side:M.side});return M.map&&(T.map=M.map),T}return M}function _(M,T){if(T&&M>=T.length){var A=new f.BufferGeometry,C=new Float32Array(3*M),R=0;return T.forEach(L=>{C[R++]=L[0],C[R++]=L[1],C[R++]=L[2]}),A.setAttribute("position",new f.BufferAttribute(C,3)),A.setDrawRange(0,T.length),A}}function E(){var M=new Image;M.src=c(8);var T=new f.Texture;return T.image=M,T.needsUpdate=!0,T}function S(M,T,A,C,R,L){var I=new p(M,T,A,C,R,L);return I.fontFace=C,I.fontSize=R,I.fontWeight=L,I.material.map.generateMipmaps=!1,I.material.map.anisotropy=4,I.material.sizeAttenuation=!1,I.material.alphaTest=.5,I.material.transparent=!0,I.material.depthWrite=!1,I.material.depthTest=!1,I.center.set(.5,-1.2),I.renderOrder=1e4,I}l.getBoundingBox=h,l.createNewURL=m,l.createBufferGeometry=_,l.getCircularTexture=E,l.resolveURL=y,l.loadExternalFile=b,l.loadExternalFiles=v,l.PhongToToon=x,l.createNewSpriteText=S},(o,l,c)=>{c.r(l),c.d(l,{Face3:()=>b,Geometry:()=>m});var u=c(4),f=new u.Matrix4,d=new u.Object3D,p=new u.Vector3,y=new u.Vector3;function m(){this.uuid=u.MathUtils.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.normals=[],this.uvs=[],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1,this.morphNormalsReady=!1}m.prototype=Object.assign(Object.create(u.EventDispatcher.prototype),{constructor:m,isGeometry:!0,applyMatrix4:function(g){for(var x,_=new u.Matrix3().getNormalMatrix(g),E=0,S=this.vertices.length;E<S;E++)x=this.vertices[E],x.applyMatrix4(g);for(var M,T=0,A=this.faces.length;T<A;T++){M=this.faces[T],M.normal.applyMatrix3(_).normalize();for(var C=0,R=M.vertexNormals.length;C<R;C++)M.vertexNormals[C].applyMatrix3(_).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this},rotateX:function(g){return f.makeRotationX(g),this.applyMatrix4(f),this},rotateY:function(g){return f.makeRotationY(g),this.applyMatrix4(f),this},rotateZ:function(g){return f.makeRotationZ(g),this.applyMatrix4(f),this},translate:function(g,x,_){return f.makeTranslation(g,x,_),this.applyMatrix4(f),this},scale:function(g,x,_){return f.makeScale(g,x,_),this.applyMatrix4(f),this},lookAt:function(g){return d.lookAt(g),d.updateMatrix(),this.applyMatrix4(d.matrix),this},fromBufferGeometry:function(g){function x(H,K,te,W){var z=A===void 0?[]:[_.colors[H].clone(),_.colors[K].clone(),_.colors[te].clone()],j=T===void 0?[]:[new u.Vector3().fromBufferAttribute(T,H),new u.Vector3().fromBufferAttribute(T,K),new u.Vector3().fromBufferAttribute(T,te)],Z=new b(H,K,te,j,z,W);_.faces.push(Z),C!==void 0&&_.faceVertexUvs[0].push([new u.Vector2().fromBufferAttribute(C,H),new u.Vector2().fromBufferAttribute(C,K),new u.Vector2().fromBufferAttribute(C,te)]),R!==void 0&&_.faceVertexUvs[1].push([new u.Vector2().fromBufferAttribute(R,H),new u.Vector2().fromBufferAttribute(R,K),new u.Vector2().fromBufferAttribute(R,te)])}var _=this,E=g.index===null?void 0:g.index,S=g.attributes;if(S.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;var M=S.position,T=S.normal,A=S.color,C=S.uv,R=S.uv2;R!==void 0&&(this.faceVertexUvs[1]=[]);for(var L=0;L<M.count;L++)_.vertices.push(new u.Vector3().fromBufferAttribute(M,L)),A!==void 0&&_.colors.push(new u.Color().fromBufferAttribute(A,L));var I=g.groups;if(0<I.length)for(var O=0;O<I.length;O++)for(var N=I[O],w=N.start,P=N.count,B=w,D=w+P;B<D;B+=3)E===void 0?x(B,B+1,B+2,N.materialIndex):x(E.getX(B),E.getX(B+1),E.getX(B+2),N.materialIndex);else if(E!==void 0)for(var V=0;V<E.count;V+=3)x(E.getX(V),E.getX(V+1),E.getX(V+2));else for(var G=0;G<M.count;G+=3)x(G,G+1,G+2);return this.computeFaceNormals(),g.boundingBox!==null&&(this.boundingBox=g.boundingBox.clone()),g.boundingSphere!==null&&(this.boundingSphere=g.boundingSphere.clone()),this},center:function(){return this.computeBoundingBox(),this.boundingBox.getCenter(p).negate(),this.translate(p.x,p.y,p.z),this},normalize:function(){this.computeBoundingSphere();var g=this.boundingSphere.center,x=this.boundingSphere.radius,_=x===0?1:1/x,E=new u.Matrix4;return E.set(_,0,0,-_*g.x,0,_,0,-_*g.y,0,0,_,-_*g.z,0,0,0,1),this.applyMatrix4(E),this},computeFaceNormals:function(){for(var g=new u.Vector3,x=new u.Vector3,_=0,E=this.faces.length;_<E;_++){var S=this.faces[_],M=this.vertices[S.a],T=this.vertices[S.b],A=this.vertices[S.c];g.subVectors(A,T),x.subVectors(M,T),g.cross(x),g.normalize(),S.normal.copy(g)}},computeVertexNormals:function(){for(var g=!(0<arguments.length&&arguments[0]!==void 0)||arguments[0],x=Array(this.vertices.length),_=0,E=this.vertices.length;_<E;_++)x[_]=new u.Vector3;if(g)for(var S=new u.Vector3,M=new u.Vector3,T=0,A=this.faces.length;T<A;T++){var C=this.faces[T],R=this.vertices[C.a],L=this.vertices[C.b],I=this.vertices[C.c];S.subVectors(I,L),M.subVectors(R,L),S.cross(M),x[C.a].add(S),x[C.b].add(S),x[C.c].add(S)}else{this.computeFaceNormals();for(var O,N=0,w=this.faces.length;N<w;N++)O=this.faces[N],x[O.a].add(O.normal),x[O.b].add(O.normal),x[O.c].add(O.normal)}for(var P=0,B=this.vertices.length;P<B;P++)x[P].normalize();for(var D=0,V=this.faces.length;D<V;D++){var G=this.faces[D],H=G.vertexNormals;H.length===3?(H[0].copy(x[G.a]),H[1].copy(x[G.b]),H[2].copy(x[G.c])):(H[0]=x[G.a].clone(),H[1]=x[G.b].clone(),H[2]=x[G.c].clone())}return 0<this.faces.length&&(this.normalsNeedUpdate=!0),x},computeFlatVertexNormals:function(){this.computeFaceNormals();for(var g=0,x=this.faces.length;g<x;g++){var _=this.faces[g],E=_.vertexNormals;E.length===3?(E[0].copy(_.normal),E[1].copy(_.normal),E[2].copy(_.normal)):(E[0]=_.normal.clone(),E[1]=_.normal.clone(),E[2]=_.normal.clone())}0<this.faces.length&&(this.normalsNeedUpdate=!0)},computeMorphNormals:function(){for(var g,x=0,_=this.faces.length;x<_;x++){g=this.faces[x],g.__originalFaceNormal?g.__originalFaceNormal.copy(g.normal):g.__originalFaceNormal=g.normal.clone(),g.__originalVertexNormals||(g.__originalVertexNormals=[]);for(var E=0,S=g.vertexNormals.length;E<S;E++)g.__originalVertexNormals[E]?g.__originalVertexNormals[E].copy(g.vertexNormals[E]):g.__originalVertexNormals[E]=g.vertexNormals[E].clone()}var M=new m;M.faces=this.faces;for(var T=0,A=this.morphTargets.length;T<A;T++){if(!this.morphNormals[T]){this.morphNormals[T]={},this.morphNormals[T].faceNormals=[],this.morphNormals[T].vertexNormals=[];for(var C=this.morphNormals[T].faceNormals,R=this.morphNormals[T].vertexNormals,L=0,I=this.faces.length;L<I;L++){var O=new u.Vector3,N={a:new u.Vector3,b:new u.Vector3,c:new u.Vector3};C.push(O),R.push(N)}}var w=this.morphNormals[T];M.vertices=this.morphTargets[T].vertices,M.computeFaceNormals();var P=M.computeVertexNormals();if(P&&0<P.length){this.morphTargets[T].normals=Array(this.vertices.length);for(var B=0;B<P.length;B++)this.morphTargets[T].normals[B]=P[B].clone()}for(var D=0,V=this.faces.length;D<V;D++){var G=this.faces[D],H=w.faceNormals[D],K=w.vertexNormals[D];H.copy(G.normal),K.a.copy(G.vertexNormals[0]),K.b.copy(G.vertexNormals[1]),K.c.copy(G.vertexNormals[2])}}for(var te,W=0,z=this.faces.length;W<z;W++)te=this.faces[W],te.normal=te.__originalFaceNormal,te.vertexNormals=te.__originalVertexNormals;this.morphNormalsReady=!0},computeBoundingBox:function(){this.boundingBox===null&&(this.boundingBox=new u.Box3),this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){this.boundingSphere===null&&(this.boundingSphere=new u.Sphere),this.boundingSphere.setFromPoints(this.vertices)},mergeMorph:function(g,x){var _=this.morphTargets.length,E=this.morphTargets,S=g.morphTargets,M=this.morphColors.length,T=this.morphColors,A=g.morphColors;if(0<_&&_==S.length)for(var C=0,R=E.length;C<R;C++){for(var L=E[C],I=S[C],O=0,N=I.vertices.length;O<N;O++){var w=I.vertices[O],P=w.clone();x!==void 0&&P.applyMatrix4(x),L.vertices.push(P)}if(L.normals&&I.normals)for(var B=0;B<I.normals.length;B+=3)y.set(I.normals2[B],I.normals2[B+1],I.normals2[B+2]),x!==void 0&&y.applyMatrix4(x),L.normals.push(y.x,y.y,y.z)}if(0<M&&M==A.length)for(var D=0,V=T.length;D<V;D++)for(var G=T[D],H=A[D],K=0,te=H.colors;K<te;K++)G.colors.push(H.colors[K].clone())},merge:function(g,x){var _=2<arguments.length&&arguments[2]!==void 0?arguments[2]:0;if(!(g&&g.isGeometry))return void console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",g);var E,S=this.vertices.length,M=this.vertices,T=g.vertices,A=g.normals,C=this.faces,R=g.faces,L=this.colors,I=g.colors;x!==void 0&&(E=new u.Matrix3().getNormalMatrix(x));for(var O=0,N=T.length;O<N;O++){var w=T[O],P=w.clone();x!==void 0&&P.applyMatrix4(x),M.push(P)}for(var B=0;B<A.length;B+=3)y.set(A[B],A[B+1],A[B+2]),x!==void 0&&y.applyMatrix4(x),this.normals.push(y.x,y.y,y.z);for(var D=0,V=I.length;D<V;D++)typeof I[D]=="number"?L.push(I[D]):L.push(I[D].clone());for(var G=0,H=R.length;G<H;G++){var K=R[G],te=void 0,W=void 0,z=K.vertexNormals,j=K.vertexColors,Z=new b(K.a+S,K.b+S,K.c+S);Z.normal.copy(K.normal),E!==void 0&&Z.normal.applyMatrix3(E).normalize();for(var Q=0,ee=z.length;Q<ee;Q++)te=z[Q].clone(),E!==void 0&&te.applyMatrix3(E).normalize(),Z.vertexNormals.push(te);Z.color.copy(K.color);for(var ie=0,q=j.length;ie<q;ie++)W=j[ie],Z.vertexColors.push(W.clone());Z.materialIndex=K.materialIndex+_,C.push(Z)}for(var ne,F=0,$=g.faceVertexUvs.length;F<$;F++){ne=g.faceVertexUvs[F],this.faceVertexUvs[F]===void 0&&(this.faceVertexUvs[F]=[]);for(var J=0,k=ne.length;J<k;J++){for(var U=ne[J],oe=[],le=0,ae=U.length;le<ae;le++)oe.push(U[le].clone());this.faceVertexUvs[F].push(oe)}}this.mergeMorph(g,x)},mergeMesh:function(g){return g&&g.isMesh?(g.matrixAutoUpdate&&g.updateMatrix(),void this.merge(g.geometry,g.matrix)):void console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",g)},mergeVertices:function(){for(var g=0<arguments.length&&arguments[0]!==void 0?arguments[0]:4,x={},_=[],E=[],S=Math.pow(10,g),M=0,T=this.vertices.length;M<T;M++){var A=this.vertices[M],C=Math.round(A.x*S)+"_"+Math.round(A.y*S)+"_"+Math.round(A.z*S);x[C]===void 0?(x[C]=M,_.push(this.vertices[M]),E[M]=_.length-1):E[M]=E[x[C]]}for(var R,L=[],I=0,O=this.faces.length;I<O;I++){R=this.faces[I],R.a=E[R.a],R.b=E[R.b],R.c=E[R.c];for(var N=[R.a,R.b,R.c],w=0;3>w;w++)if(N[w]===N[(w+1)%3]){L.push(I);break}}for(var P,B=L.length-1;0<=B;B--){P=L[B],this.faces.splice(P,1);for(var D=0,V=this.faceVertexUvs.length;D<V;D++)this.faceVertexUvs[D].splice(P,1)}var G=this.vertices.length-_.length;return this.vertices=_,G},setFromPoints:function(g){this.vertices=[];for(var x,_=0,E=g.length;_<E;_++)x=g[_],this.vertices.push(new u.Vector3(x.x,x.y,x.z||0));return this},sortFacesByMaterialIndex:function(){for(var g=this.faces,x=g.length,_=0;_<x;_++)g[_]._id=_;g.sort(function(R,L){return R.materialIndex-L.materialIndex});var E,S,M=this.faceVertexUvs[0],T=this.faceVertexUvs[1];M&&M.length===x&&(E=[]),T&&T.length===x&&(S=[]);for(var A,C=0;C<x;C++)A=g[C]._id,E&&E.push(M[A]),S&&S.push(T[A]);E&&(this.faceVertexUvs[0]=E),S&&(this.faceVertexUvs[1]=S)},toJSON:function(){function g(q,ne,F){return F?q|1<<ne:q&~(1<<ne)}function x(q){var ne=q.x.toString()+q.y.toString()+q.z.toString();return O[ne]===void 0&&(O[ne]=I.length/3,I.push(q.x,q.y,q.z)),O[ne]}function _(q){var ne=q.r.toString()+q.g.toString()+q.b.toString();return w[ne]===void 0&&(w[ne]=N.length,N.push(q.getHex())),w[ne]}function E(q){var ne=q.x.toString()+q.y.toString();return B[ne]===void 0&&(B[ne]=P.length/2,P.push(q.x,q.y)),B[ne]}var S={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(S.uuid=this.uuid,S.type=this.type,this.name!==""&&(S.name=this.name),this.parameters!==void 0){var M=this.parameters;for(var T in M)M[T]!==void 0&&(S[T]=M[T]);return S}for(var A,C=[],R=0;R<this.vertices.length;R++)A=this.vertices[R],C.push(A.x,A.y,A.z);for(var L=[],I=[],O={},N=[],w={},P=[],B={},D=0;D<this.faces.length;D++){var V=this.faces[D],G=!0,H=!1,K=this.faceVertexUvs[0][D]!==void 0,te=0<V.normal.length(),W=0<V.vertexNormals.length,z=V.color.r!==1||V.color.g!==1||V.color.b!==1,j=0<V.vertexColors.length,Z=0;if(Z=g(Z,0,0),Z=g(Z,1,G),Z=g(Z,2,H),Z=g(Z,3,K),Z=g(Z,4,te),Z=g(Z,5,W),Z=g(Z,6,z),Z=g(Z,7,j),L.push(Z),L.push(V.a,V.b,V.c),L.push(V.materialIndex),K){var Q=this.faceVertexUvs[0][D];L.push(E(Q[0]),E(Q[1]),E(Q[2]))}if(te&&L.push(x(V.normal)),W){var ee=V.vertexNormals;L.push(x(ee[0]),x(ee[1]),x(ee[2]))}if(z&&L.push(_(V.color)),j){var ie=V.vertexColors;L.push(_(ie[0]),_(ie[1]),_(ie[2]))}}return S.data={},S.data.vertices=C,S.data.normals=I,0<N.length&&(S.data.colors=N),0<P.length&&(S.data.uvs=[P]),S.data.faces=L,S},clone:function(){return new m().copy(this)},copy:function(g){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=g.name;for(var x=g.vertices,_=0,E=x.length;_<E;_++)this.vertices.push(x[_].clone());for(var S=g.colors,M=0,T=S.length;M<T;M++)this.colors.push(S[M].clone());for(var A=g.faces,C=0,R=A.length;C<R;C++)this.faces.push(A[C].clone());for(var L,I=0,O=g.faceVertexUvs.length;I<O;I++){L=g.faceVertexUvs[I],this.faceVertexUvs[I]===void 0&&(this.faceVertexUvs[I]=[]);for(var N=0,w=L.length;N<w;N++){for(var P,B=L[N],D=[],V=0,G=B.length;V<G;V++)P=B[V],D.push(P.clone());this.faceVertexUvs[I].push(D)}}for(var H,K=g.morphTargets,te=0,W=K.length;te<W;te++){if(H={},H.name=K[te].name,K[te].vertices!==void 0){H.vertices=[];for(var z=0,j=K[te].vertices.length;z<j;z++)H.vertices.push(K[te].vertices[z].clone())}if(K[te].normals!==void 0){H.normals=[];for(var Z=0,Q=K[te].normals.length;Z<Q;Z++)H.normals.push(K[te].normals[Z].clone())}this.morphTargets.push(H)}for(var ee,ie=g.morphNormals,q=0,ne=ie.length;q<ne;q++){if(ee={},ie[q].vertexNormals!==void 0){ee.vertexNormals=[];for(var F=0,$=ie[q].vertexNormals.length;F<$;F++){var J=ie[q].vertexNormals[F],k={};k.a=J.a.clone(),k.b=J.b.clone(),k.c=J.c.clone(),ee.vertexNormals.push(k)}}if(ie[q].faceNormals!==void 0){ee.faceNormals=[];for(var U=0,oe=ie[q].faceNormals.length;U<oe;U++)ee.faceNormals.push(ie[q].faceNormals[U].clone())}this.morphNormals.push(ee)}for(var le=g.skinWeights,ae=0,he=le.length;ae<he;ae++)this.skinWeights.push(le[ae].clone());for(var ve=g.skinIndices,we=0,ce=ve.length;we<ce;we++)this.skinIndices.push(ve[we].clone());for(var ge=g.lineDistances,re=0,xe=ge.length;re<xe;re++)this.lineDistances.push(ge[re]);var fe=g.boundingBox;fe!==null&&(this.boundingBox=fe.clone());var ye=g.boundingSphere;return ye!==null&&(this.boundingSphere=ye.clone()),this.elementsNeedUpdate=g.elementsNeedUpdate,this.verticesNeedUpdate=g.verticesNeedUpdate,this.uvsNeedUpdate=g.uvsNeedUpdate,this.normalsNeedUpdate=g.normalsNeedUpdate,this.colorsNeedUpdate=g.colorsNeedUpdate,this.lineDistancesNeedUpdate=g.lineDistancesNeedUpdate,this.groupsNeedUpdate=g.groupsNeedUpdate,this},computeGroups(){var v,g,x=[],_=void 0,E=this.faces;for(g=0;g<E.length;g++){var S=E[g];S.materialIndex!==_&&(_=S.materialIndex,v!==void 0&&(v.count=3*g-v.start,x.push(v)),v={start:3*g,materialIndex:_})}return v!==void 0&&(v.count=3*g-v.start,x.push(v)),x},toBufferGeometry:function(){var g=new h().fromGeometry(this),x=new u.BufferGeometry,_=new Float32Array(3*g.vertices.length);if(x.setAttribute("position",new u.BufferAttribute(_,3).copyVector3sArray(g.vertices)),0<g.normals.length){var E=new Float32Array(3*g.normals.length);x.setAttribute("normal",new u.BufferAttribute(E,3).copyVector3sArray(g.normals))}if(0<g.colors.length){var S=new Float32Array(3*g.colors.length);x.setAttribute("color",new u.BufferAttribute(S,3).copyColorsArray(g.colors))}if(0<g.uvs.length){var M=new Float32Array(2*g.uvs.length);x.setAttribute("uv",new u.BufferAttribute(M,2).copyVector2sArray(g.uvs))}if(0<g.uvs2.length){var T=new Float32Array(2*g.uvs2.length);x.setAttribute("uv2",new u.BufferAttribute(T,2).copyVector2sArray(g.uvs2))}for(var A in x.groups=g.groups,g.morphTargets){for(var C=[],R=g.morphTargets[A],L=0,I=R.length;L<I;L++){var O=R[L],N=new u.Float32BufferAttribute(3*O.data.length,3);N.name=O.name,C.push(N.copyVector3sArray(O.data))}x.morphAttributes[A]=C}if(0<g.skinIndices.length){var w=new u.Float32BufferAttribute(4*g.skinIndices.length,4);x.setAttribute("skinIndex",w.copyVector4sArray(g.skinIndices))}if(0<g.skinWeights.length){var P=new u.Float32BufferAttribute(4*g.skinWeights.length,4);x.setAttribute("skinWeight",P.copyVector4sArray(g.skinWeights))}return g.boundingSphere!==null&&(x.boundingSphere=g.boundingSphere.clone()),g.boundingBox!==null&&(x.boundingBox=g.boundingBox.clone()),x},toIndexedBufferGeometry:function(){var g=new u.BufferGeometry,x=new Float32Array(3*this.vertices.length);if(g.setAttribute("position",new u.BufferAttribute(x,3).copyVector3sArray(this.vertices)),0<this.normals.length){var _=new Float32Array(this.normals.length),E=new u.BufferAttribute(_,3).copyArray(this.normals);g.setAttribute("normal",E)}if(0<this.uvs.length&&0<this.uvs[0].length){var S=new Float32Array(2*this.uvs[0].length);g.setAttribute("uv",new u.BufferAttribute(S,2).copyArray(this.uvs[0]))}if(1<this.uvs.length&&0<this.uvs[1].length){var M=new Float32Array(2*this.uvs[1].length);g.setAttribute("uv2",new u.BufferAttribute(M,2).copyArray(this.uvs[1]))}if(0<this.colors.length){for(var T=[],A=0;A<this.colors.length;A++)T.push(new u.Color(this.colors[A]));var C=new Float32Array(3*T.length);g.setAttribute("color",new u.BufferAttribute(C,3).copyColorsArray(T))}else{for(var R=new Float32Array(3*this.vertices.length),L=0;L<3*this.vertices.length;L++)R[L]=1;g.setAttribute("color",new u.BufferAttribute(R,3))}if(0<this.faces.length){for(var I=[],O=[],N=0;N<this.faces.length;N++){O.push(this.faces[N].a,this.faces[N].b,this.faces[N].c);var w=this.faces[N].vertexColors;if(w.length===3)I.push(w[0],w[1],w[2]);else{var P=this.faces[N].color;I.push(P,P,P)}}g.setIndex(O),g.groups=this.computeGroups()}if(0<this.morphTargets.length){for(var B=[],D=[],V=0,G=this.morphTargets.length;V<G;V++){var H=this.morphTargets[V],K=new u.Float32BufferAttribute(3*H.vertices.length,3);if(K.name=H.name,B.push(K.copyVector3sArray(H.vertices)),H.normals){var te=new u.Float32BufferAttribute(3*H.normals.length,3);te.name=H.name,D.push(te.copyVector3sArray(H.normals))}}g.morphAttributes.position=B,g.morphAttributes.normal=D}if(0<this.skinIndices.length){var W=new u.Float32BufferAttribute(4*this.skinIndices.length,4);g.setAttribute("skinIndex",W.copyVector4sArray(this.skinIndices))}if(0<this.skinWeights.length){var z=new u.Float32BufferAttribute(4*this.skinWeights.length,4);g.setAttribute("skinWeight",z.copyVector4sArray(this.skinWeights))}return this.boundingSphere!==null&&(g.boundingSphere=this.boundingSphere.clone()),this.boundingBox!==null&&(g.boundingBox=this.boundingBox.clone()),g},computeTangents:function(){console.error("THREE.Geometry: .computeTangents() has been removed.")},computeLineDistances:function(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")},applyMatrix:function(g){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(g)},dispose:function(){this.dispatchEvent({type:"dispose"})}}),m.createBufferGeometryFromObject=function(v){var g=new u.BufferGeometry,x=v.geometry;if(v.isPoints||v.isLine){var _=new u.Float32BufferAttribute(3*x.vertices.length,3),E=new u.Float32BufferAttribute(3*x.colors.length,3);if(g.setAttribute("position",_.copyVector3sArray(x.vertices)),g.setAttribute("color",E.copyColorsArray(x.colors)),x.lineDistances&&x.lineDistances.length===x.vertices.length){var S=new u.Float32BufferAttribute(x.lineDistances.length,1);g.setAttribute("lineDistance",S.copyArray(x.lineDistances))}x.boundingSphere!==null&&(g.boundingSphere=x.boundingSphere.clone()),x.boundingBox!==null&&(g.boundingBox=x.boundingBox.clone())}else v.isMesh&&(g=x.toBufferGeometry());return g};class h{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(g){var x,_,E=[],S=void 0,M=g.faces;for(_=0;_<M.length;_++){var T=M[_];T.materialIndex!==S&&(S=T.materialIndex,x!==void 0&&(x.count=3*_-x.start,E.push(x)),x={start:3*_,materialIndex:S})}x!==void 0&&(x.count=3*_-x.start,E.push(x)),this.groups=E}fromGeometry(g){var x,_=g.faces,E=g.vertices,S=g.faceVertexUvs,M=S[0]&&0<S[0].length,T=S[1]&&0<S[1].length,A=g.morphTargets,C=A.length;if(0<C){x=[];for(var R=0;R<C;R++)x[R]={name:A[R].name,data:[]};this.morphTargets.position=x}var L,I=g.morphNormals,O=I.length;if(0<O){L=[];for(var N=0;N<O;N++)L[N]={name:I[N].name,data:[]};this.morphTargets.normal=L}var w=g.skinIndices,P=g.skinWeights,B=w.length===E.length,D=P.length===E.length;0<E.length&&_.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(var V,G=0;G<_.length;G++){V=_[G],this.vertices.push(E[V.a],E[V.b],E[V.c]);var H=V.vertexNormals;if(H.length===3)this.normals.push(H[0],H[1],H[2]);else{var K=V.normal;this.normals.push(K,K,K)}var te=V.vertexColors;if(te.length===3)this.colors.push(te[0],te[1],te[2]);else{var W=V.color;this.colors.push(W,W,W)}if(M===!0){var z=S[0][G];z===void 0?(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",G),this.uvs.push(new u.Vector2,new u.Vector2,new u.Vector2)):this.uvs.push(z[0],z[1],z[2])}if(T===!0){var j=S[1][G];j===void 0?(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",G),this.uvs2.push(new u.Vector2,new u.Vector2,new u.Vector2)):this.uvs2.push(j[0],j[1],j[2])}for(var Z,Q=0;Q<C;Q++)Z=A[Q].vertices,x[Q].data.push(Z[V.a],Z[V.b],Z[V.c]);for(var ee,ie=0;ie<O;ie++)ee=I[ie].vertexNormals[G],L[ie].data.push(ee.a,ee.b,ee.c);B&&this.skinIndices.push(w[V.a],w[V.b],w[V.c]),D&&this.skinWeights.push(P[V.a],P[V.b],P[V.c])}return this.computeGroups(g),this.verticesNeedUpdate=g.verticesNeedUpdate,this.normalsNeedUpdate=g.normalsNeedUpdate,this.colorsNeedUpdate=g.colorsNeedUpdate,this.uvsNeedUpdate=g.uvsNeedUpdate,this.groupsNeedUpdate=g.groupsNeedUpdate,g.boundingSphere!==null&&(this.boundingSphere=g.boundingSphere.clone()),g.boundingBox!==null&&(this.boundingBox=g.boundingBox.clone()),this}}class b{constructor(g,x,_,E,S){var M=5<arguments.length&&arguments[5]!==void 0?arguments[5]:0;this.a=g,this.b=x,this.c=_,this.normal=E&&E.isVector3?E:new u.Vector3,this.vertexNormals=Array.isArray(E)?E:[],this.color=S&&S.isColor?S:new u.Color,this.vertexColors=Array.isArray(S)?S:[],this.materialIndex=M}clone(){return new this.constructor().copy(this)}copy(g){this.a=g.a,this.b=g.b,this.c=g.c,this.normal.copy(g.normal),this.color.copy(g.color),this.materialIndex=g.materialIndex;for(var x=0,_=g.vertexNormals.length;x<_;x++)this.vertexNormals[x]=g.vertexNormals[x].clone();for(var E=0,S=g.vertexColors.length;E<S;E++)this.vertexColors[E]=g.vertexColors[E].clone();return this}}},o=>{o.exports=fF},o=>{o.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg=="},(o,l)=>{l.augmentMorphColor=function(){return function(c){c.vertexShader=c.vertexShader.replace("#include <color_pars_vertex>",["varying vec3 vColor;","attribute vec3 morphColor0;","attribute vec3 morphColor1;"].join(`
|
|
3183
3183
|
`)),c.vertexShader=c.vertexShader.replace("#include <color_vertex>",["vColor.xyz = color.xyz;","#ifdef USE_MORPHTARGETS","vColor = morphColor0 * morphTargetInfluences[ 0 ];","vColor += morphColor1 * morphTargetInfluences[ 1 ];","#endif"].join(`
|
|
3184
|
-
`))}}},(o,l,c)=>{var u=c(4),f=c(5).createBufferGeometry,d=c(5).resolveURL,p=0,y=function(){return"pr"+p++},m=function(){this.isZincObject=!0,this.geometry=void 0,this.morph=void 0,this.group=new u.Group,this._lod=new(c(11)).LOD(this),this.groupName=void 0,this.timeEnabled=!1,this.morphColour=!1,this.inbuildTime=0,this.mixer=void 0,this.animationGroup=void 0,this.duration=6e3,this.clipAction=void 0,this.userData={},this.videoHandler=void 0,this.marker=void 0,this.markerNumber=void 0,this.markerUpdateRequired=!0,this.closestVertexIndex=-1,this.boundingBoxUpdateRequired=!0,this.cachedBoundingBox=new u.Box3,this.anatomicalId=void 0,this.region=void 0,this.animationClip=void 0,this.markerMode="inherited",this.uuid=y(),this._v1=new u.Vector3,this._v2=new u.Vector3,this._b1=new u.Box3,this.center=new u.Vector3,this.radius=0,this.visible=!0,this.drawRange=-1};m.prototype.setDuration=function(h){this.duration=h,this.clipAction&&this.clipAction.setDuration(this.duration)},m.prototype.getDuration=function(){return this.duration},m.prototype.setRegion=function(h){this.region=h},m.prototype.getRegion=function(){return this.region},m.prototype.getMorph=function(){var h=this._lod.getCurrentMorph();return h||this.morph},m.prototype.getGroup=function(){return this.group},m.prototype.setMorph=function(h){this.morph=h,this.group.add(this.morph);var b=this._lod.calculateDistance("far");this._lod.addLevel(h,b),this._lod.setMaterial(h.material)},m.prototype.checkTransparentMesh=function(){},m.prototype.setMesh=function(h,b,v){this.animationGroup=new u.AnimationObjectGroup(h),this.mixer=new u.AnimationMixer(this.animationGroup);var g=h.geometry;if(this.geometry=h.geometry,this.clipAction=void 0,g&&g.morphAttributes){var x=g.morphAttributes.position;x||(x=g.morphAttributes.color?g.morphAttributes.color:g.morphAttributes.normal),x&&(this.animationClip=u.AnimationClip.CreateClipsFromMorphTargetSequences(x,10,!0),this.animationClip&&this.animationClip[0]!=null&&(this.clipAction=this.mixer.clipAction(this.animationClip[0]).setDuration(this.duration),this.clipAction.loop=u.loopOnce,this.clipAction.clampWhenFinished=!0,this.clipAction.play()))}this.timeEnabled=b,this.morphColour=v,h.userData=this,h.matrixAutoUpdate=!1,this.setMorph(h),this.checkTransparentMesh(),this.timeEnabled?this.setFrustumCulled(!1):this.morphColour&&(g.setAttribute("morphTarget0",g.getAttribute("position")),g.setAttribute("morphTarget1",g.getAttribute("position"))),this.boundingBoxUpdateRequired=!0},m.prototype.setName=function(h){this.groupName=h,this._lod.setName(h)},m.prototype.getCurrentTime=function(){if(this.clipAction){var h=this.clipAction.time/this.clipAction._clip.duration;return this.duration*h}return this.inbuildTime},m.prototype.setMorphTime=function(h){var b=!1;if(this.clipAction){var v=h/this.duration,g=this.clipAction._clip.duration,x=v*g;x!=this.clipAction.time&&(this.clipAction.time=x,b=!0),b&&this.isTimeVarying()&&this.mixer.update(0)}else{var _=h;_=h>this.duration?this.duration:0>h?0:h,_!=this.inbuildTime&&(this.inbuildTime=_,b=!0)}b&&(this.boundingBoxUpdateRequired=!0,this._lod.updateMorphColorAttribute(!0),this.timeEnabled&&(this.markerUpdateRequired=!0))},m.prototype.isTimeVarying=function(){return!!(this.timeEnabled||this.morphColour)},m.prototype.getVisibility=function(){return this.visible},m.prototype.setVisibility=function(h){h!==this.visible&&(this.visible=h,this.group.visible=h,this.region&&(this.region.pickableUpdateRequired=!0))},m.prototype.setAlpha=function(h){var b=this._lod._material,v=!1;1>h&&(v=!0),b.opacity=h,b.transparent=v,this.checkTransparentMesh()},m.prototype.setFrustumCulled=function(h){this._lod.setFrustumCulled(h)},m.prototype.setVertexColors=function(h){this._lod.setVertexColors(h)},m.prototype.getColour=function(){return this._lod._material?this._lod._material.color:void 0},m.prototype.setColour=function(h){this._lod.setColour(h)},m.prototype.getColourHex=function(){return!this.morphColour&&this._lod._material&&this._lod._material.color?this._lod._material.color.getHexString():void 0},m.prototype.setColourHex=function(h){this._lod._material.color.setHex(h),this._lod._secondaryMaterial&&this._lod._secondaryMaterial.color.setHex(h)},m.prototype.setEmissiveRGB=function(h){this._lod._material&&this._lod._material.emissive&&this._lod._material.emissive.setRGB(...h),this._lod._secondaryMaterial&&this._lod._secondaryMaterial.emissive.setRGB(...h)},m.prototype.setMaterial=function(h){this._lod.setMaterial(h)},m.prototype.getClosestVertexIndex=function(){var h=-1,b=this.getMorph();if(b&&b.geoemtry){var v=b.geometry.attributes.position;if(this._b1.setFromBufferAttribute(v),this._b1.getCenter(this._v1),v)for(var g=-1,x=0,_=0;_<v.count;_++)this._v2.fromArray(v.array,3*_),x=this._v2.distanceTo(this._v1),g==-1?g=x:g>x&&(g=x,h=_)}return h},m.prototype.getClosestVertex=function(h){var b=new u.Vector3;this.closestVertexIndex==-1&&(this.closestVertexIndex=this.getClosestVertexIndex());var v=this.getMorph();if(v&&v.geometry&&0<=this.closestVertexIndex){var g=v.morphTargetInfluences,x=v.geometry.morphAttributes;if(g&&x&&x.position){for(var _=!1,E=0;E<g.length;E++)0<g[E]&&(_=!0,this._v1.fromArray(x.position[E].array,3*this.closestVertexIndex),b.add(this._v1.multiplyScalar(g[E])));if(_)return h?b.applyMatrix4(v.matrixWorld):b}else return b.fromArray(v.geometry.attributes.position.array,3*this.closestVertexIndex),h?b.applyMatrix4(v.matrixWorld):b}return this.getBoundingBox(),b.copy(this.center),h?b.applyMatrix4(this.morph.matrixWorld):b},m.prototype.getBoundingBox=function(){if(this.visible){var h=this._lod.getCurrentMorph();if(h&&h.visible)return this.boundingBoxUpdateRequired&&(c(5).getBoundingBox(h,this.cachedBoundingBox,this._b1,this._v1,this._v2),this.cachedBoundingBox.getCenter(this.center),this.radius=this.center.distanceTo(this.cachedBoundingBox.max),this.boundingBoxUpdateRequired=!1),this.cachedBoundingBox}},m.prototype.dispose=function(){this._lod.dispose(),this.animationGroup=void 0,this.mixer=void 0,this.morph=void 0,this.group=void 0,this.clipAction=void 0,this.groupName=void 0},m.prototype.markerIsRequired=function(h){return!!(this.visible&&(this.markerMode==="on"||h&&h.displayMarkers&&this.markerMode==="inherited"))},m.prototype.updateMarker=function(h,b){if(h==!1&&this.markerIsRequired(b)){var v=b.ndcToBeUpdated;if(this.groupName){if(this.marker||(this.marker=new(c(14)).Marker(this),this.markerUpdateRequired=!0),this.markerUpdateRequired){var g=this.getClosestVertex(!1);g&&(this.marker.setPosition(g.x,g.y,g.z),this.markerUpdateRequired=!1)}this.marker.isEnabled()||(b.markersList&&!(this.marker.uuid in b.markersList)&&(v=!0,b.markersList[this.marker.uuid]=this.marker),this.marker.enable(),this.group.add(this.marker.morph)),this.marker.setNumber(this.markerNumber),this.markerImgURL?this.marker.loadUserSprite(this.markerImgURL):this.marker.setDefaultSprite(),b&&b.camera&&(v||b.markerCluster.markerUpdateRequired)&&(this.marker.updateNDC(b.camera.cameraObject),b.markerCluster.markerUpdateRequired=!0)}}else this.marker&&this.marker.isEnabled()&&(this.marker.disable(),this.group.remove(this.marker.morph),b.markersList&&this.marker.uuid in b.markersList&&(b.markerCluster.markerUpdateRequired=!0,delete b.markersList[this.marker.uuid])),this.markerUpdateRequired=!0},m.prototype.processMarkerVisual=function(h,b){this.marker&&this.marker.isEnabled()&&this.marker.updateVisual(h,b)},m.prototype.initiateMorphColor=function(){this.morphColour==1&&this._lod.updateMorphColorAttribute(!1)},m.prototype.setRenderOrder=function(h){this._lod.setRenderOrder(h)},m.prototype.getClosestVertexDOMElementCoords=function(h){if(h&&h.camera){var b=!0,v=this.getClosestVertex(!0);return v.project(h.camera),v.z=Math.min(Math.max(v.z,0),1),(1<v.x||-1>v.x||1<v.y||-1>v.y)&&(b=!1),h.getZincCameraControls().getRelativeCoordsFromNDC(v.x,v.y,v),{position:v,inView:b}}},m.prototype.setMarkerMode=function(h,b){h!==this.markerMode&&(this.markerMode=h==="on"||h==="off"?h:"inherited",this.region&&(this.region.pickableUpdateRequired=!0)),b&&(this.markerNumber=b.number,this.markerImgURL=b.imgURL)},m.prototype.render=function(h,b,v,g){if(this.visible&&!(this.timeEnabled&&b)&&this._lod.update(v,this.center),b==!0){if(this.clipAction&&this.isTimeVarying())this.mixer.update(h);else{var x=this.inbuildTime+h;x>this.duration&&(x-=this.duration),this.inbuildTime=x}this.visible&&h!=0&&(this.boundingBoxUpdateRequired=!0,this.morphColour==1&&this._lod.updateMorphColorAttribute(!0))}this.updateMarker(b,g)},m.prototype.addLOD=function(h,b,v,g,x){this._lod.addLevelFromURL(h,b,v,g,x)},m.prototype.addVertices=function(h){var b=this.getMorph(),v=void 0;if(!b)v=f(500,h),this.drawRange=h.length;else if(-1<this.drawRange){var g=b.geometry.getAttribute("position");h.forEach(x=>{g.setXYZ(this.drawRange,x[0],x[1],x[2]),++this.drawRange}),g.needsUpdate=!0,b.geometry.setDrawRange(0,this.drawRange),b.geometry.computeBoundingBox(),b.geometry.computeBoundingSphere(),v=b.geoemtry,this.boundingBoxUpdateRequired=!0}return v},m.prototype.setPosition=function(h,b,v){var g=this.getGroup();g&&(g.position.set(h,b,v),g.updateMatrix(),this.boundingBoxUpdateRequired=!0)},m.prototype.loadAdditionalSources=function(h){h.load(d(filename),meshloader(region,colour,opacity,localTimeEnabled,localMorphColour,void 0,void 0,void 0,void 0,finishCallback),this.onProgress(filename),this.onError(finishCallback))},m.prototype.setScaleAll=function(h){var b=this.getGroup();b&&(b.scale.set(h,h,h),b.updateMatrix(),this.boundingBoxUpdateRequired=!0)},l.ZincObject=m},(o,l,c)=>{var u=c(4),f=c(5).updateMorphColorAttribute,d=c(5).toBufferGeometry,p=function(y){this.levels=[],this._currentLevel=0,this._renderOrder=1,this._material=void 0,this._secondaryMaterial=void 0,this._loader=void 0,this._parent=y,this.addLevel=(h,b)=>{if(h){var v,g=Math.abs(b);for(v=0;v<this.levels.length&&!(g<this.levels[v].distance);v++);this.levels.splice(v,0,{distance:g,morph:h,loaded:!0,loading:!1,url:""}),h.renderOrder=this._renderOrder}},this.levelLoaded=(h,b)=>{if(h){for(var v=Math.abs(b),g=0;g<this.levels.length;g++)if(v===this.levels[g].distance){this._parent.group.add(h),this.levels[g].morph=h,this.levels[g].loaded=!0,this.levels[g].loading=!1;break}this.checkTransparentMesh()}},this.addLevelFromURL=(h,b,v,g,x)=>{this._loader=h;var _,E=this.calculateDistance(b);for(_=0;_<this.levels.length&&!(E<this.levels[_].distance);_++);this.levels.splice(_,0,{distance:E,morph:void 0,loaded:!1,loading:!1,url:v,index:g}),x&&this.loadLevel(_)},this.loadLevel=h=>{var b=this.levels[h];return b.morph||b.loaded||b.loading||(b.loading=!0,this._loader.load(b.url,this.lodLoader(b.distance),void 0,void 0,{index:b.index})),b.morph===void 0},this.calculateDistance=function(h){this._parent.getBoundingBox();var b=this._parent.radius,v=0;return h==="far"?v=4.5*b:h==="medium"?v=2.5*b:h=="close"&&(v=0),v},this.containsLevels=()=>!!(this.levels&&1<this.levels.length),this.checkTransparentMesh=()=>{var h=this.levels[this._currentLevel];this._material&&(this._material.transparent?(!this._secondaryMaterial&&(this._secondaryMaterial=this._material.clone(),this._secondaryMaterial.side=u.FrontSide),this._secondaryMaterial.opacity=this._material.opacity,this._secondaryMaterial.emissive&&this._secondaryMaterial.emissive.copy(this._material.emissive),this._secondaryMaterial.needsUpdate=!0,!h.secondaryMesh&&(h.secondaryMesh=new u.Mesh(h.morph.geometry,this._secondaryMaterial),h.secondaryMesh.renderOrder=h.morph.renderOrder+1,h.secondaryMesh.userData=h.morph.userData,h.secondaryMesh.name=h.morph.name),this._material.side=u.BackSide,this._material.needsUpdate=!0,!h.secondaryMesh.parent&&(h.morph.add(h.secondaryMesh),this._parent.animationGroup&&this._parent.animationGroup.add(h.secondaryMesh))):(h.secondaryMesh&&(h.morph.remove(h.secondaryMesh),this._parent.animationGroup&&(this._parent.animationGroup.uncache(h.secondaryMesh),this._parent.animationGroup.remove(h.secondaryMesh))),this._material.side=u.DoubleSide,this._material.needsUpdate=!0))},this.dispose=()=>{this.levels.forEach(h=>{h.morph&&h.morph.geometry&&h.morph.geometry.dispose()}),this._material&&this._material.dispose(),this._secondaryMaterial&&this._secondaryMaterial.dispose()},this.getCurrentLevel=()=>this._currentLevel,this.getCurrentMorph=()=>{var h=this.levels[this._currentLevel];return h&&h.morph?h.morph:this._parent.morph},this.lodLoader=function(h){return b=>{var v=this._material,g={localTimeEnabled:this._parent.timeEnabled,localMorphColour:this._parent.morphColour},x=d(b,g),_=void 0;this._parent.isGeometry?_=new u.Mesh(x,v):this._parent.isLines&&(_=new(c(12)).LineSegments(x,v)),_.userData=this._parent,_.renderOrder=this._renderOrder,b.dispose(),this.levelLoaded(_,h)}},this.updateMorphColorAttribute=h=>{if(this._material&&(this._material.vertexColors==u.VertexColors||this._material.vertexColors==!0))if(h){var b=this.getCurrentMorph();f(b.geometry,b)}else this.levels.forEach(v=>{v.morph&&v.morph.geometry&&f(v.morph.geometry,v.morph)})},this.setColour=h=>{this._material.color=h,this._secondaryMaterial&&(this._secondaryMaterial.color=h),m()},this.setFrustumCulled=h=>{this.levels.forEach(b=>{b.morph&&(b.morph.frustumCulled=h),b.secondaryMesh&&(b.secondaryMesh.frustumCulled=h)})},this.setMaterial=h=>{h&&(!this._material||this._material.id!==h.id)&&(this._material=h,this._secondaryMaterial&&this._secondaryMaterial.dispose(),this._secondaryMaterial=h.clone(),this._secondaryMaterial.side=u.FrontSide,this._secondaryMaterial.transparent=!0,this.levels.forEach(b=>{b.morph&&(b.morph.material=this._material,b.morph.geometry&&(b.morph.geometry.colorsNeedUpdate=!0)),b.secondaryMesh&&(b.secondaryMesh.material=this._secondaryMaterial)}))},this.setName=h=>{this.levels.forEach(b=>{b.morph&&(b.morph.name=h),b.secondaryMesh&&(b.secondaryMesh.name=h)})},this.setRenderOrder=h=>{this._renderOrder=h,this.levels.forEach(b=>{b.morph&&(b.morph.renderOrder=h),b.secondaryMesh&&(b.secondaryMesh.renderOrder=h)})},this.setVertexColors=h=>{this._material.vertexColors=h,m(),this._secondaryMaterial&&(this._secondaryMaterial.vertexColors=h)},this.update=(h,b)=>{var v=this.levels;if(1<v.length){var g,x,_=h.cameraObject.position.distanceTo(b),E=-1,S=-1;for(g=0,x=v.length;g<x&&_>=v[g].distance;g++)v[g].morph?(-1<E&&v[E].morph&&(v[E].morph.visible=!1),E=g,v[g].morph.visible=!0,S=-1):S=g;for(-1<S&&this.loadLevel(S);g<x;g++)v[g].morph&&(-1<E?v[g].morph.visible=!1:(v[g].morph.visible=!0,E=g));this._currentLevel!=E&&(this._currentLevel=E,this.checkTransparentMesh())}},this.toggleMarker=(h,b)=>{this.levels.forEach(v=>{v.morph&&(b?v.morph.add(h):v.morph.remove(h))})};var m=()=>{this.levels.forEach(h=>{h.morph&&h.morph.geometry&&(h.morph.geometry.colorsNeedUpdate=!0)})}};l.LOD=p},(o,l,c)=>{c.r(l),c.d(l,{LineSegments:()=>y});var u=c(13),f=c(4),d=new f.Vector3,p=new f.Vector3;class y extends u.Line{constructor(h,b){super(h,b),this.type="LineSegments"}computeLineDistances(){var h=this.geometry;if(!h.isBufferGeometry)h.isGeometry&&console.error("THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");else if(h.index===null){for(var b=h.attributes.position,v=[],g=0,x=b.count;g<x;g+=2)d.fromBufferAttribute(b,g),p.fromBufferAttribute(b,g+1),v[g]=g==0?0:v[g-1],v[g+1]=v[g]+d.distanceTo(p);h.setAttribute("lineDistance",new f.Float32BufferAttribute(v,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}}y.prototype.isLineSegments=!0},(o,l,c)=>{c.r(l),c.d(l,{Line:()=>x});var u=c(4),f=new u.Vector3,d=new u.Vector3,p=new u.Matrix4,y=new u.Ray,m=new u.Sphere,h=new u.Vector3,b=new u.Vector3,v=new u.Vector3,g=new u.Vector3;class x extends u.Object3D{constructor(){var S=0<arguments.length&&arguments[0]!==void 0?arguments[0]:new u.BufferGeometry,M=1<arguments.length&&arguments[1]!==void 0?arguments[1]:new u.LineBasicMaterial;super(),this.type="Line",this.geometry=S,this.material=M,this.updateMorphTargets()}copy(S){return super.copy(S),this.material=S.material,this.geometry=S.geometry,this}computeLineDistances(){var S=this.geometry;if(!S.isBufferGeometry)S.isGeometry&&console.error("THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");else if(S.index===null){for(var M=S.attributes.position,T=[0],A=1,C=M.count;A<C;A++)f.fromBufferAttribute(M,A-1),d.fromBufferAttribute(M,A),T[A]=T[A-1],T[A]+=f.distanceTo(d);S.setAttribute("lineDistance",new u.Float32BufferAttribute(T,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}raycast(S,M){var T=this.geometry,A=this.matrixWorld,C=S.params.Line.threshold,R=T.drawRange,L=T.morphAttributes.position;if(T.boundingSphere===null&&T.computeBoundingSphere(),m.copy(T.boundingSphere),m.applyMatrix4(A),m.radius+=C,S.ray.intersectsSphere(m)!==!1){p.copy(A).invert(),y.copy(S.ray).applyMatrix4(p);var I=C/((this.scale.x+this.scale.y+this.scale.z)/3),O=I*I,N=new u.Vector3,w=new u.Vector3,P=new u.Vector3,B=new u.Vector3,D=this.isLineSegments?2:1;if(T.isBufferGeometry){var V=T.index,G=T.attributes,H=G.position;if(V!==null)for(var K=Math.max(0,R.start),te=Math.min(V.count,R.start+R.count),W=K;W<te-1;W+=D){var z=V.getX(W),j=V.getX(W+1);_(N,w,this,H,L,z,j);var Z=y.distanceSqToSegment(N,w,B,P);if(!(Z>O)){B.applyMatrix4(this.matrixWorld);var Q=S.ray.origin.distanceTo(B);Q<S.near||Q>S.far||M.push({distance:Q,point:P.clone().applyMatrix4(this.matrixWorld),index:W,face:null,faceIndex:null,object:this})}}else for(var ee=Math.max(0,R.start),ie=Math.min(H.count,R.start+R.count),q=ee;q<ie-1;q+=D){_(N,w,this,H,L,q,q+1);var ne=y.distanceSqToSegment(N,w,B,P);if(!(ne>O)){B.applyMatrix4(this.matrixWorld);var F=S.ray.origin.distanceTo(B);F<S.near||F>S.far||M.push({distance:F,point:P.clone().applyMatrix4(this.matrixWorld),index:q,face:null,faceIndex:null,object:this})}}}else T.isGeometry&&console.error("THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}}updateMorphTargets(){var S=this.geometry;if(S.isBufferGeometry){var M=S.morphAttributes,T=Object.keys(M);if(0<T.length){var A=M[T[0]];if(A!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(var C,R=0,L=A.length;R<L;R++)C=A[R].name||R+"",this.morphTargetInfluences.push(0),this.morphTargetDictionary[C]=R}}}else{var I=S.morphTargets;I!==void 0&&0<I.length&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}function _(E,S,M,T,A,C,R){E.fromBufferAttribute(T,C),S.fromBufferAttribute(T,R);var L=M.morphTargetInfluences;if(M.material.morphTargets&&A&&L){h.set(0,0,0),b.set(0,0,0);for(var I=0,O=A.length;I<O;I++){var N=L[I],w=A[I];N!==0&&(v.fromBufferAttribute(w,C),g.fromBufferAttribute(w,R),h.addScaledVector(v.sub(E),N),b.addScaledVector(g.sub(S),N))}E.add(h),S.add(b)}}x.prototype.isLine=!0},(o,l,c)=>{var u=c(4),f=new Image(128,128);f.src=c(15);var d=new u.Texture;d.image=f,d.needsUpdate=!0;var p=[.02,.03,1],y=new u.SpriteMaterial({map:d,alphaTest:.5,transparent:!0,depthTest:!1,depthWrite:!1,sizeAttenuation:!1}),m=c(5).createNewSpriteText,h=function(b){c(10).ZincObject.call(this),this.texture=d;var v=void 0,g=void 0,x=void 0,_=void 0,E=void 0,S=!0;this.morph=new u.Group,this.group=this.morph,this.parent=b,this.isMarker=!0;var M=!1;this.ndc=new u.Vector3;var T=void 0,A=void 0,C=()=>{v=new u.Sprite(y),v.center.set(.5,0),this.morph.add(v),this.morph.position.set(0,0,0),this.morph.renderOrder=1e4,v.scale.set(p[0],p[1],p[2]),v.userData=this};this.updateVisual=(R,L)=>{var I=1,O=0;R!==L&&(O=1-(this.ndc.z-R)/(L-R),I=.6+.4*O),this.setSpriteSize(I)},this.updateNDC=R=>(this.ndc.copy(this.morph.position),this.ndc.project(R),this.ndc.z=Math.min(Math.max(this.ndc.z,0),1),this.ndc),this.setPosition=(R,L,I)=>{this.morph.position.set(R,L,I)},this.setSpriteSize=R=>{v.scale.set(.015,.02,1),v.scale.multiplyScalar(R)},this.setUserSprite=()=>{_&&(this.morph.add(_),S&&(this.morph.remove(v),A&&this.morph.remove(A),S=!1))},this.setImageForUserSprite=(R,L)=>{_&&(this.morph.remove(_),_=void 0),g&&g.dispose(),x&&x.dispose(),g=new u.Texture,g.image=R,g.needsUpdate=!0,x=new u.SpriteMaterial({map:g,alphaTest:.5,transparent:!0,depthTest:!1,depthWrite:!1,sizeAttenuation:!1}),L||(L=[.05,.05,1]),_=new u.Sprite(x),_.center.set(.5,0),_.scale.set(L[0],L[1],L[2]),_.userData=this,this.setUserSprite()},this.setDefaultSprite=()=>{S||(S=!0,this.morph.add(v),_&&this.morph.remove(_),A&&this.morph.add(A))},this.loadUserSprite=(R,L)=>{if(R)if(R!==E){E=R;var I=new Image(128,128);I.crossOrigin="anonymous",I.onload=()=>{this.setImageForUserSprite(I,L)},I.src=R}else this.setUserSprite()},this.dispose=()=>{this.morph&&this.morph.clear(),v&&(v.clear(),v=void 0),A&&(A.material.map.dispose(),A.material.dispose(),A=void 0)},this.isEnabled=()=>M,this.setNumber=R=>{(!R||T!=R)&&A&&(this.morph.remove(A),A.material.map.dispose(),A.material.dispose(),A=void 0),!A&&R&&(A=m(R,.012,"black","Asap",50,500),this.morph.add(A)),T=R},this.getNumber=()=>T||1,this.setVisibility=function(R){R!==this.visible&&(this.visible=R,this.group.visible=R,this.parent.region&&(this.parent.region.pickableUpdateRequired=!0))},this.enable=()=>{M=!0,this.morph.visible=!0,this.visible=!0},this.disable=()=>{M=!1,this.morph.visible=!1,this.visible=!1},C()};h.prototype=Object.create(c(10).ZincObject.prototype),l.Marker=h},o=>{o.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIiA/Pg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMzY1IiBoZWlnaHQ9IjU2MCIgdmlld0JveD0iMCAwIDM2NSA1NjAiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGRlc2M+Q3JlYXRlZCB3aXRoIEZhYnJpYy5qcyA1LjIuNDwvZGVzYz4NCjxkZWZzPg0KPC9kZWZzPg0KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idHJhbnNwYXJlbnQiPjwvcmVjdD4NCjxnIHRyYW5zZm9ybT0ibWF0cml4KDAgMCAwIDAgMCAwKSIgaWQ9IjgwOGVkMjgzLTI1MjQtNDQwZi04OGFlLTNiZGI0N2JiNTc0OSIgID4NCjwvZz4NCjxnIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgMTgyLjUgMjgwKSIgaWQ9ImRiMzA0MTNkLTViZmYtNGI5OC1hYjU5LTQ2NDQ5N2VlMTk5ZSIgID4NCjxyZWN0IHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDI1NSwyNTUsMjU1KTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyB2aXNpYmlsaXR5OiBoaWRkZW47IiB2ZWN0b3ItZWZmZWN0PSJub24tc2NhbGluZy1zdHJva2UiICB4PSItMTgyLjUiIHk9Ii0yODAiIHJ4PSIwIiByeT0iMCIgd2lkdGg9IjM2NSIgaGVpZ2h0PSI1NjAiIC8+DQo8L2c+DQo8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwIDAgMCAwIDAgOTcuNSkiICA+DQo8ZyBzdHlsZT0iIiAgID4NCjwvZz4NCjwvZz4NCjxnIHRyYW5zZm9ybT0ibWF0cml4KDAgMCAwIDAgMCA5Ny41KSIgID4NCjxnIHN0eWxlPSIiICAgPg0KPC9nPg0KPC9nPg0KPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC45OSAwIDAgMC45OSAxODIuNSAyODApIiAgPg0KPGcgc3R5bGU9IiIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgID4NCgkJPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgMSAwIDApIiAgPg0KPHJlY3Qgc3R5bGU9InN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxOyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBmaWxsOiByZ2IoMjU1LDI1NSwyNTUpOyBmaWxsLXJ1bGU6IG5vbnplcm87IG9wYWNpdHk6IDE7IHZpc2liaWxpdHk6IGhpZGRlbjsiIHZlY3Rvci1lZmZlY3Q9Im5vbi1zY2FsaW5nLXN0cm9rZSIgIHg9Ii01NDAiIHk9Ii01NDAiIHJ4PSIwIiByeT0iMCIgd2lkdGg9IjEwODAiIGhlaWdodD0iMTA4MCIgLz4NCjwvZz4NCgkJPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgMSAwIDApIiAgPg0KPHBhdGggc3R5bGU9InN0cm9rZTogcmdiKDAsMCwwKTsgc3Ryb2tlLXdpZHRoOiAwOyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBmaWxsOiByZ2IoMCw4OSwxMTYpOyBmaWxsLXJ1bGU6IG5vbnplcm87IG9wYWNpdHk6IDE7IiB2ZWN0b3ItZWZmZWN0PSJub24tc2NhbGluZy1zdHJva2UiICB0cmFuc2Zvcm09IiB0cmFuc2xhdGUoLTE4Mi45LCAtMjc5Ljg1KSIgZD0iTSAxODIuOSA1NTEuNyBDIDE4Mi45IDU1MS44MDAwMDAwMDAwMDAxIDE4My4xIDU1MiAxODMuMSA1NTIgQyAxODMuMSA1NTIgMzU4LjMgMjgzIDM1OC4zIDE5NC42IEMgMzU4LjMgNjQuNSAyNjkuNSA3LjkwMDAwMDAwMDAwMDAwNiAxODIuOSA3LjY5OTk5OTk5OTk5OTk4OSBDIDk2LjMgNy45IDcuNSA2NC41IDcuNSAxOTQuNiBDIDcuNSAyODMgMTgyLjggNTUyIDE4Mi44IDU1MiBDIDE4Mi44IDU1MiAxODIuOSA1NTEuNyAxODIuOSA1NTEuNyB6IE0gMTIyLjIgMTg3LjIgQyAxMjIuMiAxNTMuNiAxNDkuNCAxMjYuMzk5OTk5OTk5OTk5OTkgMTgzIDEyNi4zOTk5OTk5OTk5OTk5OSBDIDIxNi42IDEyNi4zOTk5OTk5OTk5OTk5OSAyNDMuOCAxNTMuNiAyNDMuOCAxODcuMiBDIDI0My44IDIyMC43OTk5OTk5OTk5OTk5OCAyMTYuNSAyNDggMTgyLjkgMjQ4IEMgMTQ5LjQgMjQ4IDEyMi4yIDIyMC44IDEyMi4yIDE4Ny4yIHoiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgLz4NCjwvZz4NCgkJPGcgdHJhbnNmb3JtPSJtYXRyaXgoMy44MiAwIDAgMy44MiAwIC0xMDAuNzcpIiAgPg0KPGNpcmNsZSBzdHlsZT0ic3Ryb2tlOiByZ2IoMCwwLDApOyBzdHJva2Utd2lkdGg6IDA7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IGZpbGw6IHJnYigyNTUsMjU1LDI1NSk7IGZpbGwtcnVsZTogbm9uemVybzsgb3BhY2l0eTogMTsiIHZlY3Rvci1lZmZlY3Q9Im5vbi1zY2FsaW5nLXN0cm9rZSIgIGN4PSIwIiBjeT0iMCIgcj0iMzUiIC8+DQo8L2c+DQo8L2c+DQo8L2c+DQo8L3N2Zz4="},(o,l,c)=>{var u=c(4),f=function(d,p,y,m){c(10).ZincObject.call(this);var h;p&&(h=p.clone(),h.vertexColors=u.FaceColors),this.id=y;var b=void 0,v=void 0;this.isGlyph=!0,this.fromMesh=g=>!!(g&&g.isMesh)&&(this.morph=g.clone(),this.morph.userData=this,this.group.add(this.morph),!0),d&&h&&this.fromMesh(new u.Mesh(d,h)),this.getGlyphset=function(){return m},this.setLabel=g=>{g&&(typeof g=="string"||g instanceof String)&&(v=g,this.morph&&(this.morph.name=g)),b&&this.showLabel()},this.showLabel=g=>{if(b&&(position=b.getPosition(),this.group.remove(b.getSprite()),b.dispose(),b=void 0),v&&(typeof v=="string"||v instanceof String)){var x=[0,0,0];b=new(c(17)).Label(v,g),b.setPosition(x[0],x[1],x[2]),this.group.add(b.getSprite())}},this.getLabel=()=>v,this.getMesh=()=>this.morph,this.setTransformation=(g,x,_,E)=>{this.morph&&(this.morph.matrix.elements[0]=x[0],this.morph.matrix.elements[1]=x[1],this.morph.matrix.elements[2]=x[2],this.morph.matrix.elements[3]=0,this.morph.matrix.elements[4]=_[0],this.morph.matrix.elements[5]=_[1],this.morph.matrix.elements[6]=_[2],this.morph.matrix.elements[7]=0,this.morph.matrix.elements[8]=E[0],this.morph.matrix.elements[9]=E[1],this.morph.matrix.elements[10]=E[2],this.morph.matrix.elements[11]=0,this.morph.matrix.elements[12]=g[0],this.morph.matrix.elements[13]=g[1],this.morph.matrix.elements[14]=g[2],this.morph.matrix.elements[15]=1,this.morph.matrixAutoUpdate=!1),b&&b.setPosition(g[0],g[1],g[2])},this.setColour=g=>{b&&b.setColour(g),this.secondaryMesh&&this.secondaryMesh.material&&(this.secondaryMesh.material.color=colour),this.geometry.colorsNeedUpdate=!0},this.dispose=()=>{this.material&&this.material.dispose(),this.morph=void 0}};f.prototype=Object.create(c(10).ZincObject.prototype),l.Glyph=f},(o,l,c)=>{var u=c(7).default;l.Label=function(f,d){var p=f,y=void 0;y=d?new u(p,.015,d.getStyle()):new u(p,.015),y.material.sizeAttenuation=!1,y.center.x=-.05,y.center.y=0,this.getPosition=()=>y?[y.position.x,y.position.y,y.position.z]:[0,0,0],this.setPosition=(m,h,b)=>{y&&y.position.set(m,h,b)},this.setColour=m=>{y.color=m.getStyle()},this.setScale=m=>{y&&0<m&&y.scale.set(m,m,1)},this.dispose=()=>{y.dispose()},this.getSprite=()=>y,this.getString=()=>p}},(o,l,c)=>{function u(y){throw new TypeError('"'+y+'" is read-only')}var f=c(4),d=c(19).JSONLoader,p=function(){c(10).ZincObject.call(this);var y=[],m=void 0,h=void 0,b=void 0,v=void 0,g=void 0,x=void 0,_=void 0,E=0,S=0,M=[0,0,0],T=[0,0,0],A=[0,0,0],C="NONE";this.ready=!1;var R=!1,L=!1;this.isGlyphset=!0;for(var I=new f.Matrix4,O=new f.Color,N=new f.Color,w=new f.Box3,P=new f.Box3,B=new f.Box3,D=[],V=[],G=[],H=[],K=[],te=[],W=[],z=[],j=0;8>j;j++)D[j]=new f.Vector3;this.load=(F,$,J,k,U)=>{m=F.axis1,h=F.axis2,b=F.axis3,v=F.positions,g=F.scale,x=F.colors,_=F.label,R=F.metadata.MorphColours,L=F.metadata.MorphVertices,E=F.metadata.number_of_time_steps,C=F.metadata.repeat_mode,S=F.metadata.number_of_vertices,C=="AXES_2D"||C=="MIRROR"?S*=2:C=="AXES_3D"&&(S*=3),M=F.metadata.base_size,T=F.metadata.offset,A=F.metadata.scale_factors;var oe=new d;this.geometry=new f.BufferGeometry;var le=new f.InstancedMesh(this.geometry,void 0,S);if(this.setMorph(le),k){var ae=oe.parse($);ne(J,U)(ae.geometry,ae.materials),ae.geometry.dispose()}else oe.crossOrigin="Anonymous",oe.load($,ne(J,U))};var Z=(F,$,J,k,U,oe)=>{if(C=="NONE"||C=="MIRROR"){for(var le,ae=[0,0,0],he=[0,0,0],ve=[0,0,0],we=[0,0,0],ce=[0,0,0],ge=[0,0,0],re=[0,0,0],xe=[0,0,0],fe=[0,0,0],ye=0;3>ye;ye++)le=0>U[ye]?-1:1,ae[ye]=le*M[ye]+U[ye]*A[ye];for(var ye=0;3>ye;ye++)he[ye]=$[ye]*ae[0],ve[ye]=J[ye]*ae[1],we[ye]=k[ye]*ae[2],ce[ye]=F[ye]+T[0]*he[ye]+T[1]*ve[ye]+T[2]*we[ye],C=="MIRROR"&&(ge[ye]=-he[ye],re[ye]=-ve[ye],xe[ye]=-we[ye],fe[ye]=ce[ye],0>U[0]&&(ce[ye]-=he[ye],fe[ye]-=ge[ye]));0>we[0]*(he[1]*ve[2]-he[2]*ve[1])+we[1]*(he[2]*ve[0]-he[0]*ve[2])+we[2]*(he[0]*ve[1]-he[1]*ve[0])&&(we[0]=-we[0],we[1]=-we[1],we[2]=-we[2]),oe[0]=[ce,he,ve,we],C=="MIRROR"&&(0>xe[0]*(ge[1]*re[2]-ge[2]*re[1])+xe[1]*(ge[2]*re[0]-ge[0]*re[2])+xe[2]*(ge[0]*re[1]-ge[1]*re[0])&&(xe[0]=-xe[0],xe[1]=-xe[1],xe[2]=-xe[2]),oe[1]=[fe,ge,re,xe])}else if(C=="AXES_2D"||C=="AXES_3D"){for(var le,_e=[0,0,0],He=[0,0,0],ye=0;3>ye;ye++)le=0>U[ye]?-1:1,_e[ye]=le*M[0]+U[ye]*A[0];for(var ye=0;3>ye;ye++)He[ye]=F[ye]+T[0]*_e[0]*$[ye]+T[1]*_e[1]*J[ye]+T[2]*_e[2]*k[ye];for(var tt=glyph_repeat_mode=="AXES_2D"?2:3,Le=0;Le<tt;Le++){var ut=void 0,Ie=void 0,qe=U[Le],je=[0,0,0],ot=[0,0,0],et=[0,0,0];Le==0?(ut=$,Ie=J):Le==1?(ut=J,Ie=glyph_repeat_mode=="AXES_2D"?$:k):(ut=k,Ie=$);var Ut=M[0]+qe*A[0];je[0]=ut[0]*Ut,je[1]=ut[1]*Ut,je[2]=ut[2]*Ut,et[0]=je[1]*Ie[2]-Ie[1]*je[2],et[1]=je[2]*Ie[0]-Ie[2]*je[0],et[2]=je[0]*Ie[1]-je[1]*Ie[0];var gt=Math.sqrt(et[0]*et[0]+et[1]*et[1]+et[2]*et[2]);if(0<gt){var se=(M[2]+qe*A[2])/gt;C=="AXES_2D"&&0<Le&&(se*=-1),et[0]*=se,et[1]*=se,et[2]*=se}if(ot[0]=et[1]*je[2]-je[1]*et[2],ot[1]=et[2]*je[0]-je[2]*et[0],ot[2]=et[0]*je[1]-et[1]*je[0],gt=Math.sqrt(ot[0]*ot[0]+ot[1]*ot[1]+ot[2]*ot[2]),0<gt){var Me=(M[1]+qe*A[1])/gt;ot[0]*=Me,ot[1]*=Me,ot[2]*=Me}oe[Le]=[He,je,ot,et]}}return oe},Q=(F,$,J,k,U)=>{var oe=1;C=="AXES_2D"||C=="MIRROR"?oe=2:C=="AXES_3D"&&(oe=3);var le=F.length/3,ae=0;z.length=oe;for(var he=0;he<le;he++){var ve=3*he,we=[F[ve],F[ve+1],F[ve+2]],ce=[$[ve],$[ve+1],$[ve+2]],ge=[J[ve],J[ve+1],J[ve+2]],re=[k[ve],k[ve+1],k[ve+2]],xe=[U[ve],U[ve+1],U[ve+2]],fe=Z(we,ce,ge,re,xe,z);if(fe.length==oe)for(var ye=0;ye<oe;ye++){I.elements[0]=fe[ye][1][0],I.elements[1]=fe[ye][1][1],I.elements[2]=fe[ye][1][2],I.elements[3]=0,I.elements[4]=fe[ye][2][0],I.elements[5]=fe[ye][2][1],I.elements[6]=fe[ye][2][2],I.elements[7]=0,I.elements[8]=fe[ye][3][0],I.elements[9]=fe[ye][3][1],I.elements[10]=fe[ye][3][2],I.elements[11]=0,I.elements[12]=fe[ye][0][0],I.elements[13]=fe[ye][0][1],I.elements[14]=fe[ye][0][2],I.elements[15]=1,this.morph.setMatrixAt(ae,I);var _e=y[ae];_e&&_e.setTransformation(fe[ye][0],fe[ye][1],fe[ye][2],fe[ye][3]),ae++}}this.morph.instanceMatrix.needsUpdate=!0},ee=F=>{var $=1;C=="AXES_2D"||C=="MIRROR"?$=2:C=="AXES_3D"&&($=3);for(var J,k=F.length,U=0,oe=0;oe<k;oe++){J=F[oe];for(var le=0;le<$;le++){O.setHex(J),this.morph.setColorAt(U,O);var ae=y[U];ae&&ae.setColour(O),U++}}this.morph.instanceColor.needsUpdate=!0},ie=()=>{var F=V,$=G,J=H,k=K,U=te,oe=W,le=this.inbuildTime/this.duration*(E-1),ae=Math.floor(le),he=1-(le-ae),ve=Math.ceil(le);if(L){var we=v[ae.toString()],ce=v[ve.toString()],ge=m[ae.toString()],re=m[ve.toString()],xe=h[ae.toString()],fe=h[ve.toString()],ye=b[ae.toString()],_e=b[ve.toString()],He=g[ae.toString()],tt=g[ve.toString()];V.length=we.length,G.length=we.length,H.length=we.length,K.length=we.length,te.length=we.length;for(var Le=0;Le<we.length;Le++)F[Le]=he*we[Le]+(1-he)*ce[Le],$[Le]=he*ge[Le]+(1-he)*re[Le],J[Le]=he*xe[Le]+(1-he)*fe[Le],k[Le]=he*ye[Le]+(1-he)*_e[Le],U[Le]=he*He[Le]+(1-he)*tt[Le]}else v[0],u("current_positions"),m[0],u("current_axis1s"),h[0],u("current_axis2s"),b[0],u("current_axis3s"),g[0],u("current_scales");if(Q(F,$,J,k,U),this.boundingBoxUpdateRequired=!0,x!=null){if(R){var ut=x[ae.toString()],Ie=x[ve.toString()];oe.length=ut.length;for(var qe=0;qe<ut.length;qe++)O.setHex(ut[qe]),N.setHex(Ie[qe]),O.setRGB(O.r*he+N.r*(1-he),O.g*he+N.g*(1-he),O.b*he+N.b*(1-he)),oe[qe]=O.getHex()}else x[0],u("current_colors");ee(oe)}};this.showLabel=()=>{for(var F=0;F<y.length;F++)y[F].showLabel(this.morph.material?this.morph.material.color:void 0)};var q=F=>{if(_!=null&&F)for(var $,J=0;J<S;J++)$=new(c(16)).Glyph(void 0,void 0,J,this),_!=null&&_[J]!=null&&$.setLabel(_[J]),0<E&&$.setFrustumCulled(!1),y[J]=$,this.morph.add($.getGroup());_!=null&&F&&this.showLabel(this.morph.material?this.morph.material.color:void 0),Q(v[0],m[0],h[0],b[0],g[0]),x!=null&&ee(x[0]),this.ready=!0,this.boundingBoxUpdateRequired=!0};this.addCustomGlyph=F=>{F.isGlyph&&y.push(F),this.ready=!0,this.boundingBoxUpdateRequired=!0},this.addMeshAsGlyph=(F,$)=>{if(F.isMesh){var J=new(c(16)).Glyph(void 0,void 0,$,this);return J.fromMesh(F),y.push(J),this.morph.add(J.getGroup()),this.ready=!0,this.boundingBoxUpdateRequired=!0,J}},this.forEachGlyph=F=>{for(var $=0;$<y.length;$++)F(y[$])};var ne=(F,$)=>(J,k)=>{var U=J.toBufferGeometry();this.geometry.copy(U),this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox(),U.dispose(),k&&k[0]&&(this.morph.material=k[0]),q($),this.morph.name=this.groupName,this.morph.userData=this,this.setMorph(this.morph),J.dispose(),F!=null&&typeof F=="function"&&F(this)};this.getClosestVertexIndex=function(){var F=-1;if(this.morph&&this.ready){this.getBoundingBox().getCenter(this._v1);for(var $,J=v[0],k=J.length/3,U=-1,oe=0,le=0;le<k;le++)$=3*le,this._v2.set(J[$],J[$+1],J[$+2]),oe=this._v1.distanceTo(this._v2),(U==-1||U>oe)&&(U=oe,F=le)}return F},this.getClosestVertex=function(){if(this.closestVertexIndex==-1&&(this.closestVertexIndex=this.getClosestVertexIndex()),0<=this.closestVertexIndex&&this.morph){var F=new f.Vector3;return this.morph.getMatrixAt(this.closestVertexIndex,I),F.setFromMatrixPosition(I),F}},this.getBoundingBox=()=>{if(this.morph&&this.ready&&this.morph.visible){if(this.boundingBoxUpdateRequired){w.setFromBufferAttribute(this.morph.geometry.attributes.position);for(var F=0;F<S;F++)this.morph.getMatrixAt(F,I),P.copy(w).applyMatrix4(I),F==0?B.copy(P):B.union(P);if(B)this.cachedBoundingBox.copy(B),this.morph.updateWorldMatrix(!0,!0),this.cachedBoundingBox.applyMatrix4(this.morph.matrixWorld),this.boundingBoxUpdateRequired=!1;else return}return this.cachedBoundingBox}},this.setMorphTime=F=>{this.inbuildTime=F>this.duration?this.duration:0>F?0:F,(R||L)&&(ie(),L&&(this.markerUpdateRequired=!0))},this.isTimeVarying=()=>!!((this.ready===!1||0<E)&&(R||L)),this.getCurrentTime=()=>this.inbuildTime,this.dispose=()=>{for(var F=y.length-1;0<=F;F--)y[F].dispose();this.geometry&&this.geometry.dispose(),this.morph&&this.morph.material.dispose(),m=void 0,h=void 0,b=void 0,v=void 0,g=void 0,x=void 0,this.ready=!1,this.groupName=void 0},this.render=(F,$,J)=>{if($==!0){var k=this.inbuildTime+F;k>this.duration&&(k-=this.duration),this.inbuildTime=k,(R||L)&&ie()}this.updateMarker($,J)}};p.prototype=Object.create(c(10).ZincObject.prototype),l.Glyphset=p},(o,l,c)=>{c.r(l),c.d(l,{JSONLoader:()=>S});var u=c(4),f=c(20).Loader,d=u.LoaderUtils,p=u.AnimationClip,y=u.Vector3,m=u.Vector4,h=u.Color,b=u.Vector2,v=c(6).Face3,g=c(6).Geometry,x=u.FileLoader,_=u.DefaultLoadingManager,E=c(21).VideoHandler;function S(M){typeof M=="boolean"&&(console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."),M=void 0),this.manager=M===void 0?_:M,this.withCredentials=!1,this.paramsString=""}Object.assign(S.prototype,{load:function(T,A,C,R){var L=this,I=this.texturePath&&typeof this.texturePath=="string"?this.texturePath:d.extractUrlBase(T),O=new x(this.manager);T.split("?"),this.paramsString=T.length===2?paramsStrings[1]:"",O.setWithCredentials(this.withCredentials),O.load(T,function(N){var w=JSON.parse(N),P=w.metadata;if(P!==void 0){var B=P.type;if(B!==void 0&&B.toLowerCase()==="object")return void console.error("THREE.JSONLoader: "+T+" should be loaded with THREE.ObjectLoader instead.")}if(L&&L.parse){var D=L.parse(w,I);A(D.geometry,D.materials)}},C,R)},setTexturePath:function(T){this.texturePath=T},parse:function(){function M(R,L){function I(xe,fe){return xe&1<<fe}var O,N,w,P,B,D,V,G,H,K,te,W,z,j,Z,Q,ee,ie,q,ne,F,$,J,k,U,oe,le,ae=R.faces,he=R.vertices,ve=R.normals,we=R.colors,ce=R.scale,ge=0;if(R.uvs!==void 0){for(O=0;O<R.uvs.length;O++)R.uvs[O].length&&ge++;for(O=0;O<ge;O++)L.faceVertexUvs[O]=[]}for(P=0,B=he.length;P<B;)ie=new y,ie.x=he[P++]*ce,ie.y=he[P++]*ce,ie.z=he[P++]*ce,L.vertices.push(ie);if(P=0,B=ae.length,R.uvs)for(O=0;O<R.uvs.length;O++){L.uvs[O]=[];for(var re=0;re<R.uvs[O].length;re++)L.uvs[O][re]=R.uvs[O][re]}if(ve)for(O=0;O<ve.length;O++)L.normals[O]=ve[O];if(we)for(O=0;O<we.length;O++)L.colors[O]=we[O];for(;P<B;)if(K=ae[P++],te=I(K,0),W=I(K,1),z=I(K,3),j=I(K,4),Z=I(K,5),Q=I(K,6),ee=I(K,7),te){if(ne=new v,ne.a=ae[P],ne.b=ae[P+1],ne.c=ae[P+3],F=new v,F.a=ae[P+1],F.b=ae[P+2],F.c=ae[P+3],P+=4,W&&(H=ae[P++],ne.materialIndex=H,F.materialIndex=H),w=L.faces.length,z)for(O=0;O<ge;O++)for(k=R.uvs[O],L.faceVertexUvs[O][w]=[],L.faceVertexUvs[O][w+1]=[],N=0;4>N;N++)G=ae[P++],oe=k[2*G],le=k[2*G+1],U=new b(oe,le),N!==2&&L.faceVertexUvs[O][w].push(U),N!==0&&L.faceVertexUvs[O][w+1].push(U);if(j&&(V=3*ae[P++],ne.normal.set(ve[V++],ve[V++],ve[V]),F.normal.copy(ne.normal)),Z)for(O=0;4>O;O++)V=3*ae[P++],J=new y(ve[V++],ve[V++],ve[V]),O!==2&&ne.vertexNormals.push(J),O!==0&&F.vertexNormals.push(J);if(Q&&(D=ae[P++],$=we[D],ne.color.setHex($),F.color.setHex($)),ee)for(O=0;4>O;O++)D=ae[P++],$=we[D],O!==2&&ne.vertexColors.push(new h($)),O!==0&&F.vertexColors.push(new h($));L.faces.push(ne),L.faces.push(F)}else{if(q=new v,q.a=ae[P++],q.b=ae[P++],q.c=ae[P++],W&&(H=ae[P++],q.materialIndex=H),w=L.faces.length,z)for(O=0;O<ge;O++)for(k=R.uvs[O],L.faceVertexUvs[O][w]=[],N=0;3>N;N++)G=ae[P++],oe=k[2*G],le=k[2*G+1],U=new b(oe,le),L.faceVertexUvs[O][w].push(U);if(j&&(V=3*ae[P++],q.normal.set(ve[V++],ve[V++],ve[V])),Z)for(O=0;3>O;O++)V=3*ae[P++],J=new y(ve[V++],ve[V++],ve[V]),q.vertexNormals.push(J);if(Q&&(D=ae[P++],q.color.setHex(we[D])),ee)for(O=0;3>O;O++)D=ae[P++],q.vertexColors.push(new h(we[D]));L.faces.push(q)}}function T(R,L){var I=R.influencesPerVertex===void 0?2:R.influencesPerVertex;if(R.skinWeights)for(var O=0,N=R.skinWeights.length;O<N;O+=I){var w=R.skinWeights[O],P=1<I?R.skinWeights[O+1]:0,B=2<I?R.skinWeights[O+2]:0,D=3<I?R.skinWeights[O+3]:0;L.skinWeights.push(new m(w,P,B,D))}if(R.skinIndices)for(var O=0,N=R.skinIndices.length;O<N;O+=I){var V=R.skinIndices[O],G=1<I?R.skinIndices[O+1]:0,H=2<I?R.skinIndices[O+2]:0,K=3<I?R.skinIndices[O+3]:0;L.skinIndices.push(new m(V,G,H,K))}L.bones=R.bones,L.bones&&0<L.bones.length&&(L.skinWeights.length!==L.skinIndices.length||L.skinIndices.length!==L.vertices.length)&&console.warn("When skinning, number of vertices ("+L.vertices.length+"), skinIndices ("+L.skinIndices.length+"), and skinWeights ("+L.skinWeights.length+") should match.")}function A(R,L){var I=R.scale;if(R.morphTargets!==void 0)for(var O=0,N=R.morphTargets.length;O<N;O++){L.morphTargets[O]={},L.morphTargets[O].name=R.morphTargets[O].name,L.morphTargets[O].vertices=[];for(var w,P=L.morphTargets[O].vertices,B=R.morphTargets[O].vertices,D=0,V=B.length;D<V;D+=3)w=new y,w.x=B[D]*I,w.y=B[D+1]*I,w.z=B[D+2]*I,P.push(w)}if(R.morphNormals!==void 0){for(var O=0,N=R.morphNormals.length;O<N;O++)if(L.morphTargets[O]){L.morphTargets[O].normals=[];for(var G,H=L.morphTargets[O].normals,K=R.morphNormals[O].normals,D=0,V=K.length;D<V;D+=3)G=new y,G.x=K[D],G.y=K[D+1],G.z=K[D+2],H.push(G);L.morphNormalsReady=!0}}if(R.morphColors!==void 0){var O,N,te,W,z,j,Z;for(O=0,N=R.morphColors.length;O<N;O++)for(L.morphColors[O]={},L.morphColors[O].name=R.morphColors[O].name,L.morphColors[O].colors=[],z=L.morphColors[O].colors,j=R.morphColors[O].colors,te=0,W=j.length;te<W;te+=3)Z=new u.Color(16755200),Z.setRGB(j[te],j[te+1],j[te+2]),z.push(Z)}}function C(R,L){var I=[],O=[];R.animation!==void 0&&O.push(R.animation),R.animations!==void 0&&(R.animations.length?O=O.concat(R.animations):O.push(R.animations));for(var N,w=0;w<O.length;w++)N=p.parseAnimation(O[w],L.bones),N&&I.push(N);if(L.morphTargets){var P=p.CreateClipsFromMorphTargetSequences(L.morphTargets,10);I=I.concat(P)}0<I.length&&(L.animations=I)}return function(R,L){R.data!==void 0&&(R=R.data),R.scale=R.scale===void 0?1:1/R.scale;var I=new g;if(I.morphColors=[],M(R,I),T(R,I),A(R,I),C(R,I),I.computeFaceNormals(),I.computeBoundingSphere(),R.materials===void 0||R.materials.length===0)return{geometry:I};var O=f.prototype.initMaterials(R.materials,L,"Anonymous");if(R.materials[0].video){var N=L+R.materials[0].video;this.paramsString&&(N+="?".concat(this.paramsString));var w=new E(N);I._video=w}return O&&0<O.length&&(O[0].side=R.materials[0].singleSided?u.FrontSide:R.materials[0].flipSided?u.BackSide:u.DoubleSide,R.materials[0].specularCoef&&(O[0].shininess=Math.floor(R.materials[0].specularCoef/3))),{geometry:I,materials:O}}}()})},(o,l,c)=>{c.r(l),c.d(l,{Loader:()=>f});var u=c(4);c(4);function f(){}f.Handlers={handlers:[],add:function(p,y){this.handlers.push(p,y)},get:function(p){for(var y=this.handlers,m=0,h=y.length;m<h;m+=2){var b=y[m],v=y[m+1];if(b.test(p))return v}return null}},Object.assign(f.prototype,{crossOrigin:"anonymous",onLoadStart:function(){},onLoadProgress:function(){},onLoadComplete:function(){},initMaterials:function(p,y,m){for(var h=[],b=0;b<p.length;++b)h[b]=this.createMaterial(p[b],y,m);return h},createMaterial:function(){var d={NoBlending:u.NoBlending,NormalBlending:u.NormalBlending,AdditiveBlending:u.AdditiveBlending,SubtractiveBlending:u.SubtractiveBlending,MultiplyBlending:u.MultiplyBlending,CustomBlending:u.CustomBlending},p=new u.Color,y=new u.TextureLoader,m=new u.MaterialLoader;return function(h,b,v){function g(M,T,A,C,R){var L,I=b+M,O=f.Handlers.get(I);O===null?(y.setCrossOrigin(v),L=y.load(I)):L=O.load(I),T!==void 0&&(L.repeat.fromArray(T),T[0]!==1&&(L.wrapS=u.RepeatWrapping),T[1]!==1&&(L.wrapT=u.RepeatWrapping)),A!==void 0&&L.offset.fromArray(A),C!==void 0&&(C[0]==="repeat"&&(L.wrapS=u.RepeatWrapping),C[0]==="mirror"&&(L.wrapS=u.MirroredRepeatWrapping),C[1]==="repeat"&&(L.wrapT=u.RepeatWrapping),C[1]==="mirror"&&(L.wrapT=u.MirroredRepeatWrapping)),R!==void 0&&(L.anisotropy=R);var N=u.MathUtils.generateUUID();return x[N]=L,N}var x={},_={uuid:u.MathUtils.generateUUID(),type:"MeshLambertMaterial"};for(var E in h){var S=h[E];switch(E){case"DbgColor":case"DbgIndex":case"opticalDensity":case"illumination":break;case"DbgName":_.name=S;break;case"blending":_.blending=d[S];break;case"colorAmbient":case"mapAmbient":console.warn("THREE.Loader.createMaterial:",E,"is no longer supported.");break;case"colorDiffuse":_.color=p.fromArray(S).getHex();break;case"colorSpecular":_.specular=p.fromArray(S).getHex();break;case"colorEmissive":_.emissive=p.fromArray(S).getHex();break;case"specularCoef":_.shininess=S;break;case"shading":S.toLowerCase()==="basic"&&(_.type="MeshBasicMaterial"),S.toLowerCase()==="phong"&&(_.type="MeshPhongMaterial"),S.toLowerCase()==="standard"&&(_.type="MeshStandardMaterial");break;case"mapDiffuse":_.map=g(S,h.mapDiffuseRepeat,h.mapDiffuseOffset,h.mapDiffuseWrap,h.mapDiffuseAnisotropy);break;case"mapDiffuseRepeat":case"mapDiffuseOffset":case"mapDiffuseWrap":case"mapDiffuseAnisotropy":break;case"mapEmissive":_.emissiveMap=g(S,h.mapEmissiveRepeat,h.mapEmissiveOffset,h.mapEmissiveWrap,h.mapEmissiveAnisotropy);break;case"mapEmissiveRepeat":case"mapEmissiveOffset":case"mapEmissiveWrap":case"mapEmissiveAnisotropy":break;case"mapLight":_.lightMap=g(S,h.mapLightRepeat,h.mapLightOffset,h.mapLightWrap,h.mapLightAnisotropy);break;case"mapLightRepeat":case"mapLightOffset":case"mapLightWrap":case"mapLightAnisotropy":break;case"mapAO":_.aoMap=g(S,h.mapAORepeat,h.mapAOOffset,h.mapAOWrap,h.mapAOAnisotropy);break;case"mapAORepeat":case"mapAOOffset":case"mapAOWrap":case"mapAOAnisotropy":break;case"mapBump":_.bumpMap=g(S,h.mapBumpRepeat,h.mapBumpOffset,h.mapBumpWrap,h.mapBumpAnisotropy);break;case"mapBumpScale":_.bumpScale=S;break;case"mapBumpRepeat":case"mapBumpOffset":case"mapBumpWrap":case"mapBumpAnisotropy":break;case"mapNormal":_.normalMap=g(S,h.mapNormalRepeat,h.mapNormalOffset,h.mapNormalWrap,h.mapNormalAnisotropy);break;case"mapNormalFactor":_.normalScale=S;break;case"mapNormalRepeat":case"mapNormalOffset":case"mapNormalWrap":case"mapNormalAnisotropy":break;case"mapSpecular":_.specularMap=g(S,h.mapSpecularRepeat,h.mapSpecularOffset,h.mapSpecularWrap,h.mapSpecularAnisotropy);break;case"mapSpecularRepeat":case"mapSpecularOffset":case"mapSpecularWrap":case"mapSpecularAnisotropy":break;case"mapMetalness":_.metalnessMap=g(S,h.mapMetalnessRepeat,h.mapMetalnessOffset,h.mapMetalnessWrap,h.mapMetalnessAnisotropy);break;case"mapMetalnessRepeat":case"mapMetalnessOffset":case"mapMetalnessWrap":case"mapMetalnessAnisotropy":break;case"mapRoughness":_.roughnessMap=g(S,h.mapRoughnessRepeat,h.mapRoughnessOffset,h.mapRoughnessWrap,h.mapRoughnessAnisotropy);break;case"mapRoughnessRepeat":case"mapRoughnessOffset":case"mapRoughnessWrap":case"mapRoughnessAnisotropy":break;case"mapAlpha":_.alphaMap=g(S,h.mapAlphaRepeat,h.mapAlphaOffset,h.mapAlphaWrap,h.mapAlphaAnisotropy);break;case"mapAlphaRepeat":case"mapAlphaOffset":case"mapAlphaWrap":case"mapAlphaAnisotropy":break;case"flipSided":_.side=u.BackSide;break;case"doubleSided":_.side=u.DoubleSide;break;case"transparency":console.warn("THREE.Loader.createMaterial: transparency has been renamed to opacity"),_.opacity=S;break;case"depthTest":case"depthWrite":case"colorWrite":case"opacity":case"reflectivity":case"transparent":case"visible":case"wireframe":_[E]=S;break;case"vertexColors":S===!0&&(_.vertexColors=u.VertexColors),S==="face"&&(_.vertexColors=u.FaceColors);break;default:console.error("THREE.Loader.createMaterial: Unsupported",E,S)}}return _.type==="MeshBasicMaterial"&&delete _.emissive,_.type!=="MeshPhongMaterial"&&delete _.specular,1>_.opacity&&(_.transparent=!0),m.setTextures(x),m.parse(_)}}()})},(o,l,c)=>{var u=c(4);l.VideoHandler=function(f){var d=this;this.video=void 0,this.videoTexture=void 0,this.setMorphTime=function(p,y){var m=p/y*d.video.duration;d.video.currentTime=m},this.getVideoDuration=function(){return d.video.duration},this.createCanvasVideoTexture=function(){return d.videoTexture=new u.VideoTexture(d.video),d.videoTexture.minFilter=u.LinearFilter,d.videoTexture.magFilter=u.LinearFilter,d.videoTexture.format=u.RGBFormat,d.video.currentTime=0,d.videoTexture},this.getCurrentTime=function(p){return d.video?p*(d.video.currentTime/d.video.duration):0},this.isReadyToPlay=function(){return!!(d.video&&3<=d.video.readyState)},function(){document&&(d.video=document.createElement("video"),d.video.crossOrigin="anonymous",d.video.src=f,d.video.load(),d.video.loop=!0)}()}},(o,l,c)=>{var u=c(4),f=c(23).Points,d=c(5).toBufferGeometry,p=c(5).getCircularTexture,y=c(17).Label,m=function(){c(10).ZincObject.call(this),this.isPointset=!0;var h=[];this.createMesh=(v,g,x)=>{if(v&&g){var _=d(v,x),E=p();g.map=E;var S=new f(_,g);this.setMesh(S,x.localTimeEnabled,x.localMorphColour)}};var b=(v,g,x,_)=>{if(x){var E=new u.Color(_),S=new y(x,E);S.setPosition(g[0],g[1],g[2]);var M=S.getSprite();M.material.sizeAttenuation=!1,M.material.alphaTest=.5,M.material.transparent=!0,M.material.depthWrite=!1,M.material.depthTest=!1,this.group.add(M),h[v]=S}};this.addPoints=(v,g,x)=>{if(v&&0<v.length){var _=this.drawRange-1,E=this.addVertices(v),S=this.getMorph();if(!S){var M=new u.PointsMaterial({alphaTest:.5,size:10,color:x,sizeAttenuation:!1});E.colorsNeedUpdate=!0,this.createMesh(E,M,{localTimeEnabled:!1,localMorphColour:!1})}var T=_+v.length,A=0;if(Array.isArray(g)&&g.length===v.length||typeof g=="string")for(_;_+A<T;){var C=typeof g=="string"?g:g[A];b(A,v[A],C,x),A++}this.region&&(this.region.pickableUpdateRequired=!0)}},this.setSize=v=>{this.morph&&this.morph.material&&(this.morph.material.size=v,this.morph.material.needsUpdate=!0)},this.setSizeAttenuation=v=>{this.morph&&this.morph.material&&(this.morph.material.sizeAttenuation=v,this.morph.material.needsUpdate=!0)},this.getVerticesByIndex=function(v){if(0<=v&&this.drawRange>v){var g=this.getMorph().geometry.getAttribute("position");return[g.getX(v),g.getY(v),g.getZ(v)]}},this.editVertices=function(v,g){if(v&&v.length){var x=this.getMorph(),_=g+v.length-1;if(!x||0>g||_>=this.drawRange)return;var E=x.geometry.getAttribute("position"),S=g;v.forEach(M=>{var T=h[S];T&&T.setPosition(M[0],M[1],M[2]),E.setXYZ(S++,M[0],M[1],M[2])}),E.needsUpdate=!0,this.boundingBoxUpdateRequired=!0}},this.render=(v,g,x,_)=>{this.morph&&x&&(this.morph.sizePerPixel=x.pixelHeight),m.prototype.render.call(this,v,g,x,_)}};m.prototype=Object.create(c(10).ZincObject.prototype),l.Pointset=m},(o,l,c)=>{c.r(l),c.d(l,{Points:()=>b});var u=c(4),f=new u.Matrix4,d=new u.Ray,p=new u.Sphere,y=new u.Vector3,m=new u.Vector3,h=new u.Vector3;class b extends u.Object3D{constructor(){var _=0<arguments.length&&arguments[0]!==void 0?arguments[0]:new u.BufferGeometry,E=1<arguments.length&&arguments[1]!==void 0?arguments[1]:new u.PointsMaterial;super(),this.type="Points",this.geometry=_,this.material=E,this.sizePerPixel=1,this.updateMorphTargets()}copy(_){return super.copy(_),this.material=_.material,this.geometry=_.geometry,this}raycast(_,E){var S=this.geometry,M=this.matrixWorld,T=_.params.Points.threshold,A=S.drawRange;if(S.boundingSphere===null&&S.computeBoundingSphere(),p.copy(S.boundingSphere),p.applyMatrix4(M),p.radius+=T,_.ray.intersectsSphere(p)!==!1){f.copy(M).invert(),d.copy(_.ray).applyMatrix4(f);var C=T/((this.scale.x+this.scale.y+this.scale.z)/3)*this.material.size*this.sizePerPixel,R=C*C;if(S.isBufferGeometry){var L=S.index,I=S.attributes,O=I.position,N=S.morphAttributes.position;if(L!==null)for(var w,P=Math.max(0,A.start),B=Math.min(L.count,A.start+A.count),D=P;D<B;D++)w=L.getX(D),g(this,O,N,w),v(y,w,R,M,_,E,this);else for(var V=Math.max(0,A.start),G=Math.min(O.count,A.start+A.count),H=V;H<G;H++)g(this,O,N,H),v(y,H,R,M,_,E,this)}else console.error("THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}}updateMorphTargets(){var _=this.geometry;if(_.isBufferGeometry){var E=_.morphAttributes,S=Object.keys(E);if(0<S.length){var M=E[S[0]];if(M!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(var T,A=0,C=M.length;A<C;A++)T=M[A].name||A+"",this.morphTargetInfluences.push(0),this.morphTargetDictionary[T]=A}}}else{var R=_.morphTargets;R!==void 0&&0<R.length&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}b.prototype.isPoints=!0;function v(x,_,E,S,M,T,A){var C=d.distanceSqToPoint(x);if(C<E){var R=new u.Vector3;d.closestPointToPoint(x,R),R.applyMatrix4(S);var L=M.ray.origin.distanceTo(R);if(L<M.near||L>M.far)return;T.push({distance:L,distanceToRay:Math.sqrt(C),point:R,index:_,face:null,object:A})}}function g(x,_,E,S){y.fromBufferAttribute(_,S);var M=x.morphTargetInfluences;if(x.material.morphTargets&&E&&M){m.set(0,0,0);for(var T=0,A=E.length;T<A;T++){var C=M[T],R=E[T];C!==0&&(h.fromBufferAttribute(R,S),m.addScaledVector(h.sub(y),C))}y.add(m)}}},(o,l,c)=>{var u=c(4),f=c(5).toBufferGeometry,d=function(){c(10).ZincObject.call(this),this.isLines=!0,this.createLineSegment=(p,y,m)=>{if(p&&y){var h=f(p,m);m.localMorphColour&&h.morphAttributes.color&&(y.onBeforeCompile=c(9).augmentMorphColor());var b=new(c(12)).LineSegments(h,y);this.setMesh(b,m.localTimeEnabled,m.localMorphColour)}},this.setWidth=p=>{this.morph&&this.morph.material&&(this.morph.material.linewidth=p,this.morph.material.needsUpdate=!0)},this.addLines=(p,y)=>{if(p&&0<p.length){var m=this.addVertices(p),h=this.getMorph();if(!h){var b=new u.LineBasicMaterial({color:y});m.colorsNeedUpdate=!0,this.createLineSegment(m,b,{localTimeEnabled:!1,localMorphColour:!1})}this.region&&(this.region.pickableUpdateRequired=!0)}}};d.prototype=Object.create(c(10).ZincObject.prototype),l.Lines=d},(o,l,c)=>{function u(y,m,h,b,v,g,x){try{var _=y[g](x),E=_.value}catch(S){return void h(S)}_.done?m(E):Promise.resolve(E).then(b,v)}function f(y){return function(){var m=this,h=arguments;return new Promise(function(b,v){function g(E){u(_,b,v,g,x,"next",E)}function x(E){u(_,b,v,g,x,"throw",E)}var _=y.apply(m,h);g(void 0)})}}var d=c(4),p=function(){var y=this;c(26).Texture.call(this),this.isTextureArray=!0,this.loadFromImages=function(){var m=f(function*(h){var b=1,v=1,g=0;if(h&&h.length){y.isLoading=!0;var x=new Image;x.crossOrigin="Anonymous";for(var _,E=document.createElement("canvas"),S=0,M=Array(h.length),T=0;T<h.length;T++)_=yield y.imageToUint8Array(y,x,h[T],E),_&&_.array&&(b=_.width,v=_.height,M[g]=_.array,S+=M[g].length,g++);var A=new Uint8Array(S);S=0,M.forEach(C=>{A.set(C,S),S+=C.length}),y.impl=new d.DataTexture2DArray(A,b,v,g),y.size={width:b,height:v,depth:g},y.isLoading=!1,y.impl.needsUpdate=!0}});return function(){return m.apply(this,arguments)}}(),this.getMaterial=m=>{if(this.impl){var h;if(!m)h=new d.MeshBasicMaterial({color:new d.Color(1,1,1),transparent:!1,opacity:1,map:this.impl,side:d.DoubleSide});else if(m.vs&&m.fs){var b=!0;m.transparent&&(b=m.transparent);var v=d.FrontSide;m.side&&(v=m.side),h=new d.ShaderMaterial({transparent:b,uniforms:m.uniforms,vertexShader:m.vs,fragmentShader:m.fs,side:v}),m.glslVersion&&(h.glslVersion=m.glslVersion)}if(h)return h.needsUpdate=!0,h}}};p.prototype=Object.create(c(26).Texture.prototype),l.TextureArray=p},(o,l,c)=>{function u(y,m,h,b,v,g,x){try{var _=y[g](x),E=_.value}catch(S){return void h(S)}_.done?m(E):Promise.resolve(E).then(b,v)}function f(y){return function(){var m=this,h=arguments;return new Promise(function(b,v){function g(E){u(_,b,v,g,x,"next",E)}function x(E){u(_,b,v,g,x,"throw",E)}var _=y.apply(m,h);g(void 0)})}}var d=c(4),p=function(){this.isTexture=!0,this.impl=void 0,this.isLoading=!1,this.size={width:1,height:1,depth:0}};p.prototype.loadImage=function(y,m){return new Promise((h,b)=>{y.onload=()=>h(y),y.onerror=b,y.src=m})},p.prototype.imageToUint8Array=function(){var y=f(function*(m,h,b,v){yield m.loadImage(h,b),v.width=h.width,v.height=h.height;var g=v.getContext("2d");return g.drawImage(h,0,0),{array:new Uint8Array(g.getImageData(0,0,v.width,v.height).data.buffer),width:v.width,height:v.height}});return function(){return y.apply(this,arguments)}}(),p.prototype.loadFromImages=function(){var y=f(function*(){});return function(){return y.apply(this,arguments)}}(),p.prototype.isReady=function(){return!(!this.impl||this.isLoading)},p.prototype.getMaterial=function(){if(this.impl)return new d.MeshBasicMaterial({color:new d.Color(1,1,1),transparent:!1,opacity:1,map:this.impl,side:d.DoubleSide})},l.Texture=p},(o,l,c)=>{function u(v,g){var x=Object.keys(v);if(Object.getOwnPropertySymbols){var _=Object.getOwnPropertySymbols(v);g&&(_=_.filter(function(E){return Object.getOwnPropertyDescriptor(v,E).enumerable})),x.push.apply(x,_)}return x}function f(v){for(var g,x=1;x<arguments.length;x++)g=arguments[x]==null?{}:arguments[x],x%2?u(Object(g),!0).forEach(function(_){d(v,_,g[_])}):Object.getOwnPropertyDescriptors?Object.defineProperties(v,Object.getOwnPropertyDescriptors(g)):u(Object(g)).forEach(function(_){Object.defineProperty(v,_,Object.getOwnPropertyDescriptor(g,_))});return v}function d(v,g,x){return g=p(g),g in v?Object.defineProperty(v,g,{value:x,enumerable:!0,configurable:!0,writable:!0}):v[g]=x,v}function p(v){var g=y(v,"string");return typeof g=="symbol"?g:g+""}function y(v,g){if(typeof v!="object"||!v)return v;var x=v[Symbol.toPrimitive];if(x!==void 0){var _=x.call(v,g||"default");if(typeof _!="object")return _;throw new TypeError("@@toPrimitive must return a primitive value.")}return(g==="string"?String:Number)(v)}var m=c(4),h=c(28),b=function(v){c(29).TexturePrimitive.call(this,v),this.isTextureSlides=!0;var g=[],x={};this.morph=new m.Group,this.group=this.morph,this.morph.userData=this;var _=!0;this.createSlides=M=>{M.forEach(T=>this.createSlide(T))};var E=(M,T)=>{var A=M.material,C=A.uniforms;switch(M.rotation.x=0,M.rotation.y=0,M.rotation.z=0,M.position.x=0,M.position.y=0,M.position.z=0,T.direction){case"x":var R=_?-Math.PI/2:Math.PI/2;M.rotation.y=R,C.direction.value=1,C.slide.value.set(T.value,0,0),M.position.x=T.value;break;case"y":M.rotation.x=Math.PI/2,C.direction.value=2,C.slide.value.set(0,T.value,0),M.position.y=T.value;break;case"z":C.direction.value=3,C.slide.value.set(0,0,T.value),M.position.z=T.value;break}A.needsUpdate=!0,this.boundingBoxUpdateRequired=!0};this.modifySlideSettings=M=>{M&&M.id&&M.id in x&&x[M.id]&&E(x[M.id],M)},this.createSlide=M=>{if(this.texture&&this.texture.isTextureArray&&this.texture.isReady()&&M&&M.direction&&M.value!==void 0){var T=new m.PlaneGeometry(1,1);T.translate(.5,.5,0);var A=h.getUniforms();A.diffuse.value=this.texture.impl,A.depth.value=this.texture.size.depth,A.flipY.value=_;var C={fs:h.fs,vs:h.vs,uniforms:A,glslVersion:h.glslVersion,side:m.DoubleSide,transparent:!1},R=this.texture.getMaterial(C);R.needsUpdate=!0;var L=new m.Mesh(T,R);L.name=this.groupName,L.userData=this;var I={value:M.value,direction:M.direction,id:L.id};return g.push(I),E(L,I),x[L.id]=L,this.morph.add(L),this.boundingBoxUpdateRequired=!0,I}},this.getTextureSettings=()=>[...g],this.getTextureSettingsWithId=M=>{for(var T=0;T<g.length;T++)if(M===g[T].id)return f({},g[T])},this.getSlides=()=>this.morph?[...this.morph.children]:[],this.removeSlide=M=>{M&&this.removeSlideWithId(M.id)},this.removeSlideWithId=M=>{if(this.morph&&M in x&&x[M]){if(this.morph.getObjectById(M)){var T=x[M];this.morph.remove(T),T.clear(),T.geometry&&T.geometry.dispose(),T.material&&T.material.dispose(),this.boundingBoxUpdateRequired=!0}var A=g.findIndex(C=>C.id===M);-1<A&&g.splice(A,1)}},this.dispose=()=>{this.morph.children.forEach(M=>{M.geometry&&M.geometry.dispose(),M.material&&M.material.dispose()}),c(29).TexturePrimitive.prototype.dispose.call(this),this.boundingBoxUpdateRequired=!0};var S=(M,T,A)=>{switch(T.direction.value){case 1:A.copy(T.slide.value),M.expandByPoint(A),A.setY(1),A.setZ(1),M.expandByPoint(A);break;case 2:A.copy(T.slide.value),M.expandByPoint(A),A.setX(1),A.setZ(1),M.expandByPoint(A);break;case 3:A.copy(T.slide.value),M.expandByPoint(A),A.setX(1),A.setY(1),M.expandByPoint(A);break}};this.getBoundingBox=()=>{if(this.morph&&this.morph.children&&this.morph.visible&&this.boundingBoxUpdateRequired){this.cachedBoundingBox.makeEmpty();var M=new m.Vector3(0,0,0);this.morph.children.forEach(T=>{S(this.cachedBoundingBox,T.material.uniforms,M)}),this.morph.updateMatrixWorld(!0,!0),this.cachedBoundingBox.applyMatrix4(this.morph.matrixWorld),this.boundingBoxUpdateRequired=!1}return this.cachedBoundingBox},this.applyTransformation=(M,T,A)=>{var C=new m.Matrix4;C.set(M[0],M[1],M[2],0,M[3],M[4],M[5],0,M[6],M[7],M[8],0,0,0,0,0);var R=new m.Quaternion().setFromRotationMatrix(C);this.morph.position.set(...T),this.morph.quaternion.copy(R),this.morph.scale.set(...A),this.morph.updateMatrix(),this.boundingBoxUpdateRequired=!0},this.initialise=(M,T)=>{if(M){var A=M.locations;A&&0<A.length&&(this.applyTransformation(A[0].orientation,A[0].position,A[0].scale),"flipY"in A[0]&&(_=A[0].flipY)),this.createSlides(M.settings.slides),T!=null&&typeof T=="function"&&T(this)}}};b.prototype=Object.create(c(29).TexturePrimitive.prototype),b.prototype.constructor=b,l.TextureSlides=b},(o,l,c)=>{var u=c(4),f=u.GLSL3,d=`
|
|
3184
|
+
`))}}},(o,l,c)=>{var u=c(4),f=c(5).createBufferGeometry,d=c(5).resolveURL,p=0,y=function(){return"pr"+p++},m=function(){this.isZincObject=!0,this.geometry=void 0,this.morph=void 0,this.group=new u.Group,this._lod=new(c(11)).LOD(this),this.groupName=void 0,this.timeEnabled=!1,this.morphColour=!1,this.inbuildTime=0,this.mixer=void 0,this.animationGroup=void 0,this.duration=6e3,this.clipAction=void 0,this.userData={},this.videoHandler=void 0,this.marker=void 0,this.markerNumber=void 0,this.markerUpdateRequired=!0,this.closestVertexIndex=-1,this.boundingBoxUpdateRequired=!0,this.cachedBoundingBox=new u.Box3,this.anatomicalId=void 0,this.region=void 0,this.animationClip=void 0,this.markerMode="inherited",this.uuid=y(),this._v1=new u.Vector3,this._v2=new u.Vector3,this._b1=new u.Box3,this.center=new u.Vector3,this.radius=0,this.visible=!0,this.drawRange=-1};m.prototype.setDuration=function(h){this.duration=h,this.clipAction&&this.clipAction.setDuration(this.duration)},m.prototype.getDuration=function(){return this.duration},m.prototype.setRegion=function(h){this.region=h},m.prototype.getRegion=function(){return this.region},m.prototype.getMorph=function(){var h=this._lod.getCurrentMorph();return h||this.morph},m.prototype.getGroup=function(){return this.group},m.prototype.setMorph=function(h){this.morph=h,this.group.add(this.morph);var b=this._lod.calculateDistance("far");this._lod.addLevel(h,b),this._lod.setMaterial(h.material)},m.prototype.checkTransparentMesh=function(){},m.prototype.setMesh=function(h,b,v){this.animationGroup=new u.AnimationObjectGroup(h),this.mixer=new u.AnimationMixer(this.animationGroup);var g=h.geometry;if(this.geometry=h.geometry,this.clipAction=void 0,g&&g.morphAttributes){var x=g.morphAttributes.position;x||(x=g.morphAttributes.color?g.morphAttributes.color:g.morphAttributes.normal),x&&(this.animationClip=u.AnimationClip.CreateClipsFromMorphTargetSequences(x,10,!0),this.animationClip&&this.animationClip[0]!=null&&(this.clipAction=this.mixer.clipAction(this.animationClip[0]).setDuration(this.duration),this.clipAction.loop=u.loopOnce,this.clipAction.clampWhenFinished=!0,this.clipAction.play()))}this.timeEnabled=b,this.morphColour=v,h.userData=this,h.matrixAutoUpdate=!1,this.setMorph(h),this.checkTransparentMesh(),this.timeEnabled?this.setFrustumCulled(!1):this.morphColour&&(g.setAttribute("morphTarget0",g.getAttribute("position")),g.setAttribute("morphTarget1",g.getAttribute("position"))),this.boundingBoxUpdateRequired=!0},m.prototype.setName=function(h){this.groupName=h,this._lod.setName(h)},m.prototype.getCurrentTime=function(){if(this.clipAction){var h=this.clipAction.time/this.clipAction._clip.duration;return this.duration*h}return this.inbuildTime},m.prototype.setMorphTime=function(h){var b=!1;if(this.clipAction){var v=h/this.duration,g=this.clipAction._clip.duration,x=v*g;x!=this.clipAction.time&&(this.clipAction.time=x,b=!0),b&&this.isTimeVarying()&&this.mixer.update(0)}else{var _=h;_=h>this.duration?this.duration:0>h?0:h,_!=this.inbuildTime&&(this.inbuildTime=_,b=!0)}b&&(this.boundingBoxUpdateRequired=!0,this._lod.updateMorphColorAttribute(!0),this.timeEnabled&&(this.markerUpdateRequired=!0))},m.prototype.isTimeVarying=function(){return!!(this.timeEnabled||this.morphColour)},m.prototype.getVisibility=function(){return this.visible},m.prototype.setVisibility=function(h){h!==this.visible&&(this.visible=h,this.group.visible=h,this.region&&(this.region.pickableUpdateRequired=!0))},m.prototype.setAlpha=function(h){var b=this._lod._material,v=!1;1>h&&(v=!0),b.opacity=h,b.transparent=v,this.checkTransparentMesh()},m.prototype.setFrustumCulled=function(h){this._lod.setFrustumCulled(h)},m.prototype.setVertexColors=function(h){this._lod.setVertexColors(h)},m.prototype.getColour=function(){return this._lod._material?this._lod._material.color:void 0},m.prototype.setColour=function(h){this._lod.setColour(h)},m.prototype.getColourHex=function(){return!this.morphColour&&this._lod._material&&this._lod._material.color?this._lod._material.color.getHexString():void 0},m.prototype.setColourHex=function(h){this._lod._material.color.setHex(h),this._lod._secondaryMaterial&&this._lod._secondaryMaterial.color.setHex(h)},m.prototype.setEmissiveRGB=function(h){this._lod._material&&this._lod._material.emissive&&this._lod._material.emissive.setRGB(...h),this._lod._secondaryMaterial&&this._lod._secondaryMaterial.emissive.setRGB(...h)},m.prototype.setMaterial=function(h){this._lod.setMaterial(h)},m.prototype.getClosestVertexIndex=function(){var h=-1,b=this.getMorph();if(b&&b.geoemtry){var v=b.geometry.attributes.position;if(this._b1.setFromBufferAttribute(v),this._b1.getCenter(this._v1),v)for(var g=-1,x=0,_=0;_<v.count;_++)this._v2.fromArray(v.array,3*_),x=this._v2.distanceTo(this._v1),g==-1?g=x:g>x&&(g=x,h=_)}return h},m.prototype.getClosestVertex=function(h){var b=new u.Vector3;this.closestVertexIndex==-1&&(this.closestVertexIndex=this.getClosestVertexIndex());var v=this.getMorph();if(v&&v.geometry&&0<=this.closestVertexIndex){var g=v.morphTargetInfluences,x=v.geometry.morphAttributes;if(g&&x&&x.position){for(var _=!1,E=0;E<g.length;E++)0<g[E]&&(_=!0,this._v1.fromArray(x.position[E].array,3*this.closestVertexIndex),b.add(this._v1.multiplyScalar(g[E])));if(_)return h?b.applyMatrix4(v.matrixWorld):b}else return b.fromArray(v.geometry.attributes.position.array,3*this.closestVertexIndex),h?b.applyMatrix4(v.matrixWorld):b}return this.getBoundingBox(),b.copy(this.center),h?b.applyMatrix4(this.morph.matrixWorld):b},m.prototype.getBoundingBox=function(){if(this.visible){var h=this._lod.getCurrentMorph();if(h&&h.visible)return this.boundingBoxUpdateRequired&&(c(5).getBoundingBox(h,this.cachedBoundingBox,this._b1,this._v1,this._v2),this.cachedBoundingBox.getCenter(this.center),this.radius=this.center.distanceTo(this.cachedBoundingBox.max),this.boundingBoxUpdateRequired=!1),this.cachedBoundingBox}},m.prototype.dispose=function(){this._lod.dispose(),this.animationGroup=void 0,this.mixer=void 0,this.morph=void 0,this.group=void 0,this.clipAction=void 0,this.groupName=void 0},m.prototype.markerIsRequired=function(h){return!!(this.visible&&(this.markerMode==="on"||h&&h.displayMarkers&&this.markerMode==="inherited"))},m.prototype.updateMarker=function(h,b){if(h==!1&&this.markerIsRequired(b)){var v=b.ndcToBeUpdated;if(this.groupName){if(this.marker||(this.marker=new(c(14)).Marker(this),this.markerUpdateRequired=!0),this.markerUpdateRequired){var g=this.getClosestVertex(!1);g&&(this.marker.setPosition(g.x,g.y,g.z),this.markerUpdateRequired=!1)}this.marker.isEnabled()||(b.markersList&&!(this.marker.uuid in b.markersList)&&(v=!0,b.markersList[this.marker.uuid]=this.marker),this.marker.enable(),this.group.add(this.marker.morph)),this.marker.setNumber(this.markerNumber),this.markerImgURL?this.marker.loadUserSprite(this.markerImgURL):this.marker.setDefaultSprite(),b&&b.camera&&(v||b.markerCluster.markerUpdateRequired)&&(this.marker.updateNDC(b.camera.cameraObject),b.markerCluster.markerUpdateRequired=!0)}}else this.marker&&this.marker.isEnabled()&&(this.marker.disable(),this.group.remove(this.marker.morph),b.markersList&&this.marker.uuid in b.markersList&&(b.markerCluster.markerUpdateRequired=!0,delete b.markersList[this.marker.uuid])),this.markerUpdateRequired=!0},m.prototype.processMarkerVisual=function(h,b){this.marker&&this.marker.isEnabled()&&this.marker.updateVisual(h,b)},m.prototype.initiateMorphColor=function(){this.morphColour==1&&this._lod.updateMorphColorAttribute(!1)},m.prototype.setRenderOrder=function(h){this._lod.setRenderOrder(h)},m.prototype.getClosestVertexDOMElementCoords=function(h){if(h&&h.camera){var b=!0,v=this.getClosestVertex(!0);return v.project(h.camera),v.z=Math.min(Math.max(v.z,0),1),(1<v.x||-1>v.x||1<v.y||-1>v.y)&&(b=!1),h.getZincCameraControls().getRelativeCoordsFromNDC(v.x,v.y,v),{position:v,inView:b}}},m.prototype.setMarkerMode=function(h,b){h!==this.markerMode&&(this.markerMode=h==="on"||h==="off"?h:"inherited",this.region&&(this.region.pickableUpdateRequired=!0)),b&&(this.markerNumber=b.number,this.markerImgURL=b.imgURL)},m.prototype.render=function(h,b,v,g){if(this.visible&&!(this.timeEnabled&&b)&&this._lod.update(v,this.center),b==!0){if(this.clipAction&&this.isTimeVarying())this.mixer.update(h);else{var x=this.inbuildTime+h;x>this.duration&&(x-=this.duration),this.inbuildTime=x}this.visible&&h!=0&&(this.boundingBoxUpdateRequired=!0,this.morphColour==1&&this._lod.updateMorphColorAttribute(!0))}this.updateMarker(b,g)},m.prototype.addLOD=function(h,b,v,g,x){this._lod.addLevelFromURL(h,b,v,g,x)},m.prototype.addVertices=function(h){var b=this.getMorph(),v=void 0;if(!b)v=f(500,h),this.drawRange=h.length;else if(-1<this.drawRange){var g=b.geometry.getAttribute("position");h.forEach(x=>{g.setXYZ(this.drawRange,x[0],x[1],x[2]),++this.drawRange}),g.needsUpdate=!0,b.geometry.setDrawRange(0,this.drawRange),b.geometry.computeBoundingBox(),b.geometry.computeBoundingSphere(),v=b.geoemtry,this.boundingBoxUpdateRequired=!0}return v},m.prototype.setPosition=function(h,b,v){var g=this.getGroup();g&&(g.position.set(h,b,v),g.updateMatrix(),this.boundingBoxUpdateRequired=!0)},m.prototype.loadAdditionalSources=function(h){h.load(d(filename),meshloader(region,colour,opacity,localTimeEnabled,localMorphColour,void 0,void 0,void 0,void 0,finishCallback),this.onProgress(filename),this.onError(finishCallback))},m.prototype.setScaleAll=function(h){var b=this.getGroup();b&&(b.scale.set(h,h,h),b.updateMatrix(),this.boundingBoxUpdateRequired=!0)},l.ZincObject=m},(o,l,c)=>{var u=c(4),f=c(5).updateMorphColorAttribute,d=c(5).toBufferGeometry,p=function(y){this.levels=[],this._currentLevel=0,this._renderOrder=1,this._material=void 0,this._secondaryMaterial=void 0,this._loader=void 0,this._parent=y,this.addLevel=(h,b)=>{if(h){var v,g=Math.abs(b);for(v=0;v<this.levels.length&&!(g<this.levels[v].distance);v++);this.levels.splice(v,0,{distance:g,morph:h,loaded:!0,loading:!1,url:""}),h.renderOrder=this._renderOrder}},this.levelLoaded=(h,b)=>{if(h){for(var v=Math.abs(b),g=0;g<this.levels.length;g++)if(v===this.levels[g].distance){this._parent.group.add(h),this.levels[g].morph=h,this.levels[g].loaded=!0,this.levels[g].loading=!1;break}this.checkTransparentMesh()}},this.addLevelFromURL=(h,b,v,g,x)=>{this._loader=h;var _,E=this.calculateDistance(b);for(_=0;_<this.levels.length&&!(E<this.levels[_].distance);_++);this.levels.splice(_,0,{distance:E,morph:void 0,loaded:!1,loading:!1,url:v,index:g}),x&&this.loadLevel(_)},this.loadLevel=h=>{var b=this.levels[h];return b.morph||b.loaded||b.loading||(b.loading=!0,this._loader.load(b.url,this.lodLoader(b.distance),void 0,void 0,{index:b.index})),b.morph===void 0},this.calculateDistance=function(h){this._parent.getBoundingBox();var b=this._parent.radius,v=0;return h==="far"?v=4.5*b:h==="medium"?v=2.5*b:h=="close"&&(v=0),v},this.containsLevels=()=>!!(this.levels&&1<this.levels.length),this.checkTransparentMesh=()=>{var h=this.levels[this._currentLevel];this._material&&(this._material.transparent?(!this._secondaryMaterial&&(this._secondaryMaterial=this._material.clone(),this._secondaryMaterial.side=u.FrontSide),this._secondaryMaterial.opacity=this._material.opacity,this._secondaryMaterial.emissive&&this._secondaryMaterial.emissive.copy(this._material.emissive),this._secondaryMaterial.needsUpdate=!0,!h.secondaryMesh&&(h.secondaryMesh=new u.Mesh(h.morph.geometry,this._secondaryMaterial),h.secondaryMesh.renderOrder=h.morph.renderOrder+1,h.secondaryMesh.userData=h.morph.userData,h.secondaryMesh.name=h.morph.name),this._material.side=u.BackSide,this._material.needsUpdate=!0,!h.secondaryMesh.parent&&(h.morph.add(h.secondaryMesh),this._parent.animationGroup&&this._parent.animationGroup.add(h.secondaryMesh))):(h.secondaryMesh&&(h.morph.remove(h.secondaryMesh),this._parent.animationGroup&&(this._parent.animationGroup.uncache(h.secondaryMesh),this._parent.animationGroup.remove(h.secondaryMesh))),this._material.side=u.DoubleSide,this._material.needsUpdate=!0))},this.dispose=()=>{this.levels.forEach(h=>{h.morph&&h.morph.geometry&&h.morph.geometry.dispose()}),this._material&&this._material.dispose(),this._secondaryMaterial&&this._secondaryMaterial.dispose()},this.getCurrentLevel=()=>this._currentLevel,this.getCurrentMorph=()=>{var h=this.levels[this._currentLevel];return h&&h.morph?h.morph:this._parent.morph},this.lodLoader=function(h){return b=>{var v=this._material,g={localTimeEnabled:this._parent.timeEnabled,localMorphColour:this._parent.morphColour},x=d(b,g),_=void 0;this._parent.isGeometry?_=new u.Mesh(x,v):this._parent.isLines&&(_=new(c(12)).LineSegments(x,v)),_.userData=this._parent,_.renderOrder=this._renderOrder,b.dispose(),this.levelLoaded(_,h)}},this.updateMorphColorAttribute=h=>{if(this._material&&(this._material.vertexColors==u.VertexColors||this._material.vertexColors==!0))if(h){var b=this.getCurrentMorph();f(b.geometry,b)}else this.levels.forEach(v=>{v.morph&&v.morph.geometry&&f(v.morph.geometry,v.morph)})},this.setColour=h=>{this._material.color=h,this._secondaryMaterial&&(this._secondaryMaterial.color=h),m()},this.setFrustumCulled=h=>{this.levels.forEach(b=>{b.morph&&(b.morph.frustumCulled=h),b.secondaryMesh&&(b.secondaryMesh.frustumCulled=h)})},this.setMaterial=h=>{h&&(!this._material||this._material.id!==h.id)&&(this._material=h,this._secondaryMaterial&&this._secondaryMaterial.dispose(),this._secondaryMaterial=h.clone(),this._secondaryMaterial.side=u.FrontSide,this._secondaryMaterial.transparent=!0,this.levels.forEach(b=>{b.morph&&(b.morph.material=this._material,b.morph.geometry&&(b.morph.geometry.colorsNeedUpdate=!0)),b.secondaryMesh&&(b.secondaryMesh.material=this._secondaryMaterial)}))},this.setName=h=>{this.levels.forEach(b=>{b.morph&&(b.morph.name=h),b.secondaryMesh&&(b.secondaryMesh.name=h)})},this.setRenderOrder=h=>{this._renderOrder=h,this.levels.forEach(b=>{b.morph&&(b.morph.renderOrder=h),b.secondaryMesh&&(b.secondaryMesh.renderOrder=h)})},this.setVertexColors=h=>{this._material.vertexColors=h,m(),this._secondaryMaterial&&(this._secondaryMaterial.vertexColors=h)},this.update=(h,b)=>{var v=this.levels;if(1<v.length){var g,x,_=h.cameraObject.position.distanceTo(b),E=-1,S=-1;for(g=0,x=v.length;g<x&&_>=v[g].distance;g++)v[g].morph?(-1<E&&v[E].morph&&(v[E].morph.visible=!1),E=g,v[g].morph.visible=!0,S=-1):S=g;for(-1<S&&this.loadLevel(S);g<x;g++)v[g].morph&&(-1<E?v[g].morph.visible=!1:(v[g].morph.visible=!0,E=g));this._currentLevel!=E&&(this._currentLevel=E,this.checkTransparentMesh())}},this.toggleMarker=(h,b)=>{this.levels.forEach(v=>{v.morph&&(b?v.morph.add(h):v.morph.remove(h))})};var m=()=>{this.levels.forEach(h=>{h.morph&&h.morph.geometry&&(h.morph.geometry.colorsNeedUpdate=!0)})}};l.LOD=p},(o,l,c)=>{c.r(l),c.d(l,{LineSegments:()=>y});var u=c(13),f=c(4),d=new f.Vector3,p=new f.Vector3;class y extends u.Line{constructor(h,b){super(h,b),this.type="LineSegments"}computeLineDistances(){var h=this.geometry;if(!h.isBufferGeometry)h.isGeometry&&console.error("THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");else if(h.index===null){for(var b=h.attributes.position,v=[],g=0,x=b.count;g<x;g+=2)d.fromBufferAttribute(b,g),p.fromBufferAttribute(b,g+1),v[g]=g==0?0:v[g-1],v[g+1]=v[g]+d.distanceTo(p);h.setAttribute("lineDistance",new f.Float32BufferAttribute(v,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}}y.prototype.isLineSegments=!0},(o,l,c)=>{c.r(l),c.d(l,{Line:()=>x});var u=c(4),f=new u.Vector3,d=new u.Vector3,p=new u.Matrix4,y=new u.Ray,m=new u.Sphere,h=new u.Vector3,b=new u.Vector3,v=new u.Vector3,g=new u.Vector3;class x extends u.Object3D{constructor(){var S=0<arguments.length&&arguments[0]!==void 0?arguments[0]:new u.BufferGeometry,M=1<arguments.length&&arguments[1]!==void 0?arguments[1]:new u.LineBasicMaterial;super(),this.type="Line",this.geometry=S,this.material=M,this.updateMorphTargets()}copy(S){return super.copy(S),this.material=S.material,this.geometry=S.geometry,this}computeLineDistances(){var S=this.geometry;if(!S.isBufferGeometry)S.isGeometry&&console.error("THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");else if(S.index===null){for(var M=S.attributes.position,T=[0],A=1,C=M.count;A<C;A++)f.fromBufferAttribute(M,A-1),d.fromBufferAttribute(M,A),T[A]=T[A-1],T[A]+=f.distanceTo(d);S.setAttribute("lineDistance",new u.Float32BufferAttribute(T,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}raycast(S,M){var T=this.geometry,A=this.matrixWorld,C=S.params.Line.threshold,R=T.drawRange,L=T.morphAttributes.position;if(T.boundingSphere===null&&T.computeBoundingSphere(),m.copy(T.boundingSphere),m.applyMatrix4(A),m.radius+=C,S.ray.intersectsSphere(m)!==!1){p.copy(A).invert(),y.copy(S.ray).applyMatrix4(p);var I=C/((this.scale.x+this.scale.y+this.scale.z)/3),O=I*I,N=new u.Vector3,w=new u.Vector3,P=new u.Vector3,B=new u.Vector3,D=this.isLineSegments?2:1;if(T.isBufferGeometry){var V=T.index,G=T.attributes,H=G.position;if(V!==null)for(var K=Math.max(0,R.start),te=Math.min(V.count,R.start+R.count),W=K;W<te-1;W+=D){var z=V.getX(W),j=V.getX(W+1);_(N,w,this,H,L,z,j);var Z=y.distanceSqToSegment(N,w,B,P);if(!(Z>O)){B.applyMatrix4(this.matrixWorld);var Q=S.ray.origin.distanceTo(B);Q<S.near||Q>S.far||M.push({distance:Q,point:P.clone().applyMatrix4(this.matrixWorld),index:W,face:null,faceIndex:null,object:this})}}else for(var ee=Math.max(0,R.start),ie=Math.min(H.count,R.start+R.count),q=ee;q<ie-1;q+=D){_(N,w,this,H,L,q,q+1);var ne=y.distanceSqToSegment(N,w,B,P);if(!(ne>O)){B.applyMatrix4(this.matrixWorld);var F=S.ray.origin.distanceTo(B);F<S.near||F>S.far||M.push({distance:F,point:P.clone().applyMatrix4(this.matrixWorld),index:q,face:null,faceIndex:null,object:this})}}}else T.isGeometry&&console.error("THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}}updateMorphTargets(){var S=this.geometry;if(S.isBufferGeometry){var M=S.morphAttributes,T=Object.keys(M);if(0<T.length){var A=M[T[0]];if(A!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(var C,R=0,L=A.length;R<L;R++)C=A[R].name||R+"",this.morphTargetInfluences.push(0),this.morphTargetDictionary[C]=R}}}else{var I=S.morphTargets;I!==void 0&&0<I.length&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}function _(E,S,M,T,A,C,R){E.fromBufferAttribute(T,C),S.fromBufferAttribute(T,R);var L=M.morphTargetInfluences;if(M.material.morphTargets&&A&&L){h.set(0,0,0),b.set(0,0,0);for(var I=0,O=A.length;I<O;I++){var N=L[I],w=A[I];N!==0&&(v.fromBufferAttribute(w,C),g.fromBufferAttribute(w,R),h.addScaledVector(v.sub(E),N),b.addScaledVector(g.sub(S),N))}E.add(h),S.add(b)}}x.prototype.isLine=!0},(o,l,c)=>{var u=c(4),f=new Image(128,128);f.src=c(15);var d=new u.Texture;d.image=f,d.needsUpdate=!0;var p=[.02,.03,1],y=new u.SpriteMaterial({map:d,alphaTest:.5,transparent:!0,depthTest:!1,depthWrite:!1,sizeAttenuation:!1}),m=c(5).createNewSpriteText,h=function(b){c(10).ZincObject.call(this),this.texture=d;var v=void 0,g=void 0,x=void 0,_=void 0,E=void 0,S=!0;this.morph=new u.Group,this.group=this.morph,this.parent=b,this.isMarker=!0;var M=!1;this.ndc=new u.Vector3;var T=void 0,A=void 0,C=()=>{v=new u.Sprite(y),v.center.set(.5,0),this.morph.add(v),this.morph.position.set(0,0,0),this.morph.renderOrder=1e4,v.scale.set(p[0],p[1],p[2]),v.userData=this};this.updateVisual=(R,L)=>{var I=1,O=0;R!==L&&(O=1-(this.ndc.z-R)/(L-R),I=.6+.4*O),this.setSpriteSize(I)},this.updateNDC=R=>(this.ndc.copy(this.morph.position),this.ndc.project(R),this.ndc.z=Math.min(Math.max(this.ndc.z,0),1),this.ndc),this.setPosition=(R,L,I)=>{this.morph.position.set(R,L,I)},this.setSpriteSize=R=>{v.scale.set(.015,.02,1),v.scale.multiplyScalar(R)},this.setUserSprite=()=>{_&&(this.morph.add(_),S&&(this.morph.remove(v),A&&this.morph.remove(A),S=!1))},this.setImageForUserSprite=(R,L)=>{_&&(this.morph.remove(_),_=void 0),g&&g.dispose(),x&&x.dispose(),g=new u.Texture,g.image=R,g.needsUpdate=!0,x=new u.SpriteMaterial({map:g,alphaTest:.5,transparent:!0,depthTest:!1,depthWrite:!1,sizeAttenuation:!1}),L||(L=[.05,.05,1]),_=new u.Sprite(x),_.center.set(.5,0),_.scale.set(L[0],L[1],L[2]),_.userData=this,this.setUserSprite()},this.setDefaultSprite=()=>{S||(S=!0,this.morph.add(v),_&&this.morph.remove(_),A&&this.morph.add(A))},this.loadUserSprite=(R,L)=>{if(R)if(R!==E){E=R;var I=new Image(128,128);I.crossOrigin="anonymous",I.onload=()=>{this.setImageForUserSprite(I,L)},I.src=R}else this.setUserSprite()},this.dispose=()=>{this.morph&&this.morph.clear(),v&&(v.clear(),v=void 0),A&&(A.material.map.dispose(),A.material.dispose(),A=void 0)},this.isEnabled=()=>M,this.setNumber=R=>{(!R||T!=R)&&A&&(this.morph.remove(A),A.material.map.dispose(),A.material.dispose(),A=void 0),!A&&R&&(A=m(R,.012,"black","Asap",120,700),this.morph.add(A)),T=R},this.getNumber=()=>T||1,this.setVisibility=function(R){R!==this.visible&&(this.visible=R,this.group.visible=R,this.parent.region&&(this.parent.region.pickableUpdateRequired=!0))},this.enable=()=>{M=!0,this.morph.visible=!0,this.visible=!0},this.disable=()=>{M=!1,this.morph.visible=!1,this.visible=!1},C()};h.prototype=Object.create(c(10).ZincObject.prototype),l.Marker=h},o=>{o.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIiA/Pg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMzY1IiBoZWlnaHQ9IjU2MCIgdmlld0JveD0iMCAwIDM2NSA1NjAiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGRlc2M+Q3JlYXRlZCB3aXRoIEZhYnJpYy5qcyA1LjIuNDwvZGVzYz4NCjxkZWZzPg0KPC9kZWZzPg0KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idHJhbnNwYXJlbnQiPjwvcmVjdD4NCjxnIHRyYW5zZm9ybT0ibWF0cml4KDAgMCAwIDAgMCAwKSIgaWQ9IjgwOGVkMjgzLTI1MjQtNDQwZi04OGFlLTNiZGI0N2JiNTc0OSIgID4NCjwvZz4NCjxnIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgMTgyLjUgMjgwKSIgaWQ9ImRiMzA0MTNkLTViZmYtNGI5OC1hYjU5LTQ2NDQ5N2VlMTk5ZSIgID4NCjxyZWN0IHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDI1NSwyNTUsMjU1KTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyB2aXNpYmlsaXR5OiBoaWRkZW47IiB2ZWN0b3ItZWZmZWN0PSJub24tc2NhbGluZy1zdHJva2UiICB4PSItMTgyLjUiIHk9Ii0yODAiIHJ4PSIwIiByeT0iMCIgd2lkdGg9IjM2NSIgaGVpZ2h0PSI1NjAiIC8+DQo8L2c+DQo8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwIDAgMCAwIDAgOTcuNSkiICA+DQo8ZyBzdHlsZT0iIiAgID4NCjwvZz4NCjwvZz4NCjxnIHRyYW5zZm9ybT0ibWF0cml4KDAgMCAwIDAgMCA5Ny41KSIgID4NCjxnIHN0eWxlPSIiICAgPg0KPC9nPg0KPC9nPg0KPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC45OSAwIDAgMC45OSAxODIuNSAyODApIiAgPg0KPGcgc3R5bGU9IiIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgID4NCgkJPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgMSAwIDApIiAgPg0KPHJlY3Qgc3R5bGU9InN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxOyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBmaWxsOiByZ2IoMjU1LDI1NSwyNTUpOyBmaWxsLXJ1bGU6IG5vbnplcm87IG9wYWNpdHk6IDE7IHZpc2liaWxpdHk6IGhpZGRlbjsiIHZlY3Rvci1lZmZlY3Q9Im5vbi1zY2FsaW5nLXN0cm9rZSIgIHg9Ii01NDAiIHk9Ii01NDAiIHJ4PSIwIiByeT0iMCIgd2lkdGg9IjEwODAiIGhlaWdodD0iMTA4MCIgLz4NCjwvZz4NCgkJPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgMSAwIDApIiAgPg0KPHBhdGggc3R5bGU9InN0cm9rZTogcmdiKDAsMCwwKTsgc3Ryb2tlLXdpZHRoOiAwOyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBmaWxsOiByZ2IoMCw4OSwxMTYpOyBmaWxsLXJ1bGU6IG5vbnplcm87IG9wYWNpdHk6IDE7IiB2ZWN0b3ItZWZmZWN0PSJub24tc2NhbGluZy1zdHJva2UiICB0cmFuc2Zvcm09IiB0cmFuc2xhdGUoLTE4Mi45LCAtMjc5Ljg1KSIgZD0iTSAxODIuOSA1NTEuNyBDIDE4Mi45IDU1MS44MDAwMDAwMDAwMDAxIDE4My4xIDU1MiAxODMuMSA1NTIgQyAxODMuMSA1NTIgMzU4LjMgMjgzIDM1OC4zIDE5NC42IEMgMzU4LjMgNjQuNSAyNjkuNSA3LjkwMDAwMDAwMDAwMDAwNiAxODIuOSA3LjY5OTk5OTk5OTk5OTk4OSBDIDk2LjMgNy45IDcuNSA2NC41IDcuNSAxOTQuNiBDIDcuNSAyODMgMTgyLjggNTUyIDE4Mi44IDU1MiBDIDE4Mi44IDU1MiAxODIuOSA1NTEuNyAxODIuOSA1NTEuNyB6IE0gMTIyLjIgMTg3LjIgQyAxMjIuMiAxNTMuNiAxNDkuNCAxMjYuMzk5OTk5OTk5OTk5OTkgMTgzIDEyNi4zOTk5OTk5OTk5OTk5OSBDIDIxNi42IDEyNi4zOTk5OTk5OTk5OTk5OSAyNDMuOCAxNTMuNiAyNDMuOCAxODcuMiBDIDI0My44IDIyMC43OTk5OTk5OTk5OTk5OCAyMTYuNSAyNDggMTgyLjkgMjQ4IEMgMTQ5LjQgMjQ4IDEyMi4yIDIyMC44IDEyMi4yIDE4Ny4yIHoiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgLz4NCjwvZz4NCgkJPGcgdHJhbnNmb3JtPSJtYXRyaXgoMy44MiAwIDAgMy44MiAwIC0xMDAuNzcpIiAgPg0KPGNpcmNsZSBzdHlsZT0ic3Ryb2tlOiByZ2IoMCwwLDApOyBzdHJva2Utd2lkdGg6IDA7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IGZpbGw6IHJnYigyNTUsMjU1LDI1NSk7IGZpbGwtcnVsZTogbm9uemVybzsgb3BhY2l0eTogMTsiIHZlY3Rvci1lZmZlY3Q9Im5vbi1zY2FsaW5nLXN0cm9rZSIgIGN4PSIwIiBjeT0iMCIgcj0iMzUiIC8+DQo8L2c+DQo8L2c+DQo8L2c+DQo8L3N2Zz4="},(o,l,c)=>{var u=c(4),f=function(d,p,y,m){c(10).ZincObject.call(this);var h;p&&(h=p.clone(),h.vertexColors=u.FaceColors),this.id=y;var b=void 0,v=void 0;this.isGlyph=!0,this.fromMesh=g=>!!(g&&g.isMesh)&&(this.morph=g.clone(),this.morph.userData=this,this.group.add(this.morph),!0),d&&h&&this.fromMesh(new u.Mesh(d,h)),this.getGlyphset=function(){return m},this.setLabel=g=>{g&&(typeof g=="string"||g instanceof String)&&(v=g,this.morph&&(this.morph.name=g)),b&&this.showLabel()},this.showLabel=g=>{if(b&&(position=b.getPosition(),this.group.remove(b.getSprite()),b.dispose(),b=void 0),v&&(typeof v=="string"||v instanceof String)){var x=[0,0,0];b=new(c(17)).Label(v,g),b.setPosition(x[0],x[1],x[2]),this.group.add(b.getSprite())}},this.getLabel=()=>v,this.getMesh=()=>this.morph,this.setTransformation=(g,x,_,E)=>{this.morph&&(this.morph.matrix.elements[0]=x[0],this.morph.matrix.elements[1]=x[1],this.morph.matrix.elements[2]=x[2],this.morph.matrix.elements[3]=0,this.morph.matrix.elements[4]=_[0],this.morph.matrix.elements[5]=_[1],this.morph.matrix.elements[6]=_[2],this.morph.matrix.elements[7]=0,this.morph.matrix.elements[8]=E[0],this.morph.matrix.elements[9]=E[1],this.morph.matrix.elements[10]=E[2],this.morph.matrix.elements[11]=0,this.morph.matrix.elements[12]=g[0],this.morph.matrix.elements[13]=g[1],this.morph.matrix.elements[14]=g[2],this.morph.matrix.elements[15]=1,this.morph.matrixAutoUpdate=!1),b&&b.setPosition(g[0],g[1],g[2])},this.setColour=g=>{b&&b.setColour(g),this.secondaryMesh&&this.secondaryMesh.material&&(this.secondaryMesh.material.color=colour),this.geometry.colorsNeedUpdate=!0},this.dispose=()=>{this.material&&this.material.dispose(),this.morph=void 0}};f.prototype=Object.create(c(10).ZincObject.prototype),l.Glyph=f},(o,l,c)=>{var u=c(7).default;l.Label=function(f,d){var p=f,y=void 0;y=d?new u(p,.015,d.getStyle()):new u(p,.015),y.fontFace="Asap",y.fontWeight=700,y.material.map.generateMipmaps=!1,y.material.sizeAttenuation=!1,y.center.x=-.05,y.center.y=0,this.getPosition=()=>y?[y.position.x,y.position.y,y.position.z]:[0,0,0],this.setPosition=(m,h,b)=>{y&&y.position.set(m,h,b)},this.setColour=m=>{y.color=m.getStyle()},this.setScale=m=>{y&&0<m&&y.scale.set(m,m,1)},this.dispose=()=>{y.dispose()},this.getSprite=()=>y,this.getString=()=>p}},(o,l,c)=>{function u(y){throw new TypeError('"'+y+'" is read-only')}var f=c(4),d=c(19).JSONLoader,p=function(){c(10).ZincObject.call(this);var y=[],m=void 0,h=void 0,b=void 0,v=void 0,g=void 0,x=void 0,_=void 0,E=0,S=0,M=[0,0,0],T=[0,0,0],A=[0,0,0],C="NONE";this.ready=!1;var R=!1,L=!1;this.isGlyphset=!0;for(var I=new f.Matrix4,O=new f.Color,N=new f.Color,w=new f.Box3,P=new f.Box3,B=new f.Box3,D=[],V=[],G=[],H=[],K=[],te=[],W=[],z=[],j=0;8>j;j++)D[j]=new f.Vector3;this.load=(F,$,J,k,U)=>{m=F.axis1,h=F.axis2,b=F.axis3,v=F.positions,g=F.scale,x=F.colors,_=F.label,R=F.metadata.MorphColours,L=F.metadata.MorphVertices,E=F.metadata.number_of_time_steps,C=F.metadata.repeat_mode,S=F.metadata.number_of_vertices,C=="AXES_2D"||C=="MIRROR"?S*=2:C=="AXES_3D"&&(S*=3),M=F.metadata.base_size,T=F.metadata.offset,A=F.metadata.scale_factors;var oe=new d;this.geometry=new f.BufferGeometry;var le=new f.InstancedMesh(this.geometry,void 0,S);if(this.setMorph(le),k){var ae=oe.parse($);ne(J,U)(ae.geometry,ae.materials),ae.geometry.dispose()}else oe.crossOrigin="Anonymous",oe.load($,ne(J,U))};var Z=(F,$,J,k,U,oe)=>{if(C=="NONE"||C=="MIRROR"){for(var le,ae=[0,0,0],he=[0,0,0],ve=[0,0,0],we=[0,0,0],ce=[0,0,0],ge=[0,0,0],re=[0,0,0],xe=[0,0,0],fe=[0,0,0],ye=0;3>ye;ye++)le=0>U[ye]?-1:1,ae[ye]=le*M[ye]+U[ye]*A[ye];for(var ye=0;3>ye;ye++)he[ye]=$[ye]*ae[0],ve[ye]=J[ye]*ae[1],we[ye]=k[ye]*ae[2],ce[ye]=F[ye]+T[0]*he[ye]+T[1]*ve[ye]+T[2]*we[ye],C=="MIRROR"&&(ge[ye]=-he[ye],re[ye]=-ve[ye],xe[ye]=-we[ye],fe[ye]=ce[ye],0>U[0]&&(ce[ye]-=he[ye],fe[ye]-=ge[ye]));0>we[0]*(he[1]*ve[2]-he[2]*ve[1])+we[1]*(he[2]*ve[0]-he[0]*ve[2])+we[2]*(he[0]*ve[1]-he[1]*ve[0])&&(we[0]=-we[0],we[1]=-we[1],we[2]=-we[2]),oe[0]=[ce,he,ve,we],C=="MIRROR"&&(0>xe[0]*(ge[1]*re[2]-ge[2]*re[1])+xe[1]*(ge[2]*re[0]-ge[0]*re[2])+xe[2]*(ge[0]*re[1]-ge[1]*re[0])&&(xe[0]=-xe[0],xe[1]=-xe[1],xe[2]=-xe[2]),oe[1]=[fe,ge,re,xe])}else if(C=="AXES_2D"||C=="AXES_3D"){for(var le,_e=[0,0,0],He=[0,0,0],ye=0;3>ye;ye++)le=0>U[ye]?-1:1,_e[ye]=le*M[0]+U[ye]*A[0];for(var ye=0;3>ye;ye++)He[ye]=F[ye]+T[0]*_e[0]*$[ye]+T[1]*_e[1]*J[ye]+T[2]*_e[2]*k[ye];for(var tt=glyph_repeat_mode=="AXES_2D"?2:3,Le=0;Le<tt;Le++){var ut=void 0,Ie=void 0,qe=U[Le],je=[0,0,0],ot=[0,0,0],et=[0,0,0];Le==0?(ut=$,Ie=J):Le==1?(ut=J,Ie=glyph_repeat_mode=="AXES_2D"?$:k):(ut=k,Ie=$);var Ut=M[0]+qe*A[0];je[0]=ut[0]*Ut,je[1]=ut[1]*Ut,je[2]=ut[2]*Ut,et[0]=je[1]*Ie[2]-Ie[1]*je[2],et[1]=je[2]*Ie[0]-Ie[2]*je[0],et[2]=je[0]*Ie[1]-je[1]*Ie[0];var gt=Math.sqrt(et[0]*et[0]+et[1]*et[1]+et[2]*et[2]);if(0<gt){var se=(M[2]+qe*A[2])/gt;C=="AXES_2D"&&0<Le&&(se*=-1),et[0]*=se,et[1]*=se,et[2]*=se}if(ot[0]=et[1]*je[2]-je[1]*et[2],ot[1]=et[2]*je[0]-je[2]*et[0],ot[2]=et[0]*je[1]-et[1]*je[0],gt=Math.sqrt(ot[0]*ot[0]+ot[1]*ot[1]+ot[2]*ot[2]),0<gt){var Me=(M[1]+qe*A[1])/gt;ot[0]*=Me,ot[1]*=Me,ot[2]*=Me}oe[Le]=[He,je,ot,et]}}return oe},Q=(F,$,J,k,U)=>{var oe=1;C=="AXES_2D"||C=="MIRROR"?oe=2:C=="AXES_3D"&&(oe=3);var le=F.length/3,ae=0;z.length=oe;for(var he=0;he<le;he++){var ve=3*he,we=[F[ve],F[ve+1],F[ve+2]],ce=[$[ve],$[ve+1],$[ve+2]],ge=[J[ve],J[ve+1],J[ve+2]],re=[k[ve],k[ve+1],k[ve+2]],xe=[U[ve],U[ve+1],U[ve+2]],fe=Z(we,ce,ge,re,xe,z);if(fe.length==oe)for(var ye=0;ye<oe;ye++){I.elements[0]=fe[ye][1][0],I.elements[1]=fe[ye][1][1],I.elements[2]=fe[ye][1][2],I.elements[3]=0,I.elements[4]=fe[ye][2][0],I.elements[5]=fe[ye][2][1],I.elements[6]=fe[ye][2][2],I.elements[7]=0,I.elements[8]=fe[ye][3][0],I.elements[9]=fe[ye][3][1],I.elements[10]=fe[ye][3][2],I.elements[11]=0,I.elements[12]=fe[ye][0][0],I.elements[13]=fe[ye][0][1],I.elements[14]=fe[ye][0][2],I.elements[15]=1,this.morph.setMatrixAt(ae,I);var _e=y[ae];_e&&_e.setTransformation(fe[ye][0],fe[ye][1],fe[ye][2],fe[ye][3]),ae++}}this.morph.instanceMatrix.needsUpdate=!0},ee=F=>{var $=1;C=="AXES_2D"||C=="MIRROR"?$=2:C=="AXES_3D"&&($=3);for(var J,k=F.length,U=0,oe=0;oe<k;oe++){J=F[oe];for(var le=0;le<$;le++){O.setHex(J),this.morph.setColorAt(U,O);var ae=y[U];ae&&ae.setColour(O),U++}}this.morph.instanceColor.needsUpdate=!0},ie=()=>{var F=V,$=G,J=H,k=K,U=te,oe=W,le=this.inbuildTime/this.duration*(E-1),ae=Math.floor(le),he=1-(le-ae),ve=Math.ceil(le);if(L){var we=v[ae.toString()],ce=v[ve.toString()],ge=m[ae.toString()],re=m[ve.toString()],xe=h[ae.toString()],fe=h[ve.toString()],ye=b[ae.toString()],_e=b[ve.toString()],He=g[ae.toString()],tt=g[ve.toString()];V.length=we.length,G.length=we.length,H.length=we.length,K.length=we.length,te.length=we.length;for(var Le=0;Le<we.length;Le++)F[Le]=he*we[Le]+(1-he)*ce[Le],$[Le]=he*ge[Le]+(1-he)*re[Le],J[Le]=he*xe[Le]+(1-he)*fe[Le],k[Le]=he*ye[Le]+(1-he)*_e[Le],U[Le]=he*He[Le]+(1-he)*tt[Le]}else v[0],u("current_positions"),m[0],u("current_axis1s"),h[0],u("current_axis2s"),b[0],u("current_axis3s"),g[0],u("current_scales");if(Q(F,$,J,k,U),this.boundingBoxUpdateRequired=!0,x!=null){if(R){var ut=x[ae.toString()],Ie=x[ve.toString()];oe.length=ut.length;for(var qe=0;qe<ut.length;qe++)O.setHex(ut[qe]),N.setHex(Ie[qe]),O.setRGB(O.r*he+N.r*(1-he),O.g*he+N.g*(1-he),O.b*he+N.b*(1-he)),oe[qe]=O.getHex()}else x[0],u("current_colors");ee(oe)}};this.showLabel=()=>{for(var F=0;F<y.length;F++)y[F].showLabel(this.morph.material?this.morph.material.color:void 0)};var q=F=>{if(_!=null&&F)for(var $,J=0;J<S;J++)$=new(c(16)).Glyph(void 0,void 0,J,this),_!=null&&_[J]!=null&&$.setLabel(_[J]),0<E&&$.setFrustumCulled(!1),y[J]=$,this.morph.add($.getGroup());_!=null&&F&&this.showLabel(this.morph.material?this.morph.material.color:void 0),Q(v[0],m[0],h[0],b[0],g[0]),x!=null&&ee(x[0]),this.ready=!0,this.boundingBoxUpdateRequired=!0};this.addCustomGlyph=F=>{F.isGlyph&&y.push(F),this.ready=!0,this.boundingBoxUpdateRequired=!0},this.addMeshAsGlyph=(F,$)=>{if(F.isMesh){var J=new(c(16)).Glyph(void 0,void 0,$,this);return J.fromMesh(F),y.push(J),this.morph.add(J.getGroup()),this.ready=!0,this.boundingBoxUpdateRequired=!0,J}},this.forEachGlyph=F=>{for(var $=0;$<y.length;$++)F(y[$])};var ne=(F,$)=>(J,k)=>{var U=J.toBufferGeometry();this.geometry.copy(U),this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox(),U.dispose(),k&&k[0]&&(this.morph.material=k[0]),q($),this.morph.name=this.groupName,this.morph.userData=this,this.setMorph(this.morph),J.dispose(),F!=null&&typeof F=="function"&&F(this)};this.getClosestVertexIndex=function(){var F=-1;if(this.morph&&this.ready){this.getBoundingBox().getCenter(this._v1);for(var $,J=v[0],k=J.length/3,U=-1,oe=0,le=0;le<k;le++)$=3*le,this._v2.set(J[$],J[$+1],J[$+2]),oe=this._v1.distanceTo(this._v2),(U==-1||U>oe)&&(U=oe,F=le)}return F},this.getClosestVertex=function(){if(this.closestVertexIndex==-1&&(this.closestVertexIndex=this.getClosestVertexIndex()),0<=this.closestVertexIndex&&this.morph){var F=new f.Vector3;return this.morph.getMatrixAt(this.closestVertexIndex,I),F.setFromMatrixPosition(I),F}},this.getBoundingBox=()=>{if(this.morph&&this.ready&&this.morph.visible){if(this.boundingBoxUpdateRequired){w.setFromBufferAttribute(this.morph.geometry.attributes.position);for(var F=0;F<S;F++)this.morph.getMatrixAt(F,I),P.copy(w).applyMatrix4(I),F==0?B.copy(P):B.union(P);if(B)this.cachedBoundingBox.copy(B),this.morph.updateWorldMatrix(!0,!0),this.cachedBoundingBox.applyMatrix4(this.morph.matrixWorld),this.boundingBoxUpdateRequired=!1;else return}return this.cachedBoundingBox}},this.setMorphTime=F=>{this.inbuildTime=F>this.duration?this.duration:0>F?0:F,(R||L)&&(ie(),L&&(this.markerUpdateRequired=!0))},this.isTimeVarying=()=>!!((this.ready===!1||0<E)&&(R||L)),this.getCurrentTime=()=>this.inbuildTime,this.dispose=()=>{for(var F=y.length-1;0<=F;F--)y[F].dispose();this.geometry&&this.geometry.dispose(),this.morph&&this.morph.material.dispose(),m=void 0,h=void 0,b=void 0,v=void 0,g=void 0,x=void 0,this.ready=!1,this.groupName=void 0},this.render=(F,$,J)=>{if($==!0){var k=this.inbuildTime+F;k>this.duration&&(k-=this.duration),this.inbuildTime=k,(R||L)&&ie()}this.updateMarker($,J)}};p.prototype=Object.create(c(10).ZincObject.prototype),l.Glyphset=p},(o,l,c)=>{c.r(l),c.d(l,{JSONLoader:()=>S});var u=c(4),f=c(20).Loader,d=u.LoaderUtils,p=u.AnimationClip,y=u.Vector3,m=u.Vector4,h=u.Color,b=u.Vector2,v=c(6).Face3,g=c(6).Geometry,x=u.FileLoader,_=u.DefaultLoadingManager,E=c(21).VideoHandler;function S(M){typeof M=="boolean"&&(console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."),M=void 0),this.manager=M===void 0?_:M,this.withCredentials=!1,this.paramsString=""}Object.assign(S.prototype,{load:function(T,A,C,R){var L=this,I=this.texturePath&&typeof this.texturePath=="string"?this.texturePath:d.extractUrlBase(T),O=new x(this.manager);T.split("?"),this.paramsString=T.length===2?paramsStrings[1]:"",O.setWithCredentials(this.withCredentials),O.load(T,function(N){var w=JSON.parse(N),P=w.metadata;if(P!==void 0){var B=P.type;if(B!==void 0&&B.toLowerCase()==="object")return void console.error("THREE.JSONLoader: "+T+" should be loaded with THREE.ObjectLoader instead.")}if(L&&L.parse){var D=L.parse(w,I);A(D.geometry,D.materials)}},C,R)},setTexturePath:function(T){this.texturePath=T},parse:function(){function M(R,L){function I(xe,fe){return xe&1<<fe}var O,N,w,P,B,D,V,G,H,K,te,W,z,j,Z,Q,ee,ie,q,ne,F,$,J,k,U,oe,le,ae=R.faces,he=R.vertices,ve=R.normals,we=R.colors,ce=R.scale,ge=0;if(R.uvs!==void 0){for(O=0;O<R.uvs.length;O++)R.uvs[O].length&&ge++;for(O=0;O<ge;O++)L.faceVertexUvs[O]=[]}for(P=0,B=he.length;P<B;)ie=new y,ie.x=he[P++]*ce,ie.y=he[P++]*ce,ie.z=he[P++]*ce,L.vertices.push(ie);if(P=0,B=ae.length,R.uvs)for(O=0;O<R.uvs.length;O++){L.uvs[O]=[];for(var re=0;re<R.uvs[O].length;re++)L.uvs[O][re]=R.uvs[O][re]}if(ve)for(O=0;O<ve.length;O++)L.normals[O]=ve[O];if(we)for(O=0;O<we.length;O++)L.colors[O]=we[O];for(;P<B;)if(K=ae[P++],te=I(K,0),W=I(K,1),z=I(K,3),j=I(K,4),Z=I(K,5),Q=I(K,6),ee=I(K,7),te){if(ne=new v,ne.a=ae[P],ne.b=ae[P+1],ne.c=ae[P+3],F=new v,F.a=ae[P+1],F.b=ae[P+2],F.c=ae[P+3],P+=4,W&&(H=ae[P++],ne.materialIndex=H,F.materialIndex=H),w=L.faces.length,z)for(O=0;O<ge;O++)for(k=R.uvs[O],L.faceVertexUvs[O][w]=[],L.faceVertexUvs[O][w+1]=[],N=0;4>N;N++)G=ae[P++],oe=k[2*G],le=k[2*G+1],U=new b(oe,le),N!==2&&L.faceVertexUvs[O][w].push(U),N!==0&&L.faceVertexUvs[O][w+1].push(U);if(j&&(V=3*ae[P++],ne.normal.set(ve[V++],ve[V++],ve[V]),F.normal.copy(ne.normal)),Z)for(O=0;4>O;O++)V=3*ae[P++],J=new y(ve[V++],ve[V++],ve[V]),O!==2&&ne.vertexNormals.push(J),O!==0&&F.vertexNormals.push(J);if(Q&&(D=ae[P++],$=we[D],ne.color.setHex($),F.color.setHex($)),ee)for(O=0;4>O;O++)D=ae[P++],$=we[D],O!==2&&ne.vertexColors.push(new h($)),O!==0&&F.vertexColors.push(new h($));L.faces.push(ne),L.faces.push(F)}else{if(q=new v,q.a=ae[P++],q.b=ae[P++],q.c=ae[P++],W&&(H=ae[P++],q.materialIndex=H),w=L.faces.length,z)for(O=0;O<ge;O++)for(k=R.uvs[O],L.faceVertexUvs[O][w]=[],N=0;3>N;N++)G=ae[P++],oe=k[2*G],le=k[2*G+1],U=new b(oe,le),L.faceVertexUvs[O][w].push(U);if(j&&(V=3*ae[P++],q.normal.set(ve[V++],ve[V++],ve[V])),Z)for(O=0;3>O;O++)V=3*ae[P++],J=new y(ve[V++],ve[V++],ve[V]),q.vertexNormals.push(J);if(Q&&(D=ae[P++],q.color.setHex(we[D])),ee)for(O=0;3>O;O++)D=ae[P++],q.vertexColors.push(new h(we[D]));L.faces.push(q)}}function T(R,L){var I=R.influencesPerVertex===void 0?2:R.influencesPerVertex;if(R.skinWeights)for(var O=0,N=R.skinWeights.length;O<N;O+=I){var w=R.skinWeights[O],P=1<I?R.skinWeights[O+1]:0,B=2<I?R.skinWeights[O+2]:0,D=3<I?R.skinWeights[O+3]:0;L.skinWeights.push(new m(w,P,B,D))}if(R.skinIndices)for(var O=0,N=R.skinIndices.length;O<N;O+=I){var V=R.skinIndices[O],G=1<I?R.skinIndices[O+1]:0,H=2<I?R.skinIndices[O+2]:0,K=3<I?R.skinIndices[O+3]:0;L.skinIndices.push(new m(V,G,H,K))}L.bones=R.bones,L.bones&&0<L.bones.length&&(L.skinWeights.length!==L.skinIndices.length||L.skinIndices.length!==L.vertices.length)&&console.warn("When skinning, number of vertices ("+L.vertices.length+"), skinIndices ("+L.skinIndices.length+"), and skinWeights ("+L.skinWeights.length+") should match.")}function A(R,L){var I=R.scale;if(R.morphTargets!==void 0)for(var O=0,N=R.morphTargets.length;O<N;O++){L.morphTargets[O]={},L.morphTargets[O].name=R.morphTargets[O].name,L.morphTargets[O].vertices=[];for(var w,P=L.morphTargets[O].vertices,B=R.morphTargets[O].vertices,D=0,V=B.length;D<V;D+=3)w=new y,w.x=B[D]*I,w.y=B[D+1]*I,w.z=B[D+2]*I,P.push(w)}if(R.morphNormals!==void 0){for(var O=0,N=R.morphNormals.length;O<N;O++)if(L.morphTargets[O]){L.morphTargets[O].normals=[];for(var G,H=L.morphTargets[O].normals,K=R.morphNormals[O].normals,D=0,V=K.length;D<V;D+=3)G=new y,G.x=K[D],G.y=K[D+1],G.z=K[D+2],H.push(G);L.morphNormalsReady=!0}}if(R.morphColors!==void 0){var O,N,te,W,z,j,Z;for(O=0,N=R.morphColors.length;O<N;O++)for(L.morphColors[O]={},L.morphColors[O].name=R.morphColors[O].name,L.morphColors[O].colors=[],z=L.morphColors[O].colors,j=R.morphColors[O].colors,te=0,W=j.length;te<W;te+=3)Z=new u.Color(16755200),Z.setRGB(j[te],j[te+1],j[te+2]),z.push(Z)}}function C(R,L){var I=[],O=[];R.animation!==void 0&&O.push(R.animation),R.animations!==void 0&&(R.animations.length?O=O.concat(R.animations):O.push(R.animations));for(var N,w=0;w<O.length;w++)N=p.parseAnimation(O[w],L.bones),N&&I.push(N);if(L.morphTargets){var P=p.CreateClipsFromMorphTargetSequences(L.morphTargets,10);I=I.concat(P)}0<I.length&&(L.animations=I)}return function(R,L){R.data!==void 0&&(R=R.data),R.scale=R.scale===void 0?1:1/R.scale;var I=new g;if(I.morphColors=[],M(R,I),T(R,I),A(R,I),C(R,I),I.computeFaceNormals(),I.computeBoundingSphere(),R.materials===void 0||R.materials.length===0)return{geometry:I};var O=f.prototype.initMaterials(R.materials,L,"Anonymous");if(R.materials[0].video){var N=L+R.materials[0].video;this.paramsString&&(N+="?".concat(this.paramsString));var w=new E(N);I._video=w}return O&&0<O.length&&(O[0].side=R.materials[0].singleSided?u.FrontSide:R.materials[0].flipSided?u.BackSide:u.DoubleSide,R.materials[0].specularCoef&&(O[0].shininess=Math.floor(R.materials[0].specularCoef/3))),{geometry:I,materials:O}}}()})},(o,l,c)=>{c.r(l),c.d(l,{Loader:()=>f});var u=c(4);c(4);function f(){}f.Handlers={handlers:[],add:function(p,y){this.handlers.push(p,y)},get:function(p){for(var y=this.handlers,m=0,h=y.length;m<h;m+=2){var b=y[m],v=y[m+1];if(b.test(p))return v}return null}},Object.assign(f.prototype,{crossOrigin:"anonymous",onLoadStart:function(){},onLoadProgress:function(){},onLoadComplete:function(){},initMaterials:function(p,y,m){for(var h=[],b=0;b<p.length;++b)h[b]=this.createMaterial(p[b],y,m);return h},createMaterial:function(){var d={NoBlending:u.NoBlending,NormalBlending:u.NormalBlending,AdditiveBlending:u.AdditiveBlending,SubtractiveBlending:u.SubtractiveBlending,MultiplyBlending:u.MultiplyBlending,CustomBlending:u.CustomBlending},p=new u.Color,y=new u.TextureLoader,m=new u.MaterialLoader;return function(h,b,v){function g(M,T,A,C,R){var L,I=b+M,O=f.Handlers.get(I);O===null?(y.setCrossOrigin(v),L=y.load(I)):L=O.load(I),T!==void 0&&(L.repeat.fromArray(T),T[0]!==1&&(L.wrapS=u.RepeatWrapping),T[1]!==1&&(L.wrapT=u.RepeatWrapping)),A!==void 0&&L.offset.fromArray(A),C!==void 0&&(C[0]==="repeat"&&(L.wrapS=u.RepeatWrapping),C[0]==="mirror"&&(L.wrapS=u.MirroredRepeatWrapping),C[1]==="repeat"&&(L.wrapT=u.RepeatWrapping),C[1]==="mirror"&&(L.wrapT=u.MirroredRepeatWrapping)),R!==void 0&&(L.anisotropy=R);var N=u.MathUtils.generateUUID();return x[N]=L,N}var x={},_={uuid:u.MathUtils.generateUUID(),type:"MeshLambertMaterial"};for(var E in h){var S=h[E];switch(E){case"DbgColor":case"DbgIndex":case"opticalDensity":case"illumination":break;case"DbgName":_.name=S;break;case"blending":_.blending=d[S];break;case"colorAmbient":case"mapAmbient":console.warn("THREE.Loader.createMaterial:",E,"is no longer supported.");break;case"colorDiffuse":_.color=p.fromArray(S).getHex();break;case"colorSpecular":_.specular=p.fromArray(S).getHex();break;case"colorEmissive":_.emissive=p.fromArray(S).getHex();break;case"specularCoef":_.shininess=S;break;case"shading":S.toLowerCase()==="basic"&&(_.type="MeshBasicMaterial"),S.toLowerCase()==="phong"&&(_.type="MeshPhongMaterial"),S.toLowerCase()==="standard"&&(_.type="MeshStandardMaterial");break;case"mapDiffuse":_.map=g(S,h.mapDiffuseRepeat,h.mapDiffuseOffset,h.mapDiffuseWrap,h.mapDiffuseAnisotropy);break;case"mapDiffuseRepeat":case"mapDiffuseOffset":case"mapDiffuseWrap":case"mapDiffuseAnisotropy":break;case"mapEmissive":_.emissiveMap=g(S,h.mapEmissiveRepeat,h.mapEmissiveOffset,h.mapEmissiveWrap,h.mapEmissiveAnisotropy);break;case"mapEmissiveRepeat":case"mapEmissiveOffset":case"mapEmissiveWrap":case"mapEmissiveAnisotropy":break;case"mapLight":_.lightMap=g(S,h.mapLightRepeat,h.mapLightOffset,h.mapLightWrap,h.mapLightAnisotropy);break;case"mapLightRepeat":case"mapLightOffset":case"mapLightWrap":case"mapLightAnisotropy":break;case"mapAO":_.aoMap=g(S,h.mapAORepeat,h.mapAOOffset,h.mapAOWrap,h.mapAOAnisotropy);break;case"mapAORepeat":case"mapAOOffset":case"mapAOWrap":case"mapAOAnisotropy":break;case"mapBump":_.bumpMap=g(S,h.mapBumpRepeat,h.mapBumpOffset,h.mapBumpWrap,h.mapBumpAnisotropy);break;case"mapBumpScale":_.bumpScale=S;break;case"mapBumpRepeat":case"mapBumpOffset":case"mapBumpWrap":case"mapBumpAnisotropy":break;case"mapNormal":_.normalMap=g(S,h.mapNormalRepeat,h.mapNormalOffset,h.mapNormalWrap,h.mapNormalAnisotropy);break;case"mapNormalFactor":_.normalScale=S;break;case"mapNormalRepeat":case"mapNormalOffset":case"mapNormalWrap":case"mapNormalAnisotropy":break;case"mapSpecular":_.specularMap=g(S,h.mapSpecularRepeat,h.mapSpecularOffset,h.mapSpecularWrap,h.mapSpecularAnisotropy);break;case"mapSpecularRepeat":case"mapSpecularOffset":case"mapSpecularWrap":case"mapSpecularAnisotropy":break;case"mapMetalness":_.metalnessMap=g(S,h.mapMetalnessRepeat,h.mapMetalnessOffset,h.mapMetalnessWrap,h.mapMetalnessAnisotropy);break;case"mapMetalnessRepeat":case"mapMetalnessOffset":case"mapMetalnessWrap":case"mapMetalnessAnisotropy":break;case"mapRoughness":_.roughnessMap=g(S,h.mapRoughnessRepeat,h.mapRoughnessOffset,h.mapRoughnessWrap,h.mapRoughnessAnisotropy);break;case"mapRoughnessRepeat":case"mapRoughnessOffset":case"mapRoughnessWrap":case"mapRoughnessAnisotropy":break;case"mapAlpha":_.alphaMap=g(S,h.mapAlphaRepeat,h.mapAlphaOffset,h.mapAlphaWrap,h.mapAlphaAnisotropy);break;case"mapAlphaRepeat":case"mapAlphaOffset":case"mapAlphaWrap":case"mapAlphaAnisotropy":break;case"flipSided":_.side=u.BackSide;break;case"doubleSided":_.side=u.DoubleSide;break;case"transparency":console.warn("THREE.Loader.createMaterial: transparency has been renamed to opacity"),_.opacity=S;break;case"depthTest":case"depthWrite":case"colorWrite":case"opacity":case"reflectivity":case"transparent":case"visible":case"wireframe":_[E]=S;break;case"vertexColors":S===!0&&(_.vertexColors=u.VertexColors),S==="face"&&(_.vertexColors=u.FaceColors);break;default:console.error("THREE.Loader.createMaterial: Unsupported",E,S)}}return _.type==="MeshBasicMaterial"&&delete _.emissive,_.type!=="MeshPhongMaterial"&&delete _.specular,1>_.opacity&&(_.transparent=!0),m.setTextures(x),m.parse(_)}}()})},(o,l,c)=>{var u=c(4);l.VideoHandler=function(f){var d=this;this.video=void 0,this.videoTexture=void 0,this.setMorphTime=function(p,y){var m=p/y*d.video.duration;d.video.currentTime=m},this.getVideoDuration=function(){return d.video.duration},this.createCanvasVideoTexture=function(){return d.videoTexture=new u.VideoTexture(d.video),d.videoTexture.minFilter=u.LinearFilter,d.videoTexture.magFilter=u.LinearFilter,d.videoTexture.format=u.RGBFormat,d.video.currentTime=0,d.videoTexture},this.getCurrentTime=function(p){return d.video?p*(d.video.currentTime/d.video.duration):0},this.isReadyToPlay=function(){return!!(d.video&&3<=d.video.readyState)},function(){document&&(d.video=document.createElement("video"),d.video.crossOrigin="anonymous",d.video.src=f,d.video.load(),d.video.loop=!0)}()}},(o,l,c)=>{var u=c(4),f=c(23).Points,d=c(5).toBufferGeometry,p=c(5).getCircularTexture,y=c(17).Label,m=function(){c(10).ZincObject.call(this),this.isPointset=!0;var h=[];this.createMesh=(v,g,x)=>{if(v&&g){var _=d(v,x),E=p();g.map=E;var S=new f(_,g);this.setMesh(S,x.localTimeEnabled,x.localMorphColour)}};var b=(v,g,x,_)=>{if(x){var E=new u.Color(_),S=new y(x,E);S.setPosition(g[0],g[1],g[2]);var M=S.getSprite();M.material.sizeAttenuation=!1,M.material.alphaTest=.5,M.material.transparent=!0,M.material.depthWrite=!1,M.material.depthTest=!1,this.group.add(M),h[v]=S}};this.addPoints=(v,g,x)=>{if(v&&0<v.length){var _=this.drawRange-1,E=this.addVertices(v),S=this.getMorph();if(!S){var M=new u.PointsMaterial({alphaTest:.5,size:10,color:x,sizeAttenuation:!1});E.colorsNeedUpdate=!0,this.createMesh(E,M,{localTimeEnabled:!1,localMorphColour:!1})}var T=_+v.length,A=0;if(Array.isArray(g)&&g.length===v.length||typeof g=="string")for(_;_+A<T;){var C=typeof g=="string"?g:g[A];b(A,v[A],C,x),A++}this.region&&(this.region.pickableUpdateRequired=!0)}},this.setSize=v=>{this.morph&&this.morph.material&&(this.morph.material.size=v,this.morph.material.needsUpdate=!0)},this.setSizeAttenuation=v=>{this.morph&&this.morph.material&&(this.morph.material.sizeAttenuation=v,this.morph.material.needsUpdate=!0)},this.getVerticesByIndex=function(v){if(0<=v&&this.drawRange>v){var g=this.getMorph().geometry.getAttribute("position");return[g.getX(v),g.getY(v),g.getZ(v)]}},this.editVertices=function(v,g){if(v&&v.length){var x=this.getMorph(),_=g+v.length-1;if(!x||0>g||_>=this.drawRange)return;var E=x.geometry.getAttribute("position"),S=g;v.forEach(M=>{var T=h[S];T&&T.setPosition(M[0],M[1],M[2]),E.setXYZ(S++,M[0],M[1],M[2])}),E.needsUpdate=!0,this.boundingBoxUpdateRequired=!0}},this.render=(v,g,x,_)=>{this.morph&&x&&(this.morph.sizePerPixel=x.pixelHeight),m.prototype.render.call(this,v,g,x,_)}};m.prototype=Object.create(c(10).ZincObject.prototype),l.Pointset=m},(o,l,c)=>{c.r(l),c.d(l,{Points:()=>b});var u=c(4),f=new u.Matrix4,d=new u.Ray,p=new u.Sphere,y=new u.Vector3,m=new u.Vector3,h=new u.Vector3;class b extends u.Object3D{constructor(){var _=0<arguments.length&&arguments[0]!==void 0?arguments[0]:new u.BufferGeometry,E=1<arguments.length&&arguments[1]!==void 0?arguments[1]:new u.PointsMaterial;super(),this.type="Points",this.geometry=_,this.material=E,this.sizePerPixel=1,this.updateMorphTargets()}copy(_){return super.copy(_),this.material=_.material,this.geometry=_.geometry,this}raycast(_,E){var S=this.geometry,M=this.matrixWorld,T=_.params.Points.threshold,A=S.drawRange;if(S.boundingSphere===null&&S.computeBoundingSphere(),p.copy(S.boundingSphere),p.applyMatrix4(M),p.radius+=T,_.ray.intersectsSphere(p)!==!1){f.copy(M).invert(),d.copy(_.ray).applyMatrix4(f);var C=T/((this.scale.x+this.scale.y+this.scale.z)/3)*this.material.size*this.sizePerPixel,R=C*C;if(S.isBufferGeometry){var L=S.index,I=S.attributes,O=I.position,N=S.morphAttributes.position;if(L!==null)for(var w,P=Math.max(0,A.start),B=Math.min(L.count,A.start+A.count),D=P;D<B;D++)w=L.getX(D),g(this,O,N,w),v(y,w,R,M,_,E,this);else for(var V=Math.max(0,A.start),G=Math.min(O.count,A.start+A.count),H=V;H<G;H++)g(this,O,N,H),v(y,H,R,M,_,E,this)}else console.error("THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}}updateMorphTargets(){var _=this.geometry;if(_.isBufferGeometry){var E=_.morphAttributes,S=Object.keys(E);if(0<S.length){var M=E[S[0]];if(M!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(var T,A=0,C=M.length;A<C;A++)T=M[A].name||A+"",this.morphTargetInfluences.push(0),this.morphTargetDictionary[T]=A}}}else{var R=_.morphTargets;R!==void 0&&0<R.length&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}b.prototype.isPoints=!0;function v(x,_,E,S,M,T,A){var C=d.distanceSqToPoint(x);if(C<E){var R=new u.Vector3;d.closestPointToPoint(x,R),R.applyMatrix4(S);var L=M.ray.origin.distanceTo(R);if(L<M.near||L>M.far)return;T.push({distance:L,distanceToRay:Math.sqrt(C),point:R,index:_,face:null,object:A})}}function g(x,_,E,S){y.fromBufferAttribute(_,S);var M=x.morphTargetInfluences;if(x.material.morphTargets&&E&&M){m.set(0,0,0);for(var T=0,A=E.length;T<A;T++){var C=M[T],R=E[T];C!==0&&(h.fromBufferAttribute(R,S),m.addScaledVector(h.sub(y),C))}y.add(m)}}},(o,l,c)=>{var u=c(4),f=c(5).toBufferGeometry,d=function(){c(10).ZincObject.call(this),this.isLines=!0,this.createLineSegment=(p,y,m)=>{if(p&&y){var h=f(p,m);m.localMorphColour&&h.morphAttributes.color&&(y.onBeforeCompile=c(9).augmentMorphColor());var b=new(c(12)).LineSegments(h,y);this.setMesh(b,m.localTimeEnabled,m.localMorphColour)}},this.setWidth=p=>{this.morph&&this.morph.material&&(this.morph.material.linewidth=p,this.morph.material.needsUpdate=!0)},this.addLines=(p,y)=>{if(p&&0<p.length){var m=this.addVertices(p),h=this.getMorph();if(!h){var b=new u.LineBasicMaterial({color:y});m.colorsNeedUpdate=!0,this.createLineSegment(m,b,{localTimeEnabled:!1,localMorphColour:!1})}this.region&&(this.region.pickableUpdateRequired=!0)}}};d.prototype=Object.create(c(10).ZincObject.prototype),l.Lines=d},(o,l,c)=>{function u(y,m,h,b,v,g,x){try{var _=y[g](x),E=_.value}catch(S){return void h(S)}_.done?m(E):Promise.resolve(E).then(b,v)}function f(y){return function(){var m=this,h=arguments;return new Promise(function(b,v){function g(E){u(_,b,v,g,x,"next",E)}function x(E){u(_,b,v,g,x,"throw",E)}var _=y.apply(m,h);g(void 0)})}}var d=c(4),p=function(){var y=this;c(26).Texture.call(this),this.isTextureArray=!0,this.loadFromImages=function(){var m=f(function*(h){var b=1,v=1,g=0;if(h&&h.length){y.isLoading=!0;var x=new Image;x.crossOrigin="Anonymous";for(var _,E=document.createElement("canvas"),S=0,M=Array(h.length),T=0;T<h.length;T++)_=yield y.imageToUint8Array(y,x,h[T],E),_&&_.array&&(b=_.width,v=_.height,M[g]=_.array,S+=M[g].length,g++);var A=new Uint8Array(S);S=0,M.forEach(C=>{A.set(C,S),S+=C.length}),y.impl=new d.DataTexture2DArray(A,b,v,g),y.size={width:b,height:v,depth:g},y.isLoading=!1,y.impl.needsUpdate=!0}});return function(){return m.apply(this,arguments)}}(),this.getMaterial=m=>{if(this.impl){var h;if(!m)h=new d.MeshBasicMaterial({color:new d.Color(1,1,1),transparent:!1,opacity:1,map:this.impl,side:d.DoubleSide});else if(m.vs&&m.fs){var b=!0;m.transparent&&(b=m.transparent);var v=d.FrontSide;m.side&&(v=m.side),h=new d.ShaderMaterial({transparent:b,uniforms:m.uniforms,vertexShader:m.vs,fragmentShader:m.fs,side:v}),m.glslVersion&&(h.glslVersion=m.glslVersion)}if(h)return h.needsUpdate=!0,h}}};p.prototype=Object.create(c(26).Texture.prototype),l.TextureArray=p},(o,l,c)=>{function u(y,m,h,b,v,g,x){try{var _=y[g](x),E=_.value}catch(S){return void h(S)}_.done?m(E):Promise.resolve(E).then(b,v)}function f(y){return function(){var m=this,h=arguments;return new Promise(function(b,v){function g(E){u(_,b,v,g,x,"next",E)}function x(E){u(_,b,v,g,x,"throw",E)}var _=y.apply(m,h);g(void 0)})}}var d=c(4),p=function(){this.isTexture=!0,this.impl=void 0,this.isLoading=!1,this.size={width:1,height:1,depth:0}};p.prototype.loadImage=function(y,m){return new Promise((h,b)=>{y.onload=()=>h(y),y.onerror=b,y.src=m})},p.prototype.imageToUint8Array=function(){var y=f(function*(m,h,b,v){yield m.loadImage(h,b),v.width=h.width,v.height=h.height;var g=v.getContext("2d");return g.drawImage(h,0,0),{array:new Uint8Array(g.getImageData(0,0,v.width,v.height).data.buffer),width:v.width,height:v.height}});return function(){return y.apply(this,arguments)}}(),p.prototype.loadFromImages=function(){var y=f(function*(){});return function(){return y.apply(this,arguments)}}(),p.prototype.isReady=function(){return!(!this.impl||this.isLoading)},p.prototype.getMaterial=function(){if(this.impl)return new d.MeshBasicMaterial({color:new d.Color(1,1,1),transparent:!1,opacity:1,map:this.impl,side:d.DoubleSide})},l.Texture=p},(o,l,c)=>{function u(v,g){var x=Object.keys(v);if(Object.getOwnPropertySymbols){var _=Object.getOwnPropertySymbols(v);g&&(_=_.filter(function(E){return Object.getOwnPropertyDescriptor(v,E).enumerable})),x.push.apply(x,_)}return x}function f(v){for(var g,x=1;x<arguments.length;x++)g=arguments[x]==null?{}:arguments[x],x%2?u(Object(g),!0).forEach(function(_){d(v,_,g[_])}):Object.getOwnPropertyDescriptors?Object.defineProperties(v,Object.getOwnPropertyDescriptors(g)):u(Object(g)).forEach(function(_){Object.defineProperty(v,_,Object.getOwnPropertyDescriptor(g,_))});return v}function d(v,g,x){return g=p(g),g in v?Object.defineProperty(v,g,{value:x,enumerable:!0,configurable:!0,writable:!0}):v[g]=x,v}function p(v){var g=y(v,"string");return typeof g=="symbol"?g:g+""}function y(v,g){if(typeof v!="object"||!v)return v;var x=v[Symbol.toPrimitive];if(x!==void 0){var _=x.call(v,g||"default");if(typeof _!="object")return _;throw new TypeError("@@toPrimitive must return a primitive value.")}return(g==="string"?String:Number)(v)}var m=c(4),h=c(28),b=function(v){c(29).TexturePrimitive.call(this,v),this.isTextureSlides=!0;var g=[],x={};this.morph=new m.Group,this.group=this.morph,this.morph.userData=this;var _=!0;this.createSlides=M=>{M.forEach(T=>this.createSlide(T))};var E=(M,T)=>{var A=M.material,C=A.uniforms;switch(M.rotation.x=0,M.rotation.y=0,M.rotation.z=0,M.position.x=0,M.position.y=0,M.position.z=0,T.direction){case"x":var R=_?-Math.PI/2:Math.PI/2;M.rotation.y=R,C.direction.value=1,C.slide.value.set(T.value,0,0),M.position.x=T.value;break;case"y":M.rotation.x=Math.PI/2,C.direction.value=2,C.slide.value.set(0,T.value,0),M.position.y=T.value;break;case"z":C.direction.value=3,C.slide.value.set(0,0,T.value),M.position.z=T.value;break}A.needsUpdate=!0,this.boundingBoxUpdateRequired=!0};this.modifySlideSettings=M=>{M&&M.id&&M.id in x&&x[M.id]&&E(x[M.id],M)},this.createSlide=M=>{if(this.texture&&this.texture.isTextureArray&&this.texture.isReady()&&M&&M.direction&&M.value!==void 0){var T=new m.PlaneGeometry(1,1);T.translate(.5,.5,0);var A=h.getUniforms();A.diffuse.value=this.texture.impl,A.depth.value=this.texture.size.depth,A.flipY.value=_;var C={fs:h.fs,vs:h.vs,uniforms:A,glslVersion:h.glslVersion,side:m.DoubleSide,transparent:!1},R=this.texture.getMaterial(C);R.needsUpdate=!0;var L=new m.Mesh(T,R);L.name=this.groupName,L.userData=this;var I={value:M.value,direction:M.direction,id:L.id};return g.push(I),E(L,I),x[L.id]=L,this.morph.add(L),this.boundingBoxUpdateRequired=!0,I}},this.getTextureSettings=()=>[...g],this.getTextureSettingsWithId=M=>{for(var T=0;T<g.length;T++)if(M===g[T].id)return f({},g[T])},this.getSlides=()=>this.morph?[...this.morph.children]:[],this.removeSlide=M=>{M&&this.removeSlideWithId(M.id)},this.removeSlideWithId=M=>{if(this.morph&&M in x&&x[M]){if(this.morph.getObjectById(M)){var T=x[M];this.morph.remove(T),T.clear(),T.geometry&&T.geometry.dispose(),T.material&&T.material.dispose(),this.boundingBoxUpdateRequired=!0}var A=g.findIndex(C=>C.id===M);-1<A&&g.splice(A,1)}},this.dispose=()=>{this.morph.children.forEach(M=>{M.geometry&&M.geometry.dispose(),M.material&&M.material.dispose()}),c(29).TexturePrimitive.prototype.dispose.call(this),this.boundingBoxUpdateRequired=!0};var S=(M,T,A)=>{switch(T.direction.value){case 1:A.copy(T.slide.value),M.expandByPoint(A),A.setY(1),A.setZ(1),M.expandByPoint(A);break;case 2:A.copy(T.slide.value),M.expandByPoint(A),A.setX(1),A.setZ(1),M.expandByPoint(A);break;case 3:A.copy(T.slide.value),M.expandByPoint(A),A.setX(1),A.setY(1),M.expandByPoint(A);break}};this.getBoundingBox=()=>{if(this.morph&&this.morph.children&&this.morph.visible&&this.boundingBoxUpdateRequired){this.cachedBoundingBox.makeEmpty();var M=new m.Vector3(0,0,0);this.morph.children.forEach(T=>{S(this.cachedBoundingBox,T.material.uniforms,M)}),this.morph.updateMatrixWorld(!0,!0),this.cachedBoundingBox.applyMatrix4(this.morph.matrixWorld),this.boundingBoxUpdateRequired=!1}return this.cachedBoundingBox},this.applyTransformation=(M,T,A)=>{var C=new m.Matrix4;C.set(M[0],M[1],M[2],0,M[3],M[4],M[5],0,M[6],M[7],M[8],0,0,0,0,0);var R=new m.Quaternion().setFromRotationMatrix(C);this.morph.position.set(...T),this.morph.quaternion.copy(R),this.morph.scale.set(...A),this.morph.updateMatrix(),this.boundingBoxUpdateRequired=!0},this.initialise=(M,T)=>{if(M){var A=M.locations;A&&0<A.length&&(this.applyTransformation(A[0].orientation,A[0].position,A[0].scale),"flipY"in A[0]&&(_=A[0].flipY)),this.createSlides(M.settings.slides),T!=null&&typeof T=="function"&&T(this)}}};b.prototype=Object.create(c(29).TexturePrimitive.prototype),b.prototype.constructor=b,l.TextureSlides=b},(o,l,c)=>{var u=c(4),f=u.GLSL3,d=`
|
|
3185
3185
|
precision highp float;
|
|
3186
3186
|
precision highp int;
|
|
3187
3187
|
precision highp sampler2DArray;
|
|
@@ -3224,7 +3224,7 @@ void main() {
|
|
|
3224
3224
|
vUw.xyz = vec3(slidePos.x, slidePos.y, slidePos.z * depth);
|
|
3225
3225
|
|
|
3226
3226
|
}
|
|
3227
|
-
`,y=function(){return{diffuse:{value:void 0},depth:{value:1},slide:{value:new u.Vector3(0,0,1)},direction:{value:1},flipY:{value:!0}}};l.fs=d,l.vs=p,l.glslVersion=f,l.getUniforms=y},(o,l,c)=>{c(4);var u=c(5).resolveURL,f=function(d){c(10).ZincObject.call(this),this.isTexturePrimitive=!0,this.texture=d,this.load=(p,y)=>{if(p&&p.images&&p.images.source){var m=new(c(25)).TextureArray,h=[];p.images.source.forEach(v=>{h.push(u(v))});var b=this;m.loadFromImages(h).then(()=>{b.texture=m,b.initialise(p,y)})}},this.initialise=(p,y)=>{y!=null&&typeof y=="function"&&y(this)}};f.prototype=Object.create(c(10).ZincObject.prototype),f.prototype.constructor=f,l.TexturePrimitive=f},(o,l,c)=>{var u=c(4),f=c(31);l.Renderer=function(d){var p=d,y=void 0,m=void 0,h=new u.Clock(!1);this.playAnimation=!0;var b=1e3,v=[],g=0,x=[],_=0,E=void 0,S=void 0,M=void 0,T=void 0,A=[],C=[],R=new u.Group,L=void 0,I=void 0,O=!1;this.getDrawingWidth=()=>p?p.clientWidth:L?typeof L.clientWidth>"u"?Math.round(L.width):Math.round(L.clientWidth):0,this.getDrawingHeight=()=>p?p.clientHeight:L?typeof L.clientHeight>"u"?Math.round(L.height):Math.round(L.clientHeight):0,this.onWindowResize=()=>{m.onWindowResize();var P=this.getDrawingWidth(),B=this.getDrawingHeight();if(y!=null){var D;p?(D=p.getBoundingClientRect(),y.setSize(P,B)):L&&(typeof L.getBoundingClientRect>"u"||(D=L.getBoundingClientRect(),L.width=P,L.height=B),y.setSize(P,B,!1)),D&&(D.left,D.top);var V=new u.Vector2;y.getSize(V),V.x,V.y}},this.initialiseVisualisation=P=>{if(P=P||{},P.antialias===void 0){var B=!1;try{/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)&&(B=!0)}catch{B=!1}P.antialias=!B}P.canvas&&(p=void 0,L=P.canvas),y=new u.WebGLRenderer(P),p!==void 0&&p.appendChild(y.domElement),y.setClearColor(16777215,1),L&&L.style&&(L.style.height="100%",L.style.width="100%"),y.autoClear=!1;var D=this.createScene("default");this.setCurrentScene(D)},this.getCurrentScene=()=>m,this.setCurrentScene=P=>{if(P){this.removeActiveScene(P);var B=m;m=P,B&&B.setInteractiveControlEnable(!1),m.setInteractiveControlEnable(!0),m.setAdditionalScenesGroup(R),this.onWindowResize()}},this.getSceneByName=P=>A[P],this.createScene=P=>{if(A[P]==null){var B;return B=L?new(c(32)).Scene(L,y):new(c(32)).Scene(p,y),A[P]=B,B.sceneName=P,B}},this.resetView=()=>{m.resetView()},this.viewAll=()=>{if(m){var P=m.getBoundingBox();if(P){for(var B,D=0;D<C.length;D++)B=C[D].getBoundingBox(),B&&P.union(B);m.viewAllWithBoundingBox(P)}}},this.loadModelsURL=(P,B,D,V,G,H)=>{m.loadModelsURL(P,B,D,V,G,H)},this.loadViewURL=P=>{m.loadViewURL(P)},this.loadFromViewURL=(P,B)=>{m.loadFromViewURL(P,B)},this.updateDirectionalLight=()=>{m.updateDirectionalLight()};var N=()=>{O?(E=requestAnimationFrame(N),this.render()):(cancelAnimationFrame(E),E=void 0)};this.stopAnimate=()=>{O&&(h.stop(),O=!1)},this.animate=()=>{O||(h.start(),O=!0,N())},this.addPreRenderCallbackFunction=P=>(++g,v[g]=P,g),this.removePreRenderCallbackFunction=P=>{P in v&&delete v[P]},this.addPostRenderCallbackFunction=P=>(++_,x[_]=P,_),this.removePostRenderCallbackFunction=P=>{P in x&&delete x[P]},this.getPlayRate=()=>b,this.setPlayRate=P=>{b=P},this.getCurrentTime=()=>m.getCurrentTime(),this.setMorphsTime=P=>{m.setMorphsTime(P)},this.getZincGeometryByID=P=>m.getZincGeometryByID(P),this.addToScene=P=>{m.addObject(P)},this.addToOrthoScene=P=>{if(M==null&&(M=new u.Scene),S==null){var B=this.getDrawingWidth(),D=this.getDrawingHeight();S=new u.OrthographicCamera(-B/2,B/2,D/2,-D/2,1,10),S.position.z=10}M.add(P)};var w=P=>B=>{B.needsUpdate=!0;var D=new u.SpriteMaterial({map:B}),V=D.map.image.width,G=D.map.image.height;P.material=D,P.scale.set(V,G,1);var H=this.getDrawingWidth(),K=this.getDrawingHeight();P.position.set((H-V)/2,(-K+G)/2,1),this.addToOrthoScene(P)};this.addLogo=()=>{T=new u.Sprite,u.ImageUtils.loadTexture("images/abi_big_logo_transparent_small.png",void 0,w(T))},this.render=()=>{I||(p?0<p.clientWidth&&0<p.clientHeight&&(I=new f(p,this.onWindowResize)):L&&0<L.width&&0<L.height&&(I=new f(L,this.onWindowResize)));var P=h.getDelta();m.renderGeometries(b,P,this.playAnimation);for(var B,D=0;D<C.length;D++)B=C[D],B.renderGeometries(b,P,this.playAnimation);for(var V in S!=null&&M!=null&&(y.clearDepth(),y.render(M,S)),v)v.hasOwnProperty(V)&&v[V].call();for(var G in m.render(y),x)x.hasOwnProperty(G)&&x[G].call()},this.getThreeJSRenderer=()=>y,this.isSceneActive=P=>{if(m===P)return!0;for(var B,D=0;D<C.length;D++)if(B=C[D],B===P)return!0;return!1},this.addActiveScene=P=>{this.isSceneActive(P)||(C.push(P),R.add(P.getThreeJSScene()))},this.removeActiveScene=P=>{for(var B,D=0;D<C.length;D++)if(B=C[D],B===P)return C.splice(D,1),void R.remove(P.getThreeJSScene())},this.clearAllActiveScene=()=>{for(var P=0;P<C.length;P++)R.remove(C[P].getThreeJSScene());C.splice(0,C.length)},this.dispose=()=>{for(var P in O&&cancelAnimationFrame(E),A)A.hasOwnProperty(P)&&A[P].clearAll();A=[],C=[],R=new u.Group,this.stopAnimate(),v=[],g=0,S=void 0,M=void 0,T=void 0;var B=this.createScene("default");this.setCurrentScene(B),I=void 0},this.transitionScene=(P,B)=>{if(m){var D=m.getZincCameraControls(),V=P.getBoundingBox();if(V){var G=V.min.distanceTo(V.max)/2,H=(V.min.x+V.max.x)/2,K=(V.min.y+V.max.y)/2,te=(V.min.z+V.max.z)/2,W=D.getViewportFromCentreAndRadius(H,K,te,G,40,G*4),z=D.getCurrentViewport();D.cameraTransition(z,W,B),D.enableCameraTransition()}}},this.isWebGL2=()=>!!y&&y.capabilities.isWebGL2}},o=>{o.exports=pF()},(o,l,c)=>{var u=c(4),f=c(33).MarkerCluster,d=c(35).SceneLoader,p=c(41).SceneExporter,y=c(43).Viewport,m=c(5).createBufferGeometry,h=c(5).getCircularTexture,b=0,v=function(){return"sc"+b++},g=function(){return{Duration:"6 secs",OriginalDuration:"-",TimeStamps:{}}},x=6e3;l.Scene=function(_,E){var S=this,M=_,T=void 0,A=new d(this),C=void 0,R={},L=0,I={},O=0,N=new u.Scene,w=new(c(44)).Region(void 0,this);N.add(w.getGroup());var P=new u.Group;N.add(P),this.directionalLight=void 0,this.ambient=void 0,this.camera=void 0;var B=6e3,D=void 0;this.sceneName=void 0;var V=!1,G=void 0;this.autoClearFlag=!0,this.displayMarkers=!1,this.displayMinimap=!1,this.minimapScissor={x_offset:16,y_offset:16,width:128,height:128,align:"top-left",updateRequired:!0};var H={x:0,y:0},K=g(),te=new u.Vector2,W=[];this.forcePickableObjectsUpdate=!1,this.uuid=v();var z=new f(this);z.disable(),N.add(z.group);var j=()=>M?typeof M.clientWidth>"u"?M.width:M.clientWidth:0,Z=()=>M?typeof M.clientHeight>"u"?M.height:M.clientHeight:0;this.getDownloadProgress=()=>A.getDownloadProgress(),this.onWindowResize=()=>{var F=Z();this.camera.aspect=j()/F,this.camera.updateProjectionMatrix(),this.minimapScissor.updateRequired=!0,D.onResize(),D.calculateHeightPerPixelAtZeroDepth(F)},this.resetView=()=>{this.onWindowResize(),D.resetView()},this.changeZoomByScrollRateUnit=F=>{D.changeZoomByScrollRateUnit(F)};var Q=()=>{this.camera=new u.PerspectiveCamera(40,j()/Z(),0,10),this.ambient=new u.AmbientLight(16777215,.2),N.add(this.ambient),this.directionalLight=new u.DirectionalLight(16777215,.8),N.add(this.directionalLight),D=new(c(43)).CameraControls(this.camera,E.domElement,E,this),D.setDirectionalLight(this.directionalLight),D.resetView(),C=new(c(49)).Minimap(this)};Q(),this.loadView=F=>{var $=new y;return $.setFromObject(F),D.setCurrentCameraSettings($),!0},this.setupMultipleViews=(F,$)=>{for(var[J,k]of Object.entries($)){var U=new y;U.setFromObject(k),D.addViewport(J,U)}D.setDefaultViewport(F)},this.getBoundingBox=()=>w.getBoundingBox(!0),this.viewAllWithBoundingBox=F=>{if(F){var $=D.getViewportFromBoundingBox(F,1);D.setCurrentCameraSettings($),D.calculateHeightPerPixelAtZeroDepth(Z()),z.markerUpdateRequired=!0}},this.viewAll=()=>{var F=this.getBoundingBox();this.viewAllWithBoundingBox(F),z.markerUpdateRequired=!0},this.forEachGeometry=F=>{w.forEachGeometry(F,!0)},this.forEachGlyphset=F=>{w.forEachGlyphset(F,!0)},this.forEachPointset=F=>{w.forEachPointset(F,!0)},this.forEachLine=F=>{w.forEachLine(F,!0)},this.findGeometriesWithGroupName=F=>w.findGeometriesWithGroupName(F,!0),this.findPointsetsWithGroupName=F=>w.findPointsetsWithGroupName(F,!0),this.findGlyphsetsWithGroupName=F=>w.findGlyphsetsWithGroupName(F,!0),this.findLinesWithGroupName=F=>w.findLinesWithGroupName(F,!0),this.findObjectsWithGroupName=F=>w.findObjectsWithGroupName(F,!0),this.findObjectsWithAnatomicalId=F=>w.findObjectsWithAnatomicalId(F,!0),this.getBoundingBoxOfZincObjects=F=>{for(var $,J=void 0,k=0;k<F.length;k++)$=F[k].getBoundingBox(),$&&(J?J.union($):J=$);return J},this.vectorToScreenXY=F=>{F.project(this.camera);var $=j(),J=Z(),k=$/2,U=J/2;return F.x=F.x*k+k,F.y=-(F.y*U)+U,F},this.getObjectsScreenXY=F=>{if(F&&0<F.length){var $=this.getBoundingBoxOfZincObjects(F),J=new u.Vector3;return $.getCenter(J),this.vectorToScreenXY(J)}},this.getNamedObjectsScreenXY=F=>{var $=this.findObjectsWithGroupName(F);return this.getObjectsScreenXY($)},this.addZincObject=F=>{F&&(w.addZincObject(F),D&&D.calculateMaxAllowedDistance(this))},this.loadGlyphsetURL=(F,$,J,k)=>{A.loadGlyphsetURL(w,F,$,J,k)},this.loadPointsetURL=(F,$,J,k,U)=>{A.loadPointsetURL(w,F,$,J,k,U)},this.loadLinesURL=(F,$,J,k,U)=>{A.loadLinesURL(w,F,$,J,k,U)},this.loadSTL=(F,$,J)=>{A.loadSTL(w,F,$,J)},this.loadOBJ=(F,$,J)=>{A.loadOBJ(w,F,$,J)},this.loadMetadataURL=(F,$,J)=>{A.loadMetadataURL(w,F,$,J)},this.loadModelsURL=(F,$,J,k,U,oe)=>{A.loadModelsURL(w.urls,$,J,k,U,oe)},this.loadViewURL=F=>{A.loadViewURL(F)},this.loadFromViewURL=(F,$)=>{A.loadFromViewURL(F,$)},this.loadGLTF=(F,$,J,k)=>{A.loadGLTF(w,F,$,J,k)},this.updateDirectionalLight=()=>{D.updateDirectionalLight()},this.addObject=F=>{N.add(F)},this.removeObject=F=>{N.remove(F)},this.getCurrentTime=()=>{if(T!=null)return T.getCurrentTime(B);var F=w.getCurrentTime();return F===-1?0:F},this.setMorphsTime=F=>{T!=null&&T.setMorphTime(F,B),w.setMorphTime(F,!0)},this.isTimeVarying=()=>!!(T&&T.video&&!T.video.error)||w.isTimeVarying(),this.renderGeometries=(F,$,J)=>{var k={};if(k.camera=D,k.displayMarkers=this.displayMarkers,k.markerCluster=z,k.markersList=z.markers,k.ndcToBeUpdated=!1,J&&(k.markerCluster.markerUpdateRequired=!0),!T)A.toBeDownloaded==0?(k.ndcToBeUpdated=D.update($),k.ndcToBeUpdated&&D.calculateHeightPerPixelAtZeroDepth(Z()),w.renderGeometries(F,$,J,D,k,!0)):D.update(0);else if(T.isReadyToPlay()){J?T.video.play():T.video.pause();var U=T.video.currentTime/T.getVideoDuration()*B;A.toBeDownloaded==0?(D.setTime(U),k.ndcToBeUpdated=D.update(0),k.ndcToBeUpdated&&D.calculateHeightPerPixelAtZeroDepth(Z()),w.setMorphTime(U,!0),w.renderGeometries(0,0,J,D,k,!0)):D.update(0)}else myPlayRate=0},this.getThreeJSScene=()=>N,this.setVideoHandler=F=>{T||(T=F)},this.setAdditionalScenesGroup=F=>{N.add(F)};var ee=(F,$,J,k,U,oe,le)=>{var ae=0,he=0;return he=F.includes("top")?le-U-J:F.includes("bottom")?J:Math.floor((le-U)/2),ae=F.includes("left")?$:F.includes("right")?oe-$-k:Math.floor((oe-k)/2),{x:ae,y:he}},ie=F=>{this.displayMinimap===!0&&(F.setScissorTest(!0),F.getSize(te),this.minimapScissor.updateRequired&&(H=ee(this.minimapScissor.align,this.minimapScissor.x_offset,this.minimapScissor.y_offset,this.minimapScissor.width,this.minimapScissor.height,te.x,te.y),this.minimapScissor.updateRequired=!1),F.setScissor(H.x,H.y,this.minimapScissor.width,this.minimapScissor.height),F.setViewport(H.x,H.y,this.minimapScissor.width,this.minimapScissor.height),C.updateCamera(),N.add(C.mask),F.render(N,C.camera),N.remove(C.mask),F.setScissorTest(!1),F.setViewport(0,0,te.x,te.y))};this.render=F=>{this.autoClearFlag&&F.clear(),V&&G?G.render(N,this.camera):(F.render(N,this.camera),ie(F))},this.setInteractiveControlEnable=F=>{F==!0?D.enable():D.disable()},this.getZincCameraControls=()=>D,this.getThreeJSScene=()=>N,this.setDuration=F=>{w.setDuration(F),B=F,D.setPathDuration(F),A.duration=F},this.getDuration=()=>B,this.setStereoEffectEnable=F=>{F!=!0||G||(G=new c(43).StereoEffect(E)),E.setSize(j(),Z()),this.camera.updateProjectionMatrix(),V=F},this.objectIsInScene=F=>w.objectIsInRegion(F,!0),this.alignBoundingBoxToCameraView=(F,$)=>{if(F){var J=new u.Vector3;F.getCenter(J);var k=this.getZincCameraControls().getCurrentViewport(),U=new u.Vector3(k.targetPosition[0],k.targetPosition[1],k.targetPosition[2]),oe=new u.Vector3(k.eyePosition[0],k.eyePosition[1],k.eyePosition[2]),le=new u.Vector3,ae=new u.Vector3;le.subVectors(U,oe).normalize(),ae.subVectors(U,J).normalize();var he=new u.Vector3;he.crossVectors(le,ae);var ve=le.angleTo(ae);0<$?(this.getZincCameraControls().rotateCameraTransition(he,ve,$),this.getZincCameraControls().enableCameraTransition()):this.getZincCameraControls().rotateAboutLookAtpoint(he,ve),z.markerUpdateRequired=!0}},this.translateBoundingBoxToCameraView=(F,$,J)=>{if(F){var k=this.getZincCameraControls().getCurrentViewport(),U=this.getZincCameraControls().getViewportFromBoundingBox(F,$);0<J&&(this.getZincCameraControls().cameraTransition(k,U,J),this.getZincCameraControls().enableCameraTransition()),z.markerUpdateRequired=!0}},this.alignObjectToCameraView=(F,$)=>{if(this.objectIsInScene(F)){var J=F.getBoundingBox();this.alignBoundingBoxToCameraView(J,$)}},this.setCameraTargetToObject=F=>{if(this.objectIsInScene(F)){var $=new u.Vector3,J=F.getBoundingBox(),k=this.getZincCameraControls().getCurrentViewport();J.getCenter($);var U=new u.Vector3(k.targetPosition[0],k.targetPosition[1],k.targetPosition[2]),oe=new u.Vector3(k.eyePosition[0],k.eyePosition[1],k.eyePosition[2]),le=new u.Vector3,ae=new u.Vector3;le.subVectors(oe,U),ae.addVectors($,le),k.eyePosition[0]=ae.x,k.eyePosition[1]=ae.y,k.eyePosition[2]=ae.z,k.targetPosition[0]=$.x,k.targetPosition[1]=$.y,k.targetPosition[2]=$.z,this.getZincCameraControls().setCurrentCameraSettings(k),z.markerUpdateRequired=!0}},this.isStereoEffectEnable=()=>V,this.removeZincObject=F=>{w.removeZincObject(F),D&&D.calculateMaxAllowedDistance(this),z.markerUpdateRequired=!0},this.updatePickableThreeJSObjects=()=>{W.length=0,z.isEnabled&&W.push(z.group),w.getPickableThreeJSObjects(W,!0),this.forcePickableObjectsUpdate=!1},this.getPickableThreeJSObjects=()=>((this.forcePickableObjectsUpdate||w.checkPickableUpdateRequred(!0))&&this.updatePickableThreeJSObjects(),W),this.getNormalisedMinimapCoordinates=(F,$)=>{if(this.displayMinimap){var J=new u.Vector2;F.getSize(J);var k=J.y-$.clientY;if(H.x+this.minimapScissor.width>$.clientX&&$.clientX>H.x&&H.y+this.minimapScissor.height>k&&k>H.y){var U=2*(($.clientX-H.x)/this.minimapScissor.width)-1,oe=2*((k-H.y)/this.minimapScissor.height)-1;return{x:U,y:oe}}}},this.getMinimapDiffFromNormalised=(F,$)=>C?C.getDiffFromNormalised(F,$):void 0,this.isWebGL2=()=>E.isWebGL2(),this.clearAll=()=>{z.clear(),w.clear(!0),this.clearZincObjectAddedCallbacks(),this.clearZincObjectRemovedCallbacks(),A.toBeDwonloaded=0,D&&D.calculateMaxAllowedDistance(this),z.markerUpdateRequired=!0},this.addMetadataTimeStamp=(F,$)=>{K.TimeStamps[F]=ne($)},this.getMetadataTag=F=>K[F],this.getMetadata=()=>K,this.setMetadataTag=(F,$)=>{K[F]=$},this.removeMetadataTag=F=>{delete K[F]},this.resetMetadata=()=>{K=g()},this.resetDuration=()=>{this.setDuration(x)};var q=F=>[...F.years?["".concat(F.years,"years")]:[],...F.months?["".concat(F.months,"months")]:[],...F.weeks?["".concat(F.weeks,"weeks")]:[],...F.days?["".concat(F.days,"days")]:[],...F.hours?["".concat(F.hours,"hours")]:[],...F.mins?["".concat(F.mins,"mins")]:[],...F.secs?["".concat(F.secs,"secs")]:[]].join(" "),ne=F=>F.years?31536e6*F.years:0+F.months?2592e6*F.months:0+F.weeks?6048e5*F.weeks:0+F.days?864e5*F.days:0+F.hours?36e5*F.hours:0+F.mins?6e4*F.mins:0+F.secs?1e3*F.secs:0;this.setDurationFromObject=F=>{var $=q(F),J=ne(F);this.setMetadataTag("Duration",$),this.setDuration(J)},this.setOriginalDurationFromObject=F=>{var $=q(F);this.setMetadataTag("OriginalDuration",$)},this.exportGLTF=F=>{var $=new p(this);return $.exportGLTF(F)},this.getRootRegion=()=>w,this.createLines=(F,$,J,k)=>{var U=w.findChildFromPath(F);return U===void 0&&(U=w.createChildFromPath(F)),U.createLines($,J,k)},this.createPoints=(F,$,J,k,U)=>{var oe=w.findChildFromPath(F);return oe===void 0&&(oe=w.createChildFromPath(F)),oe.createPoints($,J,k,U)},this.addZincObjectAddedCallbacks=F=>(++L,R[L]=F,L),this.addZincObjectRemovedCallbacks=F=>(++O,I[O]=F,O),this.removeZincObjectAddedCallbacks=F=>{F in L&&delete R[F]},this.removeZincObjectRemovedCallbacks=F=>{F in O&&delete I[F]},this.clearZincObjectAddedCallbacks=()=>{R={},L=0},this.clearZincObjectRemovedCallbacks=()=>{I={},O=0},this.triggerObjectAddedCallback=F=>{for(var $ in R)R.hasOwnProperty($)&&R[$](F)},this.triggerObjectRemovedCallback=F=>{for(var $ in I)I.hasOwnProperty($)&&I[$](F)},this.addTemporaryPoints=(F,$)=>{var J=m(F.length,F),k=new u.PointsMaterial({alphaTest:.5,size:15,color:$,sizeAttenuation:!1}),U=h();k.map=U;var oe=new(c(23)).Points(J,k);return P.add(oe),oe},this.addTemporaryLines=(F,$)=>{var J=m(F.length,F),k=new u.LineBasicMaterial({color:$}),U=new(c(12)).LineSegments(J,k);return P.add(U),U},this.removeTemporaryPrimitive=F=>{P.remove(F),F.geometry.dispose(),F.material.dispose()},this.clearTemporaryPrimitives=()=>{var F=0,$=P.children;return $.forEach(J=>{J.geometry.dispose(),J.material.dispose(),F++}),P.clear(),F},this.addBoundingBoxPrimitive=function(F,$,J,k,U){var oe=5<arguments.length&&arguments[5]!==void 0?arguments[5]:void 0,le=w.findChildFromPath(F);le===void 0&&(le=w.createChildFromPath(F));var ae=oe||S.getBoundingBox(),he=new u.Vector3().subVectors(ae.max,ae.min),ve=new u.BoxGeometry(he.x,he.y,he.z),we=le.createGeometryFromThreeJSGeometry($,ve,J,k,U,1e4);return he.addVectors(ae.min,ae.max).multiplyScalar(.5),we.setPosition(he.x,he.y,he.z),we},this.addSlicesPrimitive=function(F,$,J,k,U){var oe=5<arguments.length&&arguments[5]!==void 0?arguments[5]:void 0;if($&&3<=$.length&&J&&3<=J.length){var le=w.findChildFromPath(F);le===void 0&&(le=w.createChildFromPath(F));var ae=oe||S.getBoundingBox(),he=new u.Vector3().subVectors(ae.max,ae.min),ve=[],we=0;return["x","y","z"].forEach(ce=>{var ge;switch(ce){case"x":ge=new u.PlaneGeometry(he.z,he.y),ge.rotateY(Math.PI/2);break;case"y":ge=new u.PlaneGeometry(he.x,he.z),ge.rotateX(Math.PI/2);break;case"z":ge=new u.PlaneGeometry(he.x,he.y);break}var re=le.createGeometryFromThreeJSGeometry($[we],ge,J[we],k,U,10001);ve.push(re),we++}),he.addVectors(ae.min,ae.max).multiplyScalar(.5),ve.forEach(ce=>{ce.setPosition(he.x,he.y,he.z)}),ve}},this.enableMarkerCluster=F=>{F?(z.markerUpdateRequired=!0,z.enable()):(z.markerUpdateRequired=!1,z.disable()),this.forcePickableObjectsUpdate=!0}}},(o,l,c)=>{function u(E,S){var M=Object.keys(E);if(Object.getOwnPropertySymbols){var T=Object.getOwnPropertySymbols(E);S&&(T=T.filter(function(A){return Object.getOwnPropertyDescriptor(E,A).enumerable})),M.push.apply(M,T)}return M}function f(E){for(var S,M=1;M<arguments.length;M++)S=arguments[M]==null?{}:arguments[M],M%2?u(Object(S),!0).forEach(function(T){d(E,T,S[T])}):Object.getOwnPropertyDescriptors?Object.defineProperties(E,Object.getOwnPropertyDescriptors(S)):u(Object(S)).forEach(function(T){Object.defineProperty(E,T,Object.getOwnPropertyDescriptor(S,T))});return E}function d(E,S,M){return S=p(S),S in E?Object.defineProperty(E,S,{value:M,enumerable:!0,configurable:!0,writable:!0}):E[S]=M,E}function p(E){var S=y(E,"string");return typeof S=="symbol"?S:S+""}function y(E,S){if(typeof E!="object"||!E)return E;var M=E[Symbol.toPrimitive];if(M!==void 0){var T=M.call(E,S||"default");if(typeof T!="object")return T;throw new TypeError("@@toPrimitive must return a primitive value.")}return(S==="string"?String:Number)(E)}var m=c(4),h=new Image(128,128);h.src=c(34);var b=new m.Texture;b.image=h,b.needsUpdate=!0;var v=[.02,.03,1],g=new m.SpriteMaterial({map:b,alphaTest:.5,transparent:!0,depthTest:!1,depthWrite:!1,sizeAttenuation:!1}),x=c(5).createNewSpriteText,_=function(E){c(10).ZincObject.call(this),this.texture=b;var S=void 0;this.morph=new m.Group,this.group=this.morph,this.isMarkerCluster=!0;var M=!0,T=[];this.markers={};var A=new m.Vector2,C=new m.Vector2,R=Date.now();this.setSpriteSize=w=>{S.scale.set(.015,.02,1),S.scale.multiplyScalar(w)},this.clear=()=>{this.group.clear(),this.markers={}},this.dispose=()=>{this.clear(),this.morph&&this.morph.clear()};var L=w=>{var P=new m.Group,B=new m.Sprite(g);return B.clusterIndex=w,B.center.set(.5,0),B.position.set(0,0,0),B.renderOrder=1e4,B.scale.set(v[0],v[1],v[2]),B.userData=this,P.add(B),this.group.add(P),{group:P,marker:B,label:void 0,number:0,min:[0,0,0],max:[1,1,1]}},I=(w,P,B)=>{w.group.visible=!0,w.group.position.set(P.coords[0],P.coords[1],P.coords[2]),(w.label===void 0||B!==w.number)&&(w.label&&(w.group.remove(w.label),w.label.material.map.dispose(),w.label.material.dispose()),w.label=x(B,.012,"black","Asap",50,500),w.number=B,w.group.add(w.label)),w.min=P.min,w.max=P.max},O=w=>{var P=0;for(w.forEach(B=>{var D=B.members.length,V=0;D===1?B.members[0].setVisibility(!0):(B.members.forEach(G=>{V+=G.getNumber(),G.setVisibility(!1)}),!T[P]&&T.push(L(P)),I(T[P],B,V),P++)}),P;P<T.length;P++)T[P].group.visible=!1},N=(w,P)=>{var B=!0,D={members:[],coords:[0,0,0],min:[0,0,0],max:[1,1,1]},V=0;for(var G in w)B?(A.set(w[G].ndc.x,w[G].ndc.y),this._b1.setFromPoints([w[G].morph.position]),B=!1,D.members.push(w[G]),D.coords=[w[G].morph.position.x,w[G].morph.position.y,w[G].morph.position.z],P.push(D),delete w[G]):(C.set(w[G].ndc.x,w[G].ndc.y),V=A.distanceTo(C),.1>V&&(D.members.push(w[G]),this._b1.expandByPoint(w[G].morph.position),delete w[G]));D.min=[this._b1.min.x,this._b1.min.y,this._b1.min.z],D.max=[this._b1.max.x,this._b1.max.y,this._b1.max.z],B!=!0&&N(w,P)};this.calculate=()=>{if(M){var w=Date.now();if(500<w-R){var P=[];N(f({},this.markers),P),O(P),R=Date.now(),this.markerUpdateRequired=!1}}},this.isEnabled=()=>M,this.enable=()=>{M=!0,this.morph.visible=!0},this.disable=()=>{for(var w in M=!1,this.morph.visible=!1,this.markers){var P;(P=this.markers[w])!==null&&P!==void 0&&P.isMarker&&this.markers[w].isEnabled()&&this.markers[w].setVisibility(!0)}},this.zoomToCluster=w=>!!(w!==void 0&&-1<w&&(this._v1.set(...T[w].min),this._v2.set(...T[w].max),Math.abs(0<this._v1.distanceTo(this._v2))))&&(this._b1.set(this._v1,this._v2),E.translateBoundingBoxToCameraView(this._b1,3,300),this.markerUpdateRequired=!0,!0),this.clusterIsVisible=w=>{if(w!==void 0&&-1<w&&T[w]){var P;return(P=T[w].group)===null||P===void 0?void 0:P.visible}return!1}};_.prototype=Object.create(c(10).ZincObject.prototype),l.MarkerCluster=_},o=>{o.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIiA/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgd2lkdGg9IjM2NSIgaGVpZ2h0PSI1NjAiIHZpZXdCb3g9IjAgMCAzNjUgNTYwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGRlc2M+Q3JlYXRlZCB3aXRoIEZhYnJpYy5qcyA1LjIuNDwvZGVzYz4KPGRlZnM+CjwvZGVmcz4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idHJhbnNwYXJlbnQiPjwvcmVjdD4KPGcgdHJhbnNmb3JtPSJtYXRyaXgoMCAwIDAgMCAwIDApIiBpZD0iODA4ZWQyODMtMjUyNC00NDBmLTg4YWUtM2JkYjQ3YmI1NzQ5IiAgPgo8L2c+CjxnIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgMTgyLjUgMjgwKSIgaWQ9ImRiMzA0MTNkLTViZmYtNGI5OC1hYjU5LTQ2NDQ5N2VlMTk5ZSIgID4KPHJlY3Qgc3R5bGU9InN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxOyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBmaWxsOiByZ2IoMjU1LDI1NSwyNTUpOyBmaWxsLXJ1bGU6IG5vbnplcm87IG9wYWNpdHk6IDE7IHZpc2liaWxpdHk6IGhpZGRlbjsiIHZlY3Rvci1lZmZlY3Q9Im5vbi1zY2FsaW5nLXN0cm9rZSIgIHg9Ii0xODIuNSIgeT0iLTI4MCIgcng9IjAiIHJ5PSIwIiB3aWR0aD0iMzY1IiBoZWlnaHQ9IjU2MCIgLz4KPC9nPgo8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwIDAgMCAwIDAgOTcuNSkiICA+CjxnIHN0eWxlPSIiICAgPgo8L2c+CjwvZz4KPGcgdHJhbnNmb3JtPSJtYXRyaXgoMCAwIDAgMCAwIDk3LjUpIiAgPgo8ZyBzdHlsZT0iIiAgID4KPC9nPgo8L2c+CjxnIHRyYW5zZm9ybT0ibWF0cml4KDAuOTkgMCAwIDAuOTkgMTgyLjUgMjgwKSIgID4KPGcgc3R5bGU9IiIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgID4KCQk8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDAgMCkiICA+CjxyZWN0IHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDI1NSwyNTUsMjU1KTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyB2aXNpYmlsaXR5OiBoaWRkZW47IiB2ZWN0b3ItZWZmZWN0PSJub24tc2NhbGluZy1zdHJva2UiICB4PSItNTQwIiB5PSItNTQwIiByeD0iMCIgcnk9IjAiIHdpZHRoPSIxMDgwIiBoZWlnaHQ9IjEwODAiIC8+CjwvZz4KCQk8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDAgMCkiICA+CjxwYXRoIHN0eWxlPSJzdHJva2U6IHJnYigwLDAsMCk7IHN0cm9rZS13aWR0aDogMDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDI1NSwxNjUsMCk7IGZpbGwtcnVsZTogbm9uemVybzsgb3BhY2l0eTogMTsiIHZlY3Rvci1lZmZlY3Q9Im5vbi1zY2FsaW5nLXN0cm9rZSIgIHRyYW5zZm9ybT0iIHRyYW5zbGF0ZSgtMTgyLjksIC0yNzkuODUpIiBkPSJNIDE4Mi45IDU1MS43IEMgMTgyLjkgNTUxLjgwMDAwMDAwMDAwMDEgMTgzLjEgNTUyIDE4My4xIDU1MiBDIDE4My4xIDU1MiAzNTguMyAyODMgMzU4LjMgMTk0LjYgQyAzNTguMyA2NC41IDI2OS41IDcuOTAwMDAwMDAwMDAwMDA2IDE4Mi45IDcuNjk5OTk5OTk5OTk5OTg5IEMgOTYuMyA3LjkgNy41IDY0LjUgNy41IDE5NC42IEMgNy41IDI4MyAxODIuOCA1NTIgMTgyLjggNTUyIEMgMTgyLjggNTUyIDE4Mi45IDU1MS43IDE4Mi45IDU1MS43IHogTSAxMjIuMiAxODcuMiBDIDEyMi4yIDE1My42IDE0OS40IDEyNi4zOTk5OTk5OTk5OTk5OSAxODMgMTI2LjM5OTk5OTk5OTk5OTk5IEMgMjE2LjYgMTI2LjM5OTk5OTk5OTk5OTk5IDI0My44IDE1My42IDI0My44IDE4Ny4yIEMgMjQzLjggMjIwLjc5OTk5OTk5OTk5OTk4IDIxNi41IDI0OCAxODIuOSAyNDggQyAxNDkuNCAyNDggMTIyLjIgMjIwLjggMTIyLjIgMTg3LjIgeiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiAvPgo8L2c+CgkJPGcgdHJhbnNmb3JtPSJtYXRyaXgoMy44MiAwIDAgMy44MiAwIC0xMDAuNzcpIiAgPgo8Y2lyY2xlIHN0eWxlPSJzdHJva2U6IHJnYigwLDAsMCk7IHN0cm9rZS13aWR0aDogMDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDI1NSwyNTUsMjU1KTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgY3g9IjAiIGN5PSIwIiByPSIzNSIgLz4KPC9nPgo8L2c+CjwvZz4KPC9zdmc+"},(o,l,c)=>{var u=c(4),f=c(5).resolveURL,d=c(5).createNewURL,p=c(36).STLLoader,y=c(37).OBJLoader,m=c(38).PrimitivesLoader;l.SceneLoader=function(h){var b=h;this.toBeDownloaded=0,this.progressMap={};var v=!1,g=!1,x=new m;this.getDownloadProgress=()=>{var W=0,z=0,j=!1;for(var Z in this.progressMap){var Q=this.progressMap[Z];W+=Q[1],z+=Q[0],Q[1]==0&&(j=!0)}return j&&(W=0),[W,z,g]},this.onProgress=W=>z=>{this.progressMap[W]=[z.loaded,z.total]},this.onError=W=>z=>{--this.toBeDownloaded,g=!0,console.error("There is an issue with one of the external resource: ".concat(z==null?void 0:z.responseURL,".")),W&&W()};var _=(W,z)=>{var j=z.Default;if(z.Inline)b.setupMultipleViews(j,z.Entries);else{var Z=[],Q=function(ne){W&&(newURL=d(ie,W),Z.push(new Promise((F,$)=>{fetch(newURL).then(J=>J.json()).then(J=>F({key:ne,data:J})).catch(J=>$(J))})))};for(var[ee,ie]of Object.entries(z.Entries))Q(ee);Promise.all(Z).then(q=>{var ne={};q.forEach($=>{ne[$.key]=$.data}),b.setupMultipleViews(j,ne);var F=b.getZincCameraControls();F&&F.setCurrentViewport(j),v=!0})}};this.loadViewURL=(W,z)=>{this.toBeDownloaded+=1;var j=new XMLHttpRequest;j.onreadystatechange=()=>{if(j.readyState==4)if(j.status==200){var Q=JSON.parse(j.responseText);b.setupMultipleViews("default",{default:Q}),b.resetView(),v=!0,--this.toBeDownloaded,z!=null&&typeof z=="function"&&z()}else this.onError()};var Z=f(W);j.open("GET",Z,!0),j.send()},this.loadModelsURL=(W,z,j,Z,Q,ee,ie)=>{var q=z.length;this.toBeDownloaded+=q;for(var ne=0;ne<q;ne++){var F=z[ne],$=c(0).defaultMaterialColor,J=c(0).defaultOpacity;j!=null&&j[ne]!=null&&($=!!j[ne]),Z!=null&&Z[ne]!=null&&(J=Z[ne]);var k=0;Q!=null&&Q[ne]!=null&&(k=!!Q[ne]);var U=0;ee!=null&&ee[ne]!=null&&(U=!!ee[ne]),x.load(f(F),O(W,$,J,k,U,void 0,void 0,void 0,void 0,ie),this.onProgress(F),this.onError(ie))}},this.loadFromViewURL=(W,z,j)=>{var Z=new XMLHttpRequest;Z.onreadystatechange=()=>{if(Z.readyState==4&&Z.status==200){var ee=JSON.parse(Z.responseText);b.loadView(ee);for(var ie,q=[],ne=z+"_",F=0;F<ee.numberOfResources;F++)ie=ne+(F+1)+".json",q.push(ie);this.loadModelsURL(W,q,ee.colour,ee.opacity,ee.timeEnabled,ee.morphColour,j)}};var Q=f(z+"_view.json");Z.open("GET",Q,!0),Z.send()};var E=(W,z,j,Z,Q,ee,ie,q)=>(ne,F)=>{var $=new(c(24)).Lines,J=void 0;F&&F[0]&&(J=new u.LineBasicMaterial({color:F[0].color.clone()}),1>F[0].opacity&&(J.transparent=!0),J.opacity=F[0].opacity,J.morphTargets=z,J.vertexColors=F[0].vertexColors);var k={localTimeEnabled:z,localMorphColour:j};if($&&($.createLineSegment(ne,J,k),$.setName(Z),$.anatomicalId=Q,$.setRenderOrder(ee),W.addZincObject($),$.setDuration(b.getDuration()),console.log(ie),ie&&ie.levels))for(var[U,oe]of Object.entries(ie.levels))$.addLOD(x,U,oe.URL,oe.Index,ie.preload);--this.toBeDownloaded,ne.dispose(),q!=null&&typeof q=="function"&&q($)};this.loadLinesURL=(W,z,j,Z,Q,ee,ie)=>{var q=0;this.toBeDownloaded+=1;var ne=!!(ie&&ie.isInline)&&ie.isInline,F=ie&&ie.anatomicalId?ie.anatomicalId:void 0,$=ie&&ie.renderOrder?ie.renderOrder:void 0;j!=null&&(q=!!j);var J=0;if(Z!=null&&(J=!!Z),ne){var k=x.parse(z);E(W,q,J,Q,F,$,ie.lod,ee)(k.geometry,k.materials)}else x.load(z,E(W,q,J,Q,F,$,ie.lod,ee),this.onProgress(z),this.onError(ee),ie.loaderOptions)};var S=(W,z,j,Z,Q,ee)=>{var ie=ee&&ee.isInline?ee.isInline:void 0,q=ee&&ee.anatomicalId?ee.anatomicalId:void 0,ne=ee&&ee.displayLabels?ee.displayLabels:void 0,F=ee&&ee.renderOrder?ee.renderOrder:void 0,$=new(c(18)).Glyphset;$.setDuration(b.getDuration()),$.groupName=Z;var J=()=>{--this.toBeDownloaded,Q!=null&&typeof Q=="function"&&Q($)};++this.toBeDownloaded,ie?$.load(z,j,J,ie,ne):$.load(z,f(j),J,ie,ne),$.anatomicalId=q,$.setRenderOrder(F),W.addZincObject($)},M=(W,z,j,Z,Q,ee)=>()=>{if(z.readyState==4&&z.status==200){var ie=JSON.parse(z.responseText);S(W,ie,j,Z,Q,ee)}},T=(W,z,j,Z,Q,ee,ie)=>(q,ne)=>{var F=new(c(22)).Pointset,$=new u.PointsMaterial({alphaTest:.5,size:10,sizeAttenuation:!1});ne&&ne[0]&&(1>ne[0].opacity&&($.transparent=!0),$.opacity=ne[0].opacity,$.color=ne[0].color,$.morphTargets=z,$.vertexColors=ne[0].vertexColors);var J={};J.localTimeEnabled=z,J.localMorphColour=j,F&&(F.createMesh(q,$,J),F.setName(Z),F.anatomicalId=Q,W.addZincObject(F),F.setDuration(b.getDuration()),F.setRenderOrder(ee)),q.dispose(),--this.toBeDownloaded,ie!=null&&typeof ie=="function"&&ie(F)};this.loadSTL=(W,z,j,Z)=>{this.toBeDownloaded+=1;var Q=c(0).defaultMaterialColor,ee=c(0).defaultOpacity,ie=new p;ie.crossOrigin="Anonymous",ie.load(f(z),O(W,Q,ee,!1,!1,j,void 0,void 0,void 0,Z))},this.loadOBJ=(W,z,j,Z)=>{this.toBeDownloaded+=1;var Q=c(0).defaultMaterialColor,ee=c(0).defaultOpacity,ie=new y;ie.crossOrigin="Anonymous",ie.load(f(z),O(W,Q,ee,!1,!1,j,void 0,void 0,void 0,Z))};var A=(W,z,j,Z,Q,ee,ie)=>{this.toBeDownloaded+=1;var q=c(0).defaultMaterialColor,ne=c(0).defaultOpacity,F=0,$=!!(ie&&ie.isInline)&&ie.isInline,J=ie&&ie.fileFormat?ie.fileFormat:void 0,k=ie&&ie.anatomicalId?ie.anatomicalId:void 0,U=ie&&ie.renderOrder?ie.renderOrder:void 0;j!=null&&(F=!!j);var oe=0;Z!=null&&(oe=!!Z);var le=x;if(J!==void 0){if(J=="STL")le=new p;else if(J=="OBJ")return le=new y,le.crossOrigin="Anonymous",void le.load(z,objloader(W,q,ne,F,oe,Q,k,ee),this.onProgress(z),this.onError,ie.loaderOptions)}if($){var ae=x.parse(z);O(W,q,ne,F,oe,Q,k,U,ie,ee)(ae.geometry,ae.materials)}else le.crossOrigin="Anonymous",x.load(z,O(W,q,ne,F,oe,Q,k,U,ie,ee),this.onProgress(z),this.onError(ee),ie.loaderOptions)},C=function(z,j,Z){var Q=0;return ee=>{if(++Q,ee&&j!=null&&typeof j=="function"){j(ee);var ie=b.getZincCameraControls();ie&&ie.calculateMaxAllowedDistance(b)}Q==z&&(v==!1&&b.viewAll(),Z!=null&&typeof Z=="function"&&Z())}};this.loadPointsetURL=(W,z,j,Z,Q,ee,ie)=>{var q=0;this.toBeDownloaded+=1,j!=null&&(q=!!j);var ne=0;Z!=null&&(ne=!!Z);var F=!!(ie&&ie.isInline)&&ie.isInline,$=ie&&ie.anatomicalId?ie.anatomicalId:void 0,J=ie&&ie.renderOrder?ie.renderOrder:void 0;if(F){var k=x.parse(z);T(W,q,ne,Q,$,J,ee)(k.geometry,k.materials)}else x.load(z,T(W,q,ne,Q,$,J,ee),this.onProgress(z),this.onError(ee),ie.loaderOptions)};var R=(W,z,j,Z,Q,ee)=>{var ie=ee&&ee.isInline?ee.isInline:void 0,q=ee&&ee.anatomicalId?ee.anatomicalId:void 0,ne=ee&&ee.renderOrder?ee.renderOrder:void 0,F=void 0;if(j){if(z&&j.images&&j.images.source)for(var $,J=j.images.source,k=0;k<J.length;k++)$=d(J[k],z),j.images.source[k]=$;if(j.type==="slides"&&(F=new(c(27)).TextureSlides),F){F.groupName=Z;var U=()=>{--this.toBeDownloaded,Q!=null&&typeof Q=="function"&&Q(F)};++this.toBeDownloaded,F.load(j,U,ie),F.anatomicalId=q,F.setRenderOrder(ne),W.addZincObject(F)}}},L=(W,z,j,Z,Q)=>()=>{if(z.readyState==4&&z.status==200){var ee=JSON.parse(z.responseText);R(W,z.responseURL,ee,j,Z,Q)}};this.loadTextureURL=(W,z,j,Z,Q)=>{var ee=!!(Q&&Q.isInline)&&Q.isInline;if(ee)R(W,void 0,z,j,Z,Q);else{var ie=new XMLHttpRequest;ie.onreadystatechange=L(W,ie,j,Z,Q),ie.open("GET",f(z),!0),ie.send()}},this.loadGlyphsetURL=(W,z,j,Z,Q,ee)=>{var ie=!!(ee&&ee.isInline)&&ee.isInline;if(ie)S(W,z,j,Z,Q,ee);else{var q=new XMLHttpRequest;q.onreadystatechange=M(W,q,j,Z,Q,ee),q.open("GET",f(z),!0),q.send()}};var I=(W,z,j,Z,Q,ee,ie,q,ne)=>{var F={colour:j,opacity:Z,localTimeEnabled:Q,localMorphColour:ee},$=new(c(3)).Geometry;return $.createMesh(z,q,F),$.getMorph()?($.setName(ne),W&&W.addZincObject($),$.setDuration(b.getDuration()),$.videoHandler&&b.setVideoHandler($.videoHandler),$):void 0},O=(W,z,j,Z,Q,ee,ie,q,ne,F)=>($,J)=>{var k;J&&J[0]&&(k=J[0]);var U=I(W,$,z,j,Z,Q,void 0,k,ee);if(U.anatomicalId=ie,U.setRenderOrder(q),ne.lod&&ne.lod.levels)for(var[oe,le]of Object.entries(ne.lod.levels))U.addLOD(x,oe,le.URL,le.Index,ne.lod.preload);--this.toBeDownloaded,$.dispose(),F!=null&&typeof F=="function"&&F(U)},N=W=>{var z=/P(?:(\d+)Y)?(?:(\d+)M)?(?:(\d+)W)?(?:(\d+)D)?(?:T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?)?$/,[,j,Z,Q,ee,ie,q,ne]=W.match(z);return{years:j,months:Z,weeks:Q,days:ee,hours:ie,mins:q,secs:ne}};this.loadSettings=W=>{if(W){if(W.Duration){var z=N(W.Duration);b.setDurationFromObject(z)}if(W.OriginalDuration){var j=N(W.OriginalDuration);b.setOriginalDurationFromObject(j)}if(W.TimeStamps)for(var Z in W.TimeStamps){var Q=N(W.TimeStamps[Z]);b.addMetadataTimeStamp(Z,Q)}}};var w=(W,z,j,Z,Q)=>{if(j){var ee=void 0,ie=!1;j.URL?(ee=j.URL,z&&(ee=d(ee,z))):j.Inline&&(ee=j.Inline.URL,ie=!0);var q={};if(j.LOD&&j.LOD.Levels){q.preload=!!j.LOD.Preload,q.levels={};for(var[ne,F]of Object.entries(j.LOD.Levels))q.levels[ne]={},q.levels[ne].URL=d(F.URL,z),q.levels[ne].Index=F.Index}var $=j.GroupName;($===void 0||$==="")&&($="_Unnamed");var J={loaderOptions:{index:j.Index},isInline:ie,fileFormat:j.FileFormat,anatomicalId:j.AnatomicalId,compression:j.compression,lod:q,renderOrder:Z};switch(j.Type){case"Surfaces":A(W,ee,j.MorphVertices,j.MorphColours,$,Q,J);break;case"Glyph":var k;ie?k=j.Inline.GlyphGeometriesURL:(k=j.GlyphGeometriesURL,k=d(j.GlyphGeometriesURL,z)),j.DisplayLabels&&(J.displayLabels=!0),this.loadGlyphsetURL(W,ee,k,$,Q,J);break;case"Points":this.loadPointsetURL(W,ee,j.MorphVertices,j.MorphColours,$,Q,J);break;case"Lines":this.loadLinesURL(W,ee,j.MorphVertices,j.MorphColours,$,Q,J);break;case"Texture":this.loadTextureURL(W,ee,$,Q,J);break}}},P=(W,z,j)=>{if(z){var Z=void 0,Q=!1;switch(z.URL?(Z=z.URL,W&&(Z=d(z.URL,W))):z.Inline&&(Z=z.Inline.URL,Q=!0),z.Type){case"View":Q?(b.setupMultipleViews("default",{default:Z}),v=!0,j!=null&&typeof j=="function"&&j()):this.loadViewURL(Z,j);break;case"Settings":this.loadSettings(z);break}}};this.loadGLTF=(W,z,j,Z,Q)=>{var ee=new(c(39)).GLTFToZincJSLoader;ee.load(b,W,z,j,Z,Q)};var B=(W,z,j,Z)=>{if(j.Primitives&&j.Primitives.forEach(q=>{var ne=1;q.Order&&(ne=q.Order),w(W,z,q,ne,Z)}),j.Transformation&&W.setTransformation(j.Transformation),j.Children)for(var[Q,ee]of Object.entries(j.Children)){var ie=W.findOrCreateChildFromPath(Q);ie&&B(ie,z,ee,Z)}},D=(W,z)=>{if(Array.isArray(W)){for(var j=0,Z=0;Z<W.length;Z++)W[Z].Type&&(z&&W[Z].Type==="View"||W[Z].Type==="Surfaces"||W[Z].Type==="Glyph"||W[Z].Type==="Points"||W[Z].Type==="Lines"||W[Z].Type==="Texture")&&j++;return j}return 0},V=W=>{var z=W.Primitives?D(W.Primitives,!1):0;return W.Children&&Object.values(W.Children).forEach(j=>{z+=V(j)}),z},G=W=>Array.isArray(W)?D(W,!0):typeof W=="object"&&W!==null&&W.Version==="2.0"?V(W.Regions):void 0,H=(W,z,j,Z,Q)=>{var ee=W;j.RegionPath&&j.RegionPath!==""&&(ee=W.findOrCreateChildFromPath(j.RegionPath)),w(ee,z,j,2*Z,Q)},K=(W,z,j,Z,Q)=>{for(var ee=G(z),ie=new C(ee,Z,Q),q=0;q<z.length;q++)P(j,z[q],ie);for(var ne=0;ne<z.length;ne++)H(W,j,z[ne],ne,ie)},te=(W,z,j,Z,Q)=>{var ee=G(z),ie=new C(ee,Z,Q);z.Settings&&this.loadSettings(z.Settings),z.Views&&_(j,z.Views),z.Regions&&B(W,j,z.Regions,ie)};this.loadMetadataURL=(W,z,j,Z)=>{var Q=new XMLHttpRequest,ee=f(z);Q.onreadystatechange=()=>{if(Q.readyState==4&&Q.status==200){b.resetMetadata(),b.resetDuration(),v=!1;var ie=Q.responseURL;ie===void 0&&(ie=new URL(ee).href);var q=JSON.parse(Q.responseText);Array.isArray(q)?K(W,q,ie,j,Z):typeof q=="object"&&q!==null&&q.Version=="2.0"&&te(W,q,ie,j,Z)}},Q.open("GET",ee,!0),Q.send()}}},(o,l,c)=>{c.r(l),c.d(l,{STLLoader:()=>f});var u=c(4);class f extends u.Loader{constructor(p){super(p)}load(p,y,m,h){var b=this,v=new u.FileLoader(this.manager);v.setPath(this.path),v.setResponseType("arraybuffer"),v.setRequestHeader(this.requestHeader),v.setWithCredentials(this.withCredentials),v.load(p,function(g){try{y(b.parse(g))}catch(x){h?h(x):console.error(x),b.manager.itemError(p)}},m,h)}parse(p){function y(h,b,v){for(var g=0,x=h.length;g<x;g++)if(h[g]!==b.getUint8(v+g,!1))return!1;return!0}var m=function(h){if(typeof h=="string"){for(var b=new Uint8Array(h.length),v=0;v<h.length;v++)b[v]=255&h.charCodeAt(v);return b.buffer||b}return h}(p);return function(h){var b=new DataView(h),v=b.getUint32(80,!0);if(84+v*50===b.byteLength)return!0;for(var g=[115,111,108,105,100],x=0;5>x;x++)if(y(g,b,x))return!1;return!0}(m)?function(h){for(var b,v,g,x,_,E,S,M,T=new DataView(h),A=T.getUint32(80,!0),C=!1,R=0;R<70;R++)T.getUint32(R,!1)==1129270351&&T.getUint8(R+4)==82&&T.getUint8(R+5)==61&&(C=!0,x=new Float32Array(3*(3*A)),_=T.getUint8(R+6)/255,E=T.getUint8(R+7)/255,S=T.getUint8(R+8)/255,M=T.getUint8(R+9)/255);for(var L=new u.BufferGeometry,I=new Float32Array(3*(3*A)),O=new Float32Array(3*(3*A)),N=0;N<A;N++){var w=84+N*50,P=T.getFloat32(w,!0),B=T.getFloat32(w+4,!0),D=T.getFloat32(w+8,!0);if(C){var V=T.getUint16(w+48,!0);32768&V?(b=_,v=E,g=S):(b=(31&V)/31,v=(31&V>>5)/31,g=(31&V>>10)/31)}for(var G=1;3>=G;G++){var H=w+12*G,K=3*(3*N)+3*(G-1);I[K]=T.getFloat32(H,!0),I[K+1]=T.getFloat32(H+4,!0),I[K+2]=T.getFloat32(H+8,!0),O[K]=P,O[K+1]=B,O[K+2]=D,C&&(x[K]=b,x[K+1]=v,x[K+2]=g)}}return L.setAttribute("position",new u.BufferAttribute(I,3)),L.setAttribute("normal",new u.BufferAttribute(O,3)),C&&(L.setAttribute("color",new u.BufferAttribute(x,3)),L.hasColors=!0,L.alpha=M),L}(m):function(h){for(var b,v=new u.BufferGeometry,g=/solid([\s\S]*?)endsolid/g,x=/facet([\s\S]*?)endfacet/g,_=0,E=/[\s]+([+-]?(?:\d*)(?:\.\d*)?(?:[eE][+-]?\d+)?)/.source,S=new RegExp("vertex"+E+E+E,"g"),M=new RegExp("normal"+E+E+E,"g"),T=[],A=[],C=new u.Vector3,R=0,L=0,I=0;(b=g.exec(h))!==null;){L=I;for(var O=b[0];(b=x.exec(O))!==null;){for(var N=0,w=0,P=b[0];(b=M.exec(P))!==null;)C.x=parseFloat(b[1]),C.y=parseFloat(b[2]),C.z=parseFloat(b[3]),w++;for(;(b=S.exec(P))!==null;)T.push(parseFloat(b[1]),parseFloat(b[2]),parseFloat(b[3])),A.push(C.x,C.y,C.z),N++,I++;w!==1&&console.error("THREE.STLLoader: Something isn't right with the normal of face number "+_),N!==3&&console.error("THREE.STLLoader: Something isn't right with the vertices of face number "+_),_++}var B=L,D=I-L;v.addGroup(B,D,R),R++}return v.setAttribute("position",new u.Float32BufferAttribute(T,3)),v.setAttribute("normal",new u.Float32BufferAttribute(A,3)),v}(function(h){return typeof h=="string"?h:u.LoaderUtils.decodeText(new Uint8Array(h))}(p))}}},(o,l,c)=>{c.r(l),c.d(l,{OBJLoader:()=>_});var u=c(4),f=/^[og]\s*(.+)?/,d=/^mtllib /,p=/^usemtl /,y=/^usemap /,m=new u.Vector3,h=new u.Vector3,b=new u.Vector3,v=new u.Vector3,g=new u.Vector3;function x(){var E={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(M,T){if(this.object&&this.object.fromDeclaration===!1)return this.object.name=M,void(this.object.fromDeclaration=T!==!1);var A=this.object&&typeof this.object.currentMaterial=="function"?this.object.currentMaterial():void 0;if(this.object&&typeof this.object._finalize=="function"&&this.object._finalize(!0),this.object={name:M||"",fromDeclaration:T!==!1,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:!1},materials:[],smooth:!0,startMaterial:function(L,I){var O=this._finalize(!1);O&&(O.inherited||0>=O.groupCount)&&this.materials.splice(O.index,1);var N={index:this.materials.length,name:L||"",mtllib:Array.isArray(I)&&0<I.length?I[I.length-1]:"",smooth:O===void 0?this.smooth:O.smooth,groupStart:O===void 0?0:O.groupEnd,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(P){var B={index:typeof P=="number"?P:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return B.clone=this.clone.bind(B),B}};return this.materials.push(N),N},currentMaterial:function(){return 0<this.materials.length?this.materials[this.materials.length-1]:void 0},_finalize:function(L){var I=this.currentMaterial();if(I&&I.groupEnd===-1&&(I.groupEnd=this.geometry.vertices.length/3,I.groupCount=I.groupEnd-I.groupStart,I.inherited=!1),L&&1<this.materials.length)for(var O=this.materials.length-1;0<=O;O--)0>=this.materials[O].groupCount&&this.materials.splice(O,1);return L&&this.materials.length===0&&this.materials.push({name:"",smooth:this.smooth}),I}},A&&A.name&&typeof A.clone=="function"){var C=A.clone(0);C.inherited=!0,this.object.materials.push(C)}this.objects.push(this.object)},finalize:function(){this.object&&typeof this.object._finalize=="function"&&this.object._finalize(!0)},parseVertexIndex:function(M,T){var A=parseInt(M,10);return 3*(0<=A?A-1:A+T/3)},parseNormalIndex:function(M,T){var A=parseInt(M,10);return 3*(0<=A?A-1:A+T/3)},parseUVIndex:function(M,T){var A=parseInt(M,10);return 2*(0<=A?A-1:A+T/2)},addVertex:function(M,T,A){var C=this.vertices,R=this.object.geometry.vertices;R.push(C[M+0],C[M+1],C[M+2]),R.push(C[T+0],C[T+1],C[T+2]),R.push(C[A+0],C[A+1],C[A+2])},addVertexPoint:function(M){var T=this.vertices,A=this.object.geometry.vertices;A.push(T[M+0],T[M+1],T[M+2])},addVertexLine:function(M){var T=this.vertices,A=this.object.geometry.vertices;A.push(T[M+0],T[M+1],T[M+2])},addNormal:function(M,T,A){var C=this.normals,R=this.object.geometry.normals;R.push(C[M+0],C[M+1],C[M+2]),R.push(C[T+0],C[T+1],C[T+2]),R.push(C[A+0],C[A+1],C[A+2])},addFaceNormal:function(M,T,A){var C=this.vertices,R=this.object.geometry.normals;m.fromArray(C,M),h.fromArray(C,T),b.fromArray(C,A),g.subVectors(b,h),v.subVectors(m,h),g.cross(v),g.normalize(),R.push(g.x,g.y,g.z),R.push(g.x,g.y,g.z),R.push(g.x,g.y,g.z)},addColor:function(M,T,A){var C=this.colors,R=this.object.geometry.colors;C[M]!==void 0&&R.push(C[M+0],C[M+1],C[M+2]),C[T]!==void 0&&R.push(C[T+0],C[T+1],C[T+2]),C[A]!==void 0&&R.push(C[A+0],C[A+1],C[A+2])},addUV:function(M,T,A){var C=this.uvs,R=this.object.geometry.uvs;R.push(C[M+0],C[M+1]),R.push(C[T+0],C[T+1]),R.push(C[A+0],C[A+1])},addDefaultUV:function(){var M=this.object.geometry.uvs;M.push(0,0),M.push(0,0),M.push(0,0)},addUVLine:function(M){var T=this.uvs,A=this.object.geometry.uvs;A.push(T[M+0],T[M+1])},addFace:function(M,T,A,C,R,L,I,O,N){var w=this.vertices.length,P=this.parseVertexIndex(M,w),B=this.parseVertexIndex(T,w),D=this.parseVertexIndex(A,w);if(this.addVertex(P,B,D),this.addColor(P,B,D),I!==void 0&&I!==""){var V=this.normals.length;P=this.parseNormalIndex(I,V),B=this.parseNormalIndex(O,V),D=this.parseNormalIndex(N,V),this.addNormal(P,B,D)}else this.addFaceNormal(P,B,D);if(C!==void 0&&C!==""){var G=this.uvs.length;P=this.parseUVIndex(C,G),B=this.parseUVIndex(R,G),D=this.parseUVIndex(L,G),this.addUV(P,B,D),this.object.geometry.hasUVIndices=!0}else this.addDefaultUV()},addPointGeometry:function(M){this.object.geometry.type="Points";for(var T,A=this.vertices.length,C=0,R=M.length;C<R;C++)T=this.parseVertexIndex(M[C],A),this.addVertexPoint(T),this.addColor(T)},addLineGeometry:function(M,T){this.object.geometry.type="Line";for(var A=this.vertices.length,C=this.uvs.length,R=0,L=M.length;R<L;R++)this.addVertexLine(this.parseVertexIndex(M[R],A));for(var I=0,O=T.length;I<O;I++)this.addUVLine(this.parseUVIndex(T[I],C))}};return E.startObject("",!1),E}class _ extends u.Loader{constructor(S){super(S),this.materials=null}load(S,M,T,A){var C=this,R=new u.FileLoader(this.manager);R.setPath(this.path),R.setRequestHeader(this.requestHeader),R.setWithCredentials(this.withCredentials),R.load(S,function(L){try{M(C.parse(L))}catch(I){A?A(I):console.error(I),C.manager.itemError(S)}},T,A)}setMaterials(S){return this.materials=S,this}parse(S){var M=new x;S.indexOf(`\r
|
|
3227
|
+
`,y=function(){return{diffuse:{value:void 0},depth:{value:1},slide:{value:new u.Vector3(0,0,1)},direction:{value:1},flipY:{value:!0}}};l.fs=d,l.vs=p,l.glslVersion=f,l.getUniforms=y},(o,l,c)=>{c(4);var u=c(5).resolveURL,f=function(d){c(10).ZincObject.call(this),this.isTexturePrimitive=!0,this.texture=d,this.load=(p,y)=>{if(p&&p.images&&p.images.source){var m=new(c(25)).TextureArray,h=[];p.images.source.forEach(v=>{h.push(u(v))});var b=this;m.loadFromImages(h).then(()=>{b.texture=m,b.initialise(p,y)})}},this.initialise=(p,y)=>{y!=null&&typeof y=="function"&&y(this)}};f.prototype=Object.create(c(10).ZincObject.prototype),f.prototype.constructor=f,l.TexturePrimitive=f},(o,l,c)=>{var u=c(4),f=c(31);l.Renderer=function(d){var p=d,y=void 0,m=void 0,h=new u.Clock(!1);this.playAnimation=!0;var b=1e3,v=[],g=0,x=[],_=0,E=void 0,S=void 0,M=void 0,T=void 0,A=[],C=[],R=new u.Group,L=void 0,I=void 0,O=!1;this.getDrawingWidth=()=>p?p.clientWidth:L?typeof L.clientWidth>"u"?Math.round(L.width):Math.round(L.clientWidth):0,this.getDrawingHeight=()=>p?p.clientHeight:L?typeof L.clientHeight>"u"?Math.round(L.height):Math.round(L.clientHeight):0,this.onWindowResize=()=>{m.onWindowResize();var P=this.getDrawingWidth(),B=this.getDrawingHeight();if(y!=null){var D;p?(D=p.getBoundingClientRect(),y.setSize(P,B)):L&&(typeof L.getBoundingClientRect>"u"||(D=L.getBoundingClientRect(),L.width=P,L.height=B),y.setSize(P,B,!1)),D&&(D.left,D.top);var V=new u.Vector2;y.getSize(V),V.x,V.y}},this.initialiseVisualisation=P=>{if(P=P||{},P.antialias===void 0){var B=!1;try{/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)&&(B=!0)}catch{B=!1}P.antialias=!B}P.canvas&&(p=void 0,L=P.canvas),y=new u.WebGLRenderer(P),p!==void 0&&p.appendChild(y.domElement),y.setClearColor(16777215,1),L&&L.style&&(L.style.height="100%",L.style.width="100%"),y.autoClear=!1;var D=this.createScene("default");this.setCurrentScene(D)},this.getCurrentScene=()=>m,this.setCurrentScene=P=>{if(P){this.removeActiveScene(P);var B=m;m=P,B&&B.setInteractiveControlEnable(!1),m.setInteractiveControlEnable(!0),m.setAdditionalScenesGroup(R),this.onWindowResize()}},this.getSceneByName=P=>A[P],this.createScene=P=>{if(A[P]==null){var B;return B=L?new(c(32)).Scene(L,y):new(c(32)).Scene(p,y),A[P]=B,B.sceneName=P,B}},this.resetView=()=>{m.resetView()},this.viewAll=()=>{if(m){var P=m.getBoundingBox();if(P){for(var B,D=0;D<C.length;D++)B=C[D].getBoundingBox(),B&&P.union(B);m.viewAllWithBoundingBox(P)}}},this.loadModelsURL=(P,B,D,V,G,H)=>{m.loadModelsURL(P,B,D,V,G,H)},this.loadViewURL=P=>{m.loadViewURL(P)},this.loadFromViewURL=(P,B)=>{m.loadFromViewURL(P,B)},this.updateDirectionalLight=()=>{m.updateDirectionalLight()};var N=()=>{O?(E=requestAnimationFrame(N),this.render()):(cancelAnimationFrame(E),E=void 0)};this.stopAnimate=()=>{O&&(h.stop(),O=!1)},this.animate=()=>{O||(h.start(),O=!0,N())},this.addPreRenderCallbackFunction=P=>(++g,v[g]=P,g),this.removePreRenderCallbackFunction=P=>{P in v&&delete v[P]},this.addPostRenderCallbackFunction=P=>(++_,x[_]=P,_),this.removePostRenderCallbackFunction=P=>{P in x&&delete x[P]},this.getPlayRate=()=>b,this.setPlayRate=P=>{b=P},this.getCurrentTime=()=>m.getCurrentTime(),this.setMorphsTime=P=>{m.setMorphsTime(P)},this.getZincGeometryByID=P=>m.getZincGeometryByID(P),this.addToScene=P=>{m.addObject(P)},this.addToOrthoScene=P=>{if(M==null&&(M=new u.Scene),S==null){var B=this.getDrawingWidth(),D=this.getDrawingHeight();S=new u.OrthographicCamera(-B/2,B/2,D/2,-D/2,1,10),S.position.z=10}M.add(P)};var w=P=>B=>{B.needsUpdate=!0;var D=new u.SpriteMaterial({map:B}),V=D.map.image.width,G=D.map.image.height;P.material=D,P.scale.set(V,G,1);var H=this.getDrawingWidth(),K=this.getDrawingHeight();P.position.set((H-V)/2,(-K+G)/2,1),this.addToOrthoScene(P)};this.addLogo=()=>{T=new u.Sprite,u.ImageUtils.loadTexture("images/abi_big_logo_transparent_small.png",void 0,w(T))},this.render=()=>{I||(p?0<p.clientWidth&&0<p.clientHeight&&(I=new f(p,this.onWindowResize)):L&&0<L.width&&0<L.height&&(I=new f(L,this.onWindowResize)));var P=h.getDelta();m.renderGeometries(b,P,this.playAnimation);for(var B,D=0;D<C.length;D++)B=C[D],B.renderGeometries(b,P,this.playAnimation);for(var V in S!=null&&M!=null&&(y.clearDepth(),y.render(M,S)),v)v.hasOwnProperty(V)&&v[V].call();for(var G in m.render(y),x)x.hasOwnProperty(G)&&x[G].call()},this.getThreeJSRenderer=()=>y,this.isSceneActive=P=>{if(m===P)return!0;for(var B,D=0;D<C.length;D++)if(B=C[D],B===P)return!0;return!1},this.addActiveScene=P=>{this.isSceneActive(P)||(C.push(P),R.add(P.getThreeJSScene()))},this.removeActiveScene=P=>{for(var B,D=0;D<C.length;D++)if(B=C[D],B===P)return C.splice(D,1),void R.remove(P.getThreeJSScene())},this.clearAllActiveScene=()=>{for(var P=0;P<C.length;P++)R.remove(C[P].getThreeJSScene());C.splice(0,C.length)},this.dispose=()=>{for(var P in O&&cancelAnimationFrame(E),A)A.hasOwnProperty(P)&&A[P].clearAll();A=[],C=[],R=new u.Group,this.stopAnimate(),v=[],g=0,S=void 0,M=void 0,T=void 0;var B=this.createScene("default");this.setCurrentScene(B),I=void 0},this.transitionScene=(P,B)=>{if(m){var D=m.getZincCameraControls(),V=P.getBoundingBox();if(V){var G=V.min.distanceTo(V.max)/2,H=(V.min.x+V.max.x)/2,K=(V.min.y+V.max.y)/2,te=(V.min.z+V.max.z)/2,W=D.getViewportFromCentreAndRadius(H,K,te,G,40,G*4),z=D.getCurrentViewport();D.cameraTransition(z,W,B),D.enableCameraTransition()}}},this.isWebGL2=()=>!!y&&y.capabilities.isWebGL2}},o=>{o.exports=pF()},(o,l,c)=>{var u=c(4),f=c(33).MarkerCluster,d=c(35).SceneLoader,p=c(41).SceneExporter,y=c(43).Viewport,m=c(5).createBufferGeometry,h=c(5).getCircularTexture,b=0,v=function(){return"sc"+b++},g=function(){return{Duration:"6 secs",OriginalDuration:"-",TimeStamps:{}}},x=6e3;l.Scene=function(_,E){var S=this,M=_,T=void 0,A=new d(this),C=void 0,R={},L=0,I={},O=0,N=new u.Scene,w=new(c(44)).Region(void 0,this);N.add(w.getGroup());var P=new u.Group;N.add(P),this.directionalLight=void 0,this.ambient=void 0,this.camera=void 0;var B=6e3,D=void 0;this.sceneName=void 0;var V=!1,G=void 0;this.autoClearFlag=!0,this.displayMarkers=!1,this.displayMinimap=!1,this.minimapScissor={x_offset:16,y_offset:16,width:128,height:128,align:"top-left",updateRequired:!0};var H={x:0,y:0},K=g(),te=new u.Vector2,W=[];this.forcePickableObjectsUpdate=!1,this.uuid=v();var z=new f(this);z.disable(),N.add(z.group);var j=()=>M?typeof M.clientWidth>"u"?M.width:M.clientWidth:0,Z=()=>M?typeof M.clientHeight>"u"?M.height:M.clientHeight:0;this.getDownloadProgress=()=>A.getDownloadProgress(),this.onWindowResize=()=>{var F=Z();this.camera.aspect=j()/F,this.camera.updateProjectionMatrix(),this.minimapScissor.updateRequired=!0,D.onResize(),D.calculateHeightPerPixelAtZeroDepth(F)},this.resetView=()=>{this.onWindowResize(),D.resetView()},this.changeZoomByScrollRateUnit=F=>{D.changeZoomByScrollRateUnit(F)};var Q=()=>{this.camera=new u.PerspectiveCamera(40,j()/Z(),0,10),this.ambient=new u.AmbientLight(16777215,.2),N.add(this.ambient),this.directionalLight=new u.DirectionalLight(16777215,.8),N.add(this.directionalLight),D=new(c(43)).CameraControls(this.camera,E.domElement,E,this),D.setDirectionalLight(this.directionalLight),D.resetView(),C=new(c(49)).Minimap(this)};Q(),this.loadView=F=>{var $=new y;return $.setFromObject(F),D.setCurrentCameraSettings($),!0},this.setupMultipleViews=(F,$)=>{for(var[J,k]of Object.entries($)){var U=new y;U.setFromObject(k),D.addViewport(J,U)}D.setDefaultViewport(F)},this.getBoundingBox=()=>w.getBoundingBox(!0),this.viewAllWithBoundingBox=F=>{if(F){var $=D.getViewportFromBoundingBox(F,1);D.setCurrentCameraSettings($),D.calculateHeightPerPixelAtZeroDepth(Z()),z.markerUpdateRequired=!0}},this.viewAll=()=>{var F=this.getBoundingBox();this.viewAllWithBoundingBox(F),z.markerUpdateRequired=!0},this.forEachGeometry=F=>{w.forEachGeometry(F,!0)},this.forEachGlyphset=F=>{w.forEachGlyphset(F,!0)},this.forEachPointset=F=>{w.forEachPointset(F,!0)},this.forEachLine=F=>{w.forEachLine(F,!0)},this.findGeometriesWithGroupName=F=>w.findGeometriesWithGroupName(F,!0),this.findPointsetsWithGroupName=F=>w.findPointsetsWithGroupName(F,!0),this.findGlyphsetsWithGroupName=F=>w.findGlyphsetsWithGroupName(F,!0),this.findLinesWithGroupName=F=>w.findLinesWithGroupName(F,!0),this.findObjectsWithGroupName=F=>w.findObjectsWithGroupName(F,!0),this.findObjectsWithAnatomicalId=F=>w.findObjectsWithAnatomicalId(F,!0),this.getBoundingBoxOfZincObjects=F=>{for(var $,J=void 0,k=0;k<F.length;k++)$=F[k].getBoundingBox(),$&&(J?J.union($):J=$);return J},this.vectorToScreenXY=F=>{F.project(this.camera);var $=j(),J=Z(),k=$/2,U=J/2;return F.x=F.x*k+k,F.y=-(F.y*U)+U,F},this.getObjectsScreenXY=F=>{if(F&&0<F.length){var $=this.getBoundingBoxOfZincObjects(F),J=new u.Vector3;return $.getCenter(J),this.vectorToScreenXY(J)}},this.getNamedObjectsScreenXY=F=>{var $=this.findObjectsWithGroupName(F);return this.getObjectsScreenXY($)},this.addZincObject=F=>{F&&(w.addZincObject(F),D&&D.calculateMaxAllowedDistance(this))},this.loadGlyphsetURL=(F,$,J,k)=>{A.loadGlyphsetURL(w,F,$,J,k)},this.loadPointsetURL=(F,$,J,k,U)=>{A.loadPointsetURL(w,F,$,J,k,U)},this.loadLinesURL=(F,$,J,k,U)=>{A.loadLinesURL(w,F,$,J,k,U)},this.loadSTL=(F,$,J)=>{A.loadSTL(w,F,$,J)},this.loadOBJ=(F,$,J)=>{A.loadOBJ(w,F,$,J)},this.loadMetadataURL=(F,$,J)=>{A.loadMetadataURL(w,F,$,J)},this.loadModelsURL=(F,$,J,k,U,oe)=>{A.loadModelsURL(w.urls,$,J,k,U,oe)},this.loadViewURL=F=>{A.loadViewURL(F)},this.loadFromViewURL=(F,$)=>{A.loadFromViewURL(F,$)},this.loadGLTF=(F,$,J,k)=>{A.loadGLTF(w,F,$,J,k)},this.updateDirectionalLight=()=>{D.updateDirectionalLight()},this.addObject=F=>{N.add(F)},this.removeObject=F=>{N.remove(F)},this.getCurrentTime=()=>{if(T!=null)return T.getCurrentTime(B);var F=w.getCurrentTime();return F===-1?0:F},this.setMorphsTime=F=>{T!=null&&T.setMorphTime(F,B),w.setMorphTime(F,!0)},this.isTimeVarying=()=>!!(T&&T.video&&!T.video.error)||w.isTimeVarying(),this.renderGeometries=(F,$,J)=>{var k={};if(k.camera=D,k.displayMarkers=this.displayMarkers,k.markerCluster=z,k.markersList=z.markers,k.ndcToBeUpdated=!1,J&&(k.markerCluster.markerUpdateRequired=!0),!T)A.toBeDownloaded==0?(k.ndcToBeUpdated=D.update($),k.ndcToBeUpdated&&D.calculateHeightPerPixelAtZeroDepth(Z()),w.renderGeometries(F,$,J,D,k,!0)):D.update(0);else if(T.isReadyToPlay()){J?T.video.play():T.video.pause();var U=T.video.currentTime/T.getVideoDuration()*B;A.toBeDownloaded==0?(D.setTime(U),k.ndcToBeUpdated=D.update(0),k.ndcToBeUpdated&&D.calculateHeightPerPixelAtZeroDepth(Z()),w.setMorphTime(U,!0),w.renderGeometries(0,0,J,D,k,!0)):D.update(0)}else myPlayRate=0},this.getThreeJSScene=()=>N,this.setVideoHandler=F=>{T||(T=F)},this.setAdditionalScenesGroup=F=>{N.add(F)};var ee=(F,$,J,k,U,oe,le)=>{var ae=0,he=0;return he=F.includes("top")?le-U-J:F.includes("bottom")?J:Math.floor((le-U)/2),ae=F.includes("left")?$:F.includes("right")?oe-$-k:Math.floor((oe-k)/2),{x:ae,y:he}},ie=F=>{this.displayMinimap===!0&&(F.setScissorTest(!0),F.getSize(te),this.minimapScissor.updateRequired&&(H=ee(this.minimapScissor.align,this.minimapScissor.x_offset,this.minimapScissor.y_offset,this.minimapScissor.width,this.minimapScissor.height,te.x,te.y),this.minimapScissor.updateRequired=!1),F.setScissor(H.x,H.y,this.minimapScissor.width,this.minimapScissor.height),F.setViewport(H.x,H.y,this.minimapScissor.width,this.minimapScissor.height),C.updateCamera(),N.add(C.mask),F.render(N,C.camera),N.remove(C.mask),F.setScissorTest(!1),F.setViewport(0,0,te.x,te.y))};this.render=F=>{this.autoClearFlag&&F.clear(),V&&G?G.render(N,this.camera):(F.render(N,this.camera),ie(F))},this.setInteractiveControlEnable=F=>{F==!0?D.enable():D.disable()},this.getZincCameraControls=()=>D,this.getThreeJSScene=()=>N,this.setDuration=F=>{w.setDuration(F),B=F,D.setPathDuration(F),A.duration=F},this.getDuration=()=>B,this.setStereoEffectEnable=F=>{F!=!0||G||(G=new c(43).StereoEffect(E)),E.setSize(j(),Z()),this.camera.updateProjectionMatrix(),V=F},this.objectIsInScene=F=>w.objectIsInRegion(F,!0),this.alignBoundingBoxToCameraView=(F,$)=>{if(F){var J=new u.Vector3;F.getCenter(J);var k=this.getZincCameraControls().getCurrentViewport(),U=new u.Vector3(k.targetPosition[0],k.targetPosition[1],k.targetPosition[2]),oe=new u.Vector3(k.eyePosition[0],k.eyePosition[1],k.eyePosition[2]),le=new u.Vector3,ae=new u.Vector3;le.subVectors(U,oe).normalize(),ae.subVectors(U,J).normalize();var he=new u.Vector3;he.crossVectors(le,ae);var ve=le.angleTo(ae);0<$?(this.getZincCameraControls().rotateCameraTransition(he,ve,$),this.getZincCameraControls().enableCameraTransition()):this.getZincCameraControls().rotateAboutLookAtpoint(he,ve),z.markerUpdateRequired=!0}},this.translateBoundingBoxToCameraView=(F,$,J)=>{if(F){var k=this.getZincCameraControls().getCurrentViewport(),U=this.getZincCameraControls().getViewportFromBoundingBox(F,$);0<J&&(this.getZincCameraControls().cameraTransition(k,U,J),this.getZincCameraControls().enableCameraTransition()),z.markerUpdateRequired=!0}},this.alignObjectToCameraView=(F,$)=>{if(this.objectIsInScene(F)){var J=F.getBoundingBox();this.alignBoundingBoxToCameraView(J,$)}},this.setCameraTargetToObject=F=>{if(this.objectIsInScene(F)){var $=new u.Vector3,J=F.getBoundingBox(),k=this.getZincCameraControls().getCurrentViewport();J.getCenter($);var U=new u.Vector3(k.targetPosition[0],k.targetPosition[1],k.targetPosition[2]),oe=new u.Vector3(k.eyePosition[0],k.eyePosition[1],k.eyePosition[2]),le=new u.Vector3,ae=new u.Vector3;le.subVectors(oe,U),ae.addVectors($,le),k.eyePosition[0]=ae.x,k.eyePosition[1]=ae.y,k.eyePosition[2]=ae.z,k.targetPosition[0]=$.x,k.targetPosition[1]=$.y,k.targetPosition[2]=$.z,this.getZincCameraControls().setCurrentCameraSettings(k),z.markerUpdateRequired=!0}},this.isStereoEffectEnable=()=>V,this.removeZincObject=F=>{w.removeZincObject(F),D&&D.calculateMaxAllowedDistance(this),z.markerUpdateRequired=!0},this.updatePickableThreeJSObjects=()=>{W.length=0,z.isEnabled&&W.push(z.group),w.getPickableThreeJSObjects(W,!0),this.forcePickableObjectsUpdate=!1},this.getPickableThreeJSObjects=()=>((this.forcePickableObjectsUpdate||w.checkPickableUpdateRequred(!0))&&this.updatePickableThreeJSObjects(),W),this.getNormalisedMinimapCoordinates=(F,$)=>{if(this.displayMinimap){var J=new u.Vector2;F.getSize(J);var k=J.y-$.clientY;if(H.x+this.minimapScissor.width>$.clientX&&$.clientX>H.x&&H.y+this.minimapScissor.height>k&&k>H.y){var U=2*(($.clientX-H.x)/this.minimapScissor.width)-1,oe=2*((k-H.y)/this.minimapScissor.height)-1;return{x:U,y:oe}}}},this.getMinimapDiffFromNormalised=(F,$)=>C?C.getDiffFromNormalised(F,$):void 0,this.isWebGL2=()=>E.isWebGL2(),this.clearAll=()=>{z.clear(),w.clear(!0),this.clearZincObjectAddedCallbacks(),this.clearZincObjectRemovedCallbacks(),A.toBeDwonloaded=0,D&&D.calculateMaxAllowedDistance(this),z.markerUpdateRequired=!0},this.addMetadataTimeStamp=(F,$)=>{K.TimeStamps[F]=ne($)},this.getMetadataTag=F=>K[F],this.getMetadata=()=>K,this.setMetadataTag=(F,$)=>{K[F]=$},this.removeMetadataTag=F=>{delete K[F]},this.resetMetadata=()=>{K=g()},this.resetDuration=()=>{this.setDuration(x)};var q=F=>[...F.years?["".concat(F.years,"years")]:[],...F.months?["".concat(F.months,"months")]:[],...F.weeks?["".concat(F.weeks,"weeks")]:[],...F.days?["".concat(F.days,"days")]:[],...F.hours?["".concat(F.hours,"hours")]:[],...F.mins?["".concat(F.mins,"mins")]:[],...F.secs?["".concat(F.secs,"secs")]:[]].join(" "),ne=F=>F.years?31536e6*F.years:0+F.months?2592e6*F.months:0+F.weeks?6048e5*F.weeks:0+F.days?864e5*F.days:0+F.hours?36e5*F.hours:0+F.mins?6e4*F.mins:0+F.secs?1e3*F.secs:0;this.setDurationFromObject=F=>{var $=q(F),J=ne(F);this.setMetadataTag("Duration",$),this.setDuration(J)},this.setOriginalDurationFromObject=F=>{var $=q(F);this.setMetadataTag("OriginalDuration",$)},this.exportGLTF=F=>{var $=new p(this);return $.exportGLTF(F)},this.getRootRegion=()=>w,this.createLines=(F,$,J,k)=>{var U=w.findChildFromPath(F);return U===void 0&&(U=w.createChildFromPath(F)),U.createLines($,J,k)},this.createPoints=(F,$,J,k,U)=>{var oe=w.findChildFromPath(F);return oe===void 0&&(oe=w.createChildFromPath(F)),oe.createPoints($,J,k,U)},this.addZincObjectAddedCallbacks=F=>(++L,R[L]=F,L),this.addZincObjectRemovedCallbacks=F=>(++O,I[O]=F,O),this.removeZincObjectAddedCallbacks=F=>{F in L&&delete R[F]},this.removeZincObjectRemovedCallbacks=F=>{F in O&&delete I[F]},this.clearZincObjectAddedCallbacks=()=>{R={},L=0},this.clearZincObjectRemovedCallbacks=()=>{I={},O=0},this.triggerObjectAddedCallback=F=>{for(var $ in R)R.hasOwnProperty($)&&R[$](F)},this.triggerObjectRemovedCallback=F=>{for(var $ in I)I.hasOwnProperty($)&&I[$](F)},this.addTemporaryPoints=(F,$)=>{var J=m(F.length,F),k=new u.PointsMaterial({alphaTest:.5,size:15,color:$,sizeAttenuation:!1}),U=h();k.map=U;var oe=new(c(23)).Points(J,k);return P.add(oe),oe},this.addTemporaryLines=(F,$)=>{var J=m(F.length,F),k=new u.LineBasicMaterial({color:$}),U=new(c(12)).LineSegments(J,k);return P.add(U),U},this.removeTemporaryPrimitive=F=>{P.remove(F),F.geometry.dispose(),F.material.dispose()},this.clearTemporaryPrimitives=()=>{var F=0,$=P.children;return $.forEach(J=>{J.geometry.dispose(),J.material.dispose(),F++}),P.clear(),F},this.addBoundingBoxPrimitive=function(F,$,J,k,U){var oe=5<arguments.length&&arguments[5]!==void 0?arguments[5]:void 0,le=w.findChildFromPath(F);le===void 0&&(le=w.createChildFromPath(F));var ae=oe||S.getBoundingBox(),he=new u.Vector3().subVectors(ae.max,ae.min),ve=new u.BoxGeometry(he.x,he.y,he.z),we=le.createGeometryFromThreeJSGeometry($,ve,J,k,U,1e4);return he.addVectors(ae.min,ae.max).multiplyScalar(.5),we.setPosition(he.x,he.y,he.z),we},this.addSlicesPrimitive=function(F,$,J,k,U){var oe=5<arguments.length&&arguments[5]!==void 0?arguments[5]:void 0;if($&&3<=$.length&&J&&3<=J.length){var le=w.findChildFromPath(F);le===void 0&&(le=w.createChildFromPath(F));var ae=oe||S.getBoundingBox(),he=new u.Vector3().subVectors(ae.max,ae.min),ve=[],we=0;return["x","y","z"].forEach(ce=>{var ge;switch(ce){case"x":ge=new u.PlaneGeometry(he.z,he.y),ge.rotateY(Math.PI/2);break;case"y":ge=new u.PlaneGeometry(he.x,he.z),ge.rotateX(Math.PI/2);break;case"z":ge=new u.PlaneGeometry(he.x,he.y);break}var re=le.createGeometryFromThreeJSGeometry($[we],ge,J[we],k,U,10001);ve.push(re),we++}),he.addVectors(ae.min,ae.max).multiplyScalar(.5),ve.forEach(ce=>{ce.setPosition(he.x,he.y,he.z)}),ve}},this.enableMarkerCluster=F=>{F?(z.markerUpdateRequired=!0,z.enable()):(z.markerUpdateRequired=!1,z.disable()),this.forcePickableObjectsUpdate=!0}}},(o,l,c)=>{function u(E,S){var M=Object.keys(E);if(Object.getOwnPropertySymbols){var T=Object.getOwnPropertySymbols(E);S&&(T=T.filter(function(A){return Object.getOwnPropertyDescriptor(E,A).enumerable})),M.push.apply(M,T)}return M}function f(E){for(var S,M=1;M<arguments.length;M++)S=arguments[M]==null?{}:arguments[M],M%2?u(Object(S),!0).forEach(function(T){d(E,T,S[T])}):Object.getOwnPropertyDescriptors?Object.defineProperties(E,Object.getOwnPropertyDescriptors(S)):u(Object(S)).forEach(function(T){Object.defineProperty(E,T,Object.getOwnPropertyDescriptor(S,T))});return E}function d(E,S,M){return S=p(S),S in E?Object.defineProperty(E,S,{value:M,enumerable:!0,configurable:!0,writable:!0}):E[S]=M,E}function p(E){var S=y(E,"string");return typeof S=="symbol"?S:S+""}function y(E,S){if(typeof E!="object"||!E)return E;var M=E[Symbol.toPrimitive];if(M!==void 0){var T=M.call(E,S||"default");if(typeof T!="object")return T;throw new TypeError("@@toPrimitive must return a primitive value.")}return(S==="string"?String:Number)(E)}var m=c(4),h=new Image(128,128);h.src=c(34);var b=new m.Texture;b.image=h,b.needsUpdate=!0;var v=[.02,.03,1],g=new m.SpriteMaterial({map:b,alphaTest:.5,transparent:!0,depthTest:!1,depthWrite:!1,sizeAttenuation:!1}),x=c(5).createNewSpriteText,_=function(E){c(10).ZincObject.call(this),this.texture=b;var S=void 0;this.morph=new m.Group,this.group=this.morph,this.isMarkerCluster=!0;var M=!0,T=[];this.markers={};var A=new m.Vector2,C=new m.Vector2,R=Date.now();this.setSpriteSize=w=>{S.scale.set(.015,.02,1),S.scale.multiplyScalar(w)},this.clear=()=>{this.group.clear(),this.markers={}},this.dispose=()=>{this.clear(),this.morph&&this.morph.clear()};var L=w=>{var P=new m.Group,B=new m.Sprite(g);return B.clusterIndex=w,B.center.set(.5,0),B.position.set(0,0,0),B.renderOrder=1e4,B.scale.set(v[0],v[1],v[2]),B.userData=this,P.add(B),this.group.add(P),{group:P,marker:B,label:void 0,number:0,min:[0,0,0],max:[1,1,1]}},I=(w,P,B)=>{w.group.visible=!0,w.group.position.set(P.coords[0],P.coords[1],P.coords[2]),(w.label===void 0||B!==w.number)&&(w.label&&(w.group.remove(w.label),w.label.material.map.dispose(),w.label.material.dispose()),w.label=x(B,.012,"black","Asap",120,700),w.number=B,w.group.add(w.label)),w.min=P.min,w.max=P.max},O=w=>{var P=0;for(w.forEach(B=>{var D=B.members.length,V=0;D===1?B.members[0].setVisibility(!0):(B.members.forEach(G=>{V+=G.getNumber(),G.setVisibility(!1)}),!T[P]&&T.push(L(P)),I(T[P],B,V),P++)}),P;P<T.length;P++)T[P].group.visible=!1},N=(w,P)=>{var B=!0,D={members:[],coords:[0,0,0],min:[0,0,0],max:[1,1,1]},V=0;for(var G in w)B?(A.set(w[G].ndc.x,w[G].ndc.y),this._b1.setFromPoints([w[G].morph.position]),B=!1,D.members.push(w[G]),D.coords=[w[G].morph.position.x,w[G].morph.position.y,w[G].morph.position.z],P.push(D),delete w[G]):(C.set(w[G].ndc.x,w[G].ndc.y),V=A.distanceTo(C),.1>V&&(D.members.push(w[G]),this._b1.expandByPoint(w[G].morph.position),delete w[G]));D.min=[this._b1.min.x,this._b1.min.y,this._b1.min.z],D.max=[this._b1.max.x,this._b1.max.y,this._b1.max.z],B!=!0&&N(w,P)};this.calculate=()=>{if(M){var w=Date.now();if(500<w-R){var P=[];N(f({},this.markers),P),O(P),R=Date.now(),this.markerUpdateRequired=!1}}},this.isEnabled=()=>M,this.enable=()=>{M=!0,this.morph.visible=!0},this.disable=()=>{for(var w in M=!1,this.morph.visible=!1,this.markers){var P;(P=this.markers[w])!==null&&P!==void 0&&P.isMarker&&this.markers[w].isEnabled()&&this.markers[w].setVisibility(!0)}},this.zoomToCluster=w=>!!(w!==void 0&&-1<w&&(this._v1.set(...T[w].min),this._v2.set(...T[w].max),Math.abs(0<this._v1.distanceTo(this._v2))))&&(this._b1.set(this._v1,this._v2),E.translateBoundingBoxToCameraView(this._b1,3,300),this.markerUpdateRequired=!0,!0),this.clusterIsVisible=w=>{if(w!==void 0&&-1<w&&T[w]){var P;return(P=T[w].group)===null||P===void 0?void 0:P.visible}return!1}};_.prototype=Object.create(c(10).ZincObject.prototype),l.MarkerCluster=_},o=>{o.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIiA/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgd2lkdGg9IjM2NSIgaGVpZ2h0PSI1NjAiIHZpZXdCb3g9IjAgMCAzNjUgNTYwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGRlc2M+Q3JlYXRlZCB3aXRoIEZhYnJpYy5qcyA1LjIuNDwvZGVzYz4KPGRlZnM+CjwvZGVmcz4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idHJhbnNwYXJlbnQiPjwvcmVjdD4KPGcgdHJhbnNmb3JtPSJtYXRyaXgoMCAwIDAgMCAwIDApIiBpZD0iODA4ZWQyODMtMjUyNC00NDBmLTg4YWUtM2JkYjQ3YmI1NzQ5IiAgPgo8L2c+CjxnIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIDEgMTgyLjUgMjgwKSIgaWQ9ImRiMzA0MTNkLTViZmYtNGI5OC1hYjU5LTQ2NDQ5N2VlMTk5ZSIgID4KPHJlY3Qgc3R5bGU9InN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxOyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBmaWxsOiByZ2IoMjU1LDI1NSwyNTUpOyBmaWxsLXJ1bGU6IG5vbnplcm87IG9wYWNpdHk6IDE7IHZpc2liaWxpdHk6IGhpZGRlbjsiIHZlY3Rvci1lZmZlY3Q9Im5vbi1zY2FsaW5nLXN0cm9rZSIgIHg9Ii0xODIuNSIgeT0iLTI4MCIgcng9IjAiIHJ5PSIwIiB3aWR0aD0iMzY1IiBoZWlnaHQ9IjU2MCIgLz4KPC9nPgo8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwIDAgMCAwIDAgOTcuNSkiICA+CjxnIHN0eWxlPSIiICAgPgo8L2c+CjwvZz4KPGcgdHJhbnNmb3JtPSJtYXRyaXgoMCAwIDAgMCAwIDk3LjUpIiAgPgo8ZyBzdHlsZT0iIiAgID4KPC9nPgo8L2c+CjxnIHRyYW5zZm9ybT0ibWF0cml4KDAuOTkgMCAwIDAuOTkgMTgyLjUgMjgwKSIgID4KPGcgc3R5bGU9IiIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgID4KCQk8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDAgMCkiICA+CjxyZWN0IHN0eWxlPSJzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMTsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDI1NSwyNTUsMjU1KTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyB2aXNpYmlsaXR5OiBoaWRkZW47IiB2ZWN0b3ItZWZmZWN0PSJub24tc2NhbGluZy1zdHJva2UiICB4PSItNTQwIiB5PSItNTQwIiByeD0iMCIgcnk9IjAiIHdpZHRoPSIxMDgwIiBoZWlnaHQ9IjEwODAiIC8+CjwvZz4KCQk8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAxIDAgMCkiICA+CjxwYXRoIHN0eWxlPSJzdHJva2U6IHJnYigwLDAsMCk7IHN0cm9rZS13aWR0aDogMDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDI1NSwxNjUsMCk7IGZpbGwtcnVsZTogbm9uemVybzsgb3BhY2l0eTogMTsiIHZlY3Rvci1lZmZlY3Q9Im5vbi1zY2FsaW5nLXN0cm9rZSIgIHRyYW5zZm9ybT0iIHRyYW5zbGF0ZSgtMTgyLjksIC0yNzkuODUpIiBkPSJNIDE4Mi45IDU1MS43IEMgMTgyLjkgNTUxLjgwMDAwMDAwMDAwMDEgMTgzLjEgNTUyIDE4My4xIDU1MiBDIDE4My4xIDU1MiAzNTguMyAyODMgMzU4LjMgMTk0LjYgQyAzNTguMyA2NC41IDI2OS41IDcuOTAwMDAwMDAwMDAwMDA2IDE4Mi45IDcuNjk5OTk5OTk5OTk5OTg5IEMgOTYuMyA3LjkgNy41IDY0LjUgNy41IDE5NC42IEMgNy41IDI4MyAxODIuOCA1NTIgMTgyLjggNTUyIEMgMTgyLjggNTUyIDE4Mi45IDU1MS43IDE4Mi45IDU1MS43IHogTSAxMjIuMiAxODcuMiBDIDEyMi4yIDE1My42IDE0OS40IDEyNi4zOTk5OTk5OTk5OTk5OSAxODMgMTI2LjM5OTk5OTk5OTk5OTk5IEMgMjE2LjYgMTI2LjM5OTk5OTk5OTk5OTk5IDI0My44IDE1My42IDI0My44IDE4Ny4yIEMgMjQzLjggMjIwLjc5OTk5OTk5OTk5OTk4IDIxNi41IDI0OCAxODIuOSAyNDggQyAxNDkuNCAyNDggMTIyLjIgMjIwLjggMTIyLjIgMTg3LjIgeiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiAvPgo8L2c+CgkJPGcgdHJhbnNmb3JtPSJtYXRyaXgoMy44MiAwIDAgMy44MiAwIC0xMDAuNzcpIiAgPgo8Y2lyY2xlIHN0eWxlPSJzdHJva2U6IHJnYigwLDAsMCk7IHN0cm9rZS13aWR0aDogMDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgZmlsbDogcmdiKDI1NSwyNTUsMjU1KTsgZmlsbC1ydWxlOiBub256ZXJvOyBvcGFjaXR5OiAxOyIgdmVjdG9yLWVmZmVjdD0ibm9uLXNjYWxpbmctc3Ryb2tlIiAgY3g9IjAiIGN5PSIwIiByPSIzNSIgLz4KPC9nPgo8L2c+CjwvZz4KPC9zdmc+"},(o,l,c)=>{var u=c(4),f=c(5).resolveURL,d=c(5).createNewURL,p=c(36).STLLoader,y=c(37).OBJLoader,m=c(38).PrimitivesLoader;l.SceneLoader=function(h){var b=h;this.toBeDownloaded=0,this.progressMap={};var v=!1,g=!1,x=new m;this.getDownloadProgress=()=>{var W=0,z=0,j=!1;for(var Z in this.progressMap){var Q=this.progressMap[Z];W+=Q[1],z+=Q[0],Q[1]==0&&(j=!0)}return j&&(W=0),[W,z,g]},this.onProgress=W=>z=>{this.progressMap[W]=[z.loaded,z.total]},this.onError=W=>z=>{--this.toBeDownloaded,g=!0,console.error("There is an issue with one of the external resource: ".concat(z==null?void 0:z.responseURL,".")),W&&W()};var _=(W,z)=>{var j=z.Default;if(z.Inline)b.setupMultipleViews(j,z.Entries);else{var Z=[],Q=function(ne){W&&(newURL=d(ie,W),Z.push(new Promise((F,$)=>{fetch(newURL).then(J=>J.json()).then(J=>F({key:ne,data:J})).catch(J=>$(J))})))};for(var[ee,ie]of Object.entries(z.Entries))Q(ee);Promise.all(Z).then(q=>{var ne={};q.forEach($=>{ne[$.key]=$.data}),b.setupMultipleViews(j,ne);var F=b.getZincCameraControls();F&&F.setCurrentViewport(j),v=!0})}};this.loadViewURL=(W,z)=>{this.toBeDownloaded+=1;var j=new XMLHttpRequest;j.onreadystatechange=()=>{if(j.readyState==4)if(j.status==200){var Q=JSON.parse(j.responseText);b.setupMultipleViews("default",{default:Q}),b.resetView(),v=!0,--this.toBeDownloaded,z!=null&&typeof z=="function"&&z()}else this.onError()};var Z=f(W);j.open("GET",Z,!0),j.send()},this.loadModelsURL=(W,z,j,Z,Q,ee,ie)=>{var q=z.length;this.toBeDownloaded+=q;for(var ne=0;ne<q;ne++){var F=z[ne],$=c(0).defaultMaterialColor,J=c(0).defaultOpacity;j!=null&&j[ne]!=null&&($=!!j[ne]),Z!=null&&Z[ne]!=null&&(J=Z[ne]);var k=0;Q!=null&&Q[ne]!=null&&(k=!!Q[ne]);var U=0;ee!=null&&ee[ne]!=null&&(U=!!ee[ne]),x.load(f(F),O(W,$,J,k,U,void 0,void 0,void 0,void 0,ie),this.onProgress(F),this.onError(ie))}},this.loadFromViewURL=(W,z,j)=>{var Z=new XMLHttpRequest;Z.onreadystatechange=()=>{if(Z.readyState==4&&Z.status==200){var ee=JSON.parse(Z.responseText);b.loadView(ee);for(var ie,q=[],ne=z+"_",F=0;F<ee.numberOfResources;F++)ie=ne+(F+1)+".json",q.push(ie);this.loadModelsURL(W,q,ee.colour,ee.opacity,ee.timeEnabled,ee.morphColour,j)}};var Q=f(z+"_view.json");Z.open("GET",Q,!0),Z.send()};var E=(W,z,j,Z,Q,ee,ie,q)=>(ne,F)=>{var $=new(c(24)).Lines,J=void 0;F&&F[0]&&(J=new u.LineBasicMaterial({color:F[0].color.clone()}),1>F[0].opacity&&(J.transparent=!0),J.opacity=F[0].opacity,J.morphTargets=z,J.vertexColors=F[0].vertexColors);var k={localTimeEnabled:z,localMorphColour:j};if($&&($.createLineSegment(ne,J,k),$.setName(Z),$.anatomicalId=Q,$.setRenderOrder(ee),W.addZincObject($),$.setDuration(b.getDuration()),console.log(ie),ie&&ie.levels))for(var[U,oe]of Object.entries(ie.levels))$.addLOD(x,U,oe.URL,oe.Index,ie.preload);--this.toBeDownloaded,ne.dispose(),q!=null&&typeof q=="function"&&q($)};this.loadLinesURL=(W,z,j,Z,Q,ee,ie)=>{var q=0;this.toBeDownloaded+=1;var ne=!!(ie&&ie.isInline)&&ie.isInline,F=ie&&ie.anatomicalId?ie.anatomicalId:void 0,$=ie&&ie.renderOrder?ie.renderOrder:void 0;j!=null&&(q=!!j);var J=0;if(Z!=null&&(J=!!Z),ne){var k=x.parse(z);E(W,q,J,Q,F,$,ie.lod,ee)(k.geometry,k.materials)}else x.load(z,E(W,q,J,Q,F,$,ie.lod,ee),this.onProgress(z),this.onError(ee),ie.loaderOptions)};var S=(W,z,j,Z,Q,ee)=>{var ie=ee&&ee.isInline?ee.isInline:void 0,q=ee&&ee.anatomicalId?ee.anatomicalId:void 0,ne=ee&&ee.displayLabels?ee.displayLabels:void 0,F=ee&&ee.renderOrder?ee.renderOrder:void 0,$=new(c(18)).Glyphset;$.setDuration(b.getDuration()),$.groupName=Z;var J=()=>{--this.toBeDownloaded,Q!=null&&typeof Q=="function"&&Q($)};++this.toBeDownloaded,ie?$.load(z,j,J,ie,ne):$.load(z,f(j),J,ie,ne),$.anatomicalId=q,$.setRenderOrder(F),W.addZincObject($)},M=(W,z,j,Z,Q,ee)=>()=>{if(z.readyState==4&&z.status==200){var ie=JSON.parse(z.responseText);S(W,ie,j,Z,Q,ee)}},T=(W,z,j,Z,Q,ee,ie)=>(q,ne)=>{var F=new(c(22)).Pointset,$=new u.PointsMaterial({alphaTest:.5,size:10,sizeAttenuation:!1});ne&&ne[0]&&(1>ne[0].opacity&&($.transparent=!0),$.opacity=ne[0].opacity,$.color=ne[0].color,$.morphTargets=z,$.vertexColors=ne[0].vertexColors);var J={};J.localTimeEnabled=z,J.localMorphColour=j,F&&(F.createMesh(q,$,J),F.setName(Z),F.anatomicalId=Q,W.addZincObject(F),F.setDuration(b.getDuration()),F.setRenderOrder(ee)),q.dispose(),--this.toBeDownloaded,ie!=null&&typeof ie=="function"&&ie(F)};this.loadSTL=(W,z,j,Z)=>{this.toBeDownloaded+=1;var Q=c(0).defaultMaterialColor,ee=c(0).defaultOpacity,ie=new p;ie.crossOrigin="Anonymous",ie.load(f(z),O(W,Q,ee,!1,!1,j,void 0,void 0,void 0,Z))},this.loadOBJ=(W,z,j,Z)=>{this.toBeDownloaded+=1;var Q=c(0).defaultMaterialColor,ee=c(0).defaultOpacity,ie=new y;ie.crossOrigin="Anonymous",ie.load(f(z),O(W,Q,ee,!1,!1,j,void 0,void 0,void 0,Z))};var A=(W,z,j,Z,Q,ee,ie)=>{this.toBeDownloaded+=1;var q=c(0).defaultMaterialColor,ne=c(0).defaultOpacity,F=0,$=!!(ie&&ie.isInline)&&ie.isInline,J=ie&&ie.fileFormat?ie.fileFormat:void 0,k=ie&&ie.anatomicalId?ie.anatomicalId:void 0,U=ie&&ie.renderOrder?ie.renderOrder:void 0;j!=null&&(F=!!j);var oe=0;Z!=null&&(oe=!!Z);var le=x;if(J!==void 0){if(J=="STL")le=new p;else if(J=="OBJ")return le=new y,le.crossOrigin="Anonymous",void le.load(z,objloader(W,q,ne,F,oe,Q,k,ee),this.onProgress(z),this.onError,ie.loaderOptions)}if($){var ae=x.parse(z);O(W,q,ne,F,oe,Q,k,U,ie,ee)(ae.geometry,ae.materials)}else le.crossOrigin="Anonymous",x.load(z,O(W,q,ne,F,oe,Q,k,U,ie,ee),this.onProgress(z),this.onError(ee),ie.loaderOptions)},C=function(z,j,Z){var Q=0;return ee=>{if(++Q,ee&&j!=null&&typeof j=="function"){j(ee);var ie=b.getZincCameraControls();ie&&ie.calculateMaxAllowedDistance(b)}Q==z&&(v==!1&&b.viewAll(),Z!=null&&typeof Z=="function"&&Z())}};this.loadPointsetURL=(W,z,j,Z,Q,ee,ie)=>{var q=0;this.toBeDownloaded+=1,j!=null&&(q=!!j);var ne=0;Z!=null&&(ne=!!Z);var F=!!(ie&&ie.isInline)&&ie.isInline,$=ie&&ie.anatomicalId?ie.anatomicalId:void 0,J=ie&&ie.renderOrder?ie.renderOrder:void 0;if(F){var k=x.parse(z);T(W,q,ne,Q,$,J,ee)(k.geometry,k.materials)}else x.load(z,T(W,q,ne,Q,$,J,ee),this.onProgress(z),this.onError(ee),ie.loaderOptions)};var R=(W,z,j,Z,Q,ee)=>{var ie=ee&&ee.isInline?ee.isInline:void 0,q=ee&&ee.anatomicalId?ee.anatomicalId:void 0,ne=ee&&ee.renderOrder?ee.renderOrder:void 0,F=void 0;if(j){if(z&&j.images&&j.images.source)for(var $,J=j.images.source,k=0;k<J.length;k++)$=d(J[k],z),j.images.source[k]=$;if(j.type==="slides"&&(F=new(c(27)).TextureSlides),F){F.groupName=Z;var U=()=>{--this.toBeDownloaded,Q!=null&&typeof Q=="function"&&Q(F)};++this.toBeDownloaded,F.load(j,U,ie),F.anatomicalId=q,F.setRenderOrder(ne),W.addZincObject(F)}}},L=(W,z,j,Z,Q)=>()=>{if(z.readyState==4&&z.status==200){var ee=JSON.parse(z.responseText);R(W,z.responseURL,ee,j,Z,Q)}};this.loadTextureURL=(W,z,j,Z,Q)=>{var ee=!!(Q&&Q.isInline)&&Q.isInline;if(ee)R(W,void 0,z,j,Z,Q);else{var ie=new XMLHttpRequest;ie.onreadystatechange=L(W,ie,j,Z,Q),ie.open("GET",f(z),!0),ie.send()}},this.loadGlyphsetURL=(W,z,j,Z,Q,ee)=>{var ie=!!(ee&&ee.isInline)&&ee.isInline;if(ie)S(W,z,j,Z,Q,ee);else{var q=new XMLHttpRequest;q.onreadystatechange=M(W,q,j,Z,Q,ee),q.open("GET",f(z),!0),q.send()}};var I=(W,z,j,Z,Q,ee,ie,q,ne)=>{var F={colour:j,opacity:Z,localTimeEnabled:Q,localMorphColour:ee},$=new(c(3)).Geometry;return $.createMesh(z,q,F),$.getMorph()?($.setName(ne),W&&W.addZincObject($),$.setDuration(b.getDuration()),$.videoHandler&&b.setVideoHandler($.videoHandler),$):void 0},O=(W,z,j,Z,Q,ee,ie,q,ne,F)=>($,J)=>{var k;J&&J[0]&&(k=J[0]);var U=I(W,$,z,j,Z,Q,void 0,k,ee);if(U.anatomicalId=ie,U.setRenderOrder(q),ne.lod&&ne.lod.levels)for(var[oe,le]of Object.entries(ne.lod.levels))U.addLOD(x,oe,le.URL,le.Index,ne.lod.preload);--this.toBeDownloaded,$.dispose(),F!=null&&typeof F=="function"&&F(U)},N=W=>{var z=/P(?:(\d+)Y)?(?:(\d+)M)?(?:(\d+)W)?(?:(\d+)D)?(?:T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?)?$/,[,j,Z,Q,ee,ie,q,ne]=W.match(z);return{years:j,months:Z,weeks:Q,days:ee,hours:ie,mins:q,secs:ne}};this.loadSettings=W=>{if(W){if(W.Duration){var z=N(W.Duration);b.setDurationFromObject(z)}if(W.OriginalDuration){var j=N(W.OriginalDuration);b.setOriginalDurationFromObject(j)}if(W.TimeStamps)for(var Z in W.TimeStamps){var Q=N(W.TimeStamps[Z]);b.addMetadataTimeStamp(Z,Q)}}};var w=(W,z,j,Z,Q)=>{if(j){var ee=void 0,ie=!1;j.URL?(ee=j.URL,z&&(ee=d(ee,z))):j.Inline&&(ee=j.Inline.URL,ie=!0);var q={};if(j.LOD&&j.LOD.Levels){q.preload=!!j.LOD.Preload,q.levels={};for(var[ne,F]of Object.entries(j.LOD.Levels))q.levels[ne]={},q.levels[ne].URL=d(F.URL,z),q.levels[ne].Index=F.Index}var $=j.GroupName;($===void 0||$==="")&&($="_Unnamed");var J={loaderOptions:{index:j.Index},isInline:ie,fileFormat:j.FileFormat,anatomicalId:j.AnatomicalId,compression:j.compression,lod:q,renderOrder:Z};switch(j.Type){case"Surfaces":A(W,ee,j.MorphVertices,j.MorphColours,$,Q,J);break;case"Glyph":var k;ie?k=j.Inline.GlyphGeometriesURL:(k=j.GlyphGeometriesURL,k=d(j.GlyphGeometriesURL,z)),j.DisplayLabels&&(J.displayLabels=!0),this.loadGlyphsetURL(W,ee,k,$,Q,J);break;case"Points":this.loadPointsetURL(W,ee,j.MorphVertices,j.MorphColours,$,Q,J);break;case"Lines":this.loadLinesURL(W,ee,j.MorphVertices,j.MorphColours,$,Q,J);break;case"Texture":this.loadTextureURL(W,ee,$,Q,J);break}}},P=(W,z,j)=>{if(z){var Z=void 0,Q=!1;switch(z.URL?(Z=z.URL,W&&(Z=d(z.URL,W))):z.Inline&&(Z=z.Inline.URL,Q=!0),z.Type){case"View":Q?(b.setupMultipleViews("default",{default:Z}),v=!0,j!=null&&typeof j=="function"&&j()):this.loadViewURL(Z,j);break;case"Settings":this.loadSettings(z);break}}};this.loadGLTF=(W,z,j,Z,Q)=>{var ee=new(c(39)).GLTFToZincJSLoader;ee.load(b,W,z,j,Z,Q)};var B=(W,z,j,Z)=>{if(j.Primitives&&j.Primitives.forEach(q=>{var ne=1;q.Order&&(ne=q.Order),w(W,z,q,ne,Z)}),j.Transformation&&W.setTransformation(j.Transformation),j.Children)for(var[Q,ee]of Object.entries(j.Children)){var ie=W.findOrCreateChildFromPath(Q);ie&&B(ie,z,ee,Z)}},D=(W,z)=>{if(Array.isArray(W)){for(var j=0,Z=0;Z<W.length;Z++)W[Z].Type&&(z&&W[Z].Type==="View"||W[Z].Type==="Surfaces"||W[Z].Type==="Glyph"||W[Z].Type==="Points"||W[Z].Type==="Lines"||W[Z].Type==="Texture")&&j++;return j}return 0},V=W=>{var z=W.Primitives?D(W.Primitives,!1):0;return W.Children&&Object.values(W.Children).forEach(j=>{z+=V(j)}),z},G=W=>Array.isArray(W)?D(W,!0):typeof W=="object"&&W!==null&&W.Version==="2.0"?V(W.Regions):void 0,H=(W,z,j,Z,Q)=>{var ee=W;j.RegionPath&&j.RegionPath!==""&&(ee=W.findOrCreateChildFromPath(j.RegionPath)),w(ee,z,j,2*Z,Q)},K=(W,z,j,Z,Q)=>{for(var ee=G(z),ie=new C(ee,Z,Q),q=0;q<z.length;q++)P(j,z[q],ie);for(var ne=0;ne<z.length;ne++)H(W,j,z[ne],ne,ie)},te=(W,z,j,Z,Q)=>{var ee=G(z),ie=new C(ee,Z,Q);z.Settings&&this.loadSettings(z.Settings),z.Views&&_(j,z.Views),z.Regions&&B(W,j,z.Regions,ie)};this.loadMetadataURL=(W,z,j,Z)=>{var Q=new XMLHttpRequest,ee=f(z);Q.onreadystatechange=()=>{if(Q.readyState==4&&Q.status==200){b.resetMetadata(),b.resetDuration(),v=!1;var ie=Q.responseURL;ie===void 0&&(ie=new URL(ee).href);var q=JSON.parse(Q.responseText);Array.isArray(q)?K(W,q,ie,j,Z):typeof q=="object"&&q!==null&&q.Version=="2.0"&&te(W,q,ie,j,Z)}},Q.open("GET",ee,!0),Q.send()}}},(o,l,c)=>{c.r(l),c.d(l,{STLLoader:()=>f});var u=c(4);class f extends u.Loader{constructor(p){super(p)}load(p,y,m,h){var b=this,v=new u.FileLoader(this.manager);v.setPath(this.path),v.setResponseType("arraybuffer"),v.setRequestHeader(this.requestHeader),v.setWithCredentials(this.withCredentials),v.load(p,function(g){try{y(b.parse(g))}catch(x){h?h(x):console.error(x),b.manager.itemError(p)}},m,h)}parse(p){function y(h,b,v){for(var g=0,x=h.length;g<x;g++)if(h[g]!==b.getUint8(v+g,!1))return!1;return!0}var m=function(h){if(typeof h=="string"){for(var b=new Uint8Array(h.length),v=0;v<h.length;v++)b[v]=255&h.charCodeAt(v);return b.buffer||b}return h}(p);return function(h){var b=new DataView(h),v=b.getUint32(80,!0);if(84+v*50===b.byteLength)return!0;for(var g=[115,111,108,105,100],x=0;5>x;x++)if(y(g,b,x))return!1;return!0}(m)?function(h){for(var b,v,g,x,_,E,S,M,T=new DataView(h),A=T.getUint32(80,!0),C=!1,R=0;R<70;R++)T.getUint32(R,!1)==1129270351&&T.getUint8(R+4)==82&&T.getUint8(R+5)==61&&(C=!0,x=new Float32Array(3*(3*A)),_=T.getUint8(R+6)/255,E=T.getUint8(R+7)/255,S=T.getUint8(R+8)/255,M=T.getUint8(R+9)/255);for(var L=new u.BufferGeometry,I=new Float32Array(3*(3*A)),O=new Float32Array(3*(3*A)),N=0;N<A;N++){var w=84+N*50,P=T.getFloat32(w,!0),B=T.getFloat32(w+4,!0),D=T.getFloat32(w+8,!0);if(C){var V=T.getUint16(w+48,!0);32768&V?(b=_,v=E,g=S):(b=(31&V)/31,v=(31&V>>5)/31,g=(31&V>>10)/31)}for(var G=1;3>=G;G++){var H=w+12*G,K=3*(3*N)+3*(G-1);I[K]=T.getFloat32(H,!0),I[K+1]=T.getFloat32(H+4,!0),I[K+2]=T.getFloat32(H+8,!0),O[K]=P,O[K+1]=B,O[K+2]=D,C&&(x[K]=b,x[K+1]=v,x[K+2]=g)}}return L.setAttribute("position",new u.BufferAttribute(I,3)),L.setAttribute("normal",new u.BufferAttribute(O,3)),C&&(L.setAttribute("color",new u.BufferAttribute(x,3)),L.hasColors=!0,L.alpha=M),L}(m):function(h){for(var b,v=new u.BufferGeometry,g=/solid([\s\S]*?)endsolid/g,x=/facet([\s\S]*?)endfacet/g,_=0,E=/[\s]+([+-]?(?:\d*)(?:\.\d*)?(?:[eE][+-]?\d+)?)/.source,S=new RegExp("vertex"+E+E+E,"g"),M=new RegExp("normal"+E+E+E,"g"),T=[],A=[],C=new u.Vector3,R=0,L=0,I=0;(b=g.exec(h))!==null;){L=I;for(var O=b[0];(b=x.exec(O))!==null;){for(var N=0,w=0,P=b[0];(b=M.exec(P))!==null;)C.x=parseFloat(b[1]),C.y=parseFloat(b[2]),C.z=parseFloat(b[3]),w++;for(;(b=S.exec(P))!==null;)T.push(parseFloat(b[1]),parseFloat(b[2]),parseFloat(b[3])),A.push(C.x,C.y,C.z),N++,I++;w!==1&&console.error("THREE.STLLoader: Something isn't right with the normal of face number "+_),N!==3&&console.error("THREE.STLLoader: Something isn't right with the vertices of face number "+_),_++}var B=L,D=I-L;v.addGroup(B,D,R),R++}return v.setAttribute("position",new u.Float32BufferAttribute(T,3)),v.setAttribute("normal",new u.Float32BufferAttribute(A,3)),v}(function(h){return typeof h=="string"?h:u.LoaderUtils.decodeText(new Uint8Array(h))}(p))}}},(o,l,c)=>{c.r(l),c.d(l,{OBJLoader:()=>_});var u=c(4),f=/^[og]\s*(.+)?/,d=/^mtllib /,p=/^usemtl /,y=/^usemap /,m=new u.Vector3,h=new u.Vector3,b=new u.Vector3,v=new u.Vector3,g=new u.Vector3;function x(){var E={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(M,T){if(this.object&&this.object.fromDeclaration===!1)return this.object.name=M,void(this.object.fromDeclaration=T!==!1);var A=this.object&&typeof this.object.currentMaterial=="function"?this.object.currentMaterial():void 0;if(this.object&&typeof this.object._finalize=="function"&&this.object._finalize(!0),this.object={name:M||"",fromDeclaration:T!==!1,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:!1},materials:[],smooth:!0,startMaterial:function(L,I){var O=this._finalize(!1);O&&(O.inherited||0>=O.groupCount)&&this.materials.splice(O.index,1);var N={index:this.materials.length,name:L||"",mtllib:Array.isArray(I)&&0<I.length?I[I.length-1]:"",smooth:O===void 0?this.smooth:O.smooth,groupStart:O===void 0?0:O.groupEnd,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(P){var B={index:typeof P=="number"?P:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return B.clone=this.clone.bind(B),B}};return this.materials.push(N),N},currentMaterial:function(){return 0<this.materials.length?this.materials[this.materials.length-1]:void 0},_finalize:function(L){var I=this.currentMaterial();if(I&&I.groupEnd===-1&&(I.groupEnd=this.geometry.vertices.length/3,I.groupCount=I.groupEnd-I.groupStart,I.inherited=!1),L&&1<this.materials.length)for(var O=this.materials.length-1;0<=O;O--)0>=this.materials[O].groupCount&&this.materials.splice(O,1);return L&&this.materials.length===0&&this.materials.push({name:"",smooth:this.smooth}),I}},A&&A.name&&typeof A.clone=="function"){var C=A.clone(0);C.inherited=!0,this.object.materials.push(C)}this.objects.push(this.object)},finalize:function(){this.object&&typeof this.object._finalize=="function"&&this.object._finalize(!0)},parseVertexIndex:function(M,T){var A=parseInt(M,10);return 3*(0<=A?A-1:A+T/3)},parseNormalIndex:function(M,T){var A=parseInt(M,10);return 3*(0<=A?A-1:A+T/3)},parseUVIndex:function(M,T){var A=parseInt(M,10);return 2*(0<=A?A-1:A+T/2)},addVertex:function(M,T,A){var C=this.vertices,R=this.object.geometry.vertices;R.push(C[M+0],C[M+1],C[M+2]),R.push(C[T+0],C[T+1],C[T+2]),R.push(C[A+0],C[A+1],C[A+2])},addVertexPoint:function(M){var T=this.vertices,A=this.object.geometry.vertices;A.push(T[M+0],T[M+1],T[M+2])},addVertexLine:function(M){var T=this.vertices,A=this.object.geometry.vertices;A.push(T[M+0],T[M+1],T[M+2])},addNormal:function(M,T,A){var C=this.normals,R=this.object.geometry.normals;R.push(C[M+0],C[M+1],C[M+2]),R.push(C[T+0],C[T+1],C[T+2]),R.push(C[A+0],C[A+1],C[A+2])},addFaceNormal:function(M,T,A){var C=this.vertices,R=this.object.geometry.normals;m.fromArray(C,M),h.fromArray(C,T),b.fromArray(C,A),g.subVectors(b,h),v.subVectors(m,h),g.cross(v),g.normalize(),R.push(g.x,g.y,g.z),R.push(g.x,g.y,g.z),R.push(g.x,g.y,g.z)},addColor:function(M,T,A){var C=this.colors,R=this.object.geometry.colors;C[M]!==void 0&&R.push(C[M+0],C[M+1],C[M+2]),C[T]!==void 0&&R.push(C[T+0],C[T+1],C[T+2]),C[A]!==void 0&&R.push(C[A+0],C[A+1],C[A+2])},addUV:function(M,T,A){var C=this.uvs,R=this.object.geometry.uvs;R.push(C[M+0],C[M+1]),R.push(C[T+0],C[T+1]),R.push(C[A+0],C[A+1])},addDefaultUV:function(){var M=this.object.geometry.uvs;M.push(0,0),M.push(0,0),M.push(0,0)},addUVLine:function(M){var T=this.uvs,A=this.object.geometry.uvs;A.push(T[M+0],T[M+1])},addFace:function(M,T,A,C,R,L,I,O,N){var w=this.vertices.length,P=this.parseVertexIndex(M,w),B=this.parseVertexIndex(T,w),D=this.parseVertexIndex(A,w);if(this.addVertex(P,B,D),this.addColor(P,B,D),I!==void 0&&I!==""){var V=this.normals.length;P=this.parseNormalIndex(I,V),B=this.parseNormalIndex(O,V),D=this.parseNormalIndex(N,V),this.addNormal(P,B,D)}else this.addFaceNormal(P,B,D);if(C!==void 0&&C!==""){var G=this.uvs.length;P=this.parseUVIndex(C,G),B=this.parseUVIndex(R,G),D=this.parseUVIndex(L,G),this.addUV(P,B,D),this.object.geometry.hasUVIndices=!0}else this.addDefaultUV()},addPointGeometry:function(M){this.object.geometry.type="Points";for(var T,A=this.vertices.length,C=0,R=M.length;C<R;C++)T=this.parseVertexIndex(M[C],A),this.addVertexPoint(T),this.addColor(T)},addLineGeometry:function(M,T){this.object.geometry.type="Line";for(var A=this.vertices.length,C=this.uvs.length,R=0,L=M.length;R<L;R++)this.addVertexLine(this.parseVertexIndex(M[R],A));for(var I=0,O=T.length;I<O;I++)this.addUVLine(this.parseUVIndex(T[I],C))}};return E.startObject("",!1),E}class _ extends u.Loader{constructor(S){super(S),this.materials=null}load(S,M,T,A){var C=this,R=new u.FileLoader(this.manager);R.setPath(this.path),R.setRequestHeader(this.requestHeader),R.setWithCredentials(this.withCredentials),R.load(S,function(L){try{M(C.parse(L))}catch(I){A?A(I):console.error(I),C.manager.itemError(S)}},T,A)}setMaterials(S){return this.materials=S,this}parse(S){var M=new x;S.indexOf(`\r
|
|
3228
3228
|
`)!==-1&&(S=S.replace(/\r\n/g,`
|
|
3229
3229
|
`)),S.indexOf(`\\
|
|
3230
3230
|
`)!==-1&&(S=S.replace(/\\\n/g,""));for(var T=S.split(`
|
|
@@ -3460,4 +3460,4 @@ Replace
|
|
|
3460
3460
|
mapStores([useAuthStore, useCartStore])
|
|
3461
3461
|
with
|
|
3462
3462
|
mapStores(useAuthStore, useCartStore)
|
|
3463
|
-
This will fail in production if not fixed.`),n=n[0]),n.reduce((e,t)=>(e[t.$id+CV]=function(){return t(this.$pinia)},e),{})}function sw(n,e){return Array.isArray(e)?e.reduce((t,i)=>(t[i]=function(){return n(this.$pinia)[i]},t),{}):Object.keys(e).reduce((t,i)=>(t[i]=function(){const r=n(this.$pinia),s=e[i];return typeof s=="function"?s.call(this,r):r[s]},t),{})}const ow=rw("main",{state:()=>({userProfile:{token:""}}),getters:{userToken(n){return n.userProfile.token}},actions:{setUserToken(n){this.userProfile.token=n}}}),RV={name:"ScaffoldTooltip",components:{Col:fn,CreateTooltipContent:qx,ElIconDelete:hl,Icon:bt,Popover:Dl,Row:kn,Tooltip:fu.Tooltip},props:{createData:{type:Object,default:{toBeConfirmed:!1,points:[],shape:"",x:0,y:0}},label:{type:String,default:""},annotationDisplay:{type:Boolean,default:!1},region:{type:String,default:""},visible:{type:Boolean,default:!1},x:{type:Number,default:200},y:{type:Number,default:200},imageThumbnails:{type:Object,default:{}},imageThumbnailSidebar:{type:Boolean,default:!1}},inject:["scaffoldUrl"],provide(){return{userApiKey:this.userToken}},data:function(){return{annotationEntry:{},ElIconDelete:a.shallowRef(hl)}},computed:{...sw(ow,["userToken"]),position:function(){let n=40;return this.region&&(n=55),{left:this.x-40+"px",top:this.y-n+"px"}},imageEntry:function(){let n=[];const e=Object.assign({},Object.fromEntries(Object.entries(this.imageThumbnails).filter(([i,r])=>r.length>0).map(([i,r])=>[i.toLowerCase(),r]))),t=this.label.toLowerCase();return t in e&&(n=e[t]),this.imageThumbnailSidebar?(this.$emit("image-thumbnail-open",n),[]):n}},methods:{checkForDisplay:function(){if(this.visible&&this.label&&this.label!==""){if(this.annotationDisplay){const n=this.region?this.region+"/":"";this.annotationEntry={featureId:encodeURIComponent(n+this.label),resourceId:encodeURIComponent(this.scaffoldUrl),resource:encodeURIComponent(this.scaffoldUrl)}}}else this.annotationEntry={}},hideTriggered:function(){this.createData.toBeConfirmed&&this.$emit("cancel-create")}},watch:{label:{handler:function(){this.checkForDisplay()},immediate:!0},visible:{handler:function(){this.checkForDisplay()},immediate:!0},annotationDisplay:{handler:function(){this.checkForDisplay()},immediate:!0}}},LV={class:"tooltip-text"},PV={key:0,class:"tooltip-text"},IV={key:1,class:"delete-container"};function OV(n,e,t,i,r,s){const o=qx,l=a.resolveComponent("Tooltip"),c=fn,u=Qi,f=kn,d=Dl;return a.openBlock(),a.createElementBlock("div",{style:a.normalizeStyle(s.position),class:"region-tooltip"},[a.createVNode(d,{ref:"tooltip",visible:t.visible,placement:"top","show-arrow":!1,teleported:!1,trigger:"manual","popper-class":"tooltip-popper non-selectable","virtual-triggering":"",onHide:s.hideTriggered},{default:a.withCtx(()=>[a.createElementVNode("div",LV,a.toDisplayString(t.label),1),t.region?(a.openBlock(),a.createElementBlock("div",PV,"Region: "+a.toDisplayString(t.region),1)):a.createCommentVNode("",!0),a.withDirectives(a.createVNode(o,{createData:t.createData,onConfirmCreate:e[0]||(e[0]=p=>n.$emit("confirm-create",p)),onCancelCreate:e[1]||(e[1]=p=>n.$emit("cancel-create"))},null,8,["createData"]),[[a.vShow,t.createData.toBeConfirmed]]),a.withDirectives(a.createVNode(l,{class:"p-tooltip",ref:"tooltip",tooltipType:t.annotationDisplay?"annotation":"image",annotationEntry:n.annotationEntry,imageEntry:s.imageEntry},null,8,["tooltipType","annotationEntry","imageEntry"]),[[a.vShow,t.annotationDisplay&&!t.createData.toBeConfirmed||s.imageEntry.length]]),t.createData.toBeDeleted?(a.openBlock(),a.createElementBlock("div",IV,[a.createVNode(f,null,{default:a.withCtx(()=>[a.createVNode(c,{span:10},{default:a.withCtx(()=>[a.createTextVNode("Delete this feature?")]),_:1}),a.createVNode(c,{span:7},{default:a.withCtx(()=>[a.createVNode(u,{class:"delete-button",icon:n.ElIconDelete,onClick:e[2]||(e[2]=p=>n.$emit("confirm-delete"))},{default:a.withCtx(()=>[a.createTextVNode(" Delete ")]),_:1},8,["icon"])]),_:1}),a.createVNode(c,{span:6},{default:a.withCtx(()=>[a.createVNode(u,{class:"delete-button",onClick:e[3]||(e[3]=p=>n.$emit("cancel-create"))},{default:a.withCtx(()=>[a.createTextVNode(" Dismiss ")]),_:1})]),_:1})]),_:1})])):a.createCommentVNode("",!0)]),_:1},8,["visible","onHide"])],4)}const aw=ui(RV,[["render",OV],["__scopeId","data-v-b085935b"]]);/*! js-cookie v3.0.5 | MIT */function ou(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)n[i]=t[i]}return n}var NV={read:function(n){return n[0]==='"'&&(n=n.slice(1,-1)),n.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(n){return encodeURIComponent(n).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function Hf(n,e){function t(r,s,o){if(!(typeof document>"u")){o=ou({},e,o),typeof o.expires=="number"&&(o.expires=new Date(Date.now()+o.expires*864e5)),o.expires&&(o.expires=o.expires.toUTCString()),r=encodeURIComponent(r).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var l="";for(var c in o)o[c]&&(l+="; "+c,o[c]!==!0&&(l+="="+o[c].split(";")[0]));return document.cookie=r+"="+n.write(s,r)+l}}function i(r){if(!(typeof document>"u"||arguments.length&&!r)){for(var s=document.cookie?document.cookie.split("; "):[],o={},l=0;l<s.length;l++){var c=s[l].split("="),u=c.slice(1).join("=");try{var f=decodeURIComponent(c[0]);if(o[f]=n.read(u,f),r===f)break}catch{}}return r?o[r]:o}}return Object.create({set:t,get:i,remove:function(r,s){t(r,"",ou({},s,{expires:-1}))},withAttributes:function(r){return Hf(this.converter,ou({},this.attributes,r))},withConverter:function(r){return Hf(ou({},this.converter,r),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(n)}})}var Wf=Hf(NV,{path:"/"}),di=function(n,e,t,i,r){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!r)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?n!==e||!r:!e.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?r.call(n,t):r?r.value=t:e.set(n,t),t},Tt=function(n,e,t,i){if(t==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?n!==e||!i:!e.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?i:t==="a"?i.call(n):i?i.value:e.get(n)},zi,Ya,hi,rn,Er;const DV=1e4;class BV{constructor(e){zi.add(this),Ya.set(this,void 0),hi.set(this,null),rn.set(this,null),e.slice(-1)==="/"?di(this,Ya,e.slice(0,-1),"f"):di(this,Ya,e,"f")}get currentUser(){return Tt(this,hi,"f")}get currentError(){return Tt(this,rn,"f")}async authenticate(e){di(this,rn,null,"f"),di(this,hi,null,"f");const t=await Tt(this,zi,"m",Er).call(this,e,"authenticate");return"error"in t?(Wf.remove("annotation-key"),Promise.resolve(Tt(this,rn,"f"))):(Wf.set("annotation-key",t.session,{secure:!0,expires:1}),di(this,hi,t.data,"f"),Promise.resolve(Tt(this,hi,"f")))}async unauthenticate(e){di(this,rn,null,"f"),di(this,hi,null,"f");const t=await Tt(this,zi,"m",Er).call(this,e,"unauthenticate");return"success"in t?Promise.resolve(t):Promise.resolve(Tt(this,rn,"f"))}async annotatedItemIds(e,t,i,r){const s={resource:t};i!==void 0&&(s.user=i),r!==void 0&&(s.participated=r);const o=await Tt(this,zi,"m",Er).call(this,e,"items/","GET",s);return"error"in o?Promise.resolve(Tt(this,rn,"f")):Promise.resolve(o)}async drawnFeatures(e,t,i){const r={resource:t};i!==void 0&&(r.items=i);const s=await Tt(this,zi,"m",Er).call(this,e,"features/","GET",r);return"error"in s?Promise.resolve(Tt(this,rn,"f")):Promise.resolve(s)}async itemAnnotations(e,t,i){const r=await Tt(this,zi,"m",Er).call(this,e,"annotations/","GET",{resource:t,item:i});return"error"in r?Promise.resolve(Tt(this,rn,"f")):Promise.resolve(r)}async annotation(e,t){const i=await Tt(this,zi,"m",Er).call(this,e,"annotation/","GET",{annotation:t});return"error"in i?Promise.resolve(Tt(this,rn,"f")):Promise.resolve(i)}async addAnnotation(e,t){if(Tt(this,hi,"f")&&Tt(this,hi,"f").canUpdate){const i=Object.assign({creator:Tt(this,hi,"f"),created:new Date().toISOString()},t),r=await Tt(this,zi,"m",Er).call(this,e,"annotation/","POST",{data:i});if(!("error"in r))return Promise.resolve(r);di(this,rn,r,"f")}else di(this,rn,{error:"user cannot add annotation"},"f");return Promise.resolve(Tt(this,rn,"f"))}}Ya=new WeakMap,hi=new WeakMap,rn=new WeakMap,zi=new WeakSet,Er=async function(e,t,i="GET",r={}){let s=!0;const o=new AbortController;setTimeout(()=>{s&&(console.log("Annotation server timeout..."),o.abort())},DV);const l={method:i,signal:o.signal};let c=`${Tt(this,Ya,"f")}/${t}`;const u=Wf.get("annotation-key")||"";if(i==="GET"){const d=[];for(const[p,y]of Object.entries(r))d.push(`${p}=${encodeURIComponent(JSON.stringify(y))}`);d.push(`key=${encodeURIComponent(e)}`),d.push(`session=${encodeURIComponent(u)}`),c+="?"+d.join("&"),l.headers={Accept:"application/json; charset=utf-8","Cache-Control":"no-store"}}else if(i==="POST"){const d=Object.assign({key:e,session:u},r);l.body=JSON.stringify(d),l.headers={Accept:"application/json; charset=utf-8","Content-Type":"application/json; charset=utf-8","Cache-Control":"no-store"}}const f=await fetch(c,l);return s=!1,f.ok?Promise.resolve(await f.json()):(di(this,rn,{error:`${f.status} ${f.statusText}`},"f"),Promise.resolve(Tt(this,rn,"f")))};const Ja={ALL:0,SELECTED:1,HIGHLIGHTED:2,MOVE:3},FV=function(n,e,t){this.eventType=n,this.identifiers=e,this.zincObjects=t},VV=function(n,e,t){this.targetedID=[];const i=n,r=e;this.targetEventType=t;const s=this;t===void 0&&(this.targetEventType=Ja.ALL),this.getEventType=function(){return t},this.notify=function(o,l,c,u){if(o!==i&&(s.targetEventType===Ja.ALL||s.targetEventType===l)){const f=new FV(l,c,u);r(f)}}},kV=function(){const n=[];this.publish=function(e,t,i,r){for(let s=0;s<n.length;s++)n[s].notify(e,t,i,r)},this.subscribe=function(e,t,i){if(typeof t=="function"){const r=new VV(e,t,i);return n.push(r),r}},this.unsubscribe=function(e){for(let t=0;t<n.length;t++)if(e===n[t]){n.splice(t,1);return}}},lw={isWebGLAvailable:function(){try{var n=document.createElement("canvas");return!!(window.WebGLRenderingContext&&(n.getContext("webgl")||n.getContext("experimental-webgl")))}catch{return!1}},isWebGL2Available:function(){try{var n=document.createElement("canvas");return!!(window.WebGL2RenderingContext&&n.getContext("webgl2"))}catch{return!1}},getWebGLErrorMessage:function(){return this.getErrorMessage(1)},getWebGL2ErrorMessage:function(){return this.getErrorMessage(2)},getErrorMessage:function(n){var e={1:"WebGL",2:"WebGL 2"},t={1:window.WebGLRenderingContext,2:window.WebGL2RenderingContext},i='This module requires <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation" style="color:#008">$1</a> support but your $0 does not seem to support it.',r=document.createElement("div");return r.id="webglmessage",r.style.fontFamily="monospace",r.style.fontSize="20px",r.style.fontWeight="normal",r.style.textAlign="center",r.style.background="#fff",r.style.color="#000",r.style.padding="1.5em",r.style.width="400px",r.style.margin="5em auto 0",t[n]?i=i.replace("$0","graphics card"):i=i.replace("$0","browser"),i=i.replace("$1",e[n]),r.innerHTML=i,r}},jf={ALL:0,DESTROYED:1,NAME_CHANGED:2,SETTINGS_CHANGED:3},_n=function(){this.typeName="Base Module",this.instanceName="default",this.onChangedCallbacks=[],this.eventNotifiers=[]};_n.prototype.setName=function(n){if(n&&this.instanceName!==n){this.instanceName=n;const e=this.onChangedCallbacks.slice();for(let t=0;t<e.length;t++)e[t](this,jf.NAME_CHANGED)}},_n.prototype.settingsChanged=function(){const n=this.onChangedCallbacks.slice();for(let e=0;e<n.length;e++)n[e](this,jf.SETTINGS_CHANGED)},_n.prototype.exportSettings=function(){const n={};return n.dialog=this.typeName,n.name=this.instanceName,n},_n.prototype.importSettings=function(n){return n.dialog==this.typeName?(this.setName(n.name),!0):!1},_n.prototype.publishChanges=function(n,e,t){for(let i=0;i<this.eventNotifiers.length;i++)this.eventNotifiers[i].publish(this,e,n,t)},_n.prototype.getName=function(){return this.instanceName},_n.prototype.destroy=function(){const n=this.onChangedCallbacks.slice();for(let e=0;e<n.length;e++)n[e](this,jf.DESTROYED);delete this},_n.prototype.addChangedCallback=function(n){this.onChangedCallbacks.includes(n)==!1&&this.onChangedCallbacks.push(n)},_n.prototype.removeChangedCallback=function(n){const e=this.onChangedCallbacks.indexOf(n);e>-1&&this.onChangedCallbacks.splice(e,1)},_n.prototype.addNotifier=function(n){this.eventNotifiers.push(n)};const au=(n,e,t)=>{for(let i=0;i<n.length;i++)if(n[i]&&n[i].material&&n[i].material.emissive){let r=n[i].userData;r&&r.isZincObject?r.setEmissiveRGB(e):n[i].material&&n[i].material.emissive&&n[i].material.emissive.setRGB(...e),t&&n[i].material.depthFunc&&(n[i].material.depthFunc=Tr.THREE.LessEqualDepth),n[i].children.forEach(s=>{const o=s.userData;o&&o.isZincObject&&s.material&&s.material.emissive&&s.material.emissive.setRGB(...e)})}},zV=function(){let n=[],e=[];this.highlightColour=[1,0,0],this.selectColour=[0,1,0],this.originalColour=[0,0,0];const t=[],i=[],r=this,s=function(c,u){if(c.length==0&&u.length==0)return!1;for(let f=0;f<c.length;f++){let d=!1;for(let p=0;p<u.length;p++)c[f]===u[p]&&(d=!0);if(!d)return!0}for(let f=0;f<u.length;f++){let d=!1;for(let p=0;p<c.length;p++)u[f]===c[p]&&(d=!0);if(!d)return!0}return!1},o=function(c,u){if(t.length=0,u.length==0)return c;for(let f=0;f<c.length;f++){let d=!1;for(let p=0;p<u.length;p++)c[f]===u[p]&&(d=!0);d||t.push(c[f])}return t};this.setHighlighted=function(c){const u=[...n];r.resetHighlighted();const f=o(c,e),d=l(f);return au(d,r.highlightColour,!1),n=f,s(n,u)},this.setSelected=function(c){const u=[...e];r.resetHighlighted(),r.resetSelected();const f=l(c);return au(f,r.selectColour,!1),e=c,s(e,u)};const l=function(c){i.length=0;for(let u=0;u<c.length;u++)c[u].material&&i.push(c[u]);return i};this.resetHighlighted=function(){const c=l(n);au(c,r.originalColour,!0),n=[]},this.resetSelected=function(){const c=l(e);au(c,r.originalColour,!0),e=[]},this.getSelected=function(){return e},this.reset=function(){r.resetSelected(),r.resetHighlighted()}},$f=nu.THREE,UV=function(){const n=document.createElement("div");let e;if(n.style.height="100%",lw.isWebGLAvailable())e=new nu.Renderer(n,window),nu.defaultMaterialColor=16777116,e.initialiseVisualisation(),e.playAnimation=!1;else{const t=lw.getWebGLErrorMessage();n.appendChild(t)}return{Zinc:nu,renderer:e,container:n}},Et=function(){_n.call(this),this.scene=void 0,this.rendererContainer=void 0,this.displayArea=void 0,this.graphicsHighlight=new zV,this.selectObjectOnPick=!0,this.zincRenderer=null,this.selectedScreenCoordinates=new $f.Vector3,this.selectedCenter=void 0,this.liveUpdatesObjects=void 0,this.ignorePreviousSelected=!1};Et.prototype=Object.create(_n.prototype),Et.prototype.getIntersectedObject=function(n){if(n){const e=n.map(i=>{if(i&&i.object&&i.object.userData){if(i.object.userData.isMarker)return 1;if(i.object.name&&i.object.userData.isZincObject)return 2}return 0});let t=e.indexOf(1);return t=t>-1?t:e.indexOf(2),n[t]}},Et.prototype.getAnnotationsFromObjects=function(n){const e=[];for(var t=0;t<n.length;t++){const i=n[t].userData;let r;if(i){if(i.isGlyph||i.isGlyphset){let s=i;i.isGlyph&&(s=i.getGlyphset()),r=s.userData?s.userData.annotation:void 0,r&&r.data&&(n[t].name&&n[t].name!=""?r.data.id=n[t].name:r.data.id=s.groupName)}else r=i.userData?i.userData.annotation:void 0,r&&r.data&&(r.data.id=n[t].name);r&&(r.data.zincObject=i)}r&&e.push(r)}return e},Et.prototype.setHighlightedByObjects=function(n,e,t,i){const r=this.graphicsHighlight.setHighlighted(n),s=this.objectsToZincObjects(n);if(i){let o=Ja.MOVE;r&&(o=Ja.HIGHLIGHTED);const l=this.getAnnotationsFromObjects(n);l.length>0&&(l[0].coords=e,l[0].extraData=t),this.publishChanges(l,o,s)}return r},Et.prototype.setHighlightedByZincObjects=function(n,e,t,i){let r=[];return n&&n.forEach(s=>{s&&s.getMorph()&&r.push(s.getMorph())}),this.setHighlightedByObjects(r,e,t,i)},Et.prototype.setupLiveCoordinates=function(n){if(this.liveUpdatesObjects=n,n&&n.length>0){const e=this.scene.getBoundingBoxOfZincObjects(n);let t=new $f.Vector3;e?(e.getCenter(t),this.selectedCenter==null?this.selectedCenter=t:this.selectedCenter.copy(t)):this.selectedCenter=void 0}else this.selectedCenter=void 0},Et.prototype.objectsToZincObjects=function(n){const e=[];for(let t=0;t<n.length;t++){let i=n[t].userData;if(i)if(i.isGlyph||i.isGlyphset){let r=i;i.isGlyph&&(r=i.getGlyphset()),e.push(r)}else e.push(i)}return e},Et.prototype.setSelectedByObjects=function(n,e,t,i){let r=!1;if(this.selectObjectOnPick?r=this.graphicsHighlight.setSelected(n):r=!0,r||this.ignorePreviousSelected){const s=this.objectsToZincObjects(n);if(this.selectObjectOnPick&&this.setupLiveCoordinates(s),i){const o=Ja.SELECTED,l=this.getAnnotationsFromObjects(n);l.length>0&&(l[0].coords=e,l[0].extraData=t),this.publishChanges(l,o,s)}}return r},Et.prototype.setSelectedByZincObjects=function(n,e,t,i){let r=[];return n&&n.forEach(s=>{if(s){const o=s.getMorph();o&&r.push(o)}}),this.setSelectedByObjects(r,e,t,i)},Et.prototype.findObjectsByGroupName=function(n){return this.scene.findObjectsWithGroupName(n)},Et.prototype.setHighlightedByGroupName=function(n,e){const t=this.findObjectsByGroupName(n);return this.setHighlightedByObjects(t,void 0,{},e)},Et.prototype.setSelectedByGroupName=function(n,e){const t=this.findObjectsByGroupName(n);return this.setSelectedByObjects(t,void 0,{},e)},Et.prototype.changeBackgroundColour=function(n){const e=new $f.Color(n);this.zincRenderer&&this.zincRenderer.getThreeJSRenderer().setClearColor(e,1)},Et.prototype.resetView=function(){this.zincRenderer&&this.zincRenderer.resetView()},Et.prototype.viewAll=function(){this.zincRenderer&&this.zincRenderer.viewAll()},Et.prototype.playAnimation=function(n){this.zincRenderer&&(this.zincRenderer.playAnimation=n)},Et.prototype.setPlayRate=function(n){this.zincRenderer&&this.zincRenderer.setPlayRate(n)},Et.prototype.getPlayRate=function(n){return this.zincRenderer?this.zincRenderer.getPlayRate():0},Et.prototype.initialiseRenderer=function(n){if(this.zincRenderer===void 0||this.rendererContainer===void 0){let e=UV();this.Zinc=e.Zinc,this.zincRenderer=e.renderer,this.rendererContainer=e.container}n&&(this.displayArea=n,this.displayArea.appendChild(this.rendererContainer),this.zincRenderer&&this.zincRenderer.animate())},Et.prototype.destroy=function(){this.zincRenderer&&(this.zincRenderer.dispose(),this.zincRenderer.getThreeJSRenderer().dispose(),this.zincRenderer=void 0),_n.prototype.destroy.call(this)};const GV=function(){this.type="anatomical",this.data=void 0,this.isAnnotation=!0},HV=function(){this.currentName="",this.currentSystem="",this.currentPart="",this.currentSpecies="",this.metaURL="",this.viewURL="",this.timeVarying=!1,this.currentTime=0},cw=function(n){Et.call(this);const e=this;let t;this.sceneData=new HV;const i=new Array,r=new Array,s=new Array,o=new Array;let l;const c=n;this.NDCCameraControl=void 0,e.typeName="Organ Viewer",this.getSceneData=function(){return e.sceneData},this.updateTime=function(T){let A=6e3;e.scene&&(A=e.scene.getDuration());const C=T/100*A;e.sceneData.nerveMapIsActive||e.scene&&e.scene.setMorphsTime(C),e.sceneData.currentTime=T};const u=function(){let T=3e3;e.scene&&(T=e.scene.getDuration());const A=e.zincRenderer.getCurrentTime();for(let C=0;C<i.length;C++)i[C](A);!e.sceneData.nerveMapIsActive&&t&&t.setMorphsTime(A),e.sceneData.nerveMap&&e.sceneData.nerveMap.additionalReader&&e.sceneData.nerveMap.additionalReader.setTime(A/T),e.sceneData.currentTime=A/T*100};this.getCurrentTime=function(){return e.sceneData.currentTime},this.toggleSyncControl=(T,A)=>{let C=this.scene.getZincCameraControls();T?(C.resetView(),this.NDCCameraControl=C.enableSyncControl(),C.setRotationMode(A)):(C.disableSyncControl(),this.NDCCameraControl=void 0,C.setRotationMode("free"))},this.isSyncControl=()=>this.NDCCameraControl!==void 0,this.setSyncControlZoomToBox=T=>{this.NDCCameraControl&&this.NDCCameraControl.zoomToBox(T,2)},this.setSyncControlCallback=T=>{this.NDCCameraControl&&this.NDCCameraControl.setEventCallback(T)},this.setSyncControlCenterZoom=(T,A)=>{this.NDCCameraControl&&this.NDCCameraControl.setCenterZoom(T,A)};const f=function(){if(e.zincRenderer.playAnimation&&e.liveUpdatesObjects&&e.setupLiveCoordinates(e.liveUpdatesObjects),e.selectedCenter){const T=new Tr.THREE.Vector3;T.copy(e.selectedCenter);const A=e.scene.vectorToScreenXY(T);e.selectedScreenCoordinates.x=A.x,e.selectedScreenCoordinates.y=A.y}},d=function(){return function(){u()}},p=function(){return function(){f()}};this.addTimeChangedCallback=function(T){i.push(T)},this.setTexturePos=function(T){e.sceneData.nerveMap&&e.sceneData.nerveMap.additionalReader&&e.sceneData.nerveMap.additionalReader.setSliderPos(T)},this.addSceneChangedCallback=function(T){r.push(T)},this.addOrganPartAddedCallback=function(T){s.push(T)},this.addOrganPartRemovedCallback=function(T){o.push(T)},this.setFinishDownloadCallback=function(T){l=T},this.unsetFinishDownloadCallback=function(){l=void 0},this.getNamedObjectsToScreenCoordinates=function(T,A){const C=new Tr.THREE.Vector3;C.setFromMatrixPosition(obj.matrixWorld);const R=width/2,L=height/2;return C.project(A),C.x=C.x*R+R,C.y=-(C.y*L)+L,C};const y=function(T){let A,C;if(T!==void 0){let R=!1;T.object.userData&&T.object.userData.isMarker?(R=!0,C=T.object.userData.parent.getMorph()):C=T.object;try{C.userData.userData.annotation.data.lastActionOnMarker=R}finally{}if(C)if(C.name)A=C.name;else{const L=e.getAnnotationsFromObjects([C]);L&&L[0]&&(A=L[0].data.group)}}return{id:A,object:C}},m=function(){return function(T,A,C){var N;const R=e.getIntersectedObject(T),L=y(R),I={worldCoords:[R?R.point.x:0,R?R.point.y:0,R?R.point.z:0],intersected:R,intersects:T},O={x:A,y:C};if(L.id){I.threeID=(N=L.object)==null?void 0:N.id,L.object.userData.isGlyph?L.object.name?e.setSelectedByObjects([L.object],O,I,!0):e.setSelectedByZincObjects(L.object.userData.getGlyphset(),O,I,!0):e.setSelectedByObjects([L.object],O,I,!0);return}else e.setSelectedByObjects([],O,I,!0)}},h=function(){return function(T,A,C){var N;const R=e.getIntersectedObject(T),L=y(R),I={worldCoords:[R?R.point.x:0,R?R.point.y:0,R?R.point.z:0]},O={x:A,y:C};if(L.id){I.threeID=(N=L.object)==null?void 0:N.id,e.displayArea.style.cursor="pointer",e.setHighlightedByObjects([L.object],O,I,!0);return}else e.displayArea.style.cursor="auto",e.setHighlightedByObjects([],O,I,!0)}},b=function(T,A,C,R){if(R=="all"||R=="geometries"){const L=T.findGeometriesWithGroupName(A);for(let I=0;I<L.length;I++)L[I].setVisibility(C)}if(R=="all"||R=="glyphsets"){const L=T.findGlyphsetsWithGroupName(A);for(let I=0;I<L.length;I++)L[I].setVisibility(C)}if(R=="all"||R=="pointsets"){const L=T.findPointsetsWithGroupName(A);for(let I=0;I<L.length;I++)L[I].setVisibility(C)}if(R=="all"||R=="lines"){const L=T.findLinesWithGroupName(A);for(let I=0;I<L.length;I++)L[I].setVisibility(C)}};this.changeGeometriesVisibility=function(T,A){b(e.scene,T,A,"geometries")},this.changeGlyphsetsVisibility=function(T,A){b(e.scene,T,A,"glyphsets")},this.changeLinesVisibility=function(T,A){b(e.scene,T,A,"lines")},this.changePointsetsVisibility=function(T,A){b(e.scene,T,A,"pointsets")},this.changeOrganPartsVisibility=function(T,A,C){let R="all";C!==void 0&&(R=C),b(e.scene,T,A,R)},this.changeOrganPartsVisibilityCallback=function(T){return function(A){e.changeOrganPartsVisibility(T,A)}},this.changeBackgroundColour=function(T){const A=new Tr.THREE.Color(T);e.zincRenderer&&e.zincRenderer.getThreeJSRenderer().setClearColor(A,1)};const v=function(T,A,C,R){for(let O=0;O<s.length;O++)s[O](R,e.scene.isTimeVarying());const L=new GV,I=R.region.getFullPath();L.data={species:e.sceneData.currentSpecies,system:T,part:A,group:R.groupName,region:I,uuid:R.uuid,lastActionOnMarker:!1},R.userData.annotation=L},g=function(T,A,C,R){for(let L=0;L<o.length;L++)o[L](R)},x=function(T,A,C){return function(R){v(T,A,C,R)}},_=function(T,A,C){return function(R){g(T,A,C,R)}},E=function(){return function(){e.settingsChanged(),e.sceneData.timeVarying=e.scene.isTimeVarying(),l&&l()}};this.updateFieldvisibility=function(T,A){for(let C=0;C<T.length;C++)if(A!=C){const R=T[C].PartName;e.changeOrganPartsVisibility(R,!1)}if(A>-1){const C=T[A].PartName;if(e.scene.findGeometriesWithGroupName(C).length>0||e.scene.findGlyphsetsWithGroupName(C).length>0)e.changeOrganPartsVisibility(C,!0);else{const R=getOrganDetails(T[A].SystemName,C);R!=null&&e.scene.loadMetadataURL(c.getOrgansDirectoryPrefix()+"/"+R.meta)}}},this.getAvailableSpecies=function(T,A,C){const R=new Array;R.push("none");const L=Object.keys(organsFileMap);for(index in L){const I=L[index];I!=T&&organsFileMap[I].hasOwnProperty(A)&&organsFileMap[I][A].hasOwnProperty(C)&&R.push(I)}return R},this.getCentreAndSize=function(){const T=new Tr.THREE.Vector3,A=this.scene.getBoundingBox();A.getCenter(T);const C=[T.x,T.y,T.z];A.getSize(T);const R=[T.x,T.y,T.z];return{centre:C,size:R}};const S=function(T,A,C,R){e.sceneData.nerveMapIsActive=!1,e.sceneData.nerveMap=void 0,e.sceneData.metaURL="",e.sceneData.viewURL="",e.sceneData.currentSpecies=T,e.sceneData.currentSystem=A,e.sceneData.currentPart=C,e.sceneData.currentTime=0,e.sceneData.timeVarying=!1;let L="";T&&(L=T+"/"),A&&(L=A+"/"),C&&(L=C),e.sceneData.currentName=L};this.loadOrgansFromURL=function(T,A,C,R,L,I){if(e.zincRenderer&&R&&e.sceneData.metaURL!==T){S(A,C,R);const O=e.sceneData.currentName;let N=e.zincRenderer.getSceneByName(O);N?I&&N.clearAll():N=e.zincRenderer.createScene(O),e.selectObjectOnPick=!0;for(let P=0;P<r.length;P++)r[P](e.sceneData);L&&L!=""?(e.sceneData.viewURL=L,N.loadViewURL(e.sceneData.viewURL)):e.sceneData.viewURL=void 0,e.sceneData.metaURL=T,N.addZincObjectAddedCallbacks(x(C,R,!1)),N.addZincObjectRemovedCallbacks(_(void 0,R,!1)),N.loadMetadataURL(T,void 0,E()),e.scene=N,e.zincRenderer.setCurrentScene(N),e.graphicsHighlight.reset();const w=N.getZincCameraControls();w.enableRaycaster(N,m(),h()),w.setMouseButtonAction("AUXILIARY","ZOOM"),w.setMouseButtonAction("SECONDARY","PAN")}},this.loadGLTFFromURL=function(T,A,C){if(e.zincRenderer&&A&&e.sceneData.metaURL!==T){S(void 0,void 0,A);const R=e.sceneData.currentName;let L=e.zincRenderer.getSceneByName(R);L?C&&L.clearAll():L=e.zincRenderer.createScene(R);for(let O=0;O<r.length;O++)r[O](e.sceneData);e.sceneData.viewURL=void 0,e.sceneData.metaURL=T,L.addZincObjectAddedCallbacks(x(void 0,A,!1)),L.addZincObjectRemovedCallbacks(_(void 0,A,!1)),L.loadGLTF(T,void 0,E()),e.scene=L,e.zincRenderer.setCurrentScene(L),e.graphicsHighlight.reset();const I=L.getZincCameraControls();I.enableRaycaster(L,m(),h()),I.setMouseButtonAction("AUXILIARY","ZOOM"),I.setMouseButtonAction("SECONDARY","PAN")}},this.alignCameraWithSelectedObject=function(T){const A=e.graphicsHighlight.getSelected();A&&A[0]&&A[0].userData&&e.scene.alignObjectToCameraView(A[0].userData,T)},this.exportSettings=function(){const T={};return T.name=e.instanceName,e.sceneData.currentSystem&&(T.system=e.sceneData.currentSystem),e.sceneData.currentSpecies&&(T.species=e.sceneData.currentSpecies),e.sceneData.currentPart&&(T.part=e.sceneData.currentPart),T.metaURL=e.sceneData.metaURL,e.sceneData.viewURL&&(T.viewURL=e.sceneData.viewURL),T.dialog="Organ Viewer",T},this.importSettings=function(T){return T&&T.dialog==this.typeName?(e.setName(T.name),T.metaURL!==void 0&&T.metaURL!=""?e.loadOrgansFromURL(T.metaURL,T.species,T.system,T.part,T.viewURL,!0):e.loadOrgans(T.species,T.system,T.part),!0):!1},function(){e.initialiseRenderer(void 0),e.zincRenderer&&(e.zincRenderer.addPreRenderCallbackFunction(d()),e.zincRenderer.addPostRenderCallbackFunction(p()))}()};cw.prototype=Object.create(Et.prototype);var ht=function(){return ht=Object.assign||function(e){for(var t,i=1,r=arguments.length;i<r;i++){t=arguments[i];for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s])}return e},ht.apply(this,arguments)};function WV(n,e,t,i){function r(s){return s instanceof t?s:new t(function(o){o(s)})}return new(t||(t=Promise))(function(s,o){function l(f){try{u(i.next(f))}catch(d){o(d)}}function c(f){try{u(i.throw(f))}catch(d){o(d)}}function u(f){f.done?s(f.value):r(f.value).then(l,c)}u((i=i.apply(n,[])).next())})}function jV(n,e){var t={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},i,r,s,o;return o={next:l(0),throw:l(1),return:l(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function l(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(t=0)),t;)try{if(i=1,r&&(s=u[0]&2?r.return:u[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,u[1])).done)return s;switch(r=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return t.label++,{value:u[1],done:!1};case 5:t.label++,r=u[1],u=[0];continue;case 7:u=t.ops.pop(),t.trys.pop();continue;default:if(s=t.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){t=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){t.label=u[1];break}if(u[0]===6&&t.label<s[1]){t.label=s[1],s=u;break}if(s&&t.label<s[2]){t.label=s[2],t.ops.push(u);break}s[2]&&t.ops.pop(),t.trys.pop();continue}u=e.call(n,t)}catch(f){u=[6,f],r=0}finally{i=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function Ye(n){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&n[e],i=0;if(t)return t.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&i>=n.length&&(n=void 0),{value:n&&n[i++],done:!n}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Dt(n,e){var t=typeof Symbol=="function"&&n[Symbol.iterator];if(!t)return n;var i=t.call(n),r,s=[],o;try{for(;(e===void 0||e-- >0)&&!(r=i.next()).done;)s.push(r.value)}catch(l){o={error:l}}finally{try{r&&!r.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return s}typeof SuppressedError=="function"&&SuppressedError;var $V="ENTRIES",uw="KEYS",dw="VALUES",Qt="",Zf=function(){function n(e,t){var i=e._tree,r=Array.from(i.keys());this.set=e,this._type=t,this._path=r.length>0?[{node:i,keys:r}]:[]}return n.prototype.next=function(){var e=this.dive();return this.backtrack(),e},n.prototype.dive=function(){if(this._path.length===0)return{done:!0,value:void 0};var e=Po(this._path),t=e.node,i=e.keys;if(Po(i)===Qt)return{done:!1,value:this.result()};var r=t.get(Po(i));return this._path.push({node:r,keys:Array.from(r.keys())}),this.dive()},n.prototype.backtrack=function(){if(this._path.length!==0){var e=Po(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}},n.prototype.key=function(){return this.set._prefix+this._path.map(function(e){var t=e.keys;return Po(t)}).filter(function(e){return e!==Qt}).join("")},n.prototype.value=function(){return Po(this._path).node.get(Qt)},n.prototype.result=function(){switch(this._type){case dw:return this.value();case uw:return this.key();default:return[this.key(),this.value()]}},n.prototype[Symbol.iterator]=function(){return this},n}(),Po=function(n){return n[n.length-1]},ZV=function(n,e,t){var i=new Map;if(e===void 0)return i;for(var r=e.length+1,s=r+t,o=new Uint8Array(s*r).fill(t+1),l=0;l<r;++l)o[l]=l;for(var c=1;c<s;++c)o[c*r]=c;return hw(n,e,t,i,o,1,r,""),i},hw=function(n,e,t,i,r,s,o,l){var c,u,f=s*o;try{e:for(var d=Ye(n.keys()),p=d.next();!p.done;p=d.next()){var y=p.value;if(y===Qt){var m=r[f-1];m<=t&&i.set(l,[n.get(y),m])}else{for(var h=s,b=0;b<y.length;++b,++h){for(var v=y[b],g=o*h,x=g-o,_=r[g],E=Math.max(0,h-t-1),S=Math.min(o-1,h+t),M=E;M<S;++M){var T=v!==e[M],A=r[x+M]+ +T,C=r[x+M+1]+1,R=r[g+M]+1,L=r[g+M+1]=Math.min(A,C,R);L<_&&(_=L)}if(_>t)continue e}hw(n.get(y),e,t,i,r,h,o,l+y)}}}catch(I){c={error:I}}finally{try{p&&!p.done&&(u=d.return)&&u.call(d)}finally{if(c)throw c.error}}},Xf=function(){function n(e,t){e===void 0&&(e=new Map),t===void 0&&(t=""),this._size=void 0,this._tree=e,this._prefix=t}return n.prototype.atPrefix=function(e){var t,i;if(!e.startsWith(this._prefix))throw new Error("Mismatched prefix");var r=Dt(lu(this._tree,e.slice(this._prefix.length)),2),s=r[0],o=r[1];if(s===void 0){var l=Dt(qf(o),2),c=l[0],u=l[1];try{for(var f=Ye(c.keys()),d=f.next();!d.done;d=f.next()){var p=d.value;if(p!==Qt&&p.startsWith(u)){var y=new Map;return y.set(p.slice(u.length),c.get(p)),new n(y,e)}}}catch(m){t={error:m}}finally{try{d&&!d.done&&(i=f.return)&&i.call(f)}finally{if(t)throw t.error}}}return new n(s,e)},n.prototype.clear=function(){this._size=void 0,this._tree.clear()},n.prototype.delete=function(e){return this._size=void 0,XV(this._tree,e)},n.prototype.entries=function(){return new Zf(this,$V)},n.prototype.forEach=function(e){var t,i;try{for(var r=Ye(this),s=r.next();!s.done;s=r.next()){var o=Dt(s.value,2),l=o[0],c=o[1];e(l,c,this)}}catch(u){t={error:u}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}},n.prototype.fuzzyGet=function(e,t){return ZV(this._tree,e,t)},n.prototype.get=function(e){var t=Yf(this._tree,e);return t!==void 0?t.get(Qt):void 0},n.prototype.has=function(e){var t=Yf(this._tree,e);return t!==void 0&&t.has(Qt)},n.prototype.keys=function(){return new Zf(this,uw)},n.prototype.set=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var i=Jf(this._tree,e);return i.set(Qt,t),this},Object.defineProperty(n.prototype,"size",{get:function(){if(this._size)return this._size;this._size=0;for(var e=this.entries();!e.next().done;)this._size+=1;return this._size},enumerable:!1,configurable:!0}),n.prototype.update=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var i=Jf(this._tree,e);return i.set(Qt,t(i.get(Qt))),this},n.prototype.fetch=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var i=Jf(this._tree,e),r=i.get(Qt);return r===void 0&&i.set(Qt,r=t()),r},n.prototype.values=function(){return new Zf(this,dw)},n.prototype[Symbol.iterator]=function(){return this.entries()},n.from=function(e){var t,i,r=new n;try{for(var s=Ye(e),o=s.next();!o.done;o=s.next()){var l=Dt(o.value,2),c=l[0],u=l[1];r.set(c,u)}}catch(f){t={error:f}}finally{try{o&&!o.done&&(i=s.return)&&i.call(s)}finally{if(t)throw t.error}}return r},n.fromObject=function(e){return n.from(Object.entries(e))},n}(),lu=function(n,e,t){var i,r;if(t===void 0&&(t=[]),e.length===0||n==null)return[n,t];try{for(var s=Ye(n.keys()),o=s.next();!o.done;o=s.next()){var l=o.value;if(l!==Qt&&e.startsWith(l))return t.push([n,l]),lu(n.get(l),e.slice(l.length),t)}}catch(c){i={error:c}}finally{try{o&&!o.done&&(r=s.return)&&r.call(s)}finally{if(i)throw i.error}}return t.push([n,e]),lu(void 0,"",t)},Yf=function(n,e){var t,i;if(e.length===0||n==null)return n;try{for(var r=Ye(n.keys()),s=r.next();!s.done;s=r.next()){var o=s.value;if(o!==Qt&&e.startsWith(o))return Yf(n.get(o),e.slice(o.length))}}catch(l){t={error:l}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}},Jf=function(n,e){var t,i,r=e.length;e:for(var s=0;n&&s<r;){try{for(var o=(t=void 0,Ye(n.keys())),l=o.next();!l.done;l=o.next()){var c=l.value;if(c!==Qt&&e[s]===c[0]){for(var u=Math.min(r-s,c.length),f=1;f<u&&e[s+f]===c[f];)++f;var d=n.get(c);if(f===c.length)n=d;else{var p=new Map;p.set(c.slice(f),d),n.set(e.slice(s,s+f),p),n.delete(c),n=p}s+=f;continue e}}}catch(m){t={error:m}}finally{try{l&&!l.done&&(i=o.return)&&i.call(o)}finally{if(t)throw t.error}}var y=new Map;return n.set(e.slice(s),y),y}return n},XV=function(n,e){var t=Dt(lu(n,e),2),i=t[0],r=t[1];if(i!==void 0){if(i.delete(Qt),i.size===0)fw(r);else if(i.size===1){var s=Dt(i.entries().next().value,2),o=s[0],l=s[1];pw(r,o,l)}}},fw=function(n){if(n.length!==0){var e=Dt(qf(n),2),t=e[0],i=e[1];if(t.delete(i),t.size===0)fw(n.slice(0,-1));else if(t.size===1){var r=Dt(t.entries().next().value,2),s=r[0],o=r[1];s!==Qt&&pw(n.slice(0,-1),s,o)}}},pw=function(n,e,t){if(n.length!==0){var i=Dt(qf(n),2),r=i[0],s=i[1];r.set(s+e,t),r.delete(s)}},qf=function(n){return n[n.length-1]},qa,Kf="or",mw="and",YV="and_not",JV=function(){function n(e){if((e==null?void 0:e.fields)==null)throw new Error('MiniSearch: option "fields" must be provided');var t=e.autoVacuum==null||e.autoVacuum===!0?ip:e.autoVacuum;this._options=ht(ht(ht({},ep),e),{autoVacuum:t,searchOptions:ht(ht({},gw),e.searchOptions||{}),autoSuggestOptions:ht(ht({},tk),e.autoSuggestOptions||{})}),this._index=new Xf,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=np,this.addFields(this._options.fields)}return n.prototype.add=function(e){var t,i,r,s,o,l,c=this._options,u=c.extractField,f=c.tokenize,d=c.processTerm,p=c.fields,y=c.idField,m=u(e,y);if(m==null)throw new Error('MiniSearch: document does not have ID field "'.concat(y,'"'));if(this._idToShortId.has(m))throw new Error("MiniSearch: duplicate ID ".concat(m));var h=this.addDocumentId(m);this.saveStoredFields(h,e);try{for(var b=Ye(p),v=b.next();!v.done;v=b.next()){var g=v.value,x=u(e,g);if(x!=null){var _=f(x.toString(),g),E=this._fieldIds[g],S=new Set(_).size;this.addFieldLength(h,E,this._documentCount-1,S);try{for(var M=(r=void 0,Ye(_)),T=M.next();!T.done;T=M.next()){var A=T.value,C=d(A,g);if(Array.isArray(C))try{for(var R=(o=void 0,Ye(C)),L=R.next();!L.done;L=R.next()){var I=L.value;this.addTerm(E,h,I)}}catch(O){o={error:O}}finally{try{L&&!L.done&&(l=R.return)&&l.call(R)}finally{if(o)throw o.error}}else C&&this.addTerm(E,h,C)}}catch(O){r={error:O}}finally{try{T&&!T.done&&(s=M.return)&&s.call(M)}finally{if(r)throw r.error}}}}}catch(O){t={error:O}}finally{try{v&&!v.done&&(i=b.return)&&i.call(b)}finally{if(t)throw t.error}}},n.prototype.addAll=function(e){var t,i;try{for(var r=Ye(e),s=r.next();!s.done;s=r.next()){var o=s.value;this.add(o)}}catch(l){t={error:l}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}},n.prototype.addAllAsync=function(e,t){var i=this;t===void 0&&(t={});var r=t.chunkSize,s=r===void 0?10:r,o={chunk:[],promise:Promise.resolve()},l=e.reduce(function(f,d,p){var y=f.chunk,m=f.promise;return y.push(d),(p+1)%s===0?{chunk:[],promise:m.then(function(){return new Promise(function(h){return setTimeout(h,0)})}).then(function(){return i.addAll(y)})}:{chunk:y,promise:m}},o),c=l.chunk,u=l.promise;return u.then(function(){return i.addAll(c)})},n.prototype.remove=function(e){var t,i,r,s,o,l,c=this._options,u=c.tokenize,f=c.processTerm,d=c.extractField,p=c.fields,y=c.idField,m=d(e,y);if(m==null)throw new Error('MiniSearch: document does not have ID field "'.concat(y,'"'));var h=this._idToShortId.get(m);if(h==null)throw new Error("MiniSearch: cannot remove document with ID ".concat(m,": it is not in the index"));try{for(var b=Ye(p),v=b.next();!v.done;v=b.next()){var g=v.value,x=d(e,g);if(x!=null){var _=u(x.toString(),g),E=this._fieldIds[g],S=new Set(_).size;this.removeFieldLength(h,E,this._documentCount,S);try{for(var M=(r=void 0,Ye(_)),T=M.next();!T.done;T=M.next()){var A=T.value,C=f(A,g);if(Array.isArray(C))try{for(var R=(o=void 0,Ye(C)),L=R.next();!L.done;L=R.next()){var I=L.value;this.removeTerm(E,h,I)}}catch(O){o={error:O}}finally{try{L&&!L.done&&(l=R.return)&&l.call(R)}finally{if(o)throw o.error}}else C&&this.removeTerm(E,h,C)}}catch(O){r={error:O}}finally{try{T&&!T.done&&(s=M.return)&&s.call(M)}finally{if(r)throw r.error}}}}}catch(O){t={error:O}}finally{try{v&&!v.done&&(i=b.return)&&i.call(b)}finally{if(t)throw t.error}}this._storedFields.delete(h),this._documentIds.delete(h),this._idToShortId.delete(m),this._fieldLength.delete(h),this._documentCount-=1},n.prototype.removeAll=function(e){var t,i;if(e)try{for(var r=Ye(e),s=r.next();!s.done;s=r.next()){var o=s.value;this.remove(o)}}catch(l){t={error:l}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}else{if(arguments.length>0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new Xf,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}},n.prototype.discard=function(e){var t=this,i=this._idToShortId.get(e);if(i==null)throw new Error("MiniSearch: cannot discard document with ID ".concat(e,": it is not in the index"));this._idToShortId.delete(e),this._documentIds.delete(i),this._storedFields.delete(i),(this._fieldLength.get(i)||[]).forEach(function(r,s){t.removeFieldLength(i,s,t._documentCount,r)}),this._fieldLength.delete(i),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()},n.prototype.maybeAutoVacuum=function(){if(this._options.autoVacuum!==!1){var e=this._options.autoVacuum,t=e.minDirtFactor,i=e.minDirtCount,r=e.batchSize,s=e.batchWait;this.conditionalVacuum({batchSize:r,batchWait:s},{minDirtCount:i,minDirtFactor:t})}},n.prototype.discardAll=function(e){var t,i,r=this._options.autoVacuum;try{this._options.autoVacuum=!1;try{for(var s=Ye(e),o=s.next();!o.done;o=s.next()){var l=o.value;this.discard(l)}}catch(c){t={error:c}}finally{try{o&&!o.done&&(i=s.return)&&i.call(s)}finally{if(t)throw t.error}}}finally{this._options.autoVacuum=r}this.maybeAutoVacuum()},n.prototype.replace=function(e){var t=this._options,i=t.idField,r=t.extractField,s=r(e,i);this.discard(s),this.add(e)},n.prototype.vacuum=function(e){return e===void 0&&(e={}),this.conditionalVacuum(e)},n.prototype.conditionalVacuum=function(e,t){var i=this;return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&t,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(function(){var r=i._enqueuedVacuumConditions;return i._enqueuedVacuumConditions=np,i.performVacuuming(e,r)}),this._enqueuedVacuum)):this.vacuumConditionsMet(t)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(e),this._currentVacuum)},n.prototype.performVacuuming=function(e,t){return WV(this,void 0,void 0,function(){var i,r,s,o,l,c,u,f,d,p,y,m,h,b,v,g,x,_,E,S,M,T,A,C,R;return jV(this,function(L){switch(L.label){case 0:if(i=this._dirtCount,!this.vacuumConditionsMet(t))return[3,10];r=e.batchSize||tp.batchSize,s=e.batchWait||tp.batchWait,o=1,L.label=1;case 1:L.trys.push([1,7,8,9]),l=Ye(this._index),c=l.next(),L.label=2;case 2:if(c.done)return[3,6];u=Dt(c.value,2),f=u[0],d=u[1];try{for(p=(T=void 0,Ye(d)),y=p.next();!y.done;y=p.next()){m=Dt(y.value,2),h=m[0],b=m[1];try{for(v=(C=void 0,Ye(b)),g=v.next();!g.done;g=v.next())x=Dt(g.value,1),_=x[0],!this._documentIds.has(_)&&(b.size<=1?d.delete(h):b.delete(_))}catch(I){C={error:I}}finally{try{g&&!g.done&&(R=v.return)&&R.call(v)}finally{if(C)throw C.error}}}}catch(I){T={error:I}}finally{try{y&&!y.done&&(A=p.return)&&A.call(p)}finally{if(T)throw T.error}}return this._index.get(f).size===0&&this._index.delete(f),o%r!==0?[3,4]:[4,new Promise(function(I){return setTimeout(I,s)})];case 3:L.sent(),L.label=4;case 4:o+=1,L.label=5;case 5:return c=l.next(),[3,2];case 6:return[3,9];case 7:return E=L.sent(),S={error:E},[3,9];case 8:try{c&&!c.done&&(M=l.return)&&M.call(l)}finally{if(S)throw S.error}return[7];case 9:this._dirtCount-=i,L.label=10;case 10:return[4,null];case 11:return L.sent(),this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null,[2]}})})},n.prototype.vacuumConditionsMet=function(e){if(e==null)return!0;var t=e.minDirtCount,i=e.minDirtFactor;return t=t||ip.minDirtCount,i=i||ip.minDirtFactor,this.dirtCount>=t&&this.dirtFactor>=i},Object.defineProperty(n.prototype,"isVacuuming",{get:function(){return this._currentVacuum!=null},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"dirtCount",{get:function(){return this._dirtCount},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"dirtFactor",{get:function(){return this._dirtCount/(1+this._documentCount+this._dirtCount)},enumerable:!1,configurable:!0}),n.prototype.has=function(e){return this._idToShortId.has(e)},n.prototype.getStoredFields=function(e){var t=this._idToShortId.get(e);if(t!=null)return this._storedFields.get(t)},n.prototype.search=function(e,t){var i,r;t===void 0&&(t={});var s=this.executeQuery(e,t),o=[];try{for(var l=Ye(s),c=l.next();!c.done;c=l.next()){var u=Dt(c.value,2),f=u[0],d=u[1],p=d.score,y=d.terms,m=d.match,h=y.length||1,b={id:this._documentIds.get(f),score:p*h,terms:Object.keys(m),queryTerms:y,match:m};Object.assign(b,this._storedFields.get(f)),(t.filter==null||t.filter(b))&&o.push(b)}}catch(v){i={error:v}}finally{try{c&&!c.done&&(r=l.return)&&r.call(l)}finally{if(i)throw i.error}}return e===n.wildcard&&t.boostDocument==null&&this._options.searchOptions.boostDocument==null||o.sort(vw),o},n.prototype.autoSuggest=function(e,t){var i,r,s,o;t===void 0&&(t={}),t=ht(ht({},this._options.autoSuggestOptions),t);var l=new Map;try{for(var c=Ye(this.search(e,t)),u=c.next();!u.done;u=c.next()){var f=u.value,d=f.score,p=f.terms,y=p.join(" "),m=l.get(y);m!=null?(m.score+=d,m.count+=1):l.set(y,{score:d,terms:p,count:1})}}catch(E){i={error:E}}finally{try{u&&!u.done&&(r=c.return)&&r.call(c)}finally{if(i)throw i.error}}var h=[];try{for(var b=Ye(l),v=b.next();!v.done;v=b.next()){var g=Dt(v.value,2),m=g[0],x=g[1],d=x.score,p=x.terms,_=x.count;h.push({suggestion:m,terms:p,score:d/_})}}catch(E){s={error:E}}finally{try{v&&!v.done&&(o=b.return)&&o.call(b)}finally{if(s)throw s.error}}return h.sort(vw),h},Object.defineProperty(n.prototype,"documentCount",{get:function(){return this._documentCount},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"termCount",{get:function(){return this._index.size},enumerable:!1,configurable:!0}),n.loadJSON=function(e,t){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(e),t)},n.getDefault=function(e){if(ep.hasOwnProperty(e))return Qf(ep,e);throw new Error('MiniSearch: unknown option "'.concat(e,'"'))},n.loadJS=function(e,t){var i,r,s,o,l,c,u=e.index,f=e.documentCount,d=e.nextId,p=e.documentIds,y=e.fieldIds,m=e.fieldLength,h=e.averageFieldLength,b=e.storedFields,v=e.dirtCount,g=e.serializationVersion;if(g!==1&&g!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");var x=new n(t);x._documentCount=f,x._nextId=d,x._documentIds=cu(p),x._idToShortId=new Map,x._fieldIds=y,x._fieldLength=cu(m),x._avgFieldLength=h,x._storedFields=cu(b),x._dirtCount=v||0,x._index=new Xf;try{for(var _=Ye(x._documentIds),E=_.next();!E.done;E=_.next()){var S=Dt(E.value,2),M=S[0],T=S[1];x._idToShortId.set(T,M)}}catch(D){i={error:D}}finally{try{E&&!E.done&&(r=_.return)&&r.call(_)}finally{if(i)throw i.error}}try{for(var A=Ye(u),C=A.next();!C.done;C=A.next()){var R=Dt(C.value,2),L=R[0],I=R[1],O=new Map;try{for(var N=(l=void 0,Ye(Object.keys(I))),w=N.next();!w.done;w=N.next()){var P=w.value,B=I[P];g===1&&(B=B.ds),O.set(parseInt(P,10),cu(B))}}catch(D){l={error:D}}finally{try{w&&!w.done&&(c=N.return)&&c.call(N)}finally{if(l)throw l.error}}x._index.set(L,O)}}catch(D){s={error:D}}finally{try{C&&!C.done&&(o=A.return)&&o.call(A)}finally{if(s)throw s.error}}return x},n.prototype.executeQuery=function(e,t){var i=this;if(t===void 0&&(t={}),e===n.wildcard)return this.executeWildcardQuery(t);if(typeof e!="string"){var r=ht(ht(ht({},t),e),{queries:void 0}),s=e.queries.map(function(b){return i.executeQuery(b,r)});return this.combineResults(s,r.combineWith)}var o=this._options,l=o.tokenize,c=o.processTerm,u=o.searchOptions,f=ht(ht({tokenize:l,processTerm:c},u),t),d=f.tokenize,p=f.processTerm,y=d(e).flatMap(function(b){return p(b)}).filter(function(b){return!!b}),m=y.map(ek(f)),h=m.map(function(b){return i.executeQuerySpec(b,f)});return this.combineResults(h,f.combineWith)},n.prototype.executeQuerySpec=function(e,t){var i,r,s,o,l=ht(ht({},this._options.searchOptions),t),c=(l.fields||this._options.fields).reduce(function(P,B){var D;return ht(ht({},P),(D={},D[B]=Qf(l.boost,B)||1,D))},{}),u=l.boostDocument,f=l.weights,d=l.maxFuzzy,p=l.bm25,y=ht(ht({},gw.weights),f),m=y.fuzzy,h=y.prefix,b=this._index.get(e.term),v=this.termResults(e.term,e.term,1,b,c,u,p),g,x;if(e.prefix&&(g=this._index.atPrefix(e.term)),e.fuzzy){var _=e.fuzzy===!0?.2:e.fuzzy,E=_<1?Math.min(d,Math.round(e.term.length*_)):_;E&&(x=this._index.fuzzyGet(e.term,E))}if(g)try{for(var S=Ye(g),M=S.next();!M.done;M=S.next()){var T=Dt(M.value,2),A=T[0],C=T[1],R=A.length-e.term.length;if(R){x==null||x.delete(A);var L=h*A.length/(A.length+.3*R);this.termResults(e.term,A,L,C,c,u,p,v)}}}catch(P){i={error:P}}finally{try{M&&!M.done&&(r=S.return)&&r.call(S)}finally{if(i)throw i.error}}if(x)try{for(var I=Ye(x.keys()),O=I.next();!O.done;O=I.next()){var A=O.value,N=Dt(x.get(A),2),w=N[0],R=N[1];if(R){var L=m*A.length/(A.length+R);this.termResults(e.term,A,L,w,c,u,p,v)}}}catch(P){s={error:P}}finally{try{O&&!O.done&&(o=I.return)&&o.call(I)}finally{if(s)throw s.error}}return v},n.prototype.executeWildcardQuery=function(e){var t,i,r=new Map,s=ht(ht({},this._options.searchOptions),e);try{for(var o=Ye(this._documentIds),l=o.next();!l.done;l=o.next()){var c=Dt(l.value,2),u=c[0],f=c[1],d=s.boostDocument?s.boostDocument(f,"",this._storedFields.get(u)):1;r.set(u,{score:d,terms:[],match:{}})}}catch(p){t={error:p}}finally{try{l&&!l.done&&(i=o.return)&&i.call(o)}finally{if(t)throw t.error}}return r},n.prototype.combineResults=function(e,t){if(t===void 0&&(t=Kf),e.length===0)return new Map;var i=t.toLowerCase();return e.reduce(qV[i])||new Map},n.prototype.toJSON=function(){var e,t,i,r,s=[];try{for(var o=Ye(this._index),l=o.next();!l.done;l=o.next()){var c=Dt(l.value,2),u=c[0],f=c[1],d={};try{for(var p=(i=void 0,Ye(f)),y=p.next();!y.done;y=p.next()){var m=Dt(y.value,2),h=m[0],b=m[1];d[h]=Object.fromEntries(b)}}catch(v){i={error:v}}finally{try{y&&!y.done&&(r=p.return)&&r.call(p)}finally{if(i)throw i.error}}s.push([u,d])}}catch(v){e={error:v}}finally{try{l&&!l.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:s,serializationVersion:2}},n.prototype.termResults=function(e,t,i,r,s,o,l,c){var u,f,d,p,y;if(c===void 0&&(c=new Map),r==null)return c;try{for(var m=Ye(Object.keys(s)),h=m.next();!h.done;h=m.next()){var b=h.value,v=s[b],g=this._fieldIds[b],x=r.get(g);if(x!=null){var _=x.size,E=this._avgFieldLength[g];try{for(var S=(d=void 0,Ye(x.keys())),M=S.next();!M.done;M=S.next()){var T=M.value;if(!this._documentIds.has(T)){this.removeTerm(g,T,t),_-=1;continue}var A=o?o(this._documentIds.get(T),t,this._storedFields.get(T)):1;if(A){var C=x.get(T),R=this._fieldLength.get(T)[g],L=QV(C,_,this._documentCount,R,E,l),I=i*v*A*L,O=c.get(T);if(O){O.score+=I,nk(O.terms,e);var N=Qf(O.match,t);N?N.push(b):O.match[t]=[b]}else c.set(T,{score:I,terms:[e],match:(y={},y[t]=[b],y)})}}}catch(w){d={error:w}}finally{try{M&&!M.done&&(p=S.return)&&p.call(S)}finally{if(d)throw d.error}}}}}catch(w){u={error:w}}finally{try{h&&!h.done&&(f=m.return)&&f.call(m)}finally{if(u)throw u.error}}return c},n.prototype.addTerm=function(e,t,i){var r=this._index.fetch(i,bw),s=r.get(e);if(s==null)s=new Map,s.set(t,1),r.set(e,s);else{var o=s.get(t);s.set(t,(o||0)+1)}},n.prototype.removeTerm=function(e,t,i){if(!this._index.has(i)){this.warnDocumentChanged(t,e,i);return}var r=this._index.fetch(i,bw),s=r.get(e);s==null||s.get(t)==null?this.warnDocumentChanged(t,e,i):s.get(t)<=1?s.size<=1?r.delete(e):s.delete(t):s.set(t,s.get(t)-1),this._index.get(i).size===0&&this._index.delete(i)},n.prototype.warnDocumentChanged=function(e,t,i){var r,s;try{for(var o=Ye(Object.keys(this._fieldIds)),l=o.next();!l.done;l=o.next()){var c=l.value;if(this._fieldIds[c]===t){this._options.logger("warn","MiniSearch: document with ID ".concat(this._documentIds.get(e),' has changed before removal: term "').concat(i,'" was not present in field "').concat(c,'". Removing a document after it has changed can corrupt the index!'),"version_conflict");return}}}catch(u){r={error:u}}finally{try{l&&!l.done&&(s=o.return)&&s.call(o)}finally{if(r)throw r.error}}},n.prototype.addDocumentId=function(e){var t=this._nextId;return this._idToShortId.set(e,t),this._documentIds.set(t,e),this._documentCount+=1,this._nextId+=1,t},n.prototype.addFields=function(e){for(var t=0;t<e.length;t++)this._fieldIds[e[t]]=t},n.prototype.addFieldLength=function(e,t,i,r){var s=this._fieldLength.get(e);s==null&&this._fieldLength.set(e,s=[]),s[t]=r;var o=this._avgFieldLength[t]||0,l=o*i+r;this._avgFieldLength[t]=l/(i+1)},n.prototype.removeFieldLength=function(e,t,i,r){if(i===1){this._avgFieldLength[t]=0;return}var s=this._avgFieldLength[t]*i-r;this._avgFieldLength[t]=s/(i-1)},n.prototype.saveStoredFields=function(e,t){var i,r,s=this._options,o=s.storeFields,l=s.extractField;if(!(o==null||o.length===0)){var c=this._storedFields.get(e);c==null&&this._storedFields.set(e,c={});try{for(var u=Ye(o),f=u.next();!f.done;f=u.next()){var d=f.value,p=l(t,d);p!==void 0&&(c[d]=p)}}catch(y){i={error:y}}finally{try{f&&!f.done&&(r=u.return)&&r.call(u)}finally{if(i)throw i.error}}}},n.wildcard=Symbol("*"),n}(),Qf=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)?n[e]:void 0},qV=(qa={},qa[Kf]=function(n,e){var t,i;try{for(var r=Ye(e.keys()),s=r.next();!s.done;s=r.next()){var o=s.value,l=n.get(o);if(l==null)n.set(o,e.get(o));else{var c=e.get(o),u=c.score,f=c.terms,d=c.match;l.score=l.score+u,l.match=Object.assign(l.match,d),yw(l.terms,f)}}}catch(p){t={error:p}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}return n},qa[mw]=function(n,e){var t,i,r=new Map;try{for(var s=Ye(e.keys()),o=s.next();!o.done;o=s.next()){var l=o.value,c=n.get(l);if(c!=null){var u=e.get(l),f=u.score,d=u.terms,p=u.match;yw(c.terms,d),r.set(l,{score:c.score+f,terms:c.terms,match:Object.assign(c.match,p)})}}}catch(y){t={error:y}}finally{try{o&&!o.done&&(i=s.return)&&i.call(s)}finally{if(t)throw t.error}}return r},qa[YV]=function(n,e){var t,i;try{for(var r=Ye(e.keys()),s=r.next();!s.done;s=r.next()){var o=s.value;n.delete(o)}}catch(l){t={error:l}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}return n},qa),KV={k:1.2,b:.7,d:.5},QV=function(n,e,t,i,r,s){var o=s.k,l=s.b,c=s.d,u=Math.log(1+(t-e+.5)/(e+.5));return u*(c+n*(o+1)/(n+o*(1-l+l*i/r)))},ek=function(n){return function(e,t,i){var r=typeof n.fuzzy=="function"?n.fuzzy(e,t,i):n.fuzzy||!1,s=typeof n.prefix=="function"?n.prefix(e,t,i):n.prefix===!0;return{term:e,fuzzy:r,prefix:s}}},ep={idField:"id",extractField:function(n,e){return n[e]},tokenize:function(n){return n.split(ik)},processTerm:function(n){return n.toLowerCase()},fields:void 0,searchOptions:void 0,storeFields:[],logger:function(n,e){typeof(console==null?void 0:console[n])=="function"&&console[n](e)},autoVacuum:!0},gw={combineWith:Kf,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:KV},tk={combineWith:mw,prefix:function(n,e,t){return e===t.length-1}},tp={batchSize:1e3,batchWait:10},np={minDirtFactor:.1,minDirtCount:20},ip=ht(ht({},tp),np),nk=function(n,e){n.includes(e)||n.push(e)},yw=function(n,e){var t,i;try{for(var r=Ye(e),s=r.next();!s.done;s=r.next()){var o=s.value;n.includes(o)||n.push(o)}}catch(l){t={error:l}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}},vw=function(n,e){var t=n.score,i=e.score;return i-t},bw=function(){return new Map},cu=function(n){var e,t,i=new Map;try{for(var r=Ye(Object.keys(n)),s=r.next();!s.done;s=r.next()){var o=s.value;i.set(parseInt(o,10),n[o])}}catch(l){e={error:l}}finally{try{s&&!s.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}return i},ik=/[\n\r -#%-*,-/:;?@[-\]_{}\u00A0\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u1680\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2000-\u200A\u2010-\u2029\u202F-\u2043\u2045-\u2051\u2053-\u205F\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u3000-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]+/u;const rk=["label","models","source"];class sk{constructor(){this._searchEngine=new JV({fields:["path","name"],storeFields:["path"],tokenize:(e,t)=>e.split('"')}),this._featureIds=[],this.zincObjects=[],this.regions=[]}indexMetadata(e,t){const i=[];for(const r of rk)if(r in t){const s=t[r];i.includes(s)||(this.addTerm_(e,s),i.push(s))}}addZincObject(e,t){const i=e.getRegion().getFullPath(),s={path:i?`${i}/${e.groupName}`:e.groupName,name:e.groupName,id:t};this._searchEngine.add(s,{fields:["path","name"]}),this.zincObjects.push(e)}removeZincObject(e,t){const i=e.getRegion().getFullPath(),s={path:i?`${i}/${e.groupName}`:e.groupName,name:e.groupName,id:t};this._searchEngine.remove(s,{fields:["path","name"]});for(let o=0;o<this.zincObjects.length;o++)if(t===this.zincObjects[o].uuid){this.zincObjects.splice(o,1);return}}addRegion(e,t){const i={path:e.getFullPath(),name:e.getName(),id:t};this._searchEngine.add(i,{fields:["path","name"]}),this.regions.push(e)}clearResults(){this._}removeAll(){this._searchEngine.removeAll(),this.zincObjects.length=0,this.regions.length=0}auto_suggest(e){return this._searchEngine.autoSuggest(e,{prefix:!0})}processResults(e,t){const i={regionPath:void 0,label:'Search Results for "'};return Array.isArray(t)?i.label+=",".join(t):i.label+=t,i.label+='"',e.length===1&&(e[0].isRegion?i.regionPath=e[0].getFullPath():e[0].isZincObject&&(i.regionPath=e[0].getRegion().getFullPath(),i.label=e[0].groupName)),i.zincObjects=qF(e),i}search(e){const t=this._searchEngine.search(e,{prefix:!0}),i=this.zincObjects.filter(s=>t.map(o=>o.id).includes(s.uuid)),r=this.regions.filter(s=>t.map(o=>o.id).includes(s.uuid));return i.push(...r),i}searchTerms(e){let t=[];return e.forEach(i=>{const r=this.search(i);t.push(...r)}),t}searchAndProcessResult(e){let t=[];return Array.isArray(e)?t=this.searchTerms(e):t=this.search(e),this.processResults(t,e)}}const ok=rw("settings",{state:()=>({organCuries:[],imageTypes:[],imageThumbnails:{}}),getters:{imageTypeCached:n=>e=>n.imageTypes.includes(e),getImageThumbnails:n=>(e,t=void 0)=>{if(t){let i={};return Object.entries(n.imageThumbnails).forEach(([r,s])=>{t.includes(r)&&(i[r]=s.filter(o=>o.type===e))}),i}return n.imageThumbnails}},actions:{updateOrganCuries(n){this.organCuries=n},updateImageThumbnails(n,e){this.imageTypes.push(n),Object.keys(e).forEach(t=>{t in this.imageThumbnails||(this.imageThumbnails[t]=[]),this.imageThumbnails[t].push(...e[t])})}}}),uu=async(n,e,t)=>await(await fetch(`${n}/get-files-info-for-curies`,{method:"POST",body:JSON.stringify({curies:e.map(s=>s.id),filetypes:t}),headers:{"Content-Type":"application/json"}})).json(),du=n=>n.substring(n.lastIndexOf("/")+1),ak=(n,e)=>`${n}/thumbnail/${e}`,lk=async(n,e,t)=>{try{const i=await uu(n,e,["biolucida-2d","biolucida-3d"]);if(i.files_info){let r={};for(const[s,o]of Object.entries(i.files_info))if(o.length>0){let l=[];o.forEach(c=>{const u=ak(n,c.biolucida_id);if(c.biolucida_id){let f={thumbnail:u,resource:c.file_path,id:c.id,title:du(c.file_path),type:t,link:u,mimetype:c.mimetype,species:c.species,version:c.version};l.push(f)}}),r[s]=l}return r}}catch(i){console.error("Error:",i)}return{}},ck=(n,e,t,i)=>`${n}/thumbnail/neurolucida?datasetId=${e}&version=${t}&path=files/${i}`,uk=async(n,e,t)=>{try{const i=await uu(n,e,["mbf-segmentation"]);if(i.files_info){let r={};for(const[s,o]of Object.entries(i.files_info))if(o.length>0){let l=[];o.forEach(c=>{const u=ck(n,c.id,c.version,c.file_path);let f={thumbnail:u,resource:c.file_path,id:c.id,title:du(c.file_path),type:t,link:u,mimetype:c.mimetype,species:c.species,version:c.version};l.push(f)}),r[s]=l}return r}}catch(i){console.error("Error:",i)}return{}},xw=(n,e,t)=>{if(n&&e)for(let i=0;i<n.isSourceOf.length;i++)for(let r=0;r<e.length;r++){const s=e[r];if(n.id===s.id&&(!t||s.type===t)&&n.isSourceOf[i]===s.file_path)return s}},dk=(n,e,t)=>{const i=xw(e,t,"abi-scaffold-view-file"),r=xw(i,t,"abi-thumbnail");if(r)return`${n}/s3-resource/${r.id}/files/${r.file_path}`},hk=async(n,e,t)=>{try{const i=await uu(n,e,["abi-thumbnail","abi-scaffold-metadata-file","abi-scaffold-view-file"]);if(i.files_info){let r={};for(const[s,o]of Object.entries(i.files_info))if(o.length>0){let l=[];o.forEach(c=>{if(c.type==="abi-scaffold-metadata-file"){const u=dk(n,c,o);if(u){let f={thumbnail:u,resource:c.file_path,id:c.id,title:du(c.file_path),type:t,link:u,species:c.species,version:c.version};l.push(f)}}}),r[s]=l}return r}}catch(i){console.error("Error:",i)}return{}},fk=(n,e)=>{if(e.isSourceOf.length>0)return`${n}/s3-resource/${e.id}/files/${e.isSourceOf[0]}`},pk=async(n,e,t)=>{try{const i=await uu(n,e,["abi-plot","abi-thumbnail"]);if(i.files_info){let r={};for(const[s,o]of Object.entries(i.files_info))if(o.length>0){let l=[];o.forEach(c=>{if(c.type==="abi-plot"){const u=fk(n,c);if(u){let f={thumbnail:u,resource:c.file_path,id:c.id,title:du(c.file_path),type:t,link:u,species:c.species,version:c.version};l.push(f)}}}),r[s]=l}return r}}catch(i){console.error("Error:",i)}return{}},mk={name:"ScaffoldVuer",mixins:[{methods:{populateMapWithImages:async function(n,e){let t={};for(const[i,r]of Object.entries(n)){const s=await this.downloadImageThumbnail(i,r,e);s?t[i]=s:t[i]=this.markerLabels[i]}return t},downloadImageThumbnail:async function(n,e,t){const i=e.length;if(i>0){const r=Math.floor(Math.random()*i),s=e[r].thumbnail;try{const o=await this.getImageThumbnail(s,t);return await this.addImageThumbnailMarker(n,o)}catch{e.splice(r),this.downloadImageThumbnail(n,e,t)}}},getImageThumbnail:async function(n,e){return new Promise((t,i)=>{e==="Image"||e==="Segmentation"?this.getBinaryThumbnail(n).then(r=>t(r)).catch(r=>i(r)):this.getGenericThumbnail(n).then(r=>t(r)).catch(r=>i(r))})},getBinaryThumbnail:async function(n){return new Promise((e,t)=>{fetch(n).then(i=>{if(i.status>=200&&i.status<300)return i.text();t()}).then(i=>{if(i){let r=new Image;r.onload=function(){e(`data:'image/png';base64,${i}`)},r.onerror=function(){t(new Error("Failed to load image at "+n))},r.src=`data:'image/png';base64,${i}`}else t(new Error("Failed to load image at "+n))})})},getGenericThumbnail:async function(n){return new Promise((e,t)=>{let i=new Image;i.onload=function(){e(n)},i.onerror=function(){t(new Error("Failed to load image at "+n))},i.src=n})},addImageThumbnailMarker:async function(n,e){const t=await(await fetch(e)).blob(),i=URL.createObjectURL(t);return{number:this.markerLabels[n],imgURL:i}}}}],components:{Button:Qi,Col:fn,Loading:FL,Option:Rs,Popover:Dl,Row:kn,Select:As,Slider:Rn,TabPane:s0,Tabs:r0,MapSvgIcon:sp.MapSvgIcon,MapSvgSpriteColor:sp.MapSvgSpriteColor,PrimitiveControls:Yx,ScaffoldTooltip:aw,ElIconWarningFilled:pm,ElIconArrowDown:Du,ElIconArrowLeft:ji,DrawToolbar:fu.DrawToolbar,ScaffoldTreeControls:Jx},setup(n){return{annotator:a.markRaw(new BV(`${n.flatmapAPI}annotator`))}},props:{url:{type:String,default:""},showColourPicker:{type:Boolean,default:!1},displayUI:{type:Boolean,default:!0},displayAtStartUp:{type:Boolean,default:!0},helpMode:{type:Boolean,default:!1},helpModeActiveItem:{type:Number,default:0},helpModeDialog:{type:Boolean,default:!1},helpModeLastItem:{type:Boolean,default:!1},helpModeInitialIndex:{type:Number,default:0},displayWarning:{type:Boolean,default:!0},warningMessage:{type:String,default:"Beta feature - under active development"},displayLatestChanges:{type:Boolean,default:!1},latestChangesMessage:{type:String,default:"New feature - Local search is now available"},displayMarkers:{type:Boolean,default:!1},markerCluster:{type:Boolean,default:!1},markerLabels:{type:Object,default:function(){return{}}},displayMinimap:{type:Boolean,default:!1},format:{type:String,default:"metadata"},minimapSettings:{type:Object,default:function(){return{x_offset:16,y_offset:16,width:128,height:128,align:"top-right"}}},enableOpenMapUI:{type:Boolean,default:!1},openMapOptions:{type:Array,default:function(){return[{display:"Open AC Map",key:"AC"},{display:"Open FC Map",key:"FC"},{display:"Open 3D Human Map",key:"3D"}]}},state:{type:Object,default:void 0},region:{type:String,default:""},viewURL:{type:String,default:""},render:{type:Boolean,default:!0},flatmapAPI:{type:String,default:"https://mapcore-demo.org/current/flatmap/v3/"},enableLocalAnnotations:{type:Boolean,default:!1},sparcAPI:{type:String,default:"https://api.sparc.science/"},imageThumbnailSidebar:{type:Boolean,default:!1}},provide(){return{flatmapAPI:this.flatmapAPI,scaffoldUrl:this.url,$annotator:this.annotator,boundingDims:this.boundingDims,getFeaturesAlert:()=>{}}},data:function(){return{annotator:void 0,createData:{drawingBox:!1,toBeConfirmed:!1,points:[],shape:"",x:0,y:0,editingIndex:-1,faceIndex:-1,toBeDeleted:!1},currentTime:0,timeVarying:!1,isPlaying:!1,isReady:!1,isTransitioning:!1,tooltipAppendToBody:!1,hoverVisibilities:[{value:!1,ref:"zoomInPopover"},{value:!1,ref:"zoomOutPopover"},{value:!1,ref:"zoomFitPopover"},{value:!1,ref:"openMapPopover"},{value:!1,ref:"settingsPopover"},{value:!1,ref:"sliderPopover"},{value:!1,ref:"regionVisibilityPopover"},{value:!1,ref:"warningPopover"},{value:!1,ref:"whatsNewPopover"},{value:!1,refs:"toolbarPopover",ref:"editPopover"},{value:!1,refs:"toolbarPopover",ref:"pointPopover"},{value:!1,refs:"toolbarPopover",ref:"lineStringPopover"},{value:!1,refs:"toolbarPopover",ref:"deletePopover"}],inHelp:!1,helpModeActiveIndex:this.helpModeInitialIndex,loading:!1,duration:3e3,drawerOpen:!0,currentBackground:"white",availableBackground:["white","lightskyblue","black"],minimisedSlider:!1,sliderPosition:"",timeMax:100,orginalDuration:"",animateDuration:"6secs",playSpeed:[{value:.1,label:"0.1x"},{value:.5,label:"0.5x"},{value:1,label:"1x"},{value:2,label:"2x"},{value:5,label:"5x"},{value:10,label:"10x"}],currentSpeed:1,timeStamps:{},defaultCheckedKeys:[],tData:{label:"",region:"",visible:!1,x:200,y:200,active:!1},fileFormat:"metadata",markerLabelEntry:a.markRaw({}),previousMarkerLabelEntry:a.markRaw({}),viewingMode:"Exploration",viewingModes:{Exploration:"View and explore detailed visualization of 3D scaffolds",Annotation:"View internal identifiers of features"},openMapRef:void 0,backgroundIconRef:void 0,userInformation:void 0,toolbarOptions:["Delete","Edit","Point","LineString"],activeDrawTool:void 0,activeDrawMode:void 0,localAnnotationsList:a.markRaw([]),boundingDims:{centre:[0,0,0],size:[1,1,1]},imageRadio:!1,imageType:"Image",imageTypes:["Image","Segmentation","Scaffold","Plot"],imageClicked:""}},watch:{format:{handler:function(n){this.fileFormat=n},immediate:!0},url:{handler:function(n){(this.state===void 0||this.state.url===void 0)&&this.setURL(n)},immediate:!0},region:{handler:function(n){this.state||this.viewURL||this.setFocusedRegion(n)},immediate:!0},state:{handler:function(n){this.setState(n)},immediate:!0,deep:!0},viewURL:{handler:function(n){this.updateViewURL(n)},immediate:!0},helpMode:function(n,e){n!==e&&this.setHelpMode(n)},helpModeActiveItem:function(){this.helpMode&&(this.helpModeActiveIndex+=1,this.setHelpMode(this.helpMode))},displayMarkers:function(n){this.$module.scene.displayMarkers=n,this.$module.scene.forcePickableObjectsUpdate=!0},displayMinimap:function(n){this.$module.scene.displayMinimap=n},currentTime:{handler:function(){this.$emit("timeChanged",this.currentTime)}},duration:function(){this.$module.scene.setDuration(this.duration)},minimapSettings:{deep:!0,handler:"updateMinimapScissor"},render:function(n){this.toggleRendering(n)},markerCluster:{handler:function(n){this.$module.scene.enableMarkerCluster(n)},immediate:!0},markerLabels:function(n){this.markerLabelEntry=a.markRaw({...n})},markerLabelEntry:function(n){for(const[e,t]of Object.entries(this.previousMarkerLabelEntry))this.setMarkerModeForObjectsWithName(e,t,"off");for(const[e,t]of Object.entries(n))this.setMarkerModeForObjectsWithName(e,t,"on");this.previousMarkerLabelEntry=a.markRaw({...n})}},beforeCreate:function(){this.$module=new cw,this.selectedObjects=[],this.hoveredObjects=[],this.currentBackground="white",this._currentURL=void 0,this.availableBackground=["white","black","lightskyblue"],this.$_searchIndex=new sk},mounted:function(){this.openMapRef=a.shallowRef(this.$refs.openMapRef),this.backgroundIconRef=a.shallowRef(this.$refs.backgroundIconRef),this.$refs.scaffoldTreeControls.setModule(this.$module);let n=new kV;n.subscribe(this,this.eventNotifierCallback),this.$module.addNotifier(n),this.$module.addOrganPartAddedCallback(this.zincObjectAdded),this.$module.addOrganPartRemovedCallback(this.zincObjectRemoved),this.$module.initialiseRenderer(this.$refs.display),this.toggleRendering(this.render),this.ro=new ResizeObserver(this.adjustLayout).observe(this.$refs.scaffoldContainer),this.helpTextWait=[],this.helpTextWait.length=this.hoverVisibilities.length,this.defaultRate=this.$module.getPlayRate(),this.$module.zincRenderer.addPreRenderCallbackFunction(()=>{this.currentTime=this.$module.getCurrentTime()})},beforeUnmount:function(){this.ro&&this.ro.disconnect(),this.$module.destroy(),this.$module=void 0},computed:{...sw(ow,["userToken"]),...AV(ok),annotationDisplay:function(){return this.viewingMode==="Annotation"&&this.tData.active===!0&&(this.activeDrawMode==="Edit"||this.activeDrawMode==="Delete")},imageThumbnailsEntry:function(){return this.imageClicked?this.convertUberonToName():{}}},methods:{addZincObject:function(n){this.$module.scene&&this.$module.scene.addZincObject(n)},zincObjectAdded:function(n){this.loading=!1,this.$_searchIndex.addZincObject(n,n.uuid),this.timeVarying===!1&&n.isTimeVarying()&&(this.timeVarying=!0),this.$emit("zinc-object-added",n)},removeFromLocalAnnotationList:function(n,e){for(let t=0;t<this.localAnnotationsList.length;t++){const i=this.localAnnotationsList[t];if(i.region===n&&i.group===e){this.localAnnotationsList.splice(t,1);return}}},zincObjectRemoved:function(n){if(this.$module.scene){const e=n.region.getFullPath(),t=n.groupName;n.region.findObjectsWithGroupName(t,!1).length===0&&(this.$_searchIndex.removeZincObject(n,n.uuid),this.removeFromLocalAnnotationList(e,t))}},addRegionsToSearchIndex:function(){this.$module.scene.getRootRegion().getChildRegions(!0).forEach(t=>{this.$_searchIndex.addRegion(t,t.uuid)})},backgroundChangeCallback:function(n){this.currentBackground=n,this.$module.zincRenderer.getThreeJSRenderer().setClearColor(this.currentBackground,1)},captureScreenshotCallback:function(){this.$module.zincRenderer.removePostRenderCallbackFunction(this.captureID);let n=this.$module.zincRenderer.getThreeJSRenderer().domElement.toDataURL("image/png"),e=document.createElement("a");document.body.append(e),this.captureFilename?e.download=this.captureFilename:e.download="screenshot.png",e.href=n,e.click(),e.remove()},captureScreenshot:function(n){this.captureFilename=n,this.captureID=this.$module.zincRenderer.addPostRenderCallbackFunction(this.captureScreenshotCallback)},clearScene:function(){this.$refs.scaffoldTreeControls&&this.$refs.scaffoldTreeControls.clear(),this.$_searchIndex&&this.$_searchIndex.removeAll(),this.$module.scene&&this.$module.scene.clearAll()},addAndEditAnnotations:function(n,e,t,i){const r=Gx(this.annotator,this.userToken,t,n,e,this.url,i);if(this.enableLocalAnnotations){r.group=e;let s=n;s.slice(-1)==="/"&&(s=s.slice(0,-1)),r.region=s,this.removeFromLocalAnnotationList(s,e),this.localAnnotationsList.push(r)}this.$emit("userPrimitivesUpdated",{region:n,group:e,zincObject:t})},primitivesUpdated:function(n){if(n.isZincObject&&n.isEditable){const e=n.groupName,t=n.region.getFullPath();this.addAndEditAnnotations(t,e,n,"Position Updated")}},confirmCreate:function(n){if(n){let e;if(n.shape==="Point")e=this.$module.scene.createPoints(n.region,n.group,this.createData.points,n.group,8942);else if(n.shape==="LineString")e=this.$module.scene.createLines(n.region,n.group,[this.createData.points[0],this.createData.points[1]],60962);else if(n.editingIndex>-1&&this._editingZincObject){this._editingZincObject.editVertices([this.createData.points[1]],n.editingIndex);const t=this._editingZincObject.region.getFullPath()+"/",i=this._editingZincObject.groupName;this.addAndEditAnnotations(t,i,this._editingZincObject,"Position Updated")}e&&(this.addAndEditAnnotations(n.region,n.group,e.zincObject,"Create"),e.zincObject.isEditable=!0,this.tData.region=n.region,this.tData.label=n.group,this.changeActiveByName([n.group],n.region,!1))}this.cancelCreate()},cancelCreate:function(){this.createData.points.length=0,this.createData.toBeConfirmed=!1,this._editingZincObject=void 0,this.createData.editingIndex=-1,this.createData.faceIndex=-1,this.tData.visible=!1,this.createData.toBeDeleted=!1,this._tempLine&&(this.$module.scene.removeTemporaryPrimitive(this._tempLine),this._tempLine=void 0),this._tempPoint&&(this.$module.scene.removeTemporaryPrimitive(this._tempPoint),this._tempPoint=void 0)},confirmDelete:function(){var n;if((n=this._editingZincObject)!=null&&n.isEditable){const e=this._editingZincObject.region.getFullPath()+"/",t=this._editingZincObject.groupName;Gx(this.annotator,this.userToken,this._editingZincObject,e,t,this.url,"Deleted")&&this.$module.scene.getRootRegion().findChildFromPath(e).removeZincObject(this._editingZincObject)}this.cancelCreate()},formatTooltip(n){if(this.timeMax>=1e3&&n){let e=(n%6e4/1e3).toFixed(2)+"s";return(n>6e4?(n/6e4).toFixed(0)+"m ":"")+e}return n?n.toFixed(2)+" ms":"0 ms"},fitWindow:function(){if(this.$module.scene){let n=!1;this._boundingBoxGeo&&(n=this._boundingBoxGeo.getVisibility(),this._boundingBoxGeo.setVisibility(!1)),this.$module.scene.viewAll(),this._boundingBoxGeo&&(YF(this._boundingBoxGeo,this.$module.scene),this._boundingBoxGeo.setVisibility(n))}},zoomIn:function(){this.$module.scene&&this.$module.scene.changeZoomByScrollRateUnit(-1)},zoomOut:function(){this.$module.scene&&this.$module.scene.changeZoomByScrollRateUnit(1)},speedChanged:function(n){this.currentSpeed=n,this.$module.setPlayRate(this.defaultRate*this.currentSpeed)},stopFreeSpin:function(){this.$module.scene.getZincCameraControls().stopAutoTumble(),this.isTransitioning=!1},findObjectsWithGroupName:function(n){let e=[];return n&&n!=""&&this.$module.scene&&(e=this.$module.scene.findObjectsWithGroupName(n)),e},toggleDrawing:function(n,e){this.createData.toBeDeleted=!1,n==="mode"?(this.activeDrawMode=e,this.createData.shape="",this.$module.selectObjectOnPick=!0):n==="tool"&&(this.activeDrawTool=e,this.createData.shape=this.activeDrawTool,this.$module.selectObjectOnPick=!1)},toggleDrawingBox:function(){this.createData.drawingBox=!this.createData.drawingBox},viewRegion:function(n){const e=this.$module.scene.getRootRegion(),t=Array.isArray(n)?n:[n],i=Ro(e,t,"",!0);let r=this.$module.scene.getBoundingBoxOfZincObjects(i);if(r){if(this.$module.isSyncControl())this.$module.setSyncControlZoomToBox(r);else{const s=this.$module.scene.camera.far-this.$module.scene.camera.near;this.$module.scene.viewAllWithBoundingBox(r),this.$module.scene.camera.far=this.$module.scene.camera.near+s,this.$module.scene.camera.updateProjectionMatrix()}return!0}return!1},setFocusedRegion:function(n){n&&(this.isReady?this.viewRegion(n):this.$module.setFinishDownloadCallback(this.setURLFinishCallback({region:n})))},updateViewURL:function(n){if(n)if(this.isReady){const e=new URL(n,this.url);this.$module.scene.loadViewURL(e)}else this.$module.setFinishDownloadCallback(this.setURLFinishCallback({viewURL:n}))},createEditTemporaryLines:function(n){if(n&&(this.createData.shape==="LineString"||this.createData.editingIndex>-1)&&this.createData.points.length===1)if(this._tempLine){const e=this._tempLine.geometry.getAttribute("position");e.setXYZ(1,n[0],n[1],n[2]),e.needsUpdate=!0}else this._tempLine=this.$module.scene.addTemporaryLines([this.createData.points[0],n],65535)},draw:function(n){n&&n.length>0&&n[0].data.group&&n[0].extraData.worldCoords&&(this.createData.shape==="Point"?this.drawPoint(n[0].extraData.worldCoords,n):(this.createData.shape==="LineString"||this.createData.editingIndex>-1)&&this.drawLine(n[0].extraData.worldCoords,n))},drawPoint:function(n,e){this.createData.toBeConfirmed===!1&&(this.createData.points.length=0,this.createData.points.push(n),this.showRegionTooltipWithAnnotations(e,!0,!1),this.tData.x=50,this.tData.y=200,this._tempPoint=this.$module.scene.addTemporaryPoints([n],16776960),this.createData.toBeConfirmed=!0)},drawLine:function(n,e){this.createData.toBeConfirmed===!1&&(this.createData.points.length===1?(this.createData.points.push(n),this.showRegionTooltipWithAnnotations(e,!0,!1),this.tData.x=50,this.tData.y=200,this.createData.toBeConfirmed=!0):(this._tempPoint=this.$module.scene.addTemporaryPoints([n],16776960),this.createData.points.push(n)))},getRendererInfo:function(){if(this.$module.zincRenderer)return this.$module.zincRenderer.getThreeJSRenderer().info},freeSpin:function(){if(this.$module.scene){let n=this.$module.scene.getZincCameraControls();this.isTransitioning=!0,n.enableAutoTumble(),n.autoTumble([1,0],Math.PI,!0),setTimeout(this.stopFreeSpin,4e3)}},activateAnnotationMode:function(n,e){if(this.userInformation||this.enableLocalAnnotations)if(this.createData.toBeDeleted=!1,this.createData.shape!==""||this.createData.editingIndex>-1)n.length>0&&e.identifiers[0].coords&&(this.createData.x=e.identifiers[0].coords.x,this.createData.y=e.identifiers[0].coords.y,this.draw(e.identifiers));else{if(this.activeDrawMode==="Edit"){const t=$F(e);t&&this.activateEditingMode(t.zincObject,t.faceIndex,t.vertexIndex,t.point)}else if(this.activeDrawMode==="Delete"){const t=ZF(e);t&&(this.createData.toBeDeleted=!0,this._editingZincObject=t)}this.activeDrawMode==="Edit"||this.activeDrawMode==="Delete"?(this.showRegionTooltipWithAnnotations(e.identifiers,!0,!1),this.tData.x=50,this.tData.y=200):this.showRegionTooltipWithAnnotations(e.identifiers,!0,!0)}else this.showRegionTooltipWithAnnotations(e.identifiers,!0,!0)},activateEditingMode:function(n,e,t,i){this._editingZincObject=n,this.createData.faceIndex=e,this.createData.editingIndex=t,this.drawLine(i,void 0)},eventNotifierCallback:function(n){if(!(this.createData.toBeConfirmed||this.createData.toBeDeleted)){const e=[];let t=[];if((n.eventType==1||n.eventType==2)&&(n.identifiers.forEach(i=>{if(i){let r=i.data.id?i.data.id:i.data.group;e.push(r),i.data&&(i.data.imageType=this.imageRadio?this.imageType:"Standard")}}),t=n.zincObjects),n.eventType==1)this.viewingMode==="Annotation"?this.activateAnnotationMode(e,n):(this.$refs.scaffoldTreeControls&&(e.length>0?(this.$refs.scaffoldTreeControls.updateActiveUI(t),this.updatePrimitiveControls(t)):(this.hideRegionTooltip(),this.$refs.scaffoldTreeControls.removeActive(!1))),this.imageRadio&&n.identifiers.length&&n.identifiers[0]?this.imageClicked=n.identifiers[0].data.id?n.identifiers[0].data.id:n.identifiers[0].data.group:this.imageClicked="",this.$emit("scaffold-selected",n.identifiers));else if(n.eventType==2){if(this.selectedObjects.length===0){if(this.hideRegionTooltip(),this.$refs.scaffoldTreeControls&&(e.length>0?this.$refs.scaffoldTreeControls.updateHoverUI(t):this.$refs.scaffoldTreeControls.removeHover(!0)),n.identifiers.length>0&&n.identifiers[0]){let i=n.identifiers[0].data.id?n.identifiers[0].data.id:n.identifiers[0].data.group;n.identifiers[0].coords&&(this.tData.active=!1,this.tData.visible=!0,this.tData.label=i,n.identifiers[0].data.region?this.tData.region=n.identifiers[0].data.region:this.tData.region=void 0,this.tData.x=n.identifiers[0].coords.x,this.tData.y=n.identifiers[0].coords.y,this.createEditTemporaryLines(n.identifiers[0].extraData.worldCoords))}this.$emit("scaffold-highlighted",n.identifiers)}}else if(n.eventType==3&&n.identifiers.length>0&&n.identifiers[0]){if(n.identifiers[0].coords){const r=this.$refs.scaffoldContainer.getBoundingClientRect();this.tData.x=n.identifiers[0].coords.x-r.left,this.tData.y=n.identifiers[0].coords.y-r.top,this.createEditTemporaryLines(n.identifiers[0].extraData.worldCoords)}this.createEditTemporaryLines(n.identifiers[0].extraData.worldCoords);const i=n.identifiers[0].data.id?n.identifiers[0].data.id:n.identifiers[0].data.group;this.imageClicked!==i&&(this.imageClicked="")}}},getCoordinatesOfSelected:function(){if(this.selectedObjects&&this.selectedObjects.length>0)return this.$module.scene.getObjectsScreenXY(this.selectedObjects)},getDynamicSelectedCoordinates:function(){return this.$module.selectedScreenCoordinates},timeChange:function(n){let e=n/this.timeMax*100;e!=this.currentTime&&this.$module.updateTime(e)},updatePrimitiveControls:function(n){this.selectedObjects=n,this.selectedObjects&&this.selectedObjects.length>0?this.$refs.primitiveControls.setObject(this.selectedObjects[0]):this.$refs.primitiveControls.setObject(void 0)},objectSelected:function(n,e){this.updatePrimitiveControls(n),this.$module.setSelectedByZincObjects(n,void 0,{},e)},objectHovered:function(n,e){this.hoveredObjects=n,this.$module.setHighlightedByZincObjects(n,void 0,{},e)},changeActiveByName:function(n,e,t){const i=Array.isArray(n);if(n===void 0||i&&n.length===0)this.$refs.scaffoldTreeControls.removeActive(t);else{let r=n;i||(r=[r]),this.$refs.scaffoldTreeControls.changeActiveByNames(r,e,t)}},changeHighlightedByName:function(n,e,t){const i=Array.isArray(n);if(n===void 0||i&&n.length===0)this.$refs.scaffoldTreeControls.removeHover(t);else{let r=n;i||(r=[r]),this.$refs.scaffoldTreeControls.changeHoverByNames(r,e,t)}},play:function(n){this.$module.playAnimation(n),this.isPlaying=n},setHelpMode:function(n){const e=this.hoverVisibilities.length,t=e-1,i=this.hoverVisibilities[this.helpModeActiveIndex];if(i){const r=i==null?void 0:i.refs,s=i==null?void 0:i.ref;this.$refs[r||s]||(this.helpModeActiveIndex+=1)}n||(this.helpModeActiveIndex=this.helpModeInitialIndex),n&&this.helpModeActiveIndex>=t&&this.$emit("help-mode-last-item",!0),n&&!this.helpModeDialog?(this.inHelp=!0,this.hoverVisibilities.forEach(r=>{r.value=!0})):n&&this.helpModeDialog&&e>this.helpModeActiveIndex?this.helpModeActiveIndex>-1&&setTimeout(()=>{this.inHelp=!1,this.hoverVisibilities.forEach(r=>{r.value=!1}),this.showHelpText(this.helpModeActiveIndex,200)},300):(this.inHelp=!1,this.hoverVisibilities.forEach(r=>{r.value=!1}))},displayTooltipOfObjectsCallback:function(n,e,t,i,r){const s=this;return function(){s.$module.zincRenderer.removePostRenderCallbackFunction(s.$_regionTooltipCallback),s.$_regionTooltipCallback=void 0,s.displayTooltipOfObjects(n,e,t,i,r)}},liveUpdateTooltipPosition:function(){this.$module.selectedCenter&&(this.tData.x=this.$module.selectedScreenCoordinates.x,this.tData.y=this.$module.selectedScreenCoordinates.y)},displayTooltipOfObjects:function(n,e,t,i,r){if(e.length>0){let s=e[0].getClosestVertexDOMElementCoords(this.$module.scene);if(s)return s.inView?(n.includes("Search Results for")?this.tData.active=!1:this.tData.active=!0,this.tData.visible=!0,this.tData.label=n,this.tData.x=s.position.x,this.tData.y=s.position.y,this.tData.region=t,this.$_liveCoordinatesUpdated&&this.$module.zincRenderer.removePostRenderCallbackFunction(this.$_liveCoordinatesUpdated),r&&(this.$module.setupLiveCoordinates(e),this.$_liveCoordinatesUpdated=this.$module.zincRenderer.addPostRenderCallbackFunction(this.liveUpdateTooltipPosition))):(this.hideRegionTooltip(),i&&(this.$module.scene.viewAll(),this.$_regionTooltipCallback&&this.$module.zincRenderer.removePostRenderCallbackFunction(this.$_regionTooltipCallback),this.$_regionTooltipCallback=this.$module.zincRenderer.addPostRenderCallbackFunction(this.displayTooltipOfObjectsCallback(n,e,t,i,r)))),!0}return this.hideRegionTooltip(),!1},showRegionTooltipWithObjects:function(n,e,t,i,r){return n&&e&&e.length>0&&this.$module.scene?this.displayTooltipOfObjects(n,e,t,i,r):(this.hideRegionTooltip(),!1)},showRegionTooltip:function(n,e,t){if(n&&this.$module.scene){const i=this.$module.scene.getRootRegion(),s=Ro(i,[n],"",!0);let o;return s&&s.length>0&&(o=s[0].getRegion().getFullPath()),this.showRegionTooltipWithObjects(n,s,o,e,t)}return this.hideRegionTooltip(),!1},showRegionTooltipWithAnnotations:function(n,e,t){if(this.$module.scene){const i=Ux(this.$module.scene,n);if(i&&i.objects.length>0)return this.showRegionTooltipWithObjects(i.label,i.objects,i.regionPath,e,t)}return this.hideRegionTooltip(),!1},changeViewingMode:function(n){if(this.$module){if(n&&(this.viewingMode=n),this.viewingMode==="Annotation"){let e=!1;this.userInformation&&(e=!0),this.userInformation=void 0,this.annotator.authenticate(this.userToken).then(t=>{t.name&&t.email&&(this.userInformation=t,e||eV(this.annotator,this.userToken,this.url).then(i=>{i&&i.features&&Hx(this.$module.scene,i.features)}))})}else this.viewingMode==="Exploration"&&(this.activeDrawTool=void 0,this.activeDrawMode=void 0,this.createData.shape="");this.viewingMode==="Exploration"||this.viewingMode==="Annotation"&&this.createData.shape===""?this.$module.selectObjectOnPick=!0:this.$module.selectObjectOnPick=!1,this.cancelCreate()}},hideRegionTooltip:function(){this.$_liveCoordinatesUpdated&&(this.$module.zincRenderer.removePostRenderCallbackFunction(this.$_liveCoordinatesUpdated),this.$module.setupLiveCoordinates(void 0)),this.tData.active=!1,this.tData.visible=!1,this.tData.region=void 0},setMarkerModeForObjectsWithName:function(n,e,t){if(n&&this.$module.scene){let i=e;typeof e=="number"&&(i={number:e,imgURL:void 0});const r=this.$module.scene.getRootRegion();Ro(r,[n],"",!0).forEach(l=>l.setMarkerMode(t,i))}},setMarkerModeWithAnnotations:function(n,e){if(this.$module.scene){const t=Ux(this.$module.scene,n);t&&t.objects.length>0&&t.objects.forEach(i=>i.setMarkerMode(e))}},showHelpText:function(n,e=500){this.inHelp||(clearTimeout(this.helpTextWait[n]),this.helpTextWait[n]=setTimeout(()=>{this.hoverVisibilities[n].value=!0,this.$emit("shown-tooltip")},e))},hideHelpText:function(n,e=500){this.inHelp||(clearTimeout(this.helpTextWait[n]),this.helpTextWait[n]=setTimeout(()=>{this.hoverVisibilities[n].value=!1},e))},search:function(n,e){if(this.$_searchIndex){if(n===void 0||n===""||Array.isArray(n)&&n.length===0)return this.objectSelected([],!0),!1;{const t=this.$_searchIndex.searchAndProcessResult(n),i=t.zincObjects;if(i.length>0){if(this.objectSelected(i,!0),e)for(let r=0;r<i.length;r++)i[r]&&i[r].groupName&&this.showRegionTooltipWithObjects(t.label,i,t.regionPath,!0,!0);return!0}else this.objectSelected([],!0)}}return!1},fetchSuggestions:function(n){return this.$_searchIndex===void 0?[]:this.$_searchIndex.auto_suggest(n)},updateMinimapScissor:function(){Object.keys(this.minimapSettings).forEach(n=>{this.$module.scene.minimapScissor[n]=this.minimapSettings[n]}),this.$module.scene.minimapScissor.updateRequired=!0},updateSettingsfromScene:function(){this.currentSpeed=1,this.$module.setPlayRate(this.defaultRate),this.orginalDuration=this.$module.scene.getMetadataTag("OriginalDuration"),this.animateDuration=this.$module.scene.getMetadataTag("Duration");let n=this.$module.scene.getMetadataTag("TimeStamps");this.timeStamps={};for(const e in n)this.timeStamps[n[e]]=e;this.timeMax=this.$module.scene.getDuration()},setURLFinishCallback:function(n){return()=>{if(n){if(n.viewport)this.$module.scene.getZincCameraControls().setCurrentCameraSettings(n.viewport);else if(n.viewURL&&n.viewURL!==""){const i=new URL(n.viewURL,this.url);this.$module.scene.loadViewURL(i)}else n.region&&n.region!==""&&this.viewRegion(n.region);n.visibility&&this.$nextTick(()=>{this.$refs.scaffoldTreeControls.setState(n.visibility)})}this.localAnnotationsList.length=0,this.updateSettingsfromScene(),this.$module.updateTime(.01),this.$module.updateTime(0),this.$module.unsetFinishDownloadCallback(),this.addRegionsToSearchIndex(),this.$emit("on-ready"),this.setMarkers(),this._boundingBoxGeo=this.$module.scene.addBoundingBoxPrimitive("_helper","boundingBox",4251856,.15),this._slides=this.$module.scene.addSlicesPrimitive("_helper",["x-plane","y-plane","z-plane"],[16733525,5635925,5592575],.5);const{centre:e,size:t}=this.$module.getCentreAndSize();this.boundingDims.centre=e,this.boundingDims.size=t,this.isReady=!0}},getState:function(){let n={format:this.fileFormat,url:this._currentURL,viewport:void 0,visibility:void 0};if(this.$refs.scaffoldTreeControls&&(n.visibility=this.$refs.scaffoldTreeControls.getState()),this.$module.scene){let e=this.$module.scene.getZincCameraControls();n.viewport=e.getCurrentViewport()}return n},setState:function(n){n&&(n.url&&n.url!==this._currentURL?this.setURLAndState(n.url,{fileFormat:n.fileFormat,viewport:n.viewport,visibility:n.visibility}):(n.viewport||n.visibility)&&(this.isReady&&this.$module.scene?(n.viewport&&this.$module.scene.getZincCameraControls().setCurrentCameraSettings(n.viewport),n.visibility&&this.$refs.scaffoldTreeControls.setState(n.visibility)):this.$module.setFinishDownloadCallback(this.setURLFinishCallback({viewport:n.viewport,visibility:n.visibility}))))},exportGLTF:function(n){return this.$module.scene.exportGLTF(n)},getLocalAnnotations:function(){return[...this.localAnnotationsList]},importLocalAnnotations:function(n){if(this.enableLocalAnnotations){n.forEach(t=>{const i=t.group,r=t.region;let s=r.slice(-1)==="/"?r:r+"/";const o=s.slice(0,-1);t.region=o,s=s+i;const l=encodeURIComponent(s);t.item.id=l,t.feature.id=l});const e=n.map(t=>t.feature);Hx(this.$module.scene,e),n.forEach(t=>{this.localAnnotationsList.push({...t})})}},setURLAndState:function(n,e){if(n!=this._currentURL){e&&e.format&&(this.fileFormat=e.format);let t=e&&e.viewport?e.viewport:void 0,i=e&&e.visibility?e.visibility:void 0;this._currentURL=n,this.$refs.scaffoldTreeControls&&this.$refs.scaffoldTreeControls.clear(),this.loading=!0,this.timeVarying=!1,this.isReady=!1,this.$_searchIndex.removeAll(),this.hideRegionTooltip(),this.$module.setFinishDownloadCallback(this.setURLFinishCallback({viewport:t,region:this.region,viewURL:this.viewURL,visibility:i})),this.fileFormat==="gltf"?this.$module.loadGLTFFromURL(n,"scene",!0):this.$module.loadOrgansFromURL(n,void 0,void 0,"scene",void 0,!0),this.$module&&this.$module.scene&&(this.$module.scene.displayMarkers=this.displayMarkers,this.$module.scene.forcePickableObjectsUpdate=!0,this.$module.scene.displayMinimap=this.displayMinimap,this.updateMinimapScissor())}},setURL:function(n){this.setURLAndState(n,void 0)},drawerToggled:function(n){this.drawerOpen=n,this.adjustLayout()},adjustLayout:function(){if(this.$refs.scaffoldContainer){let n=this.$refs.scaffoldContainer.clientWidth;this.minimisedSlider=n<812,this.minimisedSlider?this.sliderPosition=this.drawerOpen?"right":"left":this.sliderPosition=""}},toggleRendering:function(n){this.$module.zincRenderer&&(n?this.$module.zincRenderer.animate():this.$module.zincRenderer.stopAnimate())},forceResize:function(){this.$module.zincRenderer&&this.$module.zincRenderer.onWindowResize()},syncControlCallback:function(){const n=this.$module.NDCCameraControl.getPanZoom();this.tData.visible&&this.showRegionTooltip(this.tData.label,!0,!0),this.$emit("scaffold-navigated",n)},toggleSyncControl:function(n,e){this.$module.toggleSyncControl(n,e),this.$module.setSyncControlCallback(this.syncControlCallback)},setMarkers:function(){for(const[n,e]of Object.entries(this.markerLabelEntry))this.setMarkerModeForObjectsWithName(n,e,"on")},removeImageThumbnails:function(){this.imageThumbnails={},this.markerLabelEntry=a.markRaw(this.markerLabels)},setImage:function(n){n?this.setImageType(this.imageType):this.removeImageThumbnails()},setImageType:async function(n){this.imageType=n,this.settingsStore.imageTypeCached(n)||(this.loading=!0,await this.fetchImageThumbnails(n),this.loading=!1),this.populateImageThumbnails(n)},fetchImageThumbnails:async function(n){let e={};const t=this.settingsStore.organCuries;n==="Image"?e=await lk(this.sparcAPI,t,n):n==="Segmentation"?e=await uk(this.sparcAPI,t,n):n==="Scaffold"?e=await hk(this.sparcAPI,t,n):n==="Plot"&&(e=await pk(this.sparcAPI,t,n)),this.settingsStore.updateImageThumbnails(n,e)},convertUberonToName:function(){const n=this.settingsStore.organCuries,e=n.filter(i=>i.name in this.markerLabels).map(i=>i.id),t=this.settingsStore.getImageThumbnails(this.imageType,e);return Object.assign({},Object.fromEntries(Object.entries(t).map(([i,r])=>[n.filter(s=>s.id===i)[0].name,r])))},populateImageThumbnails:async function(n){this.removeImageThumbnails();const e=this.convertUberonToName();this.loading=!0,this.markerLabelEntry=a.markRaw(await this.populateMapWithImages(e,n)),this.loading=!1},onImageThumbnailOpen:function(n){this.$emit("image-thumbnail-open",n)}}},rp=n=>(a.pushScopeId("data-v-22582f54"),n=n(),a.popScopeId(),n),gk={ref:"scaffoldContainer",class:"scaffold-container","element-loading-text":"Loading...","element-loading-background":"rgba(0, 0, 0, 0.3)"},yk=rp(()=>a.createElementVNode("span",{class:"message-text"},"Beta",-1)),vk=rp(()=>a.createElementVNode("span",{class:"message-text"},"What's new?",-1)),bk={class:"primitive-controls-box"},xk={class:"animation-data"},wk={class:"purple"},Mk={class:"animation-data"},Sk={class:"purple"},_k={class:"animation-data"},Tk={class:"bottom-right-control"},Ek=rp(()=>a.createElementVNode("div",null,[a.createTextVNode(" Fit to "),a.createElementVNode("br"),a.createTextVNode(" window ")],-1)),Ck={style:{"margin-bottom":"2px"}},Ak={key:0,class:"viewing-mode-title"},Rk=["onClick"],Lk=["onClick"];function Pk(n,e,t,i,r,s){const o=a.resolveComponent("map-svg-sprite-color"),l=aw,c=a.resolveComponent("DrawToolbar"),u=pm,f=bt,d=Dl,p=Jx,y=Yx,m=a.resolveComponent("map-svg-icon"),h=Rn,b=kn,v=s0,g=Rs,x=As,_=r0,E=Qi,S=h2,M=f2,T=fn,A=xd;return a.withDirectives((a.openBlock(),a.createElementBlock("div",gk,[a.createVNode(o),a.createVNode(l,{createData:n.createData,label:n.tData.label,region:n.tData.region,visible:n.tData.visible,x:n.tData.x,y:n.tData.y,annotationDisplay:s.annotationDisplay,imageThumbnailSidebar:t.imageThumbnailSidebar,imageThumbnails:s.imageThumbnailsEntry,onConfirmCreate:e[0]||(e[0]=C=>s.confirmCreate(C)),onCancelCreate:e[1]||(e[1]=C=>s.cancelCreate()),onConfirmDelete:e[2]||(e[2]=C=>s.confirmDelete(C)),onImageThumbnailOpen:s.onImageThumbnailOpen},null,8,["createData","label","region","visible","x","y","annotationDisplay","imageThumbnailSidebar","imageThumbnails","onImageThumbnailOpen"]),a.createElementVNode("div",{id:"organsDisplayArea",ref:"display",tabindex:"-1",style:{height:"100%",width:"100%"},onKeydown:e[3]||(e[3]=a.withKeys((...C)=>s.backgroundChangeCallback&&s.backgroundChangeCallback(...C),["66"]))},null,544),a.withDirectives(a.createElementVNode("div",null,[n.viewingMode==="Annotation"&&(n.userInformation||t.enableLocalAnnotations)?(a.openBlock(),a.createBlock(c,{key:0,toolbarOptions:n.toolbarOptions,activeDrawTool:n.activeDrawTool,activeDrawMode:n.activeDrawMode,hoverVisibilities:n.hoverVisibilities,onClickToolbar:s.toggleDrawing,onShowTooltip:s.showHelpText,onHideTooltip:s.hideHelpText,ref:"toolbarPopover"},null,8,["toolbarOptions","activeDrawTool","activeDrawMode","hoverVisibilities","onClickToolbar","onShowTooltip","onHideTooltip"])):a.createCommentVNode("",!0),t.displayWarning?(a.openBlock(),a.createBlock(d,{key:1,ref:"warningPopover",visible:n.hoverVisibilities[7].value,content:t.warningMessage,placement:"right",width:"max-content",teleported:!1,"popper-class":"scaffold-popper message-popper right-popper non-selectable"},{reference:a.withCtx(()=>[t.displayWarning?(a.openBlock(),a.createElementBlock("div",{key:0,class:"message-icon warning-icon",onMouseover:e[4]||(e[4]=C=>s.showHelpText(7)),onMouseout:e[5]||(e[5]=C=>s.hideHelpText(7))},[a.createVNode(f,null,{default:a.withCtx(()=>[a.createVNode(u)]),_:1}),yk],32)):a.createCommentVNode("",!0)]),_:1},8,["visible","content"])):a.createCommentVNode("",!0),t.displayLatestChanges?(a.openBlock(),a.createBlock(d,{key:2,visible:n.hoverVisibilities[8].value,content:t.latestChangesMessage,placement:"right",teleported:!1,trigger:"manual","popper-class":"scaffold-popper message-popper right-popper non-selectable",ref:"whatsNewPopover"},{reference:a.withCtx(()=>[t.displayLatestChanges&&t.latestChangesMessage?(a.openBlock(),a.createElementBlock("div",{key:0,class:"el-icon-warning message-icon latest-changesicon",onMouseover:e[6]||(e[6]=C=>s.showHelpText(8)),onMouseout:e[7]||(e[7]=C=>s.hideHelpText(8))},[a.createVNode(f,null,{default:a.withCtx(()=>[a.createVNode(u)]),_:1}),vk],32)):a.createCommentVNode("",!0)]),_:1},8,["visible","content"])):a.createCommentVNode("",!0),a.createVNode(d,{visible:n.hoverVisibilities[6].value,content:"Change region visibility",placement:"right",width:"max-content",teleported:!1,trigger:"manual","popper-class":"scaffold-popper right-popper non-selectable",ref:"regionVisibilityPopover"},{reference:a.withCtx(()=>[a.createVNode(p,{ref:"scaffoldTreeControls",isReady:n.isReady,"show-colour-picker":t.showColourPicker,onObjectSelected:s.objectSelected,onObjectHovered:s.objectHovered,onDrawerToggled:s.drawerToggled},null,8,["isReady","show-colour-picker","onObjectSelected","onObjectHovered","onDrawerToggled"])]),_:1},8,["visible"]),a.createElementVNode("div",bk,[a.createVNode(y,{ref:"primitiveControls",createData:n.createData,onPrimitivesUpdated:s.primitivesUpdated},null,8,["createData","onPrimitivesUpdated"])]),n.timeVarying?(a.openBlock(),a.createBlock(d,{key:3,ref:"sliderPopover",width:"max-content",visible:n.hoverVisibilities[5].value,content:"Move the slider to animate the region",placement:"top",teleported:!1,trigger:"manual","popper-class":"scaffold-popper top-popper non-selectable"},{reference:a.withCtx(()=>[n.timeVarying?(a.openBlock(),a.createElementBlock("div",{key:0,class:a.normalizeClass(["time-slider-container",[n.minimisedSlider?"minimised":"",n.sliderPosition]])},[a.createVNode(_,{type:"card"},{default:a.withCtx(()=>[a.createVNode(v,{label:"Animate scaffold"},{default:a.withCtx(()=>[a.createVNode(b,{class:"tab-content"},{default:a.withCtx(()=>[n.isPlaying?(a.openBlock(),a.createBlock(m,{key:0,icon:"pause",class:"icon-button video-button",onClick:e[8]||(e[8]=C=>s.play(!1))})):(a.openBlock(),a.createBlock(m,{key:1,icon:"play",class:"video-button icon-button",onClick:e[9]||(e[9]=C=>s.play(!0))})),a.createVNode(h,{min:0,max:n.timeMax,"model-value":n.currentTime/100*n.timeMax,step:.1,"tooltip-class":"time-slider-tooltip",class:"slider","format-tooltip":s.formatTooltip,marks:n.timeStamps,onInput:e[10]||(e[10]=C=>s.timeChange(C))},null,8,["max","model-value","format-tooltip","marks"])]),_:1})]),_:1}),a.createVNode(v,{label:"Animation data"},{default:a.withCtx(()=>[a.createVNode(b,{class:"tab-content"},{default:a.withCtx(()=>[a.createElementVNode("div",xk,[a.createTextVNode(" Original duration: "),a.createElementVNode("div",wk,a.toDisplayString(n.orginalDuration),1)]),a.createElementVNode("div",Mk,[a.createTextVNode(" Animation duration: "),a.createElementVNode("div",Sk,a.toDisplayString(n.animateDuration),1)]),a.createElementVNode("div",_k,[a.createTextVNode(" Playback speed "),a.createVNode(x,{teleported:!0,"model-value":n.currentSpeed,placeholder:"Select",class:"scaffold-select-box speed","popper-class":"scaffold_viewer_dropdown",onChange:e[11]||(e[11]=C=>s.speedChanged(C))},{default:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.playSpeed,C=>(a.openBlock(),a.createBlock(g,{key:C.value,label:C.label,value:C.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"])])]),_:1})]),_:1})]),_:1})],2)):a.createCommentVNode("",!0)]),_:1},8,["visible"])):a.createCommentVNode("",!0),a.createElementVNode("div",Tk,[a.createVNode(d,{visible:n.hoverVisibilities[0].value,content:"Zoom in",width:"max-content",placement:"left",teleported:!1,trigger:"manual","popper-class":"scaffold-popper left-popper non-selectable",ref:"zoomInPopover"},{reference:a.withCtx(()=>[a.createVNode(m,{icon:"zoomIn",class:"icon-button zoomIn",onClick:e[12]||(e[12]=C=>s.zoomIn()),onMouseover:e[13]||(e[13]=C=>s.showHelpText(0)),onMouseout:e[14]||(e[14]=C=>s.hideHelpText(0))})]),_:1},8,["visible"]),a.createVNode(d,{visible:n.hoverVisibilities[1].value,content:"Zoom out",placement:"top-end",width:"max-content",teleported:!1,trigger:"manual","popper-class":"scaffold-popper popper-zoomout non-selectable",ref:"zoomOutPopover"},{reference:a.withCtx(()=>[a.createVNode(m,{icon:"zoomOut",class:"icon-button zoomOut",onClick:e[15]||(e[15]=C=>s.zoomOut()),onMouseover:e[16]||(e[16]=C=>s.showHelpText(1)),onMouseout:e[17]||(e[17]=C=>s.hideHelpText(1))})]),_:1},8,["visible"]),a.createVNode(d,{visible:n.hoverVisibilities[2].value,placement:"top",teleported:!1,trigger:"manual",width:"max-content","popper-class":"scaffold-popper non-selectable",ref:"zoomFitPopover"},{reference:a.withCtx(()=>[a.createVNode(m,{icon:"fitWindow",class:"icon-button fitWindow",onClick:e[18]||(e[18]=C=>s.fitWindow()),onMouseover:e[19]||(e[19]=C=>s.showHelpText(2)),onMouseout:e[20]||(e[20]=C=>s.hideHelpText(2))})]),default:a.withCtx(()=>[Ek]),_:1},8,["visible"])]),n.openMapRef?(a.openBlock(),a.createBlock(d,{key:4,ref:"open-map-popover","virtual-ref":n.openMapRef,placement:"top-start",width:"128",teleported:!1,trigger:"click","popper-class":"open-map-popper","virtual-triggering":""},{default:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.openMapOptions,C=>(a.openBlock(),a.createBlock(b,{key:C.key},{default:a.withCtx(()=>[a.createVNode(E,{type:"primary",plain:"",onClick:R=>n.$emit("open-map",C.key)},{default:a.withCtx(()=>[a.createTextVNode(a.toDisplayString(C.display),1)]),_:2},1032,["onClick"])]),_:2},1024))),128))]),_:1},8,["virtual-ref"])):a.createCommentVNode("",!0),a.createVNode(d,{ref:"backgroundPopover","virtual-ref":n.backgroundIconRef,placement:"top-start",width:"330",teleported:!1,trigger:"click","popper-class":"background-popper non-selectable h-auto","virtual-triggering":""},{default:a.withCtx(()=>[a.createElementVNode("div",null,[a.createVNode(b,{class:"backgroundText"},{default:a.withCtx(()=>[a.createTextVNode("Viewing Mode")]),_:1}),a.createVNode(b,{class:"backgroundChooser"},{default:a.withCtx(()=>[a.createElementVNode("div",Ck,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.viewingModes,(C,R,L)=>(a.openBlock(),a.createElementBlock(a.Fragment,{key:R},[R===n.viewingMode?(a.openBlock(),a.createElementBlock("span",Ak,[a.createElementVNode("b",null,a.toDisplayString(R),1)])):(a.openBlock(),a.createElementBlock("span",{key:1,class:"viewing-mode-unselected",onClick:I=>s.changeViewingMode(R)},a.toDisplayString(R),9,Rk))],64))),128))]),a.createVNode(b,{class:"viewing-mode-description"},{default:a.withCtx(()=>[a.createTextVNode(a.toDisplayString(n.viewingModes[n.viewingMode]),1)]),_:1})]),_:1}),n.viewingMode==="Exploration"?(a.openBlock(),a.createBlock(b,{key:0,class:"backgroundSpacer"})):a.createCommentVNode("",!0),n.viewingMode==="Exploration"?(a.openBlock(),a.createBlock(b,{key:1,class:"backgroundText"},{default:a.withCtx(()=>[a.createTextVNode("Markers display")]),_:1})):a.createCommentVNode("",!0),n.viewingMode==="Exploration"?(a.openBlock(),a.createBlock(b,{key:2,class:"backgroundChooser"},{default:a.withCtx(()=>[a.createVNode(T,{span:14},{default:a.withCtx(()=>[a.createVNode(M,{modelValue:n.imageRadio,"onUpdate:modelValue":e[21]||(e[21]=C=>n.imageRadio=C),class:"flatmap-radio",onChange:s.setImage},{default:a.withCtx(()=>[a.createVNode(S,{value:!1},{default:a.withCtx(()=>[a.createTextVNode("Standard")]),_:1}),a.createVNode(S,{value:!0},{default:a.withCtx(()=>[a.createTextVNode("Image")]),_:1})]),_:1},8,["modelValue","onChange"])]),_:1}),n.imageRadio?(a.openBlock(),a.createBlock(T,{key:0,span:10},{default:a.withCtx(()=>[a.createVNode(x,{teleported:!1,modelValue:n.imageType,"onUpdate:modelValue":e[22]||(e[22]=C=>n.imageType=C),placeholder:"Select",class:"scaffold-select-box imageSelector","popper-class":"scaffold_viewer_dropdown",onChange:s.setImageType},{default:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.imageTypes,C=>(a.openBlock(),a.createBlock(g,{key:C,label:C,value:C},{default:a.withCtx(()=>[a.createVNode(b,null,{default:a.withCtx(()=>[a.createVNode(T,{span:12},{default:a.withCtx(()=>[a.createTextVNode(a.toDisplayString(C),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","onChange"])]),_:1})):a.createCommentVNode("",!0)]),_:1})):a.createCommentVNode("",!0),a.createVNode(b,{class:"backgroundSpacer"}),a.createVNode(b,{class:"backgroundText"},{default:a.withCtx(()=>[a.createTextVNode(" Change background ")]),_:1}),a.createVNode(b,{class:"backgroundChooser"},{default:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.availableBackground,C=>(a.openBlock(),a.createElementBlock("div",{key:C,class:a.normalizeClass(["backgroundChoice",C,C==n.currentBackground?"active":""]),onClick:R=>s.backgroundChangeCallback(C)},null,10,Lk))),128))]),_:1})])]),_:1},8,["virtual-ref"]),a.createElementVNode("div",{class:a.normalizeClass(["settings-group",{open:n.drawerOpen,close:!n.drawerOpen}])},[a.createVNode(b,null,{default:a.withCtx(()=>[a.createVNode(d,{visible:n.hoverVisibilities[3].value,content:"Open new map",placement:"right",teleported:!1,trigger:"manual",width:"max-content","popper-class":"scaffold-popper right-popper non-selectable",ref:"openMapPopover"},{reference:a.withCtx(()=>[t.enableOpenMapUI&&t.openMapOptions.length>0?(a.openBlock(),a.createBlock(m,{key:0,ref:"openMapRef",icon:"openMap",class:"icon-button open-map-button",onMouseover:e[23]||(e[23]=C=>s.showHelpText(3)),onMouseout:e[24]||(e[24]=C=>s.hideHelpText(3))},null,512)):a.createCommentVNode("",!0)]),_:1},8,["visible"])]),_:1}),a.createVNode(b,null,{default:a.withCtx(()=>[a.createVNode(d,{visible:n.hoverVisibilities[4].value,content:"Change background color",placement:"right",width:"max-content",teleported:!1,trigger:"manual","popper-class":"scaffold-popper right-popper non-selectable",ref:"settingsPopover"},{reference:a.withCtx(()=>[a.createVNode(m,{ref:"backgroundIconRef",icon:"changeBckgd",class:"icon-button",onMouseover:e[25]||(e[25]=C=>s.showHelpText(4)),onMouseout:e[26]||(e[26]=C=>s.hideHelpText(4))},null,512)]),_:1},8,["visible"])]),_:1})],2)],512),[[a.vShow,t.displayUI&&!n.isTransitioning]])])),[[A,n.loading]])}const Ik=ui(mk,[["render",Pk],["__scopeId","data-v-22582f54"]]);jt.ScaffoldVuer=Ik,Object.defineProperty(jt,Symbol.toStringTag,{value:"Module"})});
|
|
3463
|
+
This will fail in production if not fixed.`),n=n[0]),n.reduce((e,t)=>(e[t.$id+CV]=function(){return t(this.$pinia)},e),{})}function sw(n,e){return Array.isArray(e)?e.reduce((t,i)=>(t[i]=function(){return n(this.$pinia)[i]},t),{}):Object.keys(e).reduce((t,i)=>(t[i]=function(){const r=n(this.$pinia),s=e[i];return typeof s=="function"?s.call(this,r):r[s]},t),{})}const ow=rw("main",{state:()=>({userProfile:{token:""}}),getters:{userToken(n){return n.userProfile.token}},actions:{setUserToken(n){this.userProfile.token=n}}}),RV={name:"ScaffoldTooltip",components:{Col:fn,CreateTooltipContent:qx,ElIconDelete:hl,Icon:bt,Popover:Dl,Row:kn,Tooltip:fu.Tooltip},props:{createData:{type:Object,default:{toBeConfirmed:!1,points:[],shape:"",x:0,y:0}},label:{type:String,default:""},annotationDisplay:{type:Boolean,default:!1},region:{type:String,default:""},visible:{type:Boolean,default:!1},x:{type:Number,default:200},y:{type:Number,default:200},imageThumbnails:{type:Object,default:{}},imageThumbnailSidebar:{type:Boolean,default:!1}},inject:["scaffoldUrl"],provide(){return{userApiKey:this.userToken}},data:function(){return{annotationEntry:{},ElIconDelete:a.shallowRef(hl)}},computed:{...sw(ow,["userToken"]),position:function(){let n=40;return this.region&&(n=55),{left:this.x-40+"px",top:this.y-n+"px"}},imageEntry:function(){let n=[];const e=Object.assign({},Object.fromEntries(Object.entries(this.imageThumbnails).filter(([i,r])=>r.length>0).map(([i,r])=>[i.toLowerCase(),r]))),t=this.label.toLowerCase();return t in e&&(n=e[t]),this.imageThumbnailSidebar?(this.$emit("image-thumbnail-open",n),[]):n}},methods:{checkForDisplay:function(){if(this.visible&&this.label&&this.label!==""){if(this.annotationDisplay){const n=this.region?this.region+"/":"";this.annotationEntry={featureId:encodeURIComponent(n+this.label),resourceId:encodeURIComponent(this.scaffoldUrl),resource:encodeURIComponent(this.scaffoldUrl)}}}else this.annotationEntry={}},hideTriggered:function(){this.createData.toBeConfirmed&&this.$emit("cancel-create")}},watch:{label:{handler:function(){this.checkForDisplay()},immediate:!0},visible:{handler:function(){this.checkForDisplay()},immediate:!0},annotationDisplay:{handler:function(){this.checkForDisplay()},immediate:!0}}},LV={class:"tooltip-text"},PV={key:0,class:"tooltip-text"},IV={key:1,class:"delete-container"};function OV(n,e,t,i,r,s){const o=qx,l=a.resolveComponent("Tooltip"),c=fn,u=Qi,f=kn,d=Dl;return a.openBlock(),a.createElementBlock("div",{style:a.normalizeStyle(s.position),class:"region-tooltip"},[a.createVNode(d,{ref:"tooltip",visible:t.visible,placement:"top","show-arrow":!1,teleported:!1,trigger:"manual","popper-class":"tooltip-popper non-selectable","virtual-triggering":"",onHide:s.hideTriggered},{default:a.withCtx(()=>[a.createElementVNode("div",LV,a.toDisplayString(t.label),1),t.region?(a.openBlock(),a.createElementBlock("div",PV,"Region: "+a.toDisplayString(t.region),1)):a.createCommentVNode("",!0),a.withDirectives(a.createVNode(o,{createData:t.createData,onConfirmCreate:e[0]||(e[0]=p=>n.$emit("confirm-create",p)),onCancelCreate:e[1]||(e[1]=p=>n.$emit("cancel-create"))},null,8,["createData"]),[[a.vShow,t.createData.toBeConfirmed]]),a.withDirectives(a.createVNode(l,{class:"p-tooltip",ref:"tooltip",tooltipType:t.annotationDisplay?"annotation":"image",annotationEntry:n.annotationEntry,imageEntry:s.imageEntry},null,8,["tooltipType","annotationEntry","imageEntry"]),[[a.vShow,t.annotationDisplay&&!t.createData.toBeConfirmed||s.imageEntry.length]]),t.createData.toBeDeleted?(a.openBlock(),a.createElementBlock("div",IV,[a.createVNode(f,null,{default:a.withCtx(()=>[a.createVNode(c,{span:10},{default:a.withCtx(()=>[a.createTextVNode("Delete this feature?")]),_:1}),a.createVNode(c,{span:7},{default:a.withCtx(()=>[a.createVNode(u,{class:"delete-button",icon:n.ElIconDelete,onClick:e[2]||(e[2]=p=>n.$emit("confirm-delete"))},{default:a.withCtx(()=>[a.createTextVNode(" Delete ")]),_:1},8,["icon"])]),_:1}),a.createVNode(c,{span:6},{default:a.withCtx(()=>[a.createVNode(u,{class:"delete-button",onClick:e[3]||(e[3]=p=>n.$emit("cancel-create"))},{default:a.withCtx(()=>[a.createTextVNode(" Dismiss ")]),_:1})]),_:1})]),_:1})])):a.createCommentVNode("",!0)]),_:1},8,["visible","onHide"])],4)}const aw=ui(RV,[["render",OV],["__scopeId","data-v-b085935b"]]);/*! js-cookie v3.0.5 | MIT */function ou(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)n[i]=t[i]}return n}var NV={read:function(n){return n[0]==='"'&&(n=n.slice(1,-1)),n.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(n){return encodeURIComponent(n).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function Hf(n,e){function t(r,s,o){if(!(typeof document>"u")){o=ou({},e,o),typeof o.expires=="number"&&(o.expires=new Date(Date.now()+o.expires*864e5)),o.expires&&(o.expires=o.expires.toUTCString()),r=encodeURIComponent(r).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var l="";for(var c in o)o[c]&&(l+="; "+c,o[c]!==!0&&(l+="="+o[c].split(";")[0]));return document.cookie=r+"="+n.write(s,r)+l}}function i(r){if(!(typeof document>"u"||arguments.length&&!r)){for(var s=document.cookie?document.cookie.split("; "):[],o={},l=0;l<s.length;l++){var c=s[l].split("="),u=c.slice(1).join("=");try{var f=decodeURIComponent(c[0]);if(o[f]=n.read(u,f),r===f)break}catch{}}return r?o[r]:o}}return Object.create({set:t,get:i,remove:function(r,s){t(r,"",ou({},s,{expires:-1}))},withAttributes:function(r){return Hf(this.converter,ou({},this.attributes,r))},withConverter:function(r){return Hf(ou({},this.converter,r),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(n)}})}var Wf=Hf(NV,{path:"/"}),di=function(n,e,t,i,r){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!r)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?n!==e||!r:!e.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?r.call(n,t):r?r.value=t:e.set(n,t),t},Tt=function(n,e,t,i){if(t==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?n!==e||!i:!e.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?i:t==="a"?i.call(n):i?i.value:e.get(n)},zi,Ya,hi,rn,Er;const DV=1e4;class BV{constructor(e){zi.add(this),Ya.set(this,void 0),hi.set(this,null),rn.set(this,null),e.slice(-1)==="/"?di(this,Ya,e.slice(0,-1),"f"):di(this,Ya,e,"f")}get currentUser(){return Tt(this,hi,"f")}get currentError(){return Tt(this,rn,"f")}async authenticate(e){di(this,rn,null,"f"),di(this,hi,null,"f");const t=await Tt(this,zi,"m",Er).call(this,e,"authenticate");return"error"in t?(Wf.remove("annotation-key"),Promise.resolve(Tt(this,rn,"f"))):(Wf.set("annotation-key",t.session,{secure:!0,expires:1}),di(this,hi,t.data,"f"),Promise.resolve(Tt(this,hi,"f")))}async unauthenticate(e){di(this,rn,null,"f"),di(this,hi,null,"f");const t=await Tt(this,zi,"m",Er).call(this,e,"unauthenticate");return"success"in t?Promise.resolve(t):Promise.resolve(Tt(this,rn,"f"))}async annotatedItemIds(e,t,i,r){const s={resource:t};i!==void 0&&(s.user=i),r!==void 0&&(s.participated=r);const o=await Tt(this,zi,"m",Er).call(this,e,"items/","GET",s);return"error"in o?Promise.resolve(Tt(this,rn,"f")):Promise.resolve(o)}async drawnFeatures(e,t,i){const r={resource:t};i!==void 0&&(r.items=i);const s=await Tt(this,zi,"m",Er).call(this,e,"features/","GET",r);return"error"in s?Promise.resolve(Tt(this,rn,"f")):Promise.resolve(s)}async itemAnnotations(e,t,i){const r=await Tt(this,zi,"m",Er).call(this,e,"annotations/","GET",{resource:t,item:i});return"error"in r?Promise.resolve(Tt(this,rn,"f")):Promise.resolve(r)}async annotation(e,t){const i=await Tt(this,zi,"m",Er).call(this,e,"annotation/","GET",{annotation:t});return"error"in i?Promise.resolve(Tt(this,rn,"f")):Promise.resolve(i)}async addAnnotation(e,t){if(Tt(this,hi,"f")&&Tt(this,hi,"f").canUpdate){const i=Object.assign({creator:Tt(this,hi,"f"),created:new Date().toISOString()},t),r=await Tt(this,zi,"m",Er).call(this,e,"annotation/","POST",{data:i});if(!("error"in r))return Promise.resolve(r);di(this,rn,r,"f")}else di(this,rn,{error:"user cannot add annotation"},"f");return Promise.resolve(Tt(this,rn,"f"))}}Ya=new WeakMap,hi=new WeakMap,rn=new WeakMap,zi=new WeakSet,Er=async function(e,t,i="GET",r={}){let s=!0;const o=new AbortController;setTimeout(()=>{s&&(console.log("Annotation server timeout..."),o.abort())},DV);const l={method:i,signal:o.signal};let c=`${Tt(this,Ya,"f")}/${t}`;const u=Wf.get("annotation-key")||"";if(i==="GET"){const d=[];for(const[p,y]of Object.entries(r))d.push(`${p}=${encodeURIComponent(JSON.stringify(y))}`);d.push(`key=${encodeURIComponent(e)}`),d.push(`session=${encodeURIComponent(u)}`),c+="?"+d.join("&"),l.headers={Accept:"application/json; charset=utf-8","Cache-Control":"no-store"}}else if(i==="POST"){const d=Object.assign({key:e,session:u},r);l.body=JSON.stringify(d),l.headers={Accept:"application/json; charset=utf-8","Content-Type":"application/json; charset=utf-8","Cache-Control":"no-store"}}const f=await fetch(c,l);return s=!1,f.ok?Promise.resolve(await f.json()):(di(this,rn,{error:`${f.status} ${f.statusText}`},"f"),Promise.resolve(Tt(this,rn,"f")))};const Ja={ALL:0,SELECTED:1,HIGHLIGHTED:2,MOVE:3},FV=function(n,e,t){this.eventType=n,this.identifiers=e,this.zincObjects=t},VV=function(n,e,t){this.targetedID=[];const i=n,r=e;this.targetEventType=t;const s=this;t===void 0&&(this.targetEventType=Ja.ALL),this.getEventType=function(){return t},this.notify=function(o,l,c,u){if(o!==i&&(s.targetEventType===Ja.ALL||s.targetEventType===l)){const f=new FV(l,c,u);r(f)}}},kV=function(){const n=[];this.publish=function(e,t,i,r){for(let s=0;s<n.length;s++)n[s].notify(e,t,i,r)},this.subscribe=function(e,t,i){if(typeof t=="function"){const r=new VV(e,t,i);return n.push(r),r}},this.unsubscribe=function(e){for(let t=0;t<n.length;t++)if(e===n[t]){n.splice(t,1);return}}},lw={isWebGLAvailable:function(){try{var n=document.createElement("canvas");return!!(window.WebGLRenderingContext&&(n.getContext("webgl")||n.getContext("experimental-webgl")))}catch{return!1}},isWebGL2Available:function(){try{var n=document.createElement("canvas");return!!(window.WebGL2RenderingContext&&n.getContext("webgl2"))}catch{return!1}},getWebGLErrorMessage:function(){return this.getErrorMessage(1)},getWebGL2ErrorMessage:function(){return this.getErrorMessage(2)},getErrorMessage:function(n){var e={1:"WebGL",2:"WebGL 2"},t={1:window.WebGLRenderingContext,2:window.WebGL2RenderingContext},i='This module requires <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation" style="color:#008">$1</a> support but your $0 does not seem to support it.',r=document.createElement("div");return r.id="webglmessage",r.style.fontFamily="monospace",r.style.fontSize="20px",r.style.fontWeight="normal",r.style.textAlign="center",r.style.background="#fff",r.style.color="#000",r.style.padding="1.5em",r.style.width="400px",r.style.margin="5em auto 0",t[n]?i=i.replace("$0","graphics card"):i=i.replace("$0","browser"),i=i.replace("$1",e[n]),r.innerHTML=i,r}},jf={ALL:0,DESTROYED:1,NAME_CHANGED:2,SETTINGS_CHANGED:3},_n=function(){this.typeName="Base Module",this.instanceName="default",this.onChangedCallbacks=[],this.eventNotifiers=[]};_n.prototype.setName=function(n){if(n&&this.instanceName!==n){this.instanceName=n;const e=this.onChangedCallbacks.slice();for(let t=0;t<e.length;t++)e[t](this,jf.NAME_CHANGED)}},_n.prototype.settingsChanged=function(){const n=this.onChangedCallbacks.slice();for(let e=0;e<n.length;e++)n[e](this,jf.SETTINGS_CHANGED)},_n.prototype.exportSettings=function(){const n={};return n.dialog=this.typeName,n.name=this.instanceName,n},_n.prototype.importSettings=function(n){return n.dialog==this.typeName?(this.setName(n.name),!0):!1},_n.prototype.publishChanges=function(n,e,t){for(let i=0;i<this.eventNotifiers.length;i++)this.eventNotifiers[i].publish(this,e,n,t)},_n.prototype.getName=function(){return this.instanceName},_n.prototype.destroy=function(){const n=this.onChangedCallbacks.slice();for(let e=0;e<n.length;e++)n[e](this,jf.DESTROYED);delete this},_n.prototype.addChangedCallback=function(n){this.onChangedCallbacks.includes(n)==!1&&this.onChangedCallbacks.push(n)},_n.prototype.removeChangedCallback=function(n){const e=this.onChangedCallbacks.indexOf(n);e>-1&&this.onChangedCallbacks.splice(e,1)},_n.prototype.addNotifier=function(n){this.eventNotifiers.push(n)};const au=(n,e,t)=>{for(let i=0;i<n.length;i++)if(n[i]&&n[i].material&&n[i].material.emissive){let r=n[i].userData;r&&r.isZincObject?r.setEmissiveRGB(e):n[i].material&&n[i].material.emissive&&n[i].material.emissive.setRGB(...e),t&&n[i].material.depthFunc&&(n[i].material.depthFunc=Tr.THREE.LessEqualDepth),n[i].children.forEach(s=>{const o=s.userData;o&&o.isZincObject&&s.material&&s.material.emissive&&s.material.emissive.setRGB(...e)})}},zV=function(){let n=[],e=[];this.highlightColour=[1,0,0],this.selectColour=[0,1,0],this.originalColour=[0,0,0];const t=[],i=[],r=this,s=function(c,u){if(c.length==0&&u.length==0)return!1;for(let f=0;f<c.length;f++){let d=!1;for(let p=0;p<u.length;p++)c[f]===u[p]&&(d=!0);if(!d)return!0}for(let f=0;f<u.length;f++){let d=!1;for(let p=0;p<c.length;p++)u[f]===c[p]&&(d=!0);if(!d)return!0}return!1},o=function(c,u){if(t.length=0,u.length==0)return c;for(let f=0;f<c.length;f++){let d=!1;for(let p=0;p<u.length;p++)c[f]===u[p]&&(d=!0);d||t.push(c[f])}return t};this.setHighlighted=function(c){const u=[...n];r.resetHighlighted();const f=o(c,e),d=l(f);return au(d,r.highlightColour,!1),n=f,s(n,u)},this.setSelected=function(c){const u=[...e];r.resetHighlighted(),r.resetSelected();const f=l(c);return au(f,r.selectColour,!1),e=c,s(e,u)};const l=function(c){i.length=0;for(let u=0;u<c.length;u++)c[u].material&&i.push(c[u]);return i};this.resetHighlighted=function(){const c=l(n);au(c,r.originalColour,!0),n=[]},this.resetSelected=function(){const c=l(e);au(c,r.originalColour,!0),e=[]},this.getSelected=function(){return e},this.reset=function(){r.resetSelected(),r.resetHighlighted()}},$f=nu.THREE,UV=function(){const n=document.createElement("div");let e;if(n.style.height="100%",lw.isWebGLAvailable())e=new nu.Renderer(n,window),nu.defaultMaterialColor=16777116,e.initialiseVisualisation(),e.playAnimation=!1;else{const t=lw.getWebGLErrorMessage();n.appendChild(t)}return{Zinc:nu,renderer:e,container:n}},Et=function(){_n.call(this),this.scene=void 0,this.rendererContainer=void 0,this.displayArea=void 0,this.graphicsHighlight=new zV,this.selectObjectOnPick=!0,this.zincRenderer=null,this.selectedScreenCoordinates=new $f.Vector3,this.selectedCenter=void 0,this.liveUpdatesObjects=void 0,this.ignorePreviousSelected=!1};Et.prototype=Object.create(_n.prototype),Et.prototype.getIntersectedObject=function(n){if(n){const e=n.map(i=>{if(i&&i.object&&i.object.userData){if(i.object.userData.isMarker)return 1;if(i.object.name&&i.object.userData.isZincObject)return 2}return 0});let t=e.indexOf(1);return t=t>-1?t:e.indexOf(2),n[t]}},Et.prototype.getAnnotationsFromObjects=function(n){const e=[];for(var t=0;t<n.length;t++){const i=n[t].userData;let r;if(i){if(i.isGlyph||i.isGlyphset){let s=i;i.isGlyph&&(s=i.getGlyphset()),r=s.userData?s.userData.annotation:void 0,r&&r.data&&(n[t].name&&n[t].name!=""?r.data.id=n[t].name:r.data.id=s.groupName)}else r=i.userData?i.userData.annotation:void 0,r&&r.data&&(r.data.id=n[t].name);r&&(r.data.zincObject=i)}r&&e.push(r)}return e},Et.prototype.setHighlightedByObjects=function(n,e,t,i){const r=this.graphicsHighlight.setHighlighted(n),s=this.objectsToZincObjects(n);if(i){let o=Ja.MOVE;r&&(o=Ja.HIGHLIGHTED);const l=this.getAnnotationsFromObjects(n);l.length>0&&(l[0].coords=e,l[0].extraData=t),this.publishChanges(l,o,s)}return r},Et.prototype.setHighlightedByZincObjects=function(n,e,t,i){let r=[];return n&&n.forEach(s=>{s&&s.getMorph()&&r.push(s.getMorph())}),this.setHighlightedByObjects(r,e,t,i)},Et.prototype.setupLiveCoordinates=function(n){if(this.liveUpdatesObjects=n,n&&n.length>0){const e=this.scene.getBoundingBoxOfZincObjects(n);let t=new $f.Vector3;e?(e.getCenter(t),this.selectedCenter==null?this.selectedCenter=t:this.selectedCenter.copy(t)):this.selectedCenter=void 0}else this.selectedCenter=void 0},Et.prototype.objectsToZincObjects=function(n){const e=[];for(let t=0;t<n.length;t++){let i=n[t].userData;if(i)if(i.isGlyph||i.isGlyphset){let r=i;i.isGlyph&&(r=i.getGlyphset()),e.push(r)}else e.push(i)}return e},Et.prototype.setSelectedByObjects=function(n,e,t,i){let r=!1;if(this.selectObjectOnPick?r=this.graphicsHighlight.setSelected(n):r=!0,r||this.ignorePreviousSelected){const s=this.objectsToZincObjects(n);if(this.selectObjectOnPick&&this.setupLiveCoordinates(s),i){const o=Ja.SELECTED,l=this.getAnnotationsFromObjects(n);l.length>0&&(l[0].coords=e,l[0].extraData=t),this.publishChanges(l,o,s)}}return r},Et.prototype.setSelectedByZincObjects=function(n,e,t,i){let r=[];return n&&n.forEach(s=>{if(s){const o=s.getMorph();o&&r.push(o)}}),this.setSelectedByObjects(r,e,t,i)},Et.prototype.findObjectsByGroupName=function(n){return this.scene.findObjectsWithGroupName(n)},Et.prototype.setHighlightedByGroupName=function(n,e){const t=this.findObjectsByGroupName(n);return this.setHighlightedByObjects(t,void 0,{},e)},Et.prototype.setSelectedByGroupName=function(n,e){const t=this.findObjectsByGroupName(n);return this.setSelectedByObjects(t,void 0,{},e)},Et.prototype.changeBackgroundColour=function(n){const e=new $f.Color(n);this.zincRenderer&&this.zincRenderer.getThreeJSRenderer().setClearColor(e,1)},Et.prototype.resetView=function(){this.zincRenderer&&this.zincRenderer.resetView()},Et.prototype.viewAll=function(){this.zincRenderer&&this.zincRenderer.viewAll()},Et.prototype.playAnimation=function(n){this.zincRenderer&&(this.zincRenderer.playAnimation=n)},Et.prototype.setPlayRate=function(n){this.zincRenderer&&this.zincRenderer.setPlayRate(n)},Et.prototype.getPlayRate=function(n){return this.zincRenderer?this.zincRenderer.getPlayRate():0},Et.prototype.initialiseRenderer=function(n){if(this.zincRenderer===void 0||this.rendererContainer===void 0){let e=UV();this.Zinc=e.Zinc,this.zincRenderer=e.renderer,this.rendererContainer=e.container}n&&(this.displayArea=n,this.displayArea.appendChild(this.rendererContainer),this.zincRenderer&&this.zincRenderer.animate())},Et.prototype.destroy=function(){this.zincRenderer&&(this.zincRenderer.dispose(),this.zincRenderer.getThreeJSRenderer().dispose(),this.zincRenderer=void 0),_n.prototype.destroy.call(this)};const GV=function(){this.type="anatomical",this.data=void 0,this.isAnnotation=!0},HV=function(){this.currentName="",this.currentSystem="",this.currentPart="",this.currentSpecies="",this.metaURL="",this.viewURL="",this.timeVarying=!1,this.currentTime=0},cw=function(n){Et.call(this);const e=this;let t;this.sceneData=new HV;const i=new Array,r=new Array,s=new Array,o=new Array;let l;const c=n;this.NDCCameraControl=void 0,e.typeName="Organ Viewer",this.getSceneData=function(){return e.sceneData},this.updateTime=function(T){let A=6e3;e.scene&&(A=e.scene.getDuration());const C=T/100*A;e.sceneData.nerveMapIsActive||e.scene&&e.scene.setMorphsTime(C),e.sceneData.currentTime=T};const u=function(){let T=3e3;e.scene&&(T=e.scene.getDuration());const A=e.zincRenderer.getCurrentTime();for(let C=0;C<i.length;C++)i[C](A);!e.sceneData.nerveMapIsActive&&t&&t.setMorphsTime(A),e.sceneData.nerveMap&&e.sceneData.nerveMap.additionalReader&&e.sceneData.nerveMap.additionalReader.setTime(A/T),e.sceneData.currentTime=A/T*100};this.getCurrentTime=function(){return e.sceneData.currentTime},this.toggleSyncControl=(T,A)=>{let C=this.scene.getZincCameraControls();T?(C.resetView(),this.NDCCameraControl=C.enableSyncControl(),C.setRotationMode(A)):(C.disableSyncControl(),this.NDCCameraControl=void 0,C.setRotationMode("free"))},this.isSyncControl=()=>this.NDCCameraControl!==void 0,this.setSyncControlZoomToBox=T=>{this.NDCCameraControl&&this.NDCCameraControl.zoomToBox(T,2)},this.setSyncControlCallback=T=>{this.NDCCameraControl&&this.NDCCameraControl.setEventCallback(T)},this.setSyncControlCenterZoom=(T,A)=>{this.NDCCameraControl&&this.NDCCameraControl.setCenterZoom(T,A)};const f=function(){if(e.zincRenderer.playAnimation&&e.liveUpdatesObjects&&e.setupLiveCoordinates(e.liveUpdatesObjects),e.selectedCenter){const T=new Tr.THREE.Vector3;T.copy(e.selectedCenter);const A=e.scene.vectorToScreenXY(T);e.selectedScreenCoordinates.x=A.x,e.selectedScreenCoordinates.y=A.y}},d=function(){return function(){u()}},p=function(){return function(){f()}};this.addTimeChangedCallback=function(T){i.push(T)},this.setTexturePos=function(T){e.sceneData.nerveMap&&e.sceneData.nerveMap.additionalReader&&e.sceneData.nerveMap.additionalReader.setSliderPos(T)},this.addSceneChangedCallback=function(T){r.push(T)},this.addOrganPartAddedCallback=function(T){s.push(T)},this.addOrganPartRemovedCallback=function(T){o.push(T)},this.setFinishDownloadCallback=function(T){l=T},this.unsetFinishDownloadCallback=function(){l=void 0},this.getNamedObjectsToScreenCoordinates=function(T,A){const C=new Tr.THREE.Vector3;C.setFromMatrixPosition(obj.matrixWorld);const R=width/2,L=height/2;return C.project(A),C.x=C.x*R+R,C.y=-(C.y*L)+L,C};const y=function(T){let A,C;if(T!==void 0){let R=!1;T.object.userData&&T.object.userData.isMarker?(R=!0,C=T.object.userData.parent.getMorph()):C=T.object;try{C.userData.userData.annotation.data.lastActionOnMarker=R}finally{}if(C)if(C.name)A=C.name;else{const L=e.getAnnotationsFromObjects([C]);L&&L[0]&&(A=L[0].data.group)}}return{id:A,object:C}},m=function(){return function(T,A,C){var N;const R=e.getIntersectedObject(T),L=y(R),I={worldCoords:[R?R.point.x:0,R?R.point.y:0,R?R.point.z:0],intersected:R,intersects:T},O={x:A,y:C};if(L.id){I.threeID=(N=L.object)==null?void 0:N.id,L.object.userData.isGlyph?L.object.name?e.setSelectedByObjects([L.object],O,I,!0):e.setSelectedByZincObjects(L.object.userData.getGlyphset(),O,I,!0):e.setSelectedByObjects([L.object],O,I,!0);return}else e.setSelectedByObjects([],O,I,!0)}},h=function(){return function(T,A,C){var N;const R=e.getIntersectedObject(T),L=y(R),I={worldCoords:[R?R.point.x:0,R?R.point.y:0,R?R.point.z:0]},O={x:A,y:C};if(L.id){I.threeID=(N=L.object)==null?void 0:N.id,e.displayArea.style.cursor="pointer",e.setHighlightedByObjects([L.object],O,I,!0);return}else e.displayArea.style.cursor="auto",e.setHighlightedByObjects([],O,I,!0)}},b=function(T,A,C,R){if(R=="all"||R=="geometries"){const L=T.findGeometriesWithGroupName(A);for(let I=0;I<L.length;I++)L[I].setVisibility(C)}if(R=="all"||R=="glyphsets"){const L=T.findGlyphsetsWithGroupName(A);for(let I=0;I<L.length;I++)L[I].setVisibility(C)}if(R=="all"||R=="pointsets"){const L=T.findPointsetsWithGroupName(A);for(let I=0;I<L.length;I++)L[I].setVisibility(C)}if(R=="all"||R=="lines"){const L=T.findLinesWithGroupName(A);for(let I=0;I<L.length;I++)L[I].setVisibility(C)}};this.changeGeometriesVisibility=function(T,A){b(e.scene,T,A,"geometries")},this.changeGlyphsetsVisibility=function(T,A){b(e.scene,T,A,"glyphsets")},this.changeLinesVisibility=function(T,A){b(e.scene,T,A,"lines")},this.changePointsetsVisibility=function(T,A){b(e.scene,T,A,"pointsets")},this.changeOrganPartsVisibility=function(T,A,C){let R="all";C!==void 0&&(R=C),b(e.scene,T,A,R)},this.changeOrganPartsVisibilityCallback=function(T){return function(A){e.changeOrganPartsVisibility(T,A)}},this.changeBackgroundColour=function(T){const A=new Tr.THREE.Color(T);e.zincRenderer&&e.zincRenderer.getThreeJSRenderer().setClearColor(A,1)};const v=function(T,A,C,R){for(let O=0;O<s.length;O++)s[O](R,e.scene.isTimeVarying());const L=new GV,I=R.region.getFullPath();L.data={species:e.sceneData.currentSpecies,system:T,part:A,group:R.groupName,region:I,uuid:R.uuid,lastActionOnMarker:!1},R.userData.annotation=L},g=function(T,A,C,R){for(let L=0;L<o.length;L++)o[L](R)},x=function(T,A,C){return function(R){v(T,A,C,R)}},_=function(T,A,C){return function(R){g(T,A,C,R)}},E=function(){return function(){e.settingsChanged(),e.sceneData.timeVarying=e.scene.isTimeVarying(),l&&l()}};this.updateFieldvisibility=function(T,A){for(let C=0;C<T.length;C++)if(A!=C){const R=T[C].PartName;e.changeOrganPartsVisibility(R,!1)}if(A>-1){const C=T[A].PartName;if(e.scene.findGeometriesWithGroupName(C).length>0||e.scene.findGlyphsetsWithGroupName(C).length>0)e.changeOrganPartsVisibility(C,!0);else{const R=getOrganDetails(T[A].SystemName,C);R!=null&&e.scene.loadMetadataURL(c.getOrgansDirectoryPrefix()+"/"+R.meta)}}},this.getAvailableSpecies=function(T,A,C){const R=new Array;R.push("none");const L=Object.keys(organsFileMap);for(index in L){const I=L[index];I!=T&&organsFileMap[I].hasOwnProperty(A)&&organsFileMap[I][A].hasOwnProperty(C)&&R.push(I)}return R},this.getCentreAndSize=function(){const T=new Tr.THREE.Vector3,A=this.scene.getBoundingBox();A.getCenter(T);const C=[T.x,T.y,T.z];A.getSize(T);const R=[T.x,T.y,T.z];return{centre:C,size:R}};const S=function(T,A,C,R){e.sceneData.nerveMapIsActive=!1,e.sceneData.nerveMap=void 0,e.sceneData.metaURL="",e.sceneData.viewURL="",e.sceneData.currentSpecies=T,e.sceneData.currentSystem=A,e.sceneData.currentPart=C,e.sceneData.currentTime=0,e.sceneData.timeVarying=!1;let L="";T&&(L=T+"/"),A&&(L=A+"/"),C&&(L=C),e.sceneData.currentName=L};this.loadOrgansFromURL=function(T,A,C,R,L,I){if(e.zincRenderer&&R&&e.sceneData.metaURL!==T){S(A,C,R);const O=e.sceneData.currentName;let N=e.zincRenderer.getSceneByName(O);N?I&&N.clearAll():N=e.zincRenderer.createScene(O),e.selectObjectOnPick=!0;for(let P=0;P<r.length;P++)r[P](e.sceneData);L&&L!=""?(e.sceneData.viewURL=L,N.loadViewURL(e.sceneData.viewURL)):e.sceneData.viewURL=void 0,e.sceneData.metaURL=T,N.addZincObjectAddedCallbacks(x(C,R,!1)),N.addZincObjectRemovedCallbacks(_(void 0,R,!1)),N.loadMetadataURL(T,void 0,E()),e.scene=N,e.zincRenderer.setCurrentScene(N),e.graphicsHighlight.reset();const w=N.getZincCameraControls();w.enableRaycaster(N,m(),h()),w.setMouseButtonAction("AUXILIARY","ZOOM"),w.setMouseButtonAction("SECONDARY","PAN")}},this.loadGLTFFromURL=function(T,A,C){if(e.zincRenderer&&A&&e.sceneData.metaURL!==T){S(void 0,void 0,A);const R=e.sceneData.currentName;let L=e.zincRenderer.getSceneByName(R);L?C&&L.clearAll():L=e.zincRenderer.createScene(R);for(let O=0;O<r.length;O++)r[O](e.sceneData);e.sceneData.viewURL=void 0,e.sceneData.metaURL=T,L.addZincObjectAddedCallbacks(x(void 0,A,!1)),L.addZincObjectRemovedCallbacks(_(void 0,A,!1)),L.loadGLTF(T,void 0,E()),e.scene=L,e.zincRenderer.setCurrentScene(L),e.graphicsHighlight.reset();const I=L.getZincCameraControls();I.enableRaycaster(L,m(),h()),I.setMouseButtonAction("AUXILIARY","ZOOM"),I.setMouseButtonAction("SECONDARY","PAN")}},this.alignCameraWithSelectedObject=function(T){const A=e.graphicsHighlight.getSelected();A&&A[0]&&A[0].userData&&e.scene.alignObjectToCameraView(A[0].userData,T)},this.exportSettings=function(){const T={};return T.name=e.instanceName,e.sceneData.currentSystem&&(T.system=e.sceneData.currentSystem),e.sceneData.currentSpecies&&(T.species=e.sceneData.currentSpecies),e.sceneData.currentPart&&(T.part=e.sceneData.currentPart),T.metaURL=e.sceneData.metaURL,e.sceneData.viewURL&&(T.viewURL=e.sceneData.viewURL),T.dialog="Organ Viewer",T},this.importSettings=function(T){return T&&T.dialog==this.typeName?(e.setName(T.name),T.metaURL!==void 0&&T.metaURL!=""?e.loadOrgansFromURL(T.metaURL,T.species,T.system,T.part,T.viewURL,!0):e.loadOrgans(T.species,T.system,T.part),!0):!1},function(){e.initialiseRenderer(void 0),e.zincRenderer&&(e.zincRenderer.addPreRenderCallbackFunction(d()),e.zincRenderer.addPostRenderCallbackFunction(p()))}()};cw.prototype=Object.create(Et.prototype);var ht=function(){return ht=Object.assign||function(e){for(var t,i=1,r=arguments.length;i<r;i++){t=arguments[i];for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s])}return e},ht.apply(this,arguments)};function WV(n,e,t,i){function r(s){return s instanceof t?s:new t(function(o){o(s)})}return new(t||(t=Promise))(function(s,o){function l(f){try{u(i.next(f))}catch(d){o(d)}}function c(f){try{u(i.throw(f))}catch(d){o(d)}}function u(f){f.done?s(f.value):r(f.value).then(l,c)}u((i=i.apply(n,[])).next())})}function jV(n,e){var t={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},i,r,s,o;return o={next:l(0),throw:l(1),return:l(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function l(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(t=0)),t;)try{if(i=1,r&&(s=u[0]&2?r.return:u[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,u[1])).done)return s;switch(r=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return t.label++,{value:u[1],done:!1};case 5:t.label++,r=u[1],u=[0];continue;case 7:u=t.ops.pop(),t.trys.pop();continue;default:if(s=t.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){t=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){t.label=u[1];break}if(u[0]===6&&t.label<s[1]){t.label=s[1],s=u;break}if(s&&t.label<s[2]){t.label=s[2],t.ops.push(u);break}s[2]&&t.ops.pop(),t.trys.pop();continue}u=e.call(n,t)}catch(f){u=[6,f],r=0}finally{i=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function Ye(n){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&n[e],i=0;if(t)return t.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&i>=n.length&&(n=void 0),{value:n&&n[i++],done:!n}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Dt(n,e){var t=typeof Symbol=="function"&&n[Symbol.iterator];if(!t)return n;var i=t.call(n),r,s=[],o;try{for(;(e===void 0||e-- >0)&&!(r=i.next()).done;)s.push(r.value)}catch(l){o={error:l}}finally{try{r&&!r.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return s}typeof SuppressedError=="function"&&SuppressedError;var $V="ENTRIES",uw="KEYS",dw="VALUES",Qt="",Zf=function(){function n(e,t){var i=e._tree,r=Array.from(i.keys());this.set=e,this._type=t,this._path=r.length>0?[{node:i,keys:r}]:[]}return n.prototype.next=function(){var e=this.dive();return this.backtrack(),e},n.prototype.dive=function(){if(this._path.length===0)return{done:!0,value:void 0};var e=Po(this._path),t=e.node,i=e.keys;if(Po(i)===Qt)return{done:!1,value:this.result()};var r=t.get(Po(i));return this._path.push({node:r,keys:Array.from(r.keys())}),this.dive()},n.prototype.backtrack=function(){if(this._path.length!==0){var e=Po(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}},n.prototype.key=function(){return this.set._prefix+this._path.map(function(e){var t=e.keys;return Po(t)}).filter(function(e){return e!==Qt}).join("")},n.prototype.value=function(){return Po(this._path).node.get(Qt)},n.prototype.result=function(){switch(this._type){case dw:return this.value();case uw:return this.key();default:return[this.key(),this.value()]}},n.prototype[Symbol.iterator]=function(){return this},n}(),Po=function(n){return n[n.length-1]},ZV=function(n,e,t){var i=new Map;if(e===void 0)return i;for(var r=e.length+1,s=r+t,o=new Uint8Array(s*r).fill(t+1),l=0;l<r;++l)o[l]=l;for(var c=1;c<s;++c)o[c*r]=c;return hw(n,e,t,i,o,1,r,""),i},hw=function(n,e,t,i,r,s,o,l){var c,u,f=s*o;try{e:for(var d=Ye(n.keys()),p=d.next();!p.done;p=d.next()){var y=p.value;if(y===Qt){var m=r[f-1];m<=t&&i.set(l,[n.get(y),m])}else{for(var h=s,b=0;b<y.length;++b,++h){for(var v=y[b],g=o*h,x=g-o,_=r[g],E=Math.max(0,h-t-1),S=Math.min(o-1,h+t),M=E;M<S;++M){var T=v!==e[M],A=r[x+M]+ +T,C=r[x+M+1]+1,R=r[g+M]+1,L=r[g+M+1]=Math.min(A,C,R);L<_&&(_=L)}if(_>t)continue e}hw(n.get(y),e,t,i,r,h,o,l+y)}}}catch(I){c={error:I}}finally{try{p&&!p.done&&(u=d.return)&&u.call(d)}finally{if(c)throw c.error}}},Xf=function(){function n(e,t){e===void 0&&(e=new Map),t===void 0&&(t=""),this._size=void 0,this._tree=e,this._prefix=t}return n.prototype.atPrefix=function(e){var t,i;if(!e.startsWith(this._prefix))throw new Error("Mismatched prefix");var r=Dt(lu(this._tree,e.slice(this._prefix.length)),2),s=r[0],o=r[1];if(s===void 0){var l=Dt(qf(o),2),c=l[0],u=l[1];try{for(var f=Ye(c.keys()),d=f.next();!d.done;d=f.next()){var p=d.value;if(p!==Qt&&p.startsWith(u)){var y=new Map;return y.set(p.slice(u.length),c.get(p)),new n(y,e)}}}catch(m){t={error:m}}finally{try{d&&!d.done&&(i=f.return)&&i.call(f)}finally{if(t)throw t.error}}}return new n(s,e)},n.prototype.clear=function(){this._size=void 0,this._tree.clear()},n.prototype.delete=function(e){return this._size=void 0,XV(this._tree,e)},n.prototype.entries=function(){return new Zf(this,$V)},n.prototype.forEach=function(e){var t,i;try{for(var r=Ye(this),s=r.next();!s.done;s=r.next()){var o=Dt(s.value,2),l=o[0],c=o[1];e(l,c,this)}}catch(u){t={error:u}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}},n.prototype.fuzzyGet=function(e,t){return ZV(this._tree,e,t)},n.prototype.get=function(e){var t=Yf(this._tree,e);return t!==void 0?t.get(Qt):void 0},n.prototype.has=function(e){var t=Yf(this._tree,e);return t!==void 0&&t.has(Qt)},n.prototype.keys=function(){return new Zf(this,uw)},n.prototype.set=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var i=Jf(this._tree,e);return i.set(Qt,t),this},Object.defineProperty(n.prototype,"size",{get:function(){if(this._size)return this._size;this._size=0;for(var e=this.entries();!e.next().done;)this._size+=1;return this._size},enumerable:!1,configurable:!0}),n.prototype.update=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var i=Jf(this._tree,e);return i.set(Qt,t(i.get(Qt))),this},n.prototype.fetch=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var i=Jf(this._tree,e),r=i.get(Qt);return r===void 0&&i.set(Qt,r=t()),r},n.prototype.values=function(){return new Zf(this,dw)},n.prototype[Symbol.iterator]=function(){return this.entries()},n.from=function(e){var t,i,r=new n;try{for(var s=Ye(e),o=s.next();!o.done;o=s.next()){var l=Dt(o.value,2),c=l[0],u=l[1];r.set(c,u)}}catch(f){t={error:f}}finally{try{o&&!o.done&&(i=s.return)&&i.call(s)}finally{if(t)throw t.error}}return r},n.fromObject=function(e){return n.from(Object.entries(e))},n}(),lu=function(n,e,t){var i,r;if(t===void 0&&(t=[]),e.length===0||n==null)return[n,t];try{for(var s=Ye(n.keys()),o=s.next();!o.done;o=s.next()){var l=o.value;if(l!==Qt&&e.startsWith(l))return t.push([n,l]),lu(n.get(l),e.slice(l.length),t)}}catch(c){i={error:c}}finally{try{o&&!o.done&&(r=s.return)&&r.call(s)}finally{if(i)throw i.error}}return t.push([n,e]),lu(void 0,"",t)},Yf=function(n,e){var t,i;if(e.length===0||n==null)return n;try{for(var r=Ye(n.keys()),s=r.next();!s.done;s=r.next()){var o=s.value;if(o!==Qt&&e.startsWith(o))return Yf(n.get(o),e.slice(o.length))}}catch(l){t={error:l}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}},Jf=function(n,e){var t,i,r=e.length;e:for(var s=0;n&&s<r;){try{for(var o=(t=void 0,Ye(n.keys())),l=o.next();!l.done;l=o.next()){var c=l.value;if(c!==Qt&&e[s]===c[0]){for(var u=Math.min(r-s,c.length),f=1;f<u&&e[s+f]===c[f];)++f;var d=n.get(c);if(f===c.length)n=d;else{var p=new Map;p.set(c.slice(f),d),n.set(e.slice(s,s+f),p),n.delete(c),n=p}s+=f;continue e}}}catch(m){t={error:m}}finally{try{l&&!l.done&&(i=o.return)&&i.call(o)}finally{if(t)throw t.error}}var y=new Map;return n.set(e.slice(s),y),y}return n},XV=function(n,e){var t=Dt(lu(n,e),2),i=t[0],r=t[1];if(i!==void 0){if(i.delete(Qt),i.size===0)fw(r);else if(i.size===1){var s=Dt(i.entries().next().value,2),o=s[0],l=s[1];pw(r,o,l)}}},fw=function(n){if(n.length!==0){var e=Dt(qf(n),2),t=e[0],i=e[1];if(t.delete(i),t.size===0)fw(n.slice(0,-1));else if(t.size===1){var r=Dt(t.entries().next().value,2),s=r[0],o=r[1];s!==Qt&&pw(n.slice(0,-1),s,o)}}},pw=function(n,e,t){if(n.length!==0){var i=Dt(qf(n),2),r=i[0],s=i[1];r.set(s+e,t),r.delete(s)}},qf=function(n){return n[n.length-1]},qa,Kf="or",mw="and",YV="and_not",JV=function(){function n(e){if((e==null?void 0:e.fields)==null)throw new Error('MiniSearch: option "fields" must be provided');var t=e.autoVacuum==null||e.autoVacuum===!0?ip:e.autoVacuum;this._options=ht(ht(ht({},ep),e),{autoVacuum:t,searchOptions:ht(ht({},gw),e.searchOptions||{}),autoSuggestOptions:ht(ht({},tk),e.autoSuggestOptions||{})}),this._index=new Xf,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=np,this.addFields(this._options.fields)}return n.prototype.add=function(e){var t,i,r,s,o,l,c=this._options,u=c.extractField,f=c.tokenize,d=c.processTerm,p=c.fields,y=c.idField,m=u(e,y);if(m==null)throw new Error('MiniSearch: document does not have ID field "'.concat(y,'"'));if(this._idToShortId.has(m))throw new Error("MiniSearch: duplicate ID ".concat(m));var h=this.addDocumentId(m);this.saveStoredFields(h,e);try{for(var b=Ye(p),v=b.next();!v.done;v=b.next()){var g=v.value,x=u(e,g);if(x!=null){var _=f(x.toString(),g),E=this._fieldIds[g],S=new Set(_).size;this.addFieldLength(h,E,this._documentCount-1,S);try{for(var M=(r=void 0,Ye(_)),T=M.next();!T.done;T=M.next()){var A=T.value,C=d(A,g);if(Array.isArray(C))try{for(var R=(o=void 0,Ye(C)),L=R.next();!L.done;L=R.next()){var I=L.value;this.addTerm(E,h,I)}}catch(O){o={error:O}}finally{try{L&&!L.done&&(l=R.return)&&l.call(R)}finally{if(o)throw o.error}}else C&&this.addTerm(E,h,C)}}catch(O){r={error:O}}finally{try{T&&!T.done&&(s=M.return)&&s.call(M)}finally{if(r)throw r.error}}}}}catch(O){t={error:O}}finally{try{v&&!v.done&&(i=b.return)&&i.call(b)}finally{if(t)throw t.error}}},n.prototype.addAll=function(e){var t,i;try{for(var r=Ye(e),s=r.next();!s.done;s=r.next()){var o=s.value;this.add(o)}}catch(l){t={error:l}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}},n.prototype.addAllAsync=function(e,t){var i=this;t===void 0&&(t={});var r=t.chunkSize,s=r===void 0?10:r,o={chunk:[],promise:Promise.resolve()},l=e.reduce(function(f,d,p){var y=f.chunk,m=f.promise;return y.push(d),(p+1)%s===0?{chunk:[],promise:m.then(function(){return new Promise(function(h){return setTimeout(h,0)})}).then(function(){return i.addAll(y)})}:{chunk:y,promise:m}},o),c=l.chunk,u=l.promise;return u.then(function(){return i.addAll(c)})},n.prototype.remove=function(e){var t,i,r,s,o,l,c=this._options,u=c.tokenize,f=c.processTerm,d=c.extractField,p=c.fields,y=c.idField,m=d(e,y);if(m==null)throw new Error('MiniSearch: document does not have ID field "'.concat(y,'"'));var h=this._idToShortId.get(m);if(h==null)throw new Error("MiniSearch: cannot remove document with ID ".concat(m,": it is not in the index"));try{for(var b=Ye(p),v=b.next();!v.done;v=b.next()){var g=v.value,x=d(e,g);if(x!=null){var _=u(x.toString(),g),E=this._fieldIds[g],S=new Set(_).size;this.removeFieldLength(h,E,this._documentCount,S);try{for(var M=(r=void 0,Ye(_)),T=M.next();!T.done;T=M.next()){var A=T.value,C=f(A,g);if(Array.isArray(C))try{for(var R=(o=void 0,Ye(C)),L=R.next();!L.done;L=R.next()){var I=L.value;this.removeTerm(E,h,I)}}catch(O){o={error:O}}finally{try{L&&!L.done&&(l=R.return)&&l.call(R)}finally{if(o)throw o.error}}else C&&this.removeTerm(E,h,C)}}catch(O){r={error:O}}finally{try{T&&!T.done&&(s=M.return)&&s.call(M)}finally{if(r)throw r.error}}}}}catch(O){t={error:O}}finally{try{v&&!v.done&&(i=b.return)&&i.call(b)}finally{if(t)throw t.error}}this._storedFields.delete(h),this._documentIds.delete(h),this._idToShortId.delete(m),this._fieldLength.delete(h),this._documentCount-=1},n.prototype.removeAll=function(e){var t,i;if(e)try{for(var r=Ye(e),s=r.next();!s.done;s=r.next()){var o=s.value;this.remove(o)}}catch(l){t={error:l}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}else{if(arguments.length>0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new Xf,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}},n.prototype.discard=function(e){var t=this,i=this._idToShortId.get(e);if(i==null)throw new Error("MiniSearch: cannot discard document with ID ".concat(e,": it is not in the index"));this._idToShortId.delete(e),this._documentIds.delete(i),this._storedFields.delete(i),(this._fieldLength.get(i)||[]).forEach(function(r,s){t.removeFieldLength(i,s,t._documentCount,r)}),this._fieldLength.delete(i),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()},n.prototype.maybeAutoVacuum=function(){if(this._options.autoVacuum!==!1){var e=this._options.autoVacuum,t=e.minDirtFactor,i=e.minDirtCount,r=e.batchSize,s=e.batchWait;this.conditionalVacuum({batchSize:r,batchWait:s},{minDirtCount:i,minDirtFactor:t})}},n.prototype.discardAll=function(e){var t,i,r=this._options.autoVacuum;try{this._options.autoVacuum=!1;try{for(var s=Ye(e),o=s.next();!o.done;o=s.next()){var l=o.value;this.discard(l)}}catch(c){t={error:c}}finally{try{o&&!o.done&&(i=s.return)&&i.call(s)}finally{if(t)throw t.error}}}finally{this._options.autoVacuum=r}this.maybeAutoVacuum()},n.prototype.replace=function(e){var t=this._options,i=t.idField,r=t.extractField,s=r(e,i);this.discard(s),this.add(e)},n.prototype.vacuum=function(e){return e===void 0&&(e={}),this.conditionalVacuum(e)},n.prototype.conditionalVacuum=function(e,t){var i=this;return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&t,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(function(){var r=i._enqueuedVacuumConditions;return i._enqueuedVacuumConditions=np,i.performVacuuming(e,r)}),this._enqueuedVacuum)):this.vacuumConditionsMet(t)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(e),this._currentVacuum)},n.prototype.performVacuuming=function(e,t){return WV(this,void 0,void 0,function(){var i,r,s,o,l,c,u,f,d,p,y,m,h,b,v,g,x,_,E,S,M,T,A,C,R;return jV(this,function(L){switch(L.label){case 0:if(i=this._dirtCount,!this.vacuumConditionsMet(t))return[3,10];r=e.batchSize||tp.batchSize,s=e.batchWait||tp.batchWait,o=1,L.label=1;case 1:L.trys.push([1,7,8,9]),l=Ye(this._index),c=l.next(),L.label=2;case 2:if(c.done)return[3,6];u=Dt(c.value,2),f=u[0],d=u[1];try{for(p=(T=void 0,Ye(d)),y=p.next();!y.done;y=p.next()){m=Dt(y.value,2),h=m[0],b=m[1];try{for(v=(C=void 0,Ye(b)),g=v.next();!g.done;g=v.next())x=Dt(g.value,1),_=x[0],!this._documentIds.has(_)&&(b.size<=1?d.delete(h):b.delete(_))}catch(I){C={error:I}}finally{try{g&&!g.done&&(R=v.return)&&R.call(v)}finally{if(C)throw C.error}}}}catch(I){T={error:I}}finally{try{y&&!y.done&&(A=p.return)&&A.call(p)}finally{if(T)throw T.error}}return this._index.get(f).size===0&&this._index.delete(f),o%r!==0?[3,4]:[4,new Promise(function(I){return setTimeout(I,s)})];case 3:L.sent(),L.label=4;case 4:o+=1,L.label=5;case 5:return c=l.next(),[3,2];case 6:return[3,9];case 7:return E=L.sent(),S={error:E},[3,9];case 8:try{c&&!c.done&&(M=l.return)&&M.call(l)}finally{if(S)throw S.error}return[7];case 9:this._dirtCount-=i,L.label=10;case 10:return[4,null];case 11:return L.sent(),this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null,[2]}})})},n.prototype.vacuumConditionsMet=function(e){if(e==null)return!0;var t=e.minDirtCount,i=e.minDirtFactor;return t=t||ip.minDirtCount,i=i||ip.minDirtFactor,this.dirtCount>=t&&this.dirtFactor>=i},Object.defineProperty(n.prototype,"isVacuuming",{get:function(){return this._currentVacuum!=null},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"dirtCount",{get:function(){return this._dirtCount},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"dirtFactor",{get:function(){return this._dirtCount/(1+this._documentCount+this._dirtCount)},enumerable:!1,configurable:!0}),n.prototype.has=function(e){return this._idToShortId.has(e)},n.prototype.getStoredFields=function(e){var t=this._idToShortId.get(e);if(t!=null)return this._storedFields.get(t)},n.prototype.search=function(e,t){var i,r;t===void 0&&(t={});var s=this.executeQuery(e,t),o=[];try{for(var l=Ye(s),c=l.next();!c.done;c=l.next()){var u=Dt(c.value,2),f=u[0],d=u[1],p=d.score,y=d.terms,m=d.match,h=y.length||1,b={id:this._documentIds.get(f),score:p*h,terms:Object.keys(m),queryTerms:y,match:m};Object.assign(b,this._storedFields.get(f)),(t.filter==null||t.filter(b))&&o.push(b)}}catch(v){i={error:v}}finally{try{c&&!c.done&&(r=l.return)&&r.call(l)}finally{if(i)throw i.error}}return e===n.wildcard&&t.boostDocument==null&&this._options.searchOptions.boostDocument==null||o.sort(vw),o},n.prototype.autoSuggest=function(e,t){var i,r,s,o;t===void 0&&(t={}),t=ht(ht({},this._options.autoSuggestOptions),t);var l=new Map;try{for(var c=Ye(this.search(e,t)),u=c.next();!u.done;u=c.next()){var f=u.value,d=f.score,p=f.terms,y=p.join(" "),m=l.get(y);m!=null?(m.score+=d,m.count+=1):l.set(y,{score:d,terms:p,count:1})}}catch(E){i={error:E}}finally{try{u&&!u.done&&(r=c.return)&&r.call(c)}finally{if(i)throw i.error}}var h=[];try{for(var b=Ye(l),v=b.next();!v.done;v=b.next()){var g=Dt(v.value,2),m=g[0],x=g[1],d=x.score,p=x.terms,_=x.count;h.push({suggestion:m,terms:p,score:d/_})}}catch(E){s={error:E}}finally{try{v&&!v.done&&(o=b.return)&&o.call(b)}finally{if(s)throw s.error}}return h.sort(vw),h},Object.defineProperty(n.prototype,"documentCount",{get:function(){return this._documentCount},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"termCount",{get:function(){return this._index.size},enumerable:!1,configurable:!0}),n.loadJSON=function(e,t){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(e),t)},n.getDefault=function(e){if(ep.hasOwnProperty(e))return Qf(ep,e);throw new Error('MiniSearch: unknown option "'.concat(e,'"'))},n.loadJS=function(e,t){var i,r,s,o,l,c,u=e.index,f=e.documentCount,d=e.nextId,p=e.documentIds,y=e.fieldIds,m=e.fieldLength,h=e.averageFieldLength,b=e.storedFields,v=e.dirtCount,g=e.serializationVersion;if(g!==1&&g!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");var x=new n(t);x._documentCount=f,x._nextId=d,x._documentIds=cu(p),x._idToShortId=new Map,x._fieldIds=y,x._fieldLength=cu(m),x._avgFieldLength=h,x._storedFields=cu(b),x._dirtCount=v||0,x._index=new Xf;try{for(var _=Ye(x._documentIds),E=_.next();!E.done;E=_.next()){var S=Dt(E.value,2),M=S[0],T=S[1];x._idToShortId.set(T,M)}}catch(D){i={error:D}}finally{try{E&&!E.done&&(r=_.return)&&r.call(_)}finally{if(i)throw i.error}}try{for(var A=Ye(u),C=A.next();!C.done;C=A.next()){var R=Dt(C.value,2),L=R[0],I=R[1],O=new Map;try{for(var N=(l=void 0,Ye(Object.keys(I))),w=N.next();!w.done;w=N.next()){var P=w.value,B=I[P];g===1&&(B=B.ds),O.set(parseInt(P,10),cu(B))}}catch(D){l={error:D}}finally{try{w&&!w.done&&(c=N.return)&&c.call(N)}finally{if(l)throw l.error}}x._index.set(L,O)}}catch(D){s={error:D}}finally{try{C&&!C.done&&(o=A.return)&&o.call(A)}finally{if(s)throw s.error}}return x},n.prototype.executeQuery=function(e,t){var i=this;if(t===void 0&&(t={}),e===n.wildcard)return this.executeWildcardQuery(t);if(typeof e!="string"){var r=ht(ht(ht({},t),e),{queries:void 0}),s=e.queries.map(function(b){return i.executeQuery(b,r)});return this.combineResults(s,r.combineWith)}var o=this._options,l=o.tokenize,c=o.processTerm,u=o.searchOptions,f=ht(ht({tokenize:l,processTerm:c},u),t),d=f.tokenize,p=f.processTerm,y=d(e).flatMap(function(b){return p(b)}).filter(function(b){return!!b}),m=y.map(ek(f)),h=m.map(function(b){return i.executeQuerySpec(b,f)});return this.combineResults(h,f.combineWith)},n.prototype.executeQuerySpec=function(e,t){var i,r,s,o,l=ht(ht({},this._options.searchOptions),t),c=(l.fields||this._options.fields).reduce(function(P,B){var D;return ht(ht({},P),(D={},D[B]=Qf(l.boost,B)||1,D))},{}),u=l.boostDocument,f=l.weights,d=l.maxFuzzy,p=l.bm25,y=ht(ht({},gw.weights),f),m=y.fuzzy,h=y.prefix,b=this._index.get(e.term),v=this.termResults(e.term,e.term,1,b,c,u,p),g,x;if(e.prefix&&(g=this._index.atPrefix(e.term)),e.fuzzy){var _=e.fuzzy===!0?.2:e.fuzzy,E=_<1?Math.min(d,Math.round(e.term.length*_)):_;E&&(x=this._index.fuzzyGet(e.term,E))}if(g)try{for(var S=Ye(g),M=S.next();!M.done;M=S.next()){var T=Dt(M.value,2),A=T[0],C=T[1],R=A.length-e.term.length;if(R){x==null||x.delete(A);var L=h*A.length/(A.length+.3*R);this.termResults(e.term,A,L,C,c,u,p,v)}}}catch(P){i={error:P}}finally{try{M&&!M.done&&(r=S.return)&&r.call(S)}finally{if(i)throw i.error}}if(x)try{for(var I=Ye(x.keys()),O=I.next();!O.done;O=I.next()){var A=O.value,N=Dt(x.get(A),2),w=N[0],R=N[1];if(R){var L=m*A.length/(A.length+R);this.termResults(e.term,A,L,w,c,u,p,v)}}}catch(P){s={error:P}}finally{try{O&&!O.done&&(o=I.return)&&o.call(I)}finally{if(s)throw s.error}}return v},n.prototype.executeWildcardQuery=function(e){var t,i,r=new Map,s=ht(ht({},this._options.searchOptions),e);try{for(var o=Ye(this._documentIds),l=o.next();!l.done;l=o.next()){var c=Dt(l.value,2),u=c[0],f=c[1],d=s.boostDocument?s.boostDocument(f,"",this._storedFields.get(u)):1;r.set(u,{score:d,terms:[],match:{}})}}catch(p){t={error:p}}finally{try{l&&!l.done&&(i=o.return)&&i.call(o)}finally{if(t)throw t.error}}return r},n.prototype.combineResults=function(e,t){if(t===void 0&&(t=Kf),e.length===0)return new Map;var i=t.toLowerCase();return e.reduce(qV[i])||new Map},n.prototype.toJSON=function(){var e,t,i,r,s=[];try{for(var o=Ye(this._index),l=o.next();!l.done;l=o.next()){var c=Dt(l.value,2),u=c[0],f=c[1],d={};try{for(var p=(i=void 0,Ye(f)),y=p.next();!y.done;y=p.next()){var m=Dt(y.value,2),h=m[0],b=m[1];d[h]=Object.fromEntries(b)}}catch(v){i={error:v}}finally{try{y&&!y.done&&(r=p.return)&&r.call(p)}finally{if(i)throw i.error}}s.push([u,d])}}catch(v){e={error:v}}finally{try{l&&!l.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:s,serializationVersion:2}},n.prototype.termResults=function(e,t,i,r,s,o,l,c){var u,f,d,p,y;if(c===void 0&&(c=new Map),r==null)return c;try{for(var m=Ye(Object.keys(s)),h=m.next();!h.done;h=m.next()){var b=h.value,v=s[b],g=this._fieldIds[b],x=r.get(g);if(x!=null){var _=x.size,E=this._avgFieldLength[g];try{for(var S=(d=void 0,Ye(x.keys())),M=S.next();!M.done;M=S.next()){var T=M.value;if(!this._documentIds.has(T)){this.removeTerm(g,T,t),_-=1;continue}var A=o?o(this._documentIds.get(T),t,this._storedFields.get(T)):1;if(A){var C=x.get(T),R=this._fieldLength.get(T)[g],L=QV(C,_,this._documentCount,R,E,l),I=i*v*A*L,O=c.get(T);if(O){O.score+=I,nk(O.terms,e);var N=Qf(O.match,t);N?N.push(b):O.match[t]=[b]}else c.set(T,{score:I,terms:[e],match:(y={},y[t]=[b],y)})}}}catch(w){d={error:w}}finally{try{M&&!M.done&&(p=S.return)&&p.call(S)}finally{if(d)throw d.error}}}}}catch(w){u={error:w}}finally{try{h&&!h.done&&(f=m.return)&&f.call(m)}finally{if(u)throw u.error}}return c},n.prototype.addTerm=function(e,t,i){var r=this._index.fetch(i,bw),s=r.get(e);if(s==null)s=new Map,s.set(t,1),r.set(e,s);else{var o=s.get(t);s.set(t,(o||0)+1)}},n.prototype.removeTerm=function(e,t,i){if(!this._index.has(i)){this.warnDocumentChanged(t,e,i);return}var r=this._index.fetch(i,bw),s=r.get(e);s==null||s.get(t)==null?this.warnDocumentChanged(t,e,i):s.get(t)<=1?s.size<=1?r.delete(e):s.delete(t):s.set(t,s.get(t)-1),this._index.get(i).size===0&&this._index.delete(i)},n.prototype.warnDocumentChanged=function(e,t,i){var r,s;try{for(var o=Ye(Object.keys(this._fieldIds)),l=o.next();!l.done;l=o.next()){var c=l.value;if(this._fieldIds[c]===t){this._options.logger("warn","MiniSearch: document with ID ".concat(this._documentIds.get(e),' has changed before removal: term "').concat(i,'" was not present in field "').concat(c,'". Removing a document after it has changed can corrupt the index!'),"version_conflict");return}}}catch(u){r={error:u}}finally{try{l&&!l.done&&(s=o.return)&&s.call(o)}finally{if(r)throw r.error}}},n.prototype.addDocumentId=function(e){var t=this._nextId;return this._idToShortId.set(e,t),this._documentIds.set(t,e),this._documentCount+=1,this._nextId+=1,t},n.prototype.addFields=function(e){for(var t=0;t<e.length;t++)this._fieldIds[e[t]]=t},n.prototype.addFieldLength=function(e,t,i,r){var s=this._fieldLength.get(e);s==null&&this._fieldLength.set(e,s=[]),s[t]=r;var o=this._avgFieldLength[t]||0,l=o*i+r;this._avgFieldLength[t]=l/(i+1)},n.prototype.removeFieldLength=function(e,t,i,r){if(i===1){this._avgFieldLength[t]=0;return}var s=this._avgFieldLength[t]*i-r;this._avgFieldLength[t]=s/(i-1)},n.prototype.saveStoredFields=function(e,t){var i,r,s=this._options,o=s.storeFields,l=s.extractField;if(!(o==null||o.length===0)){var c=this._storedFields.get(e);c==null&&this._storedFields.set(e,c={});try{for(var u=Ye(o),f=u.next();!f.done;f=u.next()){var d=f.value,p=l(t,d);p!==void 0&&(c[d]=p)}}catch(y){i={error:y}}finally{try{f&&!f.done&&(r=u.return)&&r.call(u)}finally{if(i)throw i.error}}}},n.wildcard=Symbol("*"),n}(),Qf=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)?n[e]:void 0},qV=(qa={},qa[Kf]=function(n,e){var t,i;try{for(var r=Ye(e.keys()),s=r.next();!s.done;s=r.next()){var o=s.value,l=n.get(o);if(l==null)n.set(o,e.get(o));else{var c=e.get(o),u=c.score,f=c.terms,d=c.match;l.score=l.score+u,l.match=Object.assign(l.match,d),yw(l.terms,f)}}}catch(p){t={error:p}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}return n},qa[mw]=function(n,e){var t,i,r=new Map;try{for(var s=Ye(e.keys()),o=s.next();!o.done;o=s.next()){var l=o.value,c=n.get(l);if(c!=null){var u=e.get(l),f=u.score,d=u.terms,p=u.match;yw(c.terms,d),r.set(l,{score:c.score+f,terms:c.terms,match:Object.assign(c.match,p)})}}}catch(y){t={error:y}}finally{try{o&&!o.done&&(i=s.return)&&i.call(s)}finally{if(t)throw t.error}}return r},qa[YV]=function(n,e){var t,i;try{for(var r=Ye(e.keys()),s=r.next();!s.done;s=r.next()){var o=s.value;n.delete(o)}}catch(l){t={error:l}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}return n},qa),KV={k:1.2,b:.7,d:.5},QV=function(n,e,t,i,r,s){var o=s.k,l=s.b,c=s.d,u=Math.log(1+(t-e+.5)/(e+.5));return u*(c+n*(o+1)/(n+o*(1-l+l*i/r)))},ek=function(n){return function(e,t,i){var r=typeof n.fuzzy=="function"?n.fuzzy(e,t,i):n.fuzzy||!1,s=typeof n.prefix=="function"?n.prefix(e,t,i):n.prefix===!0;return{term:e,fuzzy:r,prefix:s}}},ep={idField:"id",extractField:function(n,e){return n[e]},tokenize:function(n){return n.split(ik)},processTerm:function(n){return n.toLowerCase()},fields:void 0,searchOptions:void 0,storeFields:[],logger:function(n,e){typeof(console==null?void 0:console[n])=="function"&&console[n](e)},autoVacuum:!0},gw={combineWith:Kf,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:KV},tk={combineWith:mw,prefix:function(n,e,t){return e===t.length-1}},tp={batchSize:1e3,batchWait:10},np={minDirtFactor:.1,minDirtCount:20},ip=ht(ht({},tp),np),nk=function(n,e){n.includes(e)||n.push(e)},yw=function(n,e){var t,i;try{for(var r=Ye(e),s=r.next();!s.done;s=r.next()){var o=s.value;n.includes(o)||n.push(o)}}catch(l){t={error:l}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}},vw=function(n,e){var t=n.score,i=e.score;return i-t},bw=function(){return new Map},cu=function(n){var e,t,i=new Map;try{for(var r=Ye(Object.keys(n)),s=r.next();!s.done;s=r.next()){var o=s.value;i.set(parseInt(o,10),n[o])}}catch(l){e={error:l}}finally{try{s&&!s.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}return i},ik=/[\n\r -#%-*,-/:;?@[-\]_{}\u00A0\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u1680\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2000-\u200A\u2010-\u2029\u202F-\u2043\u2045-\u2051\u2053-\u205F\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u3000-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]+/u;const rk=["label","models","source"];class sk{constructor(){this._searchEngine=new JV({fields:["path","name"],storeFields:["path"],tokenize:(e,t)=>e.split('"')}),this._featureIds=[],this.zincObjects=[],this.regions=[]}indexMetadata(e,t){const i=[];for(const r of rk)if(r in t){const s=t[r];i.includes(s)||(this.addTerm_(e,s),i.push(s))}}addZincObject(e,t){const i=e.getRegion().getFullPath(),s={path:i?`${i}/${e.groupName}`:e.groupName,name:e.groupName,id:t};this._searchEngine.add(s,{fields:["path","name"]}),this.zincObjects.push(e)}removeZincObject(e,t){const i=e.getRegion().getFullPath(),s={path:i?`${i}/${e.groupName}`:e.groupName,name:e.groupName,id:t};this._searchEngine.remove(s,{fields:["path","name"]});for(let o=0;o<this.zincObjects.length;o++)if(t===this.zincObjects[o].uuid){this.zincObjects.splice(o,1);return}}addRegion(e,t){const i={path:e.getFullPath(),name:e.getName(),id:t};this._searchEngine.add(i,{fields:["path","name"]}),this.regions.push(e)}clearResults(){this._}removeAll(){this._searchEngine.removeAll(),this.zincObjects.length=0,this.regions.length=0}auto_suggest(e){return this._searchEngine.autoSuggest(e,{prefix:!0})}processResults(e,t){const i={regionPath:void 0,label:'Search Results for "'};return Array.isArray(t)?i.label+=",".join(t):i.label+=t,i.label+='"',e.length===1&&(e[0].isRegion?i.regionPath=e[0].getFullPath():e[0].isZincObject&&(i.regionPath=e[0].getRegion().getFullPath(),i.label=e[0].groupName)),i.zincObjects=qF(e),i}search(e){const t=this._searchEngine.search(e,{prefix:!0}),i=this.zincObjects.filter(s=>t.map(o=>o.id).includes(s.uuid)),r=this.regions.filter(s=>t.map(o=>o.id).includes(s.uuid));return i.push(...r),i}searchTerms(e){let t=[];return e.forEach(i=>{const r=this.search(i);t.push(...r)}),t}searchAndProcessResult(e){let t=[];return Array.isArray(e)?t=this.searchTerms(e):t=this.search(e),this.processResults(t,e)}}const ok=rw("settings",{state:()=>({organCuries:[],imageTypes:[],imageThumbnails:{}}),getters:{imageTypeCached:n=>e=>n.imageTypes.includes(e),getImageThumbnails:n=>(e,t=void 0)=>{if(t){let i={};return Object.entries(n.imageThumbnails).forEach(([r,s])=>{t.includes(r)&&(i[r]=s.filter(o=>o.type===e))}),i}return n.imageThumbnails}},actions:{updateOrganCuries(n){this.organCuries=n},updateImageThumbnails(n,e){this.imageTypes.push(n),Object.keys(e).forEach(t=>{t in this.imageThumbnails||(this.imageThumbnails[t]=[]),this.imageThumbnails[t].push(...e[t])})}}}),uu=async(n,e,t)=>await(await fetch(`${n}/get-files-info-for-curies`,{method:"POST",body:JSON.stringify({curies:e.map(s=>s.id),filetypes:t}),headers:{"Content-Type":"application/json"}})).json(),du=n=>n.substring(n.lastIndexOf("/")+1),ak=(n,e)=>`${n}/thumbnail/${e}`,lk=async(n,e,t)=>{try{const i=await uu(n,e,["biolucida-2d","biolucida-3d"]);if(i.files_info){let r={};for(const[s,o]of Object.entries(i.files_info))if(o.length>0){let l=[];o.forEach(c=>{const u=ak(n,c.biolucida_id);if(c.biolucida_id){let f={thumbnail:u,resource:c.file_path,id:c.id,title:du(c.file_path),type:t,link:u,mimetype:c.mimetype,species:c.species,version:c.version};l.push(f)}}),r[s]=l}return r}}catch(i){console.error("Error:",i)}return{}},ck=(n,e,t,i)=>`${n}/thumbnail/neurolucida?datasetId=${e}&version=${t}&path=files/${i}`,uk=async(n,e,t)=>{try{const i=await uu(n,e,["mbf-segmentation"]);if(i.files_info){let r={};for(const[s,o]of Object.entries(i.files_info))if(o.length>0){let l=[];o.forEach(c=>{const u=ck(n,c.id,c.version,c.file_path);let f={thumbnail:u,resource:c.file_path,id:c.id,title:du(c.file_path),type:t,link:u,mimetype:c.mimetype,species:c.species,version:c.version};l.push(f)}),r[s]=l}return r}}catch(i){console.error("Error:",i)}return{}},xw=(n,e,t)=>{if(n&&e)for(let i=0;i<n.isSourceOf.length;i++)for(let r=0;r<e.length;r++){const s=e[r];if(n.id===s.id&&(!t||s.type===t)&&n.isSourceOf[i]===s.file_path)return s}},dk=(n,e,t)=>{const i=xw(e,t,"abi-scaffold-view-file"),r=xw(i,t,"abi-thumbnail");if(r)return`${n}/s3-resource/${r.id}/files/${r.file_path}`},hk=async(n,e,t)=>{try{const i=await uu(n,e,["abi-thumbnail","abi-scaffold-metadata-file","abi-scaffold-view-file"]);if(i.files_info){let r={};for(const[s,o]of Object.entries(i.files_info))if(o.length>0){let l=[];o.forEach(c=>{if(c.type==="abi-scaffold-metadata-file"){const u=dk(n,c,o);if(u){let f={thumbnail:u,resource:c.file_path,id:c.id,title:du(c.file_path),type:t,link:u,species:c.species,version:c.version};l.push(f)}}}),r[s]=l}return r}}catch(i){console.error("Error:",i)}return{}},fk=(n,e)=>{if(e.isSourceOf.length>0)return`${n}/s3-resource/${e.id}/files/${e.isSourceOf[0]}`},pk=async(n,e,t)=>{try{const i=await uu(n,e,["abi-plot","abi-thumbnail"]);if(i.files_info){let r={};for(const[s,o]of Object.entries(i.files_info))if(o.length>0){let l=[];o.forEach(c=>{if(c.type==="abi-plot"){const u=fk(n,c);if(u){let f={thumbnail:u,resource:c.file_path,id:c.id,title:du(c.file_path),type:t,link:u,species:c.species,version:c.version};l.push(f)}}}),r[s]=l}return r}}catch(i){console.error("Error:",i)}return{}},mk={name:"ScaffoldVuer",mixins:[{methods:{populateMapWithImages:async function(n,e){let t={};for(const[i,r]of Object.entries(n)){const s=await this.downloadImageThumbnail(i,r,e);s&&(t[i]=s)}return t},downloadImageThumbnail:async function(n,e,t){const i=e.length;if(i>0){const r=Math.floor(Math.random()*i),s=e[r].thumbnail;try{const o=await this.getImageThumbnail(s,t);return await this.addImageThumbnailMarker(n,o)}catch{e.splice(r),this.downloadImageThumbnail(n,e,t)}}},getImageThumbnail:async function(n,e){return new Promise((t,i)=>{e==="Image"||e==="Segmentation"?this.getBinaryThumbnail(n).then(r=>t(r)).catch(r=>i(r)):this.getGenericThumbnail(n).then(r=>t(r)).catch(r=>i(r))})},getBinaryThumbnail:async function(n){return new Promise((e,t)=>{fetch(n).then(i=>{if(i.status>=200&&i.status<300)return i.text();t()}).then(i=>{if(i){let r=new Image;r.onload=function(){e(`data:'image/png';base64,${i}`)},r.onerror=function(){t(new Error("Failed to load image at "+n))},r.src=`data:'image/png';base64,${i}`}else t(new Error("Failed to load image at "+n))})})},getGenericThumbnail:async function(n){return new Promise((e,t)=>{let i=new Image;i.onload=function(){e(n)},i.onerror=function(){t(new Error("Failed to load image at "+n))},i.src=n})},addImageThumbnailMarker:async function(n,e){const t=await(await fetch(e)).blob(),i=URL.createObjectURL(t);return{number:this.markerLabels[n],imgURL:i}}}}],components:{Button:Qi,Col:fn,Loading:FL,Option:Rs,Popover:Dl,Row:kn,Select:As,Slider:Rn,TabPane:s0,Tabs:r0,MapSvgIcon:sp.MapSvgIcon,MapSvgSpriteColor:sp.MapSvgSpriteColor,PrimitiveControls:Yx,ScaffoldTooltip:aw,ElIconWarningFilled:pm,ElIconArrowDown:Du,ElIconArrowLeft:ji,DrawToolbar:fu.DrawToolbar,ScaffoldTreeControls:Jx},setup(n){return{annotator:a.markRaw(new BV(`${n.flatmapAPI}annotator`))}},props:{url:{type:String,default:""},showColourPicker:{type:Boolean,default:!1},displayUI:{type:Boolean,default:!0},displayAtStartUp:{type:Boolean,default:!0},helpMode:{type:Boolean,default:!1},helpModeActiveItem:{type:Number,default:0},helpModeDialog:{type:Boolean,default:!1},helpModeLastItem:{type:Boolean,default:!1},helpModeInitialIndex:{type:Number,default:0},displayWarning:{type:Boolean,default:!0},warningMessage:{type:String,default:"Beta feature - under active development"},displayLatestChanges:{type:Boolean,default:!1},latestChangesMessage:{type:String,default:"New feature - Local search is now available"},displayMarkers:{type:Boolean,default:!1},markerCluster:{type:Boolean,default:!1},markerLabels:{type:Object,default:function(){return{}}},displayMinimap:{type:Boolean,default:!1},format:{type:String,default:"metadata"},minimapSettings:{type:Object,default:function(){return{x_offset:16,y_offset:16,width:128,height:128,align:"top-right"}}},enableOpenMapUI:{type:Boolean,default:!1},openMapOptions:{type:Array,default:function(){return[{display:"Open AC Map",key:"AC"},{display:"Open FC Map",key:"FC"},{display:"Open 3D Human Map",key:"3D"}]}},state:{type:Object,default:void 0},region:{type:String,default:""},viewURL:{type:String,default:""},render:{type:Boolean,default:!0},flatmapAPI:{type:String,default:"https://mapcore-demo.org/current/flatmap/v3/"},enableLocalAnnotations:{type:Boolean,default:!1},sparcAPI:{type:String,default:""},imageThumbnailSidebar:{type:Boolean,default:!1}},provide(){return{flatmapAPI:this.flatmapAPI,scaffoldUrl:this.url,$annotator:this.annotator,boundingDims:this.boundingDims,getFeaturesAlert:()=>{}}},data:function(){return{annotator:void 0,createData:{drawingBox:!1,toBeConfirmed:!1,points:[],shape:"",x:0,y:0,editingIndex:-1,faceIndex:-1,toBeDeleted:!1},currentTime:0,timeVarying:!1,isPlaying:!1,isReady:!1,isTransitioning:!1,tooltipAppendToBody:!1,hoverVisibilities:[{value:!1,ref:"zoomInPopover"},{value:!1,ref:"zoomOutPopover"},{value:!1,ref:"zoomFitPopover"},{value:!1,ref:"openMapPopover"},{value:!1,ref:"settingsPopover"},{value:!1,ref:"sliderPopover"},{value:!1,ref:"regionVisibilityPopover"},{value:!1,ref:"warningPopover"},{value:!1,ref:"whatsNewPopover"},{value:!1,refs:"toolbarPopover",ref:"editPopover"},{value:!1,refs:"toolbarPopover",ref:"pointPopover"},{value:!1,refs:"toolbarPopover",ref:"lineStringPopover"},{value:!1,refs:"toolbarPopover",ref:"deletePopover"}],inHelp:!1,helpModeActiveIndex:this.helpModeInitialIndex,loading:!1,imagesDownloading:!1,duration:3e3,drawerOpen:!0,currentBackground:"white",availableBackground:["white","lightskyblue","black"],minimisedSlider:!1,sliderPosition:"",timeMax:100,orginalDuration:"",animateDuration:"6secs",playSpeed:[{value:.1,label:"0.1x"},{value:.5,label:"0.5x"},{value:1,label:"1x"},{value:2,label:"2x"},{value:5,label:"5x"},{value:10,label:"10x"}],currentSpeed:1,timeStamps:{},defaultCheckedKeys:[],tData:{label:"",region:"",visible:!1,x:200,y:200,active:!1},fileFormat:"metadata",markerLabelEntry:a.markRaw({}),previousMarkerLabelEntry:a.markRaw({}),viewingMode:"Exploration",viewingModes:{Exploration:"View and explore detailed visualization of 3D scaffolds",Annotation:"View internal identifiers of features"},openMapRef:void 0,backgroundIconRef:void 0,userInformation:void 0,toolbarOptions:["Delete","Edit","Point","LineString"],activeDrawTool:void 0,activeDrawMode:void 0,localAnnotationsList:a.markRaw([]),boundingDims:{centre:[0,0,0],size:[1,1,1]},imageRadio:!1,imageType:"Image",imageTypes:["Image","Segmentation","Scaffold","Plot"],imageClicked:"",groupNames:a.markRaw([])}},watch:{format:{handler:function(n){this.fileFormat=n},immediate:!0},url:{handler:function(n){(this.state===void 0||this.state.url===void 0)&&this.setURL(n)},immediate:!0},region:{handler:function(n){this.state||this.viewURL||this.setFocusedRegion(n)},immediate:!0},state:{handler:function(n){this.setState(n)},immediate:!0,deep:!0},viewURL:{handler:function(n){this.updateViewURL(n)},immediate:!0},helpMode:function(n,e){n!==e&&this.setHelpMode(n)},helpModeActiveItem:function(){this.helpMode&&(this.helpModeActiveIndex+=1,this.setHelpMode(this.helpMode))},displayMarkers:function(n){this.$module.scene.displayMarkers=n,this.$module.scene.forcePickableObjectsUpdate=!0},displayMinimap:function(n){this.$module.scene.displayMinimap=n},currentTime:{handler:function(){this.$emit("timeChanged",this.currentTime)}},duration:function(){this.$module.scene.setDuration(this.duration)},minimapSettings:{deep:!0,handler:"updateMinimapScissor"},render:function(n){this.toggleRendering(n)},markerCluster:{handler:function(n){this.$module.scene.enableMarkerCluster(n)},immediate:!0},markerLabels:function(n){this.imageRadio===!1&&(this.markerLabelEntry=a.markRaw({...n}))},markerLabelEntry:function(n){for(const[e,t]of Object.entries(this.previousMarkerLabelEntry))this.setMarkerModeForObjectsWithName(e,t,"off");for(const[e,t]of Object.entries(n))this.setMarkerModeForObjectsWithName(e,t,"on");this.previousMarkerLabelEntry=a.markRaw({...n})}},beforeCreate:function(){this.$module=new cw,this.selectedObjects=[],this.hoveredObjects=[],this.currentBackground="white",this._currentURL=void 0,this.availableBackground=["white","black","lightskyblue"],this.$_searchIndex=new sk},mounted:function(){this.openMapRef=a.shallowRef(this.$refs.openMapRef),this.backgroundIconRef=a.shallowRef(this.$refs.backgroundIconRef),this.$refs.scaffoldTreeControls.setModule(this.$module);let n=new kV;n.subscribe(this,this.eventNotifierCallback),this.$module.addNotifier(n),this.$module.addOrganPartAddedCallback(this.zincObjectAdded),this.$module.addOrganPartRemovedCallback(this.zincObjectRemoved),this.$module.initialiseRenderer(this.$refs.display),this.toggleRendering(this.render),this.ro=new ResizeObserver(this.adjustLayout).observe(this.$refs.scaffoldContainer),this.helpTextWait=[],this.helpTextWait.length=this.hoverVisibilities.length,this.defaultRate=this.$module.getPlayRate(),this.$module.zincRenderer.addPreRenderCallbackFunction(()=>{this.currentTime=this.$module.getCurrentTime()})},beforeUnmount:function(){this.ro&&this.ro.disconnect(),this.$module.destroy(),this.$module=void 0},computed:{...sw(ow,["userToken"]),...AV(ok),annotationDisplay:function(){return this.viewingMode==="Annotation"&&this.tData.active===!0&&(this.activeDrawMode==="Edit"||this.activeDrawMode==="Delete")},imageThumbnailsEntry:function(){return this.imageClicked?this.convertUberonToName():{}}},methods:{addZincObject:function(n){this.$module.scene&&this.$module.scene.addZincObject(n)},zincObjectAdded:function(n){this.loading=!1,this.$_searchIndex.addZincObject(n,n.uuid),this.timeVarying===!1&&n.isTimeVarying()&&(this.timeVarying=!0),n.groupName&&this.groupNames.push(n.groupName.toLowerCase()),this.$emit("zinc-object-added",n)},removeFromLocalAnnotationList:function(n,e){for(let t=0;t<this.localAnnotationsList.length;t++){const i=this.localAnnotationsList[t];if(i.region===n&&i.group===e){this.localAnnotationsList.splice(t,1);return}}},zincObjectRemoved:function(n){if(this.$module.scene){const e=n.region.getFullPath(),t=n.groupName;n.region.findObjectsWithGroupName(t,!1).length===0&&(this.$_searchIndex.removeZincObject(n,n.uuid),this.removeFromLocalAnnotationList(e,t))}},addRegionsToSearchIndex:function(){this.$module.scene.getRootRegion().getChildRegions(!0).forEach(t=>{this.$_searchIndex.addRegion(t,t.uuid)})},backgroundChangeCallback:function(n){this.currentBackground=n,this.$module.zincRenderer.getThreeJSRenderer().setClearColor(this.currentBackground,1)},captureScreenshotCallback:function(){this.$module.zincRenderer.removePostRenderCallbackFunction(this.captureID);let n=this.$module.zincRenderer.getThreeJSRenderer().domElement.toDataURL("image/png"),e=document.createElement("a");document.body.append(e),this.captureFilename?e.download=this.captureFilename:e.download="screenshot.png",e.href=n,e.click(),e.remove()},captureScreenshot:function(n){this.captureFilename=n,this.captureID=this.$module.zincRenderer.addPostRenderCallbackFunction(this.captureScreenshotCallback)},clearScene:function(){this.$refs.scaffoldTreeControls&&this.$refs.scaffoldTreeControls.clear(),this.$_searchIndex&&this.$_searchIndex.removeAll(),this.$module.scene&&this.$module.scene.clearAll()},addAndEditAnnotations:function(n,e,t,i){const r=Gx(this.annotator,this.userToken,t,n,e,this.url,i);if(this.enableLocalAnnotations){r.group=e;let s=n;s.slice(-1)==="/"&&(s=s.slice(0,-1)),r.region=s,this.removeFromLocalAnnotationList(s,e),this.localAnnotationsList.push(r)}this.$emit("userPrimitivesUpdated",{region:n,group:e,zincObject:t})},primitivesUpdated:function(n){if(n.isZincObject&&n.isEditable){const e=n.groupName,t=n.region.getFullPath();this.addAndEditAnnotations(t,e,n,"Position Updated")}},confirmCreate:function(n){if(n){let e;if(n.shape==="Point")e=this.$module.scene.createPoints(n.region,n.group,this.createData.points,n.group,8942);else if(n.shape==="LineString")e=this.$module.scene.createLines(n.region,n.group,[this.createData.points[0],this.createData.points[1]],60962);else if(n.editingIndex>-1&&this._editingZincObject){this._editingZincObject.editVertices([this.createData.points[1]],n.editingIndex);const t=this._editingZincObject.region.getFullPath()+"/",i=this._editingZincObject.groupName;this.addAndEditAnnotations(t,i,this._editingZincObject,"Position Updated")}e&&(this.addAndEditAnnotations(n.region,n.group,e.zincObject,"Create"),e.zincObject.isEditable=!0,this.tData.region=n.region,this.tData.label=n.group,this.changeActiveByName([n.group],n.region,!1))}this.cancelCreate()},cancelCreate:function(){this.createData.points.length=0,this.createData.toBeConfirmed=!1,this._editingZincObject=void 0,this.createData.editingIndex=-1,this.createData.faceIndex=-1,this.tData.visible=!1,this.createData.toBeDeleted=!1,this._tempLine&&(this.$module.scene.removeTemporaryPrimitive(this._tempLine),this._tempLine=void 0),this._tempPoint&&(this.$module.scene.removeTemporaryPrimitive(this._tempPoint),this._tempPoint=void 0)},confirmDelete:function(){var n;if((n=this._editingZincObject)!=null&&n.isEditable){const e=this._editingZincObject.region.getFullPath()+"/",t=this._editingZincObject.groupName;Gx(this.annotator,this.userToken,this._editingZincObject,e,t,this.url,"Deleted")&&this.$module.scene.getRootRegion().findChildFromPath(e).removeZincObject(this._editingZincObject)}this.cancelCreate()},formatTooltip(n){if(this.timeMax>=1e3&&n){let e=(n%6e4/1e3).toFixed(2)+"s";return(n>6e4?(n/6e4).toFixed(0)+"m ":"")+e}return n?n.toFixed(2)+" ms":"0 ms"},fitWindow:function(){if(this.$module.scene){let n=!1;this._boundingBoxGeo&&(n=this._boundingBoxGeo.getVisibility(),this._boundingBoxGeo.setVisibility(!1)),this.$module.scene.viewAll(),this._boundingBoxGeo&&(YF(this._boundingBoxGeo,this.$module.scene),this._boundingBoxGeo.setVisibility(n))}},zoomIn:function(){this.$module.scene&&this.$module.scene.changeZoomByScrollRateUnit(-1)},zoomOut:function(){this.$module.scene&&this.$module.scene.changeZoomByScrollRateUnit(1)},speedChanged:function(n){this.currentSpeed=n,this.$module.setPlayRate(this.defaultRate*this.currentSpeed)},stopFreeSpin:function(){this.$module.scene.getZincCameraControls().stopAutoTumble(),this.isTransitioning=!1},findObjectsWithGroupName:function(n){let e=[];return n&&n!=""&&this.$module.scene&&(e=this.$module.scene.findObjectsWithGroupName(n)),e},toggleDrawing:function(n,e){this.createData.toBeDeleted=!1,n==="mode"?(this.activeDrawMode=e,this.createData.shape="",this.$module.selectObjectOnPick=!0):n==="tool"&&(this.activeDrawTool=e,this.createData.shape=this.activeDrawTool,this.$module.selectObjectOnPick=!1)},toggleDrawingBox:function(){this.createData.drawingBox=!this.createData.drawingBox},viewRegion:function(n){const e=this.$module.scene.getRootRegion(),t=Array.isArray(n)?n:[n],i=Ro(e,t,"",!0);let r=this.$module.scene.getBoundingBoxOfZincObjects(i);if(r){if(this.$module.isSyncControl())this.$module.setSyncControlZoomToBox(r);else{const s=this.$module.scene.camera.far-this.$module.scene.camera.near;this.$module.scene.viewAllWithBoundingBox(r),this.$module.scene.camera.far=this.$module.scene.camera.near+s,this.$module.scene.camera.updateProjectionMatrix()}return!0}return!1},setFocusedRegion:function(n){n&&(this.isReady?this.viewRegion(n):this.$module.setFinishDownloadCallback(this.setURLFinishCallback({region:n})))},updateViewURL:function(n){if(n)if(this.isReady){const e=new URL(n,this.url);this.$module.scene.loadViewURL(e)}else this.$module.setFinishDownloadCallback(this.setURLFinishCallback({viewURL:n}))},createEditTemporaryLines:function(n){if(n&&(this.createData.shape==="LineString"||this.createData.editingIndex>-1)&&this.createData.points.length===1)if(this._tempLine){const e=this._tempLine.geometry.getAttribute("position");e.setXYZ(1,n[0],n[1],n[2]),e.needsUpdate=!0}else this._tempLine=this.$module.scene.addTemporaryLines([this.createData.points[0],n],65535)},draw:function(n){n&&n.length>0&&n[0].data.group&&n[0].extraData.worldCoords&&(this.createData.shape==="Point"?this.drawPoint(n[0].extraData.worldCoords,n):(this.createData.shape==="LineString"||this.createData.editingIndex>-1)&&this.drawLine(n[0].extraData.worldCoords,n))},drawPoint:function(n,e){this.createData.toBeConfirmed===!1&&(this.createData.points.length=0,this.createData.points.push(n),this.showRegionTooltipWithAnnotations(e,!0,!1),this.tData.x=50,this.tData.y=200,this._tempPoint=this.$module.scene.addTemporaryPoints([n],16776960),this.createData.toBeConfirmed=!0)},drawLine:function(n,e){this.createData.toBeConfirmed===!1&&(this.createData.points.length===1?(this.createData.points.push(n),this.showRegionTooltipWithAnnotations(e,!0,!1),this.tData.x=50,this.tData.y=200,this.createData.toBeConfirmed=!0):(this._tempPoint=this.$module.scene.addTemporaryPoints([n],16776960),this.createData.points.push(n)))},getRendererInfo:function(){if(this.$module.zincRenderer)return this.$module.zincRenderer.getThreeJSRenderer().info},freeSpin:function(){if(this.$module.scene){let n=this.$module.scene.getZincCameraControls();this.isTransitioning=!0,n.enableAutoTumble(),n.autoTumble([1,0],Math.PI,!0),setTimeout(this.stopFreeSpin,4e3)}},activateAnnotationMode:function(n,e){if(this.userInformation||this.enableLocalAnnotations)if(this.createData.toBeDeleted=!1,this.createData.shape!==""||this.createData.editingIndex>-1)n.length>0&&e.identifiers[0].coords&&(this.createData.x=e.identifiers[0].coords.x,this.createData.y=e.identifiers[0].coords.y,this.draw(e.identifiers));else{if(this.activeDrawMode==="Edit"){const t=$F(e);t&&this.activateEditingMode(t.zincObject,t.faceIndex,t.vertexIndex,t.point)}else if(this.activeDrawMode==="Delete"){const t=ZF(e);t&&(this.createData.toBeDeleted=!0,this._editingZincObject=t)}this.activeDrawMode==="Edit"||this.activeDrawMode==="Delete"?(this.showRegionTooltipWithAnnotations(e.identifiers,!0,!1),this.tData.x=50,this.tData.y=200):this.showRegionTooltipWithAnnotations(e.identifiers,!0,!0)}else this.showRegionTooltipWithAnnotations(e.identifiers,!0,!0)},activateEditingMode:function(n,e,t,i){this._editingZincObject=n,this.createData.faceIndex=e,this.createData.editingIndex=t,this.drawLine(i,void 0)},eventNotifierCallback:function(n){if(!(this.createData.toBeConfirmed||this.createData.toBeDeleted)){const e=[];let t=[];if((n.eventType==1||n.eventType==2)&&(n.identifiers.forEach(i=>{if(i){let r=i.data.id?i.data.id:i.data.group;e.push(r),i.data&&(i.data.imageType=this.imageRadio?this.imageType:"Standard")}}),t=n.zincObjects),n.eventType==1)this.viewingMode==="Annotation"?this.activateAnnotationMode(e,n):(this.$refs.scaffoldTreeControls&&(e.length>0?(this.$refs.scaffoldTreeControls.updateActiveUI(t),this.updatePrimitiveControls(t)):(this.hideRegionTooltip(),this.$refs.scaffoldTreeControls.removeActive(!1))),this.imageRadio&&n.identifiers.length&&n.identifiers[0]?this.imageClicked=n.identifiers[0].data.id?n.identifiers[0].data.id:n.identifiers[0].data.group:this.imageClicked="",this.$emit("scaffold-selected",n.identifiers));else if(n.eventType==2){if(this.selectedObjects.length===0){if(this.hideRegionTooltip(),this.$refs.scaffoldTreeControls&&(e.length>0?this.$refs.scaffoldTreeControls.updateHoverUI(t):this.$refs.scaffoldTreeControls.removeHover(!0)),n.identifiers.length>0&&n.identifiers[0]){let i=n.identifiers[0].data.id?n.identifiers[0].data.id:n.identifiers[0].data.group;n.identifiers[0].coords&&(this.tData.active=!1,this.tData.visible=!0,this.tData.label=i,n.identifiers[0].data.region?this.tData.region=n.identifiers[0].data.region:this.tData.region=void 0,this.tData.x=n.identifiers[0].coords.x,this.tData.y=n.identifiers[0].coords.y,this.createEditTemporaryLines(n.identifiers[0].extraData.worldCoords))}this.$emit("scaffold-highlighted",n.identifiers)}}else if(n.eventType==3&&n.identifiers.length>0&&n.identifiers[0]){if(n.identifiers[0].coords){const r=this.$refs.scaffoldContainer.getBoundingClientRect();this.tData.x=n.identifiers[0].coords.x-r.left,this.tData.y=n.identifiers[0].coords.y-r.top,this.createEditTemporaryLines(n.identifiers[0].extraData.worldCoords)}this.createEditTemporaryLines(n.identifiers[0].extraData.worldCoords);const i=n.identifiers[0].data.id?n.identifiers[0].data.id:n.identifiers[0].data.group;this.imageClicked!==i&&(this.imageClicked="")}}},getCoordinatesOfSelected:function(){if(this.selectedObjects&&this.selectedObjects.length>0)return this.$module.scene.getObjectsScreenXY(this.selectedObjects)},getDynamicSelectedCoordinates:function(){return this.$module.selectedScreenCoordinates},timeChange:function(n){let e=n/this.timeMax*100;e!=this.currentTime&&this.$module.updateTime(e)},updatePrimitiveControls:function(n){this.selectedObjects=n,this.selectedObjects&&this.selectedObjects.length>0?this.$refs.primitiveControls.setObject(this.selectedObjects[0]):this.$refs.primitiveControls.setObject(void 0)},objectSelected:function(n,e){this.updatePrimitiveControls(n),this.$module.setSelectedByZincObjects(n,void 0,{},e)},objectHovered:function(n,e){this.hoveredObjects=n,this.$module.setHighlightedByZincObjects(n,void 0,{},e)},changeActiveByName:function(n,e,t){const i=Array.isArray(n);if(n===void 0||i&&n.length===0)this.$refs.scaffoldTreeControls.removeActive(t);else{let r=n;i||(r=[r]),this.$refs.scaffoldTreeControls.changeActiveByNames(r,e,t)}},changeHighlightedByName:function(n,e,t){const i=Array.isArray(n);if(n===void 0||i&&n.length===0)this.$refs.scaffoldTreeControls.removeHover(t);else{let r=n;i||(r=[r]),this.$refs.scaffoldTreeControls.changeHoverByNames(r,e,t)}},play:function(n){this.$module.playAnimation(n),this.isPlaying=n},setHelpMode:function(n){const e=this.hoverVisibilities.length,t=e-1,i=this.hoverVisibilities[this.helpModeActiveIndex];if(i){const r=i==null?void 0:i.refs,s=i==null?void 0:i.ref;this.$refs[r||s]||(this.helpModeActiveIndex+=1)}n||(this.helpModeActiveIndex=this.helpModeInitialIndex),n&&this.helpModeActiveIndex>=t&&this.$emit("help-mode-last-item",!0),n&&!this.helpModeDialog?(this.inHelp=!0,this.hoverVisibilities.forEach(r=>{r.value=!0})):n&&this.helpModeDialog&&e>this.helpModeActiveIndex?this.helpModeActiveIndex>-1&&setTimeout(()=>{this.inHelp=!1,this.hoverVisibilities.forEach(r=>{r.value=!1}),this.showHelpText(this.helpModeActiveIndex,200)},300):(this.inHelp=!1,this.hoverVisibilities.forEach(r=>{r.value=!1}))},displayTooltipOfObjectsCallback:function(n,e,t,i,r){const s=this;return function(){s.$module.zincRenderer.removePostRenderCallbackFunction(s.$_regionTooltipCallback),s.$_regionTooltipCallback=void 0,s.displayTooltipOfObjects(n,e,t,i,r)}},liveUpdateTooltipPosition:function(){this.$module.selectedCenter&&(this.tData.x=this.$module.selectedScreenCoordinates.x,this.tData.y=this.$module.selectedScreenCoordinates.y)},displayTooltipOfObjects:function(n,e,t,i,r){if(e.length>0){let s=e[0].getClosestVertexDOMElementCoords(this.$module.scene);if(s)return s.inView?(n.includes("Search Results for")?this.tData.active=!1:this.tData.active=!0,this.tData.visible=!0,this.tData.label=n,this.tData.x=s.position.x,this.tData.y=s.position.y,this.tData.region=t,this.$_liveCoordinatesUpdated&&this.$module.zincRenderer.removePostRenderCallbackFunction(this.$_liveCoordinatesUpdated),r&&(this.$module.setupLiveCoordinates(e),this.$_liveCoordinatesUpdated=this.$module.zincRenderer.addPostRenderCallbackFunction(this.liveUpdateTooltipPosition))):(this.hideRegionTooltip(),i&&(this.$module.scene.viewAll(),this.$_regionTooltipCallback&&this.$module.zincRenderer.removePostRenderCallbackFunction(this.$_regionTooltipCallback),this.$_regionTooltipCallback=this.$module.zincRenderer.addPostRenderCallbackFunction(this.displayTooltipOfObjectsCallback(n,e,t,i,r)))),!0}return this.hideRegionTooltip(),!1},showRegionTooltipWithObjects:function(n,e,t,i,r){return n&&e&&e.length>0&&this.$module.scene?this.displayTooltipOfObjects(n,e,t,i,r):(this.hideRegionTooltip(),!1)},showRegionTooltip:function(n,e,t){if(n&&this.$module.scene){const i=this.$module.scene.getRootRegion(),s=Ro(i,[n],"",!0);let o;return s&&s.length>0&&(o=s[0].getRegion().getFullPath()),this.showRegionTooltipWithObjects(n,s,o,e,t)}return this.hideRegionTooltip(),!1},showRegionTooltipWithAnnotations:function(n,e,t){if(this.$module.scene){const i=Ux(this.$module.scene,n);if(i&&i.objects.length>0)return this.showRegionTooltipWithObjects(i.label,i.objects,i.regionPath,e,t)}return this.hideRegionTooltip(),!1},changeViewingMode:function(n){if(this.$module){if(n&&(this.viewingMode=n),this.viewingMode==="Annotation"){let e=!1;this.userInformation&&(e=!0),this.userInformation=void 0,this.annotator.authenticate(this.userToken).then(t=>{t.name&&t.email&&(this.userInformation=t,e||eV(this.annotator,this.userToken,this.url).then(i=>{i&&i.features&&Hx(this.$module.scene,i.features)}))})}else this.viewingMode==="Exploration"&&(this.activeDrawTool=void 0,this.activeDrawMode=void 0,this.createData.shape="");this.viewingMode==="Exploration"||this.viewingMode==="Annotation"&&this.createData.shape===""?this.$module.selectObjectOnPick=!0:this.$module.selectObjectOnPick=!1,this.cancelCreate()}},hideRegionTooltip:function(){this.$_liveCoordinatesUpdated&&(this.$module.zincRenderer.removePostRenderCallbackFunction(this.$_liveCoordinatesUpdated),this.$module.setupLiveCoordinates(void 0)),this.tData.active=!1,this.tData.visible=!1,this.tData.region=void 0},setMarkerModeForObjectsWithName:function(n,e,t){if(n&&this.$module.scene){let i=e;typeof e=="number"&&(i={number:e,imgURL:void 0});const r=this.$module.scene.getRootRegion();Ro(r,[n],"",!0).forEach(l=>l.setMarkerMode(t,i))}},setMarkerModeWithAnnotations:function(n,e){if(this.$module.scene){const t=Ux(this.$module.scene,n);t&&t.objects.length>0&&t.objects.forEach(i=>i.setMarkerMode(e))}},showHelpText:function(n,e=500){this.inHelp||(clearTimeout(this.helpTextWait[n]),this.helpTextWait[n]=setTimeout(()=>{this.hoverVisibilities[n].value=!0,this.$emit("shown-tooltip")},e))},hideHelpText:function(n,e=500){this.inHelp||(clearTimeout(this.helpTextWait[n]),this.helpTextWait[n]=setTimeout(()=>{this.hoverVisibilities[n].value=!1},e))},search:function(n,e){if(this.$_searchIndex){if(n===void 0||n===""||Array.isArray(n)&&n.length===0)return this.objectSelected([],!0),!1;{const t=this.$_searchIndex.searchAndProcessResult(n),i=t.zincObjects;if(i.length>0){if(this.objectSelected(i,!0),e)for(let r=0;r<i.length;r++)i[r]&&i[r].groupName&&this.showRegionTooltipWithObjects(t.label,i,t.regionPath,!0,!0);return!0}else this.objectSelected([],!0)}}return!1},fetchSuggestions:function(n){return this.$_searchIndex===void 0?[]:this.$_searchIndex.auto_suggest(n)},updateMinimapScissor:function(){Object.keys(this.minimapSettings).forEach(n=>{this.$module.scene.minimapScissor[n]=this.minimapSettings[n]}),this.$module.scene.minimapScissor.updateRequired=!0},updateSettingsfromScene:function(){this.currentSpeed=1,this.$module.setPlayRate(this.defaultRate),this.orginalDuration=this.$module.scene.getMetadataTag("OriginalDuration"),this.animateDuration=this.$module.scene.getMetadataTag("Duration");let n=this.$module.scene.getMetadataTag("TimeStamps");this.timeStamps={};for(const e in n)this.timeStamps[n[e]]=e;this.timeMax=this.$module.scene.getDuration()},setURLFinishCallback:function(n){return()=>{if(n){if(n.viewport)this.$module.scene.getZincCameraControls().setCurrentCameraSettings(n.viewport);else if(n.viewURL&&n.viewURL!==""){const i=new URL(n.viewURL,this.url);this.$module.scene.loadViewURL(i)}else n.region&&n.region!==""&&this.viewRegion(n.region);n.visibility&&this.$nextTick(()=>{this.$refs.scaffoldTreeControls.setState(n.visibility)})}this.localAnnotationsList.length=0,this.updateSettingsfromScene(),this.$module.updateTime(.01),this.$module.updateTime(0),this.$module.unsetFinishDownloadCallback(),this.addRegionsToSearchIndex(),this.$emit("on-ready"),this.setMarkers(),this._boundingBoxGeo=this.$module.scene.addBoundingBoxPrimitive("_helper","boundingBox",4251856,.15),this._slides=this.$module.scene.addSlicesPrimitive("_helper",["x-plane","y-plane","z-plane"],[16733525,5635925,5592575],.5);const{centre:e,size:t}=this.$module.getCentreAndSize();this.boundingDims.centre=e,this.boundingDims.size=t,this.isReady=!0}},getState:function(){let n={format:this.fileFormat,url:this._currentURL,viewport:void 0,visibility:void 0};if(this.$refs.scaffoldTreeControls&&(n.visibility=this.$refs.scaffoldTreeControls.getState()),this.$module.scene){let e=this.$module.scene.getZincCameraControls();n.viewport=e.getCurrentViewport()}return n},setState:function(n){n&&(n.url&&n.url!==this._currentURL?this.setURLAndState(n.url,{fileFormat:n.fileFormat,viewport:n.viewport,visibility:n.visibility}):(n.viewport||n.visibility)&&(this.isReady&&this.$module.scene?(n.viewport&&this.$module.scene.getZincCameraControls().setCurrentCameraSettings(n.viewport),n.visibility&&this.$refs.scaffoldTreeControls.setState(n.visibility)):this.$module.setFinishDownloadCallback(this.setURLFinishCallback({viewport:n.viewport,visibility:n.visibility}))))},exportGLTF:function(n){return this.$module.scene.exportGLTF(n)},getLocalAnnotations:function(){return[...this.localAnnotationsList]},importLocalAnnotations:function(n){if(this.enableLocalAnnotations){n.forEach(t=>{const i=t.group,r=t.region;let s=r.slice(-1)==="/"?r:r+"/";const o=s.slice(0,-1);t.region=o,s=s+i;const l=encodeURIComponent(s);t.item.id=l,t.feature.id=l});const e=n.map(t=>t.feature);Hx(this.$module.scene,e),n.forEach(t=>{this.localAnnotationsList.push({...t})})}},setURLAndState:function(n,e){if(n!=this._currentURL){e&&e.format&&(this.fileFormat=e.format);let t=e&&e.viewport?e.viewport:void 0,i=e&&e.visibility?e.visibility:void 0;this._currentURL=n,this.$refs.scaffoldTreeControls&&this.$refs.scaffoldTreeControls.clear(),this.loading=!0,this.timeVarying=!1,this.isReady=!1,this.$_searchIndex.removeAll(),this.hideRegionTooltip(),this.$module.setFinishDownloadCallback(this.setURLFinishCallback({viewport:t,region:this.region,viewURL:this.viewURL,visibility:i})),this.groupNames.length=0,this.fileFormat==="gltf"?this.$module.loadGLTFFromURL(n,"scene",!0):this.$module.loadOrgansFromURL(n,void 0,void 0,"scene",void 0,!0),this.$module&&this.$module.scene&&(this.$module.scene.displayMarkers=this.displayMarkers,this.$module.scene.forcePickableObjectsUpdate=!0,this.$module.scene.displayMinimap=this.displayMinimap,this.updateMinimapScissor())}},setURL:function(n){this.setURLAndState(n,void 0)},drawerToggled:function(n){this.drawerOpen=n,this.adjustLayout()},adjustLayout:function(){if(this.$refs.scaffoldContainer){let n=this.$refs.scaffoldContainer.clientWidth;this.minimisedSlider=n<812,this.minimisedSlider?this.sliderPosition=this.drawerOpen?"right":"left":this.sliderPosition=""}},toggleRendering:function(n){this.$module.zincRenderer&&(n?this.$module.zincRenderer.animate():this.$module.zincRenderer.stopAnimate())},forceResize:function(){this.$module.zincRenderer&&this.$module.zincRenderer.onWindowResize()},syncControlCallback:function(){const n=this.$module.NDCCameraControl.getPanZoom();this.tData.visible&&this.showRegionTooltip(this.tData.label,!0,!0),this.$emit("scaffold-navigated",n)},toggleSyncControl:function(n,e){this.$module.toggleSyncControl(n,e),this.$module.setSyncControlCallback(this.syncControlCallback)},setMarkers:function(){for(const[n,e]of Object.entries(this.markerLabelEntry))this.setMarkerModeForObjectsWithName(n,e,"on")},removeImageThumbnails:function(){this.imageThumbnails={},this.markerLabelEntry=a.markRaw(this.markerLabels)},setImage:async function(n){n?(await this.setImageType(this.imageType),this.$module.scene.enableMarkerCluster(!1)):(this.removeImageThumbnails(),this.$module.scene.enableMarkerCluster(this.markerCluster))},setImageType:async function(n){this.imageType=n,this.imagesDownloading=!0,this.settingsStore.imageTypeCached(n)||(this.loading=!0,await this.fetchImageThumbnails(n),this.loading=!1),this.populateImageThumbnails(n)},fetchImageThumbnails:async function(n){let e={};const t=this.settingsStore.organCuries;n==="Image"?e=await lk(this.sparcAPI,t,n):n==="Segmentation"?e=await uk(this.sparcAPI,t,n):n==="Scaffold"?e=await hk(this.sparcAPI,t,n):n==="Plot"&&(e=await pk(this.sparcAPI,t,n)),this.settingsStore.updateImageThumbnails(n,e)},convertUberonToName:function(){const n=this.settingsStore.organCuries,e=n.filter(i=>this.groupNames.includes(i.name.toLowerCase())).map(i=>i.id),t=this.settingsStore.getImageThumbnails(this.imageType,e);return Object.fromEntries(Object.entries(t).map(([i,r])=>[n.filter(s=>s.id===i)[0].name,r]))},populateImageThumbnails:async function(n){this.removeImageThumbnails();const e=this.convertUberonToName();this.loading=!0,this.markerLabelEntry=a.markRaw(await this.populateMapWithImages(e,n)),this.loading=!1,this.imagesDownloading=!1},onImageThumbnailOpen:function(n){this.$emit("image-thumbnail-open",n)}}},rp=n=>(a.pushScopeId("data-v-3f17c1ab"),n=n(),a.popScopeId(),n),gk={ref:"scaffoldContainer",class:"scaffold-container","element-loading-text":"Loading...","element-loading-background":"rgba(0, 0, 0, 0.3)"},yk=rp(()=>a.createElementVNode("span",{class:"message-text"},"Beta",-1)),vk=rp(()=>a.createElementVNode("span",{class:"message-text"},"What's new?",-1)),bk={class:"primitive-controls-box"},xk={class:"animation-data"},wk={class:"purple"},Mk={class:"animation-data"},Sk={class:"purple"},_k={class:"animation-data"},Tk={class:"bottom-right-control"},Ek=rp(()=>a.createElementVNode("div",null,[a.createTextVNode(" Fit to "),a.createElementVNode("br"),a.createTextVNode(" window ")],-1)),Ck={style:{"margin-bottom":"2px"}},Ak={key:0,class:"viewing-mode-title"},Rk=["onClick"],Lk=["onClick"];function Pk(n,e,t,i,r,s){const o=a.resolveComponent("map-svg-sprite-color"),l=aw,c=a.resolveComponent("DrawToolbar"),u=pm,f=bt,d=Dl,p=Jx,y=Yx,m=a.resolveComponent("map-svg-icon"),h=Rn,b=kn,v=s0,g=Rs,x=As,_=r0,E=Qi,S=h2,M=f2,T=fn,A=xd;return a.withDirectives((a.openBlock(),a.createElementBlock("div",gk,[a.createVNode(o),a.createVNode(l,{createData:n.createData,label:n.tData.label,region:n.tData.region,visible:n.tData.visible,x:n.tData.x,y:n.tData.y,annotationDisplay:s.annotationDisplay,imageThumbnailSidebar:t.imageThumbnailSidebar,imageThumbnails:s.imageThumbnailsEntry,onConfirmCreate:e[0]||(e[0]=C=>s.confirmCreate(C)),onCancelCreate:e[1]||(e[1]=C=>s.cancelCreate()),onConfirmDelete:e[2]||(e[2]=C=>s.confirmDelete(C)),onImageThumbnailOpen:s.onImageThumbnailOpen},null,8,["createData","label","region","visible","x","y","annotationDisplay","imageThumbnailSidebar","imageThumbnails","onImageThumbnailOpen"]),a.createElementVNode("div",{id:"organsDisplayArea",ref:"display",tabindex:"-1",style:{height:"100%",width:"100%"},onKeydown:e[3]||(e[3]=a.withKeys((...C)=>s.backgroundChangeCallback&&s.backgroundChangeCallback(...C),["66"]))},null,544),a.withDirectives(a.createElementVNode("div",null,[n.viewingMode==="Annotation"&&(n.userInformation||t.enableLocalAnnotations)?(a.openBlock(),a.createBlock(c,{key:0,toolbarOptions:n.toolbarOptions,activeDrawTool:n.activeDrawTool,activeDrawMode:n.activeDrawMode,hoverVisibilities:n.hoverVisibilities,onClickToolbar:s.toggleDrawing,onShowTooltip:s.showHelpText,onHideTooltip:s.hideHelpText,ref:"toolbarPopover"},null,8,["toolbarOptions","activeDrawTool","activeDrawMode","hoverVisibilities","onClickToolbar","onShowTooltip","onHideTooltip"])):a.createCommentVNode("",!0),t.displayWarning?(a.openBlock(),a.createBlock(d,{key:1,ref:"warningPopover",visible:n.hoverVisibilities[7].value,content:t.warningMessage,placement:"right",width:"max-content",teleported:!1,"popper-class":"scaffold-popper message-popper right-popper non-selectable"},{reference:a.withCtx(()=>[t.displayWarning?(a.openBlock(),a.createElementBlock("div",{key:0,class:"message-icon warning-icon",onMouseover:e[4]||(e[4]=C=>s.showHelpText(7)),onMouseout:e[5]||(e[5]=C=>s.hideHelpText(7))},[a.createVNode(f,null,{default:a.withCtx(()=>[a.createVNode(u)]),_:1}),yk],32)):a.createCommentVNode("",!0)]),_:1},8,["visible","content"])):a.createCommentVNode("",!0),t.displayLatestChanges?(a.openBlock(),a.createBlock(d,{key:2,visible:n.hoverVisibilities[8].value,content:t.latestChangesMessage,placement:"right",teleported:!1,trigger:"manual","popper-class":"scaffold-popper message-popper right-popper non-selectable",ref:"whatsNewPopover"},{reference:a.withCtx(()=>[t.displayLatestChanges&&t.latestChangesMessage?(a.openBlock(),a.createElementBlock("div",{key:0,class:"el-icon-warning message-icon latest-changesicon",onMouseover:e[6]||(e[6]=C=>s.showHelpText(8)),onMouseout:e[7]||(e[7]=C=>s.hideHelpText(8))},[a.createVNode(f,null,{default:a.withCtx(()=>[a.createVNode(u)]),_:1}),vk],32)):a.createCommentVNode("",!0)]),_:1},8,["visible","content"])):a.createCommentVNode("",!0),a.createVNode(d,{visible:n.hoverVisibilities[6].value,content:"Change region visibility",placement:"right",width:"max-content",teleported:!1,trigger:"manual","popper-class":"scaffold-popper right-popper non-selectable",ref:"regionVisibilityPopover"},{reference:a.withCtx(()=>[a.createVNode(p,{ref:"scaffoldTreeControls",isReady:n.isReady,"show-colour-picker":t.showColourPicker,onObjectSelected:s.objectSelected,onObjectHovered:s.objectHovered,onDrawerToggled:s.drawerToggled},null,8,["isReady","show-colour-picker","onObjectSelected","onObjectHovered","onDrawerToggled"])]),_:1},8,["visible"]),a.createElementVNode("div",bk,[a.createVNode(y,{ref:"primitiveControls",createData:n.createData,onPrimitivesUpdated:s.primitivesUpdated},null,8,["createData","onPrimitivesUpdated"])]),n.timeVarying?(a.openBlock(),a.createBlock(d,{key:3,ref:"sliderPopover",width:"max-content",visible:n.hoverVisibilities[5].value,content:"Move the slider to animate the region",placement:"top",teleported:!1,trigger:"manual","popper-class":"scaffold-popper top-popper non-selectable"},{reference:a.withCtx(()=>[n.timeVarying?(a.openBlock(),a.createElementBlock("div",{key:0,class:a.normalizeClass(["time-slider-container",[n.minimisedSlider?"minimised":"",n.sliderPosition]])},[a.createVNode(_,{type:"card"},{default:a.withCtx(()=>[a.createVNode(v,{label:"Animate scaffold"},{default:a.withCtx(()=>[a.createVNode(b,{class:"tab-content"},{default:a.withCtx(()=>[n.isPlaying?(a.openBlock(),a.createBlock(m,{key:0,icon:"pause",class:"icon-button video-button",onClick:e[8]||(e[8]=C=>s.play(!1))})):(a.openBlock(),a.createBlock(m,{key:1,icon:"play",class:"video-button icon-button",onClick:e[9]||(e[9]=C=>s.play(!0))})),a.createVNode(h,{min:0,max:n.timeMax,"model-value":n.currentTime/100*n.timeMax,step:.1,"tooltip-class":"time-slider-tooltip",class:"slider","format-tooltip":s.formatTooltip,marks:n.timeStamps,onInput:e[10]||(e[10]=C=>s.timeChange(C))},null,8,["max","model-value","format-tooltip","marks"])]),_:1})]),_:1}),a.createVNode(v,{label:"Animation data"},{default:a.withCtx(()=>[a.createVNode(b,{class:"tab-content"},{default:a.withCtx(()=>[a.createElementVNode("div",xk,[a.createTextVNode(" Original duration: "),a.createElementVNode("div",wk,a.toDisplayString(n.orginalDuration),1)]),a.createElementVNode("div",Mk,[a.createTextVNode(" Animation duration: "),a.createElementVNode("div",Sk,a.toDisplayString(n.animateDuration),1)]),a.createElementVNode("div",_k,[a.createTextVNode(" Playback speed "),a.createVNode(x,{teleported:!0,"model-value":n.currentSpeed,placeholder:"Select",class:"scaffold-select-box speed","popper-class":"scaffold_viewer_dropdown",onChange:e[11]||(e[11]=C=>s.speedChanged(C))},{default:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.playSpeed,C=>(a.openBlock(),a.createBlock(g,{key:C.value,label:C.label,value:C.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"])])]),_:1})]),_:1})]),_:1})],2)):a.createCommentVNode("",!0)]),_:1},8,["visible"])):a.createCommentVNode("",!0),a.createElementVNode("div",Tk,[a.createVNode(d,{visible:n.hoverVisibilities[0].value,content:"Zoom in",width:"max-content",placement:"left",teleported:!1,trigger:"manual","popper-class":"scaffold-popper left-popper non-selectable",ref:"zoomInPopover"},{reference:a.withCtx(()=>[a.createVNode(m,{icon:"zoomIn",class:"icon-button zoomIn",onClick:e[12]||(e[12]=C=>s.zoomIn()),onMouseover:e[13]||(e[13]=C=>s.showHelpText(0)),onMouseout:e[14]||(e[14]=C=>s.hideHelpText(0))})]),_:1},8,["visible"]),a.createVNode(d,{visible:n.hoverVisibilities[1].value,content:"Zoom out",placement:"top-end",width:"max-content",teleported:!1,trigger:"manual","popper-class":"scaffold-popper popper-zoomout non-selectable",ref:"zoomOutPopover"},{reference:a.withCtx(()=>[a.createVNode(m,{icon:"zoomOut",class:"icon-button zoomOut",onClick:e[15]||(e[15]=C=>s.zoomOut()),onMouseover:e[16]||(e[16]=C=>s.showHelpText(1)),onMouseout:e[17]||(e[17]=C=>s.hideHelpText(1))})]),_:1},8,["visible"]),a.createVNode(d,{visible:n.hoverVisibilities[2].value,placement:"top",teleported:!1,trigger:"manual",width:"max-content","popper-class":"scaffold-popper non-selectable",ref:"zoomFitPopover"},{reference:a.withCtx(()=>[a.createVNode(m,{icon:"fitWindow",class:"icon-button fitWindow",onClick:e[18]||(e[18]=C=>s.fitWindow()),onMouseover:e[19]||(e[19]=C=>s.showHelpText(2)),onMouseout:e[20]||(e[20]=C=>s.hideHelpText(2))})]),default:a.withCtx(()=>[Ek]),_:1},8,["visible"])]),n.openMapRef?(a.openBlock(),a.createBlock(d,{key:4,ref:"open-map-popover","virtual-ref":n.openMapRef,placement:"top-start",width:"128",teleported:!1,trigger:"click","popper-class":"open-map-popper","virtual-triggering":""},{default:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.openMapOptions,C=>(a.openBlock(),a.createBlock(b,{key:C.key},{default:a.withCtx(()=>[a.createVNode(E,{type:"primary",plain:"",onClick:R=>n.$emit("open-map",C.key)},{default:a.withCtx(()=>[a.createTextVNode(a.toDisplayString(C.display),1)]),_:2},1032,["onClick"])]),_:2},1024))),128))]),_:1},8,["virtual-ref"])):a.createCommentVNode("",!0),a.createVNode(d,{ref:"backgroundPopover","virtual-ref":n.backgroundIconRef,placement:"top-start",width:"330",teleported:!1,trigger:"click","popper-class":"background-popper non-selectable h-auto","virtual-triggering":""},{default:a.withCtx(()=>[a.createElementVNode("div",null,[a.createVNode(b,{class:"backgroundText"},{default:a.withCtx(()=>[a.createTextVNode("Viewing Mode")]),_:1}),a.createVNode(b,{class:"backgroundChooser"},{default:a.withCtx(()=>[a.createElementVNode("div",Ck,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.viewingModes,(C,R,L)=>(a.openBlock(),a.createElementBlock(a.Fragment,{key:R},[R===n.viewingMode?(a.openBlock(),a.createElementBlock("span",Ak,[a.createElementVNode("b",null,a.toDisplayString(R),1)])):(a.openBlock(),a.createElementBlock("span",{key:1,class:"viewing-mode-unselected",onClick:I=>s.changeViewingMode(R)},a.toDisplayString(R),9,Rk))],64))),128))]),a.createVNode(b,{class:"viewing-mode-description"},{default:a.withCtx(()=>[a.createTextVNode(a.toDisplayString(n.viewingModes[n.viewingMode]),1)]),_:1})]),_:1}),n.viewingMode==="Exploration"&&t.sparcAPI?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[a.createVNode(b,{class:"backgroundSpacer"}),a.createVNode(b,{class:"backgroundText"},{default:a.withCtx(()=>[a.createTextVNode("Markers display")]),_:1}),a.createVNode(b,{class:"backgroundChooser"},{default:a.withCtx(()=>[a.createVNode(T,{span:14},{default:a.withCtx(()=>[a.createVNode(M,{modelValue:n.imageRadio,"onUpdate:modelValue":e[21]||(e[21]=C=>n.imageRadio=C),class:"flatmap-radio",disabled:n.imagesDownloading,onChange:s.setImage},{default:a.withCtx(()=>[a.createVNode(S,{value:!1},{default:a.withCtx(()=>[a.createTextVNode("Standard")]),_:1}),a.createVNode(S,{value:!0},{default:a.withCtx(()=>[a.createTextVNode("Image")]),_:1})]),_:1},8,["modelValue","disabled","onChange"])]),_:1}),n.imageRadio?(a.openBlock(),a.createBlock(T,{key:0,span:10},{default:a.withCtx(()=>[a.createVNode(x,{teleported:!1,modelValue:n.imageType,"onUpdate:modelValue":e[22]||(e[22]=C=>n.imageType=C),placeholder:"Select",class:"scaffold-select-box imageSelector","popper-class":"scaffold_viewer_dropdown",disabled:n.imagesDownloading,onChange:s.setImageType},{default:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.imageTypes,C=>(a.openBlock(),a.createBlock(g,{key:C,label:C,value:C},{default:a.withCtx(()=>[a.createVNode(b,null,{default:a.withCtx(()=>[a.createVNode(T,{span:12},{default:a.withCtx(()=>[a.createTextVNode(a.toDisplayString(C),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","disabled","onChange"])]),_:1})):a.createCommentVNode("",!0)]),_:1})],64)):a.createCommentVNode("",!0),a.createVNode(b,{class:"backgroundSpacer"}),a.createVNode(b,{class:"backgroundText"},{default:a.withCtx(()=>[a.createTextVNode(" Change background ")]),_:1}),a.createVNode(b,{class:"backgroundChooser"},{default:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.availableBackground,C=>(a.openBlock(),a.createElementBlock("div",{key:C,class:a.normalizeClass(["backgroundChoice",C,C==n.currentBackground?"active":""]),onClick:R=>s.backgroundChangeCallback(C)},null,10,Lk))),128))]),_:1})])]),_:1},8,["virtual-ref"]),a.createElementVNode("div",{class:a.normalizeClass(["settings-group",{open:n.drawerOpen,close:!n.drawerOpen}])},[a.createVNode(b,null,{default:a.withCtx(()=>[a.createVNode(d,{visible:n.hoverVisibilities[3].value,content:"Open new map",placement:"right",teleported:!1,trigger:"manual",width:"max-content","popper-class":"scaffold-popper right-popper non-selectable",ref:"openMapPopover"},{reference:a.withCtx(()=>[t.enableOpenMapUI&&t.openMapOptions.length>0?(a.openBlock(),a.createBlock(m,{key:0,ref:"openMapRef",icon:"openMap",class:"icon-button open-map-button",onMouseover:e[23]||(e[23]=C=>s.showHelpText(3)),onMouseout:e[24]||(e[24]=C=>s.hideHelpText(3))},null,512)):a.createCommentVNode("",!0)]),_:1},8,["visible"])]),_:1}),a.createVNode(b,null,{default:a.withCtx(()=>[a.createVNode(d,{visible:n.hoverVisibilities[4].value,content:"Change background color",placement:"right",width:"max-content",teleported:!1,trigger:"manual","popper-class":"scaffold-popper right-popper non-selectable",ref:"settingsPopover"},{reference:a.withCtx(()=>[a.createVNode(m,{ref:"backgroundIconRef",icon:"changeBckgd",class:"icon-button",onMouseover:e[25]||(e[25]=C=>s.showHelpText(4)),onMouseout:e[26]||(e[26]=C=>s.hideHelpText(4))},null,512)]),_:1},8,["visible"])]),_:1})],2)],512),[[a.vShow,t.displayUI&&!n.isTransitioning]])])),[[A,n.loading]])}const Ik=ui(mk,[["render",Pk],["__scopeId","data-v-3f17c1ab"]]);jt.ScaffoldVuer=Ik,Object.defineProperty(jt,Symbol.toStringTag,{value:"Module"})});
|