@abi-software/scaffoldvuer 1.9.0-beta.3 → 1.9.1-beta.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 +189 -181
- package/dist/scaffoldvuer.umd.cjs +1 -1
- package/dist/style.css +1 -1
- package/package.json +2 -2
- package/src/components/ScaffoldVuer.vue +9 -1
- package/vite.web-component.js +0 -36
|
@@ -3450,4 +3450,4 @@ void main() {
|
|
|
3450
3450
|
#include <fog_fragment>
|
|
3451
3451
|
#include <premultiplied_alpha_fragment>
|
|
3452
3452
|
|
|
3453
|
-
}`};class f extends c.ShaderMaterial{constructor(p){super({type:"LineMaterial",uniforms:c.UniformsUtils.clone(c.ShaderLib.line.uniforms),vertexShader:c.ShaderLib.line.vertexShader,fragmentShader:c.ShaderLib.line.fragmentShader,clipping:!0}),Object.defineProperties(this,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(m){this.uniforms.diffuse.value=m}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(m){this.uniforms.linewidth.value=m}},dashed:{enumerable:!0,get:function(){return"USE_DASH"in this.defines},set(y){!!y!="USE_DASH"in this.defines&&(this.needsUpdate=!0),y===!0?this.defines.USE_DASH="":delete this.defines.USE_DASH}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(m){this.uniforms.dashScale.value=m}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(m){this.uniforms.dashSize.value=m}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(m){this.uniforms.dashOffset.value=m}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(m){this.uniforms.gapSize.value=m}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(m){this.uniforms.opacity.value=m}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(m){this.uniforms.resolution.value.copy(m)}},alphaToCoverage:{enumerable:!0,get:function(){return"ALPHA_TO_COVERAGE"in this.defines},set:function(m){!!m!="ALPHA_TO_COVERAGE"in this.defines&&(this.needsUpdate=!0),m===!0?(this.defines.ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.ALPHA_TO_COVERAGE,this.extensions.derivatives=!1)}}}),this.setValues(p)}}f.prototype.isLineMaterial=!0},(o,l,u)=>{var c=u(4);l.Minimap=function(f){var h=f;this.camera=new c.OrthographicCamera(-.5,.5,.5,-.5,.01,10),this.helper=void 0;var p=new c.BufferGeometry,y=new Float32Array([-1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,-1,1]),m=new c.BufferAttribute(y,3);p.setAttribute("position",m);var d=new c.MeshBasicMaterial({color:3355443,depthTest:!1,depthWrite:!1,opacity:.5,transparent:!0});this.mask=new c.Mesh(p,d);var b=new c.Box3,v=new c.Vector3;this.getDiffFromNormalised=(w,S)=>{b.setFromBufferAttribute(m).getCenter(v);var T=v.clone().project(this.camera),M=new c.Vector3(w,S,T.z).unproject(this.camera);return M.sub(v)};var g=(w,S)=>{h.camera.near&&(this.camera.near=h.camera.near),S.farPlane&&(this.camera.far=S.farPlane),S.eyePosition&&this.camera.position.set(S.eyePosition[0],S.eyePosition[1],S.eyePosition[2]),S.upVector&&this.camera.up.set(S.upVector[0],S.upVector[1],S.upVector[2]),S.targetPosition&&this.camera.lookAt(new c.Vector3(S.targetPosition[0],S.targetPosition[1],S.targetPosition[2])),this.camera.zoom=1/w,this.camera.updateProjectionMatrix()};this.getBoundary=()=>{var w=new c.Vector3().copy(h.camera.target).project(h.camera),S=new c.Vector3(-1,-1,w.z).unproject(h.camera),T=new c.Vector3(1,-1,w.z).unproject(h.camera),M=new c.Vector3(1,1,w.z).unproject(h.camera),C=new c.Vector3(-1,1,w.z).unproject(h.camera);m.copyVector3sArray([S,T,M,M,C,S]),m.needsUpdate=!0},this.updateCamera=()=>{this.getBoundary();var w=h.getZincCameraControls(),S=h.getBoundingBox();if(S){var T=S.min.distanceTo(S.max),M=T/2,C=(S.min.x+S.max.x)/2,_=(S.min.y+S.max.y)/2,P=(S.min.z+S.max.z)/2,E=w.getViewportFromCentreAndRadius(C,_,P,M,40,M*4);g(T,E)}}}},(o,l,u)=>{var c=u(4),f=u(51)(c),h=u(3).Geometry,p=u(52),y=u(53).default,m=c.BufferGeometryLoader,d=function(b){var v;b&&b.isGeometry&&(v=b);var g=void 0,w=void 0,S=!1,T=void 0,M=O=>{var A=v.getMorph().material.clone();A.morphTargets=!1;var L=new h,R=new m,N=R.parse(O),x=new c.Mesh(N.geometry,A);return L.geometry=x.geometry,x.userData=L,L.setMorph(x),L},C=O=>{switch(O.data.action){case"message":console.log(O.data.message);break;case"result":var A=new d(M(O.data.object));T&&T(A),T=void 0,S=!1;break;default:throw"Cannot handle specified action."}},_=O=>{if(p!==void 0&&(w=p(54)),!w)g=new(u(55)).GeometryCSGInternal(O);else if(O&&O.isGeometry){var A=O.getMorph(),L=A.geometry.clone().applyMatrix(A.matrix).toJSON();w.addEventListener("message",function(R){C(R)}),w.postMessage({action:"initialise",object:L})}};this.getHostGeometry=()=>{var O=new f(v.getMorph());return new P(O)},this.getGeometry=()=>v;var P=O=>{var A=v.getMorph().material.clone();A.morphTargets=!1;var L=O.toMesh(A),R=new h;return R.geometry=L.geometry,L.userData=R,R.setMorph(L),R};this.setCSG=O=>{g.setCSG(O)};var E=(O,A,L,R)=>{if(S)R("On progress");else{var N=O.getMorph(),x=N.geometry.clone().applyMatrix(N.matrix).toJSON();T=L,S=!0,w.postMessage({action:A,object:x})}};this.intersect=O=>new y((A,L)=>{if(w)E(O,"intersect",A,L);else{var R=g.intersect(O),N=new d(P(R));N.setCSG(R),A(N)}}),this.subtract=O=>new y((A,L)=>{if(w)E(O,"intersect",A,L);else{var R=g.subtract(O),N=new d(P(R));N.setCSG(R),A(N)}}),this.union=O=>new y((A,L)=>{if(w)E(O,"intersect",A,L);else{var R=g.union(O),N=new d(P(R));N.setCSG(R),A(N)}}),this.terminateWorker=()=>{w&&w.terminate()},_(b)};l.GeometryCSG=d},o=>{var l=1e-5,u=0,c=1,f=2,h=3;o.exports=function(p){var y=function(m){var d,b,v,g,w,S,T,M=[];if(m.isBufferGeometry&&(m=new p.Geometry().fromBufferGeometry(m)),m instanceof p.Geometry)this.matrix=new p.Matrix4;else if(m.isMesh)m.updateMatrix(),this.matrix=m.matrix.clone(),m=m.geometry,m.isBufferGeometry&&(m=new p.Geometry().fromBufferGeometry(m)),m.mergeVertices(),m.computeVertexNormals(!1);else{if(m instanceof y.Node)return this.tree=m,this.matrix=new p.Matrix4,this;throw"ThreeBSP: Given geometry is unsupported"}for(d=0,b=m.faces.length;d<b;d++)v=m.faces[d],w=m.faceVertexUvs[0][d],T=new y.Polygon,v instanceof p.Face3?(g=m.vertices[v.a],S=w?new p.Vector2(w[0].x,w[0].y):null,g=new y.Vertex(g.x,g.y,g.z,v.vertexNormals[0],S),g.applyMatrix4(this.matrix),T.vertices.push(g),g=m.vertices[v.b],S=w?new p.Vector2(w[1].x,w[1].y):null,g=new y.Vertex(g.x,g.y,g.z,v.vertexNormals[2],S),g.applyMatrix4(this.matrix),T.vertices.push(g),g=m.vertices[v.c],S=w?new p.Vector2(w[2].x,w[2].y):null,g=new y.Vertex(g.x,g.y,g.z,v.vertexNormals[2],S),g.applyMatrix4(this.matrix),T.vertices.push(g)):(p.Face4,g=m.vertices[v.a],S=w?new p.Vector2(w[0].x,w[0].y):null,g=new y.Vertex(g.x,g.y,g.z,v.vertexNormals[0],S),g.applyMatrix4(this.matrix),T.vertices.push(g),g=m.vertices[v.b],S=w?new p.Vector2(w[1].x,w[1].y):null,g=new y.Vertex(g.x,g.y,g.z,v.vertexNormals[1],S),g.applyMatrix4(this.matrix),T.vertices.push(g),g=m.vertices[v.c],S=w?new p.Vector2(w[2].x,w[2].y):null,g=new y.Vertex(g.x,g.y,g.z,v.vertexNormals[2],S),g.applyMatrix4(this.matrix),T.vertices.push(g),g=m.vertices[v.d],S=w?new p.Vector2(w[3].x,w[3].y):null,g=new y.Vertex(g.x,g.y,g.z,v.vertexNormals[3],S),g.applyMatrix4(this.matrix),T.vertices.push(g)),T.calculateProperties(),M.push(T);this.tree=new y.Node(M)};return y.prototype.subtract=function(m){var d=this.tree.clone(),b=m.tree.clone();return d.invert(),d.clipTo(b),b.clipTo(d),b.invert(),b.clipTo(d),b.invert(),d.build(b.allPolygons()),d.invert(),d=new y(d),d.matrix=this.matrix,d},y.prototype.union=function(m){var d=this.tree.clone(),b=m.tree.clone();return d.clipTo(b),b.clipTo(d),b.invert(),b.clipTo(d),b.invert(),d.build(b.allPolygons()),d=new y(d),d.matrix=this.matrix,d},y.prototype.intersect=function(m){var d=this.tree.clone(),b=m.tree.clone();return d.invert(),b.clipTo(d),b.invert(),d.clipTo(b),b.clipTo(d),d.build(b.allPolygons()),d.invert(),d=new y(d),d.matrix=this.matrix,d},y.prototype.toGeometry=function(){var m,d,b,v,g,w,S,T,M,C,_=new p.Matrix4().getInverse(this.matrix),P=new p.Geometry,E=this.tree.allPolygons(),O=E.length,A={};for(m=0;m<O;m++)for(b=E[m],v=b.vertices.length,d=2;d<v;d++)C=[],T=b.vertices[0],C.push(new p.Vector2(T.uv.x,T.uv.y)),T=new p.Vector3(T.x,T.y,T.z),T.applyMatrix4(_),typeof A[T.x+","+T.y+","+T.z]>"u"?(P.vertices.push(T),g=A[T.x+","+T.y+","+T.z]=P.vertices.length-1):g=A[T.x+","+T.y+","+T.z],T=b.vertices[d-1],C.push(new p.Vector2(T.uv.x,T.uv.y)),T=new p.Vector3(T.x,T.y,T.z),T.applyMatrix4(_),typeof A[T.x+","+T.y+","+T.z]>"u"?(P.vertices.push(T),w=A[T.x+","+T.y+","+T.z]=P.vertices.length-1):w=A[T.x+","+T.y+","+T.z],T=b.vertices[d],C.push(new p.Vector2(T.uv.x,T.uv.y)),T=new p.Vector3(T.x,T.y,T.z),T.applyMatrix4(_),typeof A[T.x+","+T.y+","+T.z]>"u"?(P.vertices.push(T),S=A[T.x+","+T.y+","+T.z]=P.vertices.length-1):S=A[T.x+","+T.y+","+T.z],M=new p.Face3(g,w,S,new p.Vector3(b.normal.x,b.normal.y,b.normal.z)),P.faces.push(M),P.faceVertexUvs[0].push(C);return P},y.prototype.toBufferGeometry=function(){var m=this.toGeometry(),d=new p.BufferGeometry().fromGeometry(m);return d},y.prototype.toMesh=function(m){var d=this.toBufferGeometry(),b=new p.Mesh(d,m);return b.position.setFromMatrixPosition(this.matrix),b.rotation.setFromRotationMatrix(this.matrix),b},y.Polygon=function(m){m instanceof Array||(m=[]),this.vertices=m,0<m.length?this.calculateProperties():this.normal=this.w=void 0},y.Polygon.prototype.calculateProperties=function(){var m=this.vertices[0],d=this.vertices[1],b=this.vertices[2];return this.normal=d.clone().subtract(m).cross(b.clone().subtract(m)).normalize(),this.w=this.normal.clone().dot(m),this},y.Polygon.prototype.clone=function(){var m,d,b=new y.Polygon;for(m=0,d=this.vertices.length;m<d;m++)b.vertices.push(this.vertices[m].clone());return b.calculateProperties(),b},y.Polygon.prototype.flip=function(){var m,d=[];for(this.normal.multiplyScalar(-1),this.w*=-1,m=this.vertices.length-1;0<=m;m--)d.push(this.vertices[m]);return this.vertices=d,this},y.Polygon.prototype.classifyVertex=function(m){var d=this.normal.dot(m)-this.w;return d<-l?f:d>l?c:u},y.Polygon.prototype.classifySide=function(m){var d,b,v,g=0,w=0,S=m.vertices.length;for(d=0;d<S;d++)b=m.vertices[d],v=this.classifyVertex(b),v===c?g++:v===f&&w++;return 0<g&&w===0?c:g===0&&0<w?f:g===0&&w===0?u:h},y.Polygon.prototype.splitPolygon=function(m,d,b,v,g){var w=this.classifySide(m);if(w===u)(0<this.normal.dot(m.normal)?d:b).push(m);else if(w===c)v.push(m);else if(w===f)g.push(m);else{var S,T,M,C,_,P,E,O,A,L=[],R=[];for(T=0,S=m.vertices.length;T<S;T++)M=(T+1)%S,P=m.vertices[T],E=m.vertices[M],C=this.classifyVertex(P),_=this.classifyVertex(E),C!=f&&L.push(P),C!=c&&R.push(P),(C|_)==h&&(O=(this.w-this.normal.dot(P))/this.normal.dot(E.clone().subtract(P)),A=P.interpolate(E,O),L.push(A),R.push(A));3<=L.length&&v.push(new y.Polygon(L).calculateProperties()),3<=R.length&&g.push(new y.Polygon(R).calculateProperties())}},y.Vertex=function(m,d,b,v,g){this.x=m,this.y=d,this.z=b,this.normal=v||new p.Vector3,this.uv=g||new p.Vector2},y.Vertex.prototype.clone=function(){return new y.Vertex(this.x,this.y,this.z,this.normal.clone(),this.uv.clone())},y.Vertex.prototype.add=function(m){return this.x+=m.x,this.y+=m.y,this.z+=m.z,this},y.Vertex.prototype.subtract=function(m){return this.x-=m.x,this.y-=m.y,this.z-=m.z,this},y.Vertex.prototype.multiplyScalar=function(m){return this.x*=m,this.y*=m,this.z*=m,this},y.Vertex.prototype.cross=function(m){var d=this.x,b=this.y,v=this.z;return this.x=b*m.z-v*m.y,this.y=v*m.x-d*m.z,this.z=d*m.y-b*m.x,this},y.Vertex.prototype.normalize=function(){var m=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z);return this.x/=m,this.y/=m,this.z/=m,this},y.Vertex.prototype.dot=function(m){return this.x*m.x+this.y*m.y+this.z*m.z},y.Vertex.prototype.lerp=function(m,d){return this.add(m.clone().subtract(this).multiplyScalar(d)),this.normal.add(m.normal.clone().sub(this.normal).multiplyScalar(d)),this.uv.add(m.uv.clone().sub(this.uv).multiplyScalar(d)),this},y.Vertex.prototype.interpolate=function(m,d){return this.clone().lerp(m,d)},y.Vertex.prototype.applyMatrix4=function(m){var d=this.x,b=this.y,v=this.z,g=m.elements;return this.x=g[0]*d+g[4]*b+g[8]*v+g[12],this.y=g[1]*d+g[5]*b+g[9]*v+g[13],this.z=g[2]*d+g[6]*b+g[10]*v+g[14],this},y.Node=function(m){var d,b,v=[],g=[];if(this.polygons=[],this.front=this.back=void 0,m instanceof Array&&m.length!==0){for(this.divider=m[0].clone(),d=0,b=m.length;d<b;d++)this.divider.splitPolygon(m[d],this.polygons,this.polygons,v,g);0<v.length&&(this.front=new y.Node(v)),0<g.length&&(this.back=new y.Node(g))}},y.Node.isConvex=function(m){var d,b;for(d=0;d<m.length;d++)for(b=0;b<m.length;b++)if(d!==b&&m[d].classifySide(m[b])!==f)return!1;return!0},y.Node.prototype.build=function(m){var d,b,v=[],g=[];for(this.divider||(this.divider=m[0].clone()),d=0,b=m.length;d<b;d++)this.divider.splitPolygon(m[d],this.polygons,this.polygons,v,g);0<v.length&&(!this.front&&(this.front=new y.Node),this.front.build(v)),0<g.length&&(!this.back&&(this.back=new y.Node),this.back.build(g))},y.Node.prototype.allPolygons=function(){var m=this.polygons.slice();return this.front&&(m=m.concat(this.front.allPolygons())),this.back&&(m=m.concat(this.back.allPolygons())),m},y.Node.prototype.clone=function(){var m=new y.Node;return m.divider=this.divider.clone(),m.polygons=this.polygons.map(function(d){return d.clone()}),m.front=this.front&&this.front.clone(),m.back=this.back&&this.back.clone(),m},y.Node.prototype.invert=function(){var m,d,b;for(m=0,d=this.polygons.length;m<d;m++)this.polygons[m].flip();return this.divider.flip(),this.front&&this.front.invert(),this.back&&this.back.invert(),b=this.front,this.front=this.back,this.back=b,this},y.Node.prototype.clipPolygons=function(m){var d,b,v,g;if(!this.divider)return m.slice();for(v=[],g=[],d=0,b=m.length;d<b;d++)this.divider.splitPolygon(m[d],v,g,v,g);return this.front&&(v=this.front.clipPolygons(v)),g=this.back?this.back.clipPolygons(g):[],v.concat(g)},y.Node.prototype.clipTo=function(m){this.polygons=m.clipPolygons(this.polygons),this.front&&this.front.clipTo(m),this.back&&this.back.clipTo(m)},y}},o=>{o.exports=MB()},o=>{o.exports=LB},(o,l,u)=>{var c=u(3).Geometry,f=u(4),h=f.BufferGeometryLoader;o.exports=function(p){var y=void 0,m=function(S){var T=new h,M=T.parse(S),C=new f.MeshPhongMaterial,_=new f.Mesh(M.geometry,C),P=new c;return P.setMorph(_),P},d=function(S){var T=m(S);y=new(u(55)).GeometryCSGInternal(T),p.postMessage({action:"message",message:"Initialised"})},b=function(S){if(y){var T=m(S),M=y.intersect(T),C=M.toBufferGeometry().toJSON();p.postMessage({action:"result",object:C})}},v=function(S){if(y){var T=m(S),M=y.subtract(T),C=M.toBufferGeometry().toJSON();p.postMessage({action:"result",object:C})}},g=function(S){if(y){var T=m(S),M=y.union(T),C=M.toBufferGeometry().toJSON();p.postMessage({action:"result",object:C})}};p.addEventListener("message",function(w){switch(w.data.action){case"initialise":d(w.data.object);break;case"intersect":b(w.data.object);break;case"subtract":v(w.data.object);break;case"union":g(w.data.object);break;default:throw"Cannot handle specified action."}})}},(o,l,u)=>{var c=u(4),f=u(51)(c);u(3).Geometry,u(50).GeometryCSG;var h=function(p){var y;p&&p.isGeometry&&(y=p);var m;this.setGeometry=b=>{b&&b.isGeometry&&(y=b),m=void 0},this.setCSG=b=>{m=b};var d=b=>{if(y&&y.morph&&b&&b.morph){m===void 0&&(m=new f(y.morph));var v=new f(b.morph);return v}};this.intersect=b=>{var v=d(b);return m&&v?m.intersect(v):void 0},this.subtract=b=>{var v=d(b);return m&&v?m.subtract(v):void 0},this.union=b=>{var v=d(b);return m&&v?m.union(v):void 0}};l.GeometryCSGInternal=h},(o,l,u)=>{var c=u(4),f=u(51)(c);u(18).Glyphset;var h=function(p){var y;p&&p.isGlyphset&&(y=p);var m=[];this.setGlyphset=v=>{v&&v.isGlyphset&&(y=v),hostCSG=void 0},this.getGlyphset=()=>y;var d=()=>v=>{var g=v.getMesh(),w=v.getLabel();if(g){var S=new f(g.geometry.clone().applyMatrix(g.matrix)),T=[];T.csg=S,T.label=w,g.material&&(T.material=g.material.clone()),m.push(T)}},b=v=>{if(y&&v&&v.getMorph()){m.length==0&&y.forEachGlyph(d());var g=new f(v.getMorph());return g}};this.intersect=v=>{var g=b(v);if(0<m.length&&g){for(var w=new(u(18)).Glyphset,S=0;S<m.length;S++){var T=m[S],M=T.csg.intersect(g),C=M.toMesh();if(C&&C.geometry&&0<C.geometry.vertices.length){T.material&&(C.material=T.material,C.material.side=c.DoubleSide,C.material.clippingPlanes=null);var _=w.addMeshAsGlyph(C,S+1);_.setLabel(T.label)}}var P=new h(w);return P}}};l.GlyphsetCSG=h}],i={};function r(o){var l=i[o];if(l!==void 0)return l.exports;var u=i[o]={exports:{}};return t[o].call(u.exports,u,u.exports,r),u.exports}r.n=o=>{var l=o&&o.__esModule?()=>o.default:()=>o;return r.d(l,{a:l}),l},r.d=(o,l)=>{for(var u in l)r.o(l,u)&&!r.o(o,u)&&Object.defineProperty(o,u,{enumerable:!0,get:l[u]})},r.o=(o,l)=>Object.prototype.hasOwnProperty.call(o,l),r.r=o=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})};var s=r(0);return s})())})(Tg);var gr=Tg.exports;const kc=oC(gr),nx=(n,e)=>{if(n){let t="";n.forEach(i=>{t=i.uuid,i.region&&(t=i.region.uuid+"/"+t),i&&i.getVisibility()&&e.push(t)})}return e},mf=(n,e)=>{const t=n[0]-e[0],i=n[1]-e[1],r=n[2]-e[2];return Math.sqrt(t*t+i*i+r*r)},PB=n=>{const e=n.zincObjects;if(e.length>0&&e[0]){const t=e[0];if(t.isEditable&&t.isLines2){const i=n.identifiers[0].extraData.intersected;if(i&&i.faceIndex>-1){const r=t.getVerticesByFaceIndex(i.faceIndex),s=n.identifiers[0].extraData.intersected.pointOnLine;if(r.length>1){const o=mf(r[0],[s.x,s.y,s.z]),l=mf(r[1],[s.x,s.y,s.z]);return o>l?{zincObject:t,faceIndex:i.faceIndex,vertexIndex:i.faceIndex*2+1,point:r[0]}:{zincObject:t,faceIndex:i.faceIndex,vertexIndex:i.faceIndex*2,point:r[1]}}}}}},IB=n=>{const e=n.zincObjects;if(e.length>0&&e[0])return e[0]},OB=n=>{const e=n.zincObjects;if(e.length>0&&e[0]){const t=e[0];if(t.isEditable)return t}},NB=(n,e,t)=>{if(n!=null&&n.isEditable&&(n!=null&&n.isPointset)){let i=!1;for(let r=0;r<3&&!i;r++)t[r]!==0&&(i=!0);if(i&&e>-1){const r=n.getVerticesByIndex(e);return r&&(r[0]=r[0]+t[0],r[1]=r[1]+t[1],r[2]=r[2]+t[2]),n.editVertices([r],e),n.boundingBoxUpdateRequired=!0,!0}}return!1},zc=(n,e)=>{if(n!=null&&n.isEditable&&(n!=null&&n.isLines2)&&e>-1){const t=n.getVerticesByFaceIndex(e);if(t&&t.length>1)return mf(t[1],t[0])}return 0},gf=(n,e,t,i)=>{if(n&&t!==0&&n.isEditable&&n.isLines2&&e>-1){const r=n.getVerticesByFaceIndex(e);let s=[r[1][0]-r[0][0],r[1][1]-r[0][1],r[1][2]-r[0][2]];const o=Math.sqrt(s[0]*s[0]+s[1]*s[1]+s[2]*s[2]);for(let l=0;l<3;l++)s[l]=s[l]/o*t,i?r[1][l]=r[0][l]+s[l]:(r[0][l]=r[0][l]+s[l],r[1][l]=r[1][l]+s[l]);return n.editVertices(r,e*2),n.boundingBoxUpdateRequired=!0,!0}return!1},DB=(n,e)=>{const t=e.getBoundingBox(),i=new gr.THREE.Vector3().subVectors(t.max,t.min),r=new gr.THREE.BoxGeometry(i.x,i.y,i.z);i.addVectors(t.min,t.max).multiplyScalar(.5);const s=r.getAttribute("position"),o=s.count,l=[];for(let u=0;u<o;u++)l[u]=[s.array[u*3],s.array[u*3+1],s.array[u*3+2]];n.editVertices(l,0),n.setPosition(i.x,i.y,i.z),r.dispose()},ix=(n,e)=>{let t="";n.isRegion&&(t=`__r${n.regionPath}`),n.isPrimitives&&(t=`${n.regionPath}/${n.label}`),e.push(t),n.children&&n.children.forEach(i=>ix(i,e))},wo=(n,e,t,i)=>{let r=n;const s=[];if(t&&(r=n.findChildFromPath(t)),r){const o=Array.isArray(e);let l=e;o||(l=[l]),l.forEach(u=>{const c=r.findObjectsWithGroupName(u,i);s.push(...c)})}return s},yf=(n,e,t)=>{const i=n.findIndex(s=>s.uuid===e);let r;return i>-1&&(r=n[i],t&&n.splice(i,1)),r},BB=(n,e)=>{const t=[];if(n&&e&&e.length>0){const i={},r={},s=[n,...n.getChildRegions(!0)];let o,l,u;e.forEach(c=>{const f=c.split("/");u=f[0],o=yf(s,u,!1),o&&(r[u]||(r[u]=o.getFullPath()),f[1]?(i[u]||(i[u]=o.getAllObjects(!1)),l=yf(i[u],f[1],!0),l&&t.push(`${r[u]}/${l.groupName}`)):t.push(`__r/${r[u]}`))})}return t},FB=n=>{if(n){const e=[];return n.forEach(i=>{i.isZincObject?e.push(i):i.isRegion&&e.push(...i.getAllObjects(!0))}),Object.values(e.reduce((i,r)=>({...i,[r.uuid]:r}),{}))}return[]},rx=(n,e)=>{const t={label:"Multiple selections",regionPath:"",objects:[]};if(e&&n){const i={},r=n.getRootRegion();e.length>0&&(t.regionPath=e[0].data.region,t.label=e[0].data.group),e.forEach(s=>{s.data.region.includes(t.regionPath)||(t.regionPath=""),t.label!==s.data.group&&(t.label="Multiple selections");const o=r.findChildFromPath(s.data.region);i[o.uuid]||(i[o.uuid]=o.getAllObjects(!1));const l=yf(i[o.uuid],s.data.uuid);l&&t.objects.push(l)})}return t},VB=n=>{const e=n.getMorph();let t="position";n.isLines2&&(t="instanceStart");const i=[];let r=0;const s=e.geometry.getAttribute(t);for(let o=0;o<n.drawRange;o++)i.push([s.array[r++],s.array[r++],s.array[r++]]);return i},sx=(n,e,t,i,r)=>{let s;n.isPointset?s="MultiPoint":n.isLines2?s="MultiLineString":s="Feature";const o=s!=="Feature",l=s==="Feature"?"Feature annotation":"Drawn annotation";if(s){const u=VB(n);let c=e.slice(-1)==="/"?e:e+"/";c=c+t;const f=c,h={resource:i,item:{id:f},body:{evidence:[],comment:r},feature:{id:f,properties:{drawn:o,label:l},geometry:{coordinates:u,type:s}}};return r==="Deleted"&&(h.feature=void 0),h}},ox=(n,e,t,i,r,s,o)=>{const l=sx(t,i,r,s,o);if(l)return n&&n.currentUser&&(l.creator={...n.currentUser},l.creator.orcid||(l.creator.orcid="0000-0000-0000-0000"),n.addAnnotation(e,l).then(u=>{u.annotationId||console.log("There is a problem with the submission, please try again later")}).catch(()=>{console.log("There is a problem with the submission, please try again later")})),l},ax=async(n,e,t)=>{const i=t;return await n.drawnFeatures(e,i)},lx=(n,e)=>{n&&e.forEach(t=>{const i=t.geometry,r=decodeURIComponent(t.id),s=r.lastIndexOf("/"),o=r.substring(0,s),l=r.substring(s+1);let u;i.type==="MultiPoint"?u=n.createPoints(o,l,i.coordinates,l,8942):i.type==="MultiLineString"&&(u=n.createLines(o,l,i.coordinates,60962)),u&&(u.zincObject.isEditable=!0)})},Pi=(n,e)=>{const t=n.__vccOpts||n;for(const[i,r]of e)t[i]=r;return t},kB={name:"LinesControls",components:{Button:bs,Col:Ln,Container:Xn,InputNumber:mi,Main:pi,Slider:Sn,ElIconArrowLeft:Fi,ElIconArrowRight:Vi},props:{createData:{type:Object}},data:function(){return{adjust:0,pAdjust:0,lengthScale:0,distance:0,newDistance:0,width:1,currentIndex:0,ElIconArrowLeft:a.shallowRef(Fi),ElIconArrowRight:a.shallowRef(Vi),edited:!1,zincObject:void 0}},watch:{"createData.faceIndex":{handler:function(n){var e;(e=this.zincObject)!=null&&e.isLines2&&(this.currentIndex=n,this.distance=zc(this.zincObject,this.currentIndex))},immediate:!0}},methods:{changeIndex:function(n){n?zc(this.zincObject,this.currentIndex+1)>0&&(this.currentIndex++,this.reset()):(this.currentIndex--,this.reset())},onLengthInput:function(){this.newDistance!==0?(this.distance=this.newDistance,this.edited=gf(this.zincObject,this.currentIndex,this.newDistance,!0)||this.edited):this.newDistance=this.distance},onLengthSliding:function(){this.newDistance=Math.pow(10,this.lengthScale)*this.distance,this.edited=gf(this.zincObject,this.currentIndex,this.newDistance,!0)||this.edited},onMoveSliding:function(){const n=(this.adjust-this.pAdjust)*this.distance;this.edited=gf(this.zincObject,this.currentIndex,n,!1)||this.edited,this.pAdjust=this.adjust},reset:function(){this.adjust=0,this.pAdjust=0,this.lengthScale=0,this.distance=zc(this.zincObject,this.currentIndex),this.newDistance=this.distance,this.edited&&(this.$emit("primitivesUpdated",this.zincObject),this.edited=!1)},setObject:function(n){this.currentIndex=-1,this.distance=0,n.isLines2?(this.zincObject=a.markRaw(n),this.width=this.zincObject.getMorph().material.linewidth,n.isEditable&&(this.currentIndex=0,this.distance=zc(n,this.currentIndex))):(this.zincObject=void 0,this.width=10)},modifyWidth:function(){this.zincObject.setWidth(this.width)}}};function zB(n,e,t,i,r,s){const o=Ln,l=Sn,u=mi,c=Zn,f=bs,h=pi,p=Xn;return a.openBlock(),a.createBlock(p,{class:"lines-container"},{default:a.withCtx(()=>[a.createVNode(h,{class:"slides-block"},{default:a.withCtx(()=>[a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[11]||(e[11]=[a.createTextVNode(" Width: ")])),_:1}),a.createVNode(o,{offset:0,span:12},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.width,"onUpdate:modelValue":e[0]||(e[0]=y=>n.width=y),class:"my-slider",step:1,min:1,max:100,"show-tooltip":!1,onInput:s.modifyWidth},null,8,["modelValue","onInput"])]),_:1}),a.createVNode(o,{offset:0,span:4},{default:a.withCtx(()=>[a.createVNode(u,{modelValue:n.width,"onUpdate:modelValue":e[1]||(e[1]=y=>n.width=y),step:1,min:1,max:100,controls:!1,class:"input-box number-input"},null,8,["modelValue"])]),_:1})]),_:1}),n.currentIndex>-1&&n.distance>0?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:4},{default:a.withCtx(()=>[a.createVNode(f,{size:"small",disabled:n.currentIndex===0,icon:n.ElIconArrowLeft,onClick:e[2]||(e[2]=y=>s.changeIndex(!1))},null,8,["disabled","icon"])]),_:1}),a.createVNode(o,{offset:4,span:9},{default:a.withCtx(()=>[a.createTextVNode(" Editing Line "+a.toDisplayString(n.currentIndex+1),1)]),_:1}),a.createVNode(o,{offset:2,span:2},{default:a.withCtx(()=>[a.createVNode(f,{size:"small",icon:n.ElIconArrowRight,onClick:e[3]||(e[3]=y=>s.changeIndex(!0))},null,8,["icon"])]),_:1})]),_:1}),a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[12]||(e[12]=[a.createTextVNode(" Move: ")])),_:1}),a.createVNode(o,{offset:0,span:16},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.adjust,"onUpdate:modelValue":e[4]||(e[4]=y=>n.adjust=y),step:.01,min:-3,max:3,"show-tooltip":!1,onInput:e[5]||(e[5]=y=>s.onMoveSliding()),onChange:e[6]||(e[6]=y=>s.reset())},null,8,["modelValue"])]),_:1})]),_:1}),a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[13]||(e[13]=[a.createTextVNode(" Length: ")])),_:1}),a.createVNode(o,{offset:0,span:10},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.lengthScale,"onUpdate:modelValue":e[7]||(e[7]=y=>n.lengthScale=y),step:.01,min:-1,max:1,"show-tooltip":!1,onInput:e[8]||(e[8]=y=>s.onLengthSliding()),onChange:e[9]||(e[9]=y=>s.reset())},null,8,["modelValue"])]),_:1}),a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>[a.createVNode(u,{modelValue:n.newDistance,"onUpdate:modelValue":e[10]||(e[10]=y=>n.newDistance=y),controls:!1,class:"input-box number-input",onChange:s.onLengthInput},null,8,["modelValue","onChange"])]),_:1})]),_:1})],64)):a.createCommentVNode("",!0)]),_:1})]),_:1})}const cx=Pi(kB,[["render",zB],["__scopeId","data-v-6581aa67"]]),UB={name:"PointsControls",components:{Col:Ln,Container:Xn,InputNumber:mi,Main:pi,Select:xs,Slider:Sn,Row:Zn,Option:ws,ElIconArrowLeft:Fi,ElIconArrowRight:Vi},inject:["boundingDims"],data:function(){return{attenuation:!1,size:10,choices:[{value:!0,label:"On"},{value:!1,label:"off"}],min:[0,0,0],max:[1,1,1],translation:[0,0,0],pTranslation:[0,0,0],currentIndex:-1,ElIconArrowLeft:a.shallowRef(Fi),ElIconArrowRight:a.shallowRef(Vi),edited:!1,zincObject:void 0}},watch:{boundingDims:{handler:function(n){const e=n.size;this.min=[-e[0]/2,-e[1]/2,-e[2]/2],this.max=[e[0]/2,e[1]/2,e[2]/2]},immediate:!0,deep:!0}},methods:{changeIndex:function(n){n?this.zincObject.drawRange>this.currentIndex+1&&(this.currentIndex++,this.reset()):(this.currentIndex--,this.reset())},onMoveSliding:function(){const n=[this.translation[0]-this.pTranslation[0],this.translation[1]-this.pTranslation[1],this.translation[2]-this.pTranslation[2]];this.edited=NB(this.zincObject,this.currentIndex,n)||this.edited;for(let e=0;e<3;e++)this.pTranslation[e]=this.translation[e]},reset:function(){this.translation=[0,0,0],this.pTranslation=[0,0,0],this.edited&&(this.$emit("primitivesUpdated",this.zincObject),this.edited=!1)},setObject:function(n){this.currentIndex=-1,n.isPointset?(this.zincObject=a.markRaw(n),this.size=this.zincObject.morph.material.size,this.attenuation=this.zincObject.morph.material.sizeAttenuation,n.isEditable&&this.zincObject.drawRange>0&&(this.currentIndex=0)):(this.zincObject=void 0,this.size=10,this.attenuation=!1)},modifyAttenuation:function(n){this.attenuation=n,this.zincObject.setSizeAttenuation(n)},modifySize:function(){this.zincObject.setSize(this.size)}}};function GB(n,e,t,i,r,s){const o=Ln,l=Sn,u=mi,c=Zn,f=ws,h=xs,p=bs,y=pi,m=Xn;return a.openBlock(),a.createBlock(m,{class:"pointset-container"},{default:a.withCtx(()=>[a.createVNode(y,{class:"slides-block"},{default:a.withCtx(()=>[a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[15]||(e[15]=[a.createTextVNode(" Size: ")])),_:1}),a.createVNode(o,{offset:0,span:10},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.size,"onUpdate:modelValue":e[0]||(e[0]=d=>n.size=d),class:"my-slider",step:1,min:0,max:100,"show-tooltip":!1,onInput:e[1]||(e[1]=d=>s.modifySize())},null,8,["modelValue"])]),_:1}),a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>[a.createVNode(u,{modelValue:n.size,"onUpdate:modelValue":e[2]||(e[2]=d=>n.size=d),step:1,min:0,max:100,controls:!1,class:"input-box number-input"},null,8,["modelValue"])]),_:1})]),_:1}),a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:16},{default:a.withCtx(()=>e[16]||(e[16]=[a.createTextVNode(" Size attenuation: ")])),_:1}),a.createVNode(o,{offset:0,span:5},{default:a.withCtx(()=>[a.createVNode(h,{teleported:!1,"model-value":n.attenuation,placeholder:"Select",class:"input-box","popper-class":"viewer_dropdown",onChange:e[3]||(e[3]=d=>s.modifyAttenuation(d,n.slide))},{default:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.choices,d=>(a.openBlock(),a.createBlock(f,{key:d.value,label:d.label,value:d.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"])]),_:1})]),_:1}),n.currentIndex>-1?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:4},{default:a.withCtx(()=>[a.createVNode(p,{size:"small",disabled:n.currentIndex===0,icon:n.ElIconArrowLeft,onClick:e[4]||(e[4]=d=>s.changeIndex(!1))},null,8,["disabled","icon"])]),_:1}),a.createVNode(o,{offset:4,span:9},{default:a.withCtx(()=>[a.createTextVNode(" Editing Point "+a.toDisplayString(n.currentIndex+1),1)]),_:1}),a.createVNode(o,{offset:2,span:2},{default:a.withCtx(()=>[a.createVNode(p,{size:"small",icon:n.ElIconArrowRight,onClick:e[5]||(e[5]=d=>s.changeIndex(!0))},null,8,["icon"])]),_:1})]),_:1}),a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[17]||(e[17]=[a.createTextVNode(" x: ")])),_:1}),a.createVNode(o,{offset:0,span:16},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.translation[0],"onUpdate:modelValue":e[6]||(e[6]=d=>n.translation[0]=d),step:.01,min:n.min[0],max:n.max[0],"show-tooltip":!1,onInput:e[7]||(e[7]=d=>s.onMoveSliding()),onChange:e[8]||(e[8]=d=>s.reset())},null,8,["modelValue","min","max"])]),_:1})]),_:1}),a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[18]||(e[18]=[a.createTextVNode(" y: ")])),_:1}),a.createVNode(o,{offset:0,span:16},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.translation[1],"onUpdate:modelValue":e[9]||(e[9]=d=>n.translation[1]=d),step:.01,min:n.min[1],max:n.max[1],"show-tooltip":!1,onInput:e[10]||(e[10]=d=>s.onMoveSliding()),onChange:e[11]||(e[11]=d=>s.reset())},null,8,["modelValue","min","max"])]),_:1})]),_:1}),a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[19]||(e[19]=[a.createTextVNode(" z: ")])),_:1}),a.createVNode(o,{offset:0,span:16},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.translation[2],"onUpdate:modelValue":e[12]||(e[12]=d=>n.translation[2]=d),step:.01,min:n.min[2],max:n.max[2],"show-tooltip":!1,onInput:e[13]||(e[13]=d=>s.onMoveSliding()),onChange:e[14]||(e[14]=d=>s.reset())},null,8,["modelValue","min","max"])]),_:1})]),_:1})],64)):a.createCommentVNode("",!0)]),_:1})]),_:1})}const ux=Pi(UB,[["render",GB],["__scopeId","data-v-d1de9c65"]]),HB={name:"TextureSlidesControls",components:{Col:Ln,Container:Xn,Footer:ug,Icon:ht,InputNumber:mi,Main:pi,Row:Zn,Select:xs,Slider:Sn,Option:ws,ElIconDelete:Ja,ElIconPlus:Ka},data:function(){return{settings:[],directions:[{value:"x",label:"x"},{value:"y",label:"y"},{value:"z",label:"z"}],zincObject:void 0}},methods:{setObject:function(n){n.isTextureSlides?(this.zincObject=a.markRaw(n),this.settings=this.zincObject.getTextureSettings()):(this.zincObject=void 0,this.settings=[])},addNewSlide:function(){const n={direction:"x",value:0},e=this.zincObject.createSlide(n);this.settings.push(e)},modifyDirection:function(n,e){e&&(e.direction=n,this.zincObject.modifySlideSettings(e))},modifySlide:function(n){n&&this.zincObject.modifySlideSettings(n)},removeSlide:function(n,e){this.zincObject.removeSlideWithId(e.id),this.settings.splice(n,1)}}};function WB(n,e,t,i,r,s){const o=ws,l=xs,u=Ln,c=Sn,f=mi,h=Ja,p=ht,y=Zn,m=pi,d=Ka,b=ug,v=Xn;return a.openBlock(),a.createBlock(v,{class:"t-slides-container"},{default:a.withCtx(()=>[a.createVNode(m,{class:"slides-block"},{default:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.settings,(g,w)=>(a.openBlock(),a.createBlock(y,{key:g.id,class:"slide-row"},{default:a.withCtx(()=>[a.createVNode(u,{offset:0,span:6},{default:a.withCtx(()=>[a.createVNode(l,{teleported:!1,"model-value":g.direction,placeholder:"Select",class:"input-box","popper-class":"viewer_dropdown",onChange:S=>s.modifyDirection(S,g)},{default:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.directions,S=>(a.openBlock(),a.createBlock(o,{key:S.value,label:S.label,value:S.value},null,8,["label","value"]))),128))]),_:2},1032,["model-value","onChange"])]),_:2},1024),a.createVNode(u,{offset:0,span:10},{default:a.withCtx(()=>[a.createVNode(c,{modelValue:g.value,"onUpdate:modelValue":S=>g.value=S,class:"my-slider",step:.01,min:0,max:1,"show-tooltip":!1,onInput:S=>s.modifySlide(g)},null,8,["modelValue","onUpdate:modelValue","onInput"])]),_:2},1024),a.createVNode(u,{offset:0,span:6},{default:a.withCtx(()=>[a.createVNode(f,{modelValue:g.value,"onUpdate:modelValue":S=>g.value=S,step:.01,min:0,max:1,controls:!1,class:"input-box number-input"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),a.createVNode(u,{offset:0,span:2},{default:a.withCtx(()=>[a.createVNode(p,{class:"delete-icon",onClick:S=>s.removeSlide(w,g)},{default:a.withCtx(()=>[a.createVNode(h)]),_:2},1032,["onClick"])]),_:2},1024)]),_:2},1024))),128))]),_:1}),a.createVNode(b,{height:"30px",class:"add-slides-text",onClick:s.addNewSlide},{default:a.withCtx(()=>[a.createVNode(y,null,{default:a.withCtx(()=>[a.createVNode(u,{span:2},{default:a.withCtx(()=>[a.createVNode(p,null,{default:a.withCtx(()=>[a.createVNode(d)]),_:1})]),_:1}),a.createVNode(u,{span:20},{default:a.withCtx(()=>e[0]||(e[0]=[a.createTextVNode(" Add a new slide ")])),_:1})]),_:1})]),_:1},8,["onClick"])]),_:1})}const dx=Pi(HB,[["render",WB],["__scopeId","data-v-12185b7f"]]),jB={name:"TransformationControls",components:{Col:Ln,Container:Xn,InputNumber:mi,Main:pi,Slider:Sn},inject:["boundingDims"],data:function(){return{x:0,y:0,z:0,scale:1,min:[0,0,0],max:[1,1,1],zincObject:void 0,enableScaling:!0}},watch:{boundingDims:{handler:function(n){const e=n.centre,t=n.size;this.min=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],this.max=[e[0]+t[0],e[1]+t[1],e[2]+t[2]]},immediate:!0,deep:!0}},methods:{setObject:function(n){if(n.isZincObject){this.zincObject=a.markRaw(n);const e=this.zincObject.getGroup();e&&e.position&&(this.x=e.position.x,this.y=e.position.y,this.z=e.position.z,this.zincObject.isGlyphset?this.scale=this.zincObject.globalScale:this.scale=e.scale.x,this.enableScaling=!this.zincObject.isTextureSlides)}else this.zincObject=void 0,this.x=0,this.y=0,this.z=0,this.scale=1},modifyPosition:function(){this.zincObject.setPosition(this.x,this.y,this.z)},modifyScale:function(){this.zincObject.setScaleAll(this.scale)}}};function $B(n,e,t,i,r,s){const o=Ln,l=Sn,u=mi,c=Zn,f=pi,h=Xn;return a.openBlock(),a.createBlock(h,{class:"transformation-container"},{default:a.withCtx(()=>[a.createVNode(f,{class:"slides-block"},{default:a.withCtx(()=>[a.createVNode(c,{class:"tool-row"},{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[16]||(e[16]=[a.createTextVNode(" x: ")])),_:1}),a.createVNode(o,{offset:0,span:10},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.x,"onUpdate:modelValue":e[0]||(e[0]=p=>n.x=p),step:.01,min:n.min[0],max:n.max[0],"show-tooltip":!1,onInput:e[1]||(e[1]=p=>s.modifyPosition())},null,8,["modelValue","min","max"])]),_:1}),a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>[a.createVNode(u,{modelValue:n.x,"onUpdate:modelValue":e[2]||(e[2]=p=>n.x=p),step:.01,min:n.min[0],max:n.max[0],controls:!1,class:"input-box number-input",onChange:e[3]||(e[3]=p=>s.modifyPosition())},null,8,["modelValue","min","max"])]),_:1})]),_:1}),a.createVNode(c,{class:"tool-row"},{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[17]||(e[17]=[a.createTextVNode(" y: ")])),_:1}),a.createVNode(o,{offset:0,span:10},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.y,"onUpdate:modelValue":e[4]||(e[4]=p=>n.y=p),step:.01,min:n.min[1],max:n.max[1],"show-tooltip":!1,onInput:e[5]||(e[5]=p=>s.modifyPosition())},null,8,["modelValue","min","max"])]),_:1}),a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>[a.createVNode(u,{modelValue:n.y,"onUpdate:modelValue":e[6]||(e[6]=p=>n.y=p),step:.01,min:n.min[1],max:n.max[1],controls:!1,class:"input-box number-input",onChange:e[7]||(e[7]=p=>s.modifyPosition())},null,8,["modelValue","min","max"])]),_:1})]),_:1}),a.createVNode(c,{class:"tool-row"},{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[18]||(e[18]=[a.createTextVNode(" z: ")])),_:1}),a.createVNode(o,{offset:0,span:10},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.z,"onUpdate:modelValue":e[8]||(e[8]=p=>n.z=p),step:.01,min:n.min[2],max:n.max[2],"show-tooltip":!1,onInput:e[9]||(e[9]=p=>s.modifyPosition())},null,8,["modelValue","min","max"])]),_:1}),a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>[a.createVNode(u,{modelValue:n.z,"onUpdate:modelValue":e[10]||(e[10]=p=>n.z=p),step:.01,min:n.min[2],max:n.max[2],controls:!1,class:"input-box number-input",onChange:e[11]||(e[11]=p=>s.modifyPosition())},null,8,["modelValue","min","max"])]),_:1})]),_:1}),n.enableScaling?(a.openBlock(),a.createBlock(c,{key:0,class:"tool-row"},{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[19]||(e[19]=[a.createTextVNode(" Scale: ")])),_:1}),a.createVNode(o,{offset:0,span:10},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.scale,"onUpdate:modelValue":e[12]||(e[12]=p=>n.scale=p),step:.01,min:0,max:5,"show-tooltip":!1,onInput:e[13]||(e[13]=p=>s.modifyScale())},null,8,["modelValue"])]),_:1}),a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>[a.createVNode(u,{modelValue:n.scale,"onUpdate:modelValue":e[14]||(e[14]=p=>n.scale=p),step:.01,min:0,max:5,controls:!1,class:"input-box number-input",onChange:e[15]||(e[15]=p=>s.modifyScale())},null,8,["modelValue"])]),_:1})]),_:1})):a.createCommentVNode("",!0)]),_:1})]),_:1})}const hx=Pi(jB,[["render",$B],["__scopeId","data-v-69c1b94a"]]),ZB={name:"OpacityControls",components:{Container:Xn,Header:JC,Main:pi,Slider:Sn},props:{material:void 0,zincObject:void 0},data:function(){return{displayString:"100%"}},watch:{"material.opacity":function(){this.material&&this.zincObject&&this.zincObject.setAlpha(this.material.opacity)}},methods:{formatTooltip(n){return this.displayString=Math.floor(100*n+.5)+"%",this.displayString}}},XB={class:"block"},YB={class:"display"};function JB(n,e,t,i,r,s){const o=Sn,l=Xn;return t.material?(a.openBlock(),a.createBlock(l,{key:0,class:"opacity-container"},{default:a.withCtx(()=>[a.createElementVNode("div",XB,[a.createElementVNode("span",YB,a.toDisplayString(n.displayString),1),a.createVNode(o,{modelValue:t.material.opacity,"onUpdate:modelValue":e[0]||(e[0]=u=>t.material.opacity=u),class:"my-slider",step:.01,min:0,max:1,"format-tooltip":s.formatTooltip,"show-tooltip":!1},null,8,["modelValue","format-tooltip"])])]),_:1})):a.createCommentVNode("",!0)}const fx=Pi(ZB,[["render",JB],["__scopeId","data-v-cbfc46a5"]]),KB={name:"PrimitiveControls",components:{Collapse:rg,CollapseItem:sg,LinesControls:cx,OpacityControls:fx,PointsControls:ux,TextureSlidesControls:dx,TransformationControls:hx,ElIconArrowRight:Vi},props:{createData:{type:Object}},data:function(){return{activeName:"oControls",material:void 0,isTextureSlides:!1,isPointset:!1,isLines:!1,drawerOpen:!0,zincObject:void 0,isEditable:!1,displayString:"100%"}},methods:{formatTooltip:function(n){return this.displayString=Math.floor(100*n+.5)+"%",this.displayString},toggleDrawer:function(){this.drawerOpen=!this.drawerOpen},setObject:function(n){var e;n?this.zincObject=a.markRaw(n):this.zincObject=void 0,this.isEditable=!!((e=this.zincObject)!=null&&e.isEditable),this.isPointset=!1,this.isTextureSlides=!1,this.isLines=!1,this.activeName="trControls",n&&(n.isTextureSlides?(this.isTextureSlides=!0,this.$refs.tSlidesControls.setObject(n),this.activeName="tsControls"):n.isPointset?(this.isPointset=!0,this.$refs.pointsetControls.setObject(n),this.activeName="pControls"):n.isLines2&&(this.isLines=!0,this.$refs.linesControls.setObject(n),this.activeName="lControls"),this.$refs.transformationControls.setObject(n)),n&&n.getMorph()?this.material=n.getMorph().material:this.material=void 0}}};function qB(n,e,t,i,r,s){const o=fx,l=sg,u=hx,c=dx,f=ux,h=cx,p=rg,y=Vi,m=ht;return a.withDirectives((a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(["primitive-controls",{open:n.drawerOpen,close:!n.drawerOpen}])},[a.createElementVNode("div",{class:a.normalizeClass(["my-drawer",{open:n.drawerOpen,close:!n.drawerOpen}])},[a.createVNode(p,{class:"collapse",modelValue:n.activeName,"onUpdate:modelValue":e[2]||(e[2]=d=>n.activeName=d),accordion:""},{default:a.withCtx(()=>[a.withDirectives(a.createVNode(l,{title:"Opacity",name:"oControls"},{default:a.withCtx(()=>[a.createVNode(o,{material:n.material,zincObject:n.zincObject,ref:"opacityControls"},null,8,["material","zincObject"])]),_:1},512),[[a.vShow,!n.isTextureSlides]]),a.withDirectives(a.createVNode(l,{title:"Transformation",name:"trControls"},{default:a.withCtx(()=>[a.createVNode(u,{class:"transformation-controls",ref:"transformationControls"},null,512)]),_:1},512),[[a.vShow,!n.isEditable]]),a.withDirectives(a.createVNode(l,{title:"Texture Slides",name:"tsControls"},{default:a.withCtx(()=>[a.createVNode(c,{class:"texture-controls",ref:"tSlidesControls"},null,512)]),_:1},512),[[a.vShow,n.isTextureSlides]]),a.withDirectives(a.createVNode(l,{title:"Points",name:"pControls"},{default:a.withCtx(()=>[a.createVNode(f,{class:"pointset-controls",ref:"pointsetControls",onPrimitivesUpdated:e[0]||(e[0]=d=>n.$emit("primitivesUpdated",d))},null,512)]),_:1},512),[[a.vShow,n.isPointset]]),a.withDirectives(a.createVNode(l,{title:"Lines",name:"lControls"},{default:a.withCtx(()=>[a.createVNode(h,{class:"lines-controls",ref:"linesControls",createData:t.createData,onPrimitivesUpdated:e[1]||(e[1]=d=>n.$emit("primitivesUpdated",d))},null,8,["createData"])]),_:1},512),[[a.vShow,n.isLines]])]),_:1},8,["modelValue"])],2),a.createElementVNode("div",{class:a.normalizeClass(["drawer-button",{open:n.drawerOpen,close:!n.drawerOpen}]),onClick:e[3]||(e[3]=(...d)=>s.toggleDrawer&&s.toggleDrawer(...d))},[a.createVNode(m,null,{default:a.withCtx(()=>[a.createVNode(y)]),_:1})],2)],2)),[[a.vShow,n.material||n.isTextureSlides]])}const px=Pi(KB,[["render",qB],["__scopeId","data-v-d55fc9a4"]]),QB=(n,e)=>{const t=n.label.toUpperCase(),i=e.label.toUpperCase();return t<i?-1:t>i?1:0},eF={name:"ScaffoldTreeControls",components:{ElIconArrowLeft:Fi,TreeControls:Fa.TreeControls},props:{showColourPicker:Boolean,isReady:Boolean},data:function(){return{treeData:[{label:"Root",regionPath:"",id:void 0,children:[]}],active:[],hover:[],drawerOpen:!0,nodeNumbers:0,module:void 0}},computed:{treeDataEntry:function(){return this.treeData[0].children}},watch:{treeDataEntry:{deep:!0,handler:function(n){this.isReady&&this.setColourField(n)}}},methods:{addTreeItem:function(n,e,t){n.some(i=>i.label===e.label)||(Object.assign(e,{activeColour:this.getColour(e)}),n.push(e),n.sort((i,r)=>QB(i,r)),this.nodeNumbers++,this.$nextTick(()=>{!this.$refs.treeControls.$refs.regionTree.getCheckedKeys().includes(e.id)&&t.getVisibility()&&this.$refs.treeControls.$refs.regionTree.setChecked(e.id,!0)}))},findOrCreateRegion:function(n,e,t){if(this.module&&this.module.scene&&(this.treeData[0].id=this.module.scene.getRootRegion().uuid,this.treeData[0].isRegion=!0),e.length>0){const i=[...e];let r=n.children.find(l=>l.label==i[0]);const s=t+"/"+e[0],o=this.module.scene.getRootRegion().findChildFromPath(s);return r||(r={label:i[0],id:o.uuid,children:[],regionPath:s,isRegion:!0},this.addTreeItem(n.children,r,o),s==="/_helper"&&this.$nextTick(()=>{this.$refs.treeControls.$refs.regionTree.setChecked(r.id,!1)})),i.shift(),this.findOrCreateRegion(r,i,s)}else return n},removeRegion:function(n){if(this.treeData[0].children){for(let e=0;e<this.treeData[0].children.length;e++)if(this.treeData[0].children[e].label===n){this.treeData[0].children.splice(e,1),this.nodeNumbers--;return}}},zincObjectAdded:function(n){const e=n.region;if(e){const t=e.getFullSeparatedPath(),i=this.findOrCreateRegion(this.treeData[0],t,"");if(n.groupName&&i){i.children||(i.children=[]);const r={label:n.groupName,id:e.uuid+"/"+n.uuid,isPrimitives:!0,regionPath:n.region.getFullPath(),isTextureSlides:!!n.isTextureSlides};this.addTreeItem(i.children,r,n)}}},zincObjectRemoved:function(n){const e=n.groupName;if(n.region.findObjectsWithGroupName(e,!1).length===0){const i=n.region.getFullSeparatedPath(),r=this.findOrCreateRegion(this.treeData[0],i,"");if(r.children){for(let s=0;s<r.children.length;s++)if(r.children[s].label===e){r.children.splice(s,1),this.nodeNumbers--;return}}}},checkChanged:function(n,e){const t=n.isRegion,i=n.isPrimitives,r=e.checkedKeys.includes(n.id),s=this.module.scene.getRootRegion().findChildFromPath(n.regionPath);t&&(r?s.showAllPrimitives():s.hideAllPrimitives()),i&&s.findObjectsWithGroupName(n.label).forEach(l=>{l.setVisibility(r)})},updateActiveUI:function(n){this.active.length=0,nx(n,this.active)},changeActiveByPrimitives:function(n,e){n&&n.length>0?(this.updateActiveUI(n),this.$emit("object-selected",n,e)):this.removeActive(e),this.removeHover(e)},updateHoverUI:function(n){this.hover.length=0,nx(n,this.hover)},changeHoverByPrimitives:function(n,e){n&&n.length>0?(this.updateHoverUI(n),this.$emit("object-hovered",n,e)):this.removeHover(e)},changeActiveByNames:function(n,e,t){const i=this.module.scene.getRootRegion(),r=wo(i,n,e,!0);this.changeActiveByPrimitives(r,t)},changeHoverByNames:function(n,e,t){const i=this.module.scene.getRootRegion(),r=wo(i,n,e,!0);this.changeHoverByPrimitives(r,t)},changeActiveByNode:function(n,e){if(n.isPrimitives||n.isRegion){const t=!!n.isRegion,i=this.getZincObjectsFromNode(n,t);this.changeActiveByPrimitives(i,e)}},changeHoverByNode:function(n,e){if(n.isPrimitives){const t=this.getZincObjectsFromNode(n,!1);this.changeHoverByPrimitives(t,e)}},removeActive:function(n){this.active=[],this.$emit("object-selected",[],n)},removeHover:function(n){this.hover=[],this.$emit("object-hovered",[],n)},clear:function(){this.active.length=0,this.hover.length=0,this.nodeNumbers=0,this.$refs.treeControls.$refs.regionTree.updateKeyChildren(this.treeData[0].id,[]),this.treeData[0].children.length=0,this.treeData[0].id=void 0,this.$emit("object-selected",[])},getColour:function(n){if(n){let t=this.getZincObjectsFromNode(n,!1)[0];if(t){let i=t.getColourHex();if(i)return"#"+i}}return"#FFFFFF"},getZincObjectsFromNode:function(n,e){const t=this.module.scene.getRootRegion();if(n.isPrimitives)return wo(t,n.label,n.regionPath,e);if(n.isRegion&&n.regionPath){let i=t.findChildFromPath(n.regionPath);if(i)return i.getAllObjects(e)}return[]},setModule:function(n){this.module=a.markRaw(n),this.nodeNumbers=0,this.module.scene.getRootRegion().getAllObjects(!0).forEach(t=>{this.zincObjectAdded(t)}),this.module.addOrganPartAddedCallback(this.zincObjectAdded),this.module.addOrganPartRemovedCallback(this.zincObjectRemoved)},setColourField:function(n,e=void 0){n.filter(t=>e&&!t.children?t.id===e.id:!0).map(t=>{if(t.children)this.setColourField(t.children,e);else{const i=this.getColour(t);t.defaultColour||(t.defaultColour=i),t.activeColour=i}})},setColour:function(n,e){n&&n.isPrimitives&&this.getZincObjectsFromNode(n,!1).forEach(i=>{let s=(e||n.defaultColour).replace("#","0x");i.setColourHex(s),this.setColourField(this.treeData[0].children,n)})},visibilityToggle:function(n,e){this.module.changeOrganPartsVisibility(n,e),e==!1&&(this.activeRegion===n&&this.removeActive(!0),this.hoverRegion===n&&this.removeHover(!0))},toggleDrawer:function(){this.drawerOpen=!this.drawerOpen,this.$emit("drawer-toggled",this.drawerOpen)},setTreeVisibilityWithFullPaths:function(n,e,t,i){let r=!1,s="";n.isRegion&&(s=`__r${n.regionPath}`),n.isPrimitives&&(s=`${n.regionPath}/${n.label}`);const o=e.indexOf(s);o>-1&&(r=!0,e.splice(o,1),t.push(n.id));const l=this.module.scene.getRootRegion().findChildFromPath(n.regionPath);s&&s!=="__r"&&n.isPrimitives&&l.findObjectsWithGroupName(n.label).forEach(c=>c.setVisibility(r)),n.children&&n.children.forEach(u=>{this.setTreeVisibilityWithFullPaths(u,e,t,!0)})},checkAllKeys:function(){const n=[],e=[];ix(this.treeData[0],n),this.setTreeVisibilityWithFullPaths(this.treeData[0],n,e,!0),this.$refs.treeControls.$refs.regionTree.setCheckedKeys(e)},getState:function(){let n=this.$refs.treeControls.$refs.regionTree.getCheckedKeys();return n.length===this.nodeNumbers?{checkAll:!0,version:"2.0"}:{checkedItems:BB(this.module.scene.getRootRegion(),n),version:"2.0"}},setState:function(n){if(n){if(n.checkAll)this.checkAllKeys();else if(n.checkedItems){let e=[];n.version!=="2.0"?(e=n.checkedItems.map(i=>"/"+i),e.shift("__r/")):e.push(...n.checkedItems);const t=[];this.setTreeVisibilityWithFullPaths(this.treeData[0],e,t,!0),this.$refs.treeControls.$refs.regionTree.setCheckedKeys(t)}}}}},tF={class:"traditional-container"};function nF(n,e,t,i,r,s){const o=a.resolveComponent("TreeControls"),l=Fi,u=ht;return a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(["tree-controls",{open:n.drawerOpen,close:!n.drawerOpen}])},[a.createElementVNode("div",tF,[a.createVNode(o,{mapType:"scaffold",title:"Regions",isReady:t.isReady,treeData:s.treeDataEntry,active:n.active,hover:n.hover,showColourPicker:t.showColourPicker,onSetColour:s.setColour,onCheckChanged:s.checkChanged,onChangeActive:s.changeActiveByNode,onChangeHover:s.changeHoverByNode,ref:"treeControls"},null,8,["isReady","treeData","active","hover","showColourPicker","onSetColour","onCheckChanged","onChangeActive","onChangeHover"])]),a.createElementVNode("div",{class:a.normalizeClass(["drawer-button",{open:n.drawerOpen,close:!n.drawerOpen}]),onClick:e[0]||(e[0]=(...c)=>s.toggleDrawer&&s.toggleDrawer(...c))},[a.createVNode(u,null,{default:a.withCtx(()=>[a.createVNode(l)]),_:1})],2)],2)}const mx=Pi(eF,[["render",nF],["__scopeId","data-v-706c7d54"]]),gx=jc.defineStore("main",{state:()=>({userProfile:{token:""}}),getters:{userToken(n){return n.userProfile.token}},actions:{setUserToken(n){this.userProfile.token=n}}}),iF={name:"ScaffoldTooltip",components:{Col:Ln,CreateTooltipContent:Fa.CreateTooltipContent,ElIconDelete:Ja,Icon:ht,Popover:vl,Row:Zn,Tooltip:Fa.Tooltip},props:{createData:{type:Object,default:{toBeConfirmed:!1,points:[],shape:"",x:0,y:0}},label:{type:String,default:""},annotationDisplay:{type:Boolean,default:!1},annotationFeature:{type:Object,default:{}},offlineAnnotationEnabled:{type:Boolean,default:!1},region:{type:String,default:""},visible:{type:Boolean,default:!1},x:{type:Number,default:200},y:{type:Number,default:200}},inject:["scaffoldUrl"],provide(){return{userApiKey:this.userToken}},data:function(){return{display:!1,annotationEntry:[],ElIconDelete:a.shallowRef(Ja)}},computed:{...jc.mapState(gx,["userToken"]),position:function(){let n=40;return this.region&&(n=55),{left:this.x-40+"px",top:this.y-n+"px"}}},methods:{checkForDisplay:function(){if(this.visible&&this.label&&this.label!==""){if(this.display=!0,this.annotationDisplay){const n=this.region?this.region+"/":"";this.annotationEntry=[{featureId:n+this.label,resourceId:this.scaffoldUrl,resource:this.scaffoldUrl,feature:this.annotationFeature,offline:this.offlineAnnotationEnabled}]}}else this.display=!1,this.annotationEntry=[]},hideTriggered:function(){this.$emit("tooltip-hide")}},watch:{label:{handler:function(){this.checkForDisplay()},immediate:!0},visible:{handler:function(){this.checkForDisplay()},immediate:!0},annotationDisplay:{handler:function(){this.checkForDisplay()},immediate:!0}}},rF={class:"tooltip-text"},sF={key:0,class:"tooltip-text"},oF={key:1,class:"delete-container"};function aF(n,e,t,i,r,s){const o=a.resolveComponent("CreateTooltipContent"),l=a.resolveComponent("Tooltip"),u=Ln,c=bs,f=Zn,h=vl;return a.openBlock(),a.createElementBlock("div",{style:a.normalizeStyle(s.position),class:"region-tooltip"},[a.createVNode(h,{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",rF,a.toDisplayString(t.label),1),t.region?(a.openBlock(),a.createElementBlock("div",sF,"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:"annotationTooltip",annotationDisplay:!0,annotationEntry:n.annotationEntry,onAnnotation:e[2]||(e[2]=p=>n.$emit("confirm-comment",p))},null,8,["annotationEntry"]),[[a.vShow,t.annotationDisplay&&!t.createData.toBeConfirmed]]),t.createData.toBeDeleted?(a.openBlock(),a.createElementBlock("div",oF,[a.createVNode(f,null,{default:a.withCtx(()=>[a.createVNode(u,{span:10},{default:a.withCtx(()=>e[5]||(e[5]=[a.createTextVNode("Delete this feature?")])),_:1}),a.createVNode(u,{span:7},{default:a.withCtx(()=>[a.createVNode(c,{class:"delete-button",icon:n.ElIconDelete,onClick:e[3]||(e[3]=p=>n.$emit("confirm-delete"))},{default:a.withCtx(()=>e[6]||(e[6]=[a.createTextVNode(" Delete ")])),_:1},8,["icon"])]),_:1}),a.createVNode(u,{span:6},{default:a.withCtx(()=>[a.createVNode(c,{class:"delete-button",onClick:e[4]||(e[4]=p=>n.$emit("cancel-create"))},{default:a.withCtx(()=>e[7]||(e[7]=[a.createTextVNode(" Dismiss ")])),_:1})]),_:1})]),_:1})])):a.createCommentVNode("",!0)]),_:1},8,["visible","onHide"])],4)}const yx=Pi(iF,[["render",aF],["__scopeId","data-v-79a4dbaf"]]),Na={ALL:0,SELECTED:1,HIGHLIGHTED:2,MOVE:3},lF=function(n,e,t){this.eventType=n,this.identifiers=e,this.zincObjects=t},cF=function(n,e,t){this.targetedID=[];const i=n,r=e;this.targetEventType=t;const s=this;t===void 0&&(this.targetEventType=Na.ALL),this.getEventType=function(){return t},this.notify=function(o,l,u,c){if(o!==i&&(s.targetEventType===Na.ALL||s.targetEventType===l)){const f=new lF(l,u,c);r(f)}}},uF=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 cF(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}}},vx={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}},vf={ALL:0,DESTROYED:1,NAME_CHANGED:2,SETTINGS_CHANGED:3},vn=function(){this.typeName="Base Module",this.instanceName="default",this.onChangedCallbacks=[],this.eventNotifiers=[]};vn.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,vf.NAME_CHANGED)}},vn.prototype.settingsChanged=function(){const n=this.onChangedCallbacks.slice();for(let e=0;e<n.length;e++)n[e](this,vf.SETTINGS_CHANGED)},vn.prototype.exportSettings=function(){const n={};return n.dialog=this.typeName,n.name=this.instanceName,n},vn.prototype.importSettings=function(n){return n.dialog==this.typeName?(this.setName(n.name),!0):!1},vn.prototype.publishChanges=function(n,e,t){for(let i=0;i<this.eventNotifiers.length;i++)this.eventNotifiers[i].publish(this,e,n,t)},vn.prototype.getName=function(){return this.instanceName},vn.prototype.destroy=function(){const n=this.onChangedCallbacks.slice();for(let e=0;e<n.length;e++)n[e](this,vf.DESTROYED);delete this},vn.prototype.addChangedCallback=function(n){this.onChangedCallbacks.includes(n)==!1&&this.onChangedCallbacks.push(n)},vn.prototype.removeChangedCallback=function(n){const e=this.onChangedCallbacks.indexOf(n);e>-1&&this.onChangedCallbacks.splice(e,1)},vn.prototype.addNotifier=function(n){this.eventNotifiers.push(n)};const Uc=(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=gr.THREE.LessEqualDepth),n[i].children.forEach(s=>{const o=s.userData;o&&o.isZincObject&&s.material&&s.material.emissive&&s.material.emissive.setRGB(...e)})}},dF=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(u,c){if(u.length==0&&c.length==0)return!1;for(let f=0;f<u.length;f++){let h=!1;for(let p=0;p<c.length;p++)u[f]===c[p]&&(h=!0);if(!h)return!0}for(let f=0;f<c.length;f++){let h=!1;for(let p=0;p<u.length;p++)c[f]===u[p]&&(h=!0);if(!h)return!0}return!1},o=function(u,c){if(t.length=0,c.length==0)return u;for(let f=0;f<u.length;f++){let h=!1;for(let p=0;p<c.length;p++)u[f]===c[p]&&(h=!0);h||t.push(u[f])}return t};this.setHighlighted=function(u){const c=[...n];r.resetHighlighted();const f=o(u,e),h=l(f);return Uc(h,r.highlightColour,!1),n=f,s(n,c)},this.setSelected=function(u){const c=[...e];r.resetHighlighted(),r.resetSelected();const f=l(u);return Uc(f,r.selectColour,!1),e=u,s(e,c)};const l=function(u){i.length=0;for(let c=0;c<u.length;c++)u[c].material&&i.push(u[c]);return i};this.resetHighlighted=function(){const u=l(n);Uc(u,r.originalColour,!0),n=[]},this.resetSelected=function(){const u=l(e);Uc(u,r.originalColour,!0),e=[]},this.getSelected=function(){return e},this.reset=function(){r.resetSelected(),r.resetHighlighted()}},bf=kc.THREE,hF=function(){const n=document.createElement("div");let e;if(n.style.height="100%",vx.isWebGLAvailable())e=new kc.Renderer(n,window),kc.defaultMaterialColor=16777116,e.initialiseVisualisation(),e.playAnimation=!1;else{const t=vx.getWebGLErrorMessage();n.appendChild(t)}return{Zinc:kc,renderer:e,container:n}},vt=function(){vn.call(this),this.scene=void 0,this.rendererContainer=void 0,this.displayArea=void 0,this.graphicsHighlight=new dF,this.selectObjectOnPick=!0,this.zincRenderer=null,this.selectedScreenCoordinates=new bf.Vector3,this.selectedCenter=void 0,this.liveUpdatesObjects=void 0,this.ignorePreviousSelected=!1};vt.prototype=Object.create(vn.prototype),vt.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 i.object.name==="_Unnamed"?3:2}return 0});let t=e.indexOf(1);return t>-1||(t=e.indexOf(2),t=t>-1?t:e.indexOf(3)),n[t]}},vt.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},vt.prototype.setHighlightedByObjects=function(n,e,t,i){const r=this.graphicsHighlight.setHighlighted(n),s=this.objectsToZincObjects(n);if(i){let o=Na.MOVE;r&&(o=Na.HIGHLIGHTED);const l=this.getAnnotationsFromObjects(n);l.length>0&&(l[0].coords=e,l[0].extraData=t),this.publishChanges(l,o,s)}return r},vt.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)},vt.prototype.setupLiveCoordinates=function(n){if(this.liveUpdatesObjects=n,n&&n.length>0){const e=this.scene.getBoundingBoxOfZincObjects(n);let t=new bf.Vector3;e?(e.getCenter(t),this.selectedCenter==null?this.selectedCenter=t:this.selectedCenter.copy(t)):this.selectedCenter=void 0}else this.selectedCenter=void 0},vt.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},vt.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=Na.SELECTED,l=this.getAnnotationsFromObjects(n);l.length>0&&(l[0].coords=e,l[0].extraData=t),this.publishChanges(l,o,s)}}return r},vt.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)},vt.prototype.findObjectsByGroupName=function(n){return this.scene.findObjectsWithGroupName(n)},vt.prototype.setHighlightedByGroupName=function(n,e){const t=this.findObjectsByGroupName(n);return this.setHighlightedByObjects(t,void 0,{},e)},vt.prototype.setSelectedByGroupName=function(n,e){const t=this.findObjectsByGroupName(n);return this.setSelectedByObjects(t,void 0,{},e)},vt.prototype.changeBackgroundColour=function(n){const e=new bf.Color(n);this.zincRenderer&&this.zincRenderer.getThreeJSRenderer().setClearColor(e,1)},vt.prototype.resetView=function(){this.zincRenderer&&this.zincRenderer.resetView()},vt.prototype.viewAll=function(){this.zincRenderer&&this.zincRenderer.viewAll()},vt.prototype.playAnimation=function(n){this.zincRenderer&&(this.zincRenderer.playAnimation=n)},vt.prototype.setPlayRate=function(n){this.zincRenderer&&this.zincRenderer.setPlayRate(n)},vt.prototype.getPlayRate=function(n){return this.zincRenderer?this.zincRenderer.getPlayRate():0},vt.prototype.initialiseRenderer=function(n){if(this.zincRenderer===void 0||this.rendererContainer===void 0){let e=hF();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())},vt.prototype.destroy=function(){this.zincRenderer&&(this.zincRenderer.dispose(),this.zincRenderer.getThreeJSRenderer().dispose(),this.zincRenderer=void 0),vn.prototype.destroy.call(this)};const fF=function(){this.type="anatomical",this.data=void 0,this.isAnnotation=!0},pF=function(){this.currentName="",this.currentSystem="",this.currentPart="",this.currentSpecies="",this.metaURL="",this.viewURL="",this.timeVarying=!1,this.currentTime=0},bx=function(n){vt.call(this);const e=this;let t;this.sceneData=new pF;const i=new Array,r=new Array,s=new Array,o=new Array;let l,u;const c=n;this.NDCCameraControl=void 0,e.typeName="Organ Viewer",this.getSceneData=function(){return e.sceneData},this.updateTime=function(E){let O=6e3;e.scene&&(O=e.scene.getDuration());const A=E/100*O;e.sceneData.nerveMapIsActive||e.scene&&e.scene.setMorphsTime(A),e.sceneData.currentTime=E};const f=function(){let E=3e3;e.scene&&(E=e.scene.getDuration());const O=e.zincRenderer.getCurrentTime();for(let A=0;A<i.length;A++)i[A](O);!e.sceneData.nerveMapIsActive&&t&&t.setMorphsTime(O),e.sceneData.nerveMap&&e.sceneData.nerveMap.additionalReader&&e.sceneData.nerveMap.additionalReader.setTime(O/E),e.sceneData.currentTime=O/E*100};this.getCurrentTime=function(){return e.sceneData.currentTime},this.toggleSyncControl=(E,O)=>{let A=this.scene.getZincCameraControls();E?(A.resetView(),this.NDCCameraControl=A.enableSyncControl(),A.setRotationMode(O)):(A.disableSyncControl(),this.NDCCameraControl=void 0,A.setRotationMode("free"))},this.isSyncControl=()=>this.NDCCameraControl!==void 0,this.setSyncControlZoomToBox=E=>{this.NDCCameraControl&&this.NDCCameraControl.zoomToBox(E,2)},this.setSyncControlCallback=E=>{this.NDCCameraControl&&this.NDCCameraControl.setEventCallback(E)},this.setSyncControlCenterZoom=(E,O)=>{this.NDCCameraControl&&this.NDCCameraControl.setCenterZoom(E,O)};const h=function(){if(e.zincRenderer.playAnimation&&e.liveUpdatesObjects&&e.setupLiveCoordinates(e.liveUpdatesObjects),e.selectedCenter){const E=new gr.THREE.Vector3;E.copy(e.selectedCenter);const O=e.scene.vectorToScreenXY(E);e.selectedScreenCoordinates.x=O.x,e.selectedScreenCoordinates.y=O.y}},p=function(){return function(){f()}},y=function(){return function(){h()}};this.addTimeChangedCallback=function(E){i.push(E)},this.setTexturePos=function(E){e.sceneData.nerveMap&&e.sceneData.nerveMap.additionalReader&&e.sceneData.nerveMap.additionalReader.setSliderPos(E)},this.addSceneChangedCallback=function(E){r.push(E)},this.addOrganPartAddedCallback=function(E){s.push(E)},this.addOrganPartRemovedCallback=function(E){o.push(E)},this.setFinishDownloadCallback=function(E){l=E},this.unsetFinishDownloadCallback=function(){l=void 0},this.setDownloadErrorCallback=function(E){u=E},this.unsetDownloadErrorCallback=function(){u=void 0},this.getNamedObjectsToScreenCoordinates=function(E,O){const A=new gr.THREE.Vector3;A.setFromMatrixPosition(obj.matrixWorld);const L=width/2,R=height/2;return A.project(O),A.x=A.x*L+L,A.y=-(A.y*R)+R,A};const m=function(E){let O,A;if(E!==void 0){let L=!1;E.object.userData&&E.object.userData.isMarker?(L=!0,A=E.object.userData.parent.getMorph()):A=E.object;try{A.userData.userData.annotation.data.lastActionOnMarker=L}finally{}if(A)if(A.name)O=A.name;else{const R=e.getAnnotationsFromObjects([A]);R&&R[0]&&(O=R[0].data.group)}}return{id:O,object:A}},d=function(){return function(E,O,A){var I;const L=e.getIntersectedObject(E),R=m(L),N={worldCoords:[L?L.point.x:0,L?L.point.y:0,L?L.point.z:0],intersected:L,intersects:E},x={x:O,y:A};if(R.id){N.threeID=(I=R.object)==null?void 0:I.id,R.object.userData.isGlyph?R.object.name?e.setSelectedByObjects([R.object],x,N,!0):e.setSelectedByZincObjects(R.object.userData.getGlyphset(),x,N,!0):e.setSelectedByObjects([R.object],x,N,!0);return}else e.setSelectedByObjects([],x,N,!0)}},b=function(){return function(E,O,A){var I;const L=e.getIntersectedObject(E),R=m(L),N={worldCoords:[L?L.point.x:0,L?L.point.y:0,L?L.point.z:0]},x={x:O,y:A};if(R.id){N.threeID=(I=R.object)==null?void 0:I.id,e.displayArea.style.cursor="pointer",e.setHighlightedByObjects([R.object],x,N,!0);return}else e.displayArea.style.cursor="auto",e.setHighlightedByObjects([],x,N,!0)}},v=function(E,O,A,L){if(L=="all"||L=="geometries"){const R=E.findGeometriesWithGroupName(O);for(let N=0;N<R.length;N++)R[N].setVisibility(A)}if(L=="all"||L=="glyphsets"){const R=E.findGlyphsetsWithGroupName(O);for(let N=0;N<R.length;N++)R[N].setVisibility(A)}if(L=="all"||L=="pointsets"){const R=E.findPointsetsWithGroupName(O);for(let N=0;N<R.length;N++)R[N].setVisibility(A)}if(L=="all"||L=="lines"){const R=E.findLinesWithGroupName(O);for(let N=0;N<R.length;N++)R[N].setVisibility(A)}};this.changeGeometriesVisibility=function(E,O){v(e.scene,E,O,"geometries")},this.changeGlyphsetsVisibility=function(E,O){v(e.scene,E,O,"glyphsets")},this.changeLinesVisibility=function(E,O){v(e.scene,E,O,"lines")},this.changePointsetsVisibility=function(E,O){v(e.scene,E,O,"pointsets")},this.changeOrganPartsVisibility=function(E,O,A){let L="all";A!==void 0&&(L=A),v(e.scene,E,O,L)},this.changeOrganPartsVisibilityCallback=function(E){return function(O){e.changeOrganPartsVisibility(E,O)}},this.changeBackgroundColour=function(E){const O=new gr.THREE.Color(E);e.zincRenderer&&e.zincRenderer.getThreeJSRenderer().setClearColor(O,1)};const g=function(E,O,A,L){for(let x=0;x<s.length;x++)s[x](L,e.scene.isTimeVarying());const R=new fF,N=L.region.getFullPath();R.data={species:e.sceneData.currentSpecies,system:E,part:O,group:L.groupName,region:N,uuid:L.uuid,lastActionOnMarker:!1},L.userData.annotation=R},w=function(E,O,A,L){for(let R=0;R<o.length;R++)o[R](L)},S=function(E,O,A){return function(L){g(E,O,A,L)}},T=function(E,O,A){return function(L){w(E,O,A,L)}},M=function(){return function(){e.settingsChanged(),e.sceneData.timeVarying=e.scene.isTimeVarying(),l&&l()}},C=function(){return function(E){if((E==null?void 0:E.type)==="Error"&&u){const O={xhr:E.xhr,type:"download-error"};u(O)}}};this.updateFieldvisibility=function(E,O){for(let A=0;A<E.length;A++)if(O!=A){const L=E[A].PartName;e.changeOrganPartsVisibility(L,!1)}if(O>-1){const A=E[O].PartName;if(e.scene.findGeometriesWithGroupName(A).length>0||e.scene.findGlyphsetsWithGroupName(A).length>0)e.changeOrganPartsVisibility(A,!0);else{const L=getOrganDetails(E[O].SystemName,A);L!=null&&e.scene.loadMetadataURL(c.getOrgansDirectoryPrefix()+"/"+L.meta)}}},this.getAvailableSpecies=function(E,O,A){const L=new Array;L.push("none");const R=Object.keys(organsFileMap);for(index in R){const N=R[index];N!=E&&organsFileMap[N].hasOwnProperty(O)&&organsFileMap[N][O].hasOwnProperty(A)&&L.push(N)}return L},this.getCentreAndSize=function(){const E=new gr.THREE.Vector3,O=this.scene.getBoundingBox();O.getCenter(E);const A=[E.x,E.y,E.z];O.getSize(E);const L=[E.x,E.y,E.z];return{centre:A,size:L}};const _=function(E,O,A,L){e.sceneData.nerveMapIsActive=!1,e.sceneData.nerveMap=void 0,e.sceneData.metaURL="",e.sceneData.viewURL="",e.sceneData.currentSpecies=E,e.sceneData.currentSystem=O,e.sceneData.currentPart=A,e.sceneData.currentTime=0,e.sceneData.timeVarying=!1;let R="";E&&(R=E+"/"),O&&(R=O+"/"),A&&(R=A),e.sceneData.currentName=R};this.loadOrgansFromURL=function(E,O,A,L,R,N){if(e.zincRenderer&&L&&e.sceneData.metaURL!==E){_(O,A,L);const x=e.sceneData.currentName;let I=e.zincRenderer.getSceneByName(x);I?N&&I.clearAll():I=e.zincRenderer.createScene(x),e.selectObjectOnPick=!0;for(let F=0;F<r.length;F++)r[F](e.sceneData);R&&R!=""?(e.sceneData.viewURL=R,I.loadViewURL(e.sceneData.viewURL)):e.sceneData.viewURL=void 0,e.sceneData.metaURL=E,I.addZincObjectAddedCallbacks(S(A,L,!1)),I.addZincObjectRemovedCallbacks(T(void 0,L,!1)),I.loadMetadataURL(E,C(),M()),e.scene=I,e.zincRenderer.setCurrentScene(I),e.graphicsHighlight.reset();const B=I.getZincCameraControls();B.enableRaycaster(I,d(),b()),B.setMouseButtonAction("AUXILIARY","ZOOM"),B.setMouseButtonAction("SECONDARY","PAN")}},this.loadGLTFFromURL=function(E,O,A){if(e.zincRenderer&&O&&e.sceneData.metaURL!==E){_(void 0,void 0,O);const L=e.sceneData.currentName;let R=e.zincRenderer.getSceneByName(L);R?A&&R.clearAll():R=e.zincRenderer.createScene(L);for(let x=0;x<r.length;x++)r[x](e.sceneData);e.sceneData.viewURL=void 0,e.sceneData.metaURL=E,R.addZincObjectAddedCallbacks(S(void 0,O,!1)),R.addZincObjectRemovedCallbacks(T(void 0,O,!1)),R.loadGLTF(E,void 0,M()),e.scene=R,e.zincRenderer.setCurrentScene(R),e.graphicsHighlight.reset();const N=R.getZincCameraControls();N.enableRaycaster(R,d(),b()),N.setMouseButtonAction("AUXILIARY","ZOOM"),N.setMouseButtonAction("SECONDARY","PAN")}},this.alignCameraWithSelectedObject=function(E){const O=e.graphicsHighlight.getSelected();O&&O[0]&&O[0].userData&&e.scene.alignObjectToCameraView(O[0].userData,E)},this.exportSettings=function(){const E={};return E.name=e.instanceName,e.sceneData.currentSystem&&(E.system=e.sceneData.currentSystem),e.sceneData.currentSpecies&&(E.species=e.sceneData.currentSpecies),e.sceneData.currentPart&&(E.part=e.sceneData.currentPart),E.metaURL=e.sceneData.metaURL,e.sceneData.viewURL&&(E.viewURL=e.sceneData.viewURL),E.dialog="Organ Viewer",E},this.importSettings=function(E){return E&&E.dialog==this.typeName?(e.setName(E.name),E.metaURL!==void 0&&E.metaURL!=""?e.loadOrgansFromURL(E.metaURL,E.species,E.system,E.part,E.viewURL,!0):e.loadOrgans(E.species,E.system,E.part),!0):!1},function(){e.initialiseRenderer(void 0),e.zincRenderer&&(e.zincRenderer.addPreRenderCallbackFunction(p()),e.zincRenderer.addPostRenderCallbackFunction(y()))}()};bx.prototype=Object.create(vt.prototype);var at=function(){return at=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},at.apply(this,arguments)};function mF(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{c(i.next(f))}catch(h){o(h)}}function u(f){try{c(i.throw(f))}catch(h){o(h)}}function c(f){f.done?s(f.value):r(f.value).then(l,u)}c((i=i.apply(n,[])).next())})}function gF(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(c){return function(f){return u([c,f])}}function u(c){if(i)throw new TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(t=0)),t;)try{if(i=1,r&&(s=c[0]&2?r.return:c[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,c[1])).done)return s;switch(r=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return t.label++,{value:c[1],done:!1};case 5:t.label++,r=c[1],c=[0];continue;case 7:c=t.ops.pop(),t.trys.pop();continue;default:if(s=t.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]<s[3])){t.label=c[1];break}if(c[0]===6&&t.label<s[1]){t.label=s[1],s=c;break}if(s&&t.label<s[2]){t.label=s[2],t.ops.push(c);break}s[2]&&t.ops.pop(),t.trys.pop();continue}c=e.call(n,t)}catch(f){c=[6,f],r=0}finally{i=s=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}function Xe(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 Ct(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 yF="ENTRIES",xx="KEYS",wx="VALUES",Xt="",xf=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=Mo(this._path),t=e.node,i=e.keys;if(Mo(i)===Xt)return{done:!1,value:this.result()};var r=t.get(Mo(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=Mo(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 Mo(t)}).filter(function(e){return e!==Xt}).join("")},n.prototype.value=function(){return Mo(this._path).node.get(Xt)},n.prototype.result=function(){switch(this._type){case wx:return this.value();case xx:return this.key();default:return[this.key(),this.value()]}},n.prototype[Symbol.iterator]=function(){return this},n}(),Mo=function(n){return n[n.length-1]},vF=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 u=1;u<s;++u)o[u*r]=u;return Mx(n,e,t,i,o,1,r,""),i},Mx=function(n,e,t,i,r,s,o,l){var u,c,f=s*o;try{e:for(var h=Xe(n.keys()),p=h.next();!p.done;p=h.next()){var y=p.value;if(y===Xt){var m=r[f-1];m<=t&&i.set(l,[n.get(y),m])}else{for(var d=s,b=0;b<y.length;++b,++d){for(var v=y[b],g=o*d,w=g-o,S=r[g],T=Math.max(0,d-t-1),M=Math.min(o-1,d+t),C=T;C<M;++C){var _=v!==e[C],P=r[w+C]+ +_,E=r[w+C+1]+1,O=r[g+C]+1,A=r[g+C+1]=Math.min(P,E,O);A<S&&(S=A)}if(S>t)continue e}Mx(n.get(y),e,t,i,r,d,o,l+y)}}}catch(L){u={error:L}}finally{try{p&&!p.done&&(c=h.return)&&c.call(h)}finally{if(u)throw u.error}}},wf=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=Ct(Gc(this._tree,e.slice(this._prefix.length)),2),s=r[0],o=r[1];if(s===void 0){var l=Ct(_f(o),2),u=l[0],c=l[1];try{for(var f=Xe(u.keys()),h=f.next();!h.done;h=f.next()){var p=h.value;if(p!==Xt&&p.startsWith(c)){var y=new Map;return y.set(p.slice(c.length),u.get(p)),new n(y,e)}}}catch(m){t={error:m}}finally{try{h&&!h.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,bF(this._tree,e)},n.prototype.entries=function(){return new xf(this,yF)},n.prototype.forEach=function(e){var t,i;try{for(var r=Xe(this),s=r.next();!s.done;s=r.next()){var o=Ct(s.value,2),l=o[0],u=o[1];e(l,u,this)}}catch(c){t={error:c}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}},n.prototype.fuzzyGet=function(e,t){return vF(this._tree,e,t)},n.prototype.get=function(e){var t=Mf(this._tree,e);return t!==void 0?t.get(Xt):void 0},n.prototype.has=function(e){var t=Mf(this._tree,e);return t!==void 0&&t.has(Xt)},n.prototype.keys=function(){return new xf(this,xx)},n.prototype.set=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var i=Sf(this._tree,e);return i.set(Xt,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=Sf(this._tree,e);return i.set(Xt,t(i.get(Xt))),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=Sf(this._tree,e),r=i.get(Xt);return r===void 0&&i.set(Xt,r=t()),r},n.prototype.values=function(){return new xf(this,wx)},n.prototype[Symbol.iterator]=function(){return this.entries()},n.from=function(e){var t,i,r=new n;try{for(var s=Xe(e),o=s.next();!o.done;o=s.next()){var l=Ct(o.value,2),u=l[0],c=l[1];r.set(u,c)}}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}(),Gc=function(n,e,t){var i,r;if(t===void 0&&(t=[]),e.length===0||n==null)return[n,t];try{for(var s=Xe(n.keys()),o=s.next();!o.done;o=s.next()){var l=o.value;if(l!==Xt&&e.startsWith(l))return t.push([n,l]),Gc(n.get(l),e.slice(l.length),t)}}catch(u){i={error:u}}finally{try{o&&!o.done&&(r=s.return)&&r.call(s)}finally{if(i)throw i.error}}return t.push([n,e]),Gc(void 0,"",t)},Mf=function(n,e){var t,i;if(e.length===0||n==null)return n;try{for(var r=Xe(n.keys()),s=r.next();!s.done;s=r.next()){var o=s.value;if(o!==Xt&&e.startsWith(o))return Mf(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}}},Sf=function(n,e){var t,i,r=e.length;e:for(var s=0;n&&s<r;){try{for(var o=(t=void 0,Xe(n.keys())),l=o.next();!l.done;l=o.next()){var u=l.value;if(u!==Xt&&e[s]===u[0]){for(var c=Math.min(r-s,u.length),f=1;f<c&&e[s+f]===u[f];)++f;var h=n.get(u);if(f===u.length)n=h;else{var p=new Map;p.set(u.slice(f),h),n.set(e.slice(s,s+f),p),n.delete(u),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},bF=function(n,e){var t=Ct(Gc(n,e),2),i=t[0],r=t[1];if(i!==void 0){if(i.delete(Xt),i.size===0)Sx(r);else if(i.size===1){var s=Ct(i.entries().next().value,2),o=s[0],l=s[1];_x(r,o,l)}}},Sx=function(n){if(n.length!==0){var e=Ct(_f(n),2),t=e[0],i=e[1];if(t.delete(i),t.size===0)Sx(n.slice(0,-1));else if(t.size===1){var r=Ct(t.entries().next().value,2),s=r[0],o=r[1];s!==Xt&&_x(n.slice(0,-1),s,o)}}},_x=function(n,e,t){if(n.length!==0){var i=Ct(_f(n),2),r=i[0],s=i[1];r.set(s+e,t),r.delete(s)}},_f=function(n){return n[n.length-1]},Da,Tf="or",Tx="and",xF="and_not",wF=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?Lf:e.autoVacuum;this._options=at(at(at({},Af),e),{autoVacuum:t,searchOptions:at(at({},Ex),e.searchOptions||{}),autoSuggestOptions:at(at({},EF),e.autoSuggestOptions||{})}),this._index=new wf,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=Rf,this.addFields(this._options.fields)}return n.prototype.add=function(e){var t,i,r,s,o,l,u=this._options,c=u.extractField,f=u.tokenize,h=u.processTerm,p=u.fields,y=u.idField,m=c(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 d=this.addDocumentId(m);this.saveStoredFields(d,e);try{for(var b=Xe(p),v=b.next();!v.done;v=b.next()){var g=v.value,w=c(e,g);if(w!=null){var S=f(w.toString(),g),T=this._fieldIds[g],M=new Set(S).size;this.addFieldLength(d,T,this._documentCount-1,M);try{for(var C=(r=void 0,Xe(S)),_=C.next();!_.done;_=C.next()){var P=_.value,E=h(P,g);if(Array.isArray(E))try{for(var O=(o=void 0,Xe(E)),A=O.next();!A.done;A=O.next()){var L=A.value;this.addTerm(T,d,L)}}catch(R){o={error:R}}finally{try{A&&!A.done&&(l=O.return)&&l.call(O)}finally{if(o)throw o.error}}else E&&this.addTerm(T,d,E)}}catch(R){r={error:R}}finally{try{_&&!_.done&&(s=C.return)&&s.call(C)}finally{if(r)throw r.error}}}}}catch(R){t={error:R}}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=Xe(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,h,p){var y=f.chunk,m=f.promise;return y.push(h),(p+1)%s===0?{chunk:[],promise:m.then(function(){return new Promise(function(d){return setTimeout(d,0)})}).then(function(){return i.addAll(y)})}:{chunk:y,promise:m}},o),u=l.chunk,c=l.promise;return c.then(function(){return i.addAll(u)})},n.prototype.remove=function(e){var t,i,r,s,o,l,u=this._options,c=u.tokenize,f=u.processTerm,h=u.extractField,p=u.fields,y=u.idField,m=h(e,y);if(m==null)throw new Error('MiniSearch: document does not have ID field "'.concat(y,'"'));var d=this._idToShortId.get(m);if(d==null)throw new Error("MiniSearch: cannot remove document with ID ".concat(m,": it is not in the index"));try{for(var b=Xe(p),v=b.next();!v.done;v=b.next()){var g=v.value,w=h(e,g);if(w!=null){var S=c(w.toString(),g),T=this._fieldIds[g],M=new Set(S).size;this.removeFieldLength(d,T,this._documentCount,M);try{for(var C=(r=void 0,Xe(S)),_=C.next();!_.done;_=C.next()){var P=_.value,E=f(P,g);if(Array.isArray(E))try{for(var O=(o=void 0,Xe(E)),A=O.next();!A.done;A=O.next()){var L=A.value;this.removeTerm(T,d,L)}}catch(R){o={error:R}}finally{try{A&&!A.done&&(l=O.return)&&l.call(O)}finally{if(o)throw o.error}}else E&&this.removeTerm(T,d,E)}}catch(R){r={error:R}}finally{try{_&&!_.done&&(s=C.return)&&s.call(C)}finally{if(r)throw r.error}}}}}catch(R){t={error:R}}finally{try{v&&!v.done&&(i=b.return)&&i.call(b)}finally{if(t)throw t.error}}this._storedFields.delete(d),this._documentIds.delete(d),this._idToShortId.delete(m),this._fieldLength.delete(d),this._documentCount-=1},n.prototype.removeAll=function(e){var t,i;if(e)try{for(var r=Xe(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 wf,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=Xe(e),o=s.next();!o.done;o=s.next()){var l=o.value;this.discard(l)}}catch(u){t={error:u}}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=Rf,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 mF(this,void 0,void 0,function(){var i,r,s,o,l,u,c,f,h,p,y,m,d,b,v,g,w,S,T,M,C,_,P,E,O;return gF(this,function(A){switch(A.label){case 0:if(i=this._dirtCount,!this.vacuumConditionsMet(t))return[3,10];r=e.batchSize||Cf.batchSize,s=e.batchWait||Cf.batchWait,o=1,A.label=1;case 1:A.trys.push([1,7,8,9]),l=Xe(this._index),u=l.next(),A.label=2;case 2:if(u.done)return[3,6];c=Ct(u.value,2),f=c[0],h=c[1];try{for(p=(_=void 0,Xe(h)),y=p.next();!y.done;y=p.next()){m=Ct(y.value,2),d=m[0],b=m[1];try{for(v=(E=void 0,Xe(b)),g=v.next();!g.done;g=v.next())w=Ct(g.value,1),S=w[0],!this._documentIds.has(S)&&(b.size<=1?h.delete(d):b.delete(S))}catch(L){E={error:L}}finally{try{g&&!g.done&&(O=v.return)&&O.call(v)}finally{if(E)throw E.error}}}}catch(L){_={error:L}}finally{try{y&&!y.done&&(P=p.return)&&P.call(p)}finally{if(_)throw _.error}}return this._index.get(f).size===0&&this._index.delete(f),o%r!==0?[3,4]:[4,new Promise(function(L){return setTimeout(L,s)})];case 3:A.sent(),A.label=4;case 4:o+=1,A.label=5;case 5:return u=l.next(),[3,2];case 6:return[3,9];case 7:return T=A.sent(),M={error:T},[3,9];case 8:try{u&&!u.done&&(C=l.return)&&C.call(l)}finally{if(M)throw M.error}return[7];case 9:this._dirtCount-=i,A.label=10;case 10:return[4,null];case 11:return A.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||Lf.minDirtCount,i=i||Lf.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=Xe(s),u=l.next();!u.done;u=l.next()){var c=Ct(u.value,2),f=c[0],h=c[1],p=h.score,y=h.terms,m=h.match,d=y.length||1,b={id:this._documentIds.get(f),score:p*d,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{u&&!u.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(Cx),o},n.prototype.autoSuggest=function(e,t){var i,r,s,o;t===void 0&&(t={}),t=at(at({},this._options.autoSuggestOptions),t);var l=new Map;try{for(var u=Xe(this.search(e,t)),c=u.next();!c.done;c=u.next()){var f=c.value,h=f.score,p=f.terms,y=p.join(" "),m=l.get(y);m!=null?(m.score+=h,m.count+=1):l.set(y,{score:h,terms:p,count:1})}}catch(T){i={error:T}}finally{try{c&&!c.done&&(r=u.return)&&r.call(u)}finally{if(i)throw i.error}}var d=[];try{for(var b=Xe(l),v=b.next();!v.done;v=b.next()){var g=Ct(v.value,2),m=g[0],w=g[1],h=w.score,p=w.terms,S=w.count;d.push({suggestion:m,terms:p,score:h/S})}}catch(T){s={error:T}}finally{try{v&&!v.done&&(o=b.return)&&o.call(b)}finally{if(s)throw s.error}}return d.sort(Cx),d},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(Af.hasOwnProperty(e))return Ef(Af,e);throw new Error('MiniSearch: unknown option "'.concat(e,'"'))},n.loadJS=function(e,t){var i,r,s,o,l,u,c=e.index,f=e.documentCount,h=e.nextId,p=e.documentIds,y=e.fieldIds,m=e.fieldLength,d=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 w=new n(t);w._documentCount=f,w._nextId=h,w._documentIds=Hc(p),w._idToShortId=new Map,w._fieldIds=y,w._fieldLength=Hc(m),w._avgFieldLength=d,w._storedFields=Hc(b),w._dirtCount=v||0,w._index=new wf;try{for(var S=Xe(w._documentIds),T=S.next();!T.done;T=S.next()){var M=Ct(T.value,2),C=M[0],_=M[1];w._idToShortId.set(_,C)}}catch(F){i={error:F}}finally{try{T&&!T.done&&(r=S.return)&&r.call(S)}finally{if(i)throw i.error}}try{for(var P=Xe(c),E=P.next();!E.done;E=P.next()){var O=Ct(E.value,2),A=O[0],L=O[1],R=new Map;try{for(var N=(l=void 0,Xe(Object.keys(L))),x=N.next();!x.done;x=N.next()){var I=x.value,B=L[I];g===1&&(B=B.ds),R.set(parseInt(I,10),Hc(B))}}catch(F){l={error:F}}finally{try{x&&!x.done&&(u=N.return)&&u.call(N)}finally{if(l)throw l.error}}w._index.set(A,R)}}catch(F){s={error:F}}finally{try{E&&!E.done&&(o=P.return)&&o.call(P)}finally{if(s)throw s.error}}return w},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=at(at(at({},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,u=o.processTerm,c=o.searchOptions,f=at(at({tokenize:l,processTerm:u},c),t),h=f.tokenize,p=f.processTerm,y=h(e).flatMap(function(b){return p(b)}).filter(function(b){return!!b}),m=y.map(TF(f)),d=m.map(function(b){return i.executeQuerySpec(b,f)});return this.combineResults(d,f.combineWith)},n.prototype.executeQuerySpec=function(e,t){var i,r,s,o,l=at(at({},this._options.searchOptions),t),u=(l.fields||this._options.fields).reduce(function(I,B){var F;return at(at({},I),(F={},F[B]=Ef(l.boost,B)||1,F))},{}),c=l.boostDocument,f=l.weights,h=l.maxFuzzy,p=l.bm25,y=at(at({},Ex.weights),f),m=y.fuzzy,d=y.prefix,b=this._index.get(e.term),v=this.termResults(e.term,e.term,1,b,u,c,p),g,w;if(e.prefix&&(g=this._index.atPrefix(e.term)),e.fuzzy){var S=e.fuzzy===!0?.2:e.fuzzy,T=S<1?Math.min(h,Math.round(e.term.length*S)):S;T&&(w=this._index.fuzzyGet(e.term,T))}if(g)try{for(var M=Xe(g),C=M.next();!C.done;C=M.next()){var _=Ct(C.value,2),P=_[0],E=_[1],O=P.length-e.term.length;if(O){w==null||w.delete(P);var A=d*P.length/(P.length+.3*O);this.termResults(e.term,P,A,E,u,c,p,v)}}}catch(I){i={error:I}}finally{try{C&&!C.done&&(r=M.return)&&r.call(M)}finally{if(i)throw i.error}}if(w)try{for(var L=Xe(w.keys()),R=L.next();!R.done;R=L.next()){var P=R.value,N=Ct(w.get(P),2),x=N[0],O=N[1];if(O){var A=m*P.length/(P.length+O);this.termResults(e.term,P,A,x,u,c,p,v)}}}catch(I){s={error:I}}finally{try{R&&!R.done&&(o=L.return)&&o.call(L)}finally{if(s)throw s.error}}return v},n.prototype.executeWildcardQuery=function(e){var t,i,r=new Map,s=at(at({},this._options.searchOptions),e);try{for(var o=Xe(this._documentIds),l=o.next();!l.done;l=o.next()){var u=Ct(l.value,2),c=u[0],f=u[1],h=s.boostDocument?s.boostDocument(f,"",this._storedFields.get(c)):1;r.set(c,{score:h,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=Tf),e.length===0)return new Map;var i=t.toLowerCase();return e.reduce(MF[i])||new Map},n.prototype.toJSON=function(){var e,t,i,r,s=[];try{for(var o=Xe(this._index),l=o.next();!l.done;l=o.next()){var u=Ct(l.value,2),c=u[0],f=u[1],h={};try{for(var p=(i=void 0,Xe(f)),y=p.next();!y.done;y=p.next()){var m=Ct(y.value,2),d=m[0],b=m[1];h[d]=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([c,h])}}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,u){var c,f,h,p,y;if(u===void 0&&(u=new Map),r==null)return u;try{for(var m=Xe(Object.keys(s)),d=m.next();!d.done;d=m.next()){var b=d.value,v=s[b],g=this._fieldIds[b],w=r.get(g);if(w!=null){var S=w.size,T=this._avgFieldLength[g];try{for(var M=(h=void 0,Xe(w.keys())),C=M.next();!C.done;C=M.next()){var _=C.value;if(!this._documentIds.has(_)){this.removeTerm(g,_,t),S-=1;continue}var P=o?o(this._documentIds.get(_),t,this._storedFields.get(_)):1;if(P){var E=w.get(_),O=this._fieldLength.get(_)[g],A=_F(E,S,this._documentCount,O,T,l),L=i*v*P*A,R=u.get(_);if(R){R.score+=L,AF(R.terms,e);var N=Ef(R.match,t);N?N.push(b):R.match[t]=[b]}else u.set(_,{score:L,terms:[e],match:(y={},y[t]=[b],y)})}}}catch(x){h={error:x}}finally{try{C&&!C.done&&(p=M.return)&&p.call(M)}finally{if(h)throw h.error}}}}}catch(x){c={error:x}}finally{try{d&&!d.done&&(f=m.return)&&f.call(m)}finally{if(c)throw c.error}}return u},n.prototype.addTerm=function(e,t,i){var r=this._index.fetch(i,Rx),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,Rx),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=Xe(Object.keys(this._fieldIds)),l=o.next();!l.done;l=o.next()){var u=l.value;if(this._fieldIds[u]===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(u,'". Removing a document after it has changed can corrupt the index!'),"version_conflict");return}}}catch(c){r={error:c}}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 u=this._storedFields.get(e);u==null&&this._storedFields.set(e,u={});try{for(var c=Xe(o),f=c.next();!f.done;f=c.next()){var h=f.value,p=l(t,h);p!==void 0&&(u[h]=p)}}catch(y){i={error:y}}finally{try{f&&!f.done&&(r=c.return)&&r.call(c)}finally{if(i)throw i.error}}}},n.wildcard=Symbol("*"),n}(),Ef=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)?n[e]:void 0},MF=(Da={},Da[Tf]=function(n,e){var t,i;try{for(var r=Xe(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 u=e.get(o),c=u.score,f=u.terms,h=u.match;l.score=l.score+c,l.match=Object.assign(l.match,h),Ax(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},Da[Tx]=function(n,e){var t,i,r=new Map;try{for(var s=Xe(e.keys()),o=s.next();!o.done;o=s.next()){var l=o.value,u=n.get(l);if(u!=null){var c=e.get(l),f=c.score,h=c.terms,p=c.match;Ax(u.terms,h),r.set(l,{score:u.score+f,terms:u.terms,match:Object.assign(u.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},Da[xF]=function(n,e){var t,i;try{for(var r=Xe(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},Da),SF={k:1.2,b:.7,d:.5},_F=function(n,e,t,i,r,s){var o=s.k,l=s.b,u=s.d,c=Math.log(1+(t-e+.5)/(e+.5));return c*(u+n*(o+1)/(n+o*(1-l+l*i/r)))},TF=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}}},Af={idField:"id",extractField:function(n,e){return n[e]},tokenize:function(n){return n.split(CF)},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},Ex={combineWith:Tf,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:SF},EF={combineWith:Tx,prefix:function(n,e,t){return e===t.length-1}},Cf={batchSize:1e3,batchWait:10},Rf={minDirtFactor:.1,minDirtCount:20},Lf=at(at({},Cf),Rf),AF=function(n,e){n.includes(e)||n.push(e)},Ax=function(n,e){var t,i;try{for(var r=Xe(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}}},Cx=function(n,e){var t=n.score,i=e.score;return i-t},Rx=function(){return new Map},Hc=function(n){var e,t,i=new Map;try{for(var r=Xe(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},CF=/[\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;class RF{constructor(){this._searchEngine=new wF({fields:["path","name"],storeFields:["path"],tokenize:(e,t)=>e.split(/[\s/]+/)}),this.idMaps={}}addZincObject(e,t){const i=e.getRegion().getFullPath();let r=e.groupName,s=i?`${i}/${e.groupName}`:e.groupName;r=r.replaceAll('"',""),s=s.replaceAll('"',"");const o={path:s,name:r,id:t};this._searchEngine.add(o),this.idMaps[t]={path:s,zincObject:e}}removeZincObject(e,t){const i=e.getRegion().getFullPath();let r=e.groupName,s=i?`${i}/${e.groupName}`:e.groupName;r=r.replaceAll('"',""),s=s.replaceAll('"',"");const o={path:s,name:r,id:t};this._searchEngine.remove(o),delete this.idMaps[t]}addRegion(e,t){let i=e.getFullPath(),r=e.getName();i=i.replaceAll('"',""),r=r.replaceAll('"',"");const s={path:i,name:r,id:t};this._searchEngine.add(s),this.idMaps[t]={path:i,zincObject:e}}clearResults(){this._}removeAll(){this._searchEngine.removeAll(),this.idMaps={}}auto_suggest(e){let t=[];e.length>2&&["'",'"'].includes(e.slice(0,1))?(e=e.replaceAll(e.slice(0,1),""),t=this._searchEngine.search(e,{prefix:!0,combineWith:"AND"})):e.length>1&&(t=this._searchEngine.search(e,{prefix:!0}));const i=[];t.forEach(o=>{o.id in this.idMaps&&i.push(this.idMaps[o.id].path)});const r=[...new Set(i)],s=[];return r.forEach(o=>s.push({suggestion:'"'+o+'"'})),s}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=FB(e),i}search(e){let t;e.length>2&&["'",'"'].includes(e.slice(0,1))?(e=e.replaceAll(e.slice(0,1),""),t=this._searchEngine.search(e,{prefix:!0,combineWith:"AND"})):e.length>1&&(t=this._searchEngine.search(e,{prefix:!0}));const i=[];return t.forEach(r=>{r.id in this.idMaps&&i.push(this.idMaps[r.id].zincObject)}),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 LF={name:"ScaffoldVuer",components:{Button:bs,Col:Ln,Loading:MR,Option:ws,Popover:vl,Row:Zn,Select:xs,Slider:Sn,TabPane:Mg,Tabs:wg,MapSvgIcon:Pf.MapSvgIcon,MapSvgSpriteColor:Pf.MapSvgSpriteColor,PrimitiveControls:px,ScaffoldTooltip:yx,ElIconWarningFilled:kp,ElIconArrowDown:pu,ElIconArrowLeft:Fi,DrawToolbar:Fa.DrawToolbar,ScaffoldTreeControls:mx},setup(n){let e=a.inject("$annotator");return e||(e=a.markRaw(new Lx.AnnotationService(`${n.flatmapAPI}annotator`)),a.provide("$annotator",e)),{annotator:e}},props:{annotationSidebar:{type:Boolean,default:!1},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/"}},provide(){return{flatmapAPI:this.flatmapAPI,scaffoldUrl:this.url,boundingDims:this.boundingDims}},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",previousMarkerLabels:a.markRaw({}),viewingMode:"Exploration",viewingModes:{Exploration:"View and explore detailed visualization of 3D scaffolds",Annotation:["View feature annotations","Add, comment on and view feature annotations"]},openMapRef:void 0,backgroundIconRef:void 0,annotationFeature:{},offlineAnnotationEnabled:!1,offlineAnnotations:a.markRaw([]),authorisedUser:void 0,toolbarOptions:["Delete","Edit","Point","LineString"],existDrawnFeatures:a.markRaw([]),activeDrawTool:void 0,activeDrawMode:void 0,boundingDims:{centre:[0,0,0],size:[1,1,1]},lastSelected:a.markRaw({region:"",group:"",isSearch:!1})}},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){for(const[e,t]of Object.entries(this.previousMarkerLabels))this.setMarkerModeForObjectsWithName(e,t,"off");for(const[e,t]of Object.entries(n))this.setMarkerModeForObjectsWithName(e,t,"on");this.previousMarkerLabels=a.markRaw({...n})}},beforeCreate:function(){this.$module=new bx,this.selectedObjects=[],this.hoveredObjects=[],this.currentBackground="white",this._currentURL=void 0,this.availableBackground=["white","black","lightskyblue"],this.$_searchIndex=new RF},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 uF;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:{...jc.mapState(gx,["userToken"]),annotationDisplay:function(){return this.viewingMode==="Annotation"&&this.tData.active===!0&&this.activeDrawMode!=="Point"&&this.activeDrawMode!=="LineString"},modeDescription:function(){let n=this.viewingModes[this.viewingMode];return this.viewingMode==="Annotation"?this.authorisedUser?n[1]:n[0]:n}},methods:{enableAxisDisplay:function(n,e){this.$module.scene&&this.$module.scene.enableAxisDisplay(n,e)},createAxisDisplay:function(n){this.$module.scene&&this.$module.scene.createAxisDisplay(n)},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)},removeFromOfflineAnnotation:function(n,e){for(let t=0;t<this.offlineAnnotations.length;t++){const i=this.offlineAnnotations[t];if(i.region===n&&i.group===e){this.offlineAnnotations.splice(t,1);return}}},zincObjectRemoved:function(n){if(this.$module.scene){const e=n.groupName;n.region.findObjectsWithGroupName(e,!1).length===0&&this.$_searchIndex.removeZincObject(n,n.uuid)}},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=ox(this.annotator,this.userToken,t,n,e,this.url,i);if(this.existDrawnFeatures=a.markRaw(this.existDrawnFeatures.filter(s=>s.id!==r.item.id)),this.existDrawnFeatures.push(r.feature),this.offlineAnnotationEnabled){r.group=e;let s=n;s.slice(-1)==="/"&&(s=s.slice(0,-1)),r.region=s,this.offlineAnnotations=JSON.parse(sessionStorage.getItem("anonymous-annotation"))||[],this.offlineAnnotations.push(r),sessionStorage.setItem("anonymous-annotation",JSON.stringify(this.offlineAnnotations))}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),this.annotationSidebar&&this.$emit("annotation-close")},confirmComment:function(n){if(this._editingZincObject){let e=n;this._editingZincObject.isEditable&&(this.existDrawnFeatures=a.markRaw(this.existDrawnFeatures.filter(t=>t.id!==e.item.id)),this.existDrawnFeatures.push(n.feature)),this.offlineAnnotationEnabled&&(e.group=this._editingZincObject.groupName,e.region=this._editingZincObject.region.getFullPath(),this.offlineAnnotations=JSON.parse(sessionStorage.getItem("anonymous-annotation"))||[],this.offlineAnnotations.push(e),sessionStorage.setItem("anonymous-annotation",JSON.stringify(this.offlineAnnotations)))}},confirmDelete:function(){var n;if((n=this._editingZincObject)!=null&&n.isEditable){const e=this._editingZincObject.region.getFullPath()+"/",t=this._editingZincObject.groupName,i=ox(this.annotator,this.userToken,this._editingZincObject,e,t,this.url,"Deleted");i&&(this.existDrawnFeatures=a.markRaw(this.existDrawnFeatures.filter(s=>s.id!==i.item.id)),this.$module.scene.getRootRegion().findChildFromPath(e).removeZincObject(this._editingZincObject),this.offlineAnnotationEnabled&&(this.offlineAnnotations=JSON.parse(sessionStorage.getItem("anonymous-annotation"))||[],this.offlineAnnotations=this.offlineAnnotations.filter(s=>s.item.id!==i.item.id),sessionStorage.setItem("anonymous-annotation",JSON.stringify(this.offlineAnnotations))))}this.cancelCreate()},onTooltipHide:function(){this.createData.toBeConfirmed&&!this.annotationSidebar&&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&&(DB(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.cancelCreate(),this.activeDrawMode=e,this.createData.shape="",this.$module.selectObjectOnPick=!0):n==="tool"&&(this.activeDrawTool=e,this.createData.shape=this.activeDrawTool?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=wo(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){const e=n[0].extraData.worldCoords;if(e&&(this.createData.shape==="LineString"||this.createData.editingIndex>-1)&&this.createData.points.length===1)if(this.showRegionTooltipWithAnnotations(n,!0,!1),this.tData.x=50,this.tData.y=200,this._tempLine){const t=this._tempLine.geometry.getAttribute("position");t.setXYZ(1,e[0],e[1],e[2]),t.needsUpdate=!0}else this._tempLine=this.$module.scene.addTemporaryLines([this.createData.points[0],e],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.createData.toBeConfirmed=!0,this.showRegionTooltipWithAnnotations(e,!0,!1),this.tData.x=50,this.tData.y=200,this._tempPoint=this.$module.scene.addTemporaryPoints([n],16776960))},drawLine:function(n,e){this.createData.toBeConfirmed===!1&&(this.createData.points.length===1?(this.createData.points.push(n),this.createData.toBeConfirmed=!0,this.showRegionTooltipWithAnnotations(e,!0,!1),this.tData.x=50,this.tData.y=200):(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.authorisedUser||this.offlineAnnotationEnabled)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=PB(e);t&&this.activateEditingMode(t.zincObject,t.faceIndex,t.vertexIndex,t.point)}else if(this.activeDrawMode==="Delete"){const t=OB(e);t&&(this.createData.toBeDeleted=!0,this._editingZincObject=t)}this.activeDrawMode!=="Point"&&this.activeDrawMode!=="LineString"?this.showRegionTooltipWithAnnotations(e.identifiers,!0,!1):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=[];(n.eventType==1||n.eventType==2)&&(n.identifiers.forEach(s=>{if(s){let o=s.data.id?s.data.id:s.data.group;e.push(o)}}),t=n.zincObjects);let i,r;if(n.identifiers.length>0&&n.identifiers[0]&&(i=n.identifiers[0].data.id?n.identifiers[0].data.id:n.identifiers[0].data.group,n.identifiers[0].data.region&&(r=n.identifiers[0].data.region)),n.eventType==1)if(this.viewingMode==="Annotation"){this.tData.label=i,this.tData.region=r;const s=IB(n);if(this._editingZincObject=s,s){const o=this._editingZincObject.region.getFullPath()+"/",l=this._editingZincObject.groupName;this.annotationFeature=sx(this._editingZincObject,o,l,this.url,"").feature}this.activateAnnotationMode(e,n)}else this.$refs.scaffoldTreeControls&&(e.length>0?(this.$refs.scaffoldTreeControls.updateActiveUI(t),this.updatePrimitiveControls(t)):(this.hideRegionTooltip(),this.$refs.scaffoldTreeControls.removeActive(!1))),n.identifiers.length===1?(this.lastSelected.isSearch=!1,this.lastSelected.region=r,this.lastSelected.group=n.identifiers[0].data.group):n.identifiers.length===0&&(this.lastSelected.isSearch=!1,this.lastSelected.region="",this.lastSelected.group=""),this.$emit("scaffold-selected",n.identifiers);else if(n.eventType==2)this.selectedObjects.length===0&&(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]&&n.identifiers[0].coords&&(this.tData.active=!1,(this.viewingMode!=="Annotation"||!this.annotationSidebar)&&(this.tData.visible=!0),this.tData.label=i,this.tData.region=r,this.tData.x=n.identifiers[0].coords.x,this.tData.y=n.identifiers[0].coords.y,this.createEditTemporaryLines(n.identifiers)),this.$emit("scaffold-highlighted",n.identifiers));else if(n.eventType==3&&n.identifiers.length>0&&n.identifiers[0]){if(n.identifiers[0].coords){const s=this.$refs.scaffoldContainer.getBoundingClientRect();this.tData.x=n.identifiers[0].coords.x-s.left,this.tData.y=n.identifiers[0].coords.y-s.top}this.createEditTemporaryLines(n.identifiers)}}},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=wo(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=rx(this.$module.scene,n);if(i&&i.objects.length>0)if(this.annotationSidebar){const s=[{featureId:(this.tData.region?this.tData.region+"/":"")+this.tData.label,resourceId:this.url,resource:this.url,feature:this.annotationFeature,offline:this.offlineAnnotationEnabled}];this.$emit("annotation-open",{annotationEntry:s,createData:this.createData,confirmCreate:this.confirmCreate,cancelCreate:this.cancelCreate,confirmDelete:this.confirmDelete,confirmComment:this.confirmComment});return}else return this.showRegionTooltipWithObjects(i.label,i.objects,i.regionPath,e,t)}return this.hideRegionTooltip(),!1},clearAnnotationFeature:function(){const n=this.getOfflineAnnotations();this.existDrawnFeatures.map(t=>decodeURIComponent(t.id).split("/").pop()).forEach(t=>{const i=this.$module.scene.findObjectsWithGroupName(t,!1);if(i&&i.length){const r=i[0].region.getFullPath()+"/";this.$module.scene.getRootRegion().findChildFromPath(r).removeZincObject(i[0])}}),this.$refs.scaffoldTreeControls.removeRegion("__annotation"),this.offlineAnnotations=n},addAnnotationFeature:async function(){let n;if(this.offlineAnnotationEnabled)this.offlineAnnotations=JSON.parse(sessionStorage.getItem("anonymous-annotation"))||[],n=this.offlineAnnotations.filter(e=>e.resource===this.url&&e.feature.properties.drawn).map(e=>e.feature);else{n=[];const e=await ax(this.annotator,this.userToken,this.url);e&&e.features&&(n=[...e.features]);const t=await ax(this.annotator,this.userToken,encodeURIComponent(this.url));t&&t.features&&(n=[...n,...t.features])}this.existDrawnFeatures=a.markRaw(n),lx(this.$module.scene,n)},changeViewingMode:function(n){this.$module&&(n&&(this.viewingMode=n),this.clearAnnotationFeature(),this.viewingMode==="Annotation"?(this.loading=!0,this.annotator.authenticate(this.userToken).then(e=>{e.name&&e.email&&e.canUpdate?(this.authorisedUser=e,this.offlineAnnotationEnabled=!1):(this.authorisedUser=void 0,this.offlineAnnotationEnabled=!0),this.addAnnotationFeature(),this.loading=!1})):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();wo(r,[n],"",!0).forEach(l=>l.setMarkerMode(t,i))}},setMarkerModeWithAnnotations:function(n,e){if(this.$module.scene){const t=rx(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.lastSelected.region="",this.lastSelected.group="",this.lastSelected.isSearch=!0,this.objectSelected([],!0),!1;{this.lastSelected.region="",this.lastSelected.group=n,this.lastSelected.isSearch=!0;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()},restoreSettings:function(n){if(n){if(n.viewport)this.$module.scene.getZincCameraControls().setCurrentCameraSettings(n.viewport);else if(n.viewURL&&n.viewURL!==""){const t=new URL(n.viewURL,this.url);this.$module.scene.loadViewURL(t)}else n.region&&n.region!==""&&this.viewRegion(n.region);n.visibility&&this.$nextTick(()=>{this.$refs.scaffoldTreeControls.setState(n.visibility)}),n.background&&this.backgroundChangeCallback(n.background),n.offlineAnnotations&&sessionStorage.setItem("anonymous-annotation",n.offlineAnnotations),n.viewingMode&&this.changeViewingMode(n.viewingMode);const e=n.search;e&&e.group&&(e.isSearch?this.search(e.group,!0):this.changeActiveByName(e.group,e.region,!0))}},downloadErrorCallback:function(){return n=>{this.$emit("on-error",n)}},setURLFinishCallback:function(n){return()=>{this.offlineAnnotations.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.$nextTick(()=>this.restoreSettings(n)),this.isReady=!0}},getState:function(){let n={format:this.fileFormat,url:this._currentURL,viewport:void 0,visibility:void 0,background:this.currentBackground,viewingMode:this.viewingMode};if(this.$refs.scaffoldTreeControls&&(n.visibility=this.$refs.scaffoldTreeControls.getState()),this.$module.scene){let e=this.$module.scene.getZincCameraControls();n.viewport=e.getCurrentViewport()}return this.lastSelected&&this.lastSelected.group&&(n.search={...this.lastSelected}),this.offlineAnnotationEnabled&&(n.offlineAnnotations=sessionStorage.getItem("anonymous-annotation")),n},setState:function(n){n&&(n.url&&n.url!==this._currentURL?this.setURLAndState(n.url,{fileFormat:n.fileFormat,viewport:n.viewport,visibility:n.visibility,background:n.background,viewingMode:n.viewingMode,search:n.search,offlineAnnotations:n.offlineAnnotations}):(n.background||n.search||n.viewport||n.viewingMode||n.visibility)&&(this.isReady&&this.$module.scene?this.restoreSettings(n):this.$module.setFinishDownloadCallback(this.setURLFinishCallback({background:n.background,viewingMode:n.viewingMode,viewport:n.viewport,visibility:n.visibility,search:n.search,offlineAnnotations:n.offlineAnnotations}))))},exportGLTF:function(n){return this.$module.scene.exportGLTF(n)},getOfflineAnnotations:function(){return[...this.offlineAnnotations]},importOfflineAnnotations:function(n){if(this.offlineAnnotationEnabled){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=s;t.item.id=l,t.feature.id=l});const e=n.map(t=>t.feature);lx(this.$module.scene,e),n.forEach(t=>{this.offlineAnnotations.push({...t})}),sessionStorage.setItem("anonymous-annotation",JSON.stringify(this.offlineAnnotations))}},setURLAndState:function(n,e){n!=this._currentURL&&(e!=null&&e.format&&(this.fileFormat=e.format),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.setDownloadErrorCallback(this.downloadErrorCallback()),this.$module.setFinishDownloadCallback(this.setURLFinishCallback({background:e==null?void 0:e.background,region:this.region,search:e==null?void 0:e.search,viewingMode:e==null?void 0:e.viewingMode,viewURL:this.viewURL,viewport:e==null?void 0:e.viewport,visibility:e==null?void 0:e.visibility,offlineAnnotations:e==null?void 0:e.offlineAnnotations})),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.markerLabels))this.setMarkerModeForObjectsWithName(n,e,"on")}}},PF={ref:"scaffoldContainer",class:"scaffold-container","element-loading-text":"Loading...","element-loading-background":"rgba(0, 0, 0, 0.3)"},IF={class:"primitive-controls-box"},OF={class:"animation-data"},NF={class:"purple"},DF={class:"animation-data"},BF={class:"purple"},FF={class:"animation-data"},VF={class:"bottom-right-control"},kF={style:{"margin-bottom":"2px"}},zF={key:0,class:"viewing-mode-title"},UF=["onClick"],GF=["onClick"];function HF(n,e,t,i,r,s){const o=a.resolveComponent("map-svg-sprite-color"),l=yx,u=a.resolveComponent("DrawToolbar"),c=kp,f=ht,h=vl,p=mx,y=px,m=a.resolveComponent("map-svg-icon"),d=Sn,b=Zn,v=Mg,g=ws,w=xs,S=wg,T=bs,M=Qu;return a.withDirectives((a.openBlock(),a.createElementBlock("div",PF,[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,annotationFeature:n.annotationFeature,offlineAnnotationEnabled:n.offlineAnnotationEnabled,onConfirmCreate:e[0]||(e[0]=C=>s.confirmCreate(C)),onCancelCreate:e[1]||(e[1]=C=>s.cancelCreate()),onConfirmComment:e[2]||(e[2]=C=>s.confirmComment(C)),onConfirmDelete:e[3]||(e[3]=C=>s.confirmDelete()),onTooltipHide:e[4]||(e[4]=C=>s.onTooltipHide())},null,8,["createData","label","region","visible","x","y","annotationDisplay","annotationFeature","offlineAnnotationEnabled"]),a.createElementVNode("div",{id:"organsDisplayArea",ref:"display",tabindex:"-1",style:{height:"100%",width:"100%"},onKeydown:e[5]||(e[5]=a.withKeys((...C)=>s.backgroundChangeCallback&&s.backgroundChangeCallback(...C),["66"]))},null,544),a.withDirectives(a.createElementVNode("div",null,[n.viewingMode==="Annotation"&&(n.authorisedUser||n.offlineAnnotationEnabled)?(a.openBlock(),a.createBlock(u,{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(h,{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[6]||(e[6]=C=>s.showHelpText(7)),onMouseout:e[7]||(e[7]=C=>s.hideHelpText(7))},[a.createVNode(f,null,{default:a.withCtx(()=>[a.createVNode(c)]),_:1}),e[27]||(e[27]=a.createElementVNode("span",{class:"message-text"},"Beta",-1))],32)):a.createCommentVNode("",!0)]),_:1},8,["visible","content"])):a.createCommentVNode("",!0),t.displayLatestChanges?(a.openBlock(),a.createBlock(h,{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[8]||(e[8]=C=>s.showHelpText(8)),onMouseout:e[9]||(e[9]=C=>s.hideHelpText(8))},[a.createVNode(f,null,{default:a.withCtx(()=>[a.createVNode(c)]),_:1}),e[28]||(e[28]=a.createElementVNode("span",{class:"message-text"},"What's new?",-1))],32)):a.createCommentVNode("",!0)]),_:1},8,["visible","content"])):a.createCommentVNode("",!0),a.createVNode(h,{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",IF,[a.createVNode(y,{ref:"primitiveControls",createData:n.createData,onPrimitivesUpdated:s.primitivesUpdated},null,8,["createData","onPrimitivesUpdated"])]),n.timeVarying?(a.openBlock(),a.createBlock(h,{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(S,{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[10]||(e[10]=C=>s.play(!1))})):(a.openBlock(),a.createBlock(m,{key:1,icon:"play",class:"video-button icon-button",onClick:e[11]||(e[11]=C=>s.play(!0))})),a.createVNode(d,{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[12]||(e[12]=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",OF,[e[29]||(e[29]=a.createTextVNode(" Original duration: ")),a.createElementVNode("div",NF,a.toDisplayString(n.orginalDuration),1)]),a.createElementVNode("div",DF,[e[30]||(e[30]=a.createTextVNode(" Animation duration: ")),a.createElementVNode("div",BF,a.toDisplayString(n.animateDuration),1)]),a.createElementVNode("div",FF,[e[31]||(e[31]=a.createTextVNode(" Playback speed ")),a.createVNode(w,{teleported:!0,"model-value":n.currentSpeed,placeholder:"Select",class:"scaffold-select-box speed","popper-class":"scaffold_viewer_dropdown",onChange:e[13]||(e[13]=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",VF,[a.createVNode(h,{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[14]||(e[14]=C=>s.zoomIn()),onMouseover:e[15]||(e[15]=C=>s.showHelpText(0)),onMouseout:e[16]||(e[16]=C=>s.hideHelpText(0))})]),_:1},8,["visible"]),a.createVNode(h,{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[17]||(e[17]=C=>s.zoomOut()),onMouseover:e[18]||(e[18]=C=>s.showHelpText(1)),onMouseout:e[19]||(e[19]=C=>s.hideHelpText(1))})]),_:1},8,["visible"]),a.createVNode(h,{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[20]||(e[20]=C=>s.fitWindow()),onMouseover:e[21]||(e[21]=C=>s.showHelpText(2)),onMouseout:e[22]||(e[22]=C=>s.hideHelpText(2))})]),default:a.withCtx(()=>[e[32]||(e[32]=a.createElementVNode("div",null,[a.createTextVNode(" Fit to "),a.createElementVNode("br"),a.createTextVNode(" window ")],-1))]),_:1},8,["visible"])]),n.openMapRef?(a.openBlock(),a.createBlock(h,{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(T,{type:"primary",plain:"",onClick:_=>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(h,{ref:"backgroundPopover","virtual-ref":n.backgroundIconRef,placement:"top-start",width:"128",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(()=>e[33]||(e[33]=[a.createTextVNode("Viewing Mode")])),_:1}),a.createVNode(b,{class:"backgroundControl"},{default:a.withCtx(()=>[a.createElementVNode("div",kF,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.viewingModes,(C,_,P)=>(a.openBlock(),a.createElementBlock(a.Fragment,{key:_},[_===n.viewingMode?(a.openBlock(),a.createElementBlock("span",zF,[a.createElementVNode("b",null,a.toDisplayString(_),1)])):(a.openBlock(),a.createElementBlock("span",{key:1,class:"viewing-mode-unselected",onClick:E=>s.changeViewingMode(_)},a.toDisplayString(_),9,UF))],64))),128))]),a.createVNode(b,{class:"viewing-mode-description"},{default:a.withCtx(()=>[a.createTextVNode(a.toDisplayString(s.modeDescription),1)]),_:1}),n.viewingMode==="Annotation"&&n.offlineAnnotationEnabled?(a.openBlock(),a.createBlock(b,{key:0,class:"viewing-mode-description"},{default:a.withCtx(()=>e[34]||(e[34]=[a.createTextVNode(" (Anonymous annotate) ")])),_:1})):a.createCommentVNode("",!0)]),_:1}),a.createVNode(b,{class:"backgroundSpacer"}),a.createVNode(b,{class:"backgroundText"},{default:a.withCtx(()=>e[35]||(e[35]=[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:_=>s.backgroundChangeCallback(C)},null,10,GF))),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(h,{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(h,{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]])])),[[M,n.loading]])}const WF=Pi(LF,[["render",HF],["__scopeId","data-v-878f81c4"]]);Nt.ScaffoldVuer=WF,Object.defineProperty(Nt,Symbol.toStringTag,{value:"Module"})});
|
|
3453
|
+
}`};class f extends c.ShaderMaterial{constructor(p){super({type:"LineMaterial",uniforms:c.UniformsUtils.clone(c.ShaderLib.line.uniforms),vertexShader:c.ShaderLib.line.vertexShader,fragmentShader:c.ShaderLib.line.fragmentShader,clipping:!0}),Object.defineProperties(this,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(m){this.uniforms.diffuse.value=m}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(m){this.uniforms.linewidth.value=m}},dashed:{enumerable:!0,get:function(){return"USE_DASH"in this.defines},set(y){!!y!="USE_DASH"in this.defines&&(this.needsUpdate=!0),y===!0?this.defines.USE_DASH="":delete this.defines.USE_DASH}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(m){this.uniforms.dashScale.value=m}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(m){this.uniforms.dashSize.value=m}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(m){this.uniforms.dashOffset.value=m}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(m){this.uniforms.gapSize.value=m}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(m){this.uniforms.opacity.value=m}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(m){this.uniforms.resolution.value.copy(m)}},alphaToCoverage:{enumerable:!0,get:function(){return"ALPHA_TO_COVERAGE"in this.defines},set:function(m){!!m!="ALPHA_TO_COVERAGE"in this.defines&&(this.needsUpdate=!0),m===!0?(this.defines.ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.ALPHA_TO_COVERAGE,this.extensions.derivatives=!1)}}}),this.setValues(p)}}f.prototype.isLineMaterial=!0},(o,l,u)=>{var c=u(4);l.Minimap=function(f){var h=f;this.camera=new c.OrthographicCamera(-.5,.5,.5,-.5,.01,10),this.helper=void 0;var p=new c.BufferGeometry,y=new Float32Array([-1,-1,1,1,-1,1,1,1,1,1,1,1,-1,1,1,-1,-1,1]),m=new c.BufferAttribute(y,3);p.setAttribute("position",m);var d=new c.MeshBasicMaterial({color:3355443,depthTest:!1,depthWrite:!1,opacity:.5,transparent:!0});this.mask=new c.Mesh(p,d);var b=new c.Box3,v=new c.Vector3;this.getDiffFromNormalised=(w,S)=>{b.setFromBufferAttribute(m).getCenter(v);var T=v.clone().project(this.camera),M=new c.Vector3(w,S,T.z).unproject(this.camera);return M.sub(v)};var g=(w,S)=>{h.camera.near&&(this.camera.near=h.camera.near),S.farPlane&&(this.camera.far=S.farPlane),S.eyePosition&&this.camera.position.set(S.eyePosition[0],S.eyePosition[1],S.eyePosition[2]),S.upVector&&this.camera.up.set(S.upVector[0],S.upVector[1],S.upVector[2]),S.targetPosition&&this.camera.lookAt(new c.Vector3(S.targetPosition[0],S.targetPosition[1],S.targetPosition[2])),this.camera.zoom=1/w,this.camera.updateProjectionMatrix()};this.getBoundary=()=>{var w=new c.Vector3().copy(h.camera.target).project(h.camera),S=new c.Vector3(-1,-1,w.z).unproject(h.camera),T=new c.Vector3(1,-1,w.z).unproject(h.camera),M=new c.Vector3(1,1,w.z).unproject(h.camera),C=new c.Vector3(-1,1,w.z).unproject(h.camera);m.copyVector3sArray([S,T,M,M,C,S]),m.needsUpdate=!0},this.updateCamera=()=>{this.getBoundary();var w=h.getZincCameraControls(),S=h.getBoundingBox();if(S){var T=S.min.distanceTo(S.max),M=T/2,C=(S.min.x+S.max.x)/2,_=(S.min.y+S.max.y)/2,P=(S.min.z+S.max.z)/2,E=w.getViewportFromCentreAndRadius(C,_,P,M,40,M*4);g(T,E)}}}},(o,l,u)=>{var c=u(4),f=u(51)(c),h=u(3).Geometry,p=u(52),y=u(53).default,m=c.BufferGeometryLoader,d=function(b){var v;b&&b.isGeometry&&(v=b);var g=void 0,w=void 0,S=!1,T=void 0,M=O=>{var A=v.getMorph().material.clone();A.morphTargets=!1;var L=new h,R=new m,N=R.parse(O),x=new c.Mesh(N.geometry,A);return L.geometry=x.geometry,x.userData=L,L.setMorph(x),L},C=O=>{switch(O.data.action){case"message":console.log(O.data.message);break;case"result":var A=new d(M(O.data.object));T&&T(A),T=void 0,S=!1;break;default:throw"Cannot handle specified action."}},_=O=>{if(p!==void 0&&(w=p(54)),!w)g=new(u(55)).GeometryCSGInternal(O);else if(O&&O.isGeometry){var A=O.getMorph(),L=A.geometry.clone().applyMatrix(A.matrix).toJSON();w.addEventListener("message",function(R){C(R)}),w.postMessage({action:"initialise",object:L})}};this.getHostGeometry=()=>{var O=new f(v.getMorph());return new P(O)},this.getGeometry=()=>v;var P=O=>{var A=v.getMorph().material.clone();A.morphTargets=!1;var L=O.toMesh(A),R=new h;return R.geometry=L.geometry,L.userData=R,R.setMorph(L),R};this.setCSG=O=>{g.setCSG(O)};var E=(O,A,L,R)=>{if(S)R("On progress");else{var N=O.getMorph(),x=N.geometry.clone().applyMatrix(N.matrix).toJSON();T=L,S=!0,w.postMessage({action:A,object:x})}};this.intersect=O=>new y((A,L)=>{if(w)E(O,"intersect",A,L);else{var R=g.intersect(O),N=new d(P(R));N.setCSG(R),A(N)}}),this.subtract=O=>new y((A,L)=>{if(w)E(O,"intersect",A,L);else{var R=g.subtract(O),N=new d(P(R));N.setCSG(R),A(N)}}),this.union=O=>new y((A,L)=>{if(w)E(O,"intersect",A,L);else{var R=g.union(O),N=new d(P(R));N.setCSG(R),A(N)}}),this.terminateWorker=()=>{w&&w.terminate()},_(b)};l.GeometryCSG=d},o=>{var l=1e-5,u=0,c=1,f=2,h=3;o.exports=function(p){var y=function(m){var d,b,v,g,w,S,T,M=[];if(m.isBufferGeometry&&(m=new p.Geometry().fromBufferGeometry(m)),m instanceof p.Geometry)this.matrix=new p.Matrix4;else if(m.isMesh)m.updateMatrix(),this.matrix=m.matrix.clone(),m=m.geometry,m.isBufferGeometry&&(m=new p.Geometry().fromBufferGeometry(m)),m.mergeVertices(),m.computeVertexNormals(!1);else{if(m instanceof y.Node)return this.tree=m,this.matrix=new p.Matrix4,this;throw"ThreeBSP: Given geometry is unsupported"}for(d=0,b=m.faces.length;d<b;d++)v=m.faces[d],w=m.faceVertexUvs[0][d],T=new y.Polygon,v instanceof p.Face3?(g=m.vertices[v.a],S=w?new p.Vector2(w[0].x,w[0].y):null,g=new y.Vertex(g.x,g.y,g.z,v.vertexNormals[0],S),g.applyMatrix4(this.matrix),T.vertices.push(g),g=m.vertices[v.b],S=w?new p.Vector2(w[1].x,w[1].y):null,g=new y.Vertex(g.x,g.y,g.z,v.vertexNormals[2],S),g.applyMatrix4(this.matrix),T.vertices.push(g),g=m.vertices[v.c],S=w?new p.Vector2(w[2].x,w[2].y):null,g=new y.Vertex(g.x,g.y,g.z,v.vertexNormals[2],S),g.applyMatrix4(this.matrix),T.vertices.push(g)):(p.Face4,g=m.vertices[v.a],S=w?new p.Vector2(w[0].x,w[0].y):null,g=new y.Vertex(g.x,g.y,g.z,v.vertexNormals[0],S),g.applyMatrix4(this.matrix),T.vertices.push(g),g=m.vertices[v.b],S=w?new p.Vector2(w[1].x,w[1].y):null,g=new y.Vertex(g.x,g.y,g.z,v.vertexNormals[1],S),g.applyMatrix4(this.matrix),T.vertices.push(g),g=m.vertices[v.c],S=w?new p.Vector2(w[2].x,w[2].y):null,g=new y.Vertex(g.x,g.y,g.z,v.vertexNormals[2],S),g.applyMatrix4(this.matrix),T.vertices.push(g),g=m.vertices[v.d],S=w?new p.Vector2(w[3].x,w[3].y):null,g=new y.Vertex(g.x,g.y,g.z,v.vertexNormals[3],S),g.applyMatrix4(this.matrix),T.vertices.push(g)),T.calculateProperties(),M.push(T);this.tree=new y.Node(M)};return y.prototype.subtract=function(m){var d=this.tree.clone(),b=m.tree.clone();return d.invert(),d.clipTo(b),b.clipTo(d),b.invert(),b.clipTo(d),b.invert(),d.build(b.allPolygons()),d.invert(),d=new y(d),d.matrix=this.matrix,d},y.prototype.union=function(m){var d=this.tree.clone(),b=m.tree.clone();return d.clipTo(b),b.clipTo(d),b.invert(),b.clipTo(d),b.invert(),d.build(b.allPolygons()),d=new y(d),d.matrix=this.matrix,d},y.prototype.intersect=function(m){var d=this.tree.clone(),b=m.tree.clone();return d.invert(),b.clipTo(d),b.invert(),d.clipTo(b),b.clipTo(d),d.build(b.allPolygons()),d.invert(),d=new y(d),d.matrix=this.matrix,d},y.prototype.toGeometry=function(){var m,d,b,v,g,w,S,T,M,C,_=new p.Matrix4().getInverse(this.matrix),P=new p.Geometry,E=this.tree.allPolygons(),O=E.length,A={};for(m=0;m<O;m++)for(b=E[m],v=b.vertices.length,d=2;d<v;d++)C=[],T=b.vertices[0],C.push(new p.Vector2(T.uv.x,T.uv.y)),T=new p.Vector3(T.x,T.y,T.z),T.applyMatrix4(_),typeof A[T.x+","+T.y+","+T.z]>"u"?(P.vertices.push(T),g=A[T.x+","+T.y+","+T.z]=P.vertices.length-1):g=A[T.x+","+T.y+","+T.z],T=b.vertices[d-1],C.push(new p.Vector2(T.uv.x,T.uv.y)),T=new p.Vector3(T.x,T.y,T.z),T.applyMatrix4(_),typeof A[T.x+","+T.y+","+T.z]>"u"?(P.vertices.push(T),w=A[T.x+","+T.y+","+T.z]=P.vertices.length-1):w=A[T.x+","+T.y+","+T.z],T=b.vertices[d],C.push(new p.Vector2(T.uv.x,T.uv.y)),T=new p.Vector3(T.x,T.y,T.z),T.applyMatrix4(_),typeof A[T.x+","+T.y+","+T.z]>"u"?(P.vertices.push(T),S=A[T.x+","+T.y+","+T.z]=P.vertices.length-1):S=A[T.x+","+T.y+","+T.z],M=new p.Face3(g,w,S,new p.Vector3(b.normal.x,b.normal.y,b.normal.z)),P.faces.push(M),P.faceVertexUvs[0].push(C);return P},y.prototype.toBufferGeometry=function(){var m=this.toGeometry(),d=new p.BufferGeometry().fromGeometry(m);return d},y.prototype.toMesh=function(m){var d=this.toBufferGeometry(),b=new p.Mesh(d,m);return b.position.setFromMatrixPosition(this.matrix),b.rotation.setFromRotationMatrix(this.matrix),b},y.Polygon=function(m){m instanceof Array||(m=[]),this.vertices=m,0<m.length?this.calculateProperties():this.normal=this.w=void 0},y.Polygon.prototype.calculateProperties=function(){var m=this.vertices[0],d=this.vertices[1],b=this.vertices[2];return this.normal=d.clone().subtract(m).cross(b.clone().subtract(m)).normalize(),this.w=this.normal.clone().dot(m),this},y.Polygon.prototype.clone=function(){var m,d,b=new y.Polygon;for(m=0,d=this.vertices.length;m<d;m++)b.vertices.push(this.vertices[m].clone());return b.calculateProperties(),b},y.Polygon.prototype.flip=function(){var m,d=[];for(this.normal.multiplyScalar(-1),this.w*=-1,m=this.vertices.length-1;0<=m;m--)d.push(this.vertices[m]);return this.vertices=d,this},y.Polygon.prototype.classifyVertex=function(m){var d=this.normal.dot(m)-this.w;return d<-l?f:d>l?c:u},y.Polygon.prototype.classifySide=function(m){var d,b,v,g=0,w=0,S=m.vertices.length;for(d=0;d<S;d++)b=m.vertices[d],v=this.classifyVertex(b),v===c?g++:v===f&&w++;return 0<g&&w===0?c:g===0&&0<w?f:g===0&&w===0?u:h},y.Polygon.prototype.splitPolygon=function(m,d,b,v,g){var w=this.classifySide(m);if(w===u)(0<this.normal.dot(m.normal)?d:b).push(m);else if(w===c)v.push(m);else if(w===f)g.push(m);else{var S,T,M,C,_,P,E,O,A,L=[],R=[];for(T=0,S=m.vertices.length;T<S;T++)M=(T+1)%S,P=m.vertices[T],E=m.vertices[M],C=this.classifyVertex(P),_=this.classifyVertex(E),C!=f&&L.push(P),C!=c&&R.push(P),(C|_)==h&&(O=(this.w-this.normal.dot(P))/this.normal.dot(E.clone().subtract(P)),A=P.interpolate(E,O),L.push(A),R.push(A));3<=L.length&&v.push(new y.Polygon(L).calculateProperties()),3<=R.length&&g.push(new y.Polygon(R).calculateProperties())}},y.Vertex=function(m,d,b,v,g){this.x=m,this.y=d,this.z=b,this.normal=v||new p.Vector3,this.uv=g||new p.Vector2},y.Vertex.prototype.clone=function(){return new y.Vertex(this.x,this.y,this.z,this.normal.clone(),this.uv.clone())},y.Vertex.prototype.add=function(m){return this.x+=m.x,this.y+=m.y,this.z+=m.z,this},y.Vertex.prototype.subtract=function(m){return this.x-=m.x,this.y-=m.y,this.z-=m.z,this},y.Vertex.prototype.multiplyScalar=function(m){return this.x*=m,this.y*=m,this.z*=m,this},y.Vertex.prototype.cross=function(m){var d=this.x,b=this.y,v=this.z;return this.x=b*m.z-v*m.y,this.y=v*m.x-d*m.z,this.z=d*m.y-b*m.x,this},y.Vertex.prototype.normalize=function(){var m=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z);return this.x/=m,this.y/=m,this.z/=m,this},y.Vertex.prototype.dot=function(m){return this.x*m.x+this.y*m.y+this.z*m.z},y.Vertex.prototype.lerp=function(m,d){return this.add(m.clone().subtract(this).multiplyScalar(d)),this.normal.add(m.normal.clone().sub(this.normal).multiplyScalar(d)),this.uv.add(m.uv.clone().sub(this.uv).multiplyScalar(d)),this},y.Vertex.prototype.interpolate=function(m,d){return this.clone().lerp(m,d)},y.Vertex.prototype.applyMatrix4=function(m){var d=this.x,b=this.y,v=this.z,g=m.elements;return this.x=g[0]*d+g[4]*b+g[8]*v+g[12],this.y=g[1]*d+g[5]*b+g[9]*v+g[13],this.z=g[2]*d+g[6]*b+g[10]*v+g[14],this},y.Node=function(m){var d,b,v=[],g=[];if(this.polygons=[],this.front=this.back=void 0,m instanceof Array&&m.length!==0){for(this.divider=m[0].clone(),d=0,b=m.length;d<b;d++)this.divider.splitPolygon(m[d],this.polygons,this.polygons,v,g);0<v.length&&(this.front=new y.Node(v)),0<g.length&&(this.back=new y.Node(g))}},y.Node.isConvex=function(m){var d,b;for(d=0;d<m.length;d++)for(b=0;b<m.length;b++)if(d!==b&&m[d].classifySide(m[b])!==f)return!1;return!0},y.Node.prototype.build=function(m){var d,b,v=[],g=[];for(this.divider||(this.divider=m[0].clone()),d=0,b=m.length;d<b;d++)this.divider.splitPolygon(m[d],this.polygons,this.polygons,v,g);0<v.length&&(!this.front&&(this.front=new y.Node),this.front.build(v)),0<g.length&&(!this.back&&(this.back=new y.Node),this.back.build(g))},y.Node.prototype.allPolygons=function(){var m=this.polygons.slice();return this.front&&(m=m.concat(this.front.allPolygons())),this.back&&(m=m.concat(this.back.allPolygons())),m},y.Node.prototype.clone=function(){var m=new y.Node;return m.divider=this.divider.clone(),m.polygons=this.polygons.map(function(d){return d.clone()}),m.front=this.front&&this.front.clone(),m.back=this.back&&this.back.clone(),m},y.Node.prototype.invert=function(){var m,d,b;for(m=0,d=this.polygons.length;m<d;m++)this.polygons[m].flip();return this.divider.flip(),this.front&&this.front.invert(),this.back&&this.back.invert(),b=this.front,this.front=this.back,this.back=b,this},y.Node.prototype.clipPolygons=function(m){var d,b,v,g;if(!this.divider)return m.slice();for(v=[],g=[],d=0,b=m.length;d<b;d++)this.divider.splitPolygon(m[d],v,g,v,g);return this.front&&(v=this.front.clipPolygons(v)),g=this.back?this.back.clipPolygons(g):[],v.concat(g)},y.Node.prototype.clipTo=function(m){this.polygons=m.clipPolygons(this.polygons),this.front&&this.front.clipTo(m),this.back&&this.back.clipTo(m)},y}},o=>{o.exports=MB()},o=>{o.exports=LB},(o,l,u)=>{var c=u(3).Geometry,f=u(4),h=f.BufferGeometryLoader;o.exports=function(p){var y=void 0,m=function(S){var T=new h,M=T.parse(S),C=new f.MeshPhongMaterial,_=new f.Mesh(M.geometry,C),P=new c;return P.setMorph(_),P},d=function(S){var T=m(S);y=new(u(55)).GeometryCSGInternal(T),p.postMessage({action:"message",message:"Initialised"})},b=function(S){if(y){var T=m(S),M=y.intersect(T),C=M.toBufferGeometry().toJSON();p.postMessage({action:"result",object:C})}},v=function(S){if(y){var T=m(S),M=y.subtract(T),C=M.toBufferGeometry().toJSON();p.postMessage({action:"result",object:C})}},g=function(S){if(y){var T=m(S),M=y.union(T),C=M.toBufferGeometry().toJSON();p.postMessage({action:"result",object:C})}};p.addEventListener("message",function(w){switch(w.data.action){case"initialise":d(w.data.object);break;case"intersect":b(w.data.object);break;case"subtract":v(w.data.object);break;case"union":g(w.data.object);break;default:throw"Cannot handle specified action."}})}},(o,l,u)=>{var c=u(4),f=u(51)(c);u(3).Geometry,u(50).GeometryCSG;var h=function(p){var y;p&&p.isGeometry&&(y=p);var m;this.setGeometry=b=>{b&&b.isGeometry&&(y=b),m=void 0},this.setCSG=b=>{m=b};var d=b=>{if(y&&y.morph&&b&&b.morph){m===void 0&&(m=new f(y.morph));var v=new f(b.morph);return v}};this.intersect=b=>{var v=d(b);return m&&v?m.intersect(v):void 0},this.subtract=b=>{var v=d(b);return m&&v?m.subtract(v):void 0},this.union=b=>{var v=d(b);return m&&v?m.union(v):void 0}};l.GeometryCSGInternal=h},(o,l,u)=>{var c=u(4),f=u(51)(c);u(18).Glyphset;var h=function(p){var y;p&&p.isGlyphset&&(y=p);var m=[];this.setGlyphset=v=>{v&&v.isGlyphset&&(y=v),hostCSG=void 0},this.getGlyphset=()=>y;var d=()=>v=>{var g=v.getMesh(),w=v.getLabel();if(g){var S=new f(g.geometry.clone().applyMatrix(g.matrix)),T=[];T.csg=S,T.label=w,g.material&&(T.material=g.material.clone()),m.push(T)}},b=v=>{if(y&&v&&v.getMorph()){m.length==0&&y.forEachGlyph(d());var g=new f(v.getMorph());return g}};this.intersect=v=>{var g=b(v);if(0<m.length&&g){for(var w=new(u(18)).Glyphset,S=0;S<m.length;S++){var T=m[S],M=T.csg.intersect(g),C=M.toMesh();if(C&&C.geometry&&0<C.geometry.vertices.length){T.material&&(C.material=T.material,C.material.side=c.DoubleSide,C.material.clippingPlanes=null);var _=w.addMeshAsGlyph(C,S+1);_.setLabel(T.label)}}var P=new h(w);return P}}};l.GlyphsetCSG=h}],i={};function r(o){var l=i[o];if(l!==void 0)return l.exports;var u=i[o]={exports:{}};return t[o].call(u.exports,u,u.exports,r),u.exports}r.n=o=>{var l=o&&o.__esModule?()=>o.default:()=>o;return r.d(l,{a:l}),l},r.d=(o,l)=>{for(var u in l)r.o(l,u)&&!r.o(o,u)&&Object.defineProperty(o,u,{enumerable:!0,get:l[u]})},r.o=(o,l)=>Object.prototype.hasOwnProperty.call(o,l),r.r=o=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})};var s=r(0);return s})())})(Tg);var gr=Tg.exports;const kc=oC(gr),nx=(n,e)=>{if(n){let t="";n.forEach(i=>{t=i.uuid,i.region&&(t=i.region.uuid+"/"+t),i&&i.getVisibility()&&e.push(t)})}return e},mf=(n,e)=>{const t=n[0]-e[0],i=n[1]-e[1],r=n[2]-e[2];return Math.sqrt(t*t+i*i+r*r)},PB=n=>{const e=n.zincObjects;if(e.length>0&&e[0]){const t=e[0];if(t.isEditable&&t.isLines2){const i=n.identifiers[0].extraData.intersected;if(i&&i.faceIndex>-1){const r=t.getVerticesByFaceIndex(i.faceIndex),s=n.identifiers[0].extraData.intersected.pointOnLine;if(r.length>1){const o=mf(r[0],[s.x,s.y,s.z]),l=mf(r[1],[s.x,s.y,s.z]);return o>l?{zincObject:t,faceIndex:i.faceIndex,vertexIndex:i.faceIndex*2+1,point:r[0]}:{zincObject:t,faceIndex:i.faceIndex,vertexIndex:i.faceIndex*2,point:r[1]}}}}}},IB=n=>{const e=n.zincObjects;if(e.length>0&&e[0])return e[0]},OB=n=>{const e=n.zincObjects;if(e.length>0&&e[0]){const t=e[0];if(t.isEditable)return t}},NB=(n,e,t)=>{if(n!=null&&n.isEditable&&(n!=null&&n.isPointset)){let i=!1;for(let r=0;r<3&&!i;r++)t[r]!==0&&(i=!0);if(i&&e>-1){const r=n.getVerticesByIndex(e);return r&&(r[0]=r[0]+t[0],r[1]=r[1]+t[1],r[2]=r[2]+t[2]),n.editVertices([r],e),n.boundingBoxUpdateRequired=!0,!0}}return!1},zc=(n,e)=>{if(n!=null&&n.isEditable&&(n!=null&&n.isLines2)&&e>-1){const t=n.getVerticesByFaceIndex(e);if(t&&t.length>1)return mf(t[1],t[0])}return 0},gf=(n,e,t,i)=>{if(n&&t!==0&&n.isEditable&&n.isLines2&&e>-1){const r=n.getVerticesByFaceIndex(e);let s=[r[1][0]-r[0][0],r[1][1]-r[0][1],r[1][2]-r[0][2]];const o=Math.sqrt(s[0]*s[0]+s[1]*s[1]+s[2]*s[2]);for(let l=0;l<3;l++)s[l]=s[l]/o*t,i?r[1][l]=r[0][l]+s[l]:(r[0][l]=r[0][l]+s[l],r[1][l]=r[1][l]+s[l]);return n.editVertices(r,e*2),n.boundingBoxUpdateRequired=!0,!0}return!1},DB=(n,e)=>{const t=e.getBoundingBox(),i=new gr.THREE.Vector3().subVectors(t.max,t.min),r=new gr.THREE.BoxGeometry(i.x,i.y,i.z);i.addVectors(t.min,t.max).multiplyScalar(.5);const s=r.getAttribute("position"),o=s.count,l=[];for(let u=0;u<o;u++)l[u]=[s.array[u*3],s.array[u*3+1],s.array[u*3+2]];n.editVertices(l,0),n.setPosition(i.x,i.y,i.z),r.dispose()},ix=(n,e)=>{let t="";n.isRegion&&(t=`__r${n.regionPath}`),n.isPrimitives&&(t=`${n.regionPath}/${n.label}`),e.push(t),n.children&&n.children.forEach(i=>ix(i,e))},wo=(n,e,t,i)=>{let r=n;const s=[];if(t&&(r=n.findChildFromPath(t)),r){const o=Array.isArray(e);let l=e;o||(l=[l]),l.forEach(u=>{const c=r.findObjectsWithGroupName(u,i);s.push(...c)})}return s},yf=(n,e,t)=>{const i=n.findIndex(s=>s.uuid===e);let r;return i>-1&&(r=n[i],t&&n.splice(i,1)),r},BB=(n,e)=>{const t=[];if(n&&e&&e.length>0){const i={},r={},s=[n,...n.getChildRegions(!0)];let o,l,u;e.forEach(c=>{const f=c.split("/");u=f[0],o=yf(s,u,!1),o&&(r[u]||(r[u]=o.getFullPath()),f[1]?(i[u]||(i[u]=o.getAllObjects(!1)),l=yf(i[u],f[1],!0),l&&t.push(`${r[u]}/${l.groupName}`)):t.push(`__r/${r[u]}`))})}return t},FB=n=>{if(n){const e=[];return n.forEach(i=>{i.isZincObject?e.push(i):i.isRegion&&e.push(...i.getAllObjects(!0))}),Object.values(e.reduce((i,r)=>({...i,[r.uuid]:r}),{}))}return[]},rx=(n,e)=>{const t={label:"Multiple selections",regionPath:"",objects:[]};if(e&&n){const i={},r=n.getRootRegion();e.length>0&&(t.regionPath=e[0].data.region,t.label=e[0].data.group),e.forEach(s=>{s.data.region.includes(t.regionPath)||(t.regionPath=""),t.label!==s.data.group&&(t.label="Multiple selections");const o=r.findChildFromPath(s.data.region);i[o.uuid]||(i[o.uuid]=o.getAllObjects(!1));const l=yf(i[o.uuid],s.data.uuid);l&&t.objects.push(l)})}return t},VB=n=>{const e=n.getMorph();let t="position";n.isLines2&&(t="instanceStart");const i=[];let r=0;const s=e.geometry.getAttribute(t);for(let o=0;o<n.drawRange;o++)i.push([s.array[r++],s.array[r++],s.array[r++]]);return i},sx=(n,e,t,i,r)=>{let s;n.isPointset?s="MultiPoint":n.isLines2?s="MultiLineString":s="Feature";const o=s!=="Feature",l=s==="Feature"?"Feature annotation":"Drawn annotation";if(s){const u=VB(n);let c=e.slice(-1)==="/"?e:e+"/";c=c+t;const f=c,h={resource:i,item:{id:f},body:{evidence:[],comment:r},feature:{id:f,properties:{drawn:o,label:l},geometry:{coordinates:u,type:s}}};return r==="Deleted"&&(h.feature=void 0),h}},ox=(n,e,t,i,r,s,o)=>{const l=sx(t,i,r,s,o);if(l)return n&&n.currentUser&&(l.creator={...n.currentUser},l.creator.orcid||(l.creator.orcid="0000-0000-0000-0000"),n.addAnnotation(e,l).then(u=>{u.annotationId||console.log("There is a problem with the submission, please try again later")}).catch(()=>{console.log("There is a problem with the submission, please try again later")})),l},ax=async(n,e,t)=>{const i=t;return await n.drawnFeatures(e,i)},lx=(n,e)=>{n&&e.forEach(t=>{const i=t.geometry,r=decodeURIComponent(t.id),s=r.lastIndexOf("/"),o=r.substring(0,s),l=r.substring(s+1);let u;i.type==="MultiPoint"?u=n.createPoints(o,l,i.coordinates,l,8942):i.type==="MultiLineString"&&(u=n.createLines(o,l,i.coordinates,60962)),u&&(u.zincObject.isEditable=!0)})},Pi=(n,e)=>{const t=n.__vccOpts||n;for(const[i,r]of e)t[i]=r;return t},kB={name:"LinesControls",components:{Button:bs,Col:Ln,Container:Xn,InputNumber:mi,Main:pi,Slider:Sn,ElIconArrowLeft:Fi,ElIconArrowRight:Vi},props:{createData:{type:Object}},data:function(){return{adjust:0,pAdjust:0,lengthScale:0,distance:0,newDistance:0,width:1,currentIndex:0,ElIconArrowLeft:a.shallowRef(Fi),ElIconArrowRight:a.shallowRef(Vi),edited:!1,zincObject:void 0}},watch:{"createData.faceIndex":{handler:function(n){var e;(e=this.zincObject)!=null&&e.isLines2&&(this.currentIndex=n,this.distance=zc(this.zincObject,this.currentIndex))},immediate:!0}},methods:{changeIndex:function(n){n?zc(this.zincObject,this.currentIndex+1)>0&&(this.currentIndex++,this.reset()):(this.currentIndex--,this.reset())},onLengthInput:function(){this.newDistance!==0?(this.distance=this.newDistance,this.edited=gf(this.zincObject,this.currentIndex,this.newDistance,!0)||this.edited):this.newDistance=this.distance},onLengthSliding:function(){this.newDistance=Math.pow(10,this.lengthScale)*this.distance,this.edited=gf(this.zincObject,this.currentIndex,this.newDistance,!0)||this.edited},onMoveSliding:function(){const n=(this.adjust-this.pAdjust)*this.distance;this.edited=gf(this.zincObject,this.currentIndex,n,!1)||this.edited,this.pAdjust=this.adjust},reset:function(){this.adjust=0,this.pAdjust=0,this.lengthScale=0,this.distance=zc(this.zincObject,this.currentIndex),this.newDistance=this.distance,this.edited&&(this.$emit("primitivesUpdated",this.zincObject),this.edited=!1)},setObject:function(n){this.currentIndex=-1,this.distance=0,n.isLines2?(this.zincObject=a.markRaw(n),this.width=this.zincObject.getMorph().material.linewidth,n.isEditable&&(this.currentIndex=0,this.distance=zc(n,this.currentIndex))):(this.zincObject=void 0,this.width=10)},modifyWidth:function(){this.zincObject.setWidth(this.width)}}};function zB(n,e,t,i,r,s){const o=Ln,l=Sn,u=mi,c=Zn,f=bs,h=pi,p=Xn;return a.openBlock(),a.createBlock(p,{class:"lines-container"},{default:a.withCtx(()=>[a.createVNode(h,{class:"slides-block"},{default:a.withCtx(()=>[a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[11]||(e[11]=[a.createTextVNode(" Width: ")])),_:1}),a.createVNode(o,{offset:0,span:12},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.width,"onUpdate:modelValue":e[0]||(e[0]=y=>n.width=y),class:"my-slider",step:1,min:1,max:100,"show-tooltip":!1,onInput:s.modifyWidth},null,8,["modelValue","onInput"])]),_:1}),a.createVNode(o,{offset:0,span:4},{default:a.withCtx(()=>[a.createVNode(u,{modelValue:n.width,"onUpdate:modelValue":e[1]||(e[1]=y=>n.width=y),step:1,min:1,max:100,controls:!1,class:"input-box number-input"},null,8,["modelValue"])]),_:1})]),_:1}),n.currentIndex>-1&&n.distance>0?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:4},{default:a.withCtx(()=>[a.createVNode(f,{size:"small",disabled:n.currentIndex===0,icon:n.ElIconArrowLeft,onClick:e[2]||(e[2]=y=>s.changeIndex(!1))},null,8,["disabled","icon"])]),_:1}),a.createVNode(o,{offset:4,span:9},{default:a.withCtx(()=>[a.createTextVNode(" Editing Line "+a.toDisplayString(n.currentIndex+1),1)]),_:1}),a.createVNode(o,{offset:2,span:2},{default:a.withCtx(()=>[a.createVNode(f,{size:"small",icon:n.ElIconArrowRight,onClick:e[3]||(e[3]=y=>s.changeIndex(!0))},null,8,["icon"])]),_:1})]),_:1}),a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[12]||(e[12]=[a.createTextVNode(" Move: ")])),_:1}),a.createVNode(o,{offset:0,span:16},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.adjust,"onUpdate:modelValue":e[4]||(e[4]=y=>n.adjust=y),step:.01,min:-3,max:3,"show-tooltip":!1,onInput:e[5]||(e[5]=y=>s.onMoveSliding()),onChange:e[6]||(e[6]=y=>s.reset())},null,8,["modelValue"])]),_:1})]),_:1}),a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[13]||(e[13]=[a.createTextVNode(" Length: ")])),_:1}),a.createVNode(o,{offset:0,span:10},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.lengthScale,"onUpdate:modelValue":e[7]||(e[7]=y=>n.lengthScale=y),step:.01,min:-1,max:1,"show-tooltip":!1,onInput:e[8]||(e[8]=y=>s.onLengthSliding()),onChange:e[9]||(e[9]=y=>s.reset())},null,8,["modelValue"])]),_:1}),a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>[a.createVNode(u,{modelValue:n.newDistance,"onUpdate:modelValue":e[10]||(e[10]=y=>n.newDistance=y),controls:!1,class:"input-box number-input",onChange:s.onLengthInput},null,8,["modelValue","onChange"])]),_:1})]),_:1})],64)):a.createCommentVNode("",!0)]),_:1})]),_:1})}const cx=Pi(kB,[["render",zB],["__scopeId","data-v-6581aa67"]]),UB={name:"PointsControls",components:{Col:Ln,Container:Xn,InputNumber:mi,Main:pi,Select:xs,Slider:Sn,Row:Zn,Option:ws,ElIconArrowLeft:Fi,ElIconArrowRight:Vi},inject:["boundingDims"],data:function(){return{attenuation:!1,size:10,choices:[{value:!0,label:"On"},{value:!1,label:"off"}],min:[0,0,0],max:[1,1,1],translation:[0,0,0],pTranslation:[0,0,0],currentIndex:-1,ElIconArrowLeft:a.shallowRef(Fi),ElIconArrowRight:a.shallowRef(Vi),edited:!1,zincObject:void 0}},watch:{boundingDims:{handler:function(n){const e=n.size;this.min=[-e[0]/2,-e[1]/2,-e[2]/2],this.max=[e[0]/2,e[1]/2,e[2]/2]},immediate:!0,deep:!0}},methods:{changeIndex:function(n){n?this.zincObject.drawRange>this.currentIndex+1&&(this.currentIndex++,this.reset()):(this.currentIndex--,this.reset())},onMoveSliding:function(){const n=[this.translation[0]-this.pTranslation[0],this.translation[1]-this.pTranslation[1],this.translation[2]-this.pTranslation[2]];this.edited=NB(this.zincObject,this.currentIndex,n)||this.edited;for(let e=0;e<3;e++)this.pTranslation[e]=this.translation[e]},reset:function(){this.translation=[0,0,0],this.pTranslation=[0,0,0],this.edited&&(this.$emit("primitivesUpdated",this.zincObject),this.edited=!1)},setObject:function(n){this.currentIndex=-1,n.isPointset?(this.zincObject=a.markRaw(n),this.size=this.zincObject.morph.material.size,this.attenuation=this.zincObject.morph.material.sizeAttenuation,n.isEditable&&this.zincObject.drawRange>0&&(this.currentIndex=0)):(this.zincObject=void 0,this.size=10,this.attenuation=!1)},modifyAttenuation:function(n){this.attenuation=n,this.zincObject.setSizeAttenuation(n)},modifySize:function(){this.zincObject.setSize(this.size)}}};function GB(n,e,t,i,r,s){const o=Ln,l=Sn,u=mi,c=Zn,f=ws,h=xs,p=bs,y=pi,m=Xn;return a.openBlock(),a.createBlock(m,{class:"pointset-container"},{default:a.withCtx(()=>[a.createVNode(y,{class:"slides-block"},{default:a.withCtx(()=>[a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[15]||(e[15]=[a.createTextVNode(" Size: ")])),_:1}),a.createVNode(o,{offset:0,span:10},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.size,"onUpdate:modelValue":e[0]||(e[0]=d=>n.size=d),class:"my-slider",step:1,min:0,max:100,"show-tooltip":!1,onInput:e[1]||(e[1]=d=>s.modifySize())},null,8,["modelValue"])]),_:1}),a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>[a.createVNode(u,{modelValue:n.size,"onUpdate:modelValue":e[2]||(e[2]=d=>n.size=d),step:1,min:0,max:100,controls:!1,class:"input-box number-input"},null,8,["modelValue"])]),_:1})]),_:1}),a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:16},{default:a.withCtx(()=>e[16]||(e[16]=[a.createTextVNode(" Size attenuation: ")])),_:1}),a.createVNode(o,{offset:0,span:5},{default:a.withCtx(()=>[a.createVNode(h,{teleported:!1,"model-value":n.attenuation,placeholder:"Select",class:"input-box","popper-class":"viewer_dropdown",onChange:e[3]||(e[3]=d=>s.modifyAttenuation(d,n.slide))},{default:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.choices,d=>(a.openBlock(),a.createBlock(f,{key:d.value,label:d.label,value:d.value},null,8,["label","value"]))),128))]),_:1},8,["model-value"])]),_:1})]),_:1}),n.currentIndex>-1?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:4},{default:a.withCtx(()=>[a.createVNode(p,{size:"small",disabled:n.currentIndex===0,icon:n.ElIconArrowLeft,onClick:e[4]||(e[4]=d=>s.changeIndex(!1))},null,8,["disabled","icon"])]),_:1}),a.createVNode(o,{offset:4,span:9},{default:a.withCtx(()=>[a.createTextVNode(" Editing Point "+a.toDisplayString(n.currentIndex+1),1)]),_:1}),a.createVNode(o,{offset:2,span:2},{default:a.withCtx(()=>[a.createVNode(p,{size:"small",icon:n.ElIconArrowRight,onClick:e[5]||(e[5]=d=>s.changeIndex(!0))},null,8,["icon"])]),_:1})]),_:1}),a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[17]||(e[17]=[a.createTextVNode(" x: ")])),_:1}),a.createVNode(o,{offset:0,span:16},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.translation[0],"onUpdate:modelValue":e[6]||(e[6]=d=>n.translation[0]=d),step:.01,min:n.min[0],max:n.max[0],"show-tooltip":!1,onInput:e[7]||(e[7]=d=>s.onMoveSliding()),onChange:e[8]||(e[8]=d=>s.reset())},null,8,["modelValue","min","max"])]),_:1})]),_:1}),a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[18]||(e[18]=[a.createTextVNode(" y: ")])),_:1}),a.createVNode(o,{offset:0,span:16},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.translation[1],"onUpdate:modelValue":e[9]||(e[9]=d=>n.translation[1]=d),step:.01,min:n.min[1],max:n.max[1],"show-tooltip":!1,onInput:e[10]||(e[10]=d=>s.onMoveSliding()),onChange:e[11]||(e[11]=d=>s.reset())},null,8,["modelValue","min","max"])]),_:1})]),_:1}),a.createVNode(c,null,{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[19]||(e[19]=[a.createTextVNode(" z: ")])),_:1}),a.createVNode(o,{offset:0,span:16},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.translation[2],"onUpdate:modelValue":e[12]||(e[12]=d=>n.translation[2]=d),step:.01,min:n.min[2],max:n.max[2],"show-tooltip":!1,onInput:e[13]||(e[13]=d=>s.onMoveSliding()),onChange:e[14]||(e[14]=d=>s.reset())},null,8,["modelValue","min","max"])]),_:1})]),_:1})],64)):a.createCommentVNode("",!0)]),_:1})]),_:1})}const ux=Pi(UB,[["render",GB],["__scopeId","data-v-d1de9c65"]]),HB={name:"TextureSlidesControls",components:{Col:Ln,Container:Xn,Footer:ug,Icon:ht,InputNumber:mi,Main:pi,Row:Zn,Select:xs,Slider:Sn,Option:ws,ElIconDelete:Ja,ElIconPlus:Ka},data:function(){return{settings:[],directions:[{value:"x",label:"x"},{value:"y",label:"y"},{value:"z",label:"z"}],zincObject:void 0}},methods:{setObject:function(n){n.isTextureSlides?(this.zincObject=a.markRaw(n),this.settings=this.zincObject.getTextureSettings()):(this.zincObject=void 0,this.settings=[])},addNewSlide:function(){const n={direction:"x",value:0},e=this.zincObject.createSlide(n);this.settings.push(e)},modifyDirection:function(n,e){e&&(e.direction=n,this.zincObject.modifySlideSettings(e))},modifySlide:function(n){n&&this.zincObject.modifySlideSettings(n)},removeSlide:function(n,e){this.zincObject.removeSlideWithId(e.id),this.settings.splice(n,1)}}};function WB(n,e,t,i,r,s){const o=ws,l=xs,u=Ln,c=Sn,f=mi,h=Ja,p=ht,y=Zn,m=pi,d=Ka,b=ug,v=Xn;return a.openBlock(),a.createBlock(v,{class:"t-slides-container"},{default:a.withCtx(()=>[a.createVNode(m,{class:"slides-block"},{default:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.settings,(g,w)=>(a.openBlock(),a.createBlock(y,{key:g.id,class:"slide-row"},{default:a.withCtx(()=>[a.createVNode(u,{offset:0,span:6},{default:a.withCtx(()=>[a.createVNode(l,{teleported:!1,"model-value":g.direction,placeholder:"Select",class:"input-box","popper-class":"viewer_dropdown",onChange:S=>s.modifyDirection(S,g)},{default:a.withCtx(()=>[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.directions,S=>(a.openBlock(),a.createBlock(o,{key:S.value,label:S.label,value:S.value},null,8,["label","value"]))),128))]),_:2},1032,["model-value","onChange"])]),_:2},1024),a.createVNode(u,{offset:0,span:10},{default:a.withCtx(()=>[a.createVNode(c,{modelValue:g.value,"onUpdate:modelValue":S=>g.value=S,class:"my-slider",step:.01,min:0,max:1,"show-tooltip":!1,onInput:S=>s.modifySlide(g)},null,8,["modelValue","onUpdate:modelValue","onInput"])]),_:2},1024),a.createVNode(u,{offset:0,span:6},{default:a.withCtx(()=>[a.createVNode(f,{modelValue:g.value,"onUpdate:modelValue":S=>g.value=S,step:.01,min:0,max:1,controls:!1,class:"input-box number-input"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),a.createVNode(u,{offset:0,span:2},{default:a.withCtx(()=>[a.createVNode(p,{class:"delete-icon",onClick:S=>s.removeSlide(w,g)},{default:a.withCtx(()=>[a.createVNode(h)]),_:2},1032,["onClick"])]),_:2},1024)]),_:2},1024))),128))]),_:1}),a.createVNode(b,{height:"30px",class:"add-slides-text",onClick:s.addNewSlide},{default:a.withCtx(()=>[a.createVNode(y,null,{default:a.withCtx(()=>[a.createVNode(u,{span:2},{default:a.withCtx(()=>[a.createVNode(p,null,{default:a.withCtx(()=>[a.createVNode(d)]),_:1})]),_:1}),a.createVNode(u,{span:20},{default:a.withCtx(()=>e[0]||(e[0]=[a.createTextVNode(" Add a new slide ")])),_:1})]),_:1})]),_:1},8,["onClick"])]),_:1})}const dx=Pi(HB,[["render",WB],["__scopeId","data-v-12185b7f"]]),jB={name:"TransformationControls",components:{Col:Ln,Container:Xn,InputNumber:mi,Main:pi,Slider:Sn},inject:["boundingDims"],data:function(){return{x:0,y:0,z:0,scale:1,min:[0,0,0],max:[1,1,1],zincObject:void 0,enableScaling:!0}},watch:{boundingDims:{handler:function(n){const e=n.centre,t=n.size;this.min=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],this.max=[e[0]+t[0],e[1]+t[1],e[2]+t[2]]},immediate:!0,deep:!0}},methods:{setObject:function(n){if(n.isZincObject){this.zincObject=a.markRaw(n);const e=this.zincObject.getGroup();e&&e.position&&(this.x=e.position.x,this.y=e.position.y,this.z=e.position.z,this.zincObject.isGlyphset?this.scale=this.zincObject.globalScale:this.scale=e.scale.x,this.enableScaling=!this.zincObject.isTextureSlides)}else this.zincObject=void 0,this.x=0,this.y=0,this.z=0,this.scale=1},modifyPosition:function(){this.zincObject.setPosition(this.x,this.y,this.z)},modifyScale:function(){this.zincObject.setScaleAll(this.scale)}}};function $B(n,e,t,i,r,s){const o=Ln,l=Sn,u=mi,c=Zn,f=pi,h=Xn;return a.openBlock(),a.createBlock(h,{class:"transformation-container"},{default:a.withCtx(()=>[a.createVNode(f,{class:"slides-block"},{default:a.withCtx(()=>[a.createVNode(c,{class:"tool-row"},{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[16]||(e[16]=[a.createTextVNode(" x: ")])),_:1}),a.createVNode(o,{offset:0,span:10},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.x,"onUpdate:modelValue":e[0]||(e[0]=p=>n.x=p),step:.01,min:n.min[0],max:n.max[0],"show-tooltip":!1,onInput:e[1]||(e[1]=p=>s.modifyPosition())},null,8,["modelValue","min","max"])]),_:1}),a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>[a.createVNode(u,{modelValue:n.x,"onUpdate:modelValue":e[2]||(e[2]=p=>n.x=p),step:.01,min:n.min[0],max:n.max[0],controls:!1,class:"input-box number-input",onChange:e[3]||(e[3]=p=>s.modifyPosition())},null,8,["modelValue","min","max"])]),_:1})]),_:1}),a.createVNode(c,{class:"tool-row"},{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[17]||(e[17]=[a.createTextVNode(" y: ")])),_:1}),a.createVNode(o,{offset:0,span:10},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.y,"onUpdate:modelValue":e[4]||(e[4]=p=>n.y=p),step:.01,min:n.min[1],max:n.max[1],"show-tooltip":!1,onInput:e[5]||(e[5]=p=>s.modifyPosition())},null,8,["modelValue","min","max"])]),_:1}),a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>[a.createVNode(u,{modelValue:n.y,"onUpdate:modelValue":e[6]||(e[6]=p=>n.y=p),step:.01,min:n.min[1],max:n.max[1],controls:!1,class:"input-box number-input",onChange:e[7]||(e[7]=p=>s.modifyPosition())},null,8,["modelValue","min","max"])]),_:1})]),_:1}),a.createVNode(c,{class:"tool-row"},{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[18]||(e[18]=[a.createTextVNode(" z: ")])),_:1}),a.createVNode(o,{offset:0,span:10},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.z,"onUpdate:modelValue":e[8]||(e[8]=p=>n.z=p),step:.01,min:n.min[2],max:n.max[2],"show-tooltip":!1,onInput:e[9]||(e[9]=p=>s.modifyPosition())},null,8,["modelValue","min","max"])]),_:1}),a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>[a.createVNode(u,{modelValue:n.z,"onUpdate:modelValue":e[10]||(e[10]=p=>n.z=p),step:.01,min:n.min[2],max:n.max[2],controls:!1,class:"input-box number-input",onChange:e[11]||(e[11]=p=>s.modifyPosition())},null,8,["modelValue","min","max"])]),_:1})]),_:1}),n.enableScaling?(a.openBlock(),a.createBlock(c,{key:0,class:"tool-row"},{default:a.withCtx(()=>[a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>e[19]||(e[19]=[a.createTextVNode(" Scale: ")])),_:1}),a.createVNode(o,{offset:0,span:10},{default:a.withCtx(()=>[a.createVNode(l,{modelValue:n.scale,"onUpdate:modelValue":e[12]||(e[12]=p=>n.scale=p),step:.01,min:0,max:5,"show-tooltip":!1,onInput:e[13]||(e[13]=p=>s.modifyScale())},null,8,["modelValue"])]),_:1}),a.createVNode(o,{offset:0,span:6},{default:a.withCtx(()=>[a.createVNode(u,{modelValue:n.scale,"onUpdate:modelValue":e[14]||(e[14]=p=>n.scale=p),step:.01,min:0,max:5,controls:!1,class:"input-box number-input",onChange:e[15]||(e[15]=p=>s.modifyScale())},null,8,["modelValue"])]),_:1})]),_:1})):a.createCommentVNode("",!0)]),_:1})]),_:1})}const hx=Pi(jB,[["render",$B],["__scopeId","data-v-69c1b94a"]]),ZB={name:"OpacityControls",components:{Container:Xn,Header:JC,Main:pi,Slider:Sn},props:{material:void 0,zincObject:void 0},data:function(){return{displayString:"100%"}},watch:{"material.opacity":function(){this.material&&this.zincObject&&this.zincObject.setAlpha(this.material.opacity)}},methods:{formatTooltip(n){return this.displayString=Math.floor(100*n+.5)+"%",this.displayString}}},XB={class:"block"},YB={class:"display"};function JB(n,e,t,i,r,s){const o=Sn,l=Xn;return t.material?(a.openBlock(),a.createBlock(l,{key:0,class:"opacity-container"},{default:a.withCtx(()=>[a.createElementVNode("div",XB,[a.createElementVNode("span",YB,a.toDisplayString(n.displayString),1),a.createVNode(o,{modelValue:t.material.opacity,"onUpdate:modelValue":e[0]||(e[0]=u=>t.material.opacity=u),class:"my-slider",step:.01,min:0,max:1,"format-tooltip":s.formatTooltip,"show-tooltip":!1},null,8,["modelValue","format-tooltip"])])]),_:1})):a.createCommentVNode("",!0)}const fx=Pi(ZB,[["render",JB],["__scopeId","data-v-cbfc46a5"]]),KB={name:"PrimitiveControls",components:{Collapse:rg,CollapseItem:sg,LinesControls:cx,OpacityControls:fx,PointsControls:ux,TextureSlidesControls:dx,TransformationControls:hx,ElIconArrowRight:Vi},props:{createData:{type:Object}},data:function(){return{activeName:"oControls",material:void 0,isTextureSlides:!1,isPointset:!1,isLines:!1,drawerOpen:!0,zincObject:void 0,isEditable:!1,displayString:"100%"}},methods:{formatTooltip:function(n){return this.displayString=Math.floor(100*n+.5)+"%",this.displayString},toggleDrawer:function(){this.drawerOpen=!this.drawerOpen},setObject:function(n){var e;n?this.zincObject=a.markRaw(n):this.zincObject=void 0,this.isEditable=!!((e=this.zincObject)!=null&&e.isEditable),this.isPointset=!1,this.isTextureSlides=!1,this.isLines=!1,this.activeName="trControls",n&&(n.isTextureSlides?(this.isTextureSlides=!0,this.$refs.tSlidesControls.setObject(n),this.activeName="tsControls"):n.isPointset?(this.isPointset=!0,this.$refs.pointsetControls.setObject(n),this.activeName="pControls"):n.isLines2&&(this.isLines=!0,this.$refs.linesControls.setObject(n),this.activeName="lControls"),this.$refs.transformationControls.setObject(n)),n&&n.getMorph()?this.material=n.getMorph().material:this.material=void 0}}};function qB(n,e,t,i,r,s){const o=fx,l=sg,u=hx,c=dx,f=ux,h=cx,p=rg,y=Vi,m=ht;return a.withDirectives((a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(["primitive-controls",{open:n.drawerOpen,close:!n.drawerOpen}])},[a.createElementVNode("div",{class:a.normalizeClass(["my-drawer",{open:n.drawerOpen,close:!n.drawerOpen}])},[a.createVNode(p,{class:"collapse",modelValue:n.activeName,"onUpdate:modelValue":e[2]||(e[2]=d=>n.activeName=d),accordion:""},{default:a.withCtx(()=>[a.withDirectives(a.createVNode(l,{title:"Opacity",name:"oControls"},{default:a.withCtx(()=>[a.createVNode(o,{material:n.material,zincObject:n.zincObject,ref:"opacityControls"},null,8,["material","zincObject"])]),_:1},512),[[a.vShow,!n.isTextureSlides]]),a.withDirectives(a.createVNode(l,{title:"Transformation",name:"trControls"},{default:a.withCtx(()=>[a.createVNode(u,{class:"transformation-controls",ref:"transformationControls"},null,512)]),_:1},512),[[a.vShow,!n.isEditable]]),a.withDirectives(a.createVNode(l,{title:"Texture Slides",name:"tsControls"},{default:a.withCtx(()=>[a.createVNode(c,{class:"texture-controls",ref:"tSlidesControls"},null,512)]),_:1},512),[[a.vShow,n.isTextureSlides]]),a.withDirectives(a.createVNode(l,{title:"Points",name:"pControls"},{default:a.withCtx(()=>[a.createVNode(f,{class:"pointset-controls",ref:"pointsetControls",onPrimitivesUpdated:e[0]||(e[0]=d=>n.$emit("primitivesUpdated",d))},null,512)]),_:1},512),[[a.vShow,n.isPointset]]),a.withDirectives(a.createVNode(l,{title:"Lines",name:"lControls"},{default:a.withCtx(()=>[a.createVNode(h,{class:"lines-controls",ref:"linesControls",createData:t.createData,onPrimitivesUpdated:e[1]||(e[1]=d=>n.$emit("primitivesUpdated",d))},null,8,["createData"])]),_:1},512),[[a.vShow,n.isLines]])]),_:1},8,["modelValue"])],2),a.createElementVNode("div",{class:a.normalizeClass(["drawer-button",{open:n.drawerOpen,close:!n.drawerOpen}]),onClick:e[3]||(e[3]=(...d)=>s.toggleDrawer&&s.toggleDrawer(...d))},[a.createVNode(m,null,{default:a.withCtx(()=>[a.createVNode(y)]),_:1})],2)],2)),[[a.vShow,n.material||n.isTextureSlides]])}const px=Pi(KB,[["render",qB],["__scopeId","data-v-d55fc9a4"]]),QB=(n,e)=>{const t=n.label.toUpperCase(),i=e.label.toUpperCase();return t<i?-1:t>i?1:0},eF={name:"ScaffoldTreeControls",components:{ElIconArrowLeft:Fi,TreeControls:Fa.TreeControls},props:{showColourPicker:Boolean,isReady:Boolean},data:function(){return{treeData:[{label:"Root",regionPath:"",id:void 0,children:[]}],active:[],hover:[],drawerOpen:!0,nodeNumbers:0,module:void 0}},computed:{treeDataEntry:function(){return this.treeData[0].children}},watch:{treeDataEntry:{deep:!0,handler:function(n){this.isReady&&this.setColourField(n)}}},methods:{addTreeItem:function(n,e,t){n.some(i=>i.label===e.label)||(Object.assign(e,{activeColour:this.getColour(e)}),n.push(e),n.sort((i,r)=>QB(i,r)),this.nodeNumbers++,this.$nextTick(()=>{!this.$refs.treeControls.$refs.regionTree.getCheckedKeys().includes(e.id)&&t.getVisibility()&&this.$refs.treeControls.$refs.regionTree.setChecked(e.id,!0)}))},findOrCreateRegion:function(n,e,t){if(this.module&&this.module.scene&&(this.treeData[0].id=this.module.scene.getRootRegion().uuid,this.treeData[0].isRegion=!0),e.length>0){const i=[...e];let r=n.children.find(l=>l.label==i[0]);const s=t+"/"+e[0],o=this.module.scene.getRootRegion().findChildFromPath(s);return r||(r={label:i[0],id:o.uuid,children:[],regionPath:s,isRegion:!0},this.addTreeItem(n.children,r,o),s==="/_helper"&&this.$nextTick(()=>{this.$refs.treeControls.$refs.regionTree.setChecked(r.id,!1)})),i.shift(),this.findOrCreateRegion(r,i,s)}else return n},removeRegion:function(n){if(this.treeData[0].children){for(let e=0;e<this.treeData[0].children.length;e++)if(this.treeData[0].children[e].label===n){this.treeData[0].children.splice(e,1),this.nodeNumbers--;return}}},zincObjectAdded:function(n){const e=n.region;if(e){const t=e.getFullSeparatedPath(),i=this.findOrCreateRegion(this.treeData[0],t,"");if(n.groupName&&i){i.children||(i.children=[]);const r={label:n.groupName,id:e.uuid+"/"+n.uuid,isPrimitives:!0,regionPath:n.region.getFullPath(),isTextureSlides:!!n.isTextureSlides};this.addTreeItem(i.children,r,n)}}},zincObjectRemoved:function(n){const e=n.groupName;if(n.region.findObjectsWithGroupName(e,!1).length===0){const i=n.region.getFullSeparatedPath(),r=this.findOrCreateRegion(this.treeData[0],i,"");if(r.children){for(let s=0;s<r.children.length;s++)if(r.children[s].label===e){r.children.splice(s,1),this.nodeNumbers--;return}}}},checkChanged:function(n,e){const t=n.isRegion,i=n.isPrimitives,r=e.checkedKeys.includes(n.id),s=this.module.scene.getRootRegion().findChildFromPath(n.regionPath);t&&(r?s.showAllPrimitives():s.hideAllPrimitives()),i&&s.findObjectsWithGroupName(n.label).forEach(l=>{l.setVisibility(r)})},updateActiveUI:function(n){this.active.length=0,nx(n,this.active)},changeActiveByPrimitives:function(n,e){n&&n.length>0?(this.updateActiveUI(n),this.$emit("object-selected",n,e)):this.removeActive(e),this.removeHover(e)},updateHoverUI:function(n){this.hover.length=0,nx(n,this.hover)},changeHoverByPrimitives:function(n,e){n&&n.length>0?(this.updateHoverUI(n),this.$emit("object-hovered",n,e)):this.removeHover(e)},changeActiveByNames:function(n,e,t){const i=this.module.scene.getRootRegion(),r=wo(i,n,e,!0);this.changeActiveByPrimitives(r,t)},changeHoverByNames:function(n,e,t){const i=this.module.scene.getRootRegion(),r=wo(i,n,e,!0);this.changeHoverByPrimitives(r,t)},changeActiveByNode:function(n,e){if(n.isPrimitives||n.isRegion){const t=!!n.isRegion,i=this.getZincObjectsFromNode(n,t);this.changeActiveByPrimitives(i,e)}},changeHoverByNode:function(n,e){if(n.isPrimitives){const t=this.getZincObjectsFromNode(n,!1);this.changeHoverByPrimitives(t,e)}},removeActive:function(n){this.active=[],this.$emit("object-selected",[],n)},removeHover:function(n){this.hover=[],this.$emit("object-hovered",[],n)},clear:function(){this.active.length=0,this.hover.length=0,this.nodeNumbers=0,this.$refs.treeControls.$refs.regionTree.updateKeyChildren(this.treeData[0].id,[]),this.treeData[0].children.length=0,this.treeData[0].id=void 0,this.$emit("object-selected",[])},getColour:function(n){if(n){let t=this.getZincObjectsFromNode(n,!1)[0];if(t){let i=t.getColourHex();if(i)return"#"+i}}return"#FFFFFF"},getZincObjectsFromNode:function(n,e){const t=this.module.scene.getRootRegion();if(n.isPrimitives)return wo(t,n.label,n.regionPath,e);if(n.isRegion&&n.regionPath){let i=t.findChildFromPath(n.regionPath);if(i)return i.getAllObjects(e)}return[]},setModule:function(n){this.module=a.markRaw(n),this.nodeNumbers=0,this.module.scene.getRootRegion().getAllObjects(!0).forEach(t=>{this.zincObjectAdded(t)}),this.module.addOrganPartAddedCallback(this.zincObjectAdded),this.module.addOrganPartRemovedCallback(this.zincObjectRemoved)},setColourField:function(n,e=void 0){n.filter(t=>e&&!t.children?t.id===e.id:!0).map(t=>{if(t.children)this.setColourField(t.children,e);else{const i=this.getColour(t);t.defaultColour||(t.defaultColour=i),t.activeColour=i}})},setColour:function(n,e){n&&n.isPrimitives&&this.getZincObjectsFromNode(n,!1).forEach(i=>{let s=(e||n.defaultColour).replace("#","0x");i.setColourHex(s),this.setColourField(this.treeData[0].children,n)})},visibilityToggle:function(n,e){this.module.changeOrganPartsVisibility(n,e),e==!1&&(this.activeRegion===n&&this.removeActive(!0),this.hoverRegion===n&&this.removeHover(!0))},toggleDrawer:function(){this.drawerOpen=!this.drawerOpen,this.$emit("drawer-toggled",this.drawerOpen)},setTreeVisibilityWithFullPaths:function(n,e,t,i){let r=!1,s="";n.isRegion&&(s=`__r${n.regionPath}`),n.isPrimitives&&(s=`${n.regionPath}/${n.label}`);const o=e.indexOf(s);o>-1&&(r=!0,e.splice(o,1),t.push(n.id));const l=this.module.scene.getRootRegion().findChildFromPath(n.regionPath);s&&s!=="__r"&&n.isPrimitives&&l.findObjectsWithGroupName(n.label).forEach(c=>c.setVisibility(r)),n.children&&n.children.forEach(u=>{this.setTreeVisibilityWithFullPaths(u,e,t,!0)})},checkAllKeys:function(){const n=[],e=[];ix(this.treeData[0],n),this.setTreeVisibilityWithFullPaths(this.treeData[0],n,e,!0),this.$refs.treeControls.$refs.regionTree.setCheckedKeys(e)},getState:function(){let n=this.$refs.treeControls.$refs.regionTree.getCheckedKeys();return n.length===this.nodeNumbers?{checkAll:!0,version:"2.0"}:{checkedItems:BB(this.module.scene.getRootRegion(),n),version:"2.0"}},setState:function(n){if(n){if(n.checkAll)this.checkAllKeys();else if(n.checkedItems){let e=[];n.version!=="2.0"?(e=n.checkedItems.map(i=>"/"+i),e.shift("__r/")):e.push(...n.checkedItems);const t=[];this.setTreeVisibilityWithFullPaths(this.treeData[0],e,t,!0),this.$refs.treeControls.$refs.regionTree.setCheckedKeys(t)}}}}},tF={class:"traditional-container"};function nF(n,e,t,i,r,s){const o=a.resolveComponent("TreeControls"),l=Fi,u=ht;return a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(["tree-controls",{open:n.drawerOpen,close:!n.drawerOpen}])},[a.createElementVNode("div",tF,[a.createVNode(o,{mapType:"scaffold",title:"Regions",isReady:t.isReady,treeData:s.treeDataEntry,active:n.active,hover:n.hover,showColourPicker:t.showColourPicker,onSetColour:s.setColour,onCheckChanged:s.checkChanged,onChangeActive:s.changeActiveByNode,onChangeHover:s.changeHoverByNode,ref:"treeControls"},null,8,["isReady","treeData","active","hover","showColourPicker","onSetColour","onCheckChanged","onChangeActive","onChangeHover"])]),a.createElementVNode("div",{class:a.normalizeClass(["drawer-button",{open:n.drawerOpen,close:!n.drawerOpen}]),onClick:e[0]||(e[0]=(...c)=>s.toggleDrawer&&s.toggleDrawer(...c))},[a.createVNode(u,null,{default:a.withCtx(()=>[a.createVNode(l)]),_:1})],2)],2)}const mx=Pi(eF,[["render",nF],["__scopeId","data-v-706c7d54"]]),gx=jc.defineStore("main",{state:()=>({userProfile:{token:""}}),getters:{userToken(n){return n.userProfile.token}},actions:{setUserToken(n){this.userProfile.token=n}}}),iF={name:"ScaffoldTooltip",components:{Col:Ln,CreateTooltipContent:Fa.CreateTooltipContent,ElIconDelete:Ja,Icon:ht,Popover:vl,Row:Zn,Tooltip:Fa.Tooltip},props:{createData:{type:Object,default:{toBeConfirmed:!1,points:[],shape:"",x:0,y:0}},label:{type:String,default:""},annotationDisplay:{type:Boolean,default:!1},annotationFeature:{type:Object,default:{}},offlineAnnotationEnabled:{type:Boolean,default:!1},region:{type:String,default:""},visible:{type:Boolean,default:!1},x:{type:Number,default:200},y:{type:Number,default:200}},inject:["scaffoldUrl"],provide(){return{userApiKey:this.userToken}},data:function(){return{display:!1,annotationEntry:[],ElIconDelete:a.shallowRef(Ja)}},computed:{...jc.mapState(gx,["userToken"]),position:function(){let n=40;return this.region&&(n=55),{left:this.x-40+"px",top:this.y-n+"px"}}},methods:{checkForDisplay:function(){if(this.visible&&this.label&&this.label!==""){if(this.display=!0,this.annotationDisplay){const n=this.region?this.region+"/":"";this.annotationEntry=[{featureId:n+this.label,resourceId:this.scaffoldUrl,resource:this.scaffoldUrl,feature:this.annotationFeature,offline:this.offlineAnnotationEnabled}]}}else this.display=!1,this.annotationEntry=[]},hideTriggered:function(){this.$emit("tooltip-hide")}},watch:{label:{handler:function(){this.checkForDisplay()},immediate:!0},visible:{handler:function(){this.checkForDisplay()},immediate:!0},annotationDisplay:{handler:function(){this.checkForDisplay()},immediate:!0}}},rF={class:"tooltip-text"},sF={key:0,class:"tooltip-text"},oF={key:1,class:"delete-container"};function aF(n,e,t,i,r,s){const o=a.resolveComponent("CreateTooltipContent"),l=a.resolveComponent("Tooltip"),u=Ln,c=bs,f=Zn,h=vl;return a.openBlock(),a.createElementBlock("div",{style:a.normalizeStyle(s.position),class:"region-tooltip"},[a.createVNode(h,{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",rF,a.toDisplayString(t.label),1),t.region?(a.openBlock(),a.createElementBlock("div",sF,"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:"annotationTooltip",annotationDisplay:!0,annotationEntry:n.annotationEntry,onAnnotation:e[2]||(e[2]=p=>n.$emit("confirm-comment",p))},null,8,["annotationEntry"]),[[a.vShow,t.annotationDisplay&&!t.createData.toBeConfirmed]]),t.createData.toBeDeleted?(a.openBlock(),a.createElementBlock("div",oF,[a.createVNode(f,null,{default:a.withCtx(()=>[a.createVNode(u,{span:10},{default:a.withCtx(()=>e[5]||(e[5]=[a.createTextVNode("Delete this feature?")])),_:1}),a.createVNode(u,{span:7},{default:a.withCtx(()=>[a.createVNode(c,{class:"delete-button",icon:n.ElIconDelete,onClick:e[3]||(e[3]=p=>n.$emit("confirm-delete"))},{default:a.withCtx(()=>e[6]||(e[6]=[a.createTextVNode(" Delete ")])),_:1},8,["icon"])]),_:1}),a.createVNode(u,{span:6},{default:a.withCtx(()=>[a.createVNode(c,{class:"delete-button",onClick:e[4]||(e[4]=p=>n.$emit("cancel-create"))},{default:a.withCtx(()=>e[7]||(e[7]=[a.createTextVNode(" Dismiss ")])),_:1})]),_:1})]),_:1})])):a.createCommentVNode("",!0)]),_:1},8,["visible","onHide"])],4)}const yx=Pi(iF,[["render",aF],["__scopeId","data-v-79a4dbaf"]]),Na={ALL:0,SELECTED:1,HIGHLIGHTED:2,MOVE:3},lF=function(n,e,t){this.eventType=n,this.identifiers=e,this.zincObjects=t},cF=function(n,e,t){this.targetedID=[];const i=n,r=e;this.targetEventType=t;const s=this;t===void 0&&(this.targetEventType=Na.ALL),this.getEventType=function(){return t},this.notify=function(o,l,u,c){if(o!==i&&(s.targetEventType===Na.ALL||s.targetEventType===l)){const f=new lF(l,u,c);r(f)}}},uF=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 cF(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}}},vx={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}},vf={ALL:0,DESTROYED:1,NAME_CHANGED:2,SETTINGS_CHANGED:3},vn=function(){this.typeName="Base Module",this.instanceName="default",this.onChangedCallbacks=[],this.eventNotifiers=[]};vn.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,vf.NAME_CHANGED)}},vn.prototype.settingsChanged=function(){const n=this.onChangedCallbacks.slice();for(let e=0;e<n.length;e++)n[e](this,vf.SETTINGS_CHANGED)},vn.prototype.exportSettings=function(){const n={};return n.dialog=this.typeName,n.name=this.instanceName,n},vn.prototype.importSettings=function(n){return n.dialog==this.typeName?(this.setName(n.name),!0):!1},vn.prototype.publishChanges=function(n,e,t){for(let i=0;i<this.eventNotifiers.length;i++)this.eventNotifiers[i].publish(this,e,n,t)},vn.prototype.getName=function(){return this.instanceName},vn.prototype.destroy=function(){const n=this.onChangedCallbacks.slice();for(let e=0;e<n.length;e++)n[e](this,vf.DESTROYED);delete this},vn.prototype.addChangedCallback=function(n){this.onChangedCallbacks.includes(n)==!1&&this.onChangedCallbacks.push(n)},vn.prototype.removeChangedCallback=function(n){const e=this.onChangedCallbacks.indexOf(n);e>-1&&this.onChangedCallbacks.splice(e,1)},vn.prototype.addNotifier=function(n){this.eventNotifiers.push(n)};const Uc=(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=gr.THREE.LessEqualDepth),n[i].children.forEach(s=>{const o=s.userData;o&&o.isZincObject&&s.material&&s.material.emissive&&s.material.emissive.setRGB(...e)})}},dF=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(u,c){if(u.length==0&&c.length==0)return!1;for(let f=0;f<u.length;f++){let h=!1;for(let p=0;p<c.length;p++)u[f]===c[p]&&(h=!0);if(!h)return!0}for(let f=0;f<c.length;f++){let h=!1;for(let p=0;p<u.length;p++)c[f]===u[p]&&(h=!0);if(!h)return!0}return!1},o=function(u,c){if(t.length=0,c.length==0)return u;for(let f=0;f<u.length;f++){let h=!1;for(let p=0;p<c.length;p++)u[f]===c[p]&&(h=!0);h||t.push(u[f])}return t};this.setHighlighted=function(u){const c=[...n];r.resetHighlighted();const f=o(u,e),h=l(f);return Uc(h,r.highlightColour,!1),n=f,s(n,c)},this.setSelected=function(u){const c=[...e];r.resetHighlighted(),r.resetSelected();const f=l(u);return Uc(f,r.selectColour,!1),e=u,s(e,c)};const l=function(u){i.length=0;for(let c=0;c<u.length;c++)u[c].material&&i.push(u[c]);return i};this.resetHighlighted=function(){const u=l(n);Uc(u,r.originalColour,!0),n=[]},this.resetSelected=function(){const u=l(e);Uc(u,r.originalColour,!0),e=[]},this.getSelected=function(){return e},this.reset=function(){r.resetSelected(),r.resetHighlighted()}},bf=kc.THREE,hF=function(){const n=document.createElement("div");let e;if(n.style.height="100%",vx.isWebGLAvailable())e=new kc.Renderer(n,window),kc.defaultMaterialColor=16777116,e.initialiseVisualisation(),e.playAnimation=!1;else{const t=vx.getWebGLErrorMessage();n.appendChild(t)}return{Zinc:kc,renderer:e,container:n}},vt=function(){vn.call(this),this.scene=void 0,this.rendererContainer=void 0,this.displayArea=void 0,this.graphicsHighlight=new dF,this.selectObjectOnPick=!0,this.zincRenderer=null,this.selectedScreenCoordinates=new bf.Vector3,this.selectedCenter=void 0,this.liveUpdatesObjects=void 0,this.ignorePreviousSelected=!1};vt.prototype=Object.create(vn.prototype),vt.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 i.object.name==="_Unnamed"?3:2}return 0});let t=e.indexOf(1);return t>-1||(t=e.indexOf(2),t=t>-1?t:e.indexOf(3)),n[t]}},vt.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},vt.prototype.setHighlightedByObjects=function(n,e,t,i){const r=this.graphicsHighlight.setHighlighted(n),s=this.objectsToZincObjects(n);if(i){let o=Na.MOVE;r&&(o=Na.HIGHLIGHTED);const l=this.getAnnotationsFromObjects(n);l.length>0&&(l[0].coords=e,l[0].extraData=t),this.publishChanges(l,o,s)}return r},vt.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)},vt.prototype.setupLiveCoordinates=function(n){if(this.liveUpdatesObjects=n,n&&n.length>0){const e=this.scene.getBoundingBoxOfZincObjects(n);let t=new bf.Vector3;e?(e.getCenter(t),this.selectedCenter==null?this.selectedCenter=t:this.selectedCenter.copy(t)):this.selectedCenter=void 0}else this.selectedCenter=void 0},vt.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},vt.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=Na.SELECTED,l=this.getAnnotationsFromObjects(n);l.length>0&&(l[0].coords=e,l[0].extraData=t),this.publishChanges(l,o,s)}}return r},vt.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)},vt.prototype.findObjectsByGroupName=function(n){return this.scene.findObjectsWithGroupName(n)},vt.prototype.setHighlightedByGroupName=function(n,e){const t=this.findObjectsByGroupName(n);return this.setHighlightedByObjects(t,void 0,{},e)},vt.prototype.setSelectedByGroupName=function(n,e){const t=this.findObjectsByGroupName(n);return this.setSelectedByObjects(t,void 0,{},e)},vt.prototype.changeBackgroundColour=function(n){const e=new bf.Color(n);this.zincRenderer&&this.zincRenderer.getThreeJSRenderer().setClearColor(e,1)},vt.prototype.resetView=function(){this.zincRenderer&&this.zincRenderer.resetView()},vt.prototype.viewAll=function(){this.zincRenderer&&this.zincRenderer.viewAll()},vt.prototype.playAnimation=function(n){this.zincRenderer&&(this.zincRenderer.playAnimation=n)},vt.prototype.setPlayRate=function(n){this.zincRenderer&&this.zincRenderer.setPlayRate(n)},vt.prototype.getPlayRate=function(n){return this.zincRenderer?this.zincRenderer.getPlayRate():0},vt.prototype.initialiseRenderer=function(n){if(this.zincRenderer===void 0||this.rendererContainer===void 0){let e=hF();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())},vt.prototype.destroy=function(){this.zincRenderer&&(this.zincRenderer.dispose(),this.zincRenderer.getThreeJSRenderer().dispose(),this.zincRenderer=void 0),vn.prototype.destroy.call(this)};const fF=function(){this.type="anatomical",this.data=void 0,this.isAnnotation=!0},pF=function(){this.currentName="",this.currentSystem="",this.currentPart="",this.currentSpecies="",this.metaURL="",this.viewURL="",this.timeVarying=!1,this.currentTime=0},bx=function(n){vt.call(this);const e=this;let t;this.sceneData=new pF;const i=new Array,r=new Array,s=new Array,o=new Array;let l,u;const c=n;this.NDCCameraControl=void 0,e.typeName="Organ Viewer",this.getSceneData=function(){return e.sceneData},this.updateTime=function(E){let O=6e3;e.scene&&(O=e.scene.getDuration());const A=E/100*O;e.sceneData.nerveMapIsActive||e.scene&&e.scene.setMorphsTime(A),e.sceneData.currentTime=E};const f=function(){let E=3e3;e.scene&&(E=e.scene.getDuration());const O=e.zincRenderer.getCurrentTime();for(let A=0;A<i.length;A++)i[A](O);!e.sceneData.nerveMapIsActive&&t&&t.setMorphsTime(O),e.sceneData.nerveMap&&e.sceneData.nerveMap.additionalReader&&e.sceneData.nerveMap.additionalReader.setTime(O/E),e.sceneData.currentTime=O/E*100};this.getCurrentTime=function(){return e.sceneData.currentTime},this.toggleSyncControl=(E,O)=>{let A=this.scene.getZincCameraControls();E?(A.resetView(),this.NDCCameraControl=A.enableSyncControl(),A.setRotationMode(O)):(A.disableSyncControl(),this.NDCCameraControl=void 0,A.setRotationMode("free"))},this.isSyncControl=()=>this.NDCCameraControl!==void 0,this.setSyncControlZoomToBox=E=>{this.NDCCameraControl&&this.NDCCameraControl.zoomToBox(E,2)},this.setSyncControlCallback=E=>{this.NDCCameraControl&&this.NDCCameraControl.setEventCallback(E)},this.setSyncControlCenterZoom=(E,O)=>{this.NDCCameraControl&&this.NDCCameraControl.setCenterZoom(E,O)};const h=function(){if(e.zincRenderer.playAnimation&&e.liveUpdatesObjects&&e.setupLiveCoordinates(e.liveUpdatesObjects),e.selectedCenter){const E=new gr.THREE.Vector3;E.copy(e.selectedCenter);const O=e.scene.vectorToScreenXY(E);e.selectedScreenCoordinates.x=O.x,e.selectedScreenCoordinates.y=O.y}},p=function(){return function(){f()}},y=function(){return function(){h()}};this.addTimeChangedCallback=function(E){i.push(E)},this.setTexturePos=function(E){e.sceneData.nerveMap&&e.sceneData.nerveMap.additionalReader&&e.sceneData.nerveMap.additionalReader.setSliderPos(E)},this.addSceneChangedCallback=function(E){r.push(E)},this.addOrganPartAddedCallback=function(E){s.push(E)},this.addOrganPartRemovedCallback=function(E){o.push(E)},this.setFinishDownloadCallback=function(E){l=E},this.unsetFinishDownloadCallback=function(){l=void 0},this.setDownloadErrorCallback=function(E){u=E},this.unsetDownloadErrorCallback=function(){u=void 0},this.getNamedObjectsToScreenCoordinates=function(E,O){const A=new gr.THREE.Vector3;A.setFromMatrixPosition(obj.matrixWorld);const L=width/2,R=height/2;return A.project(O),A.x=A.x*L+L,A.y=-(A.y*R)+R,A};const m=function(E){let O,A;if(E!==void 0){let L=!1;E.object.userData&&E.object.userData.isMarker?(L=!0,A=E.object.userData.parent.getMorph()):A=E.object;try{A.userData.userData.annotation.data.lastActionOnMarker=L}finally{}if(A)if(A.name)O=A.name;else{const R=e.getAnnotationsFromObjects([A]);R&&R[0]&&(O=R[0].data.group)}}return{id:O,object:A}},d=function(){return function(E,O,A){var I;const L=e.getIntersectedObject(E),R=m(L),N={worldCoords:[L?L.point.x:0,L?L.point.y:0,L?L.point.z:0],intersected:L,intersects:E},x={x:O,y:A};if(R.id){N.threeID=(I=R.object)==null?void 0:I.id,R.object.userData.isGlyph?R.object.name?e.setSelectedByObjects([R.object],x,N,!0):e.setSelectedByZincObjects(R.object.userData.getGlyphset(),x,N,!0):e.setSelectedByObjects([R.object],x,N,!0);return}else e.setSelectedByObjects([],x,N,!0)}},b=function(){return function(E,O,A){var I;const L=e.getIntersectedObject(E),R=m(L),N={worldCoords:[L?L.point.x:0,L?L.point.y:0,L?L.point.z:0]},x={x:O,y:A};if(R.id){N.threeID=(I=R.object)==null?void 0:I.id,e.displayArea.style.cursor="pointer",e.setHighlightedByObjects([R.object],x,N,!0);return}else e.displayArea.style.cursor="auto",e.setHighlightedByObjects([],x,N,!0)}},v=function(E,O,A,L){if(L=="all"||L=="geometries"){const R=E.findGeometriesWithGroupName(O);for(let N=0;N<R.length;N++)R[N].setVisibility(A)}if(L=="all"||L=="glyphsets"){const R=E.findGlyphsetsWithGroupName(O);for(let N=0;N<R.length;N++)R[N].setVisibility(A)}if(L=="all"||L=="pointsets"){const R=E.findPointsetsWithGroupName(O);for(let N=0;N<R.length;N++)R[N].setVisibility(A)}if(L=="all"||L=="lines"){const R=E.findLinesWithGroupName(O);for(let N=0;N<R.length;N++)R[N].setVisibility(A)}};this.changeGeometriesVisibility=function(E,O){v(e.scene,E,O,"geometries")},this.changeGlyphsetsVisibility=function(E,O){v(e.scene,E,O,"glyphsets")},this.changeLinesVisibility=function(E,O){v(e.scene,E,O,"lines")},this.changePointsetsVisibility=function(E,O){v(e.scene,E,O,"pointsets")},this.changeOrganPartsVisibility=function(E,O,A){let L="all";A!==void 0&&(L=A),v(e.scene,E,O,L)},this.changeOrganPartsVisibilityCallback=function(E){return function(O){e.changeOrganPartsVisibility(E,O)}},this.changeBackgroundColour=function(E){const O=new gr.THREE.Color(E);e.zincRenderer&&e.zincRenderer.getThreeJSRenderer().setClearColor(O,1)};const g=function(E,O,A,L){for(let x=0;x<s.length;x++)s[x](L,e.scene.isTimeVarying());const R=new fF,N=L.region.getFullPath();R.data={species:e.sceneData.currentSpecies,system:E,part:O,group:L.groupName,region:N,uuid:L.uuid,lastActionOnMarker:!1},L.userData.annotation=R},w=function(E,O,A,L){for(let R=0;R<o.length;R++)o[R](L)},S=function(E,O,A){return function(L){g(E,O,A,L)}},T=function(E,O,A){return function(L){w(E,O,A,L)}},M=function(){return function(){e.settingsChanged(),e.sceneData.timeVarying=e.scene.isTimeVarying(),l&&l()}},C=function(){return function(E){if((E==null?void 0:E.type)==="Error"&&u){const O={xhr:E.xhr,type:"download-error"};u(O)}}};this.updateFieldvisibility=function(E,O){for(let A=0;A<E.length;A++)if(O!=A){const L=E[A].PartName;e.changeOrganPartsVisibility(L,!1)}if(O>-1){const A=E[O].PartName;if(e.scene.findGeometriesWithGroupName(A).length>0||e.scene.findGlyphsetsWithGroupName(A).length>0)e.changeOrganPartsVisibility(A,!0);else{const L=getOrganDetails(E[O].SystemName,A);L!=null&&e.scene.loadMetadataURL(c.getOrgansDirectoryPrefix()+"/"+L.meta)}}},this.getAvailableSpecies=function(E,O,A){const L=new Array;L.push("none");const R=Object.keys(organsFileMap);for(index in R){const N=R[index];N!=E&&organsFileMap[N].hasOwnProperty(O)&&organsFileMap[N][O].hasOwnProperty(A)&&L.push(N)}return L},this.getCentreAndSize=function(){const E=new gr.THREE.Vector3,O=this.scene.getBoundingBox();O.getCenter(E);const A=[E.x,E.y,E.z];O.getSize(E);const L=[E.x,E.y,E.z];return{centre:A,size:L}};const _=function(E,O,A,L){e.sceneData.nerveMapIsActive=!1,e.sceneData.nerveMap=void 0,e.sceneData.metaURL="",e.sceneData.viewURL="",e.sceneData.currentSpecies=E,e.sceneData.currentSystem=O,e.sceneData.currentPart=A,e.sceneData.currentTime=0,e.sceneData.timeVarying=!1;let R="";E&&(R=E+"/"),O&&(R=O+"/"),A&&(R=A),e.sceneData.currentName=R};this.loadOrgansFromURL=function(E,O,A,L,R,N){if(e.zincRenderer&&L&&e.sceneData.metaURL!==E){_(O,A,L);const x=e.sceneData.currentName;let I=e.zincRenderer.getSceneByName(x);I?N&&I.clearAll():I=e.zincRenderer.createScene(x),e.selectObjectOnPick=!0;for(let F=0;F<r.length;F++)r[F](e.sceneData);R&&R!=""?(e.sceneData.viewURL=R,I.loadViewURL(e.sceneData.viewURL)):e.sceneData.viewURL=void 0,e.sceneData.metaURL=E,I.addZincObjectAddedCallbacks(S(A,L,!1)),I.addZincObjectRemovedCallbacks(T(void 0,L,!1)),I.loadMetadataURL(E,C(),M()),e.scene=I,e.zincRenderer.setCurrentScene(I),e.graphicsHighlight.reset();const B=I.getZincCameraControls();B.enableRaycaster(I,d(),b()),B.setMouseButtonAction("AUXILIARY","ZOOM"),B.setMouseButtonAction("SECONDARY","PAN")}},this.loadGLTFFromURL=function(E,O,A){if(e.zincRenderer&&O&&e.sceneData.metaURL!==E){_(void 0,void 0,O);const L=e.sceneData.currentName;let R=e.zincRenderer.getSceneByName(L);R?A&&R.clearAll():R=e.zincRenderer.createScene(L);for(let x=0;x<r.length;x++)r[x](e.sceneData);e.sceneData.viewURL=void 0,e.sceneData.metaURL=E,R.addZincObjectAddedCallbacks(S(void 0,O,!1)),R.addZincObjectRemovedCallbacks(T(void 0,O,!1)),R.loadGLTF(E,void 0,M()),e.scene=R,e.zincRenderer.setCurrentScene(R),e.graphicsHighlight.reset();const N=R.getZincCameraControls();N.enableRaycaster(R,d(),b()),N.setMouseButtonAction("AUXILIARY","ZOOM"),N.setMouseButtonAction("SECONDARY","PAN")}},this.alignCameraWithSelectedObject=function(E){const O=e.graphicsHighlight.getSelected();O&&O[0]&&O[0].userData&&e.scene.alignObjectToCameraView(O[0].userData,E)},this.exportSettings=function(){const E={};return E.name=e.instanceName,e.sceneData.currentSystem&&(E.system=e.sceneData.currentSystem),e.sceneData.currentSpecies&&(E.species=e.sceneData.currentSpecies),e.sceneData.currentPart&&(E.part=e.sceneData.currentPart),E.metaURL=e.sceneData.metaURL,e.sceneData.viewURL&&(E.viewURL=e.sceneData.viewURL),E.dialog="Organ Viewer",E},this.importSettings=function(E){return E&&E.dialog==this.typeName?(e.setName(E.name),E.metaURL!==void 0&&E.metaURL!=""?e.loadOrgansFromURL(E.metaURL,E.species,E.system,E.part,E.viewURL,!0):e.loadOrgans(E.species,E.system,E.part),!0):!1},function(){e.initialiseRenderer(void 0),e.zincRenderer&&(e.zincRenderer.addPreRenderCallbackFunction(p()),e.zincRenderer.addPostRenderCallbackFunction(y()))}()};bx.prototype=Object.create(vt.prototype);var at=function(){return at=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},at.apply(this,arguments)};function mF(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{c(i.next(f))}catch(h){o(h)}}function u(f){try{c(i.throw(f))}catch(h){o(h)}}function c(f){f.done?s(f.value):r(f.value).then(l,u)}c((i=i.apply(n,[])).next())})}function gF(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(c){return function(f){return u([c,f])}}function u(c){if(i)throw new TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(t=0)),t;)try{if(i=1,r&&(s=c[0]&2?r.return:c[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,c[1])).done)return s;switch(r=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return t.label++,{value:c[1],done:!1};case 5:t.label++,r=c[1],c=[0];continue;case 7:c=t.ops.pop(),t.trys.pop();continue;default:if(s=t.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]<s[3])){t.label=c[1];break}if(c[0]===6&&t.label<s[1]){t.label=s[1],s=c;break}if(s&&t.label<s[2]){t.label=s[2],t.ops.push(c);break}s[2]&&t.ops.pop(),t.trys.pop();continue}c=e.call(n,t)}catch(f){c=[6,f],r=0}finally{i=s=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}function Xe(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 Ct(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 yF="ENTRIES",xx="KEYS",wx="VALUES",Xt="",xf=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=Mo(this._path),t=e.node,i=e.keys;if(Mo(i)===Xt)return{done:!1,value:this.result()};var r=t.get(Mo(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=Mo(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 Mo(t)}).filter(function(e){return e!==Xt}).join("")},n.prototype.value=function(){return Mo(this._path).node.get(Xt)},n.prototype.result=function(){switch(this._type){case wx:return this.value();case xx:return this.key();default:return[this.key(),this.value()]}},n.prototype[Symbol.iterator]=function(){return this},n}(),Mo=function(n){return n[n.length-1]},vF=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 u=1;u<s;++u)o[u*r]=u;return Mx(n,e,t,i,o,1,r,""),i},Mx=function(n,e,t,i,r,s,o,l){var u,c,f=s*o;try{e:for(var h=Xe(n.keys()),p=h.next();!p.done;p=h.next()){var y=p.value;if(y===Xt){var m=r[f-1];m<=t&&i.set(l,[n.get(y),m])}else{for(var d=s,b=0;b<y.length;++b,++d){for(var v=y[b],g=o*d,w=g-o,S=r[g],T=Math.max(0,d-t-1),M=Math.min(o-1,d+t),C=T;C<M;++C){var _=v!==e[C],P=r[w+C]+ +_,E=r[w+C+1]+1,O=r[g+C]+1,A=r[g+C+1]=Math.min(P,E,O);A<S&&(S=A)}if(S>t)continue e}Mx(n.get(y),e,t,i,r,d,o,l+y)}}}catch(L){u={error:L}}finally{try{p&&!p.done&&(c=h.return)&&c.call(h)}finally{if(u)throw u.error}}},wf=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=Ct(Gc(this._tree,e.slice(this._prefix.length)),2),s=r[0],o=r[1];if(s===void 0){var l=Ct(_f(o),2),u=l[0],c=l[1];try{for(var f=Xe(u.keys()),h=f.next();!h.done;h=f.next()){var p=h.value;if(p!==Xt&&p.startsWith(c)){var y=new Map;return y.set(p.slice(c.length),u.get(p)),new n(y,e)}}}catch(m){t={error:m}}finally{try{h&&!h.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,bF(this._tree,e)},n.prototype.entries=function(){return new xf(this,yF)},n.prototype.forEach=function(e){var t,i;try{for(var r=Xe(this),s=r.next();!s.done;s=r.next()){var o=Ct(s.value,2),l=o[0],u=o[1];e(l,u,this)}}catch(c){t={error:c}}finally{try{s&&!s.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}},n.prototype.fuzzyGet=function(e,t){return vF(this._tree,e,t)},n.prototype.get=function(e){var t=Mf(this._tree,e);return t!==void 0?t.get(Xt):void 0},n.prototype.has=function(e){var t=Mf(this._tree,e);return t!==void 0&&t.has(Xt)},n.prototype.keys=function(){return new xf(this,xx)},n.prototype.set=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var i=Sf(this._tree,e);return i.set(Xt,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=Sf(this._tree,e);return i.set(Xt,t(i.get(Xt))),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=Sf(this._tree,e),r=i.get(Xt);return r===void 0&&i.set(Xt,r=t()),r},n.prototype.values=function(){return new xf(this,wx)},n.prototype[Symbol.iterator]=function(){return this.entries()},n.from=function(e){var t,i,r=new n;try{for(var s=Xe(e),o=s.next();!o.done;o=s.next()){var l=Ct(o.value,2),u=l[0],c=l[1];r.set(u,c)}}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}(),Gc=function(n,e,t){var i,r;if(t===void 0&&(t=[]),e.length===0||n==null)return[n,t];try{for(var s=Xe(n.keys()),o=s.next();!o.done;o=s.next()){var l=o.value;if(l!==Xt&&e.startsWith(l))return t.push([n,l]),Gc(n.get(l),e.slice(l.length),t)}}catch(u){i={error:u}}finally{try{o&&!o.done&&(r=s.return)&&r.call(s)}finally{if(i)throw i.error}}return t.push([n,e]),Gc(void 0,"",t)},Mf=function(n,e){var t,i;if(e.length===0||n==null)return n;try{for(var r=Xe(n.keys()),s=r.next();!s.done;s=r.next()){var o=s.value;if(o!==Xt&&e.startsWith(o))return Mf(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}}},Sf=function(n,e){var t,i,r=e.length;e:for(var s=0;n&&s<r;){try{for(var o=(t=void 0,Xe(n.keys())),l=o.next();!l.done;l=o.next()){var u=l.value;if(u!==Xt&&e[s]===u[0]){for(var c=Math.min(r-s,u.length),f=1;f<c&&e[s+f]===u[f];)++f;var h=n.get(u);if(f===u.length)n=h;else{var p=new Map;p.set(u.slice(f),h),n.set(e.slice(s,s+f),p),n.delete(u),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},bF=function(n,e){var t=Ct(Gc(n,e),2),i=t[0],r=t[1];if(i!==void 0){if(i.delete(Xt),i.size===0)Sx(r);else if(i.size===1){var s=Ct(i.entries().next().value,2),o=s[0],l=s[1];_x(r,o,l)}}},Sx=function(n){if(n.length!==0){var e=Ct(_f(n),2),t=e[0],i=e[1];if(t.delete(i),t.size===0)Sx(n.slice(0,-1));else if(t.size===1){var r=Ct(t.entries().next().value,2),s=r[0],o=r[1];s!==Xt&&_x(n.slice(0,-1),s,o)}}},_x=function(n,e,t){if(n.length!==0){var i=Ct(_f(n),2),r=i[0],s=i[1];r.set(s+e,t),r.delete(s)}},_f=function(n){return n[n.length-1]},Da,Tf="or",Tx="and",xF="and_not",wF=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?Lf:e.autoVacuum;this._options=at(at(at({},Af),e),{autoVacuum:t,searchOptions:at(at({},Ex),e.searchOptions||{}),autoSuggestOptions:at(at({},EF),e.autoSuggestOptions||{})}),this._index=new wf,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=Rf,this.addFields(this._options.fields)}return n.prototype.add=function(e){var t,i,r,s,o,l,u=this._options,c=u.extractField,f=u.tokenize,h=u.processTerm,p=u.fields,y=u.idField,m=c(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 d=this.addDocumentId(m);this.saveStoredFields(d,e);try{for(var b=Xe(p),v=b.next();!v.done;v=b.next()){var g=v.value,w=c(e,g);if(w!=null){var S=f(w.toString(),g),T=this._fieldIds[g],M=new Set(S).size;this.addFieldLength(d,T,this._documentCount-1,M);try{for(var C=(r=void 0,Xe(S)),_=C.next();!_.done;_=C.next()){var P=_.value,E=h(P,g);if(Array.isArray(E))try{for(var O=(o=void 0,Xe(E)),A=O.next();!A.done;A=O.next()){var L=A.value;this.addTerm(T,d,L)}}catch(R){o={error:R}}finally{try{A&&!A.done&&(l=O.return)&&l.call(O)}finally{if(o)throw o.error}}else E&&this.addTerm(T,d,E)}}catch(R){r={error:R}}finally{try{_&&!_.done&&(s=C.return)&&s.call(C)}finally{if(r)throw r.error}}}}}catch(R){t={error:R}}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=Xe(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,h,p){var y=f.chunk,m=f.promise;return y.push(h),(p+1)%s===0?{chunk:[],promise:m.then(function(){return new Promise(function(d){return setTimeout(d,0)})}).then(function(){return i.addAll(y)})}:{chunk:y,promise:m}},o),u=l.chunk,c=l.promise;return c.then(function(){return i.addAll(u)})},n.prototype.remove=function(e){var t,i,r,s,o,l,u=this._options,c=u.tokenize,f=u.processTerm,h=u.extractField,p=u.fields,y=u.idField,m=h(e,y);if(m==null)throw new Error('MiniSearch: document does not have ID field "'.concat(y,'"'));var d=this._idToShortId.get(m);if(d==null)throw new Error("MiniSearch: cannot remove document with ID ".concat(m,": it is not in the index"));try{for(var b=Xe(p),v=b.next();!v.done;v=b.next()){var g=v.value,w=h(e,g);if(w!=null){var S=c(w.toString(),g),T=this._fieldIds[g],M=new Set(S).size;this.removeFieldLength(d,T,this._documentCount,M);try{for(var C=(r=void 0,Xe(S)),_=C.next();!_.done;_=C.next()){var P=_.value,E=f(P,g);if(Array.isArray(E))try{for(var O=(o=void 0,Xe(E)),A=O.next();!A.done;A=O.next()){var L=A.value;this.removeTerm(T,d,L)}}catch(R){o={error:R}}finally{try{A&&!A.done&&(l=O.return)&&l.call(O)}finally{if(o)throw o.error}}else E&&this.removeTerm(T,d,E)}}catch(R){r={error:R}}finally{try{_&&!_.done&&(s=C.return)&&s.call(C)}finally{if(r)throw r.error}}}}}catch(R){t={error:R}}finally{try{v&&!v.done&&(i=b.return)&&i.call(b)}finally{if(t)throw t.error}}this._storedFields.delete(d),this._documentIds.delete(d),this._idToShortId.delete(m),this._fieldLength.delete(d),this._documentCount-=1},n.prototype.removeAll=function(e){var t,i;if(e)try{for(var r=Xe(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 wf,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=Xe(e),o=s.next();!o.done;o=s.next()){var l=o.value;this.discard(l)}}catch(u){t={error:u}}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=Rf,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 mF(this,void 0,void 0,function(){var i,r,s,o,l,u,c,f,h,p,y,m,d,b,v,g,w,S,T,M,C,_,P,E,O;return gF(this,function(A){switch(A.label){case 0:if(i=this._dirtCount,!this.vacuumConditionsMet(t))return[3,10];r=e.batchSize||Cf.batchSize,s=e.batchWait||Cf.batchWait,o=1,A.label=1;case 1:A.trys.push([1,7,8,9]),l=Xe(this._index),u=l.next(),A.label=2;case 2:if(u.done)return[3,6];c=Ct(u.value,2),f=c[0],h=c[1];try{for(p=(_=void 0,Xe(h)),y=p.next();!y.done;y=p.next()){m=Ct(y.value,2),d=m[0],b=m[1];try{for(v=(E=void 0,Xe(b)),g=v.next();!g.done;g=v.next())w=Ct(g.value,1),S=w[0],!this._documentIds.has(S)&&(b.size<=1?h.delete(d):b.delete(S))}catch(L){E={error:L}}finally{try{g&&!g.done&&(O=v.return)&&O.call(v)}finally{if(E)throw E.error}}}}catch(L){_={error:L}}finally{try{y&&!y.done&&(P=p.return)&&P.call(p)}finally{if(_)throw _.error}}return this._index.get(f).size===0&&this._index.delete(f),o%r!==0?[3,4]:[4,new Promise(function(L){return setTimeout(L,s)})];case 3:A.sent(),A.label=4;case 4:o+=1,A.label=5;case 5:return u=l.next(),[3,2];case 6:return[3,9];case 7:return T=A.sent(),M={error:T},[3,9];case 8:try{u&&!u.done&&(C=l.return)&&C.call(l)}finally{if(M)throw M.error}return[7];case 9:this._dirtCount-=i,A.label=10;case 10:return[4,null];case 11:return A.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||Lf.minDirtCount,i=i||Lf.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=Xe(s),u=l.next();!u.done;u=l.next()){var c=Ct(u.value,2),f=c[0],h=c[1],p=h.score,y=h.terms,m=h.match,d=y.length||1,b={id:this._documentIds.get(f),score:p*d,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{u&&!u.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(Cx),o},n.prototype.autoSuggest=function(e,t){var i,r,s,o;t===void 0&&(t={}),t=at(at({},this._options.autoSuggestOptions),t);var l=new Map;try{for(var u=Xe(this.search(e,t)),c=u.next();!c.done;c=u.next()){var f=c.value,h=f.score,p=f.terms,y=p.join(" "),m=l.get(y);m!=null?(m.score+=h,m.count+=1):l.set(y,{score:h,terms:p,count:1})}}catch(T){i={error:T}}finally{try{c&&!c.done&&(r=u.return)&&r.call(u)}finally{if(i)throw i.error}}var d=[];try{for(var b=Xe(l),v=b.next();!v.done;v=b.next()){var g=Ct(v.value,2),m=g[0],w=g[1],h=w.score,p=w.terms,S=w.count;d.push({suggestion:m,terms:p,score:h/S})}}catch(T){s={error:T}}finally{try{v&&!v.done&&(o=b.return)&&o.call(b)}finally{if(s)throw s.error}}return d.sort(Cx),d},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(Af.hasOwnProperty(e))return Ef(Af,e);throw new Error('MiniSearch: unknown option "'.concat(e,'"'))},n.loadJS=function(e,t){var i,r,s,o,l,u,c=e.index,f=e.documentCount,h=e.nextId,p=e.documentIds,y=e.fieldIds,m=e.fieldLength,d=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 w=new n(t);w._documentCount=f,w._nextId=h,w._documentIds=Hc(p),w._idToShortId=new Map,w._fieldIds=y,w._fieldLength=Hc(m),w._avgFieldLength=d,w._storedFields=Hc(b),w._dirtCount=v||0,w._index=new wf;try{for(var S=Xe(w._documentIds),T=S.next();!T.done;T=S.next()){var M=Ct(T.value,2),C=M[0],_=M[1];w._idToShortId.set(_,C)}}catch(F){i={error:F}}finally{try{T&&!T.done&&(r=S.return)&&r.call(S)}finally{if(i)throw i.error}}try{for(var P=Xe(c),E=P.next();!E.done;E=P.next()){var O=Ct(E.value,2),A=O[0],L=O[1],R=new Map;try{for(var N=(l=void 0,Xe(Object.keys(L))),x=N.next();!x.done;x=N.next()){var I=x.value,B=L[I];g===1&&(B=B.ds),R.set(parseInt(I,10),Hc(B))}}catch(F){l={error:F}}finally{try{x&&!x.done&&(u=N.return)&&u.call(N)}finally{if(l)throw l.error}}w._index.set(A,R)}}catch(F){s={error:F}}finally{try{E&&!E.done&&(o=P.return)&&o.call(P)}finally{if(s)throw s.error}}return w},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=at(at(at({},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,u=o.processTerm,c=o.searchOptions,f=at(at({tokenize:l,processTerm:u},c),t),h=f.tokenize,p=f.processTerm,y=h(e).flatMap(function(b){return p(b)}).filter(function(b){return!!b}),m=y.map(TF(f)),d=m.map(function(b){return i.executeQuerySpec(b,f)});return this.combineResults(d,f.combineWith)},n.prototype.executeQuerySpec=function(e,t){var i,r,s,o,l=at(at({},this._options.searchOptions),t),u=(l.fields||this._options.fields).reduce(function(I,B){var F;return at(at({},I),(F={},F[B]=Ef(l.boost,B)||1,F))},{}),c=l.boostDocument,f=l.weights,h=l.maxFuzzy,p=l.bm25,y=at(at({},Ex.weights),f),m=y.fuzzy,d=y.prefix,b=this._index.get(e.term),v=this.termResults(e.term,e.term,1,b,u,c,p),g,w;if(e.prefix&&(g=this._index.atPrefix(e.term)),e.fuzzy){var S=e.fuzzy===!0?.2:e.fuzzy,T=S<1?Math.min(h,Math.round(e.term.length*S)):S;T&&(w=this._index.fuzzyGet(e.term,T))}if(g)try{for(var M=Xe(g),C=M.next();!C.done;C=M.next()){var _=Ct(C.value,2),P=_[0],E=_[1],O=P.length-e.term.length;if(O){w==null||w.delete(P);var A=d*P.length/(P.length+.3*O);this.termResults(e.term,P,A,E,u,c,p,v)}}}catch(I){i={error:I}}finally{try{C&&!C.done&&(r=M.return)&&r.call(M)}finally{if(i)throw i.error}}if(w)try{for(var L=Xe(w.keys()),R=L.next();!R.done;R=L.next()){var P=R.value,N=Ct(w.get(P),2),x=N[0],O=N[1];if(O){var A=m*P.length/(P.length+O);this.termResults(e.term,P,A,x,u,c,p,v)}}}catch(I){s={error:I}}finally{try{R&&!R.done&&(o=L.return)&&o.call(L)}finally{if(s)throw s.error}}return v},n.prototype.executeWildcardQuery=function(e){var t,i,r=new Map,s=at(at({},this._options.searchOptions),e);try{for(var o=Xe(this._documentIds),l=o.next();!l.done;l=o.next()){var u=Ct(l.value,2),c=u[0],f=u[1],h=s.boostDocument?s.boostDocument(f,"",this._storedFields.get(c)):1;r.set(c,{score:h,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=Tf),e.length===0)return new Map;var i=t.toLowerCase();return e.reduce(MF[i])||new Map},n.prototype.toJSON=function(){var e,t,i,r,s=[];try{for(var o=Xe(this._index),l=o.next();!l.done;l=o.next()){var u=Ct(l.value,2),c=u[0],f=u[1],h={};try{for(var p=(i=void 0,Xe(f)),y=p.next();!y.done;y=p.next()){var m=Ct(y.value,2),d=m[0],b=m[1];h[d]=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([c,h])}}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,u){var c,f,h,p,y;if(u===void 0&&(u=new Map),r==null)return u;try{for(var m=Xe(Object.keys(s)),d=m.next();!d.done;d=m.next()){var b=d.value,v=s[b],g=this._fieldIds[b],w=r.get(g);if(w!=null){var S=w.size,T=this._avgFieldLength[g];try{for(var M=(h=void 0,Xe(w.keys())),C=M.next();!C.done;C=M.next()){var _=C.value;if(!this._documentIds.has(_)){this.removeTerm(g,_,t),S-=1;continue}var P=o?o(this._documentIds.get(_),t,this._storedFields.get(_)):1;if(P){var E=w.get(_),O=this._fieldLength.get(_)[g],A=_F(E,S,this._documentCount,O,T,l),L=i*v*P*A,R=u.get(_);if(R){R.score+=L,AF(R.terms,e);var N=Ef(R.match,t);N?N.push(b):R.match[t]=[b]}else u.set(_,{score:L,terms:[e],match:(y={},y[t]=[b],y)})}}}catch(x){h={error:x}}finally{try{C&&!C.done&&(p=M.return)&&p.call(M)}finally{if(h)throw h.error}}}}}catch(x){c={error:x}}finally{try{d&&!d.done&&(f=m.return)&&f.call(m)}finally{if(c)throw c.error}}return u},n.prototype.addTerm=function(e,t,i){var r=this._index.fetch(i,Rx),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,Rx),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=Xe(Object.keys(this._fieldIds)),l=o.next();!l.done;l=o.next()){var u=l.value;if(this._fieldIds[u]===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(u,'". Removing a document after it has changed can corrupt the index!'),"version_conflict");return}}}catch(c){r={error:c}}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 u=this._storedFields.get(e);u==null&&this._storedFields.set(e,u={});try{for(var c=Xe(o),f=c.next();!f.done;f=c.next()){var h=f.value,p=l(t,h);p!==void 0&&(u[h]=p)}}catch(y){i={error:y}}finally{try{f&&!f.done&&(r=c.return)&&r.call(c)}finally{if(i)throw i.error}}}},n.wildcard=Symbol("*"),n}(),Ef=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)?n[e]:void 0},MF=(Da={},Da[Tf]=function(n,e){var t,i;try{for(var r=Xe(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 u=e.get(o),c=u.score,f=u.terms,h=u.match;l.score=l.score+c,l.match=Object.assign(l.match,h),Ax(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},Da[Tx]=function(n,e){var t,i,r=new Map;try{for(var s=Xe(e.keys()),o=s.next();!o.done;o=s.next()){var l=o.value,u=n.get(l);if(u!=null){var c=e.get(l),f=c.score,h=c.terms,p=c.match;Ax(u.terms,h),r.set(l,{score:u.score+f,terms:u.terms,match:Object.assign(u.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},Da[xF]=function(n,e){var t,i;try{for(var r=Xe(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},Da),SF={k:1.2,b:.7,d:.5},_F=function(n,e,t,i,r,s){var o=s.k,l=s.b,u=s.d,c=Math.log(1+(t-e+.5)/(e+.5));return c*(u+n*(o+1)/(n+o*(1-l+l*i/r)))},TF=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}}},Af={idField:"id",extractField:function(n,e){return n[e]},tokenize:function(n){return n.split(CF)},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},Ex={combineWith:Tf,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:SF},EF={combineWith:Tx,prefix:function(n,e,t){return e===t.length-1}},Cf={batchSize:1e3,batchWait:10},Rf={minDirtFactor:.1,minDirtCount:20},Lf=at(at({},Cf),Rf),AF=function(n,e){n.includes(e)||n.push(e)},Ax=function(n,e){var t,i;try{for(var r=Xe(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}}},Cx=function(n,e){var t=n.score,i=e.score;return i-t},Rx=function(){return new Map},Hc=function(n){var e,t,i=new Map;try{for(var r=Xe(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},CF=/[\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;class RF{constructor(){this._searchEngine=new wF({fields:["path","name"],storeFields:["path"],tokenize:(e,t)=>e.split(/[\s/]+/)}),this.idMaps={}}addZincObject(e,t){const i=e.getRegion().getFullPath();let r=e.groupName,s=i?`${i}/${e.groupName}`:e.groupName;r=r.replaceAll('"',""),s=s.replaceAll('"',"");const o={path:s,name:r,id:t};this._searchEngine.add(o),this.idMaps[t]={path:s,zincObject:e}}removeZincObject(e,t){const i=e.getRegion().getFullPath();let r=e.groupName,s=i?`${i}/${e.groupName}`:e.groupName;r=r.replaceAll('"',""),s=s.replaceAll('"',"");const o={path:s,name:r,id:t};this._searchEngine.remove(o),delete this.idMaps[t]}addRegion(e,t){let i=e.getFullPath(),r=e.getName();i=i.replaceAll('"',""),r=r.replaceAll('"',"");const s={path:i,name:r,id:t};this._searchEngine.add(s),this.idMaps[t]={path:i,zincObject:e}}clearResults(){this._}removeAll(){this._searchEngine.removeAll(),this.idMaps={}}auto_suggest(e){let t=[];e.length>2&&["'",'"'].includes(e.slice(0,1))?(e=e.replaceAll(e.slice(0,1),""),t=this._searchEngine.search(e,{prefix:!0,combineWith:"AND"})):e.length>1&&(t=this._searchEngine.search(e,{prefix:!0}));const i=[];t.forEach(o=>{o.id in this.idMaps&&i.push(this.idMaps[o.id].path)});const r=[...new Set(i)],s=[];return r.forEach(o=>s.push({suggestion:'"'+o+'"'})),s}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=FB(e),i}search(e){let t;e.length>2&&["'",'"'].includes(e.slice(0,1))?(e=e.replaceAll(e.slice(0,1),""),t=this._searchEngine.search(e,{prefix:!0,combineWith:"AND"})):e.length>1&&(t=this._searchEngine.search(e,{prefix:!0}));const i=[];return t.forEach(r=>{r.id in this.idMaps&&i.push(this.idMaps[r.id].zincObject)}),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 LF={name:"ScaffoldVuer",components:{Button:bs,Col:Ln,Loading:MR,Option:ws,Popover:vl,Row:Zn,Select:xs,Slider:Sn,TabPane:Mg,Tabs:wg,MapSvgIcon:Pf.MapSvgIcon,MapSvgSpriteColor:Pf.MapSvgSpriteColor,PrimitiveControls:px,ScaffoldTooltip:yx,ElIconWarningFilled:kp,ElIconArrowDown:pu,ElIconArrowLeft:Fi,DrawToolbar:Fa.DrawToolbar,ScaffoldTreeControls:mx},setup(n){let e=a.inject("$annotator");return e||(e=a.markRaw(new Lx.AnnotationService(`${n.flatmapAPI}annotator`)),a.provide("$annotator",e)),{annotator:e}},props:{annotationSidebar:{type:Boolean,default:!1},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/"},showLocalSettings:{type:Boolean,default:!0}},provide(){return{flatmapAPI:this.flatmapAPI,scaffoldUrl:this.url,boundingDims:this.boundingDims}},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",previousMarkerLabels:a.markRaw({}),viewingMode:"Exploration",viewingModes:{Exploration:"View and explore detailed visualization of 3D scaffolds",Annotation:["View feature annotations","Add, comment on and view feature annotations"]},openMapRef:void 0,backgroundIconRef:void 0,annotationFeature:{},offlineAnnotationEnabled:!1,offlineAnnotations:a.markRaw([]),authorisedUser:void 0,toolbarOptions:["Delete","Edit","Point","LineString"],existDrawnFeatures:a.markRaw([]),activeDrawTool:void 0,activeDrawMode:void 0,boundingDims:{centre:[0,0,0],size:[1,1,1]},lastSelected:a.markRaw({region:"",group:"",isSearch:!1})}},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){for(const[e,t]of Object.entries(this.previousMarkerLabels))this.setMarkerModeForObjectsWithName(e,t,"off");for(const[e,t]of Object.entries(n))this.setMarkerModeForObjectsWithName(e,t,"on");this.previousMarkerLabels=a.markRaw({...n})}},beforeCreate:function(){this.$module=new bx,this.selectedObjects=[],this.hoveredObjects=[],this.currentBackground="white",this._currentURL=void 0,this.availableBackground=["white","black","lightskyblue"],this.$_searchIndex=new RF},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 uF;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:{...jc.mapState(gx,["userToken"]),annotationDisplay:function(){return this.viewingMode==="Annotation"&&this.tData.active===!0&&this.activeDrawMode!=="Point"&&this.activeDrawMode!=="LineString"},modeDescription:function(){let n=this.viewingModes[this.viewingMode];return this.viewingMode==="Annotation"?this.authorisedUser?n[1]:n[0]:n}},methods:{enableAxisDisplay:function(n,e){this.$module.scene&&this.$module.scene.enableAxisDisplay(n,e)},createAxisDisplay:function(n){this.$module.scene&&this.$module.scene.createAxisDisplay(n)},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)},removeFromOfflineAnnotation:function(n,e){for(let t=0;t<this.offlineAnnotations.length;t++){const i=this.offlineAnnotations[t];if(i.region===n&&i.group===e){this.offlineAnnotations.splice(t,1);return}}},zincObjectRemoved:function(n){if(this.$module.scene){const e=n.groupName;n.region.findObjectsWithGroupName(e,!1).length===0&&this.$_searchIndex.removeZincObject(n,n.uuid)}},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=ox(this.annotator,this.userToken,t,n,e,this.url,i);if(this.existDrawnFeatures=a.markRaw(this.existDrawnFeatures.filter(s=>s.id!==r.item.id)),this.existDrawnFeatures.push(r.feature),this.offlineAnnotationEnabled){r.group=e;let s=n;s.slice(-1)==="/"&&(s=s.slice(0,-1)),r.region=s,this.offlineAnnotations=JSON.parse(sessionStorage.getItem("anonymous-annotation"))||[],this.offlineAnnotations.push(r),sessionStorage.setItem("anonymous-annotation",JSON.stringify(this.offlineAnnotations))}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),this.annotationSidebar&&this.$emit("annotation-close")},confirmComment:function(n){if(this._editingZincObject){let e=n;this._editingZincObject.isEditable&&(this.existDrawnFeatures=a.markRaw(this.existDrawnFeatures.filter(t=>t.id!==e.item.id)),this.existDrawnFeatures.push(n.feature)),this.offlineAnnotationEnabled&&(e.group=this._editingZincObject.groupName,e.region=this._editingZincObject.region.getFullPath(),this.offlineAnnotations=JSON.parse(sessionStorage.getItem("anonymous-annotation"))||[],this.offlineAnnotations.push(e),sessionStorage.setItem("anonymous-annotation",JSON.stringify(this.offlineAnnotations)))}},confirmDelete:function(){var n;if((n=this._editingZincObject)!=null&&n.isEditable){const e=this._editingZincObject.region.getFullPath()+"/",t=this._editingZincObject.groupName,i=ox(this.annotator,this.userToken,this._editingZincObject,e,t,this.url,"Deleted");i&&(this.existDrawnFeatures=a.markRaw(this.existDrawnFeatures.filter(s=>s.id!==i.item.id)),this.$module.scene.getRootRegion().findChildFromPath(e).removeZincObject(this._editingZincObject),this.offlineAnnotationEnabled&&(this.offlineAnnotations=JSON.parse(sessionStorage.getItem("anonymous-annotation"))||[],this.offlineAnnotations=this.offlineAnnotations.filter(s=>s.item.id!==i.item.id),sessionStorage.setItem("anonymous-annotation",JSON.stringify(this.offlineAnnotations))))}this.cancelCreate()},onTooltipHide:function(){this.createData.toBeConfirmed&&!this.annotationSidebar&&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&&(DB(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.cancelCreate(),this.activeDrawMode=e,this.createData.shape="",this.$module.selectObjectOnPick=!0):n==="tool"&&(this.activeDrawTool=e,this.createData.shape=this.activeDrawTool?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=wo(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){const e=n[0].extraData.worldCoords;if(e&&(this.createData.shape==="LineString"||this.createData.editingIndex>-1)&&this.createData.points.length===1)if(this.showRegionTooltipWithAnnotations(n,!0,!1),this.tData.x=50,this.tData.y=200,this._tempLine){const t=this._tempLine.geometry.getAttribute("position");t.setXYZ(1,e[0],e[1],e[2]),t.needsUpdate=!0}else this._tempLine=this.$module.scene.addTemporaryLines([this.createData.points[0],e],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.createData.toBeConfirmed=!0,this.showRegionTooltipWithAnnotations(e,!0,!1),this.tData.x=50,this.tData.y=200,this._tempPoint=this.$module.scene.addTemporaryPoints([n],16776960))},drawLine:function(n,e){this.createData.toBeConfirmed===!1&&(this.createData.points.length===1?(this.createData.points.push(n),this.createData.toBeConfirmed=!0,this.showRegionTooltipWithAnnotations(e,!0,!1),this.tData.x=50,this.tData.y=200):(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.authorisedUser||this.offlineAnnotationEnabled)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=PB(e);t&&this.activateEditingMode(t.zincObject,t.faceIndex,t.vertexIndex,t.point)}else if(this.activeDrawMode==="Delete"){const t=OB(e);t&&(this.createData.toBeDeleted=!0,this._editingZincObject=t)}this.activeDrawMode!=="Point"&&this.activeDrawMode!=="LineString"?this.showRegionTooltipWithAnnotations(e.identifiers,!0,!1):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=[];(n.eventType==1||n.eventType==2)&&(n.identifiers.forEach(s=>{if(s){let o=s.data.id?s.data.id:s.data.group;e.push(o)}}),t=n.zincObjects);let i,r;if(n.identifiers.length>0&&n.identifiers[0]&&(i=n.identifiers[0].data.id?n.identifiers[0].data.id:n.identifiers[0].data.group,n.identifiers[0].data.region&&(r=n.identifiers[0].data.region)),n.eventType==1)if(this.viewingMode==="Annotation"){this.tData.label=i,this.tData.region=r;const s=IB(n);if(this._editingZincObject=s,s){const o=this._editingZincObject.region.getFullPath()+"/",l=this._editingZincObject.groupName;this.annotationFeature=sx(this._editingZincObject,o,l,this.url,"").feature}this.activateAnnotationMode(e,n)}else this.$refs.scaffoldTreeControls&&(e.length>0?(this.$refs.scaffoldTreeControls.updateActiveUI(t),this.updatePrimitiveControls(t)):(this.hideRegionTooltip(),this.$refs.scaffoldTreeControls.removeActive(!1))),n.identifiers.length===1?(this.lastSelected.isSearch=!1,this.lastSelected.region=r,this.lastSelected.group=n.identifiers[0].data.group):n.identifiers.length===0&&(this.lastSelected.isSearch=!1,this.lastSelected.region="",this.lastSelected.group=""),this.$emit("scaffold-selected",n.identifiers);else if(n.eventType==2)this.selectedObjects.length===0&&(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]&&n.identifiers[0].coords&&(this.tData.active=!1,(this.viewingMode!=="Annotation"||!this.annotationSidebar)&&(this.tData.visible=!0),this.tData.label=i,this.tData.region=r,this.tData.x=n.identifiers[0].coords.x,this.tData.y=n.identifiers[0].coords.y,this.createEditTemporaryLines(n.identifiers)),this.$emit("scaffold-highlighted",n.identifiers));else if(n.eventType==3&&n.identifiers.length>0&&n.identifiers[0]){if(n.identifiers[0].coords){const s=this.$refs.scaffoldContainer.getBoundingClientRect();this.tData.x=n.identifiers[0].coords.x-s.left,this.tData.y=n.identifiers[0].coords.y-s.top}this.createEditTemporaryLines(n.identifiers)}}},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=wo(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=rx(this.$module.scene,n);if(i&&i.objects.length>0)if(this.annotationSidebar){const s=[{featureId:(this.tData.region?this.tData.region+"/":"")+this.tData.label,resourceId:this.url,resource:this.url,feature:this.annotationFeature,offline:this.offlineAnnotationEnabled}];this.$emit("annotation-open",{annotationEntry:s,createData:this.createData,confirmCreate:this.confirmCreate,cancelCreate:this.cancelCreate,confirmDelete:this.confirmDelete,confirmComment:this.confirmComment});return}else return this.showRegionTooltipWithObjects(i.label,i.objects,i.regionPath,e,t)}return this.hideRegionTooltip(),!1},clearAnnotationFeature:function(){const n=this.getOfflineAnnotations();this.existDrawnFeatures.map(t=>decodeURIComponent(t.id).split("/").pop()).forEach(t=>{const i=this.$module.scene.findObjectsWithGroupName(t,!1);if(i&&i.length){const r=i[0].region.getFullPath()+"/";this.$module.scene.getRootRegion().findChildFromPath(r).removeZincObject(i[0])}}),this.$refs.scaffoldTreeControls.removeRegion("__annotation"),this.offlineAnnotations=n},addAnnotationFeature:async function(){let n;if(this.offlineAnnotationEnabled)this.offlineAnnotations=JSON.parse(sessionStorage.getItem("anonymous-annotation"))||[],n=this.offlineAnnotations.filter(e=>e.resource===this.url&&e.feature.properties.drawn).map(e=>e.feature);else{n=[];const e=await ax(this.annotator,this.userToken,this.url);e&&e.features&&(n=[...e.features]);const t=await ax(this.annotator,this.userToken,encodeURIComponent(this.url));t&&t.features&&(n=[...n,...t.features])}this.existDrawnFeatures=a.markRaw(n),lx(this.$module.scene,n)},changeViewingMode:function(n){this.$module&&(n&&(this.viewingMode=n),this.clearAnnotationFeature(),this.viewingMode==="Annotation"?(this.loading=!0,this.annotator.authenticate(this.userToken).then(e=>{e.name&&e.email&&e.canUpdate?(this.authorisedUser=e,this.offlineAnnotationEnabled=!1):(this.authorisedUser=void 0,this.offlineAnnotationEnabled=!0),this.addAnnotationFeature(),this.loading=!1})):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();wo(r,[n],"",!0).forEach(l=>l.setMarkerMode(t,i))}},setMarkerModeWithAnnotations:function(n,e){if(this.$module.scene){const t=rx(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.lastSelected.region="",this.lastSelected.group="",this.lastSelected.isSearch=!0,this.objectSelected([],!0),!1;{this.lastSelected.region="",this.lastSelected.group=n,this.lastSelected.isSearch=!0;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()},restoreSettings:function(n){if(n){if(n.viewport)this.$module.scene.getZincCameraControls().setCurrentCameraSettings(n.viewport);else if(n.viewURL&&n.viewURL!==""){const t=new URL(n.viewURL,this.url);this.$module.scene.loadViewURL(t)}else n.region&&n.region!==""&&this.viewRegion(n.region);n.visibility&&this.$nextTick(()=>{this.$refs.scaffoldTreeControls.setState(n.visibility)}),n.background&&this.backgroundChangeCallback(n.background),n.offlineAnnotations&&sessionStorage.setItem("anonymous-annotation",n.offlineAnnotations),n.viewingMode&&this.changeViewingMode(n.viewingMode);const e=n.search;e&&e.group&&(e.isSearch?this.search(e.group,!0):this.changeActiveByName(e.group,e.region,!0))}},downloadErrorCallback:function(){return n=>{this.$emit("on-error",n)}},setURLFinishCallback:function(n){return()=>{this.offlineAnnotations.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.$nextTick(()=>this.restoreSettings(n)),this.isReady=!0}},getState:function(){let n={format:this.fileFormat,url:this._currentURL,viewport:void 0,visibility:void 0,background:this.currentBackground,viewingMode:this.viewingMode};if(this.$refs.scaffoldTreeControls&&(n.visibility=this.$refs.scaffoldTreeControls.getState()),this.$module.scene){let e=this.$module.scene.getZincCameraControls();n.viewport=e.getCurrentViewport()}return this.lastSelected&&this.lastSelected.group&&(n.search={...this.lastSelected}),this.offlineAnnotationEnabled&&(n.offlineAnnotations=sessionStorage.getItem("anonymous-annotation")),n},setState:function(n){n&&(n.url&&n.url!==this._currentURL?this.setURLAndState(n.url,{fileFormat:n.fileFormat,viewport:n.viewport,visibility:n.visibility,background:n.background,viewingMode:n.viewingMode,search:n.search,offlineAnnotations:n.offlineAnnotations}):(n.background||n.search||n.viewport||n.viewingMode||n.visibility)&&(this.isReady&&this.$module.scene?this.restoreSettings(n):this.$module.setFinishDownloadCallback(this.setURLFinishCallback({background:n.background,viewingMode:n.viewingMode,viewport:n.viewport,visibility:n.visibility,search:n.search,offlineAnnotations:n.offlineAnnotations}))))},exportGLTF:function(n){return this.$module.scene.exportGLTF(n)},getOfflineAnnotations:function(){return[...this.offlineAnnotations]},importOfflineAnnotations:function(n){if(this.offlineAnnotationEnabled){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=s;t.item.id=l,t.feature.id=l});const e=n.map(t=>t.feature);lx(this.$module.scene,e),n.forEach(t=>{this.offlineAnnotations.push({...t})}),sessionStorage.setItem("anonymous-annotation",JSON.stringify(this.offlineAnnotations))}},setURLAndState:function(n,e){n!=this._currentURL&&(e!=null&&e.format&&(this.fileFormat=e.format),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.setDownloadErrorCallback(this.downloadErrorCallback()),this.$module.setFinishDownloadCallback(this.setURLFinishCallback({background:e==null?void 0:e.background,region:this.region,search:e==null?void 0:e.search,viewingMode:e==null?void 0:e.viewingMode,viewURL:this.viewURL,viewport:e==null?void 0:e.viewport,visibility:e==null?void 0:e.visibility,offlineAnnotations:e==null?void 0:e.offlineAnnotations})),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.markerLabels))this.setMarkerModeForObjectsWithName(n,e,"on")}}},PF={ref:"scaffoldContainer",class:"scaffold-container","element-loading-text":"Loading...","element-loading-background":"rgba(0, 0, 0, 0.3)"},IF={class:"primitive-controls-box"},OF={class:"animation-data"},NF={class:"purple"},DF={class:"animation-data"},BF={class:"purple"},FF={class:"animation-data"},VF={class:"bottom-right-control"},kF={style:{"margin-bottom":"2px"}},zF={key:0,class:"viewing-mode-title"},UF=["onClick"],GF=["onClick"];function HF(n,e,t,i,r,s){const o=a.resolveComponent("map-svg-sprite-color"),l=yx,u=a.resolveComponent("DrawToolbar"),c=kp,f=ht,h=vl,p=mx,y=px,m=a.resolveComponent("map-svg-icon"),d=Sn,b=Zn,v=Mg,g=ws,w=xs,S=wg,T=bs,M=Qu;return a.withDirectives((a.openBlock(),a.createElementBlock("div",PF,[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,annotationFeature:n.annotationFeature,offlineAnnotationEnabled:n.offlineAnnotationEnabled,onConfirmCreate:e[0]||(e[0]=C=>s.confirmCreate(C)),onCancelCreate:e[1]||(e[1]=C=>s.cancelCreate()),onConfirmComment:e[2]||(e[2]=C=>s.confirmComment(C)),onConfirmDelete:e[3]||(e[3]=C=>s.confirmDelete()),onTooltipHide:e[4]||(e[4]=C=>s.onTooltipHide())},null,8,["createData","label","region","visible","x","y","annotationDisplay","annotationFeature","offlineAnnotationEnabled"]),a.createElementVNode("div",{id:"organsDisplayArea",ref:"display",tabindex:"-1",style:{height:"100%",width:"100%"},onKeydown:e[5]||(e[5]=a.withKeys((...C)=>s.backgroundChangeCallback&&s.backgroundChangeCallback(...C),["66"]))},null,544),a.withDirectives(a.createElementVNode("div",null,[n.viewingMode==="Annotation"&&(n.authorisedUser||n.offlineAnnotationEnabled)?(a.openBlock(),a.createBlock(u,{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(h,{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[6]||(e[6]=C=>s.showHelpText(7)),onMouseout:e[7]||(e[7]=C=>s.hideHelpText(7))},[a.createVNode(f,null,{default:a.withCtx(()=>[a.createVNode(c)]),_:1}),e[27]||(e[27]=a.createElementVNode("span",{class:"message-text"},"Beta",-1))],32)):a.createCommentVNode("",!0)]),_:1},8,["visible","content"])):a.createCommentVNode("",!0),t.displayLatestChanges?(a.openBlock(),a.createBlock(h,{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[8]||(e[8]=C=>s.showHelpText(8)),onMouseout:e[9]||(e[9]=C=>s.hideHelpText(8))},[a.createVNode(f,null,{default:a.withCtx(()=>[a.createVNode(c)]),_:1}),e[28]||(e[28]=a.createElementVNode("span",{class:"message-text"},"What's new?",-1))],32)):a.createCommentVNode("",!0)]),_:1},8,["visible","content"])):a.createCommentVNode("",!0),a.createVNode(h,{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",IF,[a.createVNode(y,{ref:"primitiveControls",createData:n.createData,onPrimitivesUpdated:s.primitivesUpdated},null,8,["createData","onPrimitivesUpdated"])]),n.timeVarying?(a.openBlock(),a.createBlock(h,{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(S,{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[10]||(e[10]=C=>s.play(!1))})):(a.openBlock(),a.createBlock(m,{key:1,icon:"play",class:"video-button icon-button",onClick:e[11]||(e[11]=C=>s.play(!0))})),a.createVNode(d,{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[12]||(e[12]=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",OF,[e[29]||(e[29]=a.createTextVNode(" Original duration: ")),a.createElementVNode("div",NF,a.toDisplayString(n.orginalDuration),1)]),a.createElementVNode("div",DF,[e[30]||(e[30]=a.createTextVNode(" Animation duration: ")),a.createElementVNode("div",BF,a.toDisplayString(n.animateDuration),1)]),a.createElementVNode("div",FF,[e[31]||(e[31]=a.createTextVNode(" Playback speed ")),a.createVNode(w,{teleported:!0,"model-value":n.currentSpeed,placeholder:"Select",class:"scaffold-select-box speed","popper-class":"scaffold_viewer_dropdown",onChange:e[13]||(e[13]=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",VF,[a.createVNode(h,{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[14]||(e[14]=C=>s.zoomIn()),onMouseover:e[15]||(e[15]=C=>s.showHelpText(0)),onMouseout:e[16]||(e[16]=C=>s.hideHelpText(0))})]),_:1},8,["visible"]),a.createVNode(h,{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[17]||(e[17]=C=>s.zoomOut()),onMouseover:e[18]||(e[18]=C=>s.showHelpText(1)),onMouseout:e[19]||(e[19]=C=>s.hideHelpText(1))})]),_:1},8,["visible"]),a.createVNode(h,{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[20]||(e[20]=C=>s.fitWindow()),onMouseover:e[21]||(e[21]=C=>s.showHelpText(2)),onMouseout:e[22]||(e[22]=C=>s.hideHelpText(2))})]),default:a.withCtx(()=>[e[32]||(e[32]=a.createElementVNode("div",null,[a.createTextVNode(" Fit to "),a.createElementVNode("br"),a.createTextVNode(" window ")],-1))]),_:1},8,["visible"])]),n.openMapRef?(a.openBlock(),a.createBlock(h,{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(T,{type:"primary",plain:"",onClick:_=>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(h,{ref:"backgroundPopover","virtual-ref":n.backgroundIconRef,placement:"top-start",width:"128",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(()=>e[33]||(e[33]=[a.createTextVNode("Viewing Mode")])),_:1}),a.createVNode(b,{class:"backgroundControl"},{default:a.withCtx(()=>[a.createElementVNode("div",kF,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.viewingModes,(C,_,P)=>(a.openBlock(),a.createElementBlock(a.Fragment,{key:_},[_===n.viewingMode?(a.openBlock(),a.createElementBlock("span",zF,[a.createElementVNode("b",null,a.toDisplayString(_),1)])):(a.openBlock(),a.createElementBlock("span",{key:1,class:"viewing-mode-unselected",onClick:E=>s.changeViewingMode(_)},a.toDisplayString(_),9,UF))],64))),128))]),a.createVNode(b,{class:"viewing-mode-description"},{default:a.withCtx(()=>[a.createTextVNode(a.toDisplayString(s.modeDescription),1)]),_:1}),n.viewingMode==="Annotation"&&n.offlineAnnotationEnabled?(a.openBlock(),a.createBlock(b,{key:0,class:"viewing-mode-description"},{default:a.withCtx(()=>e[34]||(e[34]=[a.createTextVNode(" (Anonymous annotate) ")])),_:1})):a.createCommentVNode("",!0)]),_:1}),a.createVNode(b,{class:"backgroundSpacer"}),a.createVNode(b,{class:"backgroundText"},{default:a.withCtx(()=>e[35]||(e[35]=[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:_=>s.backgroundChangeCallback(C)},null,10,GF))),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(h,{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}),t.showLocalSettings?(a.openBlock(),a.createBlock(b,{key:0},{default:a.withCtx(()=>[a.createVNode(h,{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})):a.createCommentVNode("",!0)],2)],512),[[a.vShow,t.displayUI&&!n.isTransitioning]])])),[[M,n.loading]])}const WF=Pi(LF,[["render",HF],["__scopeId","data-v-a20a6cae"]]);Nt.ScaffoldVuer=WF,Object.defineProperty(Nt,Symbol.toStringTag,{value:"Module"})});
|