From 8d640d04e35f7d40ab6f7d489715b6ec09a169c5 Mon Sep 17 00:00:00 2001 From: "Wang, Jiyao" Date: Tue, 3 Dec 2024 10:57:55 -0500 Subject: [PATCH] Collections update - added multi file format support for zip, command history and JSON export, gz&ent file support. --- build/icn3d.js | 4 ++-- build/icn3d.min.js | 2 +- build/icn3d.module.js | 4 ++-- dist/icn3d-3.39.0.zip | Bin 4703392 -> 4703376 bytes dist/icn3d.js | 4 ++-- dist/icn3d.min.js | 2 +- dist/icn3d.module.js | 4 ++-- dist/icn3d_3.39.0.min.js | 2 +- src/html/events.js | 4 ++-- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/build/icn3d.js b/build/icn3d.js index 8f8bc63..03eed11 100644 --- a/build/icn3d.js +++ b/build/icn3d.js @@ -16514,8 +16514,8 @@ var icn3d = (function (exports) { saveHtml(id) { let me = this.icn3dui, ic = me.icn3d; let html = ''; - html += '\n'; - html += '\n'; + html += '\n'; + html += '\n'; html += $("#" + id).html(); let idArray = id.split('_'); let idStr =(idArray.length > 2) ? idArray[2] : id; diff --git a/build/icn3d.min.js b/build/icn3d.min.js index 865177b..c3f3a48 100644 --- a/build/icn3d.min.js +++ b/build/icn3d.min.js @@ -1,5 +1,5 @@ var CIFTools,$NGL_shaderTextHash={};$NGL_shaderTextHash["SphereImpostor.frag"]=["#define STANDARD","#define IMPOSTOR","","uniform vec3 diffuse;","uniform vec3 emissive;","uniform float roughness;","uniform float metalness;","uniform float opacity;","uniform float nearClip;","uniform mat4 projectionMatrix;","uniform float ortho;","","varying float vRadius;","varying float vRadiusSq;","varying vec3 vPoint;","varying vec3 vPointViewPosition;","","#ifdef PICKING"," uniform float objectId;"," varying vec3 vPickingColor;","#else"," #include common"," #include color_pars_fragment"," #include fog_pars_fragment"," #include bsdfs"," #include lights_pars_begin"," #include lights_physical_pars_fragment","#endif","","bool flag2 = false;","bool interior = false;","vec3 cameraPos;","vec3 cameraNormal;","","// Calculate depth based on the given camera position.","float calcDepth( in vec3 cameraPos ){"," vec2 clipZW = cameraPos.z * projectionMatrix[2].zw + projectionMatrix[3].zw;"," return 0.5 + 0.5 * clipZW.x / clipZW.y;","}","","float calcClip( vec3 cameraPos ){"," return dot( vec4( cameraPos, 1.0 ), vec4( 0.0, 0.0, 1.0, nearClip - 0.5 ) );","}","","bool Impostor( out vec3 cameraPos, out vec3 cameraNormal ){",""," vec3 cameraSpherePos = -vPointViewPosition;"," cameraSpherePos.z += vRadius;",""," vec3 rayOrigin = mix( vec3( 0.0, 0.0, 0.0 ), vPoint, ortho );"," vec3 rayDirection = mix( normalize( vPoint ), vec3( 0.0, 0.0, 1.0 ), ortho );"," vec3 cameraSphereDir = mix( cameraSpherePos, rayOrigin - cameraSpherePos, ortho );",""," float B = dot( rayDirection, cameraSphereDir );"," float det = B * B + vRadiusSq - dot( cameraSphereDir, cameraSphereDir );",""," if( det < 0.0 ){"," discard;"," return false;"," }"," float sqrtDet = sqrt( det );"," float posT = mix( B + sqrtDet, B + sqrtDet, ortho );"," float negT = mix( B - sqrtDet, sqrtDet - B, ortho );",""," cameraPos = rayDirection * negT + rayOrigin;",""," #ifdef NEAR_CLIP","if( calcDepth( cameraPos ) <= 0.0 ){"," cameraPos = rayDirection * posT + rayOrigin;"," interior = true;"," return false;","}else if( calcClip( cameraPos ) > 0.0 ){"," cameraPos = rayDirection * posT + rayOrigin;"," interior = true;"," flag2 = true;"," return false;","}else{"," cameraNormal = normalize( cameraPos - cameraSpherePos );","}"," #else","if( calcDepth( cameraPos ) <= 0.0 ){"," cameraPos = rayDirection * posT + rayOrigin;"," interior = true;"," return false;","}else{"," cameraNormal = normalize( cameraPos - cameraSpherePos );","}"," #endif",""," cameraNormal = normalize( cameraPos - cameraSpherePos );"," cameraNormal *= float(!interior) * 2.0 - 1.0;"," return !interior;","","}","","void main(void){",""," bool flag = Impostor( cameraPos, cameraNormal );",""," #ifdef NEAR_CLIP"," if( calcClip( cameraPos ) > 0.0 )"," discard;"," #endif",""," // FIXME not compatible with custom clipping plane"," //Set the depth based on the new cameraPos."," gl_FragDepthEXT = calcDepth( cameraPos );"," if( !flag ){",""," // clamp to near clipping plane and add a tiny value to"," // make spheres with a greater radius occlude smaller ones"," #ifdef NEAR_CLIP","if( flag2 ){"," gl_FragDepthEXT = max( 0.0, calcDepth( vec3( - ( nearClip - 0.5 ) ) ) + ( 0.0000001 / vRadius ) );","}else if( gl_FragDepthEXT >= 0.0 ){"," gl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );","}"," #else","if( gl_FragDepthEXT >= 0.0 ){"," gl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );","}"," #endif",""," }",""," // bugfix (mac only?)"," if (gl_FragDepthEXT < 0.0)"," discard;"," if (gl_FragDepthEXT > 1.0)"," discard;",""," #ifdef PICKING",""," gl_FragColor = vec4( vPickingColor, objectId );",""," #else",""," vec3 vNormal = cameraNormal;"," vec3 vViewPosition = -cameraPos;",""," vec4 diffuseColor = vec4( diffuse, opacity );"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"," vec3 totalEmissiveLight = emissive;",""," #include color_fragment"," #include roughnessmap_fragment"," #include metalnessmap_fragment",""," // don't use include normal_fragment"," vec3 normal = normalize( vNormal );",""," #include lights_physical_fragment"," //include lights_template"," #include lights_fragment_begin"," #include lights_fragment_end",""," vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveLight;",""," gl_FragColor = vec4( outgoingLight, diffuseColor.a );"," //gl_FragColor = vec4( reflectedLight.directSpecular, diffuseColor.a );",""," #include premultiplied_alpha_fragment"," #include tonemapping_fragment"," #include encodings_fragment"," //include fog_fragment"," #ifdef USE_FOG"," #ifdef USE_LOGDEPTHBUF_EXT"," float depth = gl_FragDepthEXT / gl_FragCoord.w;"," #else"," float depth = gl_FragCoord.z / gl_FragCoord.w;"," #endif"," #ifdef FOG_EXP2"," float fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * depth * depth * LOG2 ) );"," #else"," float fogFactor = smoothstep( fogNear, fogFar, depth );"," #endif"," gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );"," #endif",""," #endif","","}"].join("\n"),$NGL_shaderTextHash["SphereImpostor.vert"]=["uniform mat4 projectionMatrixInverse;","uniform float nearClip;","","varying float vRadius;","varying float vRadiusSq;","varying vec3 vPoint;","varying vec3 vPointViewPosition;","varying float fogDepth;","varying float fogNear;","varying float fogFar;","","attribute vec2 mapping;","//attribute vec3 position;","attribute float radius;","","#ifdef PICKING"," #include unpack_clr"," attribute float primitiveId;"," varying vec3 vPickingColor;","#else"," #include color_pars_vertex","#endif","","//include matrix_scale","float matrixScale( in mat4 m ){"," vec4 r = m[ 0 ];"," return sqrt( r[ 0 ] * r[ 0 ] + r[ 1 ] * r[ 1 ] + r[ 2 ] * r[ 2 ] );","}","","const mat4 D = mat4("," 1.0, 0.0, 0.0, 0.0,"," 0.0, 1.0, 0.0, 0.0,"," 0.0, 0.0, 1.0, 0.0,"," 0.0, 0.0, 0.0, -1.0",");","","mat4 transposeTmp( in mat4 inMatrix ) {"," vec4 i0 = inMatrix[0];"," vec4 i1 = inMatrix[1];"," vec4 i2 = inMatrix[2];"," vec4 i3 = inMatrix[3];",""," mat4 outMatrix = mat4("," vec4(i0.x, i1.x, i2.x, i3.x),"," vec4(i0.y, i1.y, i2.y, i3.y),"," vec4(i0.z, i1.z, i2.z, i3.z),"," vec4(i0.w, i1.w, i2.w, i3.w)"," );"," return outMatrix;","}","","//------------------------------------------------------------------------------","// Compute point size and center using the technique described in:","// 'GPU-Based Ray-Casting of Quadratic Surfaces'","// by Christian Sigg, Tim Weyrich, Mario Botsch, Markus Gross.","//","// Code based on","/*=========================================================================",""," Program: Visualization Toolkit"," Module: Quadrics_fs.glsl and Quadrics_vs.glsl",""," Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen"," All rights reserved."," See Copyright.txt or http://www.kitware.com/Copyright.htm for details.",""," This software is distributed WITHOUT ANY WARRANTY; without even"," the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR"," PURPOSE. See the above copyright notice for more information.",""," =========================================================================*/","","// .NAME Quadrics_fs.glsl and Quadrics_vs.glsl","// .SECTION Thanks","// ","//","// This file is part of the PointSprites plugin developed and contributed by","//","// Copyright (c) CSCS - Swiss National Supercomputing Centre","// EDF - Electricite de France","//","// John Biddiscombe, Ugo Varetto (CSCS)","// Stephane Ploix (EDF)","//","// ","//","// Contributions by Alexander Rose","// - ported to WebGL","// - adapted to work with quads","void ComputePointSizeAndPositionInClipCoordSphere(){",""," vec2 xbc;"," vec2 ybc;",""," mat4 T = mat4("," radius, 0.0, 0.0, 0.0,"," 0.0, radius, 0.0, 0.0,"," 0.0, 0.0, radius, 0.0,"," position.x, position.y, position.z, 1.0"," );",""," mat4 R = transposeTmp( projectionMatrix * modelViewMatrix * T );"," float A = dot( R[ 3 ], D * R[ 3 ] );"," float B = -2.0 * dot( R[ 0 ], D * R[ 3 ] );"," float C = dot( R[ 0 ], D * R[ 0 ] );"," xbc[ 0 ] = ( -B - sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," xbc[ 1 ] = ( -B + sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," float sx = abs( xbc[ 0 ] - xbc[ 1 ] ) * 0.5;",""," A = dot( R[ 3 ], D * R[ 3 ] );"," B = -2.0 * dot( R[ 1 ], D * R[ 3 ] );"," C = dot( R[ 1 ], D * R[ 1 ] );"," ybc[ 0 ] = ( -B - sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," ybc[ 1 ] = ( -B + sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," float sy = abs( ybc[ 0 ] - ybc[ 1 ] ) * 0.5;",""," gl_Position.xy = vec2( 0.5 * ( xbc.x + xbc.y ), 0.5 * ( ybc.x + ybc.y ) );"," gl_Position.xy -= mapping * vec2( sx, sy );"," gl_Position.xy *= gl_Position.w;","","}","","void main(void){",""," #ifdef PICKING"," vPickingColor = unpackColor( primitiveId );"," #else"," #include color_vertex"," #endif",""," vRadius = radius * matrixScale( modelViewMatrix );",""," vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );"," // avoid clipping, added again in fragment shader"," mvPosition.z -= vRadius;",""," gl_Position = projectionMatrix * vec4( mvPosition.xyz, 1.0 );"," ComputePointSizeAndPositionInClipCoordSphere();","",""," vRadiusSq = vRadius * vRadius;"," vec4 vPoint4 = projectionMatrixInverse * gl_Position;"," vPoint = vPoint4.xyz / vPoint4.w;"," vPointViewPosition = -mvPosition.xyz / mvPosition.w;","","}"].join("\n"),$NGL_shaderTextHash["CylinderImpostor.frag"]=["#define STANDARD","#define IMPOSTOR","","// Open-Source PyMOL is Copyright (C) Schrodinger, LLC.","//","// All Rights Reserved","//","// Permission to use, copy, modify, distribute, and distribute modified","// versions of this software and its built-in documentation for any","// purpose and without fee is hereby granted, provided that the above","// copyright notice appears in all copies and that both the copyright","// notice and this permission notice appear in supporting documentation,","// and that the name of Schrodinger, LLC not be used in advertising or","// publicity pertaining to distribution of the software without specific,","// written prior permission.","//","// SCHRODINGER, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,","// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN","// NO EVENT SHALL SCHRODINGER, LLC BE LIABLE FOR ANY SPECIAL, INDIRECT OR","// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS","// OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE","// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE","// USE OR PERFORMANCE OF THIS SOFTWARE.","","// Contributions by Alexander Rose","// - ported to WebGL","// - dual color","// - pk color","// - custom clipping","// - three.js lighting","","uniform vec3 diffuse;","uniform vec3 emissive;","uniform float roughness;","uniform float metalness;","uniform float opacity;","uniform float nearClip;","uniform mat4 projectionMatrix;","uniform float ortho;","","varying vec3 axis;","varying vec4 base_radius;","varying vec4 end_b;","varying vec3 U;","varying vec3 V;","varying vec4 w;","","#ifdef PICKING"," uniform float objectId;"," varying vec3 vPickingColor;","#else"," varying vec3 vColor1;"," varying vec3 vColor2;"," #include common"," #include fog_pars_fragment"," #include bsdfs"," #include lights_pars_begin"," #include lights_physical_pars_fragment","#endif","","bool interior = false;","","float distSq3( vec3 v3a, vec3 v3b ){"," return ("," ( v3a.x - v3b.x ) * ( v3a.x - v3b.x ) +"," ( v3a.y - v3b.y ) * ( v3a.y - v3b.y ) +"," ( v3a.z - v3b.z ) * ( v3a.z - v3b.z )"," );","}","","// Calculate depth based on the given camera position.","float calcDepth( in vec3 cameraPos ){"," vec2 clipZW = cameraPos.z * projectionMatrix[2].zw + projectionMatrix[3].zw;"," return 0.5 + 0.5 * clipZW.x / clipZW.y;","}","","float calcClip( vec3 cameraPos ){"," return dot( vec4( cameraPos, 1.0 ), vec4( 0.0, 0.0, 1.0, nearClip - 0.5 ) );","}","","void main(){",""," vec3 point = w.xyz / w.w;",""," // unpacking"," vec3 base = base_radius.xyz;"," float vRadius = base_radius.w;"," vec3 end = end_b.xyz;"," float b = end_b.w;",""," vec3 end_cyl = end;"," vec3 surface_point = point;",""," vec3 ray_target = surface_point;"," vec3 ray_origin = vec3(0.0);"," vec3 ray_direction = mix(normalize(ray_origin - ray_target), vec3(0.0, 0.0, 1.0), ortho);"," mat3 basis = mat3( U, V, axis );",""," vec3 diff = ray_target - 0.5 * (base + end_cyl);"," vec3 P = diff * basis;",""," // angle (cos) between cylinder cylinder_axis and ray direction"," float dz = dot( axis, ray_direction );",""," float radius2 = vRadius*vRadius;",""," // calculate distance to the cylinder from ray origin"," vec3 D = vec3(dot(U, ray_direction),"," dot(V, ray_direction),"," dz);"," float a0 = P.x*P.x + P.y*P.y - radius2;"," float a1 = P.x*D.x + P.y*D.y;"," float a2 = D.x*D.x + D.y*D.y;",""," // calculate a dicriminant of the above quadratic equation"," float d = a1*a1 - a0*a2;"," if (d < 0.0)"," // outside of the cylinder"," discard;",""," float dist = (-a1 + sqrt(d)) / a2;",""," // point of intersection on cylinder surface"," vec3 new_point = ray_target + dist * ray_direction;",""," vec3 tmp_point = new_point - base;"," vec3 _normal = normalize( tmp_point - axis * dot(tmp_point, axis) );",""," ray_origin = mix( ray_origin, surface_point, ortho );",""," // test caps"," float front_cap_test = dot( tmp_point, axis );"," float end_cap_test = dot((new_point - end_cyl), axis);",""," // to calculate caps, simply check the angle between"," // the point of intersection - cylinder end vector"," // and a cap plane normal (which is the cylinder cylinder_axis)"," // if the angle < 0, the point is outside of cylinder"," // test front cap",""," #ifndef CAP"," vec3 new_point2 = ray_target + ( (-a1 - sqrt(d)) / a2 ) * ray_direction;"," vec3 tmp_point2 = new_point2 - base;"," #endif",""," // flat"," if (front_cap_test < 0.0)"," {"," // ray-plane intersection"," float dNV = dot(-axis, ray_direction);"," if (dNV < 0.0)"," discard;"," float near = dot(-axis, (base)) / dNV;"," vec3 front_point = ray_direction * near + ray_origin;"," // within the cap radius?"," if (dot(front_point - base, front_point-base) > radius2)"," discard;",""," #ifdef CAP"," new_point = front_point;"," _normal = axis;"," #else"," new_point = ray_target + ( (-a1 - sqrt(d)) / a2 ) * ray_direction;"," dNV = dot(-axis, ray_direction);"," near = dot(axis, end_cyl) / dNV;"," new_point2 = ray_direction * near + ray_origin;"," if (dot(new_point2 - end_cyl, new_point2-base) < radius2)"," discard;"," interior = true;"," #endif"," }",""," // test end cap","",""," // flat"," if( end_cap_test > 0.0 )"," {"," // ray-plane intersection"," float dNV = dot(axis, ray_direction);"," if (dNV < 0.0)"," discard;"," float near = dot(axis, end_cyl) / dNV;"," vec3 end_point = ray_direction * near + ray_origin;"," // within the cap radius?"," if( dot(end_point - end_cyl, end_point-base) > radius2 )"," discard;",""," #ifdef CAP"," new_point = end_point;"," _normal = axis;"," #else"," new_point = ray_target + ( (-a1 - sqrt(d)) / a2 ) * ray_direction;"," dNV = dot(-axis, ray_direction);"," near = dot(-axis, (base)) / dNV;"," new_point2 = ray_direction * near + ray_origin;"," if (dot(new_point2 - base, new_point2-base) < radius2)"," discard;"," interior = true;"," #endif"," }",""," gl_FragDepthEXT = calcDepth( new_point );",""," #ifdef NEAR_CLIP"," if( calcClip( new_point ) > 0.0 ){"," dist = (-a1 - sqrt(d)) / a2;"," new_point = ray_target + dist * ray_direction;"," if( calcClip( new_point ) > 0.0 )"," discard;"," interior = true;"," gl_FragDepthEXT = calcDepth( new_point );"," if( gl_FragDepthEXT >= 0.0 ){"," gl_FragDepthEXT = max( 0.0, calcDepth( vec3( - ( nearClip - 0.5 ) ) ) + ( 0.0000001 / vRadius ) );"," }"," }else if( gl_FragDepthEXT <= 0.0 ){"," dist = (-a1 - sqrt(d)) / a2;"," new_point = ray_target + dist * ray_direction;"," interior = true;"," gl_FragDepthEXT = calcDepth( new_point );"," if( gl_FragDepthEXT >= 0.0 ){"," gl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );"," }"," }"," #else"," if( gl_FragDepthEXT <= 0.0 ){"," dist = (-a1 - sqrt(d)) / a2;"," new_point = ray_target + dist * ray_direction;"," interior = true;"," gl_FragDepthEXT = calcDepth( new_point );"," if( gl_FragDepthEXT >= 0.0 ){"," gl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );"," }"," }"," #endif",""," // this is a workaround necessary for Mac"," // otherwise the modified fragment won't clip properly"," if (gl_FragDepthEXT < 0.0)"," discard;"," if (gl_FragDepthEXT > 1.0)"," discard;",""," #ifdef PICKING",""," gl_FragColor = vec4( vPickingColor, objectId );",""," #else",""," vec3 vViewPosition = -new_point;"," vec3 vNormal = _normal;"," vec3 vColor;",""," if( distSq3( new_point, end_cyl ) < distSq3( new_point, base ) ){"," if( b < 0.0 ){"," vColor = vColor1;"," }else{"," vColor = vColor2;"," }"," }else{"," if( b > 0.0 ){"," vColor = vColor1;"," }else{"," vColor = vColor2;"," }"," }",""," vec4 diffuseColor = vec4( diffuse, opacity );"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"," vec3 totalEmissiveLight = emissive;",""," #include color_fragment"," //ifdef USE_COLOR"," //diffuseColor.r *= vColor[0];"," //diffuseColor.g *= vColor[1];"," //diffuseColor.b *= vColor[2];"," //endif"," #include roughnessmap_fragment"," #include metalnessmap_fragment",""," // don't use include normal_fragment"," vec3 normal = normalize( vNormal );",""," #include lights_physical_fragment"," //include lights_template"," #include lights_fragment_begin"," #include lights_fragment_end",""," vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveLight;",""," gl_FragColor = vec4( outgoingLight, diffuseColor.a );"," //gl_FragColor = vec4( reflectedLight.directSpecular, diffuseColor.a );",""," #include premultiplied_alpha_fragment"," #include tonemapping_fragment"," #include encodings_fragment"," //include fog_fragment"," #ifdef USE_FOG"," #ifdef USE_LOGDEPTHBUF_EXT"," float depth = gl_FragDepthEXT / gl_FragCoord.w;"," #else"," float depth = gl_FragCoord.z / gl_FragCoord.w;"," #endif"," #ifdef FOG_EXP2"," float fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * depth * depth * LOG2 ) );"," #else"," float fogFactor = smoothstep( fogNear, fogFar, depth );"," #endif"," gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );"," #endif",""," #endif","","}"].join("\n"),$NGL_shaderTextHash["CylinderImpostor.vert"]=["// Open-Source PyMOL is Copyright (C) Schrodinger, LLC.","//","// All Rights Reserved","//","// Permission to use, copy, modify, distribute, and distribute modified","// versions of this software and its built-in documentation for any","// purpose and without fee is hereby granted, provided that the above","// copyright notice appears in all copies and that both the copyright","// notice and this permission notice appear in supporting documentation,","// and that the name of Schrodinger, LLC not be used in advertising or","// publicity pertaining to distribution of the software without specific,","// written prior permission.","//","// SCHRODINGER, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,","// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN","// NO EVENT SHALL SCHRODINGER, LLC BE LIABLE FOR ANY SPECIAL, INDIRECT OR","// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS","// OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE","// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE","// USE OR PERFORMANCE OF THIS SOFTWARE.","","// Contributions by Alexander Rose","// - ported to WebGL","// - dual color","// - pk color","// - shift","","attribute vec3 mapping;","attribute vec3 position1;","attribute vec3 position2;","attribute float radius;","","varying vec3 axis;","varying vec4 base_radius;","varying vec4 end_b;","varying vec3 U;","varying vec3 V;","varying vec4 w;","varying float fogDepth;","varying float fogNear;","varying float fogFar;","","#ifdef PICKING"," #include unpack_clr"," attribute float primitiveId;"," varying vec3 vPickingColor;","#else"," //attribute vec3 color;"," attribute vec3 color2;"," varying vec3 vColor1;"," varying vec3 vColor2;","#endif","","uniform mat4 modelViewMatrixInverse;","uniform float ortho;","","//include matrix_scale","float matrixScale( in mat4 m ){"," vec4 r = m[ 0 ];"," return sqrt( r[ 0 ] * r[ 0 ] + r[ 1 ] * r[ 1 ] + r[ 2 ] * r[ 2 ] );","}","","void main(){",""," #ifdef PICKING"," vPickingColor = unpackColor( primitiveId );"," #else"," vColor1 = color;"," vColor2 = color2;"," #endif",""," // vRadius = radius;"," base_radius.w = radius * matrixScale( modelViewMatrix );",""," //vec3 center = position;"," vec3 center = ( position2 + position1 ) / 2.0;"," vec3 dir = normalize( position2 - position1 );"," float ext = length( position2 - position1 ) / 2.0;",""," // using cameraPosition fails on some machines, not sure why"," // vec3 cam_dir = normalize( cameraPosition - mix( center, vec3( 0.0 ), ortho ) );"," vec3 cam_dir;"," if( ortho == 0.0 ){"," cam_dir = ( modelViewMatrixInverse * vec4( 0, 0, 0, 1 ) ).xyz - center;"," }else{"," cam_dir = ( modelViewMatrixInverse * vec4( 0, 0, 1, 0 ) ).xyz;"," }"," cam_dir = normalize( cam_dir );",""," vec3 ldir;",""," float b = dot( cam_dir, dir );"," end_b.w = b;"," // direction vector looks away, so flip"," if( b < 0.0 )"," ldir = -ext * dir;"," // direction vector already looks in my direction"," else"," ldir = ext * dir;",""," vec3 left = normalize( cross( cam_dir, ldir ) );"," left = radius * left;"," vec3 up = radius * normalize( cross( left, ldir ) );",""," // transform to modelview coordinates"," axis = normalize( normalMatrix * ldir );"," U = normalize( normalMatrix * up );"," V = normalize( normalMatrix * left );",""," vec4 base4 = modelViewMatrix * vec4( center - ldir, 1.0 );"," base_radius.xyz = base4.xyz / base4.w;",""," vec4 top_position = modelViewMatrix * vec4( center + ldir, 1.0 );"," vec4 end4 = top_position;"," end_b.xyz = end4.xyz / end4.w;",""," w = modelViewMatrix * vec4("," center + mapping.x*ldir + mapping.y*left + mapping.z*up, 1.0"," );",""," gl_Position = projectionMatrix * w;",""," // avoid clipping (1.0 seems to induce flickering with some drivers)"," gl_Position.z = 0.99;","","}"].join("\n"),$NGL_shaderTextHash["SphereInstancing.frag"]=$NGL_shaderTextHash["SphereImpostor.frag"],$NGL_shaderTextHash["SphereInstancing.vert"]=["uniform mat4 projectionMatrixInverse;","uniform float nearClip;","","varying float vRadius;","varying float vRadiusSq;","varying vec3 vPoint;","varying vec3 vPointViewPosition;","varying float fogDepth;","varying float fogNear;","varying float fogFar;","","attribute vec2 mapping;","//attribute vec3 position;","attribute float radius;","attribute vec4 matrix1;","attribute vec4 matrix2;","attribute vec4 matrix3;","attribute vec4 matrix4;","","#ifdef PICKING"," #include unpack_clr"," attribute float primitiveId;"," varying vec3 vPickingColor;","#else"," #include color_pars_vertex","#endif","","//include matrix_scale","float matrixScale( in mat4 m ){"," vec4 r = m[ 0 ];"," return sqrt( r[ 0 ] * r[ 0 ] + r[ 1 ] * r[ 1 ] + r[ 2 ] * r[ 2 ] );","}","","const mat4 D = mat4("," 1.0, 0.0, 0.0, 0.0,"," 0.0, 1.0, 0.0, 0.0,"," 0.0, 0.0, 1.0, 0.0,"," 0.0, 0.0, 0.0, -1.0",");","","mat4 transposeTmp( in mat4 inMatrix ) {"," vec4 i0 = inMatrix[0];"," vec4 i1 = inMatrix[1];"," vec4 i2 = inMatrix[2];"," vec4 i3 = inMatrix[3];",""," mat4 outMatrix = mat4("," vec4(i0.x, i1.x, i2.x, i3.x),"," vec4(i0.y, i1.y, i2.y, i3.y),"," vec4(i0.z, i1.z, i2.z, i3.z),"," vec4(i0.w, i1.w, i2.w, i3.w)"," );"," return outMatrix;","}","","//------------------------------------------------------------------------------","// Compute point size and center using the technique described in:","// 'GPU-Based Ray-Casting of Quadratic Surfaces'","// by Christian Sigg, Tim Weyrich, Mario Botsch, Markus Gross.","//","// Code based on","/*=========================================================================",""," Program: Visualization Toolkit"," Module: Quadrics_fs.glsl and Quadrics_vs.glsl",""," Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen"," All rights reserved."," See Copyright.txt or http://www.kitware.com/Copyright.htm for details.",""," This software is distributed WITHOUT ANY WARRANTY; without even"," the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR"," PURPOSE. See the above copyright notice for more information.",""," =========================================================================*/","","// .NAME Quadrics_fs.glsl and Quadrics_vs.glsl","// .SECTION Thanks","// ","//","// This file is part of the PointSprites plugin developed and contributed by","//","// Copyright (c) CSCS - Swiss National Supercomputing Centre","// EDF - Electricite de France","//","// John Biddiscombe, Ugo Varetto (CSCS)","// Stephane Ploix (EDF)","//","// ","//","// Contributions by Alexander Rose","// - ported to WebGL","// - adapted to work with quads","void ComputePointSizeAndPositionInClipCoordSphere(vec4 updatePosition){",""," vec2 xbc;"," vec2 ybc;",""," mat4 T = mat4("," radius, 0.0, 0.0, 0.0,"," 0.0, radius, 0.0, 0.0,"," 0.0, 0.0, radius, 0.0,"," updatePosition.x, updatePosition.y, updatePosition.z, 1.0"," );",""," mat4 R = transposeTmp( projectionMatrix * modelViewMatrix * T );"," float A = dot( R[ 3 ], D * R[ 3 ] );"," float B = -2.0 * dot( R[ 0 ], D * R[ 3 ] );"," float C = dot( R[ 0 ], D * R[ 0 ] );"," xbc[ 0 ] = ( -B - sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," xbc[ 1 ] = ( -B + sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," float sx = abs( xbc[ 0 ] - xbc[ 1 ] ) * 0.5;",""," A = dot( R[ 3 ], D * R[ 3 ] );"," B = -2.0 * dot( R[ 1 ], D * R[ 3 ] );"," C = dot( R[ 1 ], D * R[ 1 ] );"," ybc[ 0 ] = ( -B - sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," ybc[ 1 ] = ( -B + sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," float sy = abs( ybc[ 0 ] - ybc[ 1 ] ) * 0.5;",""," gl_Position.xy = vec2( 0.5 * ( xbc.x + xbc.y ), 0.5 * ( ybc.x + ybc.y ) );"," gl_Position.xy -= mapping * vec2( sx, sy );"," gl_Position.xy *= gl_Position.w;","","}",""," mat4 computeMat(vec4 v1, vec4 v2, vec4 v3, vec4 v4) {"," return mat4("," v1.x, v1.y, v1.z, v1.w,"," v2.x, v2.y, v2.z, v2.w,"," v3.x, v3.y, v3.z, v3.w,"," v4.x, v4.y, v4.z, v4.w"," );"," }","","void main(void){",""," #ifdef PICKING"," vPickingColor = unpackColor( primitiveId );"," #else"," #include color_vertex"," #endif",""," vRadius = radius * matrixScale( modelViewMatrix );",""," mat4 matrix = computeMat(matrix1, matrix2, matrix3, matrix4);"," vec4 updatePosition = matrix * vec4(position, 1.0);","","// vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );"," vec4 mvPosition = modelViewMatrix * vec4( updatePosition.xyz, 1.0 );"," // avoid clipping, added again in fragment shader"," mvPosition.z -= vRadius;","","// gl_Position = projectionMatrix * vec4( mvPosition.xyz, 1.0 );"," gl_Position = projectionMatrix * vec4( mvPosition.xyz, 1.0 );"," ComputePointSizeAndPositionInClipCoordSphere(updatePosition);","",""," vRadiusSq = vRadius * vRadius;"," vec4 vPoint4 = projectionMatrixInverse * gl_Position;"," vPoint = vPoint4.xyz / vPoint4.w;"," vPointViewPosition = -mvPosition.xyz / mvPosition.w;","","}"].join("\n"),$NGL_shaderTextHash["CylinderInstancing.frag"]=$NGL_shaderTextHash["CylinderImpostor.frag"],$NGL_shaderTextHash["CylinderInstancing.vert"]=["// Open-Source PyMOL is Copyright (C) Schrodinger, LLC.","//","// All Rights Reserved","//","// Permission to use, copy, modify, distribute, and distribute modified","// versions of this software and its built-in documentation for any","// purpose and without fee is hereby granted, provided that the above","// copyright notice appears in all copies and that both the copyright","// notice and this permission notice appear in supporting documentation,","// and that the name of Schrodinger, LLC not be used in advertising or","// publicity pertaining to distribution of the software without specific,","// written prior permission.","//","// SCHRODINGER, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,","// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN","// NO EVENT SHALL SCHRODINGER, LLC BE LIABLE FOR ANY SPECIAL, INDIRECT OR","// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS","// OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE","// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE","// USE OR PERFORMANCE OF THIS SOFTWARE.","","// Contributions by Alexander Rose","// - ported to WebGL","// - dual color","// - pk color","// - shift","","attribute vec3 mapping;","attribute vec3 position1;","attribute vec3 position2;","attribute float radius;","attribute vec4 matrix1;","attribute vec4 matrix2;","attribute vec4 matrix3;","attribute vec4 matrix4;","","varying vec3 axis;","varying vec4 base_radius;","varying vec4 end_b;","varying vec3 U;","varying vec3 V;","varying vec4 w;","varying float fogDepth;","varying float fogNear;","varying float fogFar;","","#ifdef PICKING"," #include unpack_clr"," attribute float primitiveId;"," varying vec3 vPickingColor;","#else"," //attribute vec3 color;"," attribute vec3 color2;"," varying vec3 vColor1;"," varying vec3 vColor2;","#endif","","uniform mat4 modelViewMatrixInverse;","uniform float ortho;","","//include matrix_scale","float matrixScale( in mat4 m ){"," vec4 r = m[ 0 ];"," return sqrt( r[ 0 ] * r[ 0 ] + r[ 1 ] * r[ 1 ] + r[ 2 ] * r[ 2 ] );","}",""," mat4 computeMat(vec4 v1, vec4 v2, vec4 v3, vec4 v4) {"," return mat4("," v1.x, v1.y, v1.z, v1.w,"," v2.x, v2.y, v2.z, v2.w,"," v3.x, v3.y, v3.z, v3.w,"," v4.x, v4.y, v4.z, v4.w"," );"," }","","void main(){",""," #ifdef PICKING"," vPickingColor = unpackColor( primitiveId );"," #else"," vColor1 = color;"," vColor2 = color2;"," #endif",""," // vRadius = radius;"," base_radius.w = radius * matrixScale( modelViewMatrix );",""," //vec3 center = ( position2 + position1 ) / 2.0;",""," mat4 matrix = computeMat(matrix1, matrix2, matrix3, matrix4);"," vec4 updatePosition1 = matrix * vec4(position1, 1.0);"," vec4 updatePosition2 = matrix * vec4(position2, 1.0);"," vec3 center = ( updatePosition2.xyz + updatePosition1.xyz ) / 2.0;",""," //vec3 dir = normalize( position2 - position1 );"," vec3 dir = normalize( updatePosition2.xyz - updatePosition1.xyz );"," float ext = length( position2 - position1 ) / 2.0;",""," // using cameraPosition fails on some machines, not sure why"," // vec3 cam_dir = normalize( cameraPosition - mix( center, vec3( 0.0 ), ortho ) );"," vec3 cam_dir;"," if( ortho == 0.0 ){"," cam_dir = ( modelViewMatrixInverse * vec4( 0, 0, 0, 1 ) ).xyz - center;"," }else{"," cam_dir = ( modelViewMatrixInverse * vec4( 0, 0, 1, 0 ) ).xyz;"," }"," cam_dir = normalize( cam_dir );",""," vec3 ldir;",""," float b = dot( cam_dir, dir );"," end_b.w = b;"," // direction vector looks away, so flip"," if( b < 0.0 )"," ldir = -ext * dir;"," // direction vector already looks in my direction"," else"," ldir = ext * dir;",""," vec3 left = normalize( cross( cam_dir, ldir ) );"," left = radius * left;"," vec3 up = radius * normalize( cross( left, ldir ) );",""," // transform to modelview coordinates"," axis = normalize( normalMatrix * ldir );"," U = normalize( normalMatrix * up );"," V = normalize( normalMatrix * left );",""," vec4 base4 = modelViewMatrix * vec4( center - ldir, 1.0 );"," base_radius.xyz = base4.xyz / base4.w;",""," vec4 top_position = modelViewMatrix * vec4( center + ldir, 1.0 );"," vec4 end4 = top_position;"," end_b.xyz = end4.xyz / end4.w;",""," w = modelViewMatrix * vec4("," center + mapping.x*ldir + mapping.y*left + mapping.z*up, 1.0"," );",""," gl_Position = projectionMatrix * w;",""," // avoid clipping (1.0 seems to induce flickering with some drivers)"," gl_Position.z = 0.99;","","}"].join("\n"),$NGL_shaderTextHash["Instancing.frag"]=["#define STANDARD","uniform vec3 diffuse;","uniform vec3 emissive;","uniform float roughness;","uniform float metalness;","uniform float opacity;","uniform float nearClip;","uniform float clipRadius;","uniform mat4 projectionMatrix;","uniform float ortho;","varying float bCylinder;","","#if defined( NEAR_CLIP ) || defined( RADIUS_CLIP ) || ( !defined( PICKING ) && !defined( NOLIGHT ) )"," varying vec3 vViewPosition;","#endif","","#if defined( RADIUS_CLIP )"," varying vec3 vClipCenter;","#endif","","#if defined( PICKING )"," uniform float objectId;"," varying vec3 vPickingColor;","#elif defined( NOLIGHT )"," varying vec3 vColor;","#else"," #ifndef FLAT_SHADED"," varying vec3 vNormal;"," #endif"," #include common"," #include color_pars_fragment"," #include fog_pars_fragment"," #include bsdfs"," #include lights_pars_begin"," #include lights_physical_pars_fragment","#endif","","void main(){"," #include nearclip_fragment"," #include radiusclip_fragment",""," #if defined( PICKING )",""," gl_FragColor = vec4( vPickingColor, objectId );",""," #elif defined( NOLIGHT )",""," gl_FragColor = vec4( vColor, opacity );",""," #else",""," vec4 diffuseColor = vec4( diffuse, opacity );"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"," vec3 totalEmissiveLight = emissive;",""," #include color_fragment"," #include roughnessmap_fragment"," #include metalnessmap_fragment"," #include normal_flip"," #include normal_fragment_begin",""," //include dull_interior_fragment",""," #include lights_physical_fragment"," //include lights_template"," #include lights_fragment_begin"," #include lights_fragment_end",""," vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveLight;",""," #include interior_fragment",""," gl_FragColor = vec4( outgoingLight, diffuseColor.a );",""," #include premultiplied_alpha_fragment"," #include tonemapping_fragment"," #include encodings_fragment"," #include fog_fragment",""," #include opaque_back_fragment",""," #endif","","}"].join("\n"),$NGL_shaderTextHash["Instancing.vert"]=["#define STANDARD","","uniform mat4 projectionMatrixInverse;","uniform float nearClip;","uniform vec3 clipCenter;","attribute vec4 matrix1;","attribute vec4 matrix2;","attribute vec4 matrix3;","attribute vec4 matrix4;","attribute float cylinder;","varying float bCylinder;","","#if defined( NEAR_CLIP ) || defined( RADIUS_CLIP ) || ( !defined( PICKING ) && !defined( NOLIGHT ) )"," varying vec3 vViewPosition;","#endif","","#if defined( RADIUS_CLIP )"," varying vec3 vClipCenter;","#endif","","#if defined( PICKING )"," #include unpack_color"," attribute float primitiveId;"," varying vec3 vPickingColor;","#elif defined( NOLIGHT )"," varying vec3 vColor;","#else"," #include color_pars_vertex"," #ifndef FLAT_SHADED"," varying vec3 vNormal;"," #endif","#endif","","#include common",""," mat4 computeMat(vec4 v1, vec4 v2, vec4 v3, vec4 v4) {"," return mat4("," v1.x, v1.y, v1.z, v1.w,"," v2.x, v2.y, v2.z, v2.w,"," v3.x, v3.y, v3.z, v3.w,"," v4.x, v4.y, v4.z, v4.w"," );"," }","","void main(){"," bCylinder = cylinder;",""," mat4 matrix = computeMat(matrix1, matrix2, matrix3, matrix4);"," vec4 updatePosition = matrix * vec4(position, 1.0);",""," #if defined( PICKING )"," vPickingColor = unpackColor( primitiveId );"," #elif defined( NOLIGHT )"," vColor = color;"," #else"," #include color_vertex"," //include beginnormal_vertex"," //vec3 objectNormal = vec3( normal );"," vec3 objectNormal = vec3(matrix * vec4(normal,0.0));"," #include defaultnormal_vertex"," // Normal computed with derivatives when FLAT_SHADED"," #ifndef FLAT_SHADED"," vNormal = normalize( transformedNormal );"," #endif"," #endif",""," //include begin_vertex"," vec3 transformed = updatePosition.xyz;"," //include project_vertex"," vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );"," gl_Position = projectionMatrix * mvPosition;",""," #if defined( NEAR_CLIP ) || defined( RADIUS_CLIP ) || ( !defined( PICKING ) && !defined( NOLIGHT ) )"," vViewPosition = -mvPosition.xyz;"," #endif",""," #if defined( RADIUS_CLIP )"," vClipCenter = -( modelViewMatrix * vec4( clipCenter, 1.0 ) ).xyz;"," #endif",""," #include nearclip_vertex","","}"].join("\n"),THREE.RenderableObject=function(){"use strict";this.id=0,this.object=null,this.z=0},THREE.RenderableFace=function(){"use strict";this.id=0,this.v1=new THREE.RenderableVertex,this.v2=new THREE.RenderableVertex,this.v3=new THREE.RenderableVertex,this.normalModel=new THREE.Vector3,this.vertexNormalsModel=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3],this.vertexNormalsLength=0,this.color=new THREE.Color,this.material=null,this.uvs=[new THREE.Vector2,new THREE.Vector2,new THREE.Vector2],this.z=0},THREE.RenderableVertex=function(){"use strict";this.position=new THREE.Vector3,this.positionWorld=new THREE.Vector3,this.positionScreen=new THREE.Vector4,this.visible=!0},THREE.RenderableVertex.prototype.copy=function(e){"use strict";this.positionWorld.copy(e.positionWorld),this.positionScreen.copy(e.positionScreen)},THREE.RenderableLine=function(){"use strict";this.id=0,this.v1=new THREE.RenderableVertex,this.v2=new THREE.RenderableVertex,this.vertexColors=[new THREE.Color,new THREE.Color],this.material=null,this.z=0},THREE.RenderableSprite=function(){"use strict";this.id=0,this.object=null,this.x=0,this.y=0,this.z=0,this.rotation=0,this.scale=new THREE.Vector2,this.material=null},THREE.Projector=function(){"use strict";var e,t,n,r,i,o,a,s,c,u,d,l=[],f=0,p=[],h=0,g=[],v=0,m=[],y=0,E=[],w=0,b={objects:[],lights:[],elements:[]},_=(new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3),T=new THREE.Vector4,S=new THREE.Box3(new THREE.Vector3(-1,-1,-1),new THREE.Vector3(1,1,1)),C=new THREE.Box3,x=new Array(3),R=(new Array(4),new THREE.Matrix4),A=new THREE.Matrix4,k=(new THREE.Matrix4,new THREE.Matrix3,new THREE.Frustum);new THREE.Vector4,new THREE.Vector4;this.projectVector=function(e,t){console.warn("THREE.Projector: .projectVector() is now vector.project()."),e.project(t)},this.unprojectVector=function(e,t){console.warn("THREE.Projector: .unprojectVector() is now vector.unproject()."),e.unproject(t)},this.pkRay=function(e,t){console.error("THREE.Projector: .pkRay() is now raycaster.setFromCamera().")};var I=new function(){var e=[],t=[],c=null,u=null,l=new THREE.Matrix3,f=function(e){var t=e.position,n=e.positionWorld,r=e.positionScreen;n.copy(t).applyMatrix4(d),r.copy(n).applyMatrix4(A);var i=1/r.w;r.x*=i,r.y*=i,r.z*=i,e.visible=r.x>=-1&&r.x<=1&&r.y>=-1&&r.y<=1&&r.z>=-1&&r.z<=1},E=function(e,t,n){return!0===e.visible||!0===t.visible||!0===n.visible||(x[0]=e.positionScreen,x[1]=t.positionScreen,x[2]=n.positionScreen,S.isIntersectionBox(C.setFromPoints(x)))},w=function(e,t,n){return(n.positionScreen.x-e.positionScreen.x)*(t.positionScreen.y-e.positionScreen.y)-(n.positionScreen.y-e.positionScreen.y)*(t.positionScreen.x-e.positionScreen.x)<0};return{setObject:function(n){u=(c=n).material,l.getNormalMatrix(c.matrixWorld),e.length=0,t.length=0},projectVertex:f,checkTriangleVisibility:E,checkBackfaceCulling:w,pushVertex:function(e,t,i){(n=function(){if(r===h){var e=new THREE.RenderableVertex;return p.push(e),h++,r++,e}return p[r++]}()).position.set(e,t,i),f(n)},pushNormal:function(t,n,r){e.push(t,n,r)},pushUv:function(e,n){t.push(e,n)},pushLine:function(e,t){var n=p[e],r=p[t];(a=function(){if(s===y){var e=new THREE.RenderableLine;return m.push(e),y++,s++,e}return m[s++]}()).id=c.id,a.v1.copy(n),a.v2.copy(r),a.z=(n.positionScreen.z+r.positionScreen.z)/2,a.material=c.material,b.elements.push(a)},pushTriangle:function(n,r,a){var s=p[n],d=p[r],f=p[a];if(!1!==E(s,d,f)&&(u.side===THREE.DoubleSide||!0===w(s,d,f))){(i=function(){if(o===v){var e=new THREE.RenderableFace;return g.push(e),v++,o++,e}return g[o++]}()).id=c.id,i.v1.copy(s),i.v2.copy(d),i.v3.copy(f),i.z=(s.positionScreen.z+d.positionScreen.z+f.positionScreen.z)/3;for(var h=0;h<3;h++){var m=3*arguments[h],y=i.vertexNormalsModel[h];y.set(e[m],e[m+1],e[m+2]),y.applyMatrix3(l).normalize();var _=2*arguments[h];i.uvs[h].set(t[_],t[_+1])}i.vertexNormalsLength=3,i.material=c.material,b.elements.push(i)}}}};function P(){if(u===w){var e=new THREE.RenderableSprite;return E.push(e),w++,u++,e}return E[u++]}function N(e,t){return e.z!==t.z?t.z-e.z:e.id!==t.id?e.id-t.id:0}this.projectScene=function(n,i,a,p){o=0,s=0,u=0,b.elements.length=0,!0===n.autoUpdate&&n.updateMatrixWorld(),void 0===i.parent&&i.updateMatrixWorld(),R.copy(i.matrixWorldInverse.copy(i.matrixWorld).invert()),A.multiplyMatrices(i.projectionMatrix,R),k.setFromMatrix(A),t=0,b.objects.length=0,b.lights.length=0,n.traverseVisible(function(n){if(n instanceof THREE.Light)b.lights.push(n);else if(n instanceof THREE.Mesh||n instanceof THREE.Line||n instanceof THREE.Sprite){if(!1===n.material.visible)return;!1!==n.frustumCulled&&!0!==k.intersectsObject(n)||((e=function(){if(t===f){var e=new THREE.RenderableObject;return l.push(e),f++,t++,e}return l[t++]}()).id=n.id,e.object=n,_.setFromMatrixPosition(n.matrixWorld),_.applyProjection(A),e.z=_.z,b.objects.push(e))}}),!0===a&&b.objects.sort(N);for(var h=0,g=b.objects.length;h0)for(h=0;h=-1&&T.z<=1&&((c=P()).id=v.id,c.x=T.x*H,c.y=T.y*H,c.z=T.z,c.object=v,c.rotation=v.rotation,c.scale.x=v.scale.x*Math.abs(c.x-(T.x+i.projectionMatrix.elements[0])/(T.w+i.projectionMatrix.elements[12])),c.scale.y=v.scale.y*Math.abs(c.y-(T.y+i.projectionMatrix.elements[5])/(T.w+i.projectionMatrix.elements[13])),c.material=v.material,b.elements.push(c))}}return!0===p&&b.elements.sort(N),b}},THREE.TrackballControls=function(e,t,n){"use strict";var r=this;this.STATE={NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN:4},this.object=e,this.domElement=void 0!==t?t:document,this.enabled=!0,this.screen={left:0,top:0,width:0,height:0},this.rotateSpeed=1,this.zoomSpeed=1.2,this.panSpeed=.3,this.noRotate=!1,this.noZoom=!1,this.noPan=!1,this.noRoll=!1,this.staticMoving=!1,this.dynamicDampingFactor=.2,this.minDistance=0,this.maxDistance=1/0,this.keys=[65,83,68],this.target=new THREE.Vector3;var i=new THREE.Vector3;this._state=this.STATE.NONE;var o=this.STATE.NONE,a=new THREE.Vector3;this._rotateStart=new THREE.Vector3,this._rotateEnd=new THREE.Vector3,this._zoomStart=new THREE.Vector2,this._zoomEnd=new THREE.Vector2;var s=0,c=0;this._panStart=new THREE.Vector2,this._panEnd=new THREE.Vector2,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone();var u={type:"change"},d={type:"start"},l={type:"end"};this.handleResize=function(){if(this.domElement===document)this.screen.left=0,this.screen.top=0,this.screen.width=window.innerWidth,this.screen.height=window.innerHeight;else if(this.domElement){var e=this.domElement.getBoundingClientRect(),t=this.domElement.ownerDocument.documentElement;this.screen.left=e.left+window.pageXOffset-t.clientLeft,this.screen.top=e.top+window.pageYOffset-t.clientTop,this.screen.width=e.width,this.screen.height=e.height}},this.handleEvent=function(e){"function"==typeof this[e.type]&&this[e.type](e)};var f,p,h,g,v,m,y,E,w,b=(f=new THREE.Vector2,function(e,t){return f.set((e-r.screen.left)/r.screen.width,(t-r.screen.top)/r.screen.height),f}),_=(p=new THREE.Vector3,h=new THREE.Vector3,g=new THREE.Vector3,function(e,t){g.set((e-.5*r.screen.width-r.screen.left)/(.5*r.screen.width),(.5*r.screen.height+r.screen.top-t)/(.5*r.screen.height),0);var n=g.length();return r.noRoll?n1?g.normalize():g.z=Math.sqrt(1-n*n),a.copy(r.object.position).sub(r.target),p.copy(r.object.up).setLength(g.y),p.add(h.copy(r.object.up).cross(a).setLength(g.x)),p.add(a.setLength(g.z)),p});function T(e){!1===r.enabled||Object.keys(window).length<2||(window.removeEventListener("keydown",T),o=r._state,r._state===r.STATE.NONE&&(e.keyCode!==r.keys[r.STATE.ROTATE]||r.noRotate?e.keyCode!==r.keys[r.STATE.ZOOM]||r.noZoom?e.keyCode!==r.keys[r.STATE.PAN]||r.noPan||(r._state=r.STATE.PAN):r._state=r.STATE.ZOOM:r._state=r.STATE.ROTATE))}function S(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state!==r.STATE.ROTATE||r.noRotate?r._state!==r.STATE.ZOOM||r.noZoom?r._state!==r.STATE.PAN||r.noPan||r._panEnd.copy(b(e.pageX,e.pageY)):r._zoomEnd.copy(b(e.pageX,e.pageY)):r._rotateEnd.copy(_(e.pageX,e.pageY)))}function C(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state=r.STATE.NONE,document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",C),r.dispatchEvent(l))}function x(e){if(!(!1===r.enabled||Object.keys(window).length<2)){e.stopPropagation();var t=0;e.wheelDelta?t=e.wheelDelta/40:e.detail&&(t=-e.detail/3),r._zoomStart.y=.005*t,r.dispatchEvent(d),r.dispatchEvent(l)}}this.rotateCamera=(v=new THREE.Vector3,m=new THREE.Quaternion,function(e,t){var i;void 0===e&&(i=Math.acos(r._rotateStart.dot(r._rotateEnd)/r._rotateStart.length()/r._rotateEnd.length())),(i||void 0!==e)&&(void 0===e?(v.crossVectors(r._rotateStart,r._rotateEnd).normalize(),i*=r.rotateSpeed,m.setFromAxisAngle(v,-i)):m.copy(e),void 0===n||void 0===n.quaternion||void 0!==t&&!0!==t||n.quaternion.multiplyQuaternions(m,n.quaternion),a.applyQuaternion(m),r.object.up.applyQuaternion(m),r._rotateEnd.applyQuaternion(m),r.staticMoving?r._rotateStart.copy(r._rotateEnd):(m.setFromAxisAngle(v,i*(r.dynamicDampingFactor-1)),r._rotateStart.applyQuaternion(m)))}),this.zoomCamera=function(e,t){var i;r._state===r.STATE.TOUCH_ZOOM_PAN?(void 0!==e?i=e:(i=s/c,s=c),a.multiplyScalar(i),void 0===n||void 0===n._zoomFactor||void 0!==t&&!0!==t||(n._zoomFactor*=i,n.fogCls.setFog())):(i=void 0!==e?e:1+(r._zoomEnd.y-r._zoomStart.y)*r.zoomSpeed,void 0===n||void 0===n._zoomFactor||void 0!==t&&!0!==t||(n._zoomFactor*=i,n.fogCls.setFog()),1!==i&&(a.multiplyScalar(i),r.staticMoving?r._zoomStart.copy(r._zoomEnd):r._zoomStart.y+=(r._zoomEnd.y-r._zoomStart.y)*this.dynamicDampingFactor))},this.panCamera=(y=new THREE.Vector2,E=new THREE.Vector3,w=new THREE.Vector3,function(e,t){void 0!==e?(y=e,void 0===n||void 0===n.mouseChange||void 0!==t&&!0!==t||n.mouseChange.add(e)):(y.copy(r._panEnd).sub(r._panStart),void 0===n||void 0===n.mouseChange||void 0!==t&&!0!==t||n.mouseChange.add(r._panEnd).sub(r._panStart)),y.lengthSq()&&(y.multiplyScalar(a.length()*r.panSpeed),w.copy(a).cross(r.object.up).setLength(y.x),w.add(E.copy(r.object.up).setLength(y.y)),r.object.position.add(w),r.target.add(w),r.staticMoving?r._panStart.copy(r._panEnd):r._panStart.add(y.subVectors(r._panEnd,r._panStart).multiplyScalar(r.dynamicDampingFactor)))}),this.checkDistances=function(){r.noZoom&&r.noPan||(a.lengthSq()>r.maxDistance*r.maxDistance&&r.object.position.addVectors(r.target,a.setLength(r.maxDistance)),a.lengthSq()1e-6&&(r.dispatchEvent(u),i.copy(r.object.position))},this.reset=function(){r._state=r.STATE.NONE,o=r.STATE.NONE,r.target.copy(r.target0),r.object.position.copy(r.position0),r.object.up.copy(r.up0),a.subVectors(r.object.position,r.target),r.object.lookAt(r.target),r.dispatchEvent(u),i.copy(r.object.position)},Object.keys(window).length>=2&&this.domElement&&(this.domElement.addEventListener("contextmn",function(e){},!1),this.domElement.addEventListener("mousedown",function(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state===r.STATE.NONE&&(r._state=e.button),r._state!==r.STATE.ROTATE||r.noRotate?r._state!==r.STATE.ZOOM||r.noZoom?r._state!==r.STATE.PAN||r.noPan||(r._panStart.copy(b(e.pageX,e.pageY)),r._panEnd.copy(r._panStart)):(r._zoomStart.copy(b(e.pageX,e.pageY)),r._zoomEnd.copy(r._zoomStart)):(r._rotateStart.copy(_(e.pageX,e.pageY)),r._rotateEnd.copy(r._rotateStart)),document.addEventListener("mousemove",S,!1),document.addEventListener("mouseup",C,!1),r.dispatchEvent(d))},!1),this.domElement.addEventListener("mousewheel",x,!1),this.domElement.addEventListener("DOMMouseScroll",x,!1),this.domElement.addEventListener("touchstart",function(e){if(!(!1===r.enabled||Object.keys(window).length<2)){switch(e.touches.length){case 1:r._state=r.STATE.TOUCH_ROTATE,r._rotateStart.copy(_(e.touches[0].pageX,e.touches[0].pageY)),r._rotateEnd.copy(r._rotateStart);break;case 2:r._state=r.STATE.TOUCH_ZOOM_PAN;var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;c=s=Math.sqrt(t*t+n*n);var i=(e.touches[0].pageX+e.touches[1].pageX)/2,o=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panStart.copy(b(i,o)),r._panEnd.copy(r._panStart);break;default:r._state=r.STATE.NONE}r.dispatchEvent(d)}},!1),this.domElement.addEventListener("touchend",function(e){if(!(!1===r.enabled||Object.keys(window).length<2)){switch(e.touches.length){case 1:r._rotateEnd.copy(_(e.touches[0].pageX,e.touches[0].pageY)),r._rotateStart.copy(r._rotateEnd);break;case 2:s=c=0;var t=(e.touches[0].pageX+e.touches[1].pageX)/2,n=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panEnd.copy(b(t,n)),r._panStart.copy(r._panEnd)}r._state=r.STATE.NONE,r.dispatchEvent(l)}},!1),this.domElement.addEventListener("touchmove",function(e){if(!(!1===r.enabled||Object.keys(window).length<2))switch(e.stopPropagation(),e.touches.length){case 1:r._rotateEnd.copy(_(e.touches[0].pageX,e.touches[0].pageY));break;case 2:var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;c=Math.sqrt(t*t+n*n);var i=(e.touches[0].pageX+e.touches[1].pageX)/2,o=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panEnd.copy(b(i,o));break;default:r._state=r.STATE.NONE}},!1),Object.keys(window).length>=2&&window.addEventListener("keydown",T,!1),Object.keys(window).length>=2&&window.addEventListener("keyup",function(e){!1===r.enabled||Object.keys(window).length<2||(r._state=o,window.addEventListener("keydown",T,!1))},!1)),this.handleResize(),this.update()},THREE.TrackballControls.prototype=Object.create(THREE.EventDispatcher.prototype),THREE.TrackballControls.prototype.constructor=THREE.TrackballControls,THREE.OrthographicTrackballControls=function(e,t,n){this.icn3d;var r=this,i={NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN:4};this.object=e,this.domElement=void 0!==t?t:document,this.enabled=!0,this.screen={left:0,top:0,width:0,height:0},this.rotateSpeed=.5,this.zoomSpeed=1.2;this.zoomSpeed*=.01,this.panSpeed=.03,this.noRotate=!1,this.noZoom=!1,this.noPan=!1,this.noRoll=!1,this.staticMoving=!1,this.dynamicDampingFactor=.2,this.keys=[65,83,68],this.target=new THREE.Vector3;var o=new THREE.Vector3;this._state=i.NONE;var a=i.NONE,s=new THREE.Vector3;this._rotateStart=new THREE.Vector3,this._rotateEnd=new THREE.Vector3,this._zoomStart=new THREE.Vector2,this._zoomEnd=new THREE.Vector2;var c=1,u=0,d=0;this._panStart=new THREE.Vector2,this._panEnd=new THREE.Vector2,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone(),this.left0=this.object.left,this.right0=this.object.right,this.top0=this.object.top,this.bottom0=this.object.bottom,this.center0=new THREE.Vector2((this.left0+this.right0)/2,(this.top0+this.bottom0)/2);var l={type:"change"},f={type:"start"},p={type:"end"};this.handleResize=function(){if(this.domElement===document)this.screen.left=0,this.screen.top=0,this.screen.width=window.innerWidth,this.screen.height=window.innerHeight;else if(this.domElement){var e=this.domElement.getBoundingClientRect(),t=this.domElement.ownerDocument.documentElement;this.screen.left=e.left+window.pageXOffset-t.clientLeft,this.screen.top=e.top+window.pageYOffset-t.clientTop,this.screen.width=e.width,this.screen.height=e.height}this.left0=this.object.left,this.right0=this.object.right,this.top0=this.object.top,this.bottom0=this.object.bottom,this.center0.set((this.left0+this.right0)/2,(this.top0+this.bottom0)/2)},this.handleEvent=function(e){"function"==typeof this[e.type]&&this[e.type](e)};var h,g,v,m,y,E,w,b,_,T=(h=new THREE.Vector2,function(e,t){return h.set((e-r.screen.left)/r.screen.width,(t-r.screen.top)/r.screen.height),h}),S=(g=new THREE.Vector3,v=new THREE.Vector3,m=new THREE.Vector3,function(e,t){m.set((e-.5*r.screen.width-r.screen.left)/(.5*r.screen.width),(.5*r.screen.height+r.screen.top-t)/(.5*r.screen.height),0);var n=m.length();return r.noRoll?n1?m.normalize():m.z=Math.sqrt(1-n*n),s.copy(r.object.position).sub(r.target),g.copy(r.object.up).setLength(m.y),g.add(v.copy(r.object.up).cross(s).setLength(m.x)),g.add(s.setLength(m.z)),g});function C(e){!1===r.enabled||Object.keys(window).length<2||(window.removeEventListener("keydown",C),a=r._state,r._state===i.NONE&&(e.keyCode!==r.keys[i.ROTATE]||r.noRotate?e.keyCode!==r.keys[i.ZOOM]||r.noZoom?e.keyCode!==r.keys[i.PAN]||r.noPan||(r._state=i.PAN):r._state=i.ZOOM:r._state=i.ROTATE))}function x(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state!==i.ROTATE||r.noRotate?r._state!==i.ZOOM||r.noZoom?r._state!==i.PAN||r.noPan||r._panEnd.copy(T(e.pageX,e.pageY)):r._zoomEnd.copy(T(e.pageX,e.pageY)):r._rotateEnd.copy(S(e.pageX,e.pageY)))}function R(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state=i.NONE,document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",R),r.dispatchEvent(p))}function A(e){if(!(!1===r.enabled||Object.keys(window).length<2)){e.stopPropagation();var t=0;e.wheelDelta?t=e.wheelDelta/40:e.detail&&(t=-e.detail/3),r._zoomStart.y=.01*t,r.dispatchEvent(f),r.dispatchEvent(p)}}this.rotateCamera=(y=new THREE.Vector3,E=new THREE.Quaternion,function(e,t){var i;void 0===e&&(i=Math.acos(r._rotateStart.dot(r._rotateEnd)/r._rotateStart.length()/r._rotateEnd.length())),(i||void 0!==e)&&(void 0===e?(y.crossVectors(r._rotateStart,r._rotateEnd).normalize(),i*=r.rotateSpeed,E.setFromAxisAngle(y,-i)):E.copy(e),void 0===n||void 0===n.quaternion||void 0!==t&&!0!==t||n.quaternion.multiplyQuaternions(E,n.quaternion),s.applyQuaternion(E),r.object.up.applyQuaternion(E),r._rotateEnd.applyQuaternion(E),r.staticMoving?r._rotateStart.copy(r._rotateEnd):(E.setFromAxisAngle(y,i*(r.dynamicDampingFactor-1)),r._rotateStart.applyQuaternion(E)))}),this.zoomCamera=function(e,t){var o;r._state===i.TOUCH_ZOOM_PAN?void 0!==e?o=e:(o=u/d,u=d):o=void 0!==e?e:1+(r._zoomEnd.y-r._zoomStart.y)*r.zoomSpeed/.01,void 0===n||void 0===n._zoomFactor||void 0!==t&&!0!==t||(n._zoomFactor*=o),1!==o&&(c=o,r.object.left=c*r.left0+(1-c)*r.center0.x,r.object.right=c*r.right0+(1-c)*r.center0.x,r.object.top=c*r.top0+(1-c)*r.center0.y,r.object.bottom=c*r.bottom0+(1-c)*r.center0.y,r.staticMoving?r._zoomStart.copy(r._zoomEnd):r._zoomStart.y+=(r._zoomEnd.y-r._zoomStart.y)*this.dynamicDampingFactor)},this.panCamera=(w=new THREE.Vector2,b=new THREE.Vector3,_=new THREE.Vector3,function(e,t){void 0!==e?(w=e,void 0===n||void 0===n.mouseChange||void 0!==t&&!0!==t||n.mouseChange.add(e)):(w.copy(r._panEnd).sub(r._panStart),void 0===n||void 0===n.mouseChange||void 0!==t&&!0!==t||n.mouseChange.add(r._panEnd).sub(r._panStart)),w.lengthSq()&&(w.multiplyScalar(s.length()*r.panSpeed),_.copy(s).cross(r.object.up).setLength(w.x),_.add(b.copy(r.object.up).setLength(w.y)),r.object.position.add(_),r.target.add(_),r.staticMoving?r._panStart.copy(r._panEnd):r._panStart.add(w.subVectors(r._panEnd,r._panStart).multiplyScalar(r.dynamicDampingFactor)))}),this.update=function(e){s.subVectors(r.object.position,r.target),r.noRotate||(void 0!==e&&void 0!==e.quaternion?r.rotateCamera(e.quaternion,e.update):r.rotateCamera()),r.noZoom||(void 0!==e&&void 0!==e._zoomFactor?r.zoomCamera(e._zoomFactor,e.update):r.zoomCamera(),r.object.updateProjectionMatrix()),r.noPan||(void 0!==e&&void 0!==e.mouseChange?r.panCamera(e.mouseChange,e.update):r.panCamera()),r.object.position.addVectors(r.target,s),r.object.lookAt(r.target),o.distanceToSquared(r.object.position)>1e-6&&(r.dispatchEvent(l),o.copy(r.object.position))},this.reset=function(){r._state=i.NONE,a=i.NONE,r.target.copy(r.target0),r.object.position.copy(r.position0),r.object.up.copy(r.up0),s.subVectors(r.object.position,r.target),r.object.left=r.left0,r.object.right=r.right0,r.object.top=r.top0,r.object.bottom=r.bottom0,r.object.lookAt(r.target),r.dispatchEvent(l),o.copy(r.object.position)},Object.keys(window).length>=2&&this.domElement&&(this.domElement.addEventListener("contextmn",function(e){},!1),this.domElement.addEventListener("mousedown",function(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state===i.NONE&&(r._state=e.button),r._state!==i.ROTATE||r.noRotate?r._state!==i.ZOOM||r.noZoom?r._state!==i.PAN||r.noPan||(r._panStart.copy(T(e.pageX,e.pageY)),r._panEnd.copy(r._panStart)):(r._zoomStart.copy(T(e.pageX,e.pageY)),r._zoomEnd.copy(r._zoomStart)):(r._rotateStart.copy(S(e.pageX,e.pageY)),r._rotateEnd.copy(r._rotateStart)),document.addEventListener("mousemove",x,!1),document.addEventListener("mouseup",R,!1),r.dispatchEvent(f))},!1),this.domElement.addEventListener("mousewheel",A,!1),this.domElement.addEventListener("DOMMouseScroll",A,!1),this.domElement.addEventListener("touchstart",function(e){if(!(!1===r.enabled||Object.keys(window).length<2)){switch(e.touches.length){case 1:r._state=i.TOUCH_ROTATE,r._rotateStart.copy(S(e.touches[0].pageX,e.touches[0].pageY)),r._rotateEnd.copy(r._rotateStart);break;case 2:r._state=i.TOUCH_ZOOM_PAN;var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;d=u=Math.sqrt(t*t+n*n);var o=(e.touches[0].pageX+e.touches[1].pageX)/2,a=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panStart.copy(T(o,a)),r._panEnd.copy(r._panStart);break;default:r._state=i.NONE}r.dispatchEvent(f)}},!1),this.domElement.addEventListener("touchend",function(e){if(!(!1===r.enabled||Object.keys(window).length<2)){switch(e.touches.length){case 1:r._rotateEnd.copy(S(e.touches[0].pageX,e.touches[0].pageY)),r._rotateStart.copy(r._rotateEnd);break;case 2:u=d=0;var t=(e.touches[0].pageX+e.touches[1].pageX)/2,n=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panEnd.copy(T(t,n)),r._panStart.copy(r._panEnd)}r._state=i.NONE,r.dispatchEvent(p)}},!1),this.domElement.addEventListener("touchmove",function(e){if(!(!1===r.enabled||Object.keys(window).length<2))switch(e.stopPropagation(),e.touches.length){case 1:r._rotateEnd.copy(S(e.touches[0].pageX,e.touches[0].pageY));break;case 2:var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;d=Math.sqrt(t*t+n*n);var o=(e.touches[0].pageX+e.touches[1].pageX)/2,a=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panEnd.copy(T(o,a));break;default:r._state=i.NONE}},!1),window.addEventListener("keydown",C,!1),window.addEventListener("keyup",function(e){!1===r.enabled||Object.keys(window).length<2||(r._state=a,window.addEventListener("keydown",C,!1))},!1)),this.handleResize(),this.update()},THREE.OrthographicTrackballControls.prototype=Object.create(THREE.EventDispatcher.prototype),THREE.OrthographicTrackballControls.prototype.constructor=THREE.OrthographicTrackballControls,function(e){var t,n,r,i;e.VERSION={number:"1.1.7",date:"Oct 30 2018"},function(e){function t(e,t,n){(t|=0)<=0&&(t=1);var r=t*n,i=e(r);return{elementSize:n,chunkSize:r,creator:e,current:i,parts:[i],currentIndex:0,elementCount:0}}e.is=function(e){return e.creator&&e.chunkSize},e.add4=function(e,t,n,r,i){return e.currentIndex>=e.chunkSize&&(e.currentIndex=0,e.current=e.creator(e.chunkSize),e.parts[e.parts.length]=e.current),e.current[e.currentIndex++]=t,e.current[e.currentIndex++]=n,e.current[e.currentIndex++]=r,e.current[e.currentIndex++]=i,e.elementCount++},e.add3=function(e,t,n,r){return e.currentIndex>=e.chunkSize&&(e.currentIndex=0,e.current=e.creator(e.chunkSize),e.parts[e.parts.length]=e.current),e.current[e.currentIndex++]=t,e.current[e.currentIndex++]=n,e.current[e.currentIndex++]=r,e.elementCount++},e.add2=function(e,t,n){return e.currentIndex>=e.chunkSize&&(e.currentIndex=0,e.current=e.creator(e.chunkSize),e.parts[e.parts.length]=e.current),e.current[e.currentIndex++]=t,e.current[e.currentIndex++]=n,e.elementCount++},e.add=function(e,t){return e.currentIndex>=e.chunkSize&&(e.currentIndex=0,e.current=e.creator(e.chunkSize),e.parts[e.parts.length]=e.current),e.current[e.currentIndex++]=t,e.elementCount++},e.compact=function(e){var t,n=e.creator(e.elementSize*e.elementCount),r=(e.parts.length-1)*e.chunkSize,i=0;if(e.parts.length>1)if(e.parts[0].buffer)for(var o=0;o=e.chunkSize)n.set(e.current,e.chunkSize*(e.parts.length-1));else for(o=0;o9||o<0)return i*r|0;r=10*r+o|0}return i*r}function n(e,n,r,i){return 43===n.charCodeAt(r)&&r++,e*Math.pow(10,t(n,r,i))}function r(e,t,r){var i=1,o=0,a=0,s=1;for(45===e.charCodeAt(t)&&(i=-1,++t);t=0&&c<10)){if(-2===c){for(++t;t=0&&c<10))return 53===c||21===c?n(i*(o+a/s),e,t+1,r):i*(o+a/s);a=10*a+c,s*=10,++t}return i*(o+a/s)}if(53===c||21===c)return n(i*o,e,t+1,r);break}o=10*o+c,++t}return i*o}e.parseIntSkipTrailingWhitespace=function(e,n,r){for(;n0&&(e.data[e.data.length]=e.chunkData.splice(0,e.chunkOffset).join("")),e.data.join("")):e.chunkData.length===e.chunkOffset?e.chunkData.join(""):e.chunkData.splice(0,e.chunkOffset).join("")},e.writeTo=function(e,t){var n;(n=e).chunkOffset>0&&(n.chunkData.length===n.chunkOffset?n.data[n.data.length]=n.chunkData.join(""):n.data[n.data.length]=n.chunkData.splice(0,n.chunkOffset).join(""),n.chunkOffset=0);for(var r=0,i=e.data;r0&&t(e,i[o]),t(e,n)},e.writePadRight=function(e,n,r){void 0!==n&&null!==n||t(e,i[r]);var o=r-n.length;t(e,n),o>0&&t(e,i[o])},e.writeInteger=function(e,n){t(e,""+n)},e.writeIntegerPadLeft=function(e,n,r){var o=""+n,a=r-o.length;a>0&&t(e,i[a]),t(e,o)},e.writeIntegerPadRight=function(e,n,r){var o=""+n,a=r-o.length;t(e,o),a>0&&t(e,i[a])},e.writeFloat=function(e,n,r){t(e,""+Math.round(r*n)/r)},e.writeFloatPadLeft=function(e,n,r,o){var a=""+Math.round(r*n)/r,s=o-a.length;s>0&&t(e,i[s]),t(e,a)},e.writeFloatPadRight=function(e,n,r,o){var a=""+Math.round(r*n)/r,s=o-a.length;t(e,a),s>0&&t(e,i[s])}}(r.StringWriter||(r.StringWriter={}));var o=function(){function e(){this.isDefined=!1}return e.prototype.getString=function(e){return null},e.prototype.getInteger=function(e){return 0},e.prototype.getFloat=function(e){return 0},e.prototype.getValuePresence=function(e){return 1},e.prototype.areValuesEqual=function(e,t){return!0},e.prototype.stringEquals=function(e,t){return null===t},e}();e.UndefinedColumn=new o,function(e){e.getMatrix=function(e,t,n,r,i){for(var o=[],a=1;a<=n;a++){for(var s=[],c=1;c<=r;c++)s[c-1]=e.getColumn(t+"["+a+"]["+c+"]").getFloat(i);o[a-1]=s}return o},e.getVector=function(e,t,n,r,i){for(var o=[],a=1;a<=n;a++)o[a-1]=e.getColumn(t+"["+a+"]").getFloat(i);return o}}(e.Category||(e.Category={})),function(e){e.error=function(e,t){return void 0===t&&(t=-1),new a(e,t)},e.success=function(e,t){return void 0===t&&(t=[]),new l(e,t)}}(e.ParserResult||(e.ParserResult={}));var a=function(){function e(e,t){this.message=e,this.line=t,this.isError=!0}return e.prototype.toString=function(){return this.line>=0?"[Line "+this.line+"] "+this.message:this.message},e}();e.ParserError=a;var s,c,u,d,l=function(){return function(e,t){this.result=e,this.warnings=t,this.isError=!1}}();e.ParserSuccess=l,function(t){"use strict";var n;!function(e){e.create=function(){return Object.create(null)},e.get=function(e,t){if(t.length>6)return t;var n=e[t];return void 0!==n?n:(e[t]=t,t)}}(n||(n={}));var r=function(){function e(e){this.dataBlocks=[],this.data=e}return e.prototype.toJSON=function(){return this.dataBlocks.map(function(e){return e.toJSON()})},e}();t.File=r;var i=function(){function e(e,t){this.header=t,this.data=e,this.categoryList=[],this.additionalData={},this.categoryMap=new Map}return Object.defineProperty(e.prototype,"categories",{get:function(){return this.categoryList},enumerable:!0,configurable:!0}),e.prototype.getCategory=function(e){return this.categoryMap.get(e)},e.prototype.addCategory=function(e){this.categoryList[this.categoryList.length]=e,this.categoryMap.set(e.name,e)},e.prototype.toJSON=function(){return{id:this.header,categories:this.categoryList.map(function(e){return e.toJSON()}),additionalData:this.additionalData}},e}();t.DataBlock=i;var o=function(){function t(e,t,n,r,i,o,a){this.name=t,this.tokens=o,this.data=e,this.startIndex=n,this.endIndex=r,this.columnCount=i.length,this.rowCount=a/i.length|0,this.columnIndices=new Map,this.columnNameList=[];for(var s=0;s=e.length)e.currentTokenType=6;else{e.currentTokenStart=e.position,e.currentTokenEnd=e.position,e.isEscaped=!1;var n,i,o,a,s=e.data.charCodeAt(e.position);switch(s){case 35:!function(e){for(;e.position=5&&95===e.data.charCodeAt(e.currentTokenStart+4)?68!==(a=(o=e).data.charCodeAt(o.currentTokenStart))&&100!==a||65!==(a=o.data.charCodeAt(o.currentTokenStart+1))&&97!==a||84!==(a=o.data.charCodeAt(o.currentTokenStart+2))&&116!==a||65!==(a=o.data.charCodeAt(o.currentTokenStart+3))&&97!==a?83!==(i=(n=e).data.charCodeAt(n.currentTokenStart))&&115!==i||65!==(i=n.data.charCodeAt(n.currentTokenStart+1))&&97!==i||86!==(i=n.data.charCodeAt(n.currentTokenStart+2))&&118!==i||69!==(i=n.data.charCodeAt(n.currentTokenStart+3))&&101!==i?!function(e){if(e.currentTokenEnd-e.currentTokenStart!=5)return!1;var t=e.data.charCodeAt(e.currentTokenStart);return!(76!==t&&108!==t||79!==(t=e.data.charCodeAt(e.currentTokenStart+1))&&111!==t||79!==(t=e.data.charCodeAt(e.currentTokenStart+2))&&111!==t||80!==(t=e.data.charCodeAt(e.currentTokenStart+3))&&112!==t)}(e)?e.currentTokenType=3:e.currentTokenType=2:e.currentTokenType=1:e.currentTokenType=0:e.currentTokenType=3}}}function u(e){for(c(e);5===e.currentTokenType;)c(e)}function d(e,r){for(var c,d=e.currentTokenStart,l=o(e),f=a(e,l),p=[],h=n.create(512),g=0,v=!0;v;){if(4!==e.currentTokenType||!i(e,d,l)){v=!1;break}if(c=s(e),u(e),3!==e.currentTokenType)return{hasError:!0,errorLine:e.currentLineNumber,errorMessage:"Expected value."};p[p.length]=c,n.addToken(h,e.currentTokenStart,e.currentTokenEnd),g++,u(e)}return r.addCategory(new t.Category(r.data,f,d,e.currentTokenStart,p,h.tokens,g)),{hasError:!1,errorLine:0,errorMessage:""}}function l(e,r){var i=e.currentTokenStart,c=e.currentLineNumber;u(e);for(var d=a(e,o(e)),l=[],f=n.create("_atom_site"===d?r.data.length/1.85|0:1024),p=0;4===e.currentTokenType;)l[l.length]=s(e),u(e);for(;3===e.currentTokenType;)n.addToken(f,e.currentTokenStart,e.currentTokenEnd),p++,u(e);return p%l.length!=0?{hasError:!0,errorLine:e.currentLineNumber,errorMessage:"The number of values for loop starting at line "+c+" is not a multiple of the number of columns."}:(r.addCategory(new t.Category(r.data,d,i,e.currentTokenStart,l,f.tokens,p)),{hasError:!1,errorLine:0,errorMessage:""})}function f(t,n){return e.ParserResult.error(n,t)}function p(n){var r,i,o,a,s,c={data:a=n,length:a.length,position:0,currentTokenStart:0,currentTokenEnd:0,currentTokenType:6,currentLineNumber:1,isEscaped:!1},p=new t.File(n),h=new t.DataBlock(n,"default"),g=new t.DataBlock(n,"empty"),v=!1;for(u(c);6!==c.currentTokenType;){var m=c.currentTokenType;if(0===m){if(v)return f(c.currentLineNumber,"Unexpected data block inside a save frame.");h.categories.length>0&&p.dataBlocks.push(h),h=new t.DataBlock(n,n.substring(c.currentTokenStart+5,c.currentTokenEnd)),u(c)}else if(1===m){if(0===(i=n.substring(c.currentTokenStart+5,c.currentTokenEnd)).length)g.categories.length>0&&((o=h.additionalData.saveFrames)||(o=[],h.additionalData.saveFrames=o),o[o.length]=g),v=!1;else{if(v)return f(c.currentLineNumber,"Save frames cannot be nested.");v=!0,g=new t.DataBlock(n,i)}u(c)}else if(2===m){if((r=l(c,v?g:h)).hasError)return f(r.errorLine,r.errorMessage)}else{if(4!==m)return f(c.currentLineNumber,"Unexpected token. Expected data_, loop_, or data name.");if((r=d(c,v?g:h)).hasError)return f(r.errorLine,r.errorMessage)}}return v?f(c.currentLineNumber,"Unfinished save frame (`"+g.header+"`)."):(h.categories.length>0&&p.dataBlocks.push(h),s=p,e.ParserResult.success(s))}!function(e){e.addToken=function(e,t,n){var r,i;e.count>=e.tokensLenMinus2&&(r=e,(i=new Int32Array(1.61*r.tokens.length|0)).set(r.tokens),r.tokens=i,r.tokensLenMinus2=i.length-2|0),e.tokens[e.count++]=t,e.tokens[e.count++]=n},e.create=function(e){return{tokensLenMinus2:e-2|0,count:0,tokens:new Int32Array(e)}}}(n||(n={})),t.parse=function(e){return p(e)}}(e.Text||(e.Text={})),function(t){"use strict";var n=e.Utils.StringWriter,r=function(){function e(){this.writer=n.create(),this.encoded=!1,this.dataBlockCreated=!1}return e.prototype.startDataBlock=function(e){this.dataBlockCreated=!0,n.write(this.writer,"data_"+(e||"").replace(/[ \n\t]/g,"").toUpperCase()+"\n#\n")},e.prototype.writeCategory=function(e,t){if(this.encoded)throw new Error("The writer contents have already been encoded, no more writing.");if(!this.dataBlockCreated)throw new Error("No data block created.");var r=(t&&t.length?t.map(function(t){return e(t)}):[e(void 0)]).filter(function(e){return e&&e.count>0});if(r.length){var d=r.reduce(function(e,t){return e+(void 0===t.count?1:t.count)},0);d&&(1===d?function(e,t){for(var r=e.desc.fields,o=e.data,d=r.reduce(function(e,t){return Math.max(e,t.name.length)},0)+e.desc.name.length+5,l=0,f=r;l=0}function o(e,t){n.write(e,t),n.newline(e)}function a(e){n.writeSafe(e,". ")}function s(e){n.writeSafe(e,"? ")}function c(e,t){if(t){for(var r=!1,i="'",o="' ",a=!1,s=!1,c=!1,u=0,d=t.length-1;u=0){if(t<128)return 1;if(t<256)return 2;if(t<65536)return 3;if(t<4294967296)return 5;throw new Error("Number too big 0x"+t.toString(16))}if(t>=-32)return 1;if(t>=-128)return 2;if(t>=-32768)return 3;if(t>=-2147483648)return 5;throw new Error("Number too small -0x"+t.toString(16).substr(1))}if("boolean"===n||null===t||void 0===t)return 1;if("object"===n){var o,a=0;if(Array.isArray(t)){o=t.length;for(var s=0;s=0){if(t<128)return n.setUint8(i,t),1;if(t<256)return n.setUint8(i,204),n.setUint8(i+1,t),2;if(t<65536)return n.setUint8(i,205),n.setUint16(i+1,t),3;if(t<4294967296)return n.setUint8(i,206),n.setUint32(i+1,t),5;throw new Error("Number too big 0x"+t.toString(16))}if(t>=-32)return n.setInt8(i,t),1;if(t>=-128)return n.setUint8(i,208),n.setInt8(i+1,t),2;if(t>=-32768)return n.setUint8(i,209),n.setInt16(i+1,t),3;if(t>=-2147483648)return n.setUint8(i,210),n.setInt32(i+1,t),5;throw new Error("Number too small -0x"+(-t).toString(16).substr(1))}if(null===t||void 0===t)return n.setUint8(i,192),1;if("boolean"===o)return n.setUint8(i,t?195:194),1;if("object"===o){var d,l=0,f=Array.isArray(t),p=void 0;if(f?d=t.length:(p=Object.keys(t),d=p.length),d<16?(n.setUint8(i,d|(f?144:128)),l=1):d<65536?(n.setUint8(i,f?220:222),n.setUint16(i+1,d),l=3):d<4294967296&&(n.setUint8(i,f?221:223),n.setUint32(i+1,d),l=5),f)for(var h=0;h>>0&127|0;else if(o<2048)e[t++]=o>>>6&31|192,e[t++]=o>>>0&63|128;else if(o<65536)e[t++]=o>>>12&15|224,e[t++]=o>>>6&63|128,e[t++]=o>>>0&63|128;else{if(!(o<1114112))throw new Error("bad codepoint "+o);e[t++]=o>>>18&7|240,e[t++]=o>>>12&63|128,e[t++]=o>>>6&63|128,e[t++]=o>>>0&63|128}}};var t=function(){for(var e=[],t=0;t<1024;t++)e[t]=String.fromCharCode(t);return e}();function n(e){throw new Error(e)}e.utf8Read=function(e,r,i){for(var o=t,a=void 0,s=[],c=0,u=r,d=r+i;u0&&(a[a.length]=s.slice(0,c).join("")),a.join("")):s.slice(0,c).join("")},e.utf8ByteCount=function(e){for(var t=0,r=0,i=e.length;r=0;r--)t=n.decodeStep(t,e.encoding[r]);return t}var n;e.decode=t,function(e){function r(e,t){switch(e){case 1:return new Int8Array(t);case 2:return new Int16Array(t);case 3:return new Int32Array(t);case 4:return new Uint8Array(t);case 5:return new Uint16Array(t);case 6:return new Uint32Array(t);default:throw new Error("Unsupported integer data type.")}}function i(e,t){switch(e){case 32:return new Float32Array(t);case 33:return new Float64Array(t);default:throw new Error("Unsupported floating data type.")}}(n||(n={})).decodeStep=function(e,n){switch(n.kind){case"ByteArray":switch(n.type){case 4:return e;case 1:return s=e,new Int8Array(s.buffer,s.byteOffset);case 2:return u(e,2,Int16Array);case 5:return u(e,2,Uint16Array);case 3:return u(e,4,Int32Array);case 6:return u(e,4,Uint32Array);case 32:return u(e,4,Float32Array);case 33:return u(e,8,Float64Array);default:throw new Error("Unsupported ByteArray type.")}case"FixedPoint":return function(e,t){for(var n=e.length,r=i(t.srcType,n),o=1/t.factor,a=0;a0?(r+=Math.ceil(a/t),a%t==0&&(r+=1)):(r+=Math.ceil(a/n),a%n==0&&(r+=1))}return r}function l(e){if(!(e instanceof Int32Array))throw new Error("Integer packing can only be applied to Int32 data.");var t,n,r,i,o=(n=function(e){for(var t=0,n=e.length;t=0)for(;u>=n;)o[a]=n,++a,u-=n;else for(;u<=r;)o[a]=r,++a,u-=r;o[a]=u,++a}var d=s(o);return{encodings:[{kind:"IntegerPacking",byteCount:t.bytesPerElement,isUnsigned:!t.isSigned,srcSize:i},d.encodings[0]],data:d.data}}(e,o)}n.byteArray=s,n.fixedPoint=function(e){return function(n){return function(e,n){for(var r=t.Encoding.getDataType(e),i=new Int32Array(e.length),o=0,a=e.length;o=r?i:0|Math.round((f-n)/c)}return{encodings:[{kind:"IntervalQuantization",min:n,max:r,numSteps:i,srcType:a}],data:u}}(o,e,n,r,i)}},n.runLength=c,n.delta=u,n.integerPacking=l,n.stringArray=function(t){var r=Object.create(null),i=[],o=0,a=e.Utils.ChunkedArray.create(function(e){return new Int32Array(e)},1024,1),s=new Int32Array(t.length);e.Utils.ChunkedArray.add(a,0);for(var d=0,f=0,p=t;ft[n])return!1;return!0}(r,o.version.match(/(\d)\.(\d)\.\d/).slice(1)))return e.ParserResult.error("Unsupported format version. Current "+o.version+", required "+r.join(".")+".");var a=new t.File(o);return e.ParserResult.success(a)}catch(t){return e.ParserResult.error(""+t)}}}(e.Binary||(e.Binary={})),function(e){"use strict";function t(t,n,r){var i,o=!1;t.typedArray?i=new t.typedArray(r):(o=!0,i=new Array(r));for(var a=new Uint8Array(r),s=t.presence,c=t.number?t.number:t.string,u=!0,d=0,l=0,f=n;l0});if(r.length){var i=r.reduce(function(e,t){return e+t.count},0);if(i){for(var o=r[0],a={name:o.desc.name,columns:[],rowCount:i},s=r.map(function(e){return{data:e.data,count:e.count}}),c=0,u=o.desc.fields;cn?n:e}function l(e,t){return parseInt(e,t||10)}function f(e){return Math.round(e)}function p(e){var t,n,r,i,o,a,s,c,u=+e[0],d=+e[1],l=+e[2];switch(a=l*(1-d),s=l*(1-(o=6*u-(i=Math.floor(6*u)))*d),c=l*(1-(1-o)*d),i=i||0,s=s||0,c=c||0,i%6){case 0:t=l,n=c,r=a;break;case 1:t=s,n=l,r=a;break;case 2:t=a,n=l,r=c;break;case 3:t=a,n=s,r=l;break;case 4:t=c,n=a,r=l;break;case 5:t=l,n=a,r=s}return[f(255*t),f(255*n),f(255*r)]}function h(e){return v(p(e))}function g(e){var t,n=+e[0],r=+e[1],i=+e[2],o=Math.max(n,r,i),a=Math.min(n,r,i),s=o-a,c=0===o?0:s/o,u=o/255;switch(o){case a:t=0;break;case n:t=r-i+s*(r';var z,D=w[o].children,M=N([0,1,1]),H=D[0],F=D[1],V=H[o],j=F[o],U=0,B=0,G=0,q=0,X=0,W=0,Y=0,Z=0,Q=h(M);function K(e,t){e&&"h"!==e||L("change:h",t),e&&"sv"!==e||L("change:sv",t),L("change",t)}function $(){return w.parentNode}function J(i,o){i||((l||o||f).appendChild(w),v.visible=!0),Y=P(w).w,Z=P(w).h;var a=P(F),s=P(j),c=P(H).h,u=a.w,g=a.h,m=P(V).h,y=s.w,E=s.h;if(i){function A(e){var t=e.target,r=t===n||k(t,n)===n;r?J():v.exit(),L(r?"enter":"exit",[v])}w.style.left=w.style.top="-9999px",!1!==r&&C(r,n,A),v.create=function(){return J(1),L("create",[v]),v},v.destroy=function(){return!1!==r&&x(r,n,A),v.exit(),O(!1),L("destroy",[v]),v}}else ee();function D(e){p(M);var t=p([M[0],1,1]);F.style.backgroundColor="rgb("+t.join(",")+")",O(M),I(e)}function X(e){var t,n,r,i,o,a;G&&(n=d(R(H,t=e).y,0,c),M[0]=(c-n)/c,V.style.top=n-m/2+"px",D(t),Q=h(M),U||(L("drag:h",[Q,v]),L("drag",[Q,v]),K("h",[Q,v]))),q&&(i=R(F,r=e),o=d(i.x,0,u),a=d(i.y,0,g),M[1]=1-(u-o)/u,M[2]=(g-a)/g,j.style.right=u-o-y/2+"px",j.style.top=a-E/2+"px",D(r),Q=h(M),B||(L("drag:sv",[Q,v]),L("drag",[Q,v]),K("sv",[Q,v]))),U=0,B=0}function W(e){var t=e.target,i=G?"h":"sv",o=[h(M),v],a=t===n||k(t,n)===n,s=t===w||k(t,w)===w;a||s?s&&(L("stop:"+i,o),L("stop",o),K(i,o)):$()&&!1!==r&&(v.exit(),L("exit",[v]),K(0,o)),G=0,q=0}function te(e){U=1,G=1,X(e),I(e),L("start:h",[Q,v]),L("start",[Q,v]),K("h",[Q,v])}function ne(e){B=1,q=1,X(e),I(e),L("start:sv",[Q,v]),L("start",[Q,v]),K("sv",[Q,v])}z=function(){M=N(M),D(),V.style.top=c-m/2-c*+M[0]+"px",j.style.right=u-y/2-u*+M[1]+"px",j.style.top=g-E/2-g*+M[2]+"px"},v.exit=function(n){return $()&&($().removeChild(w),v.visible=!1),x(b,H,te),x(b,F,ne),x(_,t,X),x(T,t,W),x(S,e,ee),v},z(),i||(C(b,H,te),C(b,F,ne),C(_,t,X),C(T,t,W),C(S,e,ee))}function ee(){return v.fit()}return J(1),a(function(){var e=[h(M),v];L("create",e),K(0,e)},0),v.fit=function(t){var r=P(e),i=P(g),o=r.w-i.w,a=r.h-g.clientHeight,u=A(e),l=A(n);if(X=l.l+u.l,W=l.t+u.t+P(n).h,c(t))s(t[0])&&(X=t[0]),s(t[1])&&(W=t[1]);else{var f=u.l,p=u.t,h=u.l+r.w-Y-o,m=u.t+r.h-Z-a;X=d(X,f,h)>>0,W=d(W,p,m)>>0}return w.style.left=X+"px",w.style.top=W+"px",L("fit",[v]),v},v.set=function(e){return s(e)?("string"==typeof e&&(e=m.parse(e)),O(e),z(),v):N()},v.get=function(e){return N(e)},v.target=n,v.picker=w,v.visible=!1,v.on=function(e,t,n){return s(e)?s(t)?(s(E[e])||(E[e]={}),s(n)||(n=u(E[e])),E[e][n]=t,v):E[e]:E},v.off=function(e,t){return s(e)?s(t)?(delete E[e][t],v):(E[e]={},v):(E={},v)},v.fire=L,v.hooks=E,v.enter=function(e){return J(0,e)},v}).version="1.3.9",r[i]={},r.each=function(e,t){return a(function(){var t,n=r[i];for(t in n)e(n[t],t,n)},0===t?0:t||1),r},r.parse=b,r._HSV2RGB=p,r._HSV2HEX=h,r._RGB2HSV=g,r._HEX2HSV=m,r._HEX2RGB=function(e){return[+(t=y(e))[0]/255,+t[1]/255,+t[2]/255];var t},r.HSV2RGB=function(e){return p(E(e))},r.HSV2HEX=function(e){return h(E(e))},r.RGB2HSV=function(e){return w(g(e))},r.RGB2HEX=v,r.HEX2HSV=function(e){return w(m(e))},r.HEX2RGB=y}(window,document);var saveAs=function(e){"use strict";if(!(void 0===e||"undefined"!=typeof navigator&&/MSIE [1-9]\./.test(navigator.userAgent))){var t=function(){return e.URL||e.webkitURL||e},n=e.document.createElementNS("http://www.w3.org/1999/xhtml","a"),r="download"in n,i=/constructor/i.test(e.HTMLElement)||e.safari,o=/CriOS\/[\d]+/.test(navigator.userAgent),a=e.setImmediate||e.setTimeout,s=function(e){a(function(){throw e},0)},c=function(e){setTimeout(function(){"string"==typeof e?t().revokeObjectURL(e):e.remove()},4e4)},u=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e},d=function(d,l,f){f||(d=u(d));var p,h=this,g="application/octet-stream"===(d?d.type:void 0),v=function(){!function(e,t,n){for(var r=(t=[].concat(t)).length;r--;){var i=e["on"+t[r]];if("function"==typeof i)try{i.call(e,n||e)}catch(e){s(e)}}}(h,"writestart progress write writeend".split(" "))};if(h.readyState=h.INIT,r)return p||(p=t().createObjectURL(d)),void a(function(){var e,t;n.href=p,n.download=l,e=n,t=new MouseEvent("click"),e.dispatchEvent(t),v(),c(p),h.readyState=h.DONE},0);!function(){if((o||g&&i)&&e.FileReader){var n=new FileReader;return n.onloadend=function(){var t=o?n.result:n.result.replace(/^data:[^;]*;/,"data:attachment/file;");e.open(t,"_blank")||(e.location.href=t),t=void 0,h.readyState=h.DONE,v()},n.readAsDataURL(d),void(h.readyState=h.INIT)}p||(p=t().createObjectURL(d)),g?e.location.href=p:e.open(p,"_blank")||(e.location.href=p);h.readyState=h.DONE,v(),c(p)}()},l=d.prototype;return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t,n){return t=t||e.name||"download",n||(e=u(e)),navigator.msSaveOrOpenBlob(e,t)}:(l.abort=function(){},l.readyState=l.INIT=0,l.WRITING=1,l.DONE=2,l.error=l.onwritestart=l.onprogress=l.onwrite=l.onabort=l.onerror=l.onwriteend=null,function(e,t,n){return new d(e,t||e.name||"download",n)})}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this);!function(e){"use strict";var t=e.HTMLCanvasElement&&e.HTMLCanvasElement.prototype,n=e.Blob&&function(){try{return Boolean(new Blob)}catch(e){return!1}}(),r=n&&e.Uint8Array&&function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(e){return!1}}(),i=e.BlobBuilder||e.WebKitBlobBuilder||e.MozBlobBuilder||e.MSBlobBuilder,o=/^data:((.*?)(;charset=.*?)?)(;base64)?,/,a=(n||i)&&e.atob&&e.ArrayBuffer&&e.Uint8Array&&function(e){var t,a,s,c,u,d,l,f,p;if(!(t=e.match(o)))throw new Error("invalid data URI");for(a=t[2]?t[1]:"text/plain"+(t[3]||";charset=US-ASCII"),s=!!t[4],c=e.slice(t[0].length),u=s?atob(c):decodeURIComponent(c),d=new ArrayBuffer(u.length),l=new Uint8Array(d),f=0;f0||window.navigator.userAgent.match(/Trident.*rv\:11\./))}isMobile(){return this.icn3dui,/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent)}isMac(){return this.icn3dui,/Mac/i.test(window.navigator.userAgent)}isAndroid(){return this.icn3dui,/android/i.test(window.navigator.userAgent.toLowerCase())}isChrome(){return this.icn3dui,navigator.userAgent.includes("Chrome")&&navigator.vendor.includes("Google Inc")}isSessionStorageSupported(){return this.icn3dui,window.sessionStorage}isLocalStorageSupported(){return this.icn3dui,window.localStorage}hexToRgb(e,t){this.icn3dui;let s=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return s?{r:parseInt(s[1],16),g:parseInt(s[2],16),b:parseInt(s[3],16),a:t}:null}isCalphaPhosOnly(e){this.icn3dui;let t=!1,s=0,i=0;for(let t in e){if(!(s<100))break;{let s=e[t].name;if(!s)continue;s=s.trim(),"CA"!==s&&"P"!==s&&"O3'"!==s&&"O3*"!==s&&++i}++s}return i<.5*s&&(t=!0),t}hasCovalentBond(e,t){let s=this.icn3dui,i=s.parasCls.covalentRadii[e.elem.toUpperCase()]+s.parasCls.covalentRadii[t.elem.toUpperCase()],n=e.coord.x-t.coord.x,l=e.coord.y-t.coord.y,r=e.coord.z-t.coord.z;return n*n+l*l+r*r<("N"==e.elem&&"H"==t.elem.substr(0,1)||"N"==t.elem&&"H"==e.elem.substr(0,1)?2.2:1.3)*i*i}residueName2Abbr(e){this.icn3dui;let t=e.indexOf(" ");switch(t>0&&(e=e.substr(0,t)),e){case" A":case" DA":case"DA":case"ALA":return"A";case" C":case" DC":case"DC":case"CYS":return"C";case" G":case" DG":case"DG":case"GLY":return"G";case" T":case" DT":case"DT":case"THR":return"T";case" U":case" DU":case"DU":case"SEC":return"U";case" I":case" DI":case"DI":case"ILE":return"I";case"ARG":return"R";case"ASN":return"N";case"ASP":return"D";case"GLU":return"E";case"GLN":return"Q";case"HIS":return"H";case"LEU":return"L";case"LYS":return"K";case"MET":return"M";case"PHE":return"F";case"PRO":return"P";case"SER":return"S";case"TRP":return"W";case"TYR":return"Y";case"VAL":return"V";case"HOH":case"WAT":return"O";default:return e.trim()}}residueAbbr2Name(e){if(this.icn3dui,(e=e.toUpperCase()).length>1)return e;switch(e){case"A":return"ALA";case"R":return"ARG";case"N":return"ASN";case"D":return"ASP";case"C":return"CYS";case"E":return"GLU";case"Q":return"GLN";case"G":return"GLY";case"H":return"HIS";case"I":return"ILE";case"L":return"LEU";case"K":return"LYS";case"M":return"MET";case"F":return"PHE";case"P":return"PRO";case"S":return"SER";case"T":return"THR";case"W":return"TRP";case"Y":return"TYR";case"V":return"VAL";case"O":return"HOH";default:return e.trim()}}getJSONFromArray(e){this.icn3dui;let t="";for(let s=0,i=e.length;sd?1:ah?1:cs&&(e.htmlCls.WIDTH=s),i&&e.htmlCls.HEIGHT>i&&(e.htmlCls.HEIGHT=i)}sumArray(e){let t=0;for(let s=0,i=e.length;sRed and blue membranes indicate extracellular and intracellular membranes, respectively.

"}getStructures(e){let t=this.icn3dui,s={};for(let i in e){s[t.icn3d.atoms[i].structure]=1}return s}getHlStructures(e){let t=this.icn3dui;return e||(e=t.icn3d.hAtoms),this.getStructures(e)}getDisplayedStructures(e){let t=this.icn3dui;return e||(e=t.icn3d.dAtoms),this.getStructures(e)}getDateDigitStr(){this.icn3dui;let e=new Date,t=(e.getMonth()+1).toString();e.getMonth()+1<10&&(t="0"+t);let s=e.getDate().toString();return e.getDate()<10&&(s="0"+s),e.getFullYear().toString()+t+s}}class i{constructor(e){this.icn3dui=e,this.glycanHash={GLC:{c:"1E90FF",s:"sphere"},BGC:{c:"1E90FF",s:"sphere"},NAG:{c:"1E90FF",s:"cube"},NDG:{c:"1E90FF",s:"cube"},GCS:{c:"1E90FF",s:"cube"},PA1:{c:"1E90FF",s:"cube"},GCU:{c:"1E90FF",s:"cone"},BDP:{c:"1E90FF",s:"cone"},G6D:{c:"1E90FF",s:"cone"},DDA:{c:"1E90FF",s:"cylinder"},B6D:{c:"1E90FF",s:"cylinder"},XXM:{c:"1E90FF",s:"cylinder"},MAN:{c:"00FF00",s:"sphere"},BMA:{c:"00FF00",s:"sphere"},BM3:{c:"00FF00",s:"cube"},"95Z":{c:"00FF00",s:"cube"},MAV:{c:"00FF00",s:"cone"},BEM:{c:"00FF00",s:"cone"},RAM:{c:"00FF00",s:"cone"},RM4:{c:"00FF00",s:"cone"},TYV:{c:"00FF00",s:"cylinder"},ARA:{c:"00FF00",s:"cylinder"},ARB:{c:"00FF00",s:"cylinder"},KDN:{c:"00FF00",s:"cylinder"},KDM:{c:"00FF00",s:"cylinder"},"6PZ":{c:"00FF00",s:"cylinder"},GMH:{c:"00FF00",s:"cylinder"},BDF:{c:"00FF00",s:"cylinder"},GAL:{c:"FFFF00",s:"sphere"},GLA:{c:"FFFF00",s:"sphere"},NGA:{c:"FFFF00",s:"cube"},A2G:{c:"FFFF00",s:"cube"},X6X:{c:"FFFF00",s:"cube"},"1GN":{c:"FFFF00",s:"cube"},ADA:{c:"FFFF00",s:"cone"},GTR:{c:"FFFF00",s:"cone"},LDY:{c:"FFFF00",s:"cylinder"},KDO:{c:"FFFF00",s:"cylinder"},T6T:{c:"FFFF00",s:"cylinder"},GUP:{c:"A52A2A",s:"sphere"},GL0:{c:"A52A2A",s:"sphere"},LGU:{c:"A52A2A",s:"cone"},ABE:{c:"A52A2A",s:"cylinder"},XYS:{c:"A52A2A",s:"cylinder"},XYP:{c:"A52A2A",s:"cylinder"},SOE:{c:"A52A2A",s:"cylinder"},PZU:{c:"FF69B4",s:"cylinder"},RIP:{c:"FF69B4",s:"cylinder"},"0MK":{c:"FF69B4",s:"cylinder"},ALL:{c:"8A2BE2",s:"sphere"},AFD:{c:"8A2BE2",s:"sphere"},NAA:{c:"8A2BE2",s:"cube"},SIA:{c:"8A2BE2",s:"cylinder"},SIB:{c:"8A2BE2",s:"cylinder"},AMU:{c:"8A2BE2",s:"cylinder"},X0X:{c:"1E90FF",s:"cone"},X1X:{c:"1E90FF",s:"cone"},NGC:{c:"1E90FF",s:"cylinder"},NGE:{c:"1E90FF",s:"cylinder"},"4N2":{c:"A0522D",s:"sphere"},HSQ:{c:"A0522D",s:"cube"},IDR:{c:"A0522D",s:"cone"},MUR:{c:"A0522D",s:"cylinder"},FUC:{c:"FF0000",s:"cone"},FUL:{c:"FF0000",s:"cone"}},this.nucleotidesArray=[" G"," A"," T"," C"," U"," DG"," DA"," DT"," DC"," DU","G","A","T","C","U","DG","DA","DT","DC","DU"],this.ionsArray=[" K"," NA"," MG"," AL"," CA"," TI"," MN"," FE"," NI"," CU"," ZN"," AG"," BA"," F"," CL"," BR"," I","K","NA","MG","AL","CA","TI","MN","FE","NI","CU","ZN","AG","BA","F","CL","BR","I"],this.cationsTrimArray=["K","NA","MG","AL","CA","TI","MN","FE","NI","CU","ZN","AG","BA"],this.anionsTrimArray=["F","CL","BR","I"],this.ionCharges={K:1,NA:1,MG:2,AL:3,CA:2,TI:3,MN:2,FE:3,NI:2,CU:2,ZN:2,AG:1,BA:2},this.vdwRadii={H:1.08,HE:1.34,LI:1.75,BE:2.05,B:1.47,C:1.49,N:1.41,O:1.4,F:1.39,NE:1.68,NA:1.84,MG:2.05,AL:2.11,SI:2.07,P:1.92,S:1.82,CL:1.83,AR:1.93,K:2.05,CA:2.21,SC:2.16,TI:1.87,V:1.79,CR:1.89,MN:1.97,FE:1.94,CO:1.92,NI:1.84,CU:1.86,ZN:2.1,GA:2.08,GE:2.15,AS:2.06,SE:1.93,BR:1.98,KR:2.12,RB:2.16,SR:2.24,Y:2.19,ZR:1.86,NB:2.07,MO:2.09,TC:2.09,RU:2.07,RH:1.95,PD:2.02,AG:2.03,CD:2.3,IN:2.36,SN:2.33,SB:2.25,TE:2.23,I:2.23,XE:2.21,CS:2.22,BA:2.51,LA:2.4,CE:2.35,PR:2.39,ND:2.29,PM:2.36,SM:2.29,EU:2.33,GD:2.37,TB:2.21,DY:2.29,HO:2.16,ER:2.35,TM:2.27,YB:2.42,LU:2.21,HF:2.12,TA:2.17,W:2.1,RE:2.17,OS:2.16,IR:2.02,PT:2.09,AU:2.17,HG:2.09,TL:2.35,PB:2.32,BI:2.43,PO:2.29,AT:2.36,RN:2.43,FR:2.56,RA:2.43,AC:2.6,TH:2.37,PA:2.43,U:2.4,NP:2.21,PU:2.56,AM:2.56,CM:2.56,BK:2.56,CF:2.56,ES:2.56,FM:2.56},this.covalentRadii={H:.31,HE:.28,LI:1.28,BE:.96,B:.84,C:.76,N:.71,O:.66,F:.57,NE:.58,NA:1.66,MG:1.41,AL:1.21,SI:1.11,P:1.07,S:1.05,CL:1.02,AR:1.06,K:2.03,CA:1.76,SC:1.7,TI:1.6,V:1.53,CR:1.39,MN:1.39,FE:1.32,CO:1.26,NI:1.24,CU:1.32,ZN:1.22,GA:1.22,GE:1.2,AS:1.19,SE:1.2,BR:1.2,KR:1.16,RB:2.2,SR:1.95,Y:1.9,ZR:1.75,NB:1.64,MO:1.54,TC:1.47,RU:1.46,RH:1.42,PD:1.39,AG:1.45,CD:1.44,IN:1.42,SN:1.39,SB:1.39,TE:1.38,I:1.39,XE:1.4,CS:2.44,BA:2.15,LA:2.07,CE:2.04,PR:2.03,ND:2.01,PM:1.99,SM:1.98,EU:1.98,GD:1.96,TB:1.94,DY:1.92,HO:1.92,ER:1.89,TM:1.9,YB:1.87,LU:1.87,HF:1.75,TA:1.7,W:1.62,RE:1.51,OS:1.44,IR:1.41,PT:1.36,AU:1.36,HG:1.32,TL:1.45,PB:1.46,BI:1.48,PO:1.4,AT:1.5,RN:1.5,FR:2.6,RA:2.21,AC:2.15,TH:2.06,PA:2,U:1.96,NP:1.9,PU:1.87,AM:1.8,CM:1.69},this.atomColors={H:this.thr(16777215),He:this.thr(16761035),HE:this.thr(16761035),Li:this.thr(11674146),LI:this.thr(11674146),B:this.thr(65280),C:this.thr(11184810),N:this.thr(255),O:this.thr(15728640),F:this.thr(14329120),Na:this.thr(255),NA:this.thr(255),Mg:this.thr(2263842),MG:this.thr(2263842),Al:this.thr(8421520),AL:this.thr(8421520),Si:this.thr(14329120),SI:this.thr(14329120),P:this.thr(16753920),S:this.thr(16762930),Cl:this.thr(65280),CL:this.thr(65280),Ca:this.thr(8421520),CA:this.thr(8421520),Ti:this.thr(8421520),TI:this.thr(8421520),Cr:this.thr(8421520),CR:this.thr(8421520),Mn:this.thr(8421520),MN:this.thr(8421520),Fe:this.thr(16753920),FE:this.thr(16753920),Ni:this.thr(10824234),NI:this.thr(10824234),Cu:this.thr(10824234),CU:this.thr(10824234),Zn:this.thr(10824234),ZN:this.thr(10824234),Br:this.thr(10824234),BR:this.thr(10824234),Ag:this.thr(8421520),AG:this.thr(8421520),I:this.thr(10494192),Ba:this.thr(16753920),BA:this.thr(16753920),Au:this.thr(14329120),AU:this.thr(14329120)},this.atomnames={H:"Hydrogen",HE:"Helium",LI:"Lithium",B:"Boron",C:"Carbon",N:"Nitrogen",O:"Oxygen",F:"Fluorine",NA:"Sodium",MG:"Magnesium",AL:"Aluminum",SI:"Silicon",P:"Phosphorus",S:"Sulfur",CL:"Chlorine",CA:"Calcium",TI:"Titanium",CR:"Chromium",MN:"Manganese",FE:"Iron",NI:"Nickel",CU:"Copper",ZN:"Zinc",BR:"Bromine",AG:"Silver",I:"Iodine",BA:"Barium",AU:"Gold"},this.defaultAtomColor=this.thr(13421772),this.stdChainColors=[this.thr(16711935),this.thr(255),this.thr(10053171),this.thr(65433),this.thr(16750848),this.thr(16737894),this.thr(3329330),this.thr(2003199),this.thr(16416882),this.thr(16753920),this.thr(52945),this.thr(16738740),this.thr(65280),this.thr(255),this.thr(16711680),this.thr(16776960),this.thr(65535),this.thr(16711935),this.thr(3978097),this.thr(4620980),this.thr(13458524),this.thr(16770229),this.thr(11529966),this.thr(15631086),this.thr(25600),this.thr(139),this.thr(9109504),this.thr(13468991),this.thr(35723),this.thr(9699539)],this.backgroundColors={black:this.thr(0),grey:this.thr(13421772),white:this.thr(16777215),transparent:this.thr(16777215)},this.residueColors={ALA:this.thr(13158600),ARG:this.thr(1334015),ASN:this.thr(56540),ASP:this.thr(15075850),CYS:this.thr(15132160),GLN:this.thr(56540),GLU:this.thr(15075850),GLY:this.thr(15461355),HIS:this.thr(8553170),ILE:this.thr(1016335),LEU:this.thr(1016335),LYS:this.thr(1334015),MET:this.thr(15132160),PHE:this.thr(3289770),PRO:this.thr(14456450),SER:this.thr(16422400),THR:this.thr(16422400),TRP:this.thr(11819700),TYR:this.thr(3289770),VAL:this.thr(1016335),ASX:this.thr(16738740),GLX:this.thr(16738740),G:this.thr(32768),A:this.thr(6324479),T:this.thr(16744448),C:this.thr(16711680),U:this.thr(16744448),DG:this.thr(32768),DA:this.thr(6324479),DT:this.thr(16744448),DC:this.thr(16711680),DU:this.thr(16744448)},this.residueArea={ALA:247,ARG:366,ASN:290,ASP:285,CYS:271,GLN:336,GLU:325,GLY:217,HIS:340,ILE:324,LEU:328,LYS:373,MET:346,PHE:366,PRO:285,SER:265,THR:288,TRP:414,TYR:387,VAL:293,ASX:290,GLX:336,G:520,A:507,T:515,C:467,U:482,DG:520,DA:507,DT:515,DC:467,DU:482},this.defaultResidueColor=this.thr(12492910),this.chargeColors={" G":this.thr(16711680)," A":this.thr(16711680)," T":this.thr(16711680)," C":this.thr(16711680)," U":this.thr(16711680)," DG":this.thr(16711680)," DA":this.thr(16711680)," DT":this.thr(16711680)," DC":this.thr(16711680)," DU":this.thr(16711680),G:this.thr(16711680),A:this.thr(16711680),T:this.thr(16711680),C:this.thr(16711680),U:this.thr(16711680),DG:this.thr(16711680),DA:this.thr(16711680),DT:this.thr(16711680),DC:this.thr(16711680),DU:this.thr(16711680),ARG:this.thr(255),LYS:this.thr(255),ASP:this.thr(16711680),GLU:this.thr(16711680),HIS:this.thr(8421631),GLY:this.thr(8947848),PRO:this.thr(8947848),ALA:this.thr(8947848),VAL:this.thr(8947848),LEU:this.thr(8947848),ILE:this.thr(8947848),PHE:this.thr(8947848),SER:this.thr(8947848),THR:this.thr(8947848),ASN:this.thr(8947848),GLN:this.thr(8947848),TYR:this.thr(8947848),MET:this.thr(8947848),CYS:this.thr(8947848),TRP:this.thr(8947848)},this.hydrophobicColors={" G":this.thr(16711680)," A":this.thr(16711680)," T":this.thr(16711680)," C":this.thr(16711680)," U":this.thr(16711680)," DG":this.thr(16711680)," DA":this.thr(16711680)," DT":this.thr(16711680)," DC":this.thr(16711680)," DU":this.thr(16711680),G:this.thr(16711680),A:this.thr(16711680),T:this.thr(16711680),C:this.thr(16711680),U:this.thr(16711680),DG:this.thr(16711680),DA:this.thr(16711680),DT:this.thr(16711680),DC:this.thr(16711680),DU:this.thr(16711680),ARG:this.thr(255),LYS:this.thr(255),ASP:this.thr(16711680),GLU:this.thr(16711680),HIS:this.thr(8421631),TRP:this.thr().setHSL(1/3,1,.5),PHE:this.thr().setHSL(1/3,1,.5909090909090908),LEU:this.thr().setHSL(1/3,1,.700956937799043),ILE:this.thr().setHSL(1/3,1,.7320574162679425),TYR:this.thr().setHSL(1/3,1,.5+.69/2.09),MET:this.thr().setHSL(1/3,1,.5+.71/2.09),VAL:this.thr().setHSL(1/3,1,.5+.815/2.09),CYS:this.thr().setHSL(1/3,1,.5+1.035/2.09),PRO:this.thr().setHSL(1/6,1,.9391304347826086),THR:this.thr().setHSL(1/6,1,.8913043478260869),SER:this.thr().setHSL(1/6,1,.8),ALA:this.thr().setHSL(1/6,1,.7826086956521738),GLN:this.thr().setHSL(1/6,1,.6652173913043478),ASN:this.thr().setHSL(1/6,1,.6304347826086956),GLY:this.thr().setHSL(1/6,1,.5)},this.normalizedHPColors={" G":this.thr(16777215)," A":this.thr(16777215)," T":this.thr(16777215)," C":this.thr(16777215)," U":this.thr(16777215)," DG":this.thr(16777215)," DA":this.thr(16777215)," DT":this.thr(16777215)," DC":this.thr(16777215)," DU":this.thr(16777215),G:this.thr(16777215),A:this.thr(16777215),T:this.thr(16777215),C:this.thr(16777215),U:this.thr(16777215),DG:this.thr(16777215),DA:this.thr(16777215),DT:this.thr(16777215),DC:this.thr(16777215),DU:this.thr(16777215),ARG:this.thr(16777215),LYS:this.thr(16777215),ASP:this.thr(16777215),GLU:this.thr(16777215),HIS:this.thr(16777215),TRP:this.thr().setHSL(1/3,1,.5),PHE:this.thr().setHSL(1/3,1,.558641975308642),LEU:this.thr().setHSL(1/3,1,.6296296296296295),ILE:this.thr().setHSL(1/3,1,.6496913580246912),TYR:this.thr().setHSL(1/3,1,.5+.69/3.24),MET:this.thr().setHSL(1/3,1,.5+.71/3.24),VAL:this.thr().setHSL(1/3,1,.5+.815/3.24),CYS:this.thr().setHSL(1/3,1,.5+1.035/3.24),PRO:this.thr().setHSL(1/3,1,.5+1.115/3.24),THR:this.thr().setHSL(1/3,1,.5+1.17/3.24),SER:this.thr().setHSL(1/3,1,.5+1.275/3.24),ALA:this.thr().setHSL(1/3,1,.5+1.295/3.24),GLN:this.thr().setHSL(1/3,1,.5+1.43/3.24),ASN:this.thr().setHSL(1/3,1,.5+1.47/3.24),GLY:this.thr().setHSL(1/3,1,1)},this.hydrophobicValues={" G":3," A":3," T":3," C":3," U":3," DG":3," DA":3," DT":3," DC":3," DU":3,G:3,A:3,T:3,C:3,U:3,DG:3,DA:3,DT:3,DC:3,DU:3,ARG:1.5,LYS:1.5,ASP:3,GLU:3,HIS:2,TRP:-2.09,PHE:-1.71,LEU:-1.25,ILE:-1.12,TYR:-.71,MET:-.67,VAL:-.46,CYS:-.02,PRO:.14,THR:.25,SER:.46,ALA:.5,GLN:.77,ASN:.85,GLY:1.15},this.residueAbbrev={ALA:"A (Ala)",ARG:"R (Arg)",ASN:"N (Asn)",ASP:"D (Asp)",CYS:"C (Cys)",GLN:"Q (Gln)",GLU:"E (Glu)",GLY:"G (Gly)",HIS:"H (His)",ILE:"I (Ile)",LEU:"L (Leu)",LYS:"K (Lys)",MET:"M (Met)",PHE:"F (Phe)",PRO:"P (Pro)",SER:"S (Ser)",THR:"T (Thr)",TRP:"W (Trp)",TYR:"Y (Tyr)",VAL:"V (Val)",ASX:"X (Asx)",GLX:"X (Glx)",G:"Guanine",A:"Adenine",T:"Thymine",C:"Cytosine",U:"Uracil",DG:"deoxy-Guanine",DA:"deoxy-Adenine",DT:"deoxy-Thymine",DC:"deoxy-Cytosine",DU:"deoxy-Uracil"},this.ssColors={helix:this.thr(16711680),sheet:this.thr(32768),coil:this.thr(6324479)},this.ssColors2={helix:this.thr(16711680),sheet:this.thr(16762880),coil:this.thr(6324479)},this.resn2restype={ALA:1,ARG:4,ASN:7,ASP:10,CYS:13,GLN:16,GLU:19,GLY:22,HIS:25,ILE:28,LEU:31,LYS:34,MET:37,PHE:40,PRO:43,SER:46,THR:49,TRP:52,TYR:55,VAL:58},this.nuclMainArray=["C1'","C1*","C2'","C2*","C3'","C3*","C4'","C4*","C5'","C5*","O3'","O3*","O4'","O4*","O5'","O5*","P","OP1","O1P","OP2","O2P"],this.b62ResArray=["A","R","N","D","C","Q","E","G","H","I","L","K","M","F","P","S","T","W","Y","V","B","Z","X","*"],this.b62Matrix=[[4,-1,-2,-2,0,-1,-1,0,-2,-1,-1,-1,-1,-2,-1,1,0,-3,-2,0,-2,-1,0,-4],[-1,5,0,-2,-3,1,0,-2,0,-3,-2,2,-1,-3,-2,-1,-1,-3,-2,-3,-1,0,-1,-4],[-2,0,6,1,-3,0,0,0,1,-3,-3,0,-2,-3,-2,1,0,-4,-2,-3,3,0,-1,-4],[-2,-2,1,6,-3,0,2,-1,-1,-3,-4,-1,-3,-3,-1,0,-1,-4,-3,-3,4,1,-1,-4],[0,-3,-3,-3,9,-3,-4,-3,-3,-1,-1,-3,-1,-2,-3,-1,-1,-2,-2,-1,-3,-3,-2,-4],[-1,1,0,0,-3,5,2,-2,0,-3,-2,1,0,-3,-1,0,-1,-2,-1,-2,0,3,-1,-4],[-1,0,0,2,-4,2,5,-2,0,-3,-3,1,-2,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-2,0,-1,-3,-2,-2,6,-2,-4,-4,-2,-3,-3,-2,0,-2,-2,-3,-3,-1,-2,-1,-4],[-2,0,1,-1,-3,0,0,-2,8,-3,-3,-1,-2,-1,-2,-1,-2,-2,2,-3,0,0,-1,-4],[-1,-3,-3,-3,-1,-3,-3,-4,-3,4,2,-3,1,0,-3,-2,-1,-3,-1,3,-3,-3,-1,-4],[-1,-2,-3,-4,-1,-2,-3,-4,-3,2,4,-2,2,0,-3,-2,-1,-2,-1,1,-4,-3,-1,-4],[-1,2,0,-1,-3,1,1,-2,-1,-3,-2,5,-1,-3,-1,0,-1,-3,-2,-2,0,1,-1,-4],[-1,-1,-2,-3,-1,0,-2,-3,-2,1,2,-1,5,0,-2,-1,-1,-1,-1,1,-3,-1,-1,-4],[-2,-3,-3,-3,-2,-3,-3,-3,-1,0,0,-3,0,6,-4,-2,-2,1,3,-1,-3,-3,-1,-4],[-1,-2,-2,-1,-3,-1,-1,-2,-2,-3,-3,-1,-2,-4,7,-1,-1,-4,-3,-2,-2,-1,-2,-4],[1,-1,1,0,-1,0,0,0,-1,-2,-2,0,-1,-2,-1,4,1,-3,-2,-2,0,0,0,-4],[0,-1,0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1,1,5,-2,-2,0,-1,-1,0,-4],[-3,-3,-4,-4,-2,-2,-3,-2,-2,-3,-2,-3,-1,1,-4,-3,-2,11,2,-3,-4,-3,-2,-4],[-2,-2,-2,-3,-2,-1,-2,-3,2,-1,-1,-2,-1,3,-3,-2,-2,2,7,-1,-3,-2,-1,-4],[0,-3,-3,-3,-1,-2,-2,-3,-3,3,1,-2,1,-1,-2,-2,0,-3,-1,4,-3,-2,-1,-4],[-2,-1,3,4,-3,0,1,-1,0,-3,-4,0,-3,-3,-2,0,-1,-4,-3,-3,4,1,-1,-4],[-1,0,0,1,-3,3,4,-2,0,-3,-3,1,-1,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,0,0,-2,-1,-1,-1,-1,-1,-4],[-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1]]}thr(e){return this.icn3dui,"#0"==e&&(e="#000"),new THREE.Color(e)}}class n{constructor(e){this.icn3dui=e}onId(e,t,s){if(this.icn3dui,!(Object.keys(window).length<2)&&("#"==e.substr(0,1)&&(e=e.substr(1)),document.getElementById(e))){t.split(" ").forEach((t=>{document.getElementById(e).addEventListener(t,s)}))}}onIds(e,t,s){let i=this.icn3dui;Array.isArray(e)?e.forEach((e=>{i.myEventCls.onId(e,t,s)})):i.myEventCls.onId(e,t,s)}}class l{constructor(e){this.icn3dui=e}getRmsdSuprCls(e,t,s){let i,n,l,r,o,a,d,c,h,p,m,u,g,f=this.icn3dui,C=new Array(9),b=new THREE.Vector3,y=new THREE.Vector3,v=[],_=[],w=new Array(3),S=new Array(3),A=new Array(3),x=new Array(3),k=new Array(3),O=new Array(3);if(i=0,s<=1)return{rot:void 0,trans1:void 0,trans2:void 0,rmsd:999};let R=s;for(n=0;n0?(C[0]=x[0]*w[0]+k[0]*S[0]+O[0]*A[0],C[1]=x[0]*w[1]+k[0]*S[1]+O[0]*A[1],C[2]=x[0]*w[2]+k[0]*S[2]+O[0]*A[2],C[3]=x[1]*w[0]+k[1]*S[0]+O[1]*A[0],C[4]=x[1]*w[1]+k[1]*S[1]+O[1]*A[1],C[5]=x[1]*w[2]+k[1]*S[2]+O[1]*A[2],C[6]=x[2]*w[0]+k[2]*S[0]+O[2]*A[0],C[7]=x[2]*w[1]+k[2]*S[1]+O[2]*A[1],C[8]=x[2]*w[2]+k[2]*S[2]+O[2]*A[2]):(C[0]=x[0]*w[0]+k[0]*S[0]-O[0]*A[0],C[1]=x[0]*w[1]+k[0]*S[1]-O[0]*A[1],C[2]=x[0]*w[2]+k[0]*S[2]-O[0]*A[2],C[3]=x[1]*w[0]+k[1]*S[0]-O[1]*A[0],C[4]=x[1]*w[1]+k[1]*S[1]-O[1]*A[1],C[5]=x[1]*w[2]+k[1]*S[2]-O[1]*A[2],C[6]=x[2]*w[0]+k[2]*S[0]-O[2]*A[0],C[7]=x[2]*w[1]+k[2]*S[1]-O[2]*A[1],C[8]=x[2]*w[2]+k[2]*S[2]-O[2]*A[2]),c=Math.sqrt(c),h=Math.sqrt(h),p=Math.sqrt(p),g=c+h+u*p,m=a+d-2*g,i=m>0?Math.sqrt(m):void 0,{rot:C,trans1:I,trans2:E,rmsd:i})}eigen_values(e){let t,s,i,n,l,r,o,a,d,c,h,p,m,u,g,f,C,b,y,v;if(this.icn3dui,t=e[0],s=e[1],i=e[2],n=e[3],l=e[4],r=e[5],o=e[6],a=e[7],d=e[8],c=-(t+l+d),h=t*l+(t+l)*d-r*a-s*n-i*o,p=-t*l*d+t*r*a+s*n*d-s*r*o-i*n*a+i*l*o,m=-c*c/3+h,u=c*c*c/13.5-c*h/3+p,g=.25*u*u+m*m*m/27,g<0){let e,t;e=Math.sqrt(.25*u*u-g),t=Math.acos(-.5*u/e),b=2*Math.cbrt(e)*Math.cos(t/3)}else f=Math.cbrt(-.5*u+Math.sqrt(g)),C=Math.cbrt(-.5*u-Math.sqrt(g)),b=f+C;return b-=c/3,c+=b,p/=-b,y=.5*(-c+Math.sqrt(c*c-4*p)),v=.5*(-c-Math.sqrt(c*c-4*p)),yw&&(w=Math.abs(d)),Math.abs(c)>w&&(w=Math.abs(c)),Math.abs(h)>w&&(w=Math.abs(h)),Math.abs(p)>w&&(w=Math.abs(p)),Math.abs(m)>w&&(w=Math.abs(m)),Math.abs(u)>w&&(w=Math.abs(u)),Math.abs(g)>w&&(w=Math.abs(g)),Math.abs(f)>w&&(w=Math.abs(f)),w<1e-10)return r=3,{k:r,v1:t,v2:s,v3:i};if(o=0,a/=w,d/=w,c/=w,h/=w,p/=w,m/=w,u/=w,g/=w,f/=w,Math.abs(a)w&&(_=a,a=h,h=_,_=d,d=p,p=_,_=c,c=m,m=_,w=Math.abs(d)),Math.abs(g)>w&&(_=a,a=u,u=_,_=d,d=g,g=_,_=c,c=f,f=_),y=m-p*c/d,v=f-g*c/d,Math.abs(y)w&&(_=a,a=h,h=_,_=d,d=p,p=_,_=c,c=m,m=_,w=Math.abs(a)),Math.abs(c)>w&&(_=a,a=u,u=_,_=d,d=g,g=_,_=c,c=f,f=_),C=p-h*d/a,b=m-h*c/a,y=g-u*d/a,v=f-u*c/a,Math.abs(C)0&&(1==o?(a=s[0],d=s[1],c=s[2],_=Math.sqrt(a*a+d*d+c*c),s[0]=a/_,s[1]=d/_,s[2]=c/_):2==o?(a=t[0],d=t[1],c=t[2],h=s[0],p=s[1],m=s[2],_=a*h+d*p+c*m,Math.abs(_)>=n&&(s[0]=a+_*h,s[1]=d+_*p,s[2]=c+_*m,h=s[0],p=s[1],m=s[2]),_=Math.sqrt(a*a+d*d+c*c),t[0]=a/_,t[1]=d/_,t[2]=c/_,_=Math.sqrt(h*h+p*p+m*m),s[0]=h/_,s[1]=p/_,s[2]=m/_):(a=t[0],d=t[1],c=t[2],_=Math.sqrt(a*a+d*d+c*c),t[0]=a/_,t[1]=d/_,t[2]=c/_)),{k:r,v1:t,v2:s,v3:i}}getEigenForSelection(e,t){let s,i=this.icn3dui,n=new THREE.Vector3,l=[];for(s=0;s0&&Math.abs(l[0].x-e[0].x)<=6&&Math.abs(l[0].y-e[0].y)<=6&&Math.abs(l[0].z-e[0].z)<=6?(p.push(l[0]),m=1):m=0,p.push(e[0]);for(let t=1,s=e.length-1;t0&&Math.abs(r[0].x-e[e.length-1].x)<=6&&Math.abs(r[0].y-e[e.length-1].y)<=6&&Math.abs(r[0].z-e[e.length-1].z)<=6&&(p.push(r[0]),++g),u>1&&Math.abs(r[0].x-r[1].x)<=6&&Math.abs(r[0].y-r[1].y)<=6&&Math.abs(r[0].z-r[1].z)<=6&&(p.push(r[1]),++g);let f=[],C=[],b=[];o&&(g=u>0?u-1:0);let y;for(let e=-1,n=p.length,l=1/s;e<=n-3;++e){y=e-m;let r=p[-1===e?0:e],o=p[e+1],u=p[e+2],v=p[e===n-3?n-1:e+3],_=0,w=a.subdivideCls.getKnot(1,_,r,o),S=a.subdivideCls.getKnot(1,w,o,u),A=a.subdivideCls.getKnot(1,S,u,v);w-_<1e-4&&(w=_+1),S-w<1e-4&&(S=w+1),A-S<1e-4&&(A=S+1),e>-1&&(void 0===i||i[y+1])&&e>=-1+m&&e<=n-3-g+1&&(d=d.concat(f),c=c.concat(C),h=h.concat(b)),f=[],C=[],b=[];let x=(S-w)*l;for(let l=0;l=-1+m&&e<=n-3-g&&i[y+1]&&l<=parseInt(s/2)&&(d.push(new THREE.Vector3(k,O,R)),c.push(i[y+1]),h.push(t[y+1])),e>=-1+m&&e<=n-3-g+1&&i[y+2]&&l>parseInt(s/2)&&(f.push(new THREE.Vector3(k,O,R)),C.push(i[y+2]),b.push(t[y+2]))):e>=-1+m&&e<=n-3-g&&(d.push(new THREE.Vector3(k,O,R)),c.push(y+1),h.push(t[y+1]))}}i&&!i[y+1]||(d=d.concat(f),c=c.concat(C),h=h.concat(b),d.push(p[p.length-1-g]),c.push(p.length-1-g),h.push(t[p.length-1-g])),f=[],C=[],b=[],p=[];let v=[];return v.push(d),v.push(c),v.push(h),v}getKnot(e,t,s,i){return this.icn3dui,s.distanceTo(i)+t}getValueFromKnot(e,t,s,i,n,l,r,o,a){this.icn3dui;let d,c,h=(r-l)/(s-t),p=(o-r)/(i-s),m=(a-o)/(n-i),u=(s+i)*(s+i)-4*(t*s+i*n-t*n);return 0==u?(d=9999,c=9999):(d=6*(3*p*s+2*h*n+m*s-2*h*s-2*p*n-p*i-m*s)/u,c=6*(3*p*i+2*m*t+h*s-2*p*t-2*m*i-h*i-p*s)/u),p*(e-s)+r+((2*d+c)/6/(s-i)*(e-s)*(e-i)*(e-i)+(2*c+d)/6/(i-s)*(e-s)*(e-s)*(e-i))}}class o{constructor(e){this.icn3dui=e}passFloat32(e,t){let s=this.icn3dui,i=e.length;t||(t=new Uint8Array(4*i));let n=s.convertTypeCls.getDataView(t);for(let t=0;t  Very high (pLDDT > 90)
  Confident (90 > pLDDT > 70)
  Low (70 > pLDDT > 50)
  Very low (pLDDT < 50)
'}setLegendHtml(e){let t=this.icn3dui.icn3d,s="
";if(e)s+=this.setAlphaFoldLegend();else{s+="
"+t.startValue+""+t.midValue+""+t.endValue+"
"}return s}SetChainsAdvancedMenu(){let e=this.icn3dui,t=e.icn3d;if(void 0===t.bSetChainsAdvancedMenu||!t.bSetChainsAdvancedMenu){let s=e.hashUtilsCls.cloneHash(t.hAtoms);t.definedSetsCls.setPredefinedInMenu(),t.bSetChainsAdvancedMenu=!0,t.hAtoms=e.hashUtilsCls.cloneHash(s)}}setSetsMenus(e,t){let s=this.icn3dui,i=s.icn3d;this.SetChainsAdvancedMenu();let n=e,l=e+"2",r=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+s.pre+n).length&&$("#"+s.pre+n).html(" "+r),!t&&$("#"+s.pre+l).length&&$("#"+s.pre+l).html(" "+r),$("#"+s.pre+n).resizable(),t||$("#"+s.pre+l).resizable()}applyShownMenus(e){let t=this.icn3dui;t.icn3d;let s=[];for(let e in t.htmlCls.allMenus)t.htmlCls.shownMenus.hasOwnProperty(e)?$("#"+t.pre+e).parent().show():($("#"+t.pre+e).parent().hide(),s.push(e));Object.keys(t.htmlCls.shownMenus).length==Object.keys(t.htmlCls.allMenus).length?$(".icn3d-menusep").show():$(".icn3d-menusep").hide(),localStorage&&!e&&localStorage.setItem("hiddenmenus",JSON.stringify(s))}getHiddenMenusFromCache(){let e=this.icn3dui;e.icn3d,e.htmlCls.shownMenus={};let t=localStorage?localStorage.getItem("hiddenmenus"):"";if(t&&"[]"!=t){let s=JSON.parse(t);for(let t in e.htmlCls.allMenus)-1==s.indexOf(t)&&(e.htmlCls.shownMenus[t]=1)}else e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus)}displayShownMenus(){let e=this.icn3dui;e.icn3d;let t="
";t+="",t+="";for(let s in e.htmlCls.allMenusSel){if("uniclr"==s.substr(0,6)||"mn5_opacity"==s.substr(0,11)||"mn6_labelscale"==s.substr(0,14)||"faq_"==s.substr(0,4)||"dev_"==s.substr(0,4))continue;"mn1_searchgrooup"==s?t+="
FileSelectViewStyleColorAnalysisHelp
":("mn2_definedsets"==s||"mn2_show_selected"==s||"mn3_proteinwrap"==s||e.cfg.cid&&"mn3_ligwrap"==s||"mn4_clrwrap"==s||"mn6_selectannotations"==s||"abouticn3d"==s)&&(t+="");let i=e.htmlCls.shownMenus.hasOwnProperty(s)?"checked":"",n=e.htmlCls.allMenusSel[s];t+=""+e.htmlCls.allMenus[s]+"
"}t+="
",$("#"+e.pre+"menulist").html(t)}async setIgTemplate(e){let t=this.icn3dui.icn3d;t.bRunRefnumAgain=!0;let s=t.resid2specCls.atoms2residues(Object.keys(t.hAtoms));for(let e=0,i=s.length;e0?"_blank":"_self";window.open(n,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_mmciffile","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmciffile","Please append mmCIF File")})),e.myEventCls.onIds("#"+e.pre+"mn1_mmcifid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmcifid","Please input mmCIF ID")})),e.myEventCls.onIds("#"+e.pre+"mn1_mmdbid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmdbid","Please input MMDB or PDB ID")})),e.myEventCls.onIds(["#"+e.pre+"mn1_mmdbafid",,"#"+e.pre+"tool_mmdbafid"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmdbafid","Please input PDB/MMDB/AlphaFold UniProt IDs")})),e.myEventCls.onIds("#"+e.pre+"mn1_blast_rep_id","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_blast_rep_id","Align sequence to structure")})),e.myEventCls.onIds("#"+e.pre+"mn1_esmfold","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_esmfold","Sequence to structure prediction with ESMFold")})),e.myEventCls.onIds("#"+e.pre+"mn1_proteinname","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_proteinname","Please input protein or gene name")})),e.myEventCls.onIds("#"+e.pre+"mn1_cid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_cid","Please input PubChem Compound")})),e.myEventCls.onIds("#"+e.pre+"mn1_smiles","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_smiles","Please input a chemical SMILES")})),e.myEventCls.onIds("#"+e.pre+"mn1_pngimage","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_pngimage","Please append PNG images")})),e.myEventCls.onIds("#"+e.pre+"mn1_state","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_state","Please input the state file")})),e.myEventCls.onIds("#"+e.pre+"mn1_selection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_selection","Please input the selection file")})),e.myEventCls.onIds("#"+e.pre+"mn1_collection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_selectCollections","Select Collections")})),e.myEventCls.onIds("#"+e.pre+"mn1_dsn6","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_dsn6","Please input the map file to display electron density map")})),e.myEventCls.onIds(["#"+e.pre+"mn1_delphi","#"+e.pre+"mn1_delphi2","#"+e.pre+"tool_delphi"],"click",(function(t){e.icn3d.loadPhiFrom="delphi",$("#"+e.pre+"dl_delphi_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_delphi","Please set parameters to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_phi","click",(function(t){e.icn3d.loadPhiFrom="phi",$("#"+e.pre+"dl_phi_tabs").tabs(),$("#"+e.pre+"phitab1_tabs").tabs(),$("#"+e.pre+"phitab2_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_phi","Please input local phi or cube file to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_phiurl","click",(function(t){e.icn3d.loadPhiFrom="phiurl",$("#"+e.pre+"dl_phiurl_tabs").tabs(),$("#"+e.pre+"phiurltab1_tabs").tabs(),$("#"+e.pre+"phiurltab2_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_phiurl","Please input URL phi or cube file to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_dsn6url","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_dsn6url","Please input the map file to display electron density map")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportState","click",(function(s){let i=e.icn3d;t.setLogCmd("export state file",!1);let n=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(n+"_statefile.txt","command")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportPdbRes","click",(function(s){e.icn3d,e.htmlCls.setHtmlCls.exportPdb(),t.setLogCmd("export pdb",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSecondary","click",(function(s){e.icn3d,e.htmlCls.setHtmlCls.exportSecondary(),t.setLogCmd("export secondary structure",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphipdb","#"+e.pre+"phipdb"],"click",(function(s){let i=e.icn3d,n=i.saveFileCls.getSelectedResiduePDB();t.setLogCmd("export PDB of selected residues",!1);let l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_icn3d_residues.pdb","text",[n])})),e.myEventCls.onIds(["#"+e.pre+"delphipqr","#"+e.pre+"phipqr","#"+e.pre+"phiurlpqr"],"click",(async function(s){e.icn3d,await e.htmlCls.setHtmlCls.exportPqr(),t.setLogCmd("export pqr",!0)})),e.myEventCls.onIds("#"+e.pre+"profixpdb","click",(async function(s){let i=e.icn3d;await i.scapCls.exportPdbProfix(!1),t.setLogCmd("export pdb missing atoms",!0)})),e.myEventCls.onIds("#"+e.pre+"profixpdbh","click",(async function(s){let i=e.icn3d;await i.scapCls.exportPdbProfix(!0),t.setLogCmd("export pdb hydrogen",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportIgstrand","click",(async function(s){e.icn3d.refnumCls.exportRefnum("igstrand"),t.setLogCmd("export refnum igstrand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportKabat","click",(async function(s){e.icn3d.refnumCls.exportRefnum("kabat"),t.setLogCmd("export refnum kabat",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportImgt","click",(async function(s){e.icn3d.refnumCls.exportRefnum("imgt"),t.setLogCmd("export refnum imgt",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportStl","click",(function(s){let i=e.icn3d;t.setLogCmd("export stl file",!1),i.export3DCls.exportStlFile("")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportVrml","click",(function(s){let i=e.icn3d;t.setLogCmd("export vrml file",!1),i.export3DCls.exportVrmlFile("")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportStlStab","click",(function(s){let i=e.icn3d;t.setLogCmd("export stl stabilizer file",!1),i.threeDPrintCls.hideStabilizer(),i.threeDPrintCls.resetAfter3Dprint(),i.threeDPrintCls.addStabilizer(),i.export3DCls.exportStlFile("_stab")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportVrmlStab","click",(function(s){let i=e.icn3d;t.setLogCmd("export vrml stabilizer file",!1),i.threeDPrintCls.hideStabilizer(),i.threeDPrintCls.resetAfter3Dprint(),i.threeDPrintCls.addStabilizer(),i.export3DCls.exportVrmlFile("_stab")})),e.myEventCls.onIds("#"+e.pre+"mn6_exportInteraction","click",(async function(s){let i=e.icn3d;t.setLogCmd("export interactions",!1),void 0!==e.cfg.mmdbid&&await i.viewInterPairsCls.retrieveInteractionData(),i.viewInterPairsCls.exportInteractions()})),e.myEventCls.onIds(["#"+e.pre+"mn1_exportCanvas","#"+e.pre+"saveimage"],"click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas",!1);await i.shareLinkCls.shareLink(!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas1","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 1",!0),i.scaleFactor=1,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas2","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 2",!0),i.scaleFactor=2,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas4","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 4",!0),i.scaleFactor=4,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas8","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 8",!0),i.scaleFactor=8,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCounts","click",(function(s){let i=e.icn3d;t.setLogCmd("export counts",!1);let n='

Total Count for atoms with coordinates:
';n+="",n+="
Structure CountChain CountResidue CountAtom Count
"+Object.keys(i.structures).length+""+Object.keys(i.chains).length+""+Object.keys(i.residues).length+""+Object.keys(i.atoms).length+"

",n+="Counts by Chain for atoms with coordinates:
";let l=Object.keys(i.chains);for(let e=0,t=l.length;e"}n+="
StructureChainResidue CountAtom Count
"+r+""+o+""+Object.keys(a).length+""+Object.keys(i.chains[t]).length+"

";let r=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(r+"_counts.html","html",n)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSelections","click",(function(s){let i=e.icn3d;t.setLogCmd("export all selections",!1),t.SetChainsAdvancedMenu();let n=i.saveFileCls.exportCustomAtoms(),l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_selections.txt","text",[n])})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSelDetails","click",(function(s){let i=e.icn3d;t.setLogCmd("export all selections with details",!1),t.SetChainsAdvancedMenu();let n=i.saveFileCls.exportCustomAtoms(!0),l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_sel_details.txt","text",[n])})),e.myEventCls.onIds(["#"+e.pre+"mn1_sharelink","#"+e.pre+"tool_sharelink"],"click",(async function(t){let s=e.icn3d;await s.shareLinkCls.shareLink()})),e.myEventCls.onIds("#"+e.pre+"mn1_replayon","click",(async function(s){let i=e.icn3d;await i.resizeCanvasCls.replayon(),t.setLogCmd("replay on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_replayoff","click",(async function(s){let i=e.icn3d;await i.resizeCanvasCls.replayoff(),t.setLogCmd("replay off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_menuall","click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus),t.applyShownMenus()})),e.myEventCls.onIds("#"+e.pre+"mn1_menusimple","click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.simpleMenus),t.applyShownMenus()})),e.myEventCls.onIds("#"+e.pre+"mn1_menupref","click",(function(s){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_menupref","Select Menus"),t.getHiddenMenusFromCache(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"apply_menupref","#"+e.pre+"apply_menupref2"],"click",(function(s){e.icn3d;var i=document.querySelectorAll('form[name="'+e.pre+'selmenu"] input:checked');for(var n of(e.htmlCls.shownMenus={},i))e.htmlCls.shownMenus[n.value]=1;t.applyShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"reset_menupref","#"+e.pre+"reset_menupref2"],"click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.simpleMenus),t.applyShownMenus(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"reset_menupref_all","#"+e.pre+"reset_menupref_all2"],"click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus),t.applyShownMenus(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"savepref","#"+e.pre+"savepref2"],"click",(function(t){let s=e.icn3d,i="[";var n=document.querySelectorAll('form[name="'+e.pre+'selmenu"] input:not(:checked)');let l=0;for(var r of n)l>0&&(i+=", "),i+='"'+r.value+'"',++l;i+="]",s.saveFileCls.saveFile("icn3d_menus_pref.txt","text",[i])})),e.myEventCls.onIds("#"+e.pre+"reload_menupreffile","click",(function(s){e.icn3d,s.preventDefault(),e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"menupreffile")[0].files[0];if(i){e.htmlCls.setHtmlCls.fileSupport();let s=new FileReader;s.onload=function(s){let i=s.target.result,n=JSON.parse(i);e.htmlCls.shownMenus={};for(let t in e.htmlCls.allMenus)-1==n.indexOf(t)&&(e.htmlCls.shownMenus[t]=1);t.applyShownMenus(),t.displayShownMenus()},s.readAsText(i)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"mn1_menuloadpref","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_menuloadpref","Please input the menu preference file")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_structure","click",(function(t){let s=e.icn3d,i=s.saveFileCls.getLinkToStructureSummary(!0),n=s.structures&&Object.keys(s.structures).length>0?"_blank":"_self";window.open(i,n)})),e.myEventCls.onIds("#"+e.pre+"mn1_alphafold","click",(function(t){e.icn3d;window.open("https://github.com/sokrypton/ColabFold","_blank")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_bind","click",(function(s){let i=e.icn3d,n="https://www.ncbi.nlm.nih.gov/pccompound?LinkName=pccompound_structure&from_uid="+i.inputid;t.setLogCmd("link to 3D protein structures bound to CID "+i.inputid+": "+n,!1);let l=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(n,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_link_vast","click",(function(s){let i,n=e.icn3d;if(void 0===n.inputid)i="https://www.ncbi.nlm.nih.gov/pccompound?term="+n.molTitle,t.setLogCmd("link to compounds "+n.molTitle+": "+i,!1);else if(void 0!==e.cfg.cid)i="https://www.ncbi.nlm.nih.gov/pccompound?LinkName=pccompound_pccompound_3d&from_uid="+n.inputid,t.setLogCmd("link to compounds with structure similar to CID "+n.inputid+": "+i,!1);else{let s=n.inputid.split("_");1===s.length?(i=e.htmlCls.baseUrl+"vastplus/vastplus.cgi?uid="+n.inputid,t.setLogCmd("link to structures similar to "+n.inputid+": "+i,!1)):2===s.length&&(i=e.htmlCls.baseUrl+"vastplus/vastplus.cgi?uid="+s[0],t.setLogCmd("link to structures similar to "+s[0]+": "+i,!1))}let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_link_pubmed","click",(function(s){let i,n=e.icn3d;if(void 0===n.inputid){i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+n.molTitle,t.setLogCmd("link to literature about "+n.molTitle+": "+i,!1);let e=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,e)}else if(n.pmid){let e=n.pmid.toString().split("_");1===e.length?(i="https://www.ncbi.nlm.nih.gov/pubmed/"+n.pmid,t.setLogCmd("link to PubMed ID "+n.pmid+": "+i,!1)):2===e.length&&(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+e[0]+" OR "+e[1],t.setLogCmd("link to PubMed IDs "+e[0]+", "+e[1]+": "+i,!1));let s=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,s)}else if(isNaN(n.inputid)){let e=n.inputid.toString().split("_");1===e.length?(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+n.inputid,t.setLogCmd("link to literature about PDB "+n.inputid+": "+i,!1)):2===e.length&&(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+e[0]+" OR "+e[1],t.setLogCmd("link to literature about PDB "+e[0]+" OR "+e[1]+": "+i,!1));let s=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,s)}else void 0!==e.cfg.cid?alert("No literature information is available for this compound in the SDF file."):alert("No literature information is available for this structure.")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_protein","click",(function(s){let i=e.icn3d,n=Object.keys(i.structures),l=Object.keys(i.chains),r="";for(let e=0,t=l.length;e0&&(r=r.substr(0,r.length-4));let o="https://www.ncbi.nlm.nih.gov/protein/?term="+r;t.setLogCmd("link to Entrez protein about PDB "+n+": "+o,!1);let a=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(o,a)}))}clickMenu2(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds(["#"+e.pre+"mn6_selectannotations","#"+e.pre+"tool_selectannotations"],"click",(async function(s){let i=e.icn3d;await i.showAnnoCls.showAnnotations(),t.setLogCmd("view annotations",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_selectall","click",(function(s){let i=e.icn3d;t.setLogCmd("select all",!0),i.selectionCls.selectAll(),i.hlUpdateCls.removeHlAll(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearall","click",(function(s){let i=e.icn3d;t.setLogCmd("clear all",!0),i.bSelectResidue=!1,i.selectionCls.selectAll(),i.hlUpdateCls.removeHlAll(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_selectdisplayed","click",(function(s){let i=e.icn3d;t.setLogCmd("select displayed set",!0),i.hAtoms=e.hashUtilsCls.cloneHash(i.viewSelectionAtoms),i.hlUpdateCls.updateHlAll()})),e.myEventCls.onIds("#"+e.pre+"mn2_clashedYes","click",(function(s){let i=e.icn3d;i.bHideClashed=!1,i.annoDomainCls.showHideClashedResidues(),i.drawCls.draw(),t.setLogCmd("clashed residues show",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_clashedNo","click",(function(s){let i=e.icn3d;i.bHideClashed=!0,t.setClashedResidues(),i.annoDomainCls.showHideClashedResidues(),i.drawCls.draw(),t.setLogCmd("clashed residues hide",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_fullstru","click",(function(s){let i=e.icn3d;t.setLogCmd("show all",!0),i.selectionCls.showAll()})),e.myEventCls.onIds("#"+e.pre+"mn2_selectcomplement","click",(function(s){let i=e.icn3d;Object.keys(i.hAtoms).lengthnon-selected"+n),$("#"+e.pre+"atomsCustomSphere2").length&&$("#"+e.pre+"atomsCustomSphere2").html(" "+n),e.htmlCls.dialogCls.openDlg("dl_aroundsphere","Select a sphere around a set of residues"),i.bSphereCalc=!1,$("#"+e.pre+"atomsCustomSphere").resizable(),$("#"+e.pre+"atomsCustomSphere2").resizable()})),e.myEventCls.onIds(["#"+e.pre+"mn2_select_chain","#"+e.pre+"definedSets"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_select_chain","Select Structure/Chain/Custom Selection")}))}clickMenu3(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsRibbon","#"+e.pre+"tool_proteinsRibbon"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","ribbon"),t.setLogCmd("style proteins ribbon",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsStrand","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","strand"),t.setLogCmd("style proteins strand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsCylinder","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","cylinder and plate"),t.setLogCmd("style proteins cylinder and plate",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","schematic"),t.setLogCmd("style proteins schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsCalpha","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","c alpha trace"),t.setLogCmd("style proteins c alpha trace",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsBackbone","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","backbone"),t.setLogCmd("style proteins backbone",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsBfactor","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","b factor tube"),t.setLogCmd("style proteins b factor tube",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsLines","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","lines"),t.setLogCmd("style proteins lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsStick","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","stick"),t.setLogCmd("style proteins stick",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsBallstick","#"+e.pre+"tool_proteinsBallstick"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","ball and stick"),t.setLogCmd("style proteins ball and stick",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsSphere","#"+e.pre+"tool_proteinsSphere"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","sphere"),t.setLogCmd("style proteins sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsNo","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","nothing"),t.setLogCmd("style proteins nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecLines","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","lines2"),t.setLogCmd("style sidec lines2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecStick","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","stick2"),t.setLogCmd("style sidec stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","ball and stick2"),t.setLogCmd("style sidec ball and stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","sphere2"),t.setLogCmd("style sidec sphere2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecNo","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","nothing"),t.setLogCmd("style sidec nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseLines","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","lines2"),t.setLogCmd("style ntbase lines2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseStick","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","stick2"),t.setLogCmd("style ntbase stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","ball and stick2"),t.setLogCmd("style ntbase ball and stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","sphere2"),t.setLogCmd("style ntbase sphere2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseNo","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","nothing"),t.setLogCmd("style ntbase nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclCartoon","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","nucleotide cartoon"),t.setLogCmd("style nucleotides nucleotide cartoon",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclBackbone","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","backbone"),t.setLogCmd("style nucleotides backbone",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","schematic"),t.setLogCmd("style nucleotides schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclPhos","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","o3 trace"),t.setLogCmd("style nucleotides o3 trace",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclLines","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","lines"),t.setLogCmd("style nucleotides lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclStick","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","stick"),t.setLogCmd("style nucleotides stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","ball and stick"),t.setLogCmd("style nucleotides ball and stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","sphere"),t.setLogCmd("style nucleotides sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclNo","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","nothing"),t.setLogCmd("style nucleotides nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligLines","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","lines"),t.setLogCmd("style chemicals lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligStick","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","stick"),t.setLogCmd("style chemicals stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","ball and stick"),t.setLogCmd("style chemicals ball and stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","schematic"),t.setLogCmd("style chemicals schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","sphere"),t.setLogCmd("style chemicals sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligNo","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","nothing"),t.setLogCmd("style chemicals nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_glycansCartYes","click",(function(s){let i=e.icn3d;i.bGlycansCartoon=!0,i.drawCls.draw(),t.setLogCmd("glycans cartoon yes",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_glycansCartNo","click",(function(s){let i=e.icn3d;i.bGlycansCartoon=!1,i.drawCls.draw(),t.setLogCmd("glycans cartoon no",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_hydrogensYes","click",(function(s){let i=e.icn3d;i.showInterCls.showHydrogens(),i.drawCls.draw(),t.setLogCmd("hydrogens",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_hydrogensNo","click",(function(s){let i=e.icn3d;i.showInterCls.hideHydrogens(),i.drawCls.draw(),t.setLogCmd("set hydrogens off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","sphere"),t.setLogCmd("style ions sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsDot","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","dot"),t.setLogCmd("style ions dot",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsNo","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","nothing"),t.setLogCmd("style ions nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("water","sphere"),t.setLogCmd("style water sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterDot","click",(function(s){e.icn3d.setOptionCls.setStyle("water","dot"),t.setLogCmd("style water dot",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterNo","click",(function(s){e.icn3d.setOptionCls.setStyle("water","nothing"),t.setLogCmd("style water nothing",!0)}))}clickMenu4(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrum","click",(function(s){e.icn3d.setOptionCls.setOption("color","spectrum"),t.setLogCmd("color spectrum",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumChain","click",(function(s){e.icn3d.setOptionCls.setOption("color","spectrum for chains"),t.setLogCmd("color spectrum for chains",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumAcrossSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorSpectrumAcross").length&&$("#"+e.pre+"atomsCustomColorSpectrumAcross").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorspectrumacrosssets","Please select sets to apply spectrum color for sets"),$("#"+e.pre+"atomsCustomColorSpectrumAcross").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorSpectrum").length&&$("#"+e.pre+"atomsCustomColorSpectrum").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorspectrumbysets","Please select sets to apply spectrum color for residues"),$("#"+e.pre+"atomsCustomColorSpectrum").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbowAcrossSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorRainbowAcross").length&&$("#"+e.pre+"atomsCustomColorRainbowAcross").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorrainbowacrosssets","Please select sets to apply rainbow color for sets"),$("#"+e.pre+"atomsCustomColorRainbowAcross").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbowSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorRainbow").length&&$("#"+e.pre+"atomsCustomColorRainbow").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorrainbowbysets","Please select sets to apply rainbow color for residues"),$("#"+e.pre+"atomsCustomColorRainbow").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbow","click",(function(s){e.icn3d.setOptionCls.setOption("color","rainbow"),t.setLogCmd("color rainbow",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrRainbowChain","#"+e.pre+"tool_clrRainbowChain"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","rainbow for chains"),t.setLogCmd("color rainbow for chains",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrChain","#"+e.pre+"tool_clrChain"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","chain"),t.setLogCmd("color chain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrStructure","click",(function(s){e.icn3d.setOptionCls.setOption("color","structure"),t.setLogCmd("color structure",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrdomain","click",(function(s){e.icn3d.setOptionCls.setOption("color","domain"),t.setLogCmd("color domain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrsets","click",(function(s){e.icn3d.setOptionCls.setOption("color","defined sets"),t.setLogCmd("color defined sets",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrSSGreen","#"+e.pre+"tool_clrSSGreen"],"click",(function(s){let i=e.icn3d;i.sheetcolor="green",i.setOptionCls.setOption("color","secondary structure green"),t.setLogCmd("color secondary structure green",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSSYellow","click",(function(s){let i=e.icn3d;i.sheetcolor="yellow",i.setOptionCls.setOption("color","secondary structure yellow"),t.setLogCmd("color secondary structure yellow",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSSSpectrum","click",(function(s){e.icn3d.setOptionCls.setOption("color","secondary structure spectrum"),t.setLogCmd("color secondary structure spectrum",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrResidue","click",(function(s){e.icn3d.setOptionCls.setOption("color","residue"),t.setLogCmd("color residue",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrResidueCustom","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_rescolorfile","Please input the file on residue colors")})),e.myEventCls.onIds("#"+e.pre+"reload_rescolorfile","click",(function(s){let i=e.icn3d;s.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"rescolorfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let s=new FileReader;s.onload=function(s){let n=s.target.result.replace(/#/g,"");i.customResidueColors=JSON.parse(n);for(let t in i.customResidueColors)i.customResidueColors[t.toUpperCase()]=e.parasCls.thr("#"+i.customResidueColors[t]);i.setOptionCls.setOption("color","residue custom"),t.setLogCmd("color residue custom | "+n,!0)},s.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_customcolorfile","click",(function(s){let i=e.icn3d;s.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.startColor=$("#"+e.pre+"startColor").val(),i.midColor=$("#"+e.pre+"midColor").val(),i.endColor=$("#"+e.pre+"endColor").val();let n=t.setLegendHtml();$("#"+e.pre+"dl_legend_html").html(n),e.htmlCls.dialogCls.openDlg("dl_legend","Color range"),i.addTrackCls.setCustomFile("color",i.startColor,i.midColor,i.endColor)})),e.myEventCls.onIds("#"+e.pre+"mn6_customref","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_customref","Set custom reference numbers")})),e.myEventCls.onIds("#"+e.pre+"reload_customreffile","click",(function(s){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=$("#"+i.pre+"cstreffile")[0].files[0];if(n){e.utilsCls.checkFileAPI();let s=new FileReader;s.onload=async function(e){let s=e.target.result;await i.refnumCls.parseCustomRefFile(s),s=s.replace(/\r/g,"").replace(/\n/g,"\\n"),t.setLogCmd("custom refnum | "+s,!0)},s.readAsText(n)}else alert("Please select a file before clicking 'Apply'")})),e.myEventCls.onIds("#"+e.pre+"remove_legend","click",(function(s){e.icn3d,s.preventDefault(),$("#"+e.pre+"legend").hide(),t.setLogCmd("remove legend",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_customtubefile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.addTrackCls.setCustomFile("tube")})),e.myEventCls.onIds("#"+e.pre+"mn4_clrCharge","click",(function(s){e.icn3d.setOptionCls.setOption("color","charge"),t.setLogCmd("color charge",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrHydrophobic","click",(function(s){e.icn3d.setOptionCls.setOption("color","hydrophobic"),t.setLogCmd("color hydrophobic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrNormalizedHP","click",(function(s){e.icn3d.setOptionCls.setOption("color","normalized hydrophobic"),t.setLogCmd("color normalized hydrophobic",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrAtom","#"+e.pre+"tool_clrAtom"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","atom"),t.setLogCmd("color atom",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrBfactor","click",(function(s){e.icn3d.setOptionCls.setOption("color","b factor"),t.setLogCmd("color b factor",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrConfidence","click",(function(s){e.icn3d.setOptionCls.setOption("color","confidence"),t.setLogCmd("color confidence",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIgstrand","click",(function(s){e.icn3d.setOptionCls.setOption("color","ig strand"),t.setLogCmd("color ig strand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIgproto","click",(function(s){e.icn3d.setOptionCls.setOption("color","ig protodomain"),t.setLogCmd("color ig protodomain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrArea","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_colorbyarea","Color based on residue's solvent accessibility")})),e.myEventCls.onIds("#"+e.pre+"applycolorbyarea","click",(function(s){let i=e.icn3d;i.midpercent=$("#"+e.pre+"midpercent").val(),i.setOptionCls.setOption("color","area"),t.setLogCmd("color area | "+i.midpercent,!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrBfactorNorm","click",(function(s){e.icn3d.setOptionCls.setOption("color","b factor percentile"),t.setLogCmd("color b factor percentile",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIdentity","click",(function(s){e.icn3d.setOptionCls.setOption("color","identity"),t.setLogCmd("color identity",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrConserved","click",(function(s){e.icn3d.setOptionCls.setOption("color","conservation"),t.setLogCmd("color conservation",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrCustom","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_clr","Color picker")})),$(document).on("click",".icn3d-color-rad-text",(function(s){let i=e.icn3d;s.stopImmediatePropagation();let n=$(this).attr("color");i.setOptionCls.setOption("color",n),t.setLogCmd("color "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSave","click",(function(s){e.icn3d.setOptionCls.saveColor(),t.setLogCmd("save color",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrApplySave","click",(function(s){e.icn3d.setOptionCls.applySavedColor(),t.setLogCmd("apply saved color",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_styleSave","click",(function(s){e.icn3d.setOptionCls.saveStyle(),t.setLogCmd("save style",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_styleApplySave","click",(function(s){e.icn3d.setOptionCls.applySavedStyle(),t.setLogCmd("apply saved style",!0)}))}clickMenu5(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds("#"+e.pre+"mn5_neighborsYes","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.applyMapCls.removeLastSurface(),i.applyMapCls.applySurfaceOptions(),i.bRender&&i.drawCls.render(),t.setLogCmd("set surface neighbors on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_neighborsNo","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.applyMapCls.removeLastSurface(),i.applyMapCls.applySurfaceOptions(),i.bRender&&i.drawCls.render(),t.setLogCmd("set surface neighbors off",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn5_surfaceVDW","#"+e.pre+"tool_surfaceVDW"],"click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","Van der Waals surface"),t.setLogCmd("set surface Van der Waals surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceSAS","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","solvent accessible surface"),t.setLogCmd("set surface solvent accessible surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceMolecular","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","molecular surface"),t.setLogCmd("set surface molecular surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceVDWContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","Van der Waals surface with context"),t.setLogCmd("set surface Van der Waals surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceSASContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","solvent accessible surface with context"),t.setLogCmd("set surface solvent accessible surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceMolecularContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","molecular surface with context"),t.setLogCmd("set surface molecular surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceNo","click",(function(s){e.icn3d.setOptionCls.setOption("surface","nothing"),t.setLogCmd("set surface nothing",!0)})),$(document).on("click","."+e.pre+"mn5_opacity",(function(s){let i=e.icn3d;i.transparentRenderOrder=!1;let n=$(this).attr("v");i.setOptionCls.setOption("opacity",n),t.setLogCmd("set surface opacity "+n,!0)})),$(document).on("click","."+e.pre+"mn5_opacityslow",(function(s){let i=e.icn3d;i.transparentRenderOrder=!0;let n=$(this).attr("v");i.setOptionCls.setOption("opacity",n),t.setLogCmd("set surface2 opacity "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_wireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("wireframe","yes"),t.setLogCmd("set surface wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_wireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("wireframe","no"),t.setLogCmd("set surface wireframe off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_elecmap2fofc","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_elecmap2fofc","2Fo-Fc Electron Density Map")})),e.myEventCls.onIds("#"+e.pre+"mn5_elecmapfofc","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_elecmapfofc","Fo-Fc Electron Density Map")})),e.myEventCls.onIds(["#"+e.pre+"mn5_elecmapNo","#"+e.pre+"elecmapNo2","#"+e.pre+"elecmapNo3","#"+e.pre+"elecmapNo4","#"+e.pre+"elecmapNo5"],"click",(function(s){e.icn3d.setOptionCls.setOption("map","nothing"),t.setLogCmd("setoption map nothing",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphimapNo","#"+e.pre+"phimapNo","#"+e.pre+"phiurlmapNo","#"+e.pre+"mn1_phimapNo"],"click",(function(s){e.icn3d.setOptionCls.setOption("phimap","nothing"),t.setLogCmd("setoption phimap nothing",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphimapNo2","#"+e.pre+"phimapNo2","#"+e.pre+"phiurlmapNo2"],"click",(function(s){e.icn3d.setOptionCls.setOption("phisurface","nothing"),t.setLogCmd("setoption phisurface nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"applymap2fofc","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"sigma2fofc").val());await i.densityCifParserCls.densityCifParser(i.inputid,"2fofc",n),t.setLogCmd("set map 2fofc sigma "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applymapfofc","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"sigmafofc").val());await i.densityCifParserCls.densityCifParser(i.inputid,"fofc",sigma2fofc),t.setLogCmd("set map fofc sigma "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_mapwireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("mapwireframe","yes"),t.setLogCmd("set map wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_mapwireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("mapwireframe","no"),t.setLogCmd("set map wireframe off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmap","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_emmap","EM Density Map")})),e.myEventCls.onIds(["#"+e.pre+"mn5_emmapNo","#"+e.pre+"emmapNo2"],"click",(function(s){e.icn3d.setOptionCls.setOption("emmap","nothing"),t.setLogCmd("setoption emmap nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"applyemmap","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"empercentage").val());await i.densityCifParserCls.densityCifParser(i.inputid,"em",n,i.emd),t.setLogCmd("set emmap percentage "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmapwireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("emmapwireframe","yes"),t.setLogCmd("set emmap wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmapwireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("emmapwireframe","no"),t.setLogCmd("set emmap wireframe off",!0)}))}clickMenu6(){let e=this.icn3dui,t=e.icn3d;if(e.bNode)return;let s=this;e.myEventCls.onIds("#"+e.pre+"mn6_assemblyYes","click",(function(t){let i=e.icn3d;i.bAssembly=!0,s.setLogCmd("set assembly on",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_assemblyNo","click",(function(t){let i=e.icn3d;i.bAssembly=!1,s.setLogCmd("set assembly off",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefYes","click",(async function(t){let i=e.icn3d;i.bRunRefnumAgain=!0,s.setLogCmd("ig refnum on",!0),i.bAnnoShown||await i.showAnnoCls.showAnnotations();await i.annotationCls.setAnnoTabIg(!0),i.bRunRefnumAgain=!1})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefTpl","click",(async function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_igrefTpl","Choose an Ig template")})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefTpl_apply","click",(async function(t){e.icn3d,e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"refTpl").val();await s.setIgTemplate(i),s.setLogCmd("ig template "+i,!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_alignrefTpl","click",(async function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_alignrefTpl","Align with an Ig template")})),e.myEventCls.onIds("#"+e.pre+"mn6_alignrefTpl_apply","click",(async function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"refTpl2").val(),l=e.hashUtilsCls.cloneHash(i.hAtoms),r=e.htmlCls.baseUrl+"icn3d/refpdb/"+n+".pdb";await i.pdbParserCls.downloadUrl(r,"pdb",void 0,n),s.setLogCmd("load url "+r+" | type pdb",!0);let o=n.replace(/_/g,"").substr(0,4),a=i.structures[o][0];i.hAtoms=e.hashUtilsCls.unionHash(l,i.chains[a]),e.cfg.aligntool="tmalign",await i.realignParserCls.realignOnStructAlign(),s.setLogCmd("realign on tmalign",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefNo","click",(async function(t){let i=e.icn3d;s.setLogCmd("ig refnum off",!0),await i.refnumCls.hideIgRefNum()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelAtoms","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addAtomLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add atom labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelElements","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addAtomLabels(i.hAtoms,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add element labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelResidues","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add residue labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelResnum","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms,void 0,void 0,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add residue number labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelRefnum","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms,void 0,void 0,void 0,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add reference number labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelIg","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addIgLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add ig labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelChains","click",(function(t){let i=e.icn3d;i.analysisCls.addChainLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add chain labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelTermini","click",(function(t){let i=e.icn3d;i.analysisCls.addTerminiLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add terminal labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelYes","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_addlabel","Add custom labels by selection"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelSelection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_addlabelselection","Add custom labels by the selected")})),e.myEventCls.onIds("#"+e.pre+"mn6_labelColor","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_labelColor","Change color for all labels")})),e.myEventCls.onIds(["#"+e.pre+"mn2_saveselection","#"+e.pre+"tool_saveselection"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_saveselection","Save the selected")})),e.myEventCls.onIds(["#"+e.pre+"mn6_addlabelNo","#"+e.pre+"removeLabels"],"click",(function(t){let i=e.icn3d;i.labelcolor=void 0,i.pickpair=!1;s.setLogCmd("set labels off",!0);for(let e in i.labels)i.labels[e]=[];i.drawCls.draw()})),$(document).on("click","."+e.pre+"mn6_labelscale",(function(t){let i=e.icn3d,n=$(this).attr("v");i.labelScale=n,i.drawCls.draw(),s.setLogCmd("set label scale "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_distanceYes","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_distance","Measure the distance of atoms"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0,s.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distTwoSets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_disttwosets","Measure the distance between two sets"),s.setSetsMenus("atomsCustomDist"),i.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distManySets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_distmanysets","Measure the pairwise distances among many sets"),s.setSetsMenus("atomsCustomDistTable"),i.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_angleManySets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_anglemanysets","Measure the pairwise angles among many sets"),s.setSetsMenus("atomsCustomAngleTable"),i.bMeasureAngle=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distanceNo","click",(function(t){let i=e.icn3d;i.pickpair=!1;s.setLogCmd("set lines off",!0),i.labels.distance=[],i.lines.distance=[],i.distPnts=[],i.pk=2,i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn5_cartoonshape","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_cartoonshape","Draw cartoon for a set");s.setSetsMenus("cartoonshape",!0),i.bCartoonshape=!0})),e.myEventCls.onIds("#"+e.pre+"mn5_linebtwsets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_linebtwsets","Draw a line between two sets"),s.setSetsMenus("linebtwsets"),i.bLinebtwsets=!0})),e.myEventCls.onIds(["#"+e.pre+"mn2_selectedcenter","#"+e.pre+"zoomin_selection","#"+e.pre+"tool_selectedcenter"],"click",(function(t){let i=e.icn3d;i.transformCls.zoominSelection(),i.drawCls.draw(),s.setLogCmd("zoom selection",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_center","click",(function(t){let i=e.icn3d;i.applyCenterCls.centerSelection(),i.drawCls.draw(),s.setLogCmd("center selection",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_resetOrientation","#"+e.pre+"resetOrientation","#"+e.pre+"tool_resetOrientation"],"click",(function(t){let i=e.icn3d;i.transformCls.resetOrientation(),i.drawCls.draw(),s.setLogCmd("reset orientation",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_chemicalbindingshow","#"+e.pre+"chemicalbindingshow"],"click",(function(t){e.icn3d.setOptionCls.setOption("chemicalbinding","show"),s.setLogCmd("set chemicalbinding show",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_chemicalbindinghide","#"+e.pre+"chemicalbindinghide"],"click",(function(t){e.icn3d.setOptionCls.setOption("chemicalbinding","hide"),s.setLogCmd("set chemicalbinding hide",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_sidebyside","click",(function(t){let i=e.icn3d;if(i.bInputfile)return void alert("Side-by-Side does NOT work when the input is from a local file.");let n=i.shareLinkCls.shareLinkUrl(void 0);n=n.replace("icn3d/full.html?","icn3d/full2.html?"),n=n.replace("icn3d/?","icn3d/full2.html?"),n+="&closepopup=1";let l=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(n,l),s.setLogCmd("side by side | "+n,!0)})),$(document).on("click","#"+e.pre+"mn2_translate",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_translate","Translate the X,Y,Z coordinates of the structure")})),$(document).on("click","#"+e.pre+"mn6_angleTwoSets",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_angle","Measure the angle between two vectors")})),$(document).on("click","#"+e.pre+"mn2_matrix",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_matrix","Apply matrix to the X,Y,Z coordinates of the structure")})),$(document).on("click","."+e.pre+"mn6_rotate",(function(t){let i=e.icn3d,n=$(this).attr("v").toLowerCase(),l=n.split(" ")[1];s.setLogCmd(n,!0),i.bStopRotate=!1,i.transformCls.rotateCount=0,i.transformCls.rotateCountMax=6e3,i.ROT_DIR=l,i.resizeCanvasCls.rotStruc(l)})),$(document).on("click","."+e.pre+"mn6_rotate90",(function(t){let i,n=e.icn3d,l=$(this).attr("v").toLowerCase(),r=l.split(" ")[1];s.setLogCmd(l,!0),"x"==r?i=new THREE.Vector3(1,0,0):"y"==r?i=new THREE.Vector3(0,1,0):"z"==r&&(i=new THREE.Vector3(0,0,1));let o=.5*Math.PI;n.transformCls.setRotation(i,o)})),e.myEventCls.onIds("#"+e.pre+"mn6_cameraPers","click",(function(t){e.icn3d.setOptionCls.setOption("camera","perspective"),s.setLogCmd("set camera perspective",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_cameraOrth","click",(function(t){e.icn3d.setOptionCls.setOption("camera","orthographic"),s.setLogCmd("set camera orthographic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdBlack","click",(function(t){e.icn3d.setStyleCls.setBackground("black")})),e.myEventCls.onIds("#"+e.pre+"tool_bkgd","click",(function(t){let s=e.icn3d;"black"==s.opts.background?s.setStyleCls.setBackground("white"):s.setStyleCls.setBackground("black")})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdGrey","click",(function(t){e.icn3d.setStyleCls.setBackground("grey")})),e.myEventCls.onIds(["#"+e.pre+"mn6_bkgdWhite","#"+e.pre+"tool_bkgdWhite"],"click",(function(t){e.icn3d.setStyleCls.setBackground("white")})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdTransparent","click",(function(t){e.icn3d.setStyleCls.setBackground("transparent")})),e.myEventCls.onIds("#"+e.pre+"mn6_showfogYes","click",(function(t){let i=e.icn3d;i.opts.fog="yes",i.fogCls.setFog(!0),i.drawCls.draw(),s.setLogCmd("set fog on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showfogNo","click",(function(t){let i=e.icn3d;i.opts.fog="no",i.fogCls.setFog(!0),i.drawCls.draw(),s.setLogCmd("set fog off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showslabYes","click",(function(t){e.icn3d.setOptionCls.setOption("slab","yes"),s.setLogCmd("set slab on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showslabNo","click",(function(t){e.icn3d.setOptionCls.setOption("slab","no"),s.setLogCmd("set slab off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisYes","click",(function(t){e.icn3d.setOptionCls.setOption("axis","yes"),s.setLogCmd("set axis on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisSel","click",(function(t){let i=e.icn3d;i.pc1=!0,i.axesCls.setPc1Axes(),s.setLogCmd("set pc1 axis",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisNo","click",(function(t){let i=e.icn3d;i.pc1=!1,i.axes=[],i.setOptionCls.setOption("axis","no"),s.setLogCmd("set axis off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_symmetry","click",(async function(t){let s=e.icn3d;s.bAxisOnly=!1,await s.symdCls.retrieveSymmetry(Object.keys(s.structures)[0])})),e.myEventCls.onIds("#"+e.pre+"mn6_symd","click",(async function(t){let i=e.icn3d;i.bAxisOnly=!1,await i.symdCls.retrieveSymd(),i.bSymd=!0,s.setLogCmd("symd symmetry",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_clear_sym","click",(function(t){let i=e.icn3d;i.symdArray=[],i.drawCls.draw(),s.setLogCmd("clear symd symmetry",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_axes_only","click",(function(t){let i=e.icn3d;i.bAxisOnly=!0,i.drawCls.draw(),s.setLogCmd("show axis",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_area","click",(function(t){e.icn3d.analysisCls.calculateArea(),s.setLogCmd("area",!0)})),e.myEventCls.onIds("#"+e.pre+"applysymmetry","click",(function(t){let i=e.icn3d;i.bAxisOnly=!1;let n=$("#"+e.pre+"selectSymmetry").val();i.symmetrytitle="none"===n?void 0:n,i.drawCls.draw(),s.setLogCmd("symmetry "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"clearsymmetry","click",(function(t){let i=e.icn3d;i.symmetrytitle=void 0,i.drawCls.draw(),s.setLogCmd("symmetry none",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_hbondsYes","#"+e.pre+"hbondsYes"],"click",(function(t){let i=e.icn3d;s.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomHbond").length&&$("#"+e.pre+"atomsCustomHbond").html(" "+n),$("#"+e.pre+"atomsCustomHbond2").length&&$("#"+e.pre+"atomsCustomHbond2").html(" "+n),e.htmlCls.dialogCls.openDlg("dl_hbonds","Hydrogen bonds/interactions between two sets of atoms"),i.bHbondCalc=!1,$("#"+e.pre+"atomsCustomHbond").resizable(),$("#"+e.pre+"atomsCustomHbond2").resizable()})),e.myEventCls.onIds(["#"+e.pre+"mn6_contactmap"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_contact","Set contact map")})),e.myEventCls.onIds(["#"+e.pre+"mn6_DSSP"],"click",(async function(t){let i=e.icn3d;s.setLogCmd("set dssp sse",!0),await i.pdbParserCls.applyCommandDssp(),i.bResetAnno=!0,i.bAnnoShown&&(await i.showAnnoCls.showAnnotations(),i.annotationCls.resetAnnoTabAll())})),e.myEventCls.onIds("#"+e.pre+"mn6_hbondsNo","click",(function(t){let s=e.icn3d;s.showInterCls.hideHbondsContacts(),s.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerYes","click",(function(t){let i=e.icn3d;i.threeDPrintCls.addStabilizer(),i.threeDPrintCls.prepareFor3Dprint(),s.setLogCmd("stabilizer",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerNo","click",(function(t){let i=e.icn3d;s.setLogCmd("set stabilizer off",!0),i.threeDPrintCls.hideStabilizer(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerOne","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_stabilizer","Add One Stabilizer"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerRmOne","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_stabilizer_rm","Remove One Stabilizer"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn1_thicknessSet","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_thickness","Set Thickness for 3D Printing")})),e.myEventCls.onIds("#"+e.pre+"mn3_setThickness","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_thickness2","Style Preferences")})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsYes","click",(function(t){let i=e.icn3d;s.setLogCmd("disulfide bonds",!0),i.showInterCls.showSsbonds()})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsExport","click",(function(t){e.icn3d.viewInterPairsCls.exportSsbondPairs(),s.setLogCmd("export disulfide bond pairs",!1)})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsNo","click",(function(t){let i=e.icn3d;i.opts.ssbonds="no";s.setLogCmd("set disulfide bonds off",!0),i.lines.ssbond=[],i.setOptionCls.setStyle("sidec","nothing")})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsYes","click",(function(t){let i=e.icn3d;s.setLogCmd("cross linkage",!0),i.showInterCls.showClbonds()})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsExport","click",(function(t){e.icn3d.viewInterPairsCls.exportClbondPairs(),s.setLogCmd("export cross linkage pairs",!1)})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsNo","click",(function(t){let i=e.icn3d;i.opts.clbonds="no";s.setLogCmd("set cross linkage off",!0),i.lines.clbond=[],i.setOptionCls.setStyle("sidec","nothing")})),$("#"+e.pre+"newvs2").on("submit",(function(){let s=t.saveFileCls.getAtomPDB(t.hAtoms,void 0,void 0,void 0,void 0,void 0,void 0,!0);return $("#"+e.pre+"pdbstr").val(s),!0})),$("#"+e.pre+"fssubmit").on("click",(function(){let e=t.saveFileCls.getAtomPDB(t.hAtoms),s=window.open("","_blank");s.document.body.innerHTML="\n\nLoading Foldseek\n\n\n\n
Foldseek is loading...
\n",$.ajax({url:"https://search.foldseek.com/api/ticket",type:"POST",data:{q:e,database:["afdb50","afdb-swissprot","gmgcl_id","pdb100","afdb-proteome","mgnify_esm30"],mode:"3diaa"},dataType:"text",success:function(e){s.location="https://search.foldseek.com/queue/"+JSON.parse(e).id},error:function(e,t,s){console.log("Error in submitting data to Foldseek...")}})})),e.myEventCls.onIds("#"+e.pre+"jn_copy","click",(function(t){e.icn3d;let s=$("#"+e.pre+"jn_commands").val();navigator.clipboard.writeText(s)}))}setLogCmd(e,t,s){var i=this.icn3dui,n=i.icn3d;if(""===e.trim())return!1;let l=e.indexOf("|||");-1!==l&&(e=e.substr(0,l));let r={};if(n.quaternion||(n._zoomFactor=1,n.mouseChange=new THREE.Vector2(0,0),n.quaternion=new THREE.Quaternion(0,0,0,1)),r.factor=n._zoomFactor,r.mouseChange=n.mouseChange,r.quaternion={},r.quaternion._x=parseFloat(n.quaternion._x).toPrecision(5),r.quaternion._y=parseFloat(n.quaternion._y).toPrecision(5),r.quaternion._z=parseFloat(n.quaternion._z).toPrecision(5),r.quaternion._w=parseFloat(n.quaternion._w).toPrecision(5),t&&n.bAddCommands)if(n.STATENUMBER "+n.logs.join("\n> ")+"\n> "),$("#"+i.pre+"logtext")[0]&&$("#"+i.pre+"logtext").scrollTop($("#"+i.pre+"logtext")[0].scrollHeight)}n.setStyleCls.adjustIcon()}}class d{constructor(e){this.icn3dui=e}getLink(e,t,s,i){return this.icn3dui.htmlCls.setHtmlCls.getLink(e,t,s,i)}getMenuText(e,t,s,i,n){return this.icn3dui.htmlCls.setHtmlCls.getMenuText(e,t,s,i,n)}getMenuUrl(e,t,s,i,n){return this.icn3dui.htmlCls.setHtmlCls.getMenuUrl(e,t,s,i,n)}getMenuSep(){return this.icn3dui.htmlCls.setHtmlCls.getMenuSep()}getLinkWrapper(e,t,s,i,n,l){let r=this.icn3dui;return r.icn3d,r.htmlCls.setHtmlCls.getLinkWrapper(e,t,s,i,n,l)}getLinkWrapper2(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.setHtmlCls.getLinkWrapper2(e,t,s,i,n)}getRadio(e,t,s,i,n,l){return this.icn3dui.htmlCls.setHtmlCls.getRadio(e,t,s,i,n,l)}getRadClr(e,t,s,i,n,l,r){return this.icn3dui.htmlCls.setHtmlCls.getRadioColor(e,t,s,i,n,l,r)}setTopMenusHtml(e,t,s){let i=this.icn3dui;if(i.bNode)return"";let n="black"==i.htmlCls.opts.background?i.htmlCls.GREYD:"black",l="";l+="
",l+=i.htmlCls.divStr+"popup' class='icn3d-text icn3d-popup'>
",l+=this.setReplayHtml(),l+="\x3c!--https://forum.jquery.com/topic/looking-for-a-jquery-horizontal-menu-bar--\x3e",l+=i.htmlCls.divStr+"mnlist' style='position:absolute; z-index:999; float:left; display:table-row; margin-top: -2px;'>",l+="";let r='",l+=r+this.setMenu2()+"",l+=r+this.setMenu2b()+"",l+=r+this.setMenu3()+"",l+=r+this.setMenu4()+"",l+=r+this.setMenu5()+"",l+=r+this.setMenu6()+"",i.htmlCls.shownMenus=i.hashUtilsCls.cloneHash(i.htmlCls.simpleMenus),l+=r+"
"+t,l+="
"+s,l+=r+'
'+i.htmlCls.space2+'Toolbar '+i.htmlCls.space2+'
",l+=r+'
'+i.htmlCls.space2+' ?
',l+="
",l+="
';if(l+=r+this.setMenu1()+"
",l+="",l+=this.setTools(),l+=i.htmlCls.divStr+"title' class='icn3d-commandTitle' style='font-size:1.2em; font-weight:normal; position:absolute; z-index:1; float:left; display:table-row; margin: 85px 0px 0px 5px; color:"+n+"; width:"+i.htmlCls.WIDTH+"px'>",l+=i.htmlCls.divStr+"viewer' style='position:relative; width:100%; height:100%; background-color: "+i.htmlCls.GREYD+";'>",l+=i.htmlCls.divStr+"mnLogSection'>",l+="
",l+=" ",void 0===i.cfg.mmtfid){let e="top:180px; font-size: 1.8em;";l+=i.htmlCls.divStr+"wait' style='position:absolute; left:50px; "+e+" color: #444444;'>Loading data..."}l+="Your browser does not support WebGL.",(void 0===i.cfg.showcommand||i.cfg.showcommand)&&(l+=this.setLogWindow()),l+="",l+="",l+=i.htmlCls.setDialogCls.setDialogs(),l+=i.htmlCls.setDialogCls.setCustomDialogs(),$("#"+e).html(l),$("accordion").accordion({collapsible:!0,active:!1,heightStyle:"content"}),$("accordion div").removeClass("ui-accordion-content ui-corner-all ui-corner-bottom ui-widget-content"),$(".icn3d-mn-item").menu({position:{my:"left top",at:"right top"}}),$(".icn3d-mn-item").hover((function(){}),(function(){$("accordion").accordion("option","active","none")})),$("#"+i.pre+"accordion1").hover((function(){$("#"+i.pre+"accordion1 div").css("display","block")}),(function(){$("#"+i.pre+"accordion1 div").css("display","none")})),$("#"+i.pre+"accordion2").hover((function(){$("#"+i.pre+"accordion2 div").css("display","block")}),(function(){$("#"+i.pre+"accordion2 div").css("display","none")})),$("#"+i.pre+"accordion2b").hover((function(){$("#"+i.pre+"accordion2b div").css("display","block")}),(function(){$("#"+i.pre+"accordion2b div").css("display","none")})),$("#"+i.pre+"accordion3").hover((function(){$("#"+i.pre+"accordion3 div").css("display","block")}),(function(){$("#"+i.pre+"accordion3 div").css("display","none")})),$("#"+i.pre+"accordion4").hover((function(){$("#"+i.pre+"accordion4 div").css("display","block")}),(function(){$("#"+i.pre+"accordion4 div").css("display","none")})),$("#"+i.pre+"accordion5").hover((function(){$("#"+i.pre+"accordion5 div").css("display","block")}),(function(){$("#"+i.pre+"accordion5 div").css("display","none")})),$("#"+i.pre+"accordion6").hover((function(){$("#"+i.pre+"accordion6 div").css("display","block")}),(function(){$("#"+i.pre+"accordion6 div").css("display","none")}))}setTopMenusHtmlMobile(e,t,s){let i=this.icn3dui;if(i.bNode)return"";let n="black"==i.htmlCls.opts.background?i.htmlCls.GREYD:"black",l="";if(l+="
",l+=i.htmlCls.divStr+"popup' class='icn3d-text icn3d-popup'>
",l+=this.setReplayHtml(),!i.utilsCls.isMobile()){let e=i.htmlCls.WIDTH-40+5;l+=i.htmlCls.buttonStr+"fullscreen' style='position:absolute; z-index:1999; display:block; padding:0px; margin: 12px 0px 0px "+e+"px; width:30px; height:34px; border-radius:4px; border:none; background-color:#f6f6f6;' title='Full screen'>",l+="",l+="",l+="",l+="",l+=""}l+="\x3c!--https://forum.jquery.com/topic/looking-for-a-jquery-horizontal-menu-bar--\x3e",l+=i.htmlCls.divStr+"mnlist' style='position:absolute; z-index:999; float:left; display:block; margin: 5px 0px 0px 5px;'>",l+="
",l+="",i.cfg.notebook?l+="

":l+="

",l+="
";let r="
  • File",l+=this.setMenu1_base(),l+=r+">Select",l+=this.setMenu2_base(),l+=r+">View",l+=this.setMenu2b_base(),l+=r+" id='"+i.pre+"style'>Style",l+=this.setMenu3_base(),l+=r+" id='"+i.pre+"color'>Color",l+=this.setMenu4_base(),l+=r+">Analysis",l+=this.setMenu5_base(),l+=r+">Help",l+=this.setMenu6_base(),i.htmlCls.shownMenus=i.hashUtilsCls.cloneHash(i.htmlCls.simpleMenus),l+="
  • "+t,l+="
    "+s,l+="
  • Alternate",l+="",l+="
  • ",l+="
    ",l+="
    ",l+="",l+=i.htmlCls.divStr+"title' class='icn3d-commandTitle' style='font-size:1.2em; font-weight:normal; position:absolute; z-index:1; float:left; display:block; margin: 12px 0px 0px 40px; color:"+n+"; width:"+(i.htmlCls.WIDTH-40).toString()+"px'>",l+=i.htmlCls.divStr+"viewer' style='position:relative; width:100%; height:100%; background-color: "+i.htmlCls.GREYD+";'>",l+=i.htmlCls.divStr+"mnLogSection'>",l+="
    ",l+="",void 0===i.cfg.mmtfid){let e="top:180px; font-size: 1.8em;";l+=i.htmlCls.divStr+"wait' style='position:absolute; left:50px; "+e+" color: #444444;'>Loading data..."}l+="Your browser does not support WebGL.",(void 0===i.cfg.showcommand||i.cfg.showcommand)&&(l+=this.setLogWindow()),l+="",l+="",l+=i.htmlCls.setDialogCls.setDialogs(),l+=i.htmlCls.setDialogCls.setCustomDialogs(),$("#"+e).html(l),$("accordion").accordion({collapsible:!0,active:!1,heightStyle:"content"}),$("accordion div").removeClass("ui-accordion-content ui-corner-all ui-corner-bottom ui-widget-content"),$(".icn3d-mn-item").menu({position:{my:"left top",at:"right top"}}),$(".icn3d-mn-item").hover((function(){}),(function(){$("accordion").accordion("option","active","none")})),$("#"+i.pre+"accordion0").hover((function(){$("#"+i.pre+"accordion0 div").css("display","block")}),(function(){$("#"+i.pre+"accordion0 div").css("display","none")}))}setReplayHtml(e){let t=this.icn3dui;if(t.bNode)return"";let s="";return s+=t.htmlCls.divStr+"replay' style='display:none; position:absolute; z-index:9999; top:"+parseInt(t.htmlCls.HEIGHT-100).toString()+"px; left:20px;'>",s+="
    ",s+='',s+="",s+='',s+='',s+="",s+="
    ",s+=t.htmlCls.divStr+"replay_menu' style='background-color:#DDDDDD; padding:3px; font-weight:bold;'>",s+=t.htmlCls.divStr+"replay_cmd' style='background-color:#DDDDDD; padding:3px; max-width:250px'>",s+="",s}setTools(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+=e.htmlCls.divStr+"selection' style='display:none;'>
    ",t+="",t+=this.setTools_base(),t+="
    ",t+="
    ",t}setButton(e,t,s,i,n){let l=this.icn3dui;return l.bNode?"":(n=void 0!==n?"color:"+n:"","
    ")}setIcon(e,t,s,i,n,l,r){let o=this.icn3dui;if(o.bNode)return"";let a,d=r?"color:#f8b84e; ":"color:#1c94c4; ",c=" background-color:#EEE; ",h="text"==e?"":"cursor:pointer;";return a=l?'
    '+i+"
    ":'',"link"==e?''+a+"":a}setTools_base(){if(this.icn3dui.bNode)return"";let e="",t="regular",s="",i="";return e+=s+this.setIcon(t,"tool_mmdbafid","Input PDB/MMDB/AlphaFold IDs","id",void 0,!0)+"",e+=s+this.setIcon(t,"tool_pdbfile","Input PDB Files (appendable)","file-alt")+"",e+=s+this.setIcon(t,"tool_sharelink","Get Share Link","link")+"",e+=s+this.setIcon(t,"saveimage","Save iCn3D PNG Image","camera")+"",e+=i+this.setIcon(t,"tool_definedsets","Defined Sets","object-group")+"",e+=s+this.setIcon(t,"tool_aroundsphere","Select by Distance","dot-circle")+"",e+=s+this.setIcon(t,"tool_saveselection","Save Selection as a Set","save")+"",e+=s+this.setIcon(t,"toggleHighlight","Toggle Highlight","highlighter")+"",e+=i+this.setIcon(t,"show_selected","View Selection","eye")+"",e+=s+this.setIcon(t,"tool_selectedcenter","Zoom in Selection","search-plus")+"",e+=s+this.setIcon(t,"alternate","Alternate the Structures by keying the letter 'a'","a",void 0,!0,!0)+"",e+=s+this.setIcon(t,"tool_resetOrientation","Reset Orientation","undo-alt")+"",e+=i+this.setIcon(t,"tool_proteinsRibbon","Style Ribbon for proteins","dna")+"",e+=s+this.setIcon(t,"tool_proteinsSphere","Style Sphere for proteins","volleyball-ball")+"",e+=s+this.setIcon(t,"tool_surfaceVDW","Show Van der Waals Surface","cloud")+"",e+=s+this.setIcon(t,"tool_bkgd","Toggle Background Color","adjust")+"",e+=i+this.setIcon(t,"tool_clrRainbowChain","Color Rainbow for Chains","rainbow")+"",e+=s+this.setIcon(t,"tool_clrSSGreen","Color by Secondary Structures","ring")+"",e+=s+this.setIcon(t,"tool_clrChain","Color by Chains","layer-group")+"",e+=s+this.setIcon(t,"tool_clrAtom","Color by Atoms","atom")+"",e+=i+this.setIcon(t,"tool_selectannotations","Sequences & Annotations","grip-lines")+"",e+=s+this.setIcon(t,"hbondsYes","Interactions","users")+"",e+=s+this.setIcon(t,"tool_delphi","Delphi Potentials","cloud-meatball")+"",e+=s+this.setIcon(t,"removeLabels","Remove Labels","remove-format")+"",e+=i+this.setIcon("link","tool-gallery","Gallery","image","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#gallery")+"",e+=s+this.setIcon("link","tool-video","Videos","file-video","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#videos")+"",e+=s+this.setIcon("link","tool-github","iCn3D GitHub","code","https://github.com/ncbi/icn3d")+"",e+=s+this.setIcon("link","tool-hints","Transform Hints","info-circle","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#useicn3d")+"",e+="",e}setTheme(e){let t,s,i,n,l,r=this.icn3dui;if(r.bNode)return"";r.htmlCls.themecolor=e,"orange"==e?(t="#e78f08",s="#f6a828",i="ui-bg_gloss-wave_35_f6a828_500x100.png",n="ui-icons_ef8c08_256x240.png",l="#eb8f00"):"black"==e?(t="#333333",s="#333333",i="ui-bg_gloss-wave_25_333333_500x100.png",n="ui-icons_222222_256x240.png",l="#222222"):"blue"==e&&(t="#4297d7",s="#5c9ccc",i="ui-bg_gloss-wave_55_5c9ccc_500x100.png",n="ui-icons_228ef1_256x240.png",l="#444"),$(".ui-widget-header").css({border:"1px solid "+t,background:s+' url("https://www.ncbi.nlm.nih.gov/Structure/icn3d/lib/images/'+i+'") 50% 50% repeat-x',color:"#fff","font-weight":"bold"}),$(".ui-button .ui-icon").css({"background-image":"url(https://www.ncbi.nlm.nih.gov/Structure/icn3d/lib/images/"+n+")"}),$(".ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited").css({color:l,"text-decoration":"none"})}setLogWindow(e,t){let s=this.icn3dui;if(s.bNode)return"";let i,n="",l=s.htmlCls.setHtmlCls.getCookie("cmdwindow");return""!=l?(i=void 0!==t?t:parseInt(l),1==i?(s.htmlCls.LOG_HEIGHT=180,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+=""):(s.htmlCls.LOG_HEIGHT=65,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+="")):(i=0,s.htmlCls.LOG_HEIGHT=65,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+=""),e||(n+=""),e&&(s.htmlCls.clickMenuCls.setLogCmd("set cmdwindow "+i,!0),$("#"+s.pre+"cmdlog").html(n)),n}setMenu1(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    File

    ",t+="
    ",t+=this.setMenu1_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu1_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuText("mn1_searchgrooup","Search Structure "+e.htmlCls.wifiStr,void 0,1,1),t+="
        ",t+=this.getMenuUrl("mn1_searchstru","https://www.ncbi.nlm.nih.gov/structure","PDB Structures "+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_proteinname","AlphaFold Structures "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("mn1_afdatabase","https://alphafold.ebi.ac.uk","AlphaFold UniProt Database "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_searchsimilar","Search Similar"+e.htmlCls.wifiStr,void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_vastplus","NCBI VAST+ (PDB Complex)"+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_vast","NCBI VAST (PDB Chain)"+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_foldseek","Foldseek (PDB & AlphaFold)"+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_retrievebyid","Retrieve by ID",void 0,1,1),t+="
        ",t+=this.getLink("mn1_mmdbafid","PDB/MMDB/AlphaFold IDs"+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_mmdbid","NCBI MMDB ID (annotation) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_mmtfid","RCSB BCIF/MMTF ID (fast) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_pdbid","RCSB PDB ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getMenuText("mn1_afwrap","AlphaFold Structures",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_afid","UniProt ID "+e.htmlCls.wifiStr,void 0,3),t+=this.getLink("mn1_refseqid","NCBI Protein Accession "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+=this.getLink("mn1_opmid","OPM PDB ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_mmcifid","RCSB mmCIF ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_cid","PubChem CID/Name/InchI "+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_smiles","Chemical SMILES ",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_openfile","Open File",void 0,1,1),t+="
        ",t+=this.getLink("mn1_pdbfile_app","PDB Files (appendable)",1,2),t+=this.getLink("mn1_mmciffile","mmCIF Files (appendable)",void 0,2),t+=this.getLink("mn1_mol2file","Mol2 File",void 0,2),t+=this.getLink("mn1_sdffile","SDF File",void 0,2),t+=this.getLink("mn1_xyzfile","XYZ File",void 0,2),t+=this.getLink("mn1_afmapfile","AlphaFold PAE File",void 0,2),t+=this.getLink("mn1_urlfile","URL(CORS) "+e.htmlCls.wifiStr,void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_pngimage","iCn3D PNG (appendable)",1,2),t+=this.getLink("mn1_state","State/Script File",void 0,2),t+=this.getLink("mn1_fixedversion","Share Link in Archived Ver. "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_selection","Selection File",void 0,2),t+=this.getLink("mn1_collection","Collection File",void 0,2),t+=this.getMenuSep(),t+=this.getMenuText("mn1_dsn6wrap","Electron Density",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_dsn6","Local File",void 0,3),t+=this.getLink("mn1_dsn6url","URL(CORS) "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+="

      • ",t+="
      ",t+="",t+=this.getMenuText("mn1_fold","Predict by Seq.",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_esmfold","ESMFold",void 0,2),t+=this.getLink("mn1_alphafold","AlphaFold2 via ColabFold"+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=this.getMenuText("mn1_alignwrap","Align",void 0,1,1),t+="
        ",t+=this.getMenuText("mn1_chainalignwrap","Multiple Chains",void 0,1,2),t+="
          ",t+=this.getRadio("mn1_chainalignRad","mn1_chainalign","by Structure Alignment "+e.htmlCls.wifiStr,void 0,1,3),t+=this.getRadio("mn1_chainalignRad","mn1_chainalign2","by Sequence Alignment "+e.htmlCls.wifiStr,void 0,1,3),t+=this.getRadio("mn1_chainalignRad","mn1_chainalign3","Residue by Residue",void 0,void 0,3),t+="
        ",t+="",t+=this.getMenuText("mn1_aligntwostru","Protein Complexes",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_align","Two PDB Structures "+e.htmlCls.wifiStr,void 0,3),t+=this.getLink("mn1_alignaf","Two AlphaFold Structures "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+=this.getLink("mn1_blast_rep_id","Sequence to Structure",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_realignWrap","Realign Selection",void 0,void 0,1),t+="
        ",t+=this.getMenuText("mn2_chainrealignwrap","Multiple Chains",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn2_realign","mn2_realignonstruct","by Structure Alignment "+e.htmlCls.wifiStr,void 0,void 0,3),t+=this.getRadio("mn2_realign","mn2_realignonseqalign","by Sequence Alignment "+e.htmlCls.wifiStr,void 0,void 0,3),t+=this.getRadio("mn2_realign","mn2_realignresbyres","Residue by Residue",void 0,void 0,3),t+="
        ",t+=this.getLink("mn2_realigntwostru","Protein Complexes",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_3dpprint","3D Printing",void 0,1,1),t+="
        ",void 0===e.cfg.cid?(t+=this.getLink("mn1_exportVrmlStab","WRL/VRML(Color, W/ Stab.)",1,2),t+=this.getLink("mn1_exportStlStab","STL(W/ Stabilizers)",1,2),t+=this.getMenuSep(),t+=this.getLink("mn1_exportVrml","WRL/VRML(Color)",void 0,2),t+=this.getLink("mn1_exportStl","STL",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_stabilizerYes","Add All Stabilizers",void 0,2),t+=this.getLink("mn1_stabilizerNo","Remove All Stabilizers",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_stabilizerOne","Add One Stabilizer",void 0,2),t+=this.getLink("mn1_stabilizerRmOne","Remove One Stabilizer",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_thicknessSet","Set Thickness",void 0,2)):(t+=this.getLink("mn1_exportVrml","VRML(Color)",1,2),t+=this.getLink("mn1_exportStl","STL",1,2)),t+="
      ",t+="",t+=this.getMenuText("mn1_savefile","Save File",void 0,1,1),t+="
        ",t+=this.getMenuText("mn1_savepngimage","iCn3D PNG Image",void 0,1,2),t+="
          ",t+=this.getLink("mn1_exportCanvas","Original Size & HTML",1,3),t+=this.getLink("mn1_exportCanvas1","Original Size",void 0,3),t+=this.getLink("mn1_exportCanvas2","2X Large",void 0,3),t+=this.getLink("mn1_exportCanvas4","4X Large",void 0,3),t+=this.getLink("mn1_exportCanvas8","8X Large",void 0,3),t+="
        ",t+="",t+=this.getLink("mn1_exportState","State File",void 0,2),t+=this.getLink("mn1_exportSelections","Selection File",void 0,2),t+=this.getLink("mn1_exportSelDetails","Selection Details",void 0,2),t+=this.getLink("mn1_exportCounts","Residue Counts",void 0,2),t+=this.getLink("mn1_exportPdbRes","PDB",1,2),t+=this.getLink("profixpdb","PDB with Missing Atoms",void 0,2),void 0===e.cfg.cid&&(t+=this.getLink("mn1_exportSecondary","Secondary Structure",void 0,2)),t+=this.getMenuText("m1_exportrefnum","Reference Numbers",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_exportIgstrand","Ig Strand",void 0,3),t+=this.getLink("mn1_exportKabat","Kabat",void 0,3),t+=this.getLink("mn1_exportImgt","IMGT",void 0,3),t+="
        ",t+="

      • ",t+="
      ",t+="",t+=this.getLink("mn1_sharelink","Share Link "+e.htmlCls.wifiStr,1,1),t+=this.getLink("mn1_replayon","Replay Each Step",void 0,1),t+=this.getMenuSep(),t+=this.getMenuText("mn1_menuwrap","Customize Menus",void 0,1,1),t+="
        ",t+=this.getLink("mn1_menuall","All Menus",1,2),t+=this.getLink("mn1_menusimple","Simple Menus",1,2),t+=this.getMenuSep(),t+=this.getLink("mn1_menupref","Preferences",1,2),t+=this.getLink("mn1_menuloadpref","Load Preferences",1,2),t+="
      ",t+="",t+="

    • ",t+="
    ",t}setMenu2(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Select

    ",t+="
    ",t+=this.setMenu2_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu2_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getLink("mn2_definedsets","Defined Sets",1,1),t+=this.getLink("mn2_selectall","All",void 0,1),t+=this.getLink("mn2_selectdisplayed","Displayed Set",void 0,1),t+=this.getLink("mn2_aroundsphere","by Distance",1,1),t+=this.getMenuText("mn2_selbyprop","by Property",void 0,void 0,1),t+="
        ",t+=this.getLink("mn2_propPos","Positive",void 0,2),t+=this.getLink("mn2_propNeg","Negative",void 0,2),t+=this.getLink("mn2_propHydro","Hydrophobic",void 0,2),t+=this.getLink("mn2_propPolar","Polar",void 0,2),t+=this.getLink("mn2_propBfactor","B-factor/pLDDT",void 0,2),t+=this.getLink("mn2_propSolAcc","Solvent Accessibility",void 0,2),t+="
      ",t+="",t+=this.getLink("mn2_selectcomplement","Inverse",void 0,1),t+=this.getLink("mn2_selectmainchains","Main Chains",void 0,1),t+=this.getLink("mn2_selectsidechains","Side Chains",void 0,1),t+=this.getLink("mn2_selectmainsidechains","Main & Side Chains",void 0,1),t+=this.getLink("mn2_command","Advanced",void 0,1),void 0===e.cfg.cid?(t+=this.getMenuText("mn2_selon3d","Select on 3D",void 0,1,1),t+="
        ",t+='
      • "Alt"+Click: start selection
      • ',t+='
      • "Ctrl"+Click: union selection
      • ',t+='
      • "Shift"+Click: range Selection
      • ',t+=this.getMenuSep(),t+=this.getRadio("mn2_pk","mn2_pkChain","Chain",void 0,1,2),void 0===e.cfg.mmdbid&&void 0===e.cfg.gi||(t+=this.getRadio("mn2_pk","mn2_pkDomain","3D Domain",void 0,void 0,2)),t+=this.getRadio("mn2_pk","mn2_pkStrand","Strand/Helix",void 0,void 0,2),t+=this.getRadio("mn2_pk","mn2_pkResidue","Residue",!0,1,2),t+=this.getRadio("mn2_pk","mn2_pkYes","Atom",void 0,1,2),t+=this.getRadio("mn2_pk","mn2_pkNo","None",void 0,void 0,2),t+="
      ",t+=""):e.utilsCls.isMobile()?t+="
    • Touch to pick
    • ":t+='
    • Picking with
      "Alt" + Click
    • ',t+=this.getMenuSep(),t+=this.getLink("mn2_saveselection","Save Selection",1,1),t+=this.getLink("clearall","Clear Selection",void 0,1),t+=this.getLink("mn2_saveresidue","Save Res. in Sel.",1,1),t+=this.getMenuSep(),t+=this.getMenuText("mn2_hlcolor","Highlight Color",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_hl_clr","mn2_hl_clrYellow","Yellow",!0,void 0,2),t+=this.getRadio("mn2_hl_clr","mn2_hl_clrGreen","Green",void 0,void 0,2),t+=this.getRadio("mn2_hl_clr","mn2_hl_clrRed","Red",void 0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_hlstyle","Highlight Style",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_hl_style","mn2_hl_styleOutline","Outline",!0,void 0,2),t+=this.getRadio("mn2_hl_style","mn2_hl_styleObject","3D Objects",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("toggleHighlight2","Toggle Highlight",1,1),t+="

    • ",t+="
    ",t}setMenu2b(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    View

    ",t+="
    ",t+=this.setMenu2b_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu2b_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getLink("mn2_show_selected","View Selection",1,1),t+=this.getLink("mn2_hide_selected","Hide Selection",1,1),t+=this.getLink("mn2_selectedcenter","Zoom in Selection",1,1),t+=this.getLink("mn6_center","Center Selection",1,1),t+=this.getLink("mn2_fullstru","View Full Structure"),t+=this.getLinkWrapper("mn2_alternate",'Alternate(Key "a")',"mn2_alternateWrap",void 0,1),void 0!==e.cfg.opmid?t+=this.getLinkWrapper("togglemem","Toggle Membrane","togglememli",void 0,1):void 0===e.cfg.cid&&(t+=this.getLinkWrapper("togglemem","Toggle Membrane","togglememli",void 0,1,!0)),void 0!==e.cfg.opmid&&(t+=this.getLinkWrapper("adjustmem","Adjust Membrane","adjustmemli",void 0,1),t+=this.getLinkWrapper("selectplane","Select between
      Two X-Y Planes","selectplaneli",void 0,1)),t+=this.getMenuSep(),t+=this.getMenuText("mn2_vrarhints","VR & AR Hints",void 0,1,1),t+="
        ",t+=this.getMenuUrl("vrhint",e.htmlCls.baseUrl+"icn3d/icn3d.html#vr","VR: VR Headsets",1,2),t+=this.getMenuUrl("arhint",e.htmlCls.baseUrl+"icn3d/icn3d.html#ar","AR: Chrome in Android",1,2),t+="
      ",t+="",t+=this.getLink("mn6_sidebyside","Side by Side",1,1),t+=this.getMenuText("mn2_rotate","Rotate",void 0,1,1),t+="
        ",t+=this.getMenuText("mn2_rotate90","Rotate 90°",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn6_rotate90","mn6_rotatex","rotate x",void 0,void 0,2),t+=this.getRadio("mn6_rotate90","mn6_rotatey","rotate y",void 0,void 0,2),t+=this.getRadio("mn6_rotate90","mn6_rotatez","rotate z",void 0,void 0,2),t+="
        ",t+="",t+=this.getMenuText("mn2_rotateauto","Auto Rotation",void 0,1,2),t+="
          ",t+=this.getRadio("mn6_rotate","mn6_rotateleft","Rotate Left",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotateright","Rotate Right",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotateup","Rotate Up",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotatedown","Rotate Down",void 0,1,3),t+="
        ",t+="",t+="
      ",t+="",t+=this.getLink("mn2_translate","Translate XYZ",void 0,1),t+=this.getLink("mn2_matrix","Rotate with Matrix",void 0,1),t+=this.getMenuText("mn2_camera","Camera",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_camera","mn6_cameraPers","Perspective",!0,void 0,2),t+=this.getRadio("mn6_camera","mn6_cameraOrth","Orthographic",void 0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_fog","Fog for Selection",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showfog","mn6_showfogYes","On",void 0,void 0,2),t+=this.getRadio("mn6_showfog","mn6_showfogNo","Off",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_slab","Slab for Selection",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showslab","mn6_showslabYes","On",void 0,void 0,2),t+=this.getRadio("mn6_showslab","mn6_showslabNo","Off",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_axes","XYZ-axes",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showaxis","mn6_showaxisYes","Original",void 0,void 0,2),t+=this.getRadio("mn6_showaxis","mn6_showaxisSel","Prin. Axes on Sel.",void 0,void 0,2),t+=this.getRadio("mn6_showaxis","mn6_showaxisNo","Hide",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuSep(),t+=this.getMenuText("mn2_resetwrap","Reset",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_reset","reset","All",void 0,1,2),t+=this.getRadio("mn6_reset","mn6_resetOrientation","Orientation",void 0,1,2),t+="
      ",t+="",t+=this.getLink("mn6_back","Undo",void 0,1),t+=this.getLink("mn6_forward","Redo",void 0,1),t+=this.getLink("mn6_fullscreen","Full Screen",void 0,1),t+="

    • ",t+="
    ",t}setMenu3(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Style

    ",t+="
    ",t+=this.setMenu3_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu3_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";t+="
      ",void 0===e.cfg.cid&&(t+=this.getMenuText("mn3_proteinwrap","Proteins",void 0,1,1),t+="
        ",void 0!==e.cfg.align||void 0!==e.cfg.chainalign?t+=this.getRadio("mn3_proteins","mn3_proteinsRibbon","Ribbon",void 0,1,2):t+=this.getRadio("mn3_proteins","mn3_proteinsRibbon","Ribbon",!0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsStrand","Strand",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsCylinder","Cylinder and Plate",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsSchematic","Schematic",void 0,1,2),void 0!==e.cfg.align||void 0!==e.cfg.chainalign?t+=this.getRadio("mn3_proteins","mn3_proteinsCalpha","C Alpha Trace",!0,1,2):t+=this.getRadio("mn3_proteins","mn3_proteinsCalpha","C Alpha Trace",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBackbone","Backbone",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBfactor","B-factor Tube",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsLines","Lines",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsStick","Stick",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_sidecwrap","Side Chains",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_sidec","mn3_sidecLines","Lines",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecStick","Stick",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecNo","Hide",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_nuclwrap","Nucleotides",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_nucl","mn3_nuclCartoon","Cartoon",!0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclPhos","O3' Trace",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclBackbone","Backbone",void 0,void 0,2),t+=this.getRadio("mn3_nucl","mn3_nuclSchematic","Schematic",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclLines","Lines",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclStick","Stick",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_ntbasewrap","Nucl. Bases",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_ntbase","mn3_ntbaseLines","Lines",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseStick","Stick",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseNo","Hide",!0,1,2),t+="
      ",t+=""),t+=this.getMenuText("mn3_ligwrap","Chemicals",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_lig","mn3_ligLines","Lines",void 0,1,2),void 0===e.cfg.cid?(t+=this.getRadio("mn3_lig","mn3_ligStick","Stick",!0,1,2),t+=this.getRadio("mn3_lig","mn3_ligBallstick","Ball and Stick",void 0,1,2)):(t+=this.getRadio("mn3_lig","mn3_ligStick","Stick",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligBallstick","BalHydrogensl and Stick",!0,1,2)),t+=this.getRadio("mn3_lig","mn3_ligSchematic","Schematic",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_hydrogenswrap","Hydrogens",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_hydrogens","mn3_hydrogensYes","Show",!0,1,2),t+=this.getRadio("mn3_hydrogens","mn3_hydrogensNo","Hide",void 0,1,2),t+="
      ",t+="",void 0===e.cfg.cid&&(t+=this.getMenuText("mn3_glycanwrap","Glycans",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn3_glycansCart","mn3_glycansCartYes","Show Cartoon",void 0,void 0,2),t+=this.getRadio("mn3_glycansCart","mn3_glycansCartNo","Hide Cartoon",!0,void 0,2),t+="
      ",t+=""),t+=this.getMenuText("mn3_ionswrap","Ions",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_ions","mn3_ionsSphere","Sphere",!0,1,2),t+=this.getRadio("mn3_ions","mn3_ionsDot","Dot",void 0,1,2),t+=this.getRadio("mn3_ions","mn3_ionsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_waterwrap","Water",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_water","mn3_waterSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_water","mn3_waterDot","Dot",void 0,1,2),t+=this.getRadio("mn3_water","mn3_waterNo","Hide",!0,1,2),t+="
      ",t+="",void 0===e.cfg.cid&&(t+=this.getMenuText("mn2_clashedwrap","Clashed Residues",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_clashed","mn2_clashedYes","Show",!0,void 0,2),t+=this.getRadio("mn2_clashed","mn2_clashedNo","Hide",void 0,void 0,2),t+="
      ",t+=""),t+=this.getLink("mn3_setThickness","Preferences",void 0,1),t+=this.getMenuSep(),t+=this.getLink("mn3_styleSave","Save Style",void 0,2),t+=this.getLink("mn3_styleApplySave","Apply Saved Style",void 0,2),t+=this.getMenuSep(),t+=this.getMenuText("mn5_surfacewrap","Surface Type",void 0,1,1),t+="
        ",t+=this.getRadio("mn5_surface","mn5_surfaceVDW","Van der Waals",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceVDWContext","VDW with Context",void 0,void 0,2),t+=this.getRadio("mn5_surface","mn5_surfaceMolecular","Molecular Surface",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceMolecularContext","MS with Context",void 0,void 0,2),t+=this.getRadio("mn5_surface","mn5_surfaceSAS","Solvent Accessible",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceSASContext","SA with Context",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn5_surfaceNo","Remove Surface",1,1),t+=this.getMenuText("mn5_surfaceop","Surface Opacity",void 0,1,1),t+="
        ",t+=this.getMenuText("mn5_surfaceopfast","Fast Transparency",void 0,1,2),t+="
          ",t+=this.getRadio("mn5_opacity","mn5_opacity10","1.0",!0,1,3);for(let e=9;e>0;--e)t+=this.getRadio("mn5_opacity","mn5_opacity0"+e,"0."+e,1,3);t+="
        ",t+="",t+=this.getMenuText("mn5_surfaceopslow","Slow Transparency",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn5_opacityslow","mn5_opacityslow10","1.0",!0,void 0,3);for(let e=9;e>0;--e)t+=this.getRadio("mn5_opacityslow","mn5_opacityslow0"+e,"0."+e,void 0,void 0,3);return t+="
        ",t+="",t+="
      ",t+=this.getMenuText("mn5_wireframewrap","Surface Wireframe",void 0,1,1),t+="
        ",t+=this.getRadio("mn5_wireframe","mn5_wireframeYes","Yes",void 0,1,2),t+=this.getRadio("mn5_wireframe","mn5_wireframeNo","No",!0,1,2),t+="
      ",t+="",t+=this.getMenuSep(),t+=this.getLink("mn5_cartoonshape","Cartoon for a Set",void 0,1),t+=this.getLink("mn5_linebtwsets","Line btw. Two Sets",void 0,1),void 0===e.cfg.cid&&void 0===e.cfg.align&&void 0===e.cfg.chainalign&&void 0===e.cfg.mmdbaf&&(t+=this.getMenuSep(),t+=this.getLinkWrapper2("mn5_map","Electron Density","mapWrapper1",void 0,1),t+="
        ",t+=this.getLink("mn5_elecmap2fofc","2Fo-Fc Map",void 0,2),t+=this.getLink("mn5_elecmapfofc","Fo-Fc Map",void 0,2),t+=this.getLinkWrapper("mn5_elecmapNo","Remove Map","mapWrapper2",void 0,2),t+="
      ",t+="",t+=this.getLinkWrapper2("mn5_map3","Map Wireframe","mapWrapper3",void 0,1),t+="
        ",t+=this.getRadio("mn5_mapwireframe","mn5_mapwireframeYes","Yes",!0,void 0,2),t+=this.getRadio("mn5_mapwireframe","mn5_mapwireframeNo","No",void 0,void 0,2),t+="
      ",t+="",void 0===e.cfg.mmtfid&&(t+=this.getLinkWrapper("mn5_emmap","EM Density Map","emmapWrapper1",void 0,1),t+=this.getLinkWrapper("mn5_emmapNo","Remove EM Map","emmapWrapper2",void 0,1),t+=this.getLinkWrapper2("mn5_emmap3","EM Map Wireframe","emmapWrapper3",void 0,1),t+="
        ",t+=this.getRadio("mn5_emmapwireframe","mn5_emmapwireframeYes","Yes",!0,void 0,2),t+=this.getRadio("mn5_emmapwireframe","mn5_emmapwireframeNo","No",void 0,void 0,2),t+="
      ",t+="")),t+=this.getMenuSep(),t+=this.getMenuText("mn6_bkgdwrap","Background",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_bkgd","mn6_bkgdTransparent","Transparent",void 0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdBlack","Black",!0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdGrey","Gray",void 0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdWhite","White",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_themewrap","Dialog Color",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_theme","mn6_themeBlue","Blue",!0,void 0,2),t+=this.getRadio("mn6_theme","mn6_themeOrange","Orange",void 0,void 0,2),t+=this.getRadio("mn6_theme","mn6_themeBlack","Black",void 0,void 0,2),t+="
      ",t+="",t+="

    • ",t+="
    ",t}setMenu4(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Color

    ",t+="
    ",t+=this.setMenu4_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu4_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuText("mn4_clrwrap","Unicolor","icn3d-menupd",1,1),t+="
        ",t+=this.getMenuText("uniclrRedwrap","Red",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrRed1","Red","F00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed2","Indian Red","CD5C5C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed3","Light Coral","F08080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed4","Salmon","FA8072",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed5","Dark Salmon","E9967A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed6","Light Salmon","FFA07A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed7","Crimson","DC143C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed8","Fire Brick","B22222",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed9","Dark Red","8B0000",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrPinkwrap","Pink",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrPink1","Pink","FFC0CB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink2","Light Pink","FFB6C1",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink3","Hot Pink","FF69B4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink4","Deep Pink","FF1493",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink5","Medium Violet Red","C71585",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink6","Pale Violet Red","DB7093",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrOrangewrap","Orange",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrOran1","Orange","FFA500",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran2","Dark Orange","FF8C00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran3","Orange Red","FF4500",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran4","Tomato","FF6347",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran5","Coral","FF7F50",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran6","Light Salmon","FFA07A",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrYellowwrap","Yellow",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrYllw1","Yellow","FF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw2","Gold","FFD700",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw3","Light Yellow","FFFFE0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw4","Lemon Chiffon","FFFACD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw5","Light Golden Rod","FAFAD2",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw6","Papaya Whip","FFEFD5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw7","Moccasin","FFE4B5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw8","Peach Puff","FFDAB9",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw9","Pale Golden Rod","EEE8AA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw10","Khaki","F0E68C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw11","Dark Khaki","BDB76B",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrMagentawrap","Magenta",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrMgnt1","Magenta","F0F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt2","Orchid","DA70D6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt3","Violet","EE82EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt4","Plum","DDA0DD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt5","Thistle","D8BFD8",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt6","Lavender","E6E6FA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt7","Medium Orchid","BA55D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt8","Medium Purple","9370DB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt9","Rebecca Purple","663399",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt10","Blue Violet","8A2BE2",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt11","Dark Violet","9400D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt12","Dark Orchid","9932CC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt13","Dark Magenta","8B008B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt14","Purple","800080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt15","Indigo","4B0082",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt16","Slat Blue","6A5ACD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt17","Dark Slate Blue","483D8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt18","Medium Slat Blue","6A5ACD",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrGreenwrap","Green",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrGrn1","Green","0F0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn2","Dark Green","006400",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn3","Yellow Green","9ACD32",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn4","Olive Drab","6B8E23",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn5","Olive","808000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn6","Dark Olive Green","556B2F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn7","Medium Aquamarine","66CDAA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn8","Dark Sea Green","8FBC8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn9","Lignt Sea Green","20B2AA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn10","Dark Cyan","008B8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn11","Teal","008080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn12","Forest Green","228B22",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn13","Sea Green","2E8B57",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn14","Medium Sea Green","3CB371",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn15","Spring Green","00FF7F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn16","Medium Spring","00FA9A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn17","Light Green","90EE90",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn18","Pale Green","98FB98",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn19","Lime Green","32CD32",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn20","Lawn Green","7CFC00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn21","Chartreuse","7FFF00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn22","Green Yellow","ADFF2F",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrCyanwrap","Cyan",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrCyan1","Cyan","0FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan2","Light Cyan","E0FFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan3","Pale Turquoise","AFEEEE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan4","Aquamarine","7FFFD4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan5","Turquoise","40E0D0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan6","Medium Turquoise","48D1CC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan7","Dark Turquoise","00CED1",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrBluewrap","Blue",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrBlue1","Blue","00F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue2","Medium Blue","0000CD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue3","Dark Blue","00008B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue4","Navy","000080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue5","Midnight Blue","191970",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue6","Royal Blue","4169E1",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue7","Medium Slate Blue","7B68EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue8","Corn Flower Blue","6495ED",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue9","Dodger Blue","1E90FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue10","Deep Sky Blue","00BFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue11","Light Sky Blue","87CEFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue12","Sky Blue","87CEEB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue13","Light Blue","ADD8E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue14","Powder Blue","B0E0E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue15","Light Steel Blue","B0C4DE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue16","Steel Blue","4682B4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue17","Cadet Blue","5F9EA0",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrBrownwrap","Brown",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrBrown1","Brown","A52A2A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown2","Maroon","800000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown3","Sienna","A0522D",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown4","Saddle Brown","8B4513",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown5","Chocolate","D2691E",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown6","Peru","CD853F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown7","Dark Golden Rod","B8860B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown8","Golden Rod","DAA520",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown9","Sandy Brown","F4A460",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown10","Rosy Brown","BC8F8F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown11","Tan","D2B48C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown12","Burlywood","DEB887",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown13","Wheat","F5DEB3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown14","Navajo White","FFDEAD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown15","Bisque","FFE4C4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown16","Blanched Almond","FFEBCD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown17","Corn Silk","FFF8DC",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrWhitewrap","White",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrWhite1","White","FFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite2","Snow","FFFAFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite3","Honey Dew","F0FFF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite4","Mint Cream","F5FFFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite5","Azure","F0FFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite6","Alice Blue","F0F8FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite7","Ghost White","F8F8FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite8","White Smoke","F5F5F5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite9","Sea Shell","FFF5EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite10","Beige","F5F5DC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite11","Old Lace","FDF5E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite12","Floral White","FFFAF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite13","Ivory","FFFFF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite14","Antique White","FAEBD7",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite15","Linen","FAF0E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite16","Lavenderblush","FFF0F5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite17","Misty Rose","FFE4E1",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrGraywrap","Gray",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrGray1","Gray","808080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray2","Dim Gray","696969",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray3","Light Slate Gray","778899",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray4","Slate Gray","708090",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray5","Dark Slate Gray","2F4F4F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray6","Black","000000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray7","Dark Gray","A9A9A9",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray8","Silver","C0C0C0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray9","Light Gray","D3D3D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray10","Gainsboro","DCDCDC",void 0,1,3),t+="
        ",t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrCustom","Color Picker",void 0,void 0,1),t+=this.getMenuSep(),void 0===e.cfg.cid?(t+=this.getMenuText("mn4_clrRainbowwrap","Rainbow (R-V)","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrRainbow","for Selection",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowChain","for Chains",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowSets","for Sets",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowAcrossSets","across Sets",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrSpectrumwrap","Spectrum (V-R)","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrSpectrum","for Selection",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumChain","for Chains",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumSets","for Sets",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumAcrossSets","across Sets",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrSSwrap","Secondary","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrSSGreen","Sheet in Green",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSSYellow","Sheet in Yellow",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSSSpectrum","Spectrum",void 0,void 0,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrCharge","Charge",void 0,1,1),t+=this.getMenuText("mn4_hydrophobicwrap","Hydrophobicity","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrNormalizedHP","Normalized",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrHydrophobic","Wimley-White",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrBfactorwrap","B-factor","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrBfactor","Original",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrBfactorNorm","Percentile",void 0,1,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrArea",'Solvent
      Accessibility',void 0,void 0,1),t+=this.getRadio("mn4_clr","mn4_clrStructure","Structure",void 0,1,1),void 0!==e.cfg.align||void 0!==e.cfg.chainalign||void 0!==e.cfg.blast_rep_id?t+=this.getRadio("mn4_clr","mn4_clrChain","Chain",void 0,1,1):t+=this.getRadio("mn4_clr","mn4_clrChain","Chain",!0,1,1),t+=this.getRadio("mn4_clr","mn4_clrdomain","3D Domain",void 0,void 0,1),void 0===e.cfg.cid&&(t+=this.getMenuText("mn4_clrsetswrap","Defined Sets","icn3d-menupd",void 0,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrsets",'Rainbow for Selected Sets
        in "Analysis > Defined Sets"',void 0,void 0,2),t+="
      ",t+=""),t+=this.getMenuText("mn4_clrResiduewrap","Residue","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrResidue","Default",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrResidueCustom","Custom",void 0,void 0,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrAtom","Atom",void 0,1,1),void 0!==e.cfg.align||void 0!==e.cfg.chainalign?(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",!0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",void 0,void 0,2)):void 0!==e.cfg.blast_rep_id?(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",!0,void 0,2)):(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",void 0,void 0,2)),t+=this.getRadio("mn4_clr","mn4_clrConfidence","pLDDT",void 0,1,1),t+=this.getRadio("mn4_clr","mn4_clrIgstrand","Ig Strand",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrIgproto","Ig Protodomain",void 0,void 0,2)):t+=this.getRadio("mn4_clr","mn4_clrAtom","Atom",!0,1,1),t+=this.getMenuSep(),t+=this.getLink("mn4_clrSave","Save Color",void 0,1),t+=this.getLink("mn4_clrApplySave","Apply Saved Color",void 0,1),t+="

    • ",t+="
    ",t}setMenu5(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

     Analysis

    ",t+="
    ",t+=this.setMenu5_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu5_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";t+="
      ",void 0===e.cfg.cid&&(t+=this.getLink("mn6_selectannotations","Seq. & Annotations "+e.htmlCls.wifiStr,1,1),t+=this.getLink("mn2_alignment","Aligned Seq. "+e.htmlCls.wifiStr,void 0,1),void 0===e.cfg.mmdbid&&void 0===e.cfg.gi&&void 0===e.cfg.blast_rep_id&&void 0===e.cfg.align&&void 0===e.cfg.chainalign||(t+=this.getLink("mn2_2ddgm","2D Diagram "+e.htmlCls.wifiStr,1,1)),t+=this.getMenuText("2dctnwrap","2D Cartoon",void 0,void 0,1),t+="
        ",t+=this.getLink("2dctn_chain","Chain Level",void 0,2),t+=this.getLink("2dctn_domain","Domain Level",void 0,2),t+=this.getLink("2dctn_secondary","Helix/Sheet Level",void 0,2),t+="
      ",t+="",t+=this.getLink("definedsets2","Defined Sets",1,1),t+=this.getMenuSep(),t+=this.getLink("mn6_hbondsYes","Interactions",1,1),t+=this.getMenuText("mn1_window","Bring to Front",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_window_table","Interaction Table",void 0,2),t+=this.getLink("mn1_window_linegraph","2D Interaction Network",void 0,2),t+=this.getLink("mn1_window_scatterplot","2D Interaction Map",void 0,2),t+=this.getLink("mn1_window_graph","2D Graph(Force-Directed)",void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_contactmap","Contact Map",void 0,1),t+=this.getLink("mn1_mutation","Mutation "+e.htmlCls.wifiStr,1,1)),e.cfg.hidelicense||(t+=this.getMenuText("mn1_delphiwrap","DelPhi Potential",void 0,1,1),t+="
        ",t+=this.getLink("mn1_delphi","DelPhi Potential "+e.htmlCls.licenseStr,1,2),t+=this.getMenuText("mn1_phiwrap","Load PQR/Phi",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_phi","Local PQR/Phi/Cube File",void 0,3),t+=this.getLink("mn1_phiurl","URL PQR/Phi/Cube File",void 0,3),t+="
        ",t+="",t+=this.getLink("delphipqr","Download PQR",void 0,2),t+="
      ",t+=""),t+=this.getMenuSep(),t+=this.getMenuText("mn6_distancewrap","Distance",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_distance","mn6_distanceYes","between Two Atoms",void 0,1,2),t+=this.getRadio("mn6_distance","mn6_distTwoSets","between Two Sets",void 0,void 0,2),t+=this.getRadio("mn6_distance","mn6_distManySets","among Many Sets",void 0,void 0,2),t+=this.getRadio("mn6_distance","mn6_distanceNo","Hide",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_anglewrap","Angle",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_angle","mn6_angleManySets","among Many Sets",void 0,1,2),t+=this.getRadio("mn6_angle","mn6_angleTwoSets","b/w Two Vectors",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_area","Surface Area",1,1),t+=this.getMenuText("mn6_addlabelwrap","Label",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_addlabel","mn6_addlabelYes","by Picking Atoms",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelSelection","per Selection",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelAtoms","per Atom",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelElements","per Atom Element",void 0,1,2),void 0===e.cfg.cid&&(t+=this.getRadio("mn6_addlabel","mn6_addlabelResidues","per Residue",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelResnum","per Residue & Number",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelRefnum","per Reference Number",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelIg","per Ig Domain",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelChains","per Chain",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelTermini","N- & C-Termini",void 0,1,2)),t+=this.getMenuSep(),t+=this.getRadio("mn6_addlabel","mn6_labelColor","Change Label Color",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelNo","Remove",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("labelscalewrap","Label Scale",void 0,1,1),t+="
        ";for(let e=1;e<=4;++e){let s=2*e;t+=this.getRadio("mn6_labelscale","mn6_labelscale0"+s,"0."+s,void 0,1,2)}for(let e=2;e<=10;++e){let s=(e/2).toFixed(1);t+=2==e?this.getRadio("mn6_labelscale","mn6_labelscale"+e+"0",s,!0,1,2):this.getRadio("mn6_labelscale","mn6_labelscale"+e+"0",s,void 0,1,2)}if(t+="
      ",t+="",t+=this.getMenuSep(),void 0===e.cfg.cid){t+=this.getMenuText("mn6_chemicalbindingwrap","Chem. Binding",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_chemicalbinding","mn6_chemicalbindingshow","Show",void 0,void 0,2),t+=this.getRadio("mn6_chemicalbinding","mn6_chemicalbindinghide","Hide",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn6_ssbondswrap","Disulfide Bonds",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_ssbonds","mn6_ssbondsYes","Show",!0,1,2),t+=this.getRadio("mn6_ssbonds","mn6_ssbondsExport","Export Pairs",void 0,void 0,2),t+=this.getRadio("mn6_ssbonds","mn6_ssbondsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_clbondswrap","Cross-Linkages",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_clbonds","mn6_clbondsYes","Show",!0,void 0,2),t+=this.getRadio("mn6_clbonds","mn6_clbondsExport","Export Pairs",void 0,void 0,2),t+=this.getRadio("mn6_clbonds","mn6_clbondsNo","Hide",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_DSSP","DSSP Secondary",void 0,1);let s=void 0!==e.cfg.mmtfid||void 0!==e.cfg.pdbid||void 0!==e.cfg.opmid||void 0!==e.cfg.mmcifid||void 0!==e.cfg.mmdbid||void 0!==e.cfg.mmdbafid||void 0!==e.cfg.gi||void 0!==e.cfg.blast_rep_id;s&&(t+=this.getMenuText("assemblyWrapper","Assembly",void 0,1,1),t+="
        ",e.cfg.bu?(t+=this.getRadio("mn6_assembly","mn6_assemblyYes","Biological Assembly",!0,1,2),t+=this.getRadio("mn6_assembly","mn6_assemblyNo","Asymmetric Unit",void 0,1,2)):(t+=this.getRadio("mn6_assembly","mn6_assemblyYes","Biological Assembly",void 0,1,2),t+=this.getRadio("mn6_assembly","mn6_assemblyNo","Asymmetric Unit",!0,1,2)),t+="
      ",t+=""),t+=this.getMenuText("mn6_symmetrywrap","Symmetry",void 0,void 0,1),t+="
        ",s&&(t+=this.getLink("mn6_symmetry","from PDB(precalculated) "+e.htmlCls.wifiStr,void 0,2)),t+=this.getLink("mn6_symd","from SymD(Dynamic) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn6_clear_sym","Clear SymD Symmetry",void 0,2),t+=this.getLink("mn6_axes_only","Show Axes Only",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn6_igrefwrap","Ref. Number",void 0,void 0,1),t+="
        ",t+=this.getLink("mn6_igrefYes","Show Ig for Selection",void 0,2),t+=this.getLink("mn6_igrefTpl","Ig w/ Specified Template",void 0,2),t+=this.getLink("mn6_alignrefTpl","Align w/ Specified Template",void 0,2),t+=this.getLink("mn6_igrefNo","Reset Ig Ref. Number",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn6_customref","Custom Ref. Number",void 0,2),t+="
      ",t+="",t+=this.getMenuSep()}return t+=this.getLink("mn6_yournote","Window Title",void 0,1),void 0!==e.cfg.cid?(t+=this.getMenuText("mn1_linkwrap","Links",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_link_structure","Compound Summary "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_vast","Similar Compounds "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_bind","Structures Bound "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=""):(t+=this.getMenuText("mn1_linkwrap","Links",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_link_structure","Structure Summary "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_vast","Similar Structures "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_pubmed","Literature "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_protein","Protein "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=""),t+="

    • ",t+="
    ",t}setMenu6(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Help

    ",t+="
    ",t+=this.setMenu6_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu6_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuUrl("abouticn3d",e.htmlCls.baseUrl+"icn3d/icn3d.html#about","About iCn3D "+e.REVISION+"",1,1),t+=this.getMenuUrl("gallery",e.htmlCls.baseUrl+"icn3d/icn3d.html#gallery","Live Gallery "+e.htmlCls.wifiStr,1,1),t+=this.getMenuUrl("video",e.htmlCls.baseUrl+"icn3d/icn3d.html#videos","Videos & Tutorials",1,1),t+=this.getMenuText("mn6_faq","FAQ",void 0,1,1),t+="
        ",t+=this.getMenuUrl("faq_viewstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#viewstru","View structure",1,2),t+=this.getMenuUrl("faq_tfstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#tfstru","Transform Structure",1,2),t+=this.getMenuUrl("faq_selsubset",e.htmlCls.baseUrl+"icn3d/icn3d.html#selsubset","Select Subsets",1,2),t+=this.getMenuUrl("faq_stylecolor",e.htmlCls.baseUrl+"icn3d/icn3d.html#changestylecolor","Change Style/Color",1,2),t+=this.getMenuUrl("faq_savework",e.htmlCls.baseUrl+"icn3d/icn3d.html#saveview","Save Work",1,2),t+=this.getMenuUrl("faq_showanno",e.htmlCls.baseUrl+"icn3d/icn3d.html#showanno","Show Annotations",1,2),t+=this.getMenuUrl("faq_exportanno",e.htmlCls.baseUrl+"icn3d/icn3d.html#exportanno","Export Annotations",1,2),t+=this.getMenuUrl("faq_interanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#interanalysis","Interaction Analysis",1,2),t+=this.getMenuUrl("faq_mutanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#mutationanalysis","Mutation Analysis",1,2),t+=this.getMenuUrl("faq_elecpot",e.htmlCls.baseUrl+"icn3d/icn3d.html#elecpot","Electrostatic Pot.",1,2),t+=this.getMenuUrl("faq_simipdb",e.htmlCls.baseUrl+"icn3d/icn3d.html#simivast","Similar PDB",1,2),t+=this.getMenuUrl("faq_simialphapdb",e.htmlCls.baseUrl+"icn3d/icn3d.html#simifoldseek","Similar AlphaFold/PDB",1,2),t+=this.getMenuUrl("faq_alnstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#alignmul","Align Multiple Structures",1,2),t+=this.getMenuUrl("faq_batchanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#batchanalysis","Batch Analysis",1,2),t+=this.getMenuUrl("faq_batchanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#igrefnum","Assign Ig Ref. Numbers",1,2),t+=this.getMenuUrl("faq_embedicn3d",e.htmlCls.baseUrl+"icn3d/icn3d.html#embedicn3d","Embed iCn3D",1,2),t+="
      ",t+="",t+=this.getMenuUrl("citing",e.htmlCls.baseUrl+"icn3d/icn3d.html#citing","Citing iCn3D",void 0,1),t+=this.getMenuText("mn6_source","Source Code",void 0,1,1),t+="
        ",t+=this.getMenuUrl("github","https://github.com/ncbi/icn3d","GitHub (browser) "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("npm","https://www.npmjs.com/package/icn3d","npm (Node.js) "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("notebook","https://pypi.org/project/icn3dpy","Jupyter Notebook "+e.htmlCls.wifiStr,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_develop","Develop",void 0,void 0,1),t+="
        ",t+=this.getMenuUrl("dev_embedicn3d2",e.htmlCls.baseUrl+"icn3d/icn3d.html#HowToUse","Embed iCn3D",void 0,2),t+=this.getMenuUrl("dev_urlpara",e.htmlCls.baseUrl+"icn3d/icn3d.html#parameters","URL Parameters",void 0,2),t+=this.getMenuUrl("dev_command",e.htmlCls.baseUrl+"icn3d/icn3d.html#commands","Commands",void 0,2),t+=this.getMenuUrl("dev_datastru",e.htmlCls.baseUrl+"icn3d/icn3d.html#datastructure","Data Structure",void 0,2),t+=this.getMenuUrl("dev_classstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#classstructure","Class Structure",void 0,2),t+=this.getMenuUrl("dev_addclass",e.htmlCls.baseUrl+"icn3d/icn3d.html#addclass","Add New Classes",void 0,2),t+=this.getMenuUrl("dev_modfunc",e.htmlCls.baseUrl+"icn3d/icn3d.html#modifyfunction","Modify Functions",void 0,2),t+=this.getMenuUrl("dev_restful",e.htmlCls.baseUrl+"icn3d/icn3d.html#restfulapi","RESTful APIs",void 0,2),t+=this.getMenuUrl("dev_contributor",e.htmlCls.baseUrl+"icn3d/icn3d.html#contributors","iCn3D Contributors",void 0,2),t+="
      ",t+="",t+=this.getMenuUrl("helpdoc",e.htmlCls.baseUrl+"icn3d/docs/icn3d_help.html","Help Doc "+e.htmlCls.wifiStr,1,1),t+=this.getMenuSep(),t+=this.getMenuText("mn6_tfhint","Transform Hints",void 0,1,1),t+="
        ",t+=this.getMenuText("mn6_rotate","Rotate",void 0,1,2),t+="
          ",t+="
        • Left Mouse (Click & Drag)
        • ",t+="
        • Key l: Left
        • ",t+="
        • Key j: Right
        • ",t+="
        • Key i: Up
        • ",t+="
        • Key m: Down
        • ",t+="
        • Shift + Key l: Left 90°
        • ",t+="
        • Shift + Key j: Right 90°
        • ",t+="
        • Shift + Key i: Up 90°
        • ",t+="
        • Shift + Key m: Down 90°
        • ",t+="
        ",t+="",t+=this.getMenuText("mn6_zoom","Zoom",void 0,1,2),t+="
          ",t+="
        • Middle Mouse
          (Pinch & Spread)
        • ",t+="
        • Key z: Zoom in
        • ",t+="
        • Key x: Zoom out
        • ",t+="
        ",t+="",t+=this.getMenuText("mn6_translate","Translate",void 0,1,2),t+="
          ",t+="
        • Right Mouse
          (Two Finger Click & Drag)
        • ",t+="
        ",t+="",t+="
      ",t+="",t+=this.getMenuUrl("selhints",e.htmlCls.baseUrl+"icn3d/icn3d.html#selsubset","Selection Hints",void 0,1),t+=this.getMenuUrl("helpdesk","https://support.nlm.nih.gov/support/create-case/","Write to Help Desk",1,1),t+="

    • ",t+="
    ",t}hideMenu(){let e=this.icn3dui;e.bNode||(void 0!==$("#"+e.pre+"mnlist")[0]&&($("#"+e.pre+"mnlist")[0].style.display="none"),void 0!==$("#"+e.pre+"mnLogSection")[0]&&($("#"+e.pre+"mnLogSection")[0].style.display="none"),void 0!==$("#"+e.pre+"cmdlog")[0]&&($("#"+e.pre+"cmdlog")[0].style.display="none"),$("#"+e.pre+"title")[0].style.margin="10px 0 0 10px")}showMenu(){let e=this.icn3dui;e.bNode||(void 0!==$("#"+e.pre+"mnlist")[0]&&($("#"+e.pre+"mnlist")[0].style.display="block"),void 0!==$("#"+e.pre+"mnLogSection")[0]&&($("#"+e.pre+"mnLogSection")[0].style.display="block"),void 0!==$("#"+e.pre+"cmdlog")[0]&&($("#"+e.pre+"cmdlog")[0].style.display="block"))}}class c{constructor(e){this.icn3dui=e}openDlg(e,t){let s=this.icn3dui;s.icn3d,s.bNode||(e=s.pre+e,s.cfg.notebook?this.openDlgNotebook(e,t):this.openDlgRegular(e,t),s.htmlCls.themecolor||(s.htmlCls.themecolor="blue"),s.htmlCls.setMenuCls.setTheme(s.htmlCls.themecolor))}addSaveButton(e){let t=this.icn3dui;t.icn3d,t.bNode||void 0!==this.dialogHashSave&&this.dialogHashSave.hasOwnProperty(e)||($("#"+e).parent().children(".ui-dialog-titlebar").append("
    "),void 0===this.dialogHashSave&&(this.dialogHashSave={}),this.dialogHashSave[e]=1)}addHideButton(e){let t=this.icn3dui;t.icn3d,t.bNode||void 0!==this.dialogHashHide&&this.dialogHashHide.hasOwnProperty(e)||($("#"+e).parent().children(".ui-dialog-titlebar").append("
    "),void 0===this.dialogHashHide&&(this.dialogHashHide={}),this.dialogHashHide[e]=1)}getDialogStatus(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t={},s={},i=$("#"+e.pre+"dl_selectannotations").hasClass("ui-dialog-content"),n=$("#"+e.pre+"dl_graph").hasClass("ui-dialog-content"),l=$("#"+e.pre+"dl_linegraph").hasClass("ui-dialog-content"),r=$("#"+e.pre+"dl_scatterplot").hasClass("ui-dialog-content"),o=$("#"+e.pre+"dl_ligplot").hasClass("ui-dialog-content"),a=$("#"+e.pre+"dl_contactmap").hasClass("ui-dialog-content"),d=$("#"+e.pre+"dl_alignerrormap").hasClass("ui-dialog-content"),c=$("#"+e.pre+"dl_interactionsorted").hasClass("ui-dialog-content"),h=$("#"+e.pre+"dl_alignment").hasClass("ui-dialog-content"),p=$("#"+e.pre+"dl_2ddgm").hasClass("ui-dialog-content"),m=$("#"+e.pre+"dl_2dctn").hasClass("ui-dialog-content"),u=$("#"+e.pre+"dl_definedsets").hasClass("ui-dialog-content");return t.bSelectannotationsInit2=!1,t.bGraph2=!1,t.bLineGraph2=!1,t.bScatterplot2=!1,t.bLigplot2=!1,t.bTable2=!1,t.bAlignmentInit2=!1,t.bTwoddgmInit2=!1,t.bTwodctnInit2=!1,t.bSetsInit2=!1,s.dl_selectannotations="bSelectannotationsInit2",s.dl_graph="bGraph2",s.dl_linegraph="bLineGraph2",s.dl_scatterplot="bScatterplot2",s.dl_ligplot="bLigplot2",s.dl_contactmap="bContactmap2",s.dl_alignerrormap="bAlignerrormap2",s.dl_interactionsorted="bTable2",s.dl_alignment="bAlignmentInit2",s.dl_2ddgm="bTwoddgmInit2",s.dl_2dctn="bTwodctnInit2",s.dl_definedsets="bSetsInit2",i&&(t.bSelectannotationsInit2=$("#"+e.pre+"dl_selectannotations").dialog("isOpen")),n&&(t.bGraph2=$("#"+e.pre+"dl_graph").dialog("isOpen")),l&&(t.bLineGraph2=$("#"+e.pre+"dl_linegraph").dialog("isOpen")),r&&(t.bScatterplot2=$("#"+e.pre+"dl_scatterplot").dialog("isOpen")),o&&(t.bLigplot2=$("#"+e.pre+"dl_ligplot").dialog("isOpen")),a&&(t.bContactmap2=$("#"+e.pre+"dl_contactmap").dialog("isOpen")),d&&(t.bAlignerror2=$("#"+e.pre+"dl_alignerrormap").dialog("isOpen")),c&&(t.bTable2=$("#"+e.pre+"dl_interactionsorted").dialog("isOpen")),h&&(t.bAlignmentInit2=$("#"+e.pre+"dl_alignment").dialog("isOpen")),p&&(t.bTwoddgmInit2=$("#"+e.pre+"dl_2ddgm").dialog("isOpen")),m&&(t.bTwodctnInit2=$("#"+e.pre+"dl_2dctn").dialog("isOpen")),u&&(t.bSetsInit2=$("#"+e.pre+"dl_definedsets").dialog("isOpen")),{status:t,id2flag:s}}openDlgHalfWindow(e,t,s,i){let n=this.icn3dui,l=n.icn3d;if(n.bNode)return;let r=this,o=n.htmlCls.width2d+20;l.resizeCanvasCls.resizeCanvas(n.htmlCls.WIDTH-s,n.htmlCls.HEIGHT,i);let a,d=n.htmlCls.HEIGHT,c=s;a=!n.cfg.showmenu||n.utilsCls.isMobile()||n.cfg.mobilemenu?{my:"left top",at:"right top",of:"#"+n.pre+"viewer",collision:"none"}:{my:"left top",at:"right top+40",of:"#"+n.pre+"viewer",collision:"none"},n.cfg.resize=!1,window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:d,width:c,modal:!1,position:a,close:function(t){let s=r.getDialogStatus(),i=s.status,a=s.id2flag,d=!1;for(let t in a){let s=e===n.pre+t;for(let e in i)i.hasOwnProperty(e)||(s=s&&!i[e]);d=d||s}if(d)if(i.bTwoddgmInit2||i.bTwodctnInit2||i.bSetsInit2){let e=n.utilsCls.isMobile()?n.htmlCls.WIDTH:n.htmlCls.WIDTH-o;l.resizeCanvasCls.resizeCanvas(e,n.htmlCls.HEIGHT,!0),i.bTwoddgmInit2&&r.openDlg2Ddgm(n.pre+"dl_2ddgm",void 0,i.bSetsInit2),i.bTwodctnInit2&&r.openDlg2Ddgm(n.pre+"dl_2dctn",void 0,i.bSetsInit2),i.bSetsInit2&&r.openDlg2Ddgm(n.pre+"dl_definedsets")}else l.resizeCanvasCls.resizeCanvas(n.htmlCls.WIDTH,n.htmlCls.HEIGHT,!0)},resize:function(t){if(e==n.pre+"dl_selectannotations")l.annotationCls.hideFixedTitle();else if(e==n.pre+"dl_graph"){let t=$("#"+e).width(),s=$("#"+e).height();d3.select("#"+n.svgid).attr("width",t).attr("height",s)}else if(e==n.pre+"dl_linegraph"||e==n.pre+"dl_scatterplot"||e==n.pre+"dl_ligplot"||e==n.pre+"dl_contactmap"||e==n.pre+"dl_alignerrormap"){let t=status.bTwoddgmInit2||status.bSetsInit2?(n.htmlCls.WIDTH-o)/2:n.htmlCls.WIDTH/2,s=$("#"+e).width()/t;if(e==n.pre+"dl_linegraph"){let e=l.linegraphWidth*s;$("#"+n.linegraphid).attr("width",e)}else if(e==n.pre+"dl_scatterplot"){let e=l.scatterplotWidth*s;$("#"+n.scatterplotid).attr("width",e)}else if(e==n.pre+"dl_ligplot"){let e=l.ligplotWidth*s;$("#"+n.ligplotid).attr("width",e)}else if(e==n.pre+"dl_ligplot"){let e=l.ligplotWidth*s;$("#"+n.ligplotid).attr("width",e)}else if(e==n.pre+"dl_contactmap"){let e=l.contactmapWidth*s;$("#"+n.contactmapid).attr("width",e)}else if(e==n.pre+"dl_alignerrormap"){let e=l.alignerrormapWidth*s;$("#"+n.alignerrormapid).attr("width",e)}}}}),this.addSaveButton(e),this.addHideButton(e)}openDlg2Ddgm(e,t,s){let i=this.icn3dui,n=i.icn3d;if(i.bNode)return;let l,r,o=this,a=i.htmlCls.width2d+20;e===i.pre+"dl_definedsets"?(l="right top",r="Select sets"):e!==i.pre+"dl_2ddgm"&&e!==i.pre+"dl_2dctn"||(l=s?"right top+240":"right top",r=e===i.pre+"dl_2ddgm"?"2D Diagram":"2D Cartoon");let d={my:"left top+"+i.htmlCls.MENU_HEIGHT,at:l,of:"#"+i.pre+"viewer",collision:"none"};window.dialog=$("#"+e).dialog({autoOpen:!0,title:r,height:"auto",width:a,modal:!1,position:d,close:function(e){let t=o.getDialogStatus().status;t.bSelectannotationsInit2||t.bGraph2||t.bLineGraph2||t.bScatterplot2||t.bLigplot2||t.bTable2||t.bAlignmentInit2||n.resizeCanvasCls.resizeCanvas(i.htmlCls.WIDTH,i.htmlCls.HEIGHT,!0)},resize:function(t,s){e==i.pre+"dl_2dctn"&&(n.resizeRatioX=s.size.width/i.htmlCls.width2d,n.resizeRatioY=s.size.height/(i.htmlCls.width2d+70))},resizeStop:function(e,t){n.resizeRatioX=t.size.width/i.htmlCls.width2d,n.resizeRatioY=t.size.height/(i.htmlCls.width2d+70)}}),this.addSaveButton(e),this.addHideButton(e)}openDlgRegular(e,t){let s=this.icn3dui,i=s.icn3d;if(s.bNode)return;let n=400,l=150,r=s.htmlCls.width2d+20,o=this.getDialogStatus().status;if(e===s.pre+"dl_selectannotations"||e===s.pre+"dl_graph"||e===s.pre+"dl_linegraph"||e===s.pre+"dl_scatterplot"||e===s.pre+"dl_ligplot"||e===s.pre+"dl_contactmap"||e===s.pre+"dl_alignerrormap"||e===s.pre+"dl_interactionsorted"||e===s.pre+"dl_alignment"){let a=.5*s.htmlCls.WIDTH-.5*r;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)this.openDlgHalfWindow(e,t,a,!0),(o.bTwoddgmInit2||o.bTwodctnInit2||o.bSetsInit2)&&(i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-a-r,s.htmlCls.HEIGHT,!0),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,o.bSetsInit2),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,o.bSetsInit2),o.bSetsInit2&&this.openDlg2Ddgm(s.pre+"dl_definedsets"));else{i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH,.5*s.htmlCls.HEIGHT,!0),l=.5*s.htmlCls.HEIGHT,n=s.htmlCls.WIDTH;let a={my:"left top",at:"left bottom+32",of:"#"+s.pre+"canvas",collision:"none"};window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:l,width:n,modal:!1,position:a,close:function(t){if(!((e!==s.pre+"dl_selectannotations"||o.bAlignmentInit2||o.bGraph2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_graph"||o.bSelectannotationsInit2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_alignment"||o.bSelectannotationsInit2||o.bGraph2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_interactionsorted"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_linegraph"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_scatterplot"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_ligplot"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_contactmap"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bAlignerrormap2)&&(e!==s.pre+"dl_alignerrormap"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2)))if(o.bTwoddgmInit2||o.bTwodctnInit2||o.bSetsInit2){let e=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(e,s.htmlCls.HEIGHT,!0),o.bTwoddgmInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,o.bSetsInit2),o.bTwodctnInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,o.bSetsInit2),o.bSetsInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_definedsets")}else i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH,s.htmlCls.HEIGHT,!0)},resize:function(t){if(e==s.pre+"dl_selectannotations")i.annotationCls.hideFixedTitle();else if(e==s.pre+"dl_graph"){let t=$("#"+e).width(),i=$("#"+e).height();d3.select("#"+s.svgid).attr("width",t).attr("height",i)}else if(e==s.pre+"dl_linegraph"||e==s.pre+"dl_scatterplot"||e==s.pre+"dl_ligplot"||e==s.pre+"dl_contactmap"||e==s.pre+"dl_alignerrormap"){let t=o.bTwoddgmInit2||o.bSetsInit2?(s.htmlCls.WIDTH-r)/2:s.htmlCls.WIDTH/2,n=$("#"+e).width()/t;if(e==s.pre+"dl_linegraph"){let e=i.linegraphWidth*n;$("#"+s.linegraphid).attr("width",e)}else if(e==s.pre+"dl_scatterplot"){let e=i.scatterplotWidth*n;$("#"+s.scatterplotid).attr("width",e)}else if(e==s.pre+"dl_ligplot"){let e=i.ligplotWidth*n;$("#"+s.ligplotid).attr("width",e)}else if(e==s.pre+"dl_contactmap"){let e=i.contactmapWidth*n;$("#"+s.contactmapid).attr("width",e)}else if(e==s.pre+"dl_alignerrormap"){let e=i.alignerrormapWidth*n;$("#"+s.alignerrormapid).attr("width",e)}}}}),this.addSaveButton(e),this.addHideButton(e)}}else if(e===s.pre+"dl_2ddgm"||e===s.pre+"dl_2dctn"){let t=0;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)(o.bSelectannotationsInit2||o.bGraph2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bTable2||o.bAlignmentInit2)&&(t=.5*s.htmlCls.WIDTH-.5*r),i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-t-r,s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,void 0,o.bSetsInit2);else{let t=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(t,.5*s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT,o.bSetsInit2)}}else{let a;if(l="auto",n="auto",e===s.pre+"dl_addtrack"?n="50%":e===s.pre+"dl_menupref"&&(n=600,l=500),e===s.pre+"dl_definedsets"){let t=0;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)(o.bSelectannotationsInit2||o.bGraph2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bTable2||o.bAlignmentInit2)&&(t=.5*s.htmlCls.WIDTH-.5*r),i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-t-r,s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,!0),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,!0);else{let t=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(t,.5*s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",.5*s.htmlCls.HEIGHT,!0),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",.5*s.htmlCls.HEIGHT,!0)}}else s.utilsCls.isMobile()?a={my:"left top",at:"left bottom-50",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_allinteraction"||e===s.pre+"dl_buriedarea"?(a={my:"right top",at:"right top+50",of:"#"+i.divid,collision:"none"},n=700,l=500):a=e===s.pre+"dl_rmsd"||e===s.pre+"dl_legend"?{my:"left bottom",at:"left+20 bottom-20",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_symd"?{my:"left top",at:"right-200 bottom-200",of:"#"+s.pre+"canvas",collision:"none"}:s.cfg.align?{my:"left top",at:"left top+90",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_mmdbafid"?{my:"left top",at:"left top+130",of:"#"+s.pre+"canvas",collision:"none"}:{my:"left top",at:"left top+50",of:"#"+s.pre+"canvas",collision:"none"},window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:l,width:n,modal:!1,position:a}),this.addSaveButton(e),this.addHideButton(e)}$(".ui-dialog .ui-button span").removeClass("ui-icon-closethick").addClass("ui-icon-close")}openDlgNotebook(e,t){let s=this.icn3dui,i=s.icn3d;if(s.bNode)return;let n=400,l=150,r=s.htmlCls.width2d+20;e===s.pre+"dl_selectannotations"||e===s.pre+"dl_graph"||e===s.pre+"dl_linegraph"||e===s.pre+"dl_scatterplot"||e===s.pre+"dl_ligplot"||e===s.pre+"dl_contactmap"||e===s.pre+"dl_alignerrormap"||e===s.pre+"dl_interactionsorted"||e===s.pre+"dl_alignment"?($("#"+e).show(),$("#"+e+"_nb").show(),$("#"+e+"_title").html(t),l=.5*s.htmlCls.HEIGHT,n=s.htmlCls.WIDTH,$("#"+e).width(n),$("#"+e).height(l),$("#"+e).resize((function(t){let n=s.htmlCls.WIDTH/2,l=$("#"+e).width()/n;if(e==s.pre+"dl_selectannotations")i.annotationCls.hideFixedTitle();else if(e==s.pre+"dl_graph"){let t=$("#"+e).width(),i=$("#"+e).height();d3.select("#"+s.svgid).attr("width",t).attr("height",i)}else if(e==s.pre+"dl_linegraph"){let e=i.linegraphWidth*l;$("#"+s.linegraphid).attr("width",e)}else if(e==s.pre+"dl_scatterplot"){let e=i.scatterplotWidth*l;$("#"+s.scatterplotid).attr("width",e)}else if(e==s.pre+"dl_ligplot"){let e=i.ligplotWidth*l;$("#"+s.ligplotid).attr("width",e)}else if(e==s.pre+"dl_contactmap"){let e=i.contactmapWidth*l;$("#"+s.contactmapid).attr("width",e)}else if(e==s.pre+"dl_alignerrormap"){let e=i.alignerrormapWidth*l;$("#"+s.alignerrormapid).attr("width",e)}}))):(i.bRender&&($("#"+e).show(),$("#"+e+"_nb").show(),$("#"+e+"_title").html(t)),l="auto",n="auto",e===s.pre+"dl_addtrack"?n="50%":e===s.pre+"dl_2ddgm"||e===s.pre+"dl_2dctn"||e===s.pre+"dl_definedsets"?n=r:e!==s.pre+"dl_allinteraction"&&e!==s.pre+"dl_buriedarea"||(n=700,l=500),$("#"+e).width(n),$("#"+e).height(l))}}class h{constructor(e){this.icn3dui=e}setCustomDialogs(){let e=this.icn3dui;if(e.icn3d,e.bNode)return"";return""}getHtmlAlignResidueByResidue(e,t,s){let i=this.icn3dui;i.icn3d;let n="";return n+="All chains will be aligned to the first chain in the comma-separated chain IDs. Each chain ID has the form of PDBID_chain (e.g., 1HHO_A, case sensitive) or UniprotID (e.g., P69905 for AlphaFold structures).

    ",n+="Chain IDs: "+i.htmlCls.inputTextStr+"id='"+i.pre+e+"' value='P69905,P01942,1HHO_A' size=50>

    ",n+='Each alignment is defined as " | "-separated residue lists in one line. "10-50" means a range of residues from 10 to 50.

    ",n+=i.htmlCls.buttonStr+s+"'>Align Residue by Residue
    ",n}addNotebookTitle(e,t,s){let i=this.icn3dui;i.icn3d;let n='';return s&&(n+='
    '),n}setDialogs(){let e=this.icn3dui,t=e.icn3d;if(e.bNode)return"";let s="";e.htmlCls.optionStr="";for(let l=0,r=t[n].length;l"+r+", Strands: "+s[r]+""}i+=""}return i}getAnnoHeader(){let e=this.icn3dui;e.icn3d;let t="";t+="
    Annotations: 
    ",t+="
    ";let s="",t+=i+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_cdd' checked>Conserved Domains"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_clinvar'>ClinVar"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_binding'>Functional Sites"+e.htmlCls.space2+"",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_custom'>Custom"+e.htmlCls.space2+"",t+=i+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_3dd'>3D Domains"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_snp'>SNPs"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ptm'>PTM (UniProt)"+e.htmlCls.space2+"",t+="",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ssbond'>Disulfide Bonds"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_interact'>Interactions"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_crosslink'>Cross-Linkages"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_transmem'>Transmembrane"+e.htmlCls.space2+"",t+="",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ig'>Ig Domains"+e.htmlCls.space2+"",t+="",t+="
    ",i="";return t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_all'>All"+e.htmlCls.space2+"
    ",t}}class p{constructor(e){this.icn3dui=e}setLogCmd(e,t,s){var i=this.icn3dui;i.icn3d,i.htmlCls.clickMenuCls.setLogCmd(e,t,s)}fullScreenChange(){let e=this.icn3dui,t=e.icn3d,s=this;e.bNode||document.fullscreenElement||document.webkitFullscreenElement||document.mozFullscreenElement||document.msFullscreenElement||(s.setLogCmd("exit full screen",!1),t.bFullscreen=!1,e.utilsCls.setViewerWidthHeight(e,!0),t.applyCenterCls.setWidthHeight(e.htmlCls.WIDTH,e.htmlCls.HEIGHT),t.drawCls.draw())}convertUniProtInChains(e){this.icn3dui.icn3d;let t=e.split(","),s="";for(let e=0,i=t.length;e0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(l)),s.cfg.aligntool=e;let r="vast"==e?"structure align":"tmalign";if(r+=t?" msa":"",l.length>0?n.setLogCmd("realign on "+r+" | "+l,!0):n.setLogCmd("realign on "+r,!0),t){if(0==l.length){l=[];let e={};for(let t in i.chains){let s=i.firstAtomObjCls.getFirstAtomObj(i.chains[t]);e.hasOwnProperty(s.structure)||!i.proteins.hasOwnProperty(s.serial)&&!i.nucleotides.hasOwnProperty(s.serial)||(l.push(t),e[s.structure]=1)}}await i.realignParserCls.realignOnStructAlignMsa(l)}else await i.realignParserCls.realignOnStructAlign()}async readFile(e,t,s,i,n,l){let r=this.icn3dui,o=r.icn3d,a=this,d=t[s],c=e?"append":"load";c+=n?" mmcif file ":l?" png file ":" pdb file ";let h=new FileReader;h.onload=async function(h){let p=h.target.result;if(a.setLogCmd(c+d.name,!1),e?(o.resetConfig(),o.bResetAnno=!0,o.bResetSets=!0):o.init(),o.bInputfile=!0,o.InputfileType=n?"mmcif":l?"png":"pdb",l){let e=await r.htmlCls.setHtmlCls.loadPng(p);if(p=e.pdb,!p)return;o.statefileArray||(o.statefileArray=[]),o.statefileArray.push(e.statefile)}o.InputfileData=o.InputfileData?o.InputfileData+"\nENDMDL\n"+p:p,i=s>0?i+"\nENDMDL\n"+p:p,Object.keys(t).length==s+1?(e&&(o.hAtoms={},o.dAtoms={}),n?await o.mmcifParserCls.loadMultipleMmcifData(i,void 0,e):await o.pdbParserCls.loadPdbData(i,void 0,void 0,e)):await a.readFile(e,t,s+1,i,n,l),e&&(o.bSetChainsAdvancedMenu&&o.definedSetsCls.showSets(),o.bResetAnno=!0,o.bAnnoShown&&(await o.showAnnoCls.showAnnotations(),o.annotationCls.resetAnnoTabAll()))},"object"==typeof d&&h.readAsText(d)}async loadPdbFile(e,t,s){let i=this.icn3dui,n=i.icn3d;n.bInitial=!0,i.cfg.notebook||dialog.dialog("close"),i.cfg.notebook?n.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let l=$("#"+i.pre+t)[0].files;l[0]?(i.htmlCls.setHtmlCls.fileSupport(),n.molTitle="",n.dataStrAll="",await this.readFile(e,l,0,"",s)):alert("Please select a file before clicking 'Load'")}saveHtml(e){let t=this.icn3dui.icn3d,s="";s+='\n',s+='\n',s+=$("#"+e).html();let i=e.split("_"),n=i.length>2?i[2]:e,l=Object.keys(t.structures)[0];Object.keys(t.structures).length>1&&(l+="-"+Object.keys(t.structures)[1]),t.saveFileCls.saveFile(l+"-"+n+".html","html",encodeURIComponent(s))}setPredefinedMenu(e){let t=this.icn3dui,s=t.icn3d;if(Object.keys(s.chains).length<2)return void alert("At least two chains are required for alignment...");t.htmlCls.clickMenuCls.SetChainsAdvancedMenu();let i=s.definedSetsCls.setAtomMenu(["protein"]);$("#"+t.pre+e).length&&$("#"+t.pre+e).html(i),$("#"+t.pre+e).resizable()}async launchMmdb(e,t,s,i){let n=this.icn3dui,l=n.icn3d,r=this;n.cfg.notebook||dialog.dialog("close");let o=t?1:0;if(!(e=e.replace(/,/g," ").replace(/\s+/g,",").trim()))return void alert("Please enter a list of PDB IDs or AlphaFold UniProt IDs...");let a=e.split(",");if(i)if(l.structures||1!=a.length||4!=a[0].length&&isNaN(a[0])){n.cfg.mmdbafid=e,n.cfg.bu=o,l.bMmdbafid=!0,l.inputid=l.inputid?l.inputid+n.cfg.mmdbafid:n.cfg.mmdbafid,1==n.cfg.bu?l.loadCmd="load mmdbaf1 "+n.cfg.mmdbafid:l.loadCmd="load mmdbaf0 "+n.cfg.mmdbafid,n.htmlCls.clickMenuCls.setLogCmd(l.loadCmd,!0);let t=!!(l.structures&&Object.keys(l.structures).length>0);await l.chainalignParserCls.downloadMmdbAf(n.cfg.mmdbafid),t&&(l.bSetChainsAdvancedMenu&&l.definedSetsCls.showSets(),l.bAnnoShown&&(await l.showAnnoCls.showAnnotations(),l.annotationCls.resetAnnoTabAll()))}else{r.setLogCmd("load mmdb"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbid="+e+"&bu="+o,t)}else if(1!=a.length||4!=a[0].length&&isNaN(a[0])){r.setLogCmd("load mmdbaf"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbafid="+e+"&bu="+o,t)}else{r.setLogCmd("load mmdb"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbid="+e+"&bu="+o,t)}}allEventFunctions(){let e=this.icn3dui,t=e.icn3d,s=this;if(e.bNode)return;let i=document.URL,n=i.indexOf("?");i=-1==n?i:i.substr(0,n),i.indexOf("/vast/icn3d/")&&(i=i.replace(/\/vast\/icn3d\//g,"/icn3d/")),t.definedSetsCls.clickCustomAtoms(),t.definedSetsCls.clickCommand_apply(),t.definedSetsCls.clickModeswitch(),t.selectionCls.clickShow_selected(),t.selectionCls.clickHide_selected(),t.diagram2dCls.click2Ddgm(),t.cartoon2dCls.click2Dcartoon(),t.ligplotCls.clickLigplot(),t.addTrackCls.clickAddTrackButton(),t.resizeCanvasCls.windowResize(),t.annotationCls.setTabs(),t.resid2specCls.switchHighlightLevel(),e.utilsCls.isMobile()?(t.hlSeqCls.selectSequenceMobile(),t.hlSeqCls.selectChainMobile()):t.hlSeqCls.selectSequenceNonMobile(),e.htmlCls.clickMenuCls.clickMenu1(),e.htmlCls.clickMenuCls.clickMenu2(),e.htmlCls.clickMenuCls.clickMenu3(),e.htmlCls.clickMenuCls.clickMenu4(),e.htmlCls.clickMenuCls.clickMenu5(),e.htmlCls.clickMenuCls.clickMenu6(),e.myEventCls.onIds(["#"+e.pre+"back","#"+e.pre+"mn6_back"],"click",(async function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("back",!1),await i.resizeCanvasCls.back()})),e.myEventCls.onIds(["#"+e.pre+"forward","#"+e.pre+"mn6_forward"],"click",(async function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("forward",!1),await i.resizeCanvasCls.forward()})),e.myEventCls.onIds(["#"+e.pre+"fullscreen","#"+e.pre+"mn6_fullscreen"],"click",(function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("enter full screen",!1),i.bFullscreen=!0,e.htmlCls.WIDTH=$(window).width(),e.htmlCls.HEIGHT=$(window).height(),i.applyCenterCls.setWidthHeight(e.htmlCls.WIDTH,e.htmlCls.HEIGHT),i.drawCls.draw(),i.resizeCanvasCls.openFullscreen($("#"+e.pre+"canvas")[0])})),document.addEventListener("fullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("webkitfullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("mozfullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("msfullscreenchange",this.fullScreenChange.bind(this)),e.myEventCls.onIds(["#"+e.pre+"toggle","#"+e.pre+"mn2_toggle"],"click",(function(t){e.icn3d.selectionCls.toggleSelection(),s.setLogCmd("toggle selection",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrYellow","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color yellow",!0),i.hColor=e.parasCls.thr(16776960),i.matShader=i.setColorCls.setOutlineColor("yellow"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrGreen","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color green",!0),i.hColor=e.parasCls.thr(65280),i.matShader=i.setColorCls.setOutlineColor("green"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrRed","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color red",!0),i.hColor=e.parasCls.thr(16711680),i.matShader=i.setColorCls.setOutlineColor("red"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleOutline","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight style outline",!0),i.bHighlight=1,i.hlUpdateCls.showHighlight()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleObject","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight style 3d",!0),i.bHighlight=2,i.hlUpdateCls.showHighlight()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleNone","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds(["#"+e.pre+"alternate","#"+e.pre+"mn2_alternate","#"+e.pre+"alternate2"],"click",(async function(t){let i=e.icn3d;i.bAlternate=!0,await i.alternateCls.alternateStructures(),i.bAlternate=!1,s.setLogCmd("alternate structures",!1)})),e.myEventCls.onIds("#"+e.pre+"mn2_realignresbyres","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_realignresbyres","Align multiple chains residue by residue")})),e.myEventCls.onIds("#"+e.pre+"realignSelection","click",(function(t){let i=e.icn3d;Object.keys(i.chains).length<2?alert("At least two chains are required for alignment..."):(i.realignParserCls.realign(),s.setLogCmd("realign",!0))})),e.myEventCls.onIds("#"+e.pre+"mn2_realignonseqalign","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realign","Please select chains to realign"),s.setPredefinedMenu("atomsCustomRealign")})),e.myEventCls.onIds("#"+e.pre+"mn2_realignonstruct","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realignbystruct","Please select chains to realign"),s.setPredefinedMenu("atomsCustomRealignByStruct")})),e.myEventCls.onIds("#"+e.pre+"mn2_realigntwostru","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realigntwostru","Please select structures to realign"),s.setPredefinedMenu("atomsCustomRealignByStruct2")})),e.myEventCls.onIds("#"+e.pre+"applyRealign","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomRealign").val();n.length>0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(n)),await i.realignParserCls.realignOnSeqAlign(),n.length>0?s.setLogCmd("realign on seq align | "+n,!0):s.setLogCmd("realign on seq align",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("vast",!1)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct_tmalign","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("tmalign",!1)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStructMsa","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("vast",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStructMsa_tmalign","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("tmalign",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct_vastplus","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomRealignByStruct2").val();n.length>0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(n)),await i.vastplusCls.realignOnVastplus(),n.length>0?s.setLogCmd("realign on vastplus | "+n,!0):s.setLogCmd("realign on vastplus",!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorSpectrumAcrossSets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorSpectrumAcross").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorAcrossSets(n,!0),s.setLogCmd("set color spectrum | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorSpectrumBySets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorSpectrum").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorBySets(n,!0),s.setLogCmd("set residues color spectrum | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorRainbowAcrossSets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorRainbowAcross").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorAcrossSets(n,!1),s.setLogCmd("set color rainbow | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorRainbowBySets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorRainbow").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorBySets(n,!1),s.setLogCmd("set residues color rainbow | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"anno_summary","click",(function(t){let i=e.icn3d;t.preventDefault(),i.annotationCls.setAnnoViewAndDisplay("overview"),s.setLogCmd("set view overview",!0)})),e.myEventCls.onIds("#"+e.pre+"anno_details","click",(function(t){let i=e.icn3d;t.preventDefault(),i.annotationCls.setAnnoViewAndDisplay("detailed view"),s.setLogCmd("set view detailed view",!0)})),e.myEventCls.onIds("#"+e.pre+"show_annotations","click",(async function(t){let i=e.icn3d;await i.showAnnoCls.showAnnotations(),s.setLogCmd("view annotations",!0)})),e.myEventCls.onIds("#"+e.pre+"showallchains","click",(function(t){e.icn3d.annotationCls.showAnnoAllChains(),s.setLogCmd("show annotations all chains",!0)})),e.myEventCls.onIds("#"+e.pre+"show_alignsequences","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_alignment","Select residues in aligned sequences")})),e.myEventCls.onIds(["#"+e.pre+"show_2ddgm","#"+e.pre+"mn2_2ddgm"],"click",(async function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_2ddgm","2D Diagram"),await i.viewInterPairsCls.retrieveInteractionData(),s.setLogCmd("view interactions",!0)})),e.myEventCls.onIds("#"+e.pre+"search_seq_button","click",(async function(t){e.icn3d,t.stopImmediatePropagation(),await s.searchSeq()})),e.myEventCls.onIds("#"+e.pre+"search_seq","keyup",(async function(t){e.icn3d,13===t.keyCode&&(t.preventDefault(),await s.searchSeq())})),e.myEventCls.onIds("#"+e.pre+"reload_vastplus","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("vast+ search "+$("#"+e.pre+"vastpluspdbid").val(),!1);let n=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open("https://www.ncbi.nlm.nih.gov/Structure/vastplus/vastplus.cgi?uid="+$("#"+e.pre+"vastpluspdbid").val(),n)})),e.myEventCls.onIds("#"+e.pre+"reload_vast","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("vast search "+$("#"+e.pre+"vastpdbid").val()+"_"+$("#"+e.pre+"vastchainid").val(),!1);let n=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open("https://www.ncbi.nlm.nih.gov/Structure/vast/vastsrv.cgi?pdbid="+$("#"+e.pre+"vastpdbid").val()+"&chain="+$("#"+e.pre+"vastchainid").val(),n)})),e.myEventCls.onIds("#"+e.pre+"reload_foldseek","click",(function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"foldseekchainids").val(),l=s.convertUniProtInChains(n);s.setLogCmd("load chainalignment "+l,!0),window.open(i+"?chainalign="+l+"&aligntool=tmalign&showalignseq=1&bu=0","_self")})),e.myEventCls.onIds("#"+e.pre+"reload_mmtf","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load bcif "+$("#"+e.pre+"mmtfid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?bcifid="+$("#"+e.pre+"mmtfid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"mmtfid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmtf "+$("#"+e.pre+"mmtfid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmtfid="+$("#"+e.pre+"mmtfid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_pdb","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load pdb "+$("#"+e.pre+"pdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?pdbid="+$("#"+e.pre+"pdbid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"translate_pdb","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"translateX").val(),l=$("#"+e.pre+"translateY").val(),r=$("#"+e.pre+"translateZ").val();i.transformCls.translateCoord(i.hAtoms,parseFloat(n),parseFloat(l),parseFloat(r)),i.drawCls.draw(),s.setLogCmd("translate pdb "+n+" "+l+" "+r,!0)})),e.myEventCls.onIds("#"+e.pre+"measure_angle","click",(function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"v1X").val(),n=$("#"+e.pre+"v1Y").val(),l=$("#"+e.pre+"v1Z").val(),r=$("#"+e.pre+"v2X").val(),o=$("#"+e.pre+"v2Y").val(),a=$("#"+e.pre+"v2Z").val(),d=new THREE.Vector3(parseFloat(i),parseFloat(n),parseFloat(l)).angleTo(new THREE.Vector3(parseFloat(r),parseFloat(o),parseFloat(a)))/3.1416*180;d=Math.abs(d).toFixed(0),d>180&&(d-=180),d>90&&(d=180-d),s.setLogCmd("The angle is "+d+" degree",!1),$("#"+e.pre+"angle_value").val(d)})),e.myEventCls.onIds("#"+e.pre+"matrix_pdb","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=[];for(let t=0;t<16;++t)n.push(parseFloat($("#"+e.pre+"matrix"+t).val()));i.transformCls.rotateCoord(i.hAtoms,n),i.drawCls.draw(),s.setLogCmd("rotate pdb "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"pdbid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load pdb "+$("#"+e.pre+"pdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?pdbid="+$("#"+e.pre+"pdbid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_af","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load af "+$("#"+e.pre+"afid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?afid="+$("#"+e.pre+"afid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_afmap","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=e.cfg.afid?e.cfg.afid:$("#"+e.pre+"afid").val();s.setLogCmd("set half pae map "+n,!0),await i.contactMapCls.afErrorMap(n)})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfull","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=e.cfg.afid?e.cfg.afid:$("#"+e.pre+"afid").val();s.setLogCmd("set full pae map "+n,!0),await i.contactMapCls.afErrorMap(n,!0)})),e.myEventCls.onIds("#"+e.pre+"afid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load af "+$("#"+e.pre+"afid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?afid="+$("#"+e.pre+"afid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_opm","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load opm "+$("#"+e.pre+"opmid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?opmid="+$("#"+e.pre+"opmid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"opmid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load opm "+$("#"+e.pre+"opmid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?opmid="+$("#"+e.pre+"opmid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_align_refined","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=1&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=1&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_align_ori","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=0&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=0&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_align_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=2&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=2&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_alignaf","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignafid1").val()+"_A,"+$("#"+e.pre+"alignafid2").val()+"_A";s.setLogCmd("load chains "+l+" | residues | resdef ",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+l+"&resnum=&resdef=&showalignseq=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_alignaf_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignafid1").val()+"_A,"+$("#"+e.pre+"alignafid2").val()+"_A";s.setLogCmd("load chains "+l+" | residues | resdef | align tmalign",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+l+"&aligntool=tmalign&resnum=&resdef=&showalignseq=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids").val(),r=s.convertUniProtInChains(l);s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef ",!1);let o=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum=&resdef=&showalignseq=1&bu=0",o)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym2","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids2").val(),r=s.convertUniProtInChains(l),o=$("#"+e.pre+"resalignids").val();s.setLogCmd("load chains "+r+" on asymmetric unit | residues "+o+" | resdef ",!1);let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum="+o+"&resdef=&showalignseq=1&bu=0",a)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym3","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids3").val(),r=s.convertUniProtInChains(l),o=$("#"+e.pre+"predefinedres").val().trim().replace(/\n/g,": ");if(o&&r.split(",").length-1!=o.split(": ").length)return void alert("Please make sure the number of chains and the lines of predefined residues are the same...");s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef "+o,!1);let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum=&resdef="+o+"&showalignseq=1&bu=0",a)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym4","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"chainalignids4").val(),l=s.convertUniProtInChains(n),r=$("#"+e.pre+"predefinedres2").val().trim().replace(/\n/g,": ");if(r&&l.split(",").length-1!=r.split(": ").length)return void alert("Please make sure the number of chains and the lines of predefined residues are the same...");e.cfg.resdef=r.replace(/:/gi,";");let o=l.split(",");await i.realignParserCls.realignChainOnSeqAlign(void 0,o,!0,!0),s.setLogCmd("realign predefined "+l+" "+r,!0)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids").val(),r=s.convertUniProtInChains(l);s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef | align tmalign",!1);let o=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&aligntool=tmalign&resnum=&resdef=&showalignseq=1&bu=0",o)})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_3d","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o;await n.scapCls.retrieveScap(e),s.setLogCmd("scap 3d "+e,!0),s.setLogCmd("select displayed set",!0)}else{let e=o.substr(0,o.indexOf("_"));s.setLogCmd("3d of mutation "+o,!1);let t=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?"+l+"="+e+"&command=scap 3d "+o+"; select displayed set",t)}})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_pdb","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o,t=!0;await n.scapCls.retrieveScap(e,void 0,t),s.setLogCmd("scap pdb "+e,!0)}else{let e=o.substr(0,o.indexOf("_"));s.setLogCmd("pdb of mutation "+o,!1);let t=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?"+l+"="+e+"&command=scap pdb "+o+"; select displayed set",t)}})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_inter","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o,t=!0;await n.scapCls.retrieveScap(e,t),s.setLogCmd("scap interaction "+e,!0);let i=e.split("_"),l="."+i[1]+":"+i[2],r="snp_"+i[1]+"_"+i[2];s.setLogCmd("select "+l+" | name "+r,!0),s.setLogCmd("line graph interaction pairs | selected non-selected | hbonds,salt bridge,interactions,halogen,pi-cation,pi-stacking | false | threshold 3.8 6 4 3.8 6 5.5",!0),s.setLogCmd("adjust dialog dl_linegraph",!0),s.setLogCmd("select displayed set",!0)}else{let e=o.split(","),t=[];for(let s=0,i=e.length;s0?"_blank":"_self";window.open(i+"?"+l+"="+r+"&command=scap interaction "+o,a)}})),e.myEventCls.onIds("#"+e.pre+"reload_mmcif","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmcif "+$("#"+e.pre+"mmcifid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmcifid="+$("#"+e.pre+"mmcifid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"mmcifid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmcif "+$("#"+e.pre+"mmcifid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmcifid="+$("#"+e.pre+"mmcifid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_mmdb","click",(function(t){let n=e.icn3d;t.preventDefault(),s.setLogCmd("load mmdb1 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=1",l)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdb_asym","click",(function(t){let n=e.icn3d;t.preventDefault(),s.setLogCmd("load mmdb0 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=0",l)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_asym","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,0,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_append","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i,!0)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_asym_append","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,0,i,!0)})),e.myEventCls.onIds("#"+e.pre+"mmdbid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),s.setLogCmd("load mmdb1 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=1",l)}})),e.myEventCls.onIds("#"+e.pre+"mmdbafid","keyup",(function(t){if(e.icn3d,13===t.keyCode){t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i)}})),e.myEventCls.onIds("#"+e.pre+"reload_blast_rep_id","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=blast&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"run_esmfold","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),$("#"+e.pre+"dl_mmdbafid").hasClass("ui-dialog-content")&&$("#"+e.pre+"dl_mmdbafid").dialog("close");let n=$("#"+e.pre+"esmfold_fasta").val(),l="stru--";if(-1!=n.indexOf(">")){let e=n.indexOf("\n");if(i.esmTitle=n.substr(1,e-1).trim(),-1!=i.esmTitle.indexOf("|")){let e=i.esmTitle.split("|");l=e.length>2?e[1]:i.esmTitle}else l=-1!=i.esmTitle.indexOf(" ")?i.esmTitle.substr(0,i.esmTitle.indexOf(" ")):i.esmTitle;l.length<6&&(l=l.padEnd(6,"-")),n=n.substr(e+1)}if(n=n.replace(/\s/g,""),n.length>400)return void alert("Your sequence is larger than 400 characters. Please consider to split it as described at https://github.com/facebookresearch/esm/issues/21.");s.setLogCmd("Run ESMFold with the sequence "+n,!1);let r=await e.getAjaxPostPromise("https://api.esmatlas.com/foldSequence/v1/pdb/",n,!0,"Problem in returning PDB from ESMFold server...",void 0,!0,"text");i.bResetAnno=!0,i.bInputfile=!0,i.InputfileType="pdb",i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+r:r,i.bEsmfold=!0;await i.pdbParserCls.loadPdbData(r,l,void 0,!0,void 0,void 0,void 0,i.bEsmfold)})),e.myEventCls.onIds("#"+e.pre+"reload_alignsw","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids_smithwm "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=smithwm&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"reload_alignswlocal","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids_local_smithwm "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=local_smithwm&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"reload_proteinname","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load protein "+$("#"+e.pre+"proteinname").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?protein="+$("#"+e.pre+"proteinname").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_refseq","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load refseq "+$("#"+e.pre+"refseqid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?refseqid="+$("#"+e.pre+"refseqid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"gi","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load gi "+$("#"+e.pre+"gi").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?gi="+$("#"+e.pre+"gi").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_uniprotid","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load uniprotid "+$("#"+e.pre+"uniprotid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?uniprotid="+$("#"+e.pre+"uniprotid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"uniprotid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load uniprotid "+$("#"+e.pre+"uniprotid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?uniprotid="+$("#"+e.pre+"uniprotid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_cid","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load cid "+$("#"+e.pre+"cid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?cid="+$("#"+e.pre+"cid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_smiles","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=s.structures&&Object.keys(s.structures).length>0?"_blank":"_self";n="_blank",window.open(i+"?smiles="+encodeURIComponent($("#"+e.pre+"smiles").val()),"_blank")})),e.myEventCls.onIds("#"+e.pre+"cid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load cid "+$("#"+e.pre+"cid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?cid="+$("#"+e.pre+"cid").val(),l)}})),e.htmlCls.setHtmlCls.clickReload_pngimage(),e.myEventCls.onIds("#"+e.pre+"reload_state","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close"),i.bInputfile||i.init();let n=$("#"+e.pre+"state")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){i.bStatefile=!0;let n=t.target.result;s.setLogCmd("load state file "+$("#"+e.pre+"state").val(),!1),i.commands=[],i.optsHistory=[],await i.loadScriptCls.loadScript(n,!0)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_selectionfile","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"selectionfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;await i.selectionCls.loadSelection(n),s.setLogCmd("load selection file "+$("#"+e.pre+"selectionfile").val(),!1)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_collectionfile","click",(function(t){let s=e.icn3d;t.preventDefault();let i=$("#"+e.pre+"collectionfile")[0].files[0];if(i){e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?s.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close"),s.bInputfile=!1,s.pdbCollection=[],s.allData={},s.allData.all={atoms:{},proteins:{},nucleotides:{},chemicals:{},ions:{},water:{},structures:{},ssbondpnts:{},residues:{},chains:{},chainsSeq:{},defNames2Atoms:{},defNames2Residues:{}},s.allData.prev={},s.selectCollectionsCls.reset(),s.dAtoms=e.hashUtilsCls.cloneHash(s.atoms),s.hAtoms=e.hashUtilsCls.cloneHash(s.atoms),e.htmlCls.setHtmlCls.fileSupport();let t=i.name.split(".").pop().toLowerCase();function n(e){return JSON.parse(e).structures.map((({id:e,title:t,description:s,commands:i})=>(e&&e.includes(".pdb")&&(e=e.split(".pdb")[0]),[e,t,s,i,!1])))}function l(e,t="",i=[]){let n=e.split("\n"),l=[],r=[];n.forEach((e=>{e.startsWith("HEADER")&&(r=[],l.push(r)),r.push(e)}));let o=[],a=[];return l.forEach((e=>{let t=e[0];t=t.replace(/[\n\r]/g,"").trim();let s=t.split(" ").filter(Boolean),i=s[s.length-1];o.push(i),a.push(e[1].startsWith("TITLE")?e[1].split("TITLE").pop().trim():i)})),l.length>0&&s.pdbCollection.push(...l),o.map(((e,t,s,i)=>[e,a[t],s,i,!0]))}$("#"+s.pre+"collections_menu").empty(),$("#"+s.pre+"collections_menu").off("change");let r=[];if("json"===t||"pdb"===t){let o=new FileReader;o.onload=async function(i){"json"===t?r=n(i.target.result):"pdb"===t&&(s.bInputfile=!0,r=l(i.target.result));let o=await s.selectCollectionsCls.setAtomMenu(r);$("#"+s.pre+"collections_menu").html(o),await s.selectCollectionsCls.clickStructure(r),$("#"+s.pre+"collections_menu").trigger("change"),e.htmlCls.clickMenuCls.setLogCmd("load collection file "+$("#"+e.pre+"collectionfile").val(),!1)},o.readAsText(i)}else{if("zip"!==t&&"gz"!==t)throw new Error("Invalid file type");{s.bInputfile=!0;let o=new FileReader;o.onload=async function(i){if("zip"===t){let t="./script/jszip.js";await e.getAjaxPromise(t,"script");let s=new JSZip;try{let t=await s.loadAsync(i.target.result),o=!1,a=!1,d=!1,c=[],h=[],p=[];for(let e in t.files){let s=t.files[e];s.dir||(e.endsWith(".json")?(o=!0,c.push(s)):e.endsWith(".pdb")?(a=!0,h.push(s)):e.endsWith(".gz")&&(d=!0,p.push(s)))}if(o&&a){let e=[];for(const t of c){n(await t.async("text")).forEach((t=>{e.push(t)}))}for(const[t,s,i,n,o]of e){let e=h.find((e=>e.name.toLowerCase().includes(t.toLowerCase())));if(e){l(await e.async("text"),i,n).forEach((e=>{r.push(e)}))}}}else if(o)c.forEach((async e=>{n(await e.async("text")).forEach((e=>{r.push(e)}))}));else if(a)h.forEach((async e=>{l(await e.async("text")).forEach((e=>{r.push(e)}))}));else if(d){let t="./script/pako.js";await e.getAjaxPromise(t,"script");try{for(const e of p){let t=await e.async("uint8array");l(pako.inflate(t,{to:"string"})).forEach((e=>{r.push(e)}))}}catch(e){console.error("Error loading GZ file",e)}}}catch(e){console.error("Error loading ZIP file",e)}}else if("gz"===t){let t="./script/pako.js";await e.getAjaxPromise(t,"script");try{const e=new Uint8Array(i.target.result),t=pako.inflate(e,{to:"string"});r=l(t)}catch(e){console.error("Error loading GZ file",e)}}let o=await s.selectCollectionsCls.setAtomMenu(r);$("#"+s.pre+"collections_menu").html(o),await s.selectCollectionsCls.clickStructure(r),$("#"+s.pre+"collections_menu").trigger("change"),e.htmlCls.clickMenuCls.setLogCmd("load collection file "+$("#"+e.pre+"collectionfile").val(),!1)},o.onerror=function(e){console.error("Error reading file",e)},o.readAsArrayBuffer(i)}}Object.keys(e.utilsCls.getStructures(s.dAtoms))?($("#"+e.pre+"dl_collection_file").hide(),$("#"+e.pre+"dl_collection_structures").show(),$("#"+e.pre+"dl_collection_file_expand").show(),$("#"+e.pre+"dl_collection_file_shrink").hide(),$("#"+e.pre+"dl_collection_structures_expand").hide(),$("#"+e.pre+"dl_collection_structures_shrink").show()):($("#"+e.pre+"dl_collection_file").show(),$("#"+e.pre+"dl_collection_structures").hide(),$("#"+e.pre+"dl_collection_file_expand").hide(),$("#"+e.pre+"dl_collection_file_shrink").hide(),$("#"+e.pre+"dl_collection_structures_expand").show(),$("#"+e.pre+"dl_collection_structures_shrink").hide()),e.htmlCls.dialogCls.openDlg("dl_selectCollections","Select Collections")}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"opendl_export_collections","click",(function(t){e.htmlCls.dialogCls.openDlg("dl_export_collections","Export Collections")})),e.myEventCls.onIds("#"+e.pre+"export_collections","click",(function(t){let s=e.icn3d;const i=document.getElementById(e.pre+"collections_menu"),n=[],l=document.getElementById("dl_collectionExportSelected"),r=document.getElementById("dl_collectionExportAll");l.checked?Array.from(i.options).filter((e=>e.selected)).forEach((e=>{const t=e.value,i=e.textContent.trim(),l=e.getAttribute("data-description");n.push({id:t,title:i,description:l||"",commands:s.allData[t]&&s.allData[t].commands?s.allData[t].commands:[]})})):r.checked&&Array.from(i.options).forEach((e=>{const t=e.value,i=e.textContent.trim(),l=e.getAttribute("data-description");n.push({name:t,title:i,description:l||"",commands:s.allData[t]&&s.allData[t].commands?s.allData[t].commands:[]})}));const o=new Date,a=`${o.getMonth()+1}_${o.getDate()}_${o.getFullYear()}`,d={collectionTitle:document.getElementById("dl_collectionTitle").value,collectionDescription:document.getElementById("dl_collectionDescription").value,structures:n},c=`${d.collectionTitle.replace(/\s+/g,"_")}_${a}.json`,h=JSON.stringify(d,null,2),p=new Blob([h],{type:"application/json"}),m=URL.createObjectURL(p),u=document.createElement("a");u.href=m,u.download=c,document.body.appendChild(u),u.click(),document.body.removeChild(u),URL.revokeObjectURL(m)})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6file2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6File("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6filefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6File("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4file2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4File("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4filefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4File("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfile2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfilefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfile2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("2fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfilefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_delphifile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadDelphiFile("delphi")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrfile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("pqr")})),e.myEventCls.onIds("#"+e.pre+"reload_phifile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("phi")})),e.myEventCls.onIds("#"+e.pre+"reload_cubefile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("cube")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("pqrurl")})),e.myEventCls.onIds("#"+e.pre+"reload_phiurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("phiurl")})),e.myEventCls.onIds("#"+e.pre+"reload_cubeurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("cubeurl")})),e.myEventCls.onIds("#"+e.pre+"reload_delphifile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("delphi"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadDelphiFile("delphi2")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrfile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("pqr2")})),e.myEventCls.onIds("#"+e.pre+"reload_phifile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("phi2")})),e.myEventCls.onIds("#"+e.pre+"reload_cubefile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("cube2")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("pqrurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_phiurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("phiurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_cubeurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("cubeurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6fileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6FileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6fileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6FileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4fileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4FileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4fileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4FileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfileurl2fofc","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.mtzParserCls.loadMtzFileUrl("2fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfileurlfofc","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.mtzParserCls.loadMtzFileUrl("fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_pdbfile","click",(async function(t){e.icn3d,t.preventDefault();await s.loadPdbFile(!1,"pdbfile")})),e.myEventCls.onIds("#"+e.pre+"reload_pdbfile_app","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bAppend=!0,await s.loadPdbFile(i.bAppend,"pdbfile_app")})),e.myEventCls.onIds("#"+e.pre+"reload_mol2file","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"mol2file")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load mol2 file "+$("#"+e.pre+"mol2file").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="mol2",await i.mol2ParserCls.loadMol2Data(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_sdffile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"sdffile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load sdf file "+$("#"+e.pre+"sdffile").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="sdf",await i.sdfParserCls.loadSdfData(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_xyzfile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"xyzfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load xyz file "+$("#"+e.pre+"xyzfile").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="xyz",await i.xyzParserCls.loadXyzData(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"afmapfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=function(t){let n=t.target.result;s.setLogCmd("load AlphaFold PAE file "+$("#"+e.pre+"afmapfile").val(),!1),e.htmlCls.dialogCls.openDlg("dl_alignerrormap","Show Predicted Aligned Error (PAE) map"),i.contactMapCls.processAfErrorMap(JSON.parse(n))},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfilefull","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"afmapfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=function(t){let n=t.target.result;s.setLogCmd("load AlphaFold PAE file "+$("#"+e.pre+"afmapfile").val(),!1),e.htmlCls.dialogCls.openDlg("dl_alignerrormap","Show Predicted Aligned Error (PAE) map"),i.contactMapCls.processAfErrorMap(JSON.parse(n),!0)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_urlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),s.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?s.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let i=$("#"+e.pre+"filetype").val(),n=$("#"+e.pre+"urlfile").val();s.inputurl="type="+i+"&url="+encodeURIComponent(n),s.init(),s.bInputfile=!0,s.bInputUrlfile=!0,await s.pdbParserCls.downloadUrl(n,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmciffile","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bAppend=!0;await s.loadPdbFile(i.bAppend,"mmciffile",!0)})),e.myEventCls.onIds("#"+e.pre+"applycustomcolor","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.setOptionCls.setOption("color",$("#"+e.pre+"colorcustom").val()),s.setLogCmd("color "+$("#"+e.pre+"colorcustom").val(),!0)})),e.myEventCls.onIds(["#"+e.pre+"atomsCustomSphere2","#"+e.pre+"atomsCustomSphere","#"+e.pre+"radius_aroundsphere"],"change",(function(t){e.icn3d.bSphereCalc=!1})),e.myEventCls.onIds("#"+e.pre+"applypick_aroundsphere","click",(function(t){let i=e.icn3d,n=parseFloat($("#"+e.pre+"radius_aroundsphere").val()),l=$("#"+e.pre+"atomsCustomSphere").val(),r=$("#"+e.pre+"atomsCustomSphere2").val();if(0==r.length)alert("Please select the first set at step #1");else{let e="select zone cutoff "+n+" | sets "+r+" "+l+" | "+i.bSphereCalc;i.bSphereCalc||i.showInterCls.pickCustomSphere(n,r,l,i.bSphereCalc),i.bSphereCalc=!0,i.hlUpdateCls.updateHlAll(),s.setLogCmd(e,!0)}})),e.myEventCls.onIds("#"+e.pre+"sphereExport","click",(function(t){let i=e.icn3d;t.preventDefault();let n=parseFloat($("#"+e.pre+"radius_aroundsphere").val()),l=$("#"+e.pre+"atomsCustomSphere").val(),r=$("#"+e.pre+"atomsCustomSphere2").val();if(0==r.length)alert("Please select the first set at step #1");else{i.showInterCls.pickCustomSphere(n,r,l,i.bSphereCalc),i.bSphereCalc=!0;let t=i.viewInterPairsCls.exportSpherePairs(),o=Object.keys(e.utilsCls.getHlStructures()).join(",");i.saveFileCls.saveFile(o+"_sphere_pairs.html","html",t),s.setLogCmd("export pairs | "+r+" "+l+" | dist "+n,!0)}})),e.myEventCls.onIds("#"+e.pre+"apply_adjustmem","click",(function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+e.pre+"extra_mem_z").val()),l=parseFloat($("#"+e.pre+"intra_mem_z").val());i.selectionCls.adjustMembrane(n,l);let r="adjust membrane z-axis "+n+" "+l;s.setLogCmd(r,!0)})),e.myEventCls.onIds("#"+e.pre+"apply_selectplane","click",(function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+e.pre+"selectplane_z1").val()),l=parseFloat($("#"+e.pre+"selectplane_z2").val());i.selectionCls.selectBtwPlanes(n,l);let r="select planes z-axis "+n+" "+l;s.setLogCmd(r,!0)})),e.myEventCls.onIds(["#"+e.pre+"atomsCustomHbond2","#"+e.pre+"atomsCustomHbond","#"+e.pre+"analysis_hbond","#"+e.pre+"analysis_saltbridge","#"+e.pre+"analysis_contact","#"+e.pre+"hbondthreshold","#"+e.pre+"saltbridgethreshold","#"+e.pre+"contactthreshold"],"change",(function(t){e.icn3d.bHbondCalc=!1})),e.myEventCls.onIds("#"+e.pre+"crossstrucinter","change",(function(t){let i=e.icn3d;t.preventDefault(),i.crossstrucinter=parseInt($("#"+e.pre+"crossstrucinter").val()),s.setLogCmd("cross structure interaction "+i.crossstrucinter,!0)})),e.myEventCls.onIds("#"+e.pre+"applyhbonds","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("3d")})),e.myEventCls.onIds("#"+e.pre+"applycontactmap","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+i.pre+"contactdist").val()),l=$("#"+i.pre+"contacttype").val();await i.contactMapCls.contactMap(n,l),s.setLogCmd("contact map | dist "+n+" | type "+l,!0)})),e.myEventCls.onIds("#"+e.pre+"hbondWindow","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("view")})),e.myEventCls.onIds("#"+e.pre+"areaWindow","click",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.pre+"atomsCustomHbond").val(),l=$("#"+e.pre+"atomsCustomHbond2").val();i.analysisCls.calcBuriedSurface(l,n),s.setLogCmd("calc buried surface | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"sortSet1","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("save1")})),$(document).on("click","."+e.pre+"showintercntonly",(function(t){e.icn3d,t.stopImmediatePropagation(),$(".icn3d-border").hide(),s.setLogCmd("table inter count only",!0)})),$(document).on("click","."+e.pre+"showinterdetails",(function(t){e.icn3d,t.stopImmediatePropagation(),$(".icn3d-border").show(),s.setLogCmd("table inter details",!0)})),e.myEventCls.onIds("#"+e.pre+"sortSet2","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("save2")})),e.myEventCls.onIds("#"+e.pre+"hbondGraph","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("graph")})),e.myEventCls.onIds("#"+e.pre+"hbondLineGraph","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("linegraph")})),e.myEventCls.onIds("#"+e.pre+"hbondLineGraph2","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!0,s.setLogCmd("show ref number",!0),await i.showInterCls.showInteractions("linegraph")})),e.myEventCls.onIds("#"+e.pre+"hbondScatterplot","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("scatterplot")})),e.myEventCls.onIds("#"+e.pre+"hbondScatterplot2","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!0,s.setLogCmd("show ref number",!0),await i.showInterCls.showInteractions("scatterplot")})),e.myEventCls.onIds("#"+e.pre+"hbondLigplot","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("ligplot")})),$(document).on("click","#"+e.svgid+" circle.selected",(function(t){let s=e.icn3d;t.stopImmediatePropagation();let i=$(this).attr("res");!1!==s.bSelectResidue||s.bShift||s.bCtrl||s.selectionCls.removeSelection(),void 0!==i&&(s.hlSeqCls.selectResidues(i,this),s.hlObjectsCls.addHlObjects())})),e.myEventCls.onIds("#"+e.svgid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.svgid,s.inputid+"_force_directed_graph.svg")})),e.myEventCls.onIds("#"+e.svgid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.svgid,s.inputid+"_force_directed_graph.png")})),e.myEventCls.onIds("#"+e.svgid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.graphStr.substr(0,s.graphStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_force_directed_graph.json","text",[i])})),$(document).on("click","#"+e.svgid_ct+"_svg",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.svgid_ct,s.inputid+"_cartoon.svg")})),$(document).on("click","#"+e.svgid_ct+"_png",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.svgid_ct,s.inputid+"_cartoon.png")})),$(document).on("click","#"+e.svgid_ct+"_json",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveFile(s.inputid+"_cartoon.json","text",[s.graphStr])})),$(document).on("change","#"+e.svgid_ct+"_label",(function(t){e.icn3d,t.preventDefault();let i=$("#"+e.svgid_ct+"_label").val();$("#"+e.svgid_ct+" text").removeClass(),$("#"+e.svgid_ct+" text").addClass(i),s.setLogCmd("cartoon label "+i,!0)})),e.myEventCls.onIds("#"+e.linegraphid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.linegraphid,s.inputid+"_line_graph.svg")})),e.myEventCls.onIds("#"+e.linegraphid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.linegraphid,s.inputid+"_line_graph.png")})),e.myEventCls.onIds("#"+e.linegraphid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.lineGraphStr.substr(0,s.lineGraphStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_line_graph.json","text",[i])})),e.myEventCls.onIds("#"+e.linegraphid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.linegraphid+"_scale").val();$("#"+e.linegraphid).attr("width",(i.linegraphWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("line graph scale "+n,!0)})),e.myEventCls.onIds("#"+e.scatterplotid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.scatterplotid,s.inputid+"_scatterplot.svg")})),e.myEventCls.onIds("#"+e.scatterplotid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.scatterplotid,s.inputid+"_scatterplot.png")})),e.myEventCls.onIds("#"+e.scatterplotid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.scatterplotStr.substr(0,s.scatterplotStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_scatterplot.json","text",[i])})),e.myEventCls.onIds("#"+e.scatterplotid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.scatterplotid+"_scale").val();$("#"+e.scatterplotid).attr("width",(i.scatterplotWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("scatterplot scale "+n,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.ligplotid,s.inputid+"_ligplot.svg",void 0,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.ligplotid,s.inputid+"_ligplot.png",void 0,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.ligplotid+"_scale").val();$("#"+e.ligplotid).attr("width",(i.ligplotWidth*parseFloat(n)).toString()+"px"),i.ligplotScale=parseFloat(n),s.setLogCmd("ligplot scale "+n,!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.contactmapid,s.inputid+"_contactmap.svg",!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.contactmapid,s.inputid+"_contactmap.png",!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.contactmapStr.substr(0,s.contactmapStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_contactmap.json","text",[i])})),e.myEventCls.onIds("#"+e.contactmapid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.contactmapid+"_scale").val();$("#"+e.contactmapid).attr("width",(i.contactmapWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("contactmap scale "+n,!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault();$("#"+e.alignerrormapid+"_scale").val(1),$("#"+e.alignerrormapid).attr("width",(s.alignerrormapWidth*parseFloat(1)).toString()+"px"),s.saveFileCls.saveSvg(e.alignerrormapid,s.inputid+"_alignerrormap.svg",!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault();$("#"+e.alignerrormapid+"_scale").val(1),$("#"+e.alignerrormapid).attr("width",(s.alignerrormapWidth*parseFloat(1)).toString()+"px"),s.saveFileCls.savePng(e.alignerrormapid,s.inputid+"_alignerrormap.png",!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_full","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.contactMapCls.afErrorMap(afid,!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.alignerrormapStr.substr(0,s.alignerrormapStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_alignerrormap.json","text",[i])})),e.myEventCls.onIds("#"+e.alignerrormapid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.alignerrormapid+"_scale").val();$("#"+e.alignerrormapid).attr("width",(i.alignerrormapWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("alignerrormap scale "+n,!0)})),e.myEventCls.onIds("#"+e.svgid+"_label","change",(function(t){e.icn3d,t.preventDefault();let i=$("#"+e.svgid+"_label").val();$("#"+e.svgid+" text").removeClass(),$("#"+e.svgid+" text").addClass(i),s.setLogCmd("graph label "+i,!0)})),e.myEventCls.onIds("#"+e.svgid+"_hideedges","change",(function(t){let i=e.icn3d;t.preventDefault(),e.htmlCls.hideedges=parseInt($("#"+e.svgid+"_hideedges").val()),e.htmlCls.hideedges?(e.htmlCls.contactInsideColor="FFF",e.htmlCls.hbondInsideColor="FFF",e.htmlCls.ionicInsideColor="FFF"):(e.htmlCls.contactInsideColor="DDD",e.htmlCls.hbondInsideColor="AFA",e.htmlCls.ionicInsideColor="8FF"),void 0!==i.graphStr&&(i.bRender&&e.htmlCls.force&&e.drawGraph(i.graphStr,e.pre+"dl_graph"),s.setLogCmd("hide edges "+e.htmlCls.hideedges,!0))})),e.myEventCls.onIds("#"+e.svgid+"_force","change",(function(t){let i=e.icn3d;t.preventDefault(),e.htmlCls.force=parseInt($("#"+e.svgid+"_force").val()),void 0!==i.graphStr&&(s.setLogCmd("graph force "+e.htmlCls.force,!0),i.getGraphCls.handleForce())})),e.myEventCls.onIds("#"+e.pre+"hbondReset","click",(function(t){let i=e.icn3d;t.preventDefault(),i.viewInterPairsCls.resetInteractionPairs(),s.setLogCmd("reset interaction pairs",!0)})),e.myEventCls.onIds("#"+e.pre+"applypick_labels","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"labeltext").val(),l=$("#"+e.pre+"labelsize").val(),r=$("#"+e.pre+"labelcolor").val(),o=$("#"+e.pre+"labelbkgd").val();if("0"!==l&&""!==l&&"undefined"!==l||(l=0),"0"!==r&&""!==r&&"undefined"!==r||(r=0),"0"!==o&&""!==o&&"undefined"!==o||(o=0),void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{let e=(i.pAtom.coord.x+i.pAtom2.coord.x)/2,t=(i.pAtom.coord.y+i.pAtom2.coord.y)/2,a=(i.pAtom.coord.z+i.pAtom2.coord.z)/2;i.analysisCls.addLabel(n,e,t,a,l,r,o,"custom"),i.pickpair=!1;let d="",c="",h="";0!=l&&(d=" | size "+l),0!=r&&(c=" | color "+r),0!=o&&(h=" | background "+o),s.setLogCmd("add label "+n+" | x "+e.toPrecision(4)+" y "+t.toPrecision(4)+" z "+a.toPrecision(4)+d+c+h+" | type custom",!0),i.drawCls.draw()}})),e.myEventCls.onIds("#"+e.pre+"applyselection_labels","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"labeltext2").val(),l=$("#"+e.pre+"labelsize2").val(),r=$("#"+e.pre+"labelcolor2").val(),o=$("#"+e.pre+"labelbkgd2").val();"0"!==l&&""!==l&&"undefined"!==l||(l=0),"0"!==r&&""!==r&&"undefined"!==r||(r=0),"0"!==o&&""!==o&&"undefined"!==o||(o=0);let a=i.applyCenterCls.centerAtoms(e.hashUtilsCls.hash2Atoms(i.hAtoms,i.atoms)),d=a.center.x,c=a.center.y,h=a.center.z;i.analysisCls.addLabel(n,d,c,h,l,r,o,"custom");let p="",m="",u="";0!=l&&(p=" | size "+l),0!=r&&(m=" | color "+r),0!=o&&(u=" | background "+o),s.setLogCmd("add label "+n+" | x "+d.toPrecision(4)+" y "+c.toPrecision(4)+" z "+h.toPrecision(4)+p+m+u+" | type custom",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applylabelcolor","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.labelcolor=$("#"+e.pre+"labelcolorall").val(),s.setLogCmd("set label color "+i.labelcolor,!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applypick_stabilizer","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),void 0===i.pAtom||void 0===i.pAtom2?alert("Please pick another atom"):(i.pickpair=!1,s.setLogCmd("add one stabilizer | "+i.pAtom.serial+" "+i.pAtom2.serial,!0),void 0===i.pairArray&&(i.pairArray=[]),i.pairArray.push(i.pAtom.serial),i.pairArray.push(i.pAtom2.serial),i.threeDPrintCls.setThichknessFor3Dprint(),i.drawCls.draw())}));let l=new CP(document.querySelector("#"+e.pre+"colorcustom"));l.on("change",(function(e){this.target.value=e})),e.myEventCls.onIds("#"+e.pre+"colorcustom","input",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","keyup",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","paste",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","cut",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()}));let r=new CP(document.querySelector("#"+e.pre+"labelcolorall"));r.on("change",(function(e){this.target.value=e})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","input",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","keyup",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","paste",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","cut",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"applypick_stabilizer_rm","click",(function(t){let i=e.icn3d;if(t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{i.pickpair=!1,s.setLogCmd("remove one stabilizer | "+i.pAtom.serial+" "+i.pAtom2.serial,!0);let e=[];e.push(i.pAtom.serial),e.push(i.pAtom2.serial),i.threeDPrintCls.removeOneStabilizer(e),i.drawCls.draw()}})),e.myEventCls.onIds("#"+e.pre+"applypick_measuredistance","click",(function(t){let i=e.icn3d;if(t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1,void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{let t=0,n=0,l=$("#"+e.pre+"linecolor").val(),r=(i.pAtom.coord.x+i.pAtom2.coord.x)/2,o=(i.pAtom.coord.y+i.pAtom2.coord.y)/2,a=(i.pAtom.coord.z+i.pAtom2.coord.z)/2;i.analysisCls.addLineFromPicking("distance");let d=(parseInt(10*i.pAtom.coord.distanceTo(i.pAtom2.coord))/10).toString()+" A";i.analysisCls.addLabel(d,r,o,a,t,l,n,"distance");let c="",h="",p="";0!=l&&(h=" | color "+l),s.setLogCmd("add label "+d+" | x "+r.toPrecision(4)+" y "+o.toPrecision(4)+" z "+a.toPrecision(4)+c+h+p+" | type distance",!0),i.drawCls.draw(),i.pk=2}})),e.myEventCls.onIds("#"+e.pre+"applydist2","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1;let n=$("#"+e.pre+"atomsCustomDist").val(),l=$("#"+e.pre+"atomsCustomDist2").val();i.analysisCls.measureDistTwoSets(n,l),s.setLogCmd("dist | "+l+" "+n,!0)})),$(document).on("click",".icn3d-distance",(function(t){let i=e.icn3d;t.preventDefault(),i.bMeasureDistance=!1,i.distPnts=[],i.labels.distance=[],i.lines.distance=[];let n=$(this).attr("sets").split("|"),l=[n[0]],r=[n[1]];i.analysisCls.measureDistTwoSets(l,r),s.setLogCmd("dist | "+r+" "+l,!0)})),e.myEventCls.onIds("#"+e.pre+"applydisttable","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1;let n=$("#"+e.pre+"atomsCustomDistTable").val(),l=$("#"+e.pre+"atomsCustomDistTable2").val();i.analysisCls.measureDistManySets(n,l),e.htmlCls.dialogCls.openDlg("dl_disttable","Distance among the sets"),s.setLogCmd("disttable | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyangletable","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureAngle=!1;let n=$("#"+e.pre+"atomsCustomAngleTable").val(),l=$("#"+e.pre+"atomsCustomAngleTable2").val();i.analysisCls.measureAngleManySets(n,l),e.htmlCls.dialogCls.openDlg("dl_angletable","Angles among the sets"),s.setLogCmd("angletable | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applylinebtwsets","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bLinebtwsets=!1;let n=$("#"+e.pre+"linebtwsets").val(),l=$("#"+e.pre+"linebtwsets2").val(),r=i.definedSetsCls.getAtomsFromNameArray(n),o=i.definedSetsCls.getAtomsFromNameArray(l),a=i.contactCls.getExtent(r),d=i.contactCls.getExtent(o),c=new THREE.Vector3(a[2][0],a[2][1],a[2][2]),h=new THREE.Vector3(d[2][0],d[2][1],d[2][2]),p=$("#"+e.pre+"linebtwsets_radius").val(),m=$("#"+e.pre+"linebtwsets_customcolor").val(),u=$("#"+e.pre+"linebtwsets_opacity").val(),g="Solid"!=$("#"+e.pre+"linebtwsets_style").val(),f="cylinder",C="add line | x1 "+c.x.toPrecision(4)+" y1 "+c.y.toPrecision(4)+" z1 "+c.z.toPrecision(4)+" | x2 "+h.x.toPrecision(4)+" y2 "+h.y.toPrecision(4)+" z2 "+h.z.toPrecision(4)+" | color "+m+" | dashed "+g+" | type "+f+" | radius "+p+" | opacity "+u;s.setLogCmd(C,!0),i.analysisCls.addLine(c.x,c.y,c.z,h.x,h.y,h.z,m,g,f,p,u),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applycartoonshape","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bCartoonshape=!1;let n=$("#"+e.pre+"cartoonshape").val(),l=i.definedSetsCls.getAtomsFromNameArray(n),r=i.contactCls.getExtent(l),o=new THREE.Vector3(r[2][0],r[2][1],r[2][2]),a=$("#"+e.pre+"cartoonshape_shape").val(),d=$("#"+e.pre+"cartoonshape_radius").val(),c=$("#"+e.pre+"cartoonshape_customcolor").val(),h=$("#"+e.pre+"cartoonshape_opacity").val();c="#"+c.replace(/\#/g,"");let p,m=e.parasCls.thr(c);"Sphere"==a?(i.sphereCls.createSphereBase(o,m,d,void 0,void 0,void 0,h),p="add sphere | "+n+" | color "+c+" | opacity "+h+" | radius "+d):(i.boxCls.createBox_base(o,d,m,void 0,void 0,void 0,h),p="add cube | "+n+" | color "+c+" | opacity "+h+" | radius "+d),s.setLogCmd(p,!0),i.shapeCmdHash[p]=1,i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearlinebtwsets","click",(function(t){let i=e.icn3d;t.preventDefault(),i.lines.cylinder=[],s.setLogCmd("clear line between sets",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearcartoonshape","click",(function(t){let i=e.icn3d;t.preventDefault(),i.shapeCmdHash={},s.setLogCmd("clear shape",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"apply_thickness_3dprint","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("3dprint")})),e.myEventCls.onIds("#"+e.pre+"apply_thickness_style","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("style"),e.htmlCls.setMenuCls.setLogWindow(!0)})),e.myEventCls.onIds("#"+e.pre+"reset_thickness_3dprint","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("3dprint",!0)})),e.myEventCls.onIds("#"+e.pre+"reset_thickness_style","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("style",!0),e.htmlCls.setMenuCls.setLogWindow(!0)})),e.myEventCls.onIds("#"+e.pre+"reset","click",(function(t){let s=e.icn3d;s.selectionCls.resetAll(),s.bRender&&s.drawCls.draw()})),e.myEventCls.onIds(["#"+e.pre+"toggleHighlight","#"+e.pre+"toggleHighlight2"],"click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.toggleHighlight(),s.setLogCmd("toggle highlight",!0)})),e.myEventCls.onIds("#"+e.pre+"seq_clearselection","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"seq_clearselection2","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),t.preventDefault(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"alignseq_clearselection","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"replay","click",(async function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.CURRENTNUMBER++;let n=e.cfg.replay?i.STATENUMBER:i.STATENUMBER-1;if(i.CURRENTNUMBER==n)i.bReplay=0,$("#"+e.pre+"replay").hide();else if(i.commands.length>0&&i.commands[i.CURRENTNUMBER]){await i.loadScriptCls.execCommandsBase(i.CURRENTNUMBER,i.CURRENTNUMBER,i.STATENUMBER);let t=i.commands[i.CURRENTNUMBER].indexOf("|||"),n=-1!=t?i.commands[i.CURRENTNUMBER].substr(0,t):i.commands[i.CURRENTNUMBER],l=30,r=n.length>l?n.substr(0,l)+"...":n,o=i.applyCommandCls.getMenuFromCmd(r);$("#"+e.pre+"replay_cmd").html("Cmd: "+r),$("#"+e.pre+"replay_menu").html("Menu: "+o),s.setLogCmd(n,!0),i.drawCls.draw()}})),t.loadScriptCls.pressCommandtext(),e.myEventCls.onIds("#"+e.pre+"seq_saveselection","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"seq_command_name").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),e.myEventCls.onIds("#"+e.pre+"seq_saveselection2","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"seq_command_name2").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),e.myEventCls.onIds("#"+e.pre+"mn2_saveresidue","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),i.selectionCls.saveEachResiInSel(),s.setLogCmd("select each residue",!0)})),e.myEventCls.onIds("#"+e.pre+"alignseq_saveselection","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"alignseq_command_name").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),$(document).on("click","."+e.pre+"outputselection",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelectResidue=!1,i.bSelectAlignResidue=!1,s.setLogCmd("output selection",!0),i.threeDPrintCls.outputSelection()})),$(document).on("click",".icn3d-saveicon",(function(t){e.icn3d,t.stopImmediatePropagation();let i=$(this).attr("pid");s.saveHtml(i),s.setLogCmd("save html "+i,!0)})),$(document).on("click",".icn3d-hideicon",(function(t){let s=e.icn3d;t.stopImmediatePropagation();let i=$(this).attr("pid");if(!e.cfg.notebook)if(void 0===s.dialogHashHideDone&&(s.dialogHashHideDone={}),void 0===s.dialogHashPosToRight&&(s.dialogHashPosToRight={}),s.dialogHashHideDone.hasOwnProperty(i)){let e=s.dialogHashHideDone[i].width,t=s.dialogHashHideDone[i].height,n=s.dialogHashHideDone[i].position;$("#"+i).dialog("option","width",e),$("#"+i).dialog("option","height",t),$("#"+i).dialog("option","position",n),delete s.dialogHashHideDone[i]}else{s.dialogHashHideDone[i]={width:$("#"+i).dialog("option","width"),height:$("#"+i).dialog("option","height"),position:$("#"+i).dialog("option","position")};let e,t=160,n=80;$("#"+i).dialog("option","width",t),$("#"+i).dialog("option","height",n),s.dialogHashPosToRight.hasOwnProperty(i)?e=s.dialogHashPosToRight[i]:(e=Object.keys(s.dialogHashPosToRight).length*(t+10),s.dialogHashPosToRight[i]=e);let l={my:"right bottom",at:"right-"+e+" bottom+60",of:"#"+s.divid,collision:"none"};$("#"+i).dialog("option","position",l)}})),$(document).on("click","."+e.pre+"selres",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelOneRes=!1;let n=$("."+e.pre+"seloneres");for(let e=0,t=n.length;e0&&(r+=" or "),r+=i.selectionCls.selectOneResid(t)}i.hlUpdateCls.updateHlAll(),s.setLogCmd(r,!0)})),$(document).on("click","."+e.pre+"seloneres",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.bSelOneRes||(s.hAtoms={},s.selectedResidues={},s.bSelOneRes=!0);let i=$(this).attr("resid"),n=$(this).attr("id");$("#"+n).length&&$("#"+n)[0].checked?s.selectionCls.selectOneResid(i):$("#"+n).length&&!$("#"+n)[0].checked&&s.selectionCls.selectOneResid(i,!0),s.hlUpdateCls.updateHlAll()})),$(document).on("click","."+e.pre+"selset",(async function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelOneRes=!1;let n=$("."+e.pre+"seloneres");for(let e=0,t=n.length;e0))return{sequencesHtml:a,maxSeqCnt:d};c[s]=1}let h,p=void 0===t||t;p&&(o.hAtoms={});let m,u,g=0,f=0;for(let t=0,l=e.length;t0?m:l,p&&(o.hAtoms=r.hashUtilsCls.unionHash(o.hAtoms,o.alnChains[l]));let C=[],b="",y=void 0!==o.alnChainsSeq[l]?o.alnChainsSeq[l].length:0;y>d&&(d=y);let v,_,w=u.indexOf("_"),S=u.substr(0,w),A=u.substr(w+1);for(let e=0,t=y;e=0;--e)if("-"!=o.alnChainsSeq[l][e].resn){_=o.alnChainsSeq[l][e].resi;break}b+=""+v+"",h=!(void 0===e||!c.hasOwnProperty(u));for(let e=0,t=y;e"}""!==a?-1!=o.alnChainsSeq[l][e].resi?b+=""+o.alnChainsSeq[l][e].resn+"":b+=""+o.alnChainsSeq[l][e].resn+"":b+=""+o.alnChainsSeq[l][e].resn+""}b+=""+_+"";let x=e.length,k=void 0!==o.alnChainsAnno[l]?o.alnChainsAnno[l].length:0;for(let t=0,s=k;t";for(let e=0,i=o.alnChainsAnno[l][t].length;e ':' ';else if("E"==i)if(void 0!==o.alnChainsSeq[s][e]){let i=s+"_"+o.alnChainsSeq[s][e].resi;if(o.residues.hasOwnProperty(i)){o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[i]).ssend?C[t]+=' ':C[t]+=' '}else C[t]+=' '}else C[t]+=' ';else C[t]+="c"==i?' ':"o"==i?' ':"";else C[t]+=""+i+""}C[t]+=""}let O=l,R=void 0!==o.pdbid_chain2title?o.pdbid_chain2title[u]:"";for(let e=k-1;e>=0;--e){let t=o.alnChainsAnTtl[l][e][0];"SS"==t&&(t=""),a+="
    "+t+"
    "+C[e]+"
    "}a+=''+b+"
    ",g>0&&(f+=y),++g}return{sequencesHtml:a,maxSeqCnt:d}}}class u{constructor(e){this.icn3dui=e}getLink(e,t,s,i){let n=this.icn3dui;return n.icn3d,n.htmlCls.allMenus[e]=t,i&&(n.htmlCls.allMenusSel[e]=i),s&&(n.htmlCls.simpleMenus[e]=1),"
  • "+t+"
  • "}getMenuText(e,t,s,i,n){let l=this.icn3dui;l.icn3d,l.htmlCls.allMenus[e]=t,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1);let r="icn3d-menupd"==s?" style='padding-left:1.5em!important;'":"";return"
  • "+t+""}getMenuUrl(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.allMenus[e]=s,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1),"
  • "+s+"
  • "}getMenuSep(){return this.icn3dui.icn3d,"
  • -
  • "}getLinkWrapper(e,t,s,i,n,l){let r=this.icn3dui;r.icn3d,r.htmlCls.allMenus[e]=t,n&&(r.htmlCls.allMenusSel[e]=n),i&&(r.htmlCls.simpleMenus[e]=1);let o=l?' style="display:none"':"";return"
  • "+t+"
  • "}getLinkWrapper2(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.allMenus[e]=t,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1),"
  • "+t+""}getRadio(e,t,s,i,n,l){let r=this.icn3dui;r.icn3d,r.htmlCls.allMenus[t]=s,l&&(r.htmlCls.allMenusSel[t]=l),n&&(r.htmlCls.simpleMenus[t]=1);let o=i?" checked":"";return"
  • "}getRadioColor(e,t,s,i,n,l,r){let o=this.icn3dui;o.icn3d,o.htmlCls.allMenus[t]=s,r&&(o.htmlCls.allMenusSel[t]=r),l&&(o.htmlCls.simpleMenus[t]=1);let a=n?" checked":"";return"
  • "}setAdvanced(e){let t=this.icn3dui;t.icn3d;let s=void 0===e?"":e,i=t.cfg.notebook?"icn3d-hidden":"",n=t.htmlCls.divStr+"dl_advanced"+s+"' class='"+i+"'>";return n+="",n+="",n+="
    ",n+="",n+="",n+="",n+="
    Select:"+t.htmlCls.inputTextStr+"id='"+t.pre+"command"+s+"' placeholder='$[structures].[chains]:[residues]@[atoms]' size='60'>
    Name:"+t.htmlCls.inputTextStr+"id='"+t.pre+"command_name"+s+"' placeholder='my_selection' size='60'>
    "+t.htmlCls.space3+t.htmlCls.buttonStr+"command_apply"+s+"'>Save Selection to Defined Sets
    ",n+='Specification Tips:

    ',n+=t.htmlCls.divStr+"specguide"+s+"' style='display:none; width:500px' class='icn3d-box'>",n+='Specification: In the selection "$1HHO,4N7N.A,B,C:5-10,LV,3AlaVal,chemicals@CA,C,C*":',n+='
    • "$1HHO,4N7N" uses "$" to indicate structure selection.
      ',n+='
    • ".A,B,C" uses "." to indicate chain selection.
      ',n+='
    • ":5-10,LV,3LeuVal,chemicals" uses the colon ":" to indicate residue selection. Residue selection could be residue number(5-10), one-letter IUPAC residue name abbreviations(LV), three-letter residue names(AlaVal, "3" indicates each residue name has three letters), or predefined names: "proteins", "nucleotides", "chemicals", "ions", and "water". IUPAC abbreviations can be written either as a contiguous string(e.g., ":LV"), in order to find all instances of that sequence in the structure, or they can be separated by commas(e.g., ":L,V") to select all residues of a given type in the structure(in the latter case, select all Leucine and Valine in the structure).
      ',n+='
    • "@CA,C,C*" uses "@" to indicate atom name selection. "C*" selects any atom names starting with "C".
      ',n+='
    • Partial definition is allowed, e.g., ":1-10" selects all residue IDs 1-10 in all chains.
      ',n+='
    • Different selections can be unioned(with "or", default), intersected(with "and"), or negated(with "not"). For example, ":1-10 or :K" selects all residues 1-10 and all Lys residues. ":1-10 and :K" selects all Lys residues in the range of residue number 1-10. ":1-10 or not :K" selects all residues 1-10, which are not Lys residues.
      ',n+='
    • The wild card character "X" or "x" can be used to represent any character.',n+="
    ",n+="Set Operation:",n+='
    • Users can select multiple sets in the menu "Select > Defined Sets".
      ',n+='
    • Different sets can be unioned(with "or", default), intersected(with "and"), or negated(with "not"). For example, if the "Defined Sets" menu has four sets ":1-10", ":11-20", ":5-15", and ":7-8", the command "saved atoms :1-10 or :11-20 and :5-15 not :7-8" unions all residues 1-10 and 11-20 to get the residues 1-20, then intersects with the residues 5-15 to get the residues 5-15, then exclude the residues 7-8 to get the final residues 5-6 and 9-15.
    ',n+="Full commands in url or command window:",n+="
    • Select without saving the set: select $1HHO,4N7N.A,B,C:5-10,LV,chemicals@CA,C,C*
      ",n+="
    • Select and save: select $1HHO,4N7N.A,B,C:5-10,LV,chemicals@CA,C,C* | name my_name
    ",n+="",n+="
    ",n+="",n}getOptionHtml(e,t){let s=this.icn3dui;s.icn3d;let i="";for(let n=0,l=e.length;n"+l+"":s.htmlCls.optionStr+"'"+l+"'>"+l+""}return i}setColorHints(){let e=this.icn3dui;e.icn3d;let t="";return t+=e.htmlCls.divNowrapStr+'Green: H-Bonds; ',t+='Cyan: Salt Bridge/Ionic; ',t+='Grey: Contacts',t+=e.htmlCls.divNowrapStr+'Magenta: Halogen Bonds; ',t+='Red: π-Cation; ',t+='Blue: π-Stacking',t}setThicknessHtml(e){let t=this.icn3dui,s=t.icn3d,i="",n="3dprint"==e?"1":"0.1",l="3dprint"==e?"1.2":"0.3",r="3dprint"==e?"0.8":"0.4",o="3dprint"==e?"0.8":"0.4",a="3dprint"==e?"1":"0.4",d="3dprint"==e?"0.6":"0.3",c="3dprint"==e?"1":"0.2",h="3dprint"==e?"2":"1.3",p="3dprint"==e?"1.4":"0.8",m=40,u=.8,g=.4,f=.2,C=0,b=1,y=0;if("style"==e){if(""!=this.getCookie("shininess")&&(m=parseFloat(this.getCookie("shininess"))),""!=this.getCookie("light1")&&(u=parseFloat(this.getCookie("light1")),g=parseFloat(this.getCookie("light2")),f=parseFloat(this.getCookie("light3"))),""!=this.getCookie("lineRadius")){n=parseFloat(this.getCookie("lineRadius")),l=parseFloat(this.getCookie("coilWidth")),r=parseFloat(this.getCookie("cylinderRadius"));let e=this.getCookie("crosslinkRadius");o=isNaN(e)?s.crosslinkRadius:parseFloat(e),a=parseFloat(this.getCookie("traceRadius")),d=parseFloat(this.getCookie("dotSphereScale")),c=parseFloat(this.getCookie("ribbonthickness")),h=parseFloat(this.getCookie("helixSheetWidth")),p=parseFloat(this.getCookie("nucleicAcidWidth"))}""!=this.getCookie("glycan")&&(C=parseFloat(this.getCookie("glycan"))),""!=this.getCookie("membrane")&&(b=parseFloat(this.getCookie("membrane"))),""!=this.getCookie("cmdwindow")&&(y=parseFloat(this.getCookie("cmdwindow"))),i+="Note: The following parameters will be saved in cache. You just need to set them once.

    ",i+="1. Shininess: "+t.htmlCls.inputTextStr+"id='"+t.pre+"shininess' value='"+m+"' size=4>"+t.htmlCls.space3+"(for the shininess of the 3D objects, default 40)

    ",i+="2. Three directional lights:
    ",i+="Key Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light1' value='"+u+"' size=4>"+t.htmlCls.space3+"(for the light strength of the key light, default 0.8)
    ",i+="Fill Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light2' value='"+g+"' size=4>"+t.htmlCls.space3+"(for the light strength of the fill light, default 0.4)
    ",i+="Back Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light3' value='"+f+"' size=4>"+t.htmlCls.space3+"(for the light strength of the back light, default 0.2)

    ",i+="3. Thickness:
    "}return i+="Line Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"linerad_"+e+"' value='"+n+"' size=4>"+t.htmlCls.space3+"(for stabilizers, hydrogen bonds, distance lines, default 0.1)
    ",i+="Coil Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"coilrad_"+e+"' value='"+l+"' size=4>"+t.htmlCls.space3+"(for coils, default 0.3)
    ",i+="Stick Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"stickrad_"+e+"' value='"+r+"' size=4>"+t.htmlCls.space3+"(for sticks, default 0.4)
    ",i+="Cross-Linkage Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"crosslinkrad_"+e+"' value='"+o+"' size=4>"+t.htmlCls.space3+"(for cross-linkages, default 0.4)
    ",i+="Trace Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"tracerad_"+e+"' value='"+a+"' size=4>"+t.htmlCls.space3+"(for C alpha trace, O3' trace, default 0.4)
    ",i+="Ribbon Thickness: "+t.htmlCls.inputTextStr+"id='"+t.pre+"ribbonthick_"+e+"' value='"+c+"' size=4>"+t.htmlCls.space3+"(for helix and sheet ribbons, nucleotide ribbons, default 0.2)
    ",i+="Protein Ribbon Width: "+t.htmlCls.inputTextStr+"id='"+t.pre+"prtribbonwidth_"+e+"' value='"+h+"' size=4>"+t.htmlCls.space3+"(for helix and sheet ribbons, default 1.3)
    ",i+="Nucleotide Ribbon Width: "+t.htmlCls.inputTextStr+"id='"+t.pre+"nucleotideribbonwidth_"+e+"' value='"+p+"' size=4>"+t.htmlCls.space3+"(for nucleotide ribbons, default 0.8)
    ",i+="Ball Scale: "+t.htmlCls.inputTextStr+"id='"+t.pre+"ballscale_"+e+"' value='"+d+"' size=4>"+t.htmlCls.space3+"(for styles 'Ball and Stick' and 'Dot', default 0.3)
    ","style"==e&&(i+="
    4. Show Glycan Cartoon: "+t.htmlCls.inputTextStr+"id='"+t.pre+"glycan' value='"+C+"' size=4>"+t.htmlCls.space3+"(0: hide, 1: show, default 0)
    ",i+="
    5. Show Membrane: "+t.htmlCls.inputTextStr+"id='"+t.pre+"membrane' value='"+b+"' size=4>"+t.htmlCls.space3+"(0: hide, 1: show, default 1)
    ",i+="
    6. Enlarge Command Window: "+t.htmlCls.inputTextStr+"id='"+t.pre+"cmdwindow' value='"+y+"' size=4>"+t.htmlCls.space3+"(0: Regular, 1: Large, default 0)

    "),i+=t.htmlCls.spanNowrapStr+""+t.htmlCls.buttonStr+"apply_thickness_"+e+"'>Apply   ",i+=t.htmlCls.spanNowrapStr+""+t.htmlCls.buttonStr+"reset_thickness_"+e+"'>Reset",i}getCookie(e){let t=e+"=",s=decodeURIComponent(document.cookie).split(";");for(let e=0;e":(n+='
    ',n+="
    Selection: Name: "+s.htmlCls.inputTextStr+"id='"+s.pre+"seq_command_name"+e+"' value='seq_"+l+"' size='5'> "+s.htmlCls.space2+"

    ",n+=s.htmlCls.divStr+"seqguide"+e+"' style='display:none; white-space:normal;' class='icn3d-box'>"),n+=this.getSelectionHints();return n+="Residue labeling: standard residue with coordinates: UPPER case letter; nonstandard residue with coordinates: the first UPPER case letter plus a period except that water residue uses the letter 'O'; residue missing coordinates: lower case letter."+(s.utilsCls.isMac()&&!s.utilsCls.isMobile()?"

    Turn on scroll bar: System preferences -> General -> show scroll bars -> check Always":"")+"
    ",n}setAlignSequenceGuide(e,t){let s=this.icn3dui,i=s.icn3d,n="";let l=i&&i.defNames2Atoms?Object.keys(i.defNames2Atoms).length:1;n+='
    ',n+="
    Selection: Name: "+s.htmlCls.inputTextStr+"id='"+s.pre+"alignseq_command_name' value='alseq_"+l+"' size='10'> "+s.htmlCls.space2+"

    ",n+=s.htmlCls.divStr+"alignseqguide' style='display:none; white-space:normal;' class='icn3d-box'>",n+=this.getSelectionHints();return n+="Residue labeling: aligned residue with coordinates: UPPER case letter; non-aligned residue with coordinates: lower case letter which can be highlighted; residue missing coordinates: lower case letter which can NOT be highlighted."+(s.utilsCls.isMac()&&!s.utilsCls.isMobile()?"

    Turn on scroll bar: System preferences -> General -> show scroll bars -> check Always":"")+"
    ",n}getSelectionHints(){let e=this.icn3dui;e.icn3d;let t="";if(e.utilsCls.isMobile())t+='Select Aligned Sequences: touch to select, touch again to deselect, multiple selection is allowed without Ctrl key, click "Save Selection" to save the current selection.
    ';else{t+='Select on 1D sequences: drag to select, drag again to deselect, multiple selection is allowed without Ctrl key, click "Save Selection" to save the current selection.

    ',t+="Select on 2D interaction diagram: click on the nodes or lines. The nodes are chains and can be united with the Ctrl key. The lines are interactions and can NOT be united. Each click on the lines selects half of the lines, i.e., select the interacting residues in one of the two chains.

    ",t+="Select on 3D structures: "+(e.utilsCls.isMobile()?"use finger to pick":'hold "Alt" and use mouse to pick')+', click the second time to deselect, hold "Ctrl" to union selection, hold "Shift" to select a range, press the up/down arrow to switch among atom/residue/strand/chain/structure, click "Save Selection" to save the current selection.

    ',t+='Save the current selection(either on 3D structure, 2D interactions, or 1D sequence): open the menu "Select -> Save Selection", specify the name and description for the selection, and click "Save".

    '}return t}addGsizeSalt(e){let t=this.icn3dui;t.icn3d;let s="";s+="Grid Size: ",s+="Salt Concentration: M
    ",s}getFootHtml(e,t){let s=this.icn3dui;s.icn3d;let i="
    ";return"delphi"==e?s.cfg.cid?i+="Note: Partial charges(MMFF94) are from PubChem Compound SDF files.

    ":(i+="Note: Only the selected residues are used for DelPhi potential calculation by solving linear Poisson-Boltzmann equation.",i+='

    ',i+=s.htmlCls.divStr+t+"' style='display:none;'>",i+="
    The hydrogens and partial charges of proteins and nucleotides are added using DelPhiPKa with the Amber charge and size files. The hydrogens of ligands are added using Open Babel. The partial charges of ligands are calculated using Antechamber with the Gasteiger charge method. All partial charges are calculated at pH 7.

    ",i+='Lipids are treated as ligands. Please use "HETATM" instead of "ATOM " for each lipid atom in your PDB file. Each phosphate in lipids is assigned with a charge of -1. You can download PQR and modify it, or prepare your PQR file using other tools. Then load the PQR file at the menu "Analysis > Load PQR/Potential".

    ',i+="
    "):(i+="Note: Always load a PDB file before loading a PQR or DelPhi potential file.",i+='

    ',i+=s.htmlCls.divStr+t+"' style='display:none;'>",i+='The PDB file can be loaded in the URL with "pdbid=" or at "File > Open File". The PQR file can be prepared at the menu "Analysis > Download PQR" with your modification or using other tools. The DelPhi potential file can be calculated at DelPhi Web Server and be exported as a Cube file. ',"url"==e&&(i+="The PQR or potential file can be accessed in a URL if it is located in the same host as iCn3D."),i+="

    ",i+=""),i+="",i}getPotentialHtml(e,t){let s=this.icn3dui;s.icn3d;let i,n,l,r,o,a="";r="Equipotential Map",o="Surface with Potential","delphi"==e?n="delphi":"local"==e?(i="pqr",n="phi",l="cube"):"url"==e&&(i="pqrurl",n="phiurl",l="cubeurl"),a+=s.htmlCls.divStr+"dl_"+n+"' class='"+t+"'>",a+=s.htmlCls.setDialogCls.addNotebookTitle("dl_"+n,"DelPhi Potential"),a+=s.htmlCls.divStr+"dl_"+n+"_tabs' style='border:0px;'>",a+="",a+=s.htmlCls.divStr+n+"tab1'>","delphi"==e&&(a+=this.addGsizeSalt(n+"1")+"
    "),a+="Potential contour at: kT/e(25.6mV at 298K)

    ","delphi"==e?(a+=s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map",a+=s.htmlCls.buttonStr+n+"mapNo' style='margin-left:30px;'>Remove Map
    "):"local"==e?(a+=s.htmlCls.divStr+n+"tab1_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo'>Remove Map",a+=s.htmlCls.divStr+n+"tab1_"+i+"'>",a+=this.addGsizeSalt(i)+"
    ",a+="PQR File: "+s.htmlCls.inputFileStr+"id='"+s.pre+i+"file'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+n+"'>",a+="Phi File: "+s.htmlCls.inputFileStr+"id='"+s.pre+n+"file'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+l+"'>",a+="Cube File: "+s.htmlCls.inputFileStr+"id='"+s.pre+l+"file'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=""):"url"==e&&(a+=s.htmlCls.divStr+n+"tab1_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo'>Remove Map",a+=s.htmlCls.divStr+n+"tab1_"+i+"2'>",a+=this.addGsizeSalt(i)+"
    ",a+="PQR URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+i+"file'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+n+"2'>",a+="Phi URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+n+"file'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+l+"2'>",a+="Cube URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+l+"file'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=""),a+="
    "+this.getFootHtml(e,n+"tab1_foot"),a+="",a+=s.htmlCls.divStr+n+"tab2'>","delphi"==e&&(a+=this.addGsizeSalt(n+"2")+"
    "),a+="Surface with max potential at: kT/e(25.6mV at 298K)

    ",a+="Surface: ",a+="Opacity: ",a+="Wireframe:
    ",a+="
    ","delphi"==e?(a+=s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential",a+=s.htmlCls.buttonStr+n+"mapNo2' style='margin-left:30px;'>Remove Surface
    "):"local"==e?(a+=s.htmlCls.divStr+n+"tab2_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo2'>Remove Surface",a+=s.htmlCls.divStr+n+"tab2_"+i+"'>",a+=this.addGsizeSalt(i+"2")+"
    ",a+="PQR File: "+s.htmlCls.inputFileStr+"id='"+s.pre+i+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+n+"'>",a+="Phi File: "+s.htmlCls.inputFileStr+"id='"+s.pre+n+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+l+"'>",a+="Cube File: "+s.htmlCls.inputFileStr+"id='"+s.pre+l+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=""):"url"==e&&(a+=s.htmlCls.divStr+n+"tab2_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo2'>Remove Surface",a+=s.htmlCls.divStr+n+"tab2_"+i+"2'>",a+=this.addGsizeSalt(i+"2")+"
    ",a+="PQR URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+i+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+n+"2'>",a+="Phi URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+n+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+l+"2'>",a+="Cube URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+l+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=""),a+="
    "+this.getFootHtml(e,n+"tab2_foot"),a+="",a+="",a+="",a}async exportPqr(e){let t=this.icn3dui,s=t.icn3d,i={},n={},l=t.hashUtilsCls.intHash(s.dAtoms,s.hAtoms);for(let e in l)s.atoms[e],s.ions.hasOwnProperty(e)?i[e]=1:n[e]=1;let r=e?"pdb":"pqr";if(t.cfg.cid){let l="",o=!e;l+=s.saveFileCls.getAtomPDB(n,o)+s.saveFileCls.getAtomPDB(i,o);let a=Object.keys(t.utilsCls.getHlStructures()).join(",");s.saveFileCls.saveFile(a+"_icn3d."+r,"text",[l])}else{if(t.utilsCls.isCalphaPhosOnly(t.hashUtilsCls.hash2Atoms(n,s.atoms)))return void alert("The potential will not be shown because the side chains are missing in the structure...");let l="",o=!0;l+=s.saveFileCls.getAtomPDB(n,void 0,void 0,void 0,void 0,void 0,o),l+=s.saveFileCls.getAtomPDB(i,!0,void 0,!0);let a=t.htmlCls.baseUrl+"delphi/delphi.cgi",d={pdb2pqr:l,pdbid:t.cfg.cid?t.cfg.cid:Object.keys(s.structures).toString()},c=await t.getAjaxPostPromise(a,d,!0,void 0,void 0,!0,"text");if(e){let e=c.split("\n"),s="";for(let i=0,n=e.length;i Save File > iCn3D PNG Image"...');else if(-1!=r){let t=e.substr(r+l.length);i.htmlCls.clickMenuCls.setLogCmd("load iCn3D PNG image "+$("#"+i.pre+"pngimage").val(),!1),window.open(t,"_self")}else if(-1!=a){let i="Start of data file======\n",l=e.indexOf(i);n.bInputfile=-1!=l,n.bInputPNGWithData=n.bInputfile;let r=t?t.replace(/;/g,"\n"):"",h=e.indexOf("End of data file======\n");d=e.substr(l+i.length,h-l-i.length);let p="Start of type file======\n",m=e.indexOf(p),u=e.indexOf("End of type file======\n"),g=e.substr(m+p.length,u-m-p.length-1);n.InputfileType=g;let f=e.indexOf("End of state file======\n");c=e.substr(a+o.length,f-a-o.length),c=decodeURIComponent(c+"\n"+r),s&&("pdb"===g?(await n.pdbParserCls.loadPdbData(d),n.commands=[],n.optsHistory=[]):("mol2"===g?await n.mol2ParserCls.loadMol2Data(d):"sdf"===g?await n.sdfParserCls.loadSdfData(d):"xyz"===g?await n.xyzParserCls.loadXyzData(d):"mmcif"===g&&await n.mmcifParserCls.loadMmcifData(d),n.commands=[],n.optsHistory=[]),await n.loadScriptCls.loadScript(c,!0))}return{pdb:d,statefile:c}}fileSupport(){window.File&&window.FileReader&&window.FileList&&window.Blob||alert("The File APIs are not fully supported in this browser.")}getLinkColor(){let e="";return e+=", linkmap: {\n",e+='3: {"type": "peptidebond", "c":""},\n',e+='4: {"type": "ssbond", "c":"FFA500"},\n',e+='5: {"type": "ionic", "c":"0FF"},\n',e+='6: {"type": "ionicInside", "c":"FFF"},\n',e+='11: {"type": "contact", "c":"888"},\n',e+='12: {"type": "contactInside", "c":"FFF"},\n',e+='13: {"type": "hbond", "c":"0F0"},\n',e+='14: {"type": "hbondInside", "c":"FFF"},\n',e+='15: {"type": "clbond", "c":"006400"},\n',e+='17: {"type": "halogen", "c":"F0F"},\n',e+='18: {"type": "halogenInside", "c":"FFF"},\n',e+='19: {"type": "pication", "c":"F00"},\n',e+='20: {"type": "picationInside", "c":"FFF"},\n',e+='21: {"type": "pistacking", "c":"00F"},\n',e+='22: {"type": "pistackingInside", "c":"FFF"}\n',e+="}}\n",', linkmap: {\n3: {"type": "peptidebond", "c":""},\n4: {"type": "ssbond", "c":"FFA500"},\n5: {"type": "ionic", "c":"0FF"},\n6: {"type": "ionicInside", "c":"FFF"},\n11: {"type": "contact", "c":"888"},\n12: {"type": "contactInside", "c":"FFF"},\n13: {"type": "hbond", "c":"0F0"},\n14: {"type": "hbondInside", "c":"FFF"},\n15: {"type": "clbond", "c":"006400"},\n17: {"type": "halogen", "c":"F0F"},\n18: {"type": "halogenInside", "c":"FFF"},\n19: {"type": "pication", "c":"F00"},\n20: {"type": "picationInside", "c":"FFF"},\n21: {"type": "pistacking", "c":"00F"},\n22: {"type": "pistackingInside", "c":"FFF"}\n}}\n'}setCookieForThickness(){let e=this.icn3dui,t=e.icn3d;if(!e.bNode){let e=3650;this.setCookie("lineRadius",t.lineRadius,e),this.setCookie("coilWidth",t.coilWidth,e),this.setCookie("cylinderRadius",t.cylinderRadius,e),this.setCookie("crosslinkRadius",t.crosslinkRadius,e),this.setCookie("traceRadius",t.traceRadius,e),this.setCookie("dotSphereScale",t.dotSphereScale,e),this.setCookie("ribbonthickness",t.ribbonthickness,e),this.setCookie("helixSheetWidth",t.helixSheetWidth,e),this.setCookie("nucleicAcidWidth",t.nucleicAcidWidth,e)}}setLineThickness(e,t){let s=this.icn3dui,i=s.icn3d;if(i.bSetThickness=!0,"style"==e&&(t&&($("#"+s.pre+"shininess").val("40"),$("#"+s.pre+"light1").val("0.8"),$("#"+s.pre+"light2").val("0.4"),$("#"+s.pre+"light3").val("0.2"),$("#"+s.pre+"glycan").val("0"),$("#"+s.pre+"membrane").val("1"),$("#"+s.pre+"cmdwindow").val("0")),i.shininess=parseFloat($("#"+s.pre+"shininess").val()),i.light1=parseFloat($("#"+s.pre+"light1").val()),i.light2=parseFloat($("#"+s.pre+"light2").val()),i.light3=parseFloat($("#"+s.pre+"light3").val()),i.bGlycansCartoon=parseInt($("#"+s.pre+"glycan").val()),i.bMembrane=parseInt($("#"+s.pre+"membrane").val()),i.bCmdWindow=parseInt($("#"+s.pre+"cmdwindow").val())),t&&($("#"+s.pre+"linerad_"+e).val(.1),$("#"+s.pre+"coilrad_"+e).val(.3),$("#"+s.pre+"stickrad_"+e).val(.4),$("#"+s.pre+"crosslinkrad_"+e).val(.4),$("#"+s.pre+"tracerad_"+e).val(.4),$("#"+s.pre+"ballscale_"+e).val(.3),$("#"+s.pre+"ribbonthick_"+e).val(.2),$("#"+s.pre+"prtribbonwidth_"+e).val(1.3),$("#"+s.pre+"nucleotideribbonwidth_"+e).val(.8)),i.lineRadius=parseFloat($("#"+s.pre+"linerad_"+e).val()),i.coilWidth=parseFloat($("#"+s.pre+"coilrad_"+e).val()),i.cylinderRadius=parseFloat($("#"+s.pre+"stickrad_"+e).val()),i.crosslinkRadius=parseFloat($("#"+s.pre+"crosslinkrad_"+e).val()),i.traceRadius=parseFloat($("#"+s.pre+"tracerad_"+e).val()),i.dotSphereScale=parseFloat($("#"+s.pre+"ballscale_"+e).val()),i.ribbonthickness=parseFloat($("#"+s.pre+"ribbonthick_"+e).val()),i.helixSheetWidth=parseFloat($("#"+s.pre+"prtribbonwidth_"+e).val()),i.nucleicAcidWidth=parseFloat($("#"+s.pre+"nucleotideribbonwidth_"+e).val()),!s.bNode){let e=3650;this.setCookie("shininess",i.shininess,e),this.setCookie("light1",i.light1,e),this.setCookie("light2",i.light2,e),this.setCookie("light3",i.light3,e),this.setCookie("glycan",i.bGlycansCartoon,e),this.setCookie("membrane",i.bMembrane,e),this.setCookie("cmdwindow",i.bCmdWindow,e)}if(this.setCookieForThickness(),e=t){let e="reset thickness";s.htmlCls.clickMenuCls.setLogCmd(e,!0),i.bSetThickness=!1,i.threeDPrintCls.resetAfter3Dprint()}else s.htmlCls.clickMenuCls.setLogCmd("set thickness | linerad "+i.lineRadius+" | coilrad "+i.coilWidth+" | stickrad "+i.cylinderRadius+" | crosslinkrad "+i.crosslinkRadius+" | tracerad "+i.traceRadius+" | ribbonthick "+i.ribbonthickness+" | proteinwidth "+i.helixSheetWidth+" | nucleotidewidth "+i.nucleicAcidWidth+" | ballscale "+i.dotSphereScale,!0),s.htmlCls.clickMenuCls.setLogCmd("set glycan "+i.bGlycansCartoon,!0),s.htmlCls.clickMenuCls.setLogCmd("set membrane "+i.bMembrane,!0),s.htmlCls.clickMenuCls.setLogCmd("set cmdwindow "+i.bCmdWindow,!0);i.drawCls.draw()}setCookie(e,t,s){let i=new Date;i.setTime(i.getTime()+24*s*60*60*1e3);let n="expires="+i.toUTCString();document.cookie=e+"="+t+";"+n+";path=/"}updateSurfPara(e){let t=this.icn3dui,s=t.icn3d;s.phisurftype=$("#"+t.pre+e+"surftype").val(),s.phisurfop=$("#"+t.pre+e+"surfop").val(),s.phisurfwf=$("#"+t.pre+e+"surfwf").val()}exportPdb(){let e=this.icn3dui,t=e.icn3d,s="",i=e.hashUtilsCls.intHash(t.dAtoms,t.hAtoms);if(s+=t.saveFileCls.getAtomPDB(i),!e.bNode){let i=Object.keys(e.utilsCls.getHlStructures()).join(",");t.saveFileCls.saveFile(i+"_icn3d.pdb","text",[s])}return s}exportSecondary(){let e=this.icn3dui,t=e.icn3d,s="",i=e.hashUtilsCls.intHash(t.dAtoms,t.hAtoms);if(s+=t.saveFileCls.getSecondary(i),!e.bNode){let i=Object.keys(e.utilsCls.getHlStructures()).join(",");t.saveFileCls.saveFile(i+"_icn3d_ss.txt","text",[s])}return s}}class g{constructor(e){let t=e;this.icn3dui=e,this.cfg=this.icn3dui.cfg,this.opts={},this.opts.background="black",this.allMenus={},this.allMenusSel={},this.simpleMenus={},this.shownMenus={},this.WIDTH=400,this.HEIGHT=400,this.RESIDUE_WIDTH=10,t.utilsCls.isMobile()||this.cfg.mobilemenu?this.MENU_HEIGHT=0:this.MENU_HEIGHT=40,this.LOG_HEIGHT=65,this.MENU_WIDTH=750,this.LESSWIDTH=20,this.LESSWIDTH_RESIZE=20,this.LESSHEIGHT=20,this.width2d=200,this.CMD_HEIGHT=.8*this.LOG_HEIGHT,this.EXTRAHEIGHT=this.MENU_HEIGHT+this.CMD_HEIGHT,null!=this.cfg.showmenu&&0==this.cfg.showmenu&&(this.EXTRAHEIGHT-=this.MENU_HEIGHT),null!=this.cfg.showcommand&&0==this.cfg.showcommand&&(this.EXTRAHEIGHT-=this.CMD_HEIGHT),this.GREY8="#AAAAAA",this.GREYB="#CCCCCC",this.GREYC="#DDDDDD",this.GREYD="#EEEEEE",this.ORANGE="#FFA500",this.themecolor="blue",this.defaultValue=1,this.ssValue=3,this.coilValue=3,this.contactValue=11,this.contactInsideValue=12,this.hbondValue=13,this.hbondInsideValue=14,this.ssbondValue=4,this.ionicValue=5,this.ionicInsideValue=6,this.clbondValue=15,this.halogenValue=17,this.halogenInsideValue=18,this.picationValue=19,this.picationInsideValue=20,this.pistackingValue=21,this.pistackingInsideValue=22,this.contactColor="888",this.contactInsideColor="FFF",this.hbondColor="0F0",this.hbondInsideColor="FFF",this.ssbondColor="FFA500",this.ionicColor="0FF",this.ionicInsideColor="FFF",this.clbondColor="006400",this.halogenColor="F0F",this.halogenInsideColor="FFF",this.picationColor="F00",this.picationInsideColor="FFF",this.pistackingColor="00F",this.pistackingInsideColor="FFF",this.hideedges=1,this.force=4,this.simulation=void 0,this.baseUrl=window&&window.location&&"structure.ncbi.nlm.nih.gov"==window.location.hostname?"https://structure.ncbi.nlm.nih.gov/Structure/":"https://www.ncbi.nlm.nih.gov/Structure/",this.tmalignUrl=this.baseUrl+"tmalign/tmalign.cgi",this.divStr="
    ",this.spanNowrapStr="",this.inputTextStr="=2.0 are supported.")));const a=new pe(o,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});a.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e=0&&void 0===r[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}a.setExtensions(l),a.setPlugins(r),a.parse(s,i)}parseAsync(e,t){const s=this;return new Promise((function(i,n){s.parse(e,t,i,n)}))}}function C(){let e={};return{get:function(t){return e[t]},add:function(t,s){e[t]=s},remove:function(t){delete e[t]},removeAll:function(){e={}}}}const b={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression"};class y{constructor(e){this.parser=e,this.name=b.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let s=0,i=t.length;s=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,n.source,l)}}class R{constructor(e){this.parser=e,this.name=b.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,s=this.parser,i=s.json,n=i.textures[e];if(!n.extensions||!n.extensions[t])return null;const l=n.extensions[t],r=i.images[l.source];let o=s.textureLoader;if(r.uri){const e=s.options.manager.getHandler(r.uri);null!==e&&(o=e)}return this.detectSupport().then((function(n){if(n)return s.loadTextureImage(e,l.source,o);if(i.extensionsRequired&&i.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return s.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}}class I{constructor(e){this.name=b.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,s=t.bufferViews[e];if(s.extensions&&s.extensions[this.name]){const e=s.extensions[this.name],i=this.parser.getDependency("buffer",e.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return Promise.all([i,n.ready]).then((function(t){const s=e.byteOffset||0,i=e.byteLength||0,l=e.count,r=e.byteStride,o=new ArrayBuffer(l*r),a=new Uint8Array(t[0],s,i);return n.decodeGltfBuffer(new Uint8Array(o),l,r,a,e.mode,e.filter),o}))}return null}}const E="glTF",T=1313821514,P=5130562;class D{constructor(e){this.name=b.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,12);if(this.header={magic:THREE.LoaderUtils.decodeText(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==E)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const s=this.header.length-12,i=new DataView(e,12);let n=0;for(;n",t).replace("#include ",s).replace("#include ",i).replace("#include ",n).replace("#include ",l)},Object.defineProperties(this,{specular:{get:function(){return r.specular.value},set:function(e){r.specular.value=e}},specularMap:{get:function(){return r.specularMap.value},set:function(e){r.specularMap.value=e,e?this.defines.USE_SPECULARMAP="":delete this.defines.USE_SPECULARMAP}},glossiness:{get:function(){return r.glossiness.value},set:function(e){r.glossiness.value=e}},glossinessMap:{get:function(){return r.glossinessMap.value},set:function(e){r.glossinessMap.value=e,e?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_UV=""):(delete this.defines.USE_GLOSSINESSMAP,delete this.defines.USE_UV)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(e)}copy(e){return super.copy(e),this.specularMap=e.specularMap,this.specular.copy(e.specular),this.glossinessMap=e.glossinessMap,this.glossiness=e.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this}}class L{constructor(){this.name=b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,this.specularGlossinessParams=["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity"]}getMaterialType(){return H}extendParams(e,t,s){const i=t.extensions[this.name];e.color=new Color(1,1,1),e.opacity=1;const n=[];if(Array.isArray(i.diffuseFactor)){const t=i.diffuseFactor;e.color.fromArray(t),e.opacity=t[3]}if(void 0!==i.diffuseTexture&&n.push(s.assignTexture(e,"map",i.diffuseTexture,sRGBEncoding)),e.emissive=new Color(0,0,0),e.glossiness=void 0!==i.glossinessFactor?i.glossinessFactor:1,e.specular=new Color(1,1,1),Array.isArray(i.specularFactor)&&e.specular.fromArray(i.specularFactor),void 0!==i.specularGlossinessTexture){const t=i.specularGlossinessTexture;n.push(s.assignTexture(e,"glossinessMap",t)),n.push(s.assignTexture(e,"specularMap",t,sRGBEncoding))}return Promise.all(n)}createMaterial(e){const t=new H(e);return t.fog=!0,t.color=e.color,t.map=void 0===e.map?null:e.map,t.lightMap=null,t.lightMapIntensity=1,t.aoMap=void 0===e.aoMap?null:e.aoMap,t.aoMapIntensity=1,t.emissive=e.emissive,t.emissiveIntensity=1,t.emissiveMap=void 0===e.emissiveMap?null:e.emissiveMap,t.bumpMap=void 0===e.bumpMap?null:e.bumpMap,t.bumpScale=1,t.normalMap=void 0===e.normalMap?null:e.normalMap,t.normalMapType=TangentSpaceNormalMap,e.normalScale&&(t.normalScale=e.normalScale),t.displacementMap=null,t.displacementScale=1,t.displacementBias=0,t.specularMap=void 0===e.specularMap?null:e.specularMap,t.specular=e.specular,t.glossinessMap=void 0===e.glossinessMap?null:e.glossinessMap,t.glossiness=e.glossiness,t.alphaMap=null,t.envMap=void 0===e.envMap?null:e.envMap,t.envMapIntensity=1,t}}class N{constructor(){this.name=b.KHR_MESH_QUANTIZATION}}class q extends THREE.Interpolant{constructor(e,t,s,i){super(e,t,s,i)}copySampleValue_(e){const t=this.resultBuffer,s=this.sampleValues,i=this.valueSize,n=e*i*3+i;for(let e=0;e!==i;e++)t[e]=s[n+e];return t}}q.prototype.beforeStart_=q.prototype.copySampleValue_,q.prototype.afterEnd_=q.prototype.copySampleValue_,q.prototype.interpolate_=function(e,t,s,i){const n=this.resultBuffer,l=this.sampleValues,r=this.valueSize,o=2*r,a=3*r,d=i-t,c=(s-t)/d,h=c*c,p=h*c,m=e*a,u=m-a,g=-2*p+3*h,f=p-h,C=1-g,b=f-h+c;for(let e=0;e!==r;e++){const t=l[u+e+r],s=l[u+e+o]*d,i=l[m+e+r],a=l[m+e]*d;n[e]=C*t+b*s+g*i+f*a}return n};const U=new THREE.Quaternion;class B extends q{interpolate_(e,t,s,i){const n=super.interpolate_(e,t,s,i);return U.fromArray(n).normalize().toArray(n),n}}const j=0,z=1,G=2,V=3,W=4,Y=5,X=6,K={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},J={9728:THREE.NearestFilter,9729:THREE.LinearFilter,9984:THREE.NearestMipmapNearestFilter,9985:THREE.LinearMipmapNearestFilter,9986:THREE.NearestMipmapLinearFilter,9987:THREE.LinearMipmapLinearFilter},Z={33071:THREE.ClampToEdgeWrapping,33648:THREE.MirroredRepeatWrapping,10497:THREE.RepeatWrapping},Q={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},ee={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},te={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},se={CUBICSPLINE:void 0,LINEAR:THREE.InterpolateLinear,STEP:THREE.InterpolateDiscrete},ie="OPAQUE",ne="MASK",le="BLEND";function re(e,t,s){for(const i in s.extensions)void 0===e[i]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[i]=s.extensions[i])}function oe(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function ae(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let s=0,i=t.weights.length;s{const s=this.associations.get(e);null!=s&&this.associations.set(t,s);for(const[s,i]of e.children.entries())n(i,t.children[s])};return n(s,i),i.name+="_instance_"+e.uses[t]++,i}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let s=0;s=2&&m.setY(t,c[e*l+1]),l>=3&&m.setZ(t,c[e*l+2]),l>=4&&m.setW(t,c[e*l+3]),l>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return m}))}loadTexture(e){const t=this.json,s=this.options,i=t.textures[e].source,n=t.images[i];let l=this.textureLoader;if(n.uri){const e=s.manager.getHandler(n.uri);null!==e&&(l=e)}return this.loadTextureImage(e,i,l)}loadTextureImage(e,t,s){const i=this,n=this.json,l=n.textures[e],r=n.images[t],o=(r.uri||r.bufferView)+":"+l.sampler;if(this.textureCache[o])return this.textureCache[o];const a=this.loadImageSource(t,s).then((function(t){t.flipY=!1,l.name&&(t.name=l.name);const s=(n.samplers||{})[l.sampler]||{};return t.magFilter=J[s.magFilter]||LinearFilter,t.minFilter=J[s.minFilter]||LinearMipmapLinearFilter,t.wrapS=Z[s.wrapS]||RepeatWrapping,t.wrapT=Z[s.wrapT]||RepeatWrapping,i.associations.set(t,{textures:e}),t})).catch((function(){return null}));return this.textureCache[o]=a,a}loadImageSource(e,t){const s=this,i=this.json,n=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then((e=>e.clone()));const l=i.images[e],r=self.URL||self.webkitURL;let o=l.uri||"",a=!1;if(void 0!==l.bufferView)o=s.getDependency("bufferView",l.bufferView).then((function(e){a=!0;const t=new Blob([e],{type:l.mimeType});return o=r.createObjectURL(t),o}));else if(void 0===l.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const d=Promise.resolve(o).then((function(e){return new Promise((function(s,i){let l=s;!0===t.isImageBitmapLoader&&(l=function(e){const t=new Texture(e);t.needsUpdate=!0,s(t)}),t.load(THREE.LoaderUtils.resolveURL(e,n.path),l,void 0,i)}))})).then((function(e){var t;return!0===a&&r.revokeObjectURL(o),e.userData.mimeType=l.mimeType||((t=l.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e})).catch((function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),e}));return this.sourceCache[e]=d,d}assignTexture(e,t,s,i){const n=this;return this.getDependency("texture",s.index).then((function(l){if(void 0===s.texCoord||0==s.texCoord||"aoMap"===t&&1==s.texCoord||console.warn("THREE.GLTFLoader: Custom UV set "+s.texCoord+" for texture "+t+" not yet supported."),n.extensions[b.KHR_TEXTURE_TRANSFORM]){const e=void 0!==s.extensions?s.extensions[b.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=n.associations.get(l);l=n.extensions[b.KHR_TEXTURE_TRANSFORM].extendTexture(l,e),n.associations.set(l,t)}}return void 0!==i&&(l.encoding=i),e[t]=l,l}))}assignFinalMaterial(e){const t=e.geometry;let s=e.material;const i=void 0===t.attributes.tangent,n=void 0!==t.attributes.color,l=void 0===t.attributes.normal;if(e.isPoints){const e="PointsMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new PointsMaterial,Material.prototype.copy.call(t,s),t.color.copy(s.color),t.map=s.map,t.sizeAttenuation=!1,this.cache.add(e,t)),s=t}else if(e.isLine){const e="LineBasicMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new LineBasicMaterial,Material.prototype.copy.call(t,s),t.color.copy(s.color),this.cache.add(e,t)),s=t}if(i||n||l){let e="ClonedMaterial:"+s.uuid+":";s.isGLTFSpecularGlossinessMaterial&&(e+="specular-glossiness:"),i&&(e+="derivative-tangents:"),n&&(e+="vertex-colors:"),l&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=s.clone(),n&&(t.vertexColors=!0),l&&(t.flatShading=!0),i&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(s))),s=t}s.aoMap&&void 0===t.attributes.uv2&&void 0!==t.attributes.uv&&t.setAttribute("uv2",t.attributes.uv),e.material=s}getMaterialType(){return MeshStandardMaterial}loadMaterial(e){const t=this,s=this.json,i=this.extensions,n=s.materials[e];let l;const r={},o=n.extensions||{},a=[];if(o[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){const e=i[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];l=e.getMaterialType(),a.push(e.extendParams(r,n,t))}else if(o[b.KHR_MATERIALS_UNLIT]){const e=i[b.KHR_MATERIALS_UNLIT];l=e.getMaterialType(),a.push(e.extendParams(r,n,t))}else{const s=n.pbrMetallicRoughness||{};if(r.color=new Color(1,1,1),r.opacity=1,Array.isArray(s.baseColorFactor)){const e=s.baseColorFactor;r.color.fromArray(e),r.opacity=e[3]}void 0!==s.baseColorTexture&&a.push(t.assignTexture(r,"map",s.baseColorTexture,sRGBEncoding)),r.metalness=void 0!==s.metallicFactor?s.metallicFactor:1,r.roughness=void 0!==s.roughnessFactor?s.roughnessFactor:1,void 0!==s.metallicRoughnessTexture&&(a.push(t.assignTexture(r,"metalnessMap",s.metallicRoughnessTexture)),a.push(t.assignTexture(r,"roughnessMap",s.metallicRoughnessTexture))),l=this._invokeOne((function(t){return t.getMaterialType&&t.getMaterialType(e)})),a.push(Promise.all(this._invokeAll((function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,r)}))))}!0===n.doubleSided&&(r.side=DoubleSide);const d=n.alphaMode||ie;if(d===le?(r.transparent=!0,r.depthWrite=!1):(r.transparent=!1,d===ne&&(r.alphaTest=void 0!==n.alphaCutoff?n.alphaCutoff:.5)),void 0!==n.normalTexture&&l!==MeshBasicMaterial&&(a.push(t.assignTexture(r,"normalMap",n.normalTexture)),r.normalScale=new Vector2(1,1),void 0!==n.normalTexture.scale)){const e=n.normalTexture.scale;r.normalScale.set(e,e)}return void 0!==n.occlusionTexture&&l!==MeshBasicMaterial&&(a.push(t.assignTexture(r,"aoMap",n.occlusionTexture)),void 0!==n.occlusionTexture.strength&&(r.aoMapIntensity=n.occlusionTexture.strength)),void 0!==n.emissiveFactor&&l!==MeshBasicMaterial&&(r.emissive=(new Color).fromArray(n.emissiveFactor)),void 0!==n.emissiveTexture&&l!==MeshBasicMaterial&&a.push(t.assignTexture(r,"emissiveMap",n.emissiveTexture,sRGBEncoding)),Promise.all(a).then((function(){let s;return s=l===H?i[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(r):new l(r),n.name&&(s.name=n.name),oe(s,n),t.associations.set(s,{materials:e}),n.extensions&&re(i,s,n),s}))}createUniqueName(e){const t=PropertyBinding.sanitizeNodeName(e||"");let s=t;for(let e=1;this.nodeNamesUsed[s];++e)s=t+"_"+e;return this.nodeNamesUsed[s]=!0,s}loadGeometries(e){const t=this,s=this.extensions,i=this.primitiveCache;function n(e){return s[b.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then((function(s){return ue(s,e,t)}))}const l=[];for(let s=0,r=e.length;s0&&ae(h,n),h.name=t.createUniqueName(n.name||"mesh_"+e),oe(h,n),c.extensions&&re(i,h,c),t.assignFinalMaterial(h),a.push(h)}for(let s=0,i=a.length;s1?new Group:1===t.length?t[0]:new Object3D,r!==t[0])for(let e=0,s=t.length;e{const t=new Map;for(const[e,s]of n.associations)(e instanceof Material||e instanceof Texture)&&t.set(e,s);return e.traverse((e=>{const s=n.associations.get(e);null!=s&&t.set(e,s)})),t})(l),l}))}}function me(e,t,s,i){const n=s.nodes[e];return i.getDependency("node",e).then((function(e){if(void 0===n.skin)return e;let t;return i.getDependency("skin",n.skin).then((function(e){t=e;const s=[];for(let e=0,n=t.joints.length;e{const s=n[e];return s&&(l={profileId:e,profilePath:`${t}/${s.path}`,deprecated:!!s.deprecated}),!!l})),!l){if(!s)throw new Error("No matching profile name found");const e=n[s];if(!e)throw new Error(`No matching profile name found and default profile "${s}" missing.`);l={profileId:s,profilePath:`${t}/${e.path}`,deprecated:!!e.deprecated}}const r=await Ce(l.profilePath);let o;if(i){let t;if(t="any"===e.handedness?r.layouts[Object.keys(r.layouts)[0]]:r.layouts[e.handedness],!t)throw new Error(`No matching handedness, ${e.handedness}, in profile ${l.profileId}`);t.assetPath&&(o=l.profilePath.replace("profile.json",t.assetPath))}return{profile:r,assetPath:o}}const ye={xAxis:0,yAxis:0,button:0,state:fe.ComponentState.DEFAULT};class ve{constructor(e){this.componentProperty=e.componentProperty,this.states=e.states,this.valueNodeName=e.valueNodeName,this.valueNodeProperty=e.valueNodeProperty,this.valueNodeProperty===fe.VisualResponseProperty.TRANSFORM&&(this.minNodeName=e.minNodeName,this.maxNodeName=e.maxNodeName),this.value=0,this.updateFromComponent(ye)}updateFromComponent({xAxis:e,yAxis:t,button:s,state:i}){const{normalizedXAxis:n,normalizedYAxis:l}=function(e=0,t=0){let s=e,i=t;if(Math.sqrt(e*e+t*t)>1){const n=Math.atan2(t,e);s=Math.cos(n),i=Math.sin(n)}return{normalizedXAxis:.5*s+.5,normalizedYAxis:.5*i+.5}}(e,t);switch(this.componentProperty){case fe.ComponentProperty.X_AXIS:this.value=this.states.includes(i)?n:.5;break;case fe.ComponentProperty.Y_AXIS:this.value=this.states.includes(i)?l:.5;break;case fe.ComponentProperty.BUTTON:this.value=this.states.includes(i)?s:0;break;case fe.ComponentProperty.STATE:this.valueNodeProperty===fe.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(i):this.value=this.states.includes(i)?1:0;break;default:throw new Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`)}}}class _e{constructor(e,t){if(!(e&&t&&t.visualResponses&&t.gamepadIndices&&0!==Object.keys(t.gamepadIndices).length))throw new Error("Invalid arguments supplied");this.id=e,this.type=t.type,this.rootNodeName=t.rootNodeName,this.touchPointNodeName=t.touchPointNodeName,this.visualResponses={},Object.keys(t.visualResponses).forEach((e=>{const s=new ve(t.visualResponses[e]);this.visualResponses[e]=s})),this.gamepadIndices=Object.assign({},t.gamepadIndices),this.values={state:fe.ComponentState.DEFAULT,button:void 0!==this.gamepadIndices.button?0:void 0,xAxis:void 0!==this.gamepadIndices.xAxis?0:void 0,yAxis:void 0!==this.gamepadIndices.yAxis?0:void 0}}get data(){return{id:this.id,...this.values}}updateFromGamepad(e){if(this.values.state=fe.ComponentState.DEFAULT,void 0!==this.gamepadIndices.button&&e.buttons.length>this.gamepadIndices.button){const t=e.buttons[this.gamepadIndices.button];this.values.button=t.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,t.pressed||1===this.values.button?this.values.state=fe.ComponentState.PRESSED:(t.touched||this.values.button>fe.ButtonTouchThreshold)&&(this.values.state=fe.ComponentState.TOUCHED)}void 0!==this.gamepadIndices.xAxis&&e.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=e.axes[this.gamepadIndices.xAxis],this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis,this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis,this.values.state===fe.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>fe.AxisTouchThreshold&&(this.values.state=fe.ComponentState.TOUCHED)),void 0!==this.gamepadIndices.yAxis&&e.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=e.axes[this.gamepadIndices.yAxis],this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis,this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis,this.values.state===fe.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>fe.AxisTouchThreshold&&(this.values.state=fe.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach((e=>{e.updateFromComponent(this.values)}))}}class we{constructor(e,t,s){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No profile supplied");this.xrInputSource=e,this.assetUrl=s,this.id=t.profileId,this.layoutDescription=t.layouts[e.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach((e=>{const t=this.layoutDescription.components[e];this.components[e]=new _e(e,t)})),this.updateFromGamepad()}get gripSpace(){return this.xrInputSource.gripSpace}get targetRaySpace(){return this.xrInputSource.targetRaySpace}get data(){const e=[];return Object.values(this.components).forEach((t=>{e.push(t.data)})),e}updateFromGamepad(){Object.values(this.components).forEach((e=>{e.updateFromGamepad(this.xrInputSource.gamepad)}))}}class Se extends THREE.Object3D{constructor(){super(),this.motionController=null,this.envMap=null}setEnvironmentMap(e){return this.envMap==e||(this.envMap=e,this.traverse((e=>{e.isMesh&&(e.material.envMap=this.envMap,e.material.needsUpdate=!0)}))),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach((e=>{Object.values(e.visualResponses).forEach((e=>{const{valueNode:t,minNode:s,maxNode:i,value:n,valueNodeProperty:l}=e;t&&(l===fe.VisualResponseProperty.VISIBILITY?t.visible=n:l===fe.VisualResponseProperty.TRANSFORM&&(t.quaternion.slerpQuaternions(s.quaternion,i.quaternion,n),t.position.lerpVectors(s.position,i.position,n)))}))})))}}function Ae(e,t){!function(e,t){Object.values(e.components).forEach((e=>{const{type:s,touchPointNodeName:i,visualResponses:n}=e;if(s===fe.ComponentType.TOUCHPAD)if(e.touchPointNode=t.getObjectByName(i),e.touchPointNode){const t=new SphereGeometry(.001),s=new MeshBasicMaterial({color:255}),i=new Mesh(t,s);e.touchPointNode.add(i)}else console.warn(`Could not find touch dot, ${e.touchPointNodeName}, in touchpad component ${e.id}`);Object.values(n).forEach((e=>{const{valueNodeName:s,minNodeName:i,maxNodeName:n,valueNodeProperty:l}=e;if(l===fe.VisualResponseProperty.TRANSFORM){if(e.minNode=t.getObjectByName(i),e.maxNode=t.getObjectByName(n),!e.minNode)return void console.warn(`Could not find ${i} in the model`);if(!e.maxNode)return void console.warn(`Could not find ${n} in the model`)}e.valueNode=t.getObjectByName(s),e.valueNode||console.warn(`Could not find ${s} in the model`)}))}))}(e.motionController,t),e.envMap&&t.traverse((t=>{t.isMesh&&(t.material.envMap=e.envMap,t.material.needsUpdate=!0)})),e.add(t)}class xe{constructor(e=null){this.gltfLoader=e,this.path="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",this._assetCache={},this.gltfLoader||(this.gltfLoader=new f)}createControllerModel(e){const t=new Se;let s=null;return e.addEventListener("connected",(e=>{const i=e.data;"tracked-pointer"===i.targetRayMode&&i.gamepad&&be(i,this.path,"generic-trigger").then((({profile:e,assetPath:n})=>{t.motionController=new we(i,e,n);const l=this._assetCache[t.motionController.assetUrl];if(l)s=l.scene.clone(),Ae(t,s);else{if(!this.gltfLoader)throw new Error("GLTFLoader not set.");this.gltfLoader.setPath(""),this.gltfLoader.load(t.motionController.assetUrl,(e=>{this._assetCache[t.motionController.assetUrl]=e,s=e.scene.clone(),Ae(t,s)}),null,(()=>{throw new Error(`Asset ${t.motionController.assetUrl} missing or malformed.`)}))}})).catch((e=>{console.warn(e)}))})),e.addEventListener("disconnected",(()=>{t.motionController=null,t.remove(s),s=null})),t}}class ke extends THREE.EventDispatcher{constructor(e){if(super(),void 0===e)return void console.error("ControllerGestures must be passed a renderer");const t=new THREE.Clock;this.controller1=e.xr.getController(0),this.controller1.userData.gestures={index:0},this.controller1.userData.selectPressed=!1,this.controller1.addEventListener("selectstart",i),this.controller1.addEventListener("selectend",n),this.controller2=e.xr.getController(1),this.controller2.userData.gestures={index:1},this.controller2.userData.selectPressed=!1,this.controller2.addEventListener("selectstart",i),this.controller2.addEventListener("selectend",n),this.doubleClickLimit=.2,this.pressMinimum=.4,this.right=new THREE.Vector3(1,0,0),this.up=new THREE.Vector3(0,1,0),this.type="unknown",this.prevTap="none",this.clock=t;const s=this;function i(){const e=this.userData.gestures;e.startPosition=void 0,e.startTime=t.getElapsedTime(),-1==s.type.indexOf("tap")&&(e.taps=0),s.type="unknown",this.userData.selectPressed=!0}function n(){const e=this.userData.gestures;e.endTime=t.getElapsedTime();e.endTime-e.startTime.05&&(e.startPosition=this.controller1.position.clone())),this.controller2.userData.selectPressed&&void 0===t.startPosition&&(i=s-t.startTime,i>.05&&(t.startPosition=this.controller2.position.clone())),!this.controller1.userData.selectPressed&&"tap"===this.type&&(i=this.clock.getElapsedTime()-e.endTime,i>this.doubleClickLimit)){switch(e.taps){case 1:self.prevTap="tap";break;case 2:this.dispatchEvent({type:"doubletap",position:this.controller1.position,matrixWorld:this.controller1.matrixWorld}),self.prevTap="doubletap"}this.type="unknown",e.taps=0}if("unknown"===this.type&&this.touch)"doubletap"==self.prevTap?(this.type="pinch",this.startDistance=this.controller1.position.distanceTo(this.controller2.position),this.dispatchEvent({type:"pinch",delta:new THREE.Vector3(0,0,0),scale:1,initialise:!0})):(this.type="pan",this.startPosition=this.controller1.position.clone(),this.dispatchEvent({type:"pan",delta:new THREE.Vector3(0,0,0),initialise:!0}));else if(("pinch"===this.type||"pan"===this.type)&&"doubletap"==self.prevTap&&this.controller2.position){const e=this.controller1.position.distanceTo(this.controller2.position)/this.startDistance,t=this.controller1.position.clone().sub(this.startPosition);this.dispatchEvent({type:"pinch",delta:t,scale:e})}}}class Oe{constructor(e,t){this.config=void 0===t?{panelSize:{width:1,height:1},width:512,height:512,opacity:.7,body:{fontFamily:"Arial",fontSize:30,padding:2,backgroundColor:"#000",fontColor:"#fff",borderRadius:6}}:t,void 0===this.config.width&&(this.config.width=512),void 0===this.config.height&&(this.config.height=512),void 0===this.config.body&&(this.config.body={fontFamily:"Arial",size:30,padding:2,backgroundColor:"#000",fontColor:"#fff",borderRadius:6});const s=this.config.body;void 0===s.borderRadius&&(s.borderRadius=6),void 0===s.fontFamily&&(s.fontFamily="Arial"),void 0===s.padding&&(s.padding=2),void 0===s.fontSize&&(s.fontSize=30),void 0===s.backgroundColor&&(s.backgroundColor="#000"),void 0===s.fontColor&&(s.fontColor="#fff"),Object.entries(this.config).forEach((([e,t])=>{if(!("object"!=typeof t||"panelSize"===e||t instanceof THREE.WebGLRenderer||t instanceof THREE.Scene)){const e=void 0!==t.position?t.position:{x:0,y:0};void 0!==e.left&&void 0===e.x&&(e.x=e.left),void 0!==e.top&&void 0===e.y&&(e.y=e.top);const s=void 0!==t.width?t.width:this.config.width,i=void 0!==t.height?t.height:this.config.height;void 0!==e.right&&void 0===e.x&&(e.x=this.config.width-e.right-s),void 0!==e.bottom&&void 0===e.y&&(e.y=this.config.height-e.bottom-i),void 0===e.x&&(e.x=0),void 0===e.y&&(e.y=0),t.position=e,void 0===t.type&&(t.type="text")}}));const i=this.createOffscreenCanvas(this.config.width,this.config.height);this.context=i.getContext("2d"),this.context.save();const n=void 0!==this.config.opacity?this.config.opacity:.7,l=new THREE.MeshBasicMaterial({transparent:!0,opacity:n});this.panelSize=void 0!==this.config.panelSize?this.config.panelSize:{width:1,height:1};const r=new THREE.PlaneGeometry(this.panelSize.width,this.panelSize.height);this.mesh=new THREE.Mesh(r,l),this.texture=new THREE.CanvasTexture(i),this.mesh.material.map=this.texture,this.scene=this.config.scene;if(Object.values(this.config).filter((e=>"input-text"===e.type)).length>0){this.keyboard=new Re(this.panelSize.width,this.config.renderer);this.keyboard.mesh.position.set(0,-.3,.2),this.mesh.add(this.keyboard.mesh)}if(void 0===e)this.content={body:""},this.config.body.type="text";else{this.content=e;Object.values(t).filter((e=>"button"===e.type||"scroll"===e.overflow||"input-text"===e.type)).length>0&&(void 0===t||void 0===t.renderer?console.warn("CanvasUI: button, scroll or input-text in the config but no renderer"):(this.renderer=t.renderer,this.initControllers()))}this.selectedElements=[void 0,void 0],this.selectPressed=[!1,!1],this.scrollData=[void 0,void 0],this.intersects=[void 0,void 0],this.needsUpdate=!0,this.update()}getIntersectY(e){const t=this.config.height||512,s=this.intersects[e];return void 0===s||void 0===s.uv?0:(1-s.uv.y)*t}initControllers(){this.vec3=new THREE.Vector3,this.mat4=new THREE.Matrix4,this.raycaster=new THREE.Raycaster;const e=this;function t(t){const s=t.target===e.controller?0:1,i=e.selectedElements[s];if(void 0!==i)if("button"==i.type)e.select(s);else if("input-text"==i.type&&e.keyboard)if(e.keyboard.visible)e.keyboard.linkedUI=void 0,e.keyboard.linkedText=void 0,e.keyboard.linkedElement=void 0,e.keyboard.visible=!1;else{let t;e.keyboard.linkedUI=e,Object.entries(e.config).forEach((([e,s])=>{s==i&&(t=e)}));const s=(.5-(i.position.y+i.height+e.config.body.padding)/e.config.height)*e.panelSize.height,n=Math.max(e.panelSize.width,e.panelSize.height)/2;e.keyboard.position.set(0,-n/1.5-s,.1),e.keyboard.linkedText=e.content[t],e.keyboard.linkedName=t,e.keyboard.linkedElement=i,e.keyboard.visible=!0}}function s(t){const s=t.target===e.controller?0:1;if(e.selectPressed[s]=!0,void 0!==e.selectedElements[s]&&"scroll"==e.selectedElements[s].overflow){const t=e.selectedElements[s];e.scrollData[s]={scrollY:t.scrollY,rayY:e.getIntersectY(s)}}}function i(t){const s=t.target===e.controller?0:1;e.selectPressed[s]=!1,void 0!==e.selectedElements[s]&&"scroll"==e.selectedElements[s].overflow&&(e.scrollData[s]=void 0)}if(this.controller=this.renderer.xr.getController(0),this.controller.addEventListener("select",t),this.controller.addEventListener("selectstart",s),this.controller.addEventListener("selectend",i),this.controller1=this.renderer.xr.getController(1),this.controller1.addEventListener("select",t),this.controller1.addEventListener("selectstart",s),this.controller1.addEventListener("selectend",i),this.scene){const e=.015,t=new THREE.IcosahedronBufferGeometry(e),s=new THREE.MeshBasicMaterial({color:170}),i=new THREE.Mesh(t,s);i.visible=!1,this.scene.add(i);const n=new THREE.Mesh(t,s);n.visible=!1,this.scene.add(n),this.intersectMesh=[i,n]}}setClip(e){const t=this.context;if(t.restore(),t.save(),void 0!==e.clipPath){const s=new Path2D(e.clipPath);t.clip(s)}else{const s=void 0!==e.position?e.position:{x:0,y:0},i=e.borderRadius||0,n=e.width||this.config.width,l=e.height||this.config.height;if(t.beginPath(),0!==i){const e=Math.PI/2;t.moveTo(s.x+i,s.y),t.arc(s.x+i,s.y+i,i,e,2*e,!0),t.lineTo(s.x,s.y+l-i),t.arc(s.x+i,s.y+l-i,i,0,e,!0),t.lineTo(s.x+n-i,s.y+l),t.arc(s.x+n-i,s.y+l-i,i,3*e,4*e,!0),t.lineTo(s.x+n,s.y+i),t.arc(s.x+n-i,s.y+i,i,2*e,3*e,!0),t.closePath(),t.clip()}else t.rect(s.x,s.y,n,l),t.clip()}}setPosition(e,t,s){void 0!==this.mesh&&this.mesh.position.set(e,t,s)}setRotation(e,t,s){void 0!==this.mesh&&this.mesh.rotation.set(e,t,s)}updateElement(e,t){let s=this.content[e];void 0!==s?("object"==typeof s?s.content=t:s=t,this.content[e]=s,this.needsUpdate=!0):console.warn(`CanvasGUI.updateElement: No ${e} found`)}get panel(){return this.mesh}getElementAtLocation(e,t){const s=this,i=Object.entries(this.config).filter((([i,n])=>{if(!("object"!=typeof n||"panelSize"===i||"body"===i||n instanceof THREE.WebGLRenderer||n instanceof THREE.Scene)){const i=n.position,l=void 0!==n.width?n.width:s.config.width,r=void 0!==n.height?n.height:s.config.height;return e>=i.x&&e=i.y&&t0?(this.hover(t,s[0].uv),this.intersects[t]=s[0],this.scroll(t)):(this.hover(t),this.intersects[t]=void 0,this.scroll(t))}update(){if(void 0===this.mesh)return;if(this.controller&&this.handleController(this.controller,0),this.controller1&&this.handleController(this.controller1,1),this.keyboard&&this.keyboard.visible&&this.keyboard.update(),!this.needsUpdate)return;let e=this.context;e.clearRect(0,0,this.config.width,this.config.height);const t=this.config.body.backgroundColor?this.config.body.backgroundColor:"#000";!this.config.body.fontFamily||this.config.body.fontFamily;const s=this.config.body.fontColor?this.config.body.fontColor:"#fff";!this.config.body.fontSize||this.config.body.fontSize,this.setClip(this.config.body),e.fillStyle=t,e.fillRect(0,0,this.config.width,this.config.height);const i=this;Object.entries(this.content).forEach((([t,n])=>{const l=void 0!==i.config[t]?i.config[t]:i.config.body;if("none"!==(void 0!==l.display?l.display:"block")){const r=void 0!==l.position?l.position:{x:0,y:0},o=void 0!==l.width?l.width:i.config.width,a=void 0!==l.height?l.height:i.config.height;"button"!=l.type||n.toLowerCase().startsWith("")||(void 0===l.borderRadius&&(l.borderRadius=6),void 0===l.textAlign&&(l.textAlign="center")),i.setClip(l);const d=n.toLowerCase().startsWith(""),c=void 0!==i.selectedElements[0]&&this.selectedElements[0]===l||void 0!==i.selectedElements[1]&&this.selectedElements[1]===l;if(void 0!==l.backgroundColor&&(c&&"button"==l.type&&void 0!==l.hover?e.fillStyle=l.hover:e.fillStyle=l.backgroundColor,e.fillRect(r.x,r.y,o,a)),"text"==l.type||"button"==l.type||"input-text"==l.type){let h=!1;if(c?(d||"button"!=l.type?e.fillStyle=void 0!==l.hover?l.hover:void 0!==l.fontColor?l.fontColor:s:e.fillStyle=void 0!==l.fontColor?l.fontColor:s,h=void 0===l.hover):e.fillStyle=void 0!==l.fontColor?l.fontColor:s,d){const t=n.toUpperCase().substring(6,n.length-7);e.save(),e.translate(r.x,r.y);const s=new Path2D(t);e.fill(s),e.restore()}else i.wrapText(t,n);h&&(e.beginPath(),e.strokeStyle="#fff",e.lineWidth=2,e.rect(r.x,r.y,o,a),e.stroke())}else if("img"==l.type)if(void 0===l.img)this.loadImage(n).then((e=>{console.log(`w: ${e.width} | h: ${e.height}`),l.img=e,i.needsUpdate=!0,i.update()})).catch((e=>console.error(e)));else{const t=o/(l.img.width/l.img.height);e.drawImage(l.img,r.x,r.y,o,t)}}})),this.needsUpdate=!1,this.texture.needsUpdate=!0}loadImage(e){return new Promise(((t,s)=>{const i=new THREE.Image;i.addEventListener("load",(()=>t(i))),i.addEventListener("error",(e=>s(e))),i.src=e}))}createOffscreenCanvas(e,t){const s=document.createElement("canvas");return s.width=e,s.height=t,s}fillRoundedRect(e,t,s,i,n){const l=this.context;l.beginPath(),l.moveTo(e+n,t),l.lineTo(e+s-n,t),l.quadraticCurveTo(e+s,t,e+s,t+n),l.lineTo(e+s,t+i-n),l.quadraticCurveTo(e+s,t+i,e+s-n,t+i),l.lineTo(e+n,t+i),l.quadraticCurveTo(e,t+i,e,t+i-n),l.lineTo(e,t+n),l.quadraticCurveTo(e,t,e+n,t),l.closePath(),l.fill()}lookAt(e){void 0!==this.mesh&&(e instanceof Vector3?this.mesh.lookAt(e):console.error("CanvasUI lookAt called parameter not a THREE.Vector3"))}get visible(){return void 0!==this.mesh&&this.mesh.visible}set visible(e){this.mesh&&(this.mesh.visible=e)}get position(){if(void 0!==this.mesh)return this.mesh.position}set position(e){void 0!==this.mesh&&(e instanceof Vector3?this.mesh.position.copy(e):console.error("CanvasUI trying to set the mesh position using a parameter that is not a THREE.Vector3"))}get quaternion(){if(void 0!==this.mesh)return this.mesh.quaternion}set quaternion(e){void 0!==this.mesh&&(e instanceof QUaternion?this.mesh.quaternion.copy(e):console.error("CanvasUI trying to set the mesh quaternion using a parameter that is not a THREE.Quaternion"))}wrapText(e,t){const s=t.split(" ");let i="";const n=[],l=void 0!==this.config[e]?this.config[e]:this.config.body,r=void 0!==l.width?l.width:this.config.width,o=void 0!==l.height?l.height:this.config.height,a=void 0!==l.position?l.position:{x:0,y:0},d=void 0!==l.padding?l.padding:void 0!==this.config.body.padding?this.config.body.padding:10,c=void 0!==l.paddingTop?l.paddingTop:d,h=void 0!==l.paddingLeft?l.paddingLeft:d,p=void 0!==l.paddingBottom?l.paddingBottom:d,m=void 0!==l.paddingRight?l.paddingRight:d,u={x:a.x+h,y:a.y+c,width:r-h-m,height:o-c-p},g=void 0!==l.textAlign?l.textAlign:void 0!==this.config.body.textAlign?this.config.body.textAlign:"left",f=void 0!==l.fontSize?l.fontSize:void 0!==this.config.body.fontSize?this.config.body.fontSize:30,C=void 0!==l.fontFamily?l.fontFamily:void 0!==this.config.body.fontFamily?this.config.body.fontFamily:"Arial",b=f+(void 0!==l.leading?l.leading:void 0!==this.config.body.leading?this.config.body.leading:8),y=this.context;y.textAlign=g,y.font=`${f}px '${C}'`,s.forEach((function(e){let t=s.length>1?`${i}${e} `:e,l=y.measureText(t);if(l.width>u.width&&e.length>1)if(0==i.length&&l.width>u.width){for(;l.width>u.width;){let s=0;do{s++,t=e.substr(0,s),l=y.measureText(t)}while(l.widthu.height&&"scroll"===l.overflow){void 0===l.scrollY&&(l.scrollY=0);const e=void 0!==l.fontColor?l.fontColor:this.config.body.fontColor;y.fillStyle="#aaa",this.fillRoundedRect(a.x+r-12,a.y,12,o,6),y.fillStyle="#666";const t=u.height/v,s=t*o,i=-l.scrollY*t;this.fillRoundedRect(a.x+r-12,a.y+i,12,s,6),y.fillStyle=e,_=l.scrollY,l.minScrollY=u.height-v}let w,S=_+u.y+f/2;switch(g){case"center":w=u.x+u.width/2;break;case"right":w=u.x+u.width;break;default:w=u.x}n.forEach((e=>{S+b>0&&y.fillText(e,w,S),S+=b}))}}class Re{constructor(e,t,s="EN"){const i=this.getConfig(s);i.panelSize={width:e,height:.5*e},i.height=256,i.body={backgroundColor:"#555"},i.renderer=t;const n=this.getContent(s);this.keyboard=new Oe(n,i),this.keyboard.mesh.visible=!1,this.shift=!1}get mesh(){return this.keyboard.mesh}getConfig(e){const t={};let s=10;const i=39.2,n=49,l="#333",r="#000";let o=s,a=s;for(let e=0;e<10;e++){const d={type:"button",position:{x:a,y:o},width:i,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e)};t[`btn${e}`]=d,a+=49.2}o+=59,a=s;for(let e=0;e<10;e++){const d={type:"button",position:{x:a,y:o},width:i,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+10)};t[`btn${e+10}`]=d,a+=49.2}o+=59,a=s;for(let e=0;e<9;e++){const d=0==e||8==e?1.5*i+5:i,c={type:"button",position:{x:a,y:o},width:d,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+20)};t[`btn${e+20}`]=c,a+=d+s}o+=59,a=s;for(let e=0;e<5;e++){const d=0==e||4==e?88.4:2==e?186.8:i,c={type:"button",position:{x:a,y:o},width:d,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+30)};0==e&&(c.fontSize=20),t[`btn${e+30}`]=c,a+=d+s}return t}getContent(e,t=0){let s,i={};switch(this.language=e,this.keyboardIndex=t,t){case 0:s=["q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","@","⇧","z","x","c","v","b","n","m","⇦","","?123",","," ",".","↲"];for(let e=0;e","_","`","~",":",";","⇦","","abc",","," ",".","↲"];for(let e=0;e=0;e--){let s=t.scene.children[e];t.scene.remove(s)}else t.scene=new THREE.Scene;if(void 0!==t.scene_ghost)for(let e=t.scene_ghost.children.length-1;e>=0;e--){let s=t.scene_ghost.children[e];t.scene_ghost.remove(s)}else t.scene_ghost=new THREE.Scene;if(""!=s.htmlCls.setHtmlCls.getCookie("shininess")){let e=parseFloat(s.htmlCls.setHtmlCls.getCookie("shininess"));t.shininess!=e&&s.htmlCls.clickMenuCls.setLogCmd("set shininess "+e,!0),t.shininess=e}if(!s.bNode&&""!=s.htmlCls.setHtmlCls.getCookie("light1")){let e=parseFloat(s.htmlCls.setHtmlCls.getCookie("light1")),i=parseFloat(s.htmlCls.setHtmlCls.getCookie("light2")),n=parseFloat(s.htmlCls.setHtmlCls.getCookie("light3"));t.light1==e&&t.light2==i&&t.light3==n||s.htmlCls.clickMenuCls.setLogCmd("set light | light1 "+e+" | light2 "+i+" | light3 "+n,!0),t.light1=e,t.light2=i,t.light3=n}t.directionalLight=new THREE.DirectionalLight(16777215,t.light1),t.directionalLight2=new THREE.DirectionalLight(16777215,t.light2),t.directionalLight3=new THREE.DirectionalLight(16777215,t.light3),t.cam_z>0?(t.directionalLight.position.set(-1,1,1),t.directionalLight2.position.set(1,1,1),t.directionalLight3.position.set(1,1,-1),t.lightPos=new THREE.Vector3(-1,1,1),t.lightPos2=new THREE.Vector3(1,1,1),t.lightPos3=new THREE.Vector3(1,1,-1)):(t.directionalLight.position.set(-1,1,-1),t.directionalLight2.position.set(1,1,-1),t.directionalLight3.position.set(1,1,1),t.lightPos=new THREE.Vector3(-1,1,-1),t.lightPos2=new THREE.Vector3(1,1,-1),t.lightPos3=new THREE.Vector3(1,1,1));let i=new THREE.AmbientLight(4210752);if(t.scene.add(t.directionalLight),t.scene.add(i),void 0!==t.mdl)for(let e=t.mdl.children.length-1;e>=0;e--){let s=t.mdl.children[e];s.geometry&&s.geometry.dispose(),s.material&&s.material.dispose(),t.mdl.remove(s)}if(void 0!==t.mdlImpostor){for(let e=t.mdlImpostor.children.length-1;e>=0;e--){let s=t.mdlImpostor.children[e];s.geometry&&s.geometry.dispose(),s.material&&s.material.dispose(),t.mdlImpostor.remove(s)}t.mdlImpostor.children.length=0}s.bNode||t.renderer.renderLists.dispose(),t.mdl=new THREE.Object3D,t.mdlImpostor=new THREE.Object3D,t.scene.add(t.mdl),t.scene.add(t.mdlImpostor),t.mdl_ghost=new THREE.Object3D,t.scene_ghost.add(t.mdl_ghost),t.objects=[],t.objects_ghost=[],t.raycaster=new THREE.Raycaster,t.projector=new THREE.Projector,t.mouse=new THREE.Vector2;let n=s.parasCls.backgroundColors[t.opts.background.toLowerCase()];s.bNode||("transparent"===t.opts.background.toLowerCase()?t.renderer.setClearColor(n,0):t.renderer.setClearColor(n,1)),t.perspectiveCamera=new THREE.PerspectiveCamera(20,t.container.whratio,.1,1e4),t.perspectiveCamera.position.set(0,0,t.cam_z),t.perspectiveCamera.lookAt(new THREE.Vector3(0,0,0)),t.orthographicCamera=new THREE.OrthographicCamera,t.orthographicCamera.position.set(0,0,t.cam_z),t.orthographicCamera.lookAt(new THREE.Vector3(0,0,0)),t.cams={perspective:t.perspectiveCamera,orthographic:t.orthographicCamera}}setVrAr(){let e=this.icn3d;e.icn3dui;let t=this;e.bSetVrAr=!0,e.bVr?(e.canvasUI=this.createUI(),e.raycasterVR=new THREE.Raycaster,e.workingMatrix=new THREE.Matrix4,e.workingVector=new THREE.Vector3,e.origin=new THREE.Vector3,e.dolly=new THREE.Object3D,e.dolly.position.z=5,e.dolly.add(e.cam),e.scene.add(e.dolly),e.dollyId=e.dolly.id,e.dummyCam=new THREE.Object3D,e.cam.add(e.dummyCam),e.clock=new THREE.Clock,e.controllers=this.getControllers(),e.controllers.forEach((s=>{s.addEventListener("connected",(function(e){try{const s={},i="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",n="generic-trigger";be(e.data,i,n).then((({profile:i,assetPath:n})=>{s.name=i.profileId,s.targetRayMode=e.data.targetRayMode,Object.entries(i.layouts).forEach((([e,t])=>{const i={};Object.values(t.components).forEach((e=>{i[e.rootNodeName]=e.gamepadIndices})),s[e]=i})),t.updateControllers(s)}))}catch(e){}})),s.addEventListener("disconnected",(function(){this.remove(this.children[0]),e.controllers.forEach((e=>{}))}))}))):e.bAr&&(e.gestures=new ke(e.renderer),e.scene.add(e.gestures.controller1),e.scene.add(e.gestures.controller2),e.gestures.addEventListener("doubletap",(e=>{t.positionCenter()})),e.gestures.addEventListener("pinch",(s=>{if(void 0!==s.initialise)t.startPosition=e.mdl.position.clone(),t.startScale=e.mdl.scale.clone();else{let i=1;const n=t.startScale.clone().multiplyScalar(s.scale*i);e.mdl.scale.copy(n)}})))}positionCenter(){let e=this.icn3d;e.icn3dui;const t=e.gestures.controller1;e.mdl.position.set(-.06,0,-.6).applyMatrix4(t.matrixWorld),e.mdl.scale.copy(new THREE.Vector3(.005,.005,.005))}setVrArButtons(){let e=this.icn3d,t=e.icn3dui;e.bSetVrArButtons=!0,t.bNode||($("#"+t.pre+"VRButton").remove(),$("#"+t.pre+"viewer").get(0).appendChild(e.VRButtonCls.createButton(e.renderer)),$("#"+t.pre+"ARButton").remove(),$("#"+t.pre+"viewer").get(0).appendChild(e.ARButtonCls.createButton(e.renderer)))}updateControllers(e){this.icn3d.icn3dui,this.addEventForController(e,"right"),this.addEventForController(e,"left")}addEventForController(e,t){let s=this.icn3d;s.icn3dui;const i="right"==t?s.renderer.xr.getController(0):s.renderer.xr.getController(1),n="right"==t?e.right:e.left;if(i&&void 0!==n){let e=!1,t=!1;Object.keys(n).forEach((i=>{-1!=i.indexOf("trigger")&&(e=!0),-1!=i.indexOf("squeeze")&&(t=!0),-1==i.indexOf("thumbstick")&&-1==i.indexOf("touchpad")||(s.xAxisIndex=n[i].xAxis,s.yAxisIndex=n[i].yAxis)})),e&&(i.addEventListener("selectstart",(function(){this.userData.selectPressed=!0})),i.addEventListener("selectend",(function(){this.userData.selectPressed=!1,this.userData.selected=void 0}))),t&&(i.addEventListener("squeezestart",(function(){this.userData.squeezePressed=!0,s.cam.add(s.canvasUI.mesh)})),i.addEventListener("squeezeend",(function(){this.userData.squeezePressed=!1,s.cam.remove(s.canvasUI.mesh)})))}}createUI(){let e=this.icn3d,t=e.icn3dui,s=94,i=50,n=94,l=34,r=12,o="#1c94c4",a="#ccc",d="#fbcb09",c=20;const h={panelSize:{width:2,height:1.6},height:400,select:{type:"button",paddingTop:c,position:{top:6,left:6},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},residue:{type:"button",paddingTop:c,position:{top:62,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=2,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},secondarySelect:{type:"button",paddingTop:12,position:{top:118,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=3,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},chainSelect:{type:"button",paddingTop:c,position:{top:174,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=5,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},atom:{type:"button",paddingTop:c,position:{top:230,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=1,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},reset:{type:"button",paddingTop:c,position:{top:286,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.viewInterPairsCls.resetInteractionPairs(),e.selectionCls.resetAll(),e.cam.remove(e.canvasUI.mesh)}},togglehl:{type:"button",paddingTop:12,position:{top:342,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.hlUpdateCls.toggleHighlight(),e.cam.remove(e.canvasUI.mesh)}},style:{type:"button",paddingTop:c,position:{top:6,left:106},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},ribbon:{type:"button",paddingTop:c,position:{top:62,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","ribbon"),e.setOptionCls.setStyle("nucleotides","nucleotide cartoon"),e.cam.remove(e.canvasUI.mesh)}},schematic:{type:"button",paddingTop:c,position:{top:118,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","schematic"),e.setOptionCls.setStyle("nucleotides","schematic"),e.cam.remove(e.canvasUI.mesh)}},stick:{type:"button",paddingTop:c,position:{top:174,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","stick"),e.setOptionCls.setStyle("nucleotides","stick"),e.cam.remove(e.canvasUI.mesh)}},sphere:{type:"button",paddingTop:c,position:{top:230,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","sphere"),e.setOptionCls.setStyle("nucleotides","sphere"),e.cam.remove(e.canvasUI.mesh)}},surface:{type:"button",paddingTop:c,position:{top:286,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.opts.surface="molecular surface",e.applyMapCls.applySurfaceOptions(),e.cam.remove(e.canvasUI.mesh)}},surfaceTrn:{type:"button",paddingTop:12,position:{top:342,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.opts.surface="molecular surface",e.opts.opacity="0.2",e.applyMapCls.applySurfaceOptions(),e.cam.remove(e.canvasUI.mesh)}},color:{type:"button",paddingTop:c,position:{top:6,left:206},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},rainbow:{type:"button",paddingTop:c,position:{top:62,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","rainbow for chains"),e.cam.remove(e.canvasUI.mesh)}},atomColor:{type:"button",paddingTop:c,position:{top:118,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","atom"),e.cam.remove(e.canvasUI.mesh)}},chainColor:{type:"button",paddingTop:c,position:{top:174,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","chain"),e.cam.remove(e.canvasUI.mesh)}},secondaryColor:{type:"button",paddingTop:12,position:{top:230,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","secondary structure green"),e.cam.remove(e.canvasUI.mesh)}},charge:{type:"button",paddingTop:c,position:{top:342,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","charge"),e.cam.remove(e.canvasUI.mesh)}},AlphaFold:{type:"button",paddingTop:c,position:{top:286,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","confidence"),e.cam.remove(e.canvasUI.mesh)}},unicolor:{type:"button",paddingTop:c,position:{top:6,left:306},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},red:{type:"button",position:{top:i,left:300},width:n,height:l,fontColor:"red",hover:d,onSelect:function(){e.setOptionCls.setOption("color","red"),e.cam.remove(e.canvasUI.mesh)}},green:{type:"button",position:{top:78,left:300},width:n,height:l,fontColor:"green",hover:d,onSelect:function(){e.setOptionCls.setOption("color","green"),e.cam.remove(e.canvasUI.mesh)}},blue:{type:"button",position:{top:106,left:300},width:n,height:l,fontColor:"blue",hover:d,onSelect:function(){e.setOptionCls.setOption("color","blue"),e.cam.remove(e.canvasUI.mesh)}},blueviolet:{type:"button",position:{top:134,left:300},width:n,height:l,fontColor:"#8A2BE2",hover:d,onSelect:function(){e.setOptionCls.setOption("color","8A2BE2"),e.cam.remove(e.canvasUI.mesh)}},magenta:{type:"button",position:{top:162,left:300},width:n,height:l,fontColor:"magenta",hover:d,onSelect:function(){e.setOptionCls.setOption("color","magenta"),e.cam.remove(e.canvasUI.mesh)}},yellow:{type:"button",position:{top:190,left:300},width:n,height:l,fontColor:"yellow",hover:d,onSelect:function(){e.setOptionCls.setOption("color","yellow"),e.cam.remove(e.canvasUI.mesh)}},orange:{type:"button",position:{top:218,left:300},width:n,height:l,fontColor:"orange",hover:d,onSelect:function(){e.setOptionCls.setOption("color","FFA500"),e.cam.remove(e.canvasUI.mesh)}},cyan:{type:"button",position:{top:246,left:300},width:n,height:l,fontColor:"cyan",hover:d,onSelect:function(){e.setOptionCls.setOption("color","cyan"),e.cam.remove(e.canvasUI.mesh)}},gray:{type:"button",position:{top:274,left:300},width:n,height:l,fontColor:"gray",hover:d,onSelect:function(){e.setOptionCls.setOption("color","888888"),e.cam.remove(e.canvasUI.mesh)}},white:{type:"button",position:{top:302,left:300},width:n,height:l,fontColor:"white",hover:d,onSelect:function(){e.setOptionCls.setOption("color","white"),e.cam.remove(e.canvasUI.mesh)}},analysis:{type:"button",paddingTop:c,position:{top:6,left:406},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},distance:{type:"button",paddingTop:c,position:{top:62,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){try{e.bMeasureDistance=!0;let s=e.pickingCls.getPickedAtomList(e.pk,e.pAtom),i=e.pickingCls.getPickedAtomList(e.pk,e.pAtom2),n=e.applyCenterCls.centerAtoms(t.hashUtilsCls.hash2Atoms(s,e.atoms)).center,l=e.applyCenterCls.centerAtoms(t.hashUtilsCls.hash2Atoms(i,e.atoms)).center,r=0,o=0,a="#FFFF00",d=(n.x+l.x)/2,c=(n.y+l.y)/2,h=(n.z+l.z)/2,p=!0;e.analysisCls.addLine(n.x,n.y,n.z,l.x,l.y,l.z,a,p,"distance");let m=(parseInt(10*n.distanceTo(l))/10).toString()+" A";e.analysisCls.addLabel(m,d,c,h,r,a,o,"distance"),e.drawCls.draw(),e.cam.remove(e.canvasUI.mesh)}catch(e){}}},interaction:{type:"button",paddingTop:c,position:{top:118,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){try{e.viewInterPairsCls.viewInteractionPairs(["selected"],["non-selected"],!1,"3d",1,1,1,1,1,1),e.cam.remove(e.canvasUI.mesh)}catch(e){}}},delphi:{type:"button",paddingTop:c,position:{top:174,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:async function(){e.phisurftype=22,e.phisurfop=1,e.phisurfwf="no",await e.delphiCls.CalcPhi(65,.15,2,!0),e.cam.remove(e.canvasUI.mesh)}},removeLabel:{type:"button",paddingTop:c,position:{top:230,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){for(let t in e.labels)e.labels[t]=[];e.drawCls.draw(),e.cam.remove(e.canvasUI.mesh)}},renderer:e.renderer},p=new Oe({select:"Select",residue:"Residue",secondarySelect:"Secondary Structure",chainSelect:"Chain",atom:"Atom",reset:"Reset",togglehl:"Toggle Highlight",style:"Style",ribbon:"Ribbon",schematic:"Schematic",stick:"Stick",sphere:"Sphere",surface:"Surface",surfaceTrn:"Transparent Surface",color:"Color",rainbow:"Rainbow",atomColor:"Atom",chainColor:"Chain",secondaryColor:"Secondary Structure",AlphaFold:"AlphaFold",charge:"Charge",unicolor:"UniColor",red:"M 100 15 L 15 15 L 15 100 L 100 100 Z",green:"M 100 15 L 15 15 L 15 100 L 100 100 Z",blue:"M 100 15 L 15 15 L 15 100 L 100 100 Z",blueviolet:"M 100 15 L 15 15 L 15 100 L 100 100 Z",magenta:"M 100 15 L 15 15 L 15 100 L 100 100 Z",yellow:"M 100 15 L 15 15 L 15 100 L 100 100 Z",orange:"M 100 15 L 15 15 L 15 100 L 100 100 Z",cyan:"M 100 15 L 15 15 L 15 100 L 100 100 Z",gray:"M 100 15 L 15 15 L 15 100 L 100 100 Z",white:"M 100 15 L 15 15 L 15 100 L 100 100 Z",analysis:"Analysis",distance:"Distance",interaction:"Interaction",delphi:"DelPhi Potential",removeLabel:"Remove Label"},h);return p.mesh.position.set(0,0,-3),p}createUILog(){let e=this.icn3d;e.icn3dui;const t={panelSize:{width:2,height:2},height:512,info:{type:"text",overflow:"scroll",position:{top:6,left:6},width:506,height:506,backgroundColor:"#aaa",fontColor:"#000"},renderer:e.renderer},s=new Oe({info:"Debug info"},t);return s.mesh.position.set(0,-1,-2),s}getControllers(){let e=this.icn3d;e.icn3dui;const t=new xe,s=(new THREE.BufferGeometry).setFromPoints([new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,-1)]),i=new THREE.Line(s);i.name="line",i.scale.z=50;const n=[];for(let s=0;s<=1;s++){const l=e.renderer.xr.getController(s);if(!l)continue;e.dolly.add(l),l.add(i.clone()),l.userData.selectPressed=!1,e.cam.add(l),n.push(l);const r=e.renderer.xr.getControllerGrip(s);r.add(t.createControllerModel(r)),e.scene.add(r)}return n}}class Ee{constructor(e){this.icn3d=e}setCamera(){let e=this.icn3d,t=e.icn3dui;if(e.bControlGl&&!t.bNode){window.cam=e.cams[e.opts.camera.toLowerCase()];let s=e.maxD;if(window.cam===e.perspectiveCamera){let i=void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>e.maxatomcnt;i?window.camMaxDFactor=1:void 0!==window.camMaxDFactorFog?window.camMaxDFactor=window.camMaxDFactorFog:window.camMaxDFactor=3,window.cam_z>0?window.cam.position.z=s*window.camMaxDFactor:window.cam.position.z=-s*window.camMaxDFactor,"yes"===e.opts.slab?i?window.cam.near=.1:void 0!==window.camMaxDFactorFog?window.cam.near=s*window.camMaxDFactorFog-10:window.cam.near=s*window.camMaxDFactor:window.cam.near=.1,window.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.TrackballControls(window.cam,void 0,e):t.bNode?e.controls=new THREE.TrackballControls(e.cam,document,e):e.controls=new THREE.TrackballControls(e.cam,document.getElementById(e.id),e)}else window.cam===e.orthographicCamera&&(void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>10*e.maxatomcnt?window.cam.right=e.maxD/2*1.5:window.cam.right=e.maxD/2*2.5,window.cam.left=-window.cam.right,window.cam.top=window.cam.right/e.container.whratio,window.cam.bottom=-window.cam.right/e.container.whratio,"yes"===e.opts.slab?window.cam.near=2*e.maxD:window.cam.near=0,window.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.OrthographicTrackballControls(window.cam,void 0,e):t.bNode?e.controls=new THREE.OrthographicTrackballControls(e.cam,document,e):e.controls=new THREE.OrthographicTrackballControls(e.cam,document.getElementById(e.id),e));window.cam.updateProjectionMatrix()}e.cam=e.cams[e.opts.camera.toLowerCase()];let s=e.maxD;if(e.cam===e.perspectiveCamera){let i=void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>e.maxatomcnt;i?e.camMaxDFactor=1:void 0!==e.camMaxDFactorFog?e.camMaxDFactor=e.camMaxDFactorFog:e.camMaxDFactor=3,e.cam_z>0?e.cam.position.z=s*e.camMaxDFactor:e.cam.position.z=-s*e.camMaxDFactor,"yes"===e.opts.slab?i?e.cam.near=.1:void 0!==e.camMaxDFactorFog?e.cam.near=s*e.camMaxDFactorFog-10:e.cam.near=s*e.camMaxDFactor:e.cam.near=.1,e.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.TrackballControls(e.cam,void 0,e):t.bNode?e.controls=new THREE.TrackballControls(e.cam,document,e):e.controls=new THREE.TrackballControls(e.cam,document.getElementById(e.id),e)}else e.cam===e.orthographicCamera&&(void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>10*e.maxatomcnt?e.cam.right=e.maxD/2*1.5:e.cam.right=e.maxD/2*2.5,e.cam.left=-e.cam.right,e.cam.top=e.cam.right/e.container.whratio,e.cam.bottom=-e.cam.right/e.container.whratio,"yes"===e.opts.slab?e.cam.near=2*e.maxD:e.cam.near=0,e.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.OrthographicTrackballControls(e.cam,void 0,e):t.bNode?e.controls=new THREE.OrthographicTrackballControls(e.cam,document,e):e.controls=new THREE.OrthographicTrackballControls(e.cam,document.getElementById(e.id),e));e.cam.updateProjectionMatrix()}}class Te{constructor(e){this.icn3d=e}setFog(e){let t=this.icn3d,s=t.icn3dui.parasCls.backgroundColors[t.opts.background.toLowerCase()];if(e){let e=t.applyCenterCls.centerAtoms(t.hAtoms);t.maxD=e.maxD,t.maxD<25&&(t.maxD=25)}let i=void 0!==t.biomtMatrices&&t.biomtMatrices.length*t.cnt>t.maxatomcnt;if("yes"===t.opts.fog)if("perspective"===t.opts.camera)if(i)t.scene.fog=void 0,t.bSetFog=!1;else{let e=t._zoomFactor>1?1*t._zoomFactor:t._zoomFactor;t.scene.fog=new THREE.Fog(s,2.5*t.maxD*e,4*t.maxD*e),t.bSetFog=!0,t.camMaxDFactorFog=3}else"orthographic"===t.opts.camera&&(t.scene.fog=void 0,t.bSetFog=!1);else t.scene.fog=void 0,t.bSetFog=!1}}class Pe{constructor(e){this.icn3d=e}createBox(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(o.bNode)return;void 0===t&&(t=.8),void 0===s&&(s=!1),void 0===i&&(i=.8),l?void 0===n&&(n=r.hColor):void 0===n&&(n=e.color);let a=s?t:(o.parasCls.vdwRadii[e.elem.toUpperCase()]||t)*(i||1);this.createBox_base(e.coord,a,n,l)}createBox_base(e,t,s,i,n,l,r){let o,a=this.icn3d;a.icn3dui.bNode||(void 0===r&&(r=l?.5:1),new THREE.BoxGeometry(1,1,1),o=new THREE.Mesh(a.boxGeometry,new THREE.MeshPhongMaterial({transparent:!0,opacity:r,specular:a.frac,shininess:a.shininess,emissive:a.emissive,color:s})),o.scale.x=o.scale.y=o.scale.z=t,o.position.copy(e),a.mdl.add(o),i?a.prevHighlightObjects.push(o):n?a.prevOtherMesh.push(o):a.objects.push(o))}createBoxRepresentation_P_CA(e,t,s){let i=this.icn3d;if(i.icn3dui.bNode)return;let n=this;i.reprSubCls.createRepresentationSub(e,(function(e){"CA"!==e.name&&"O3'"!==e.name&&"O3*"!==e.name||n.createBox(e,void 0,void 0,t,void 0,s)}))}}class De{constructor(e){this.icn3d=e}createBrick(e,t,s,i){let n=this.icn3d;if(n.icn3dui.bNode)return;let l=new THREE.CylinderGeometry(1,1,1,4,1),r=new THREE.Mesh(l,new THREE.MeshPhongMaterial({specular:n.frac,shininess:n.shininess,emissive:n.emissive,color:i}));r.position.copy(e).add(t).multiplyScalar(.5),r.matrixAutoUpdate=!1,r.lookAt(t.clone().sub(e)),r.updateMatrix(),r.matrix.multiply((new THREE.Matrix4).makeScale(s,s,e.distanceTo(t))).multiply((new THREE.Matrix4).makeRotationX(.5*Math.PI)),n.mdl.add(r)}}class Me{constructor(e){this.icn3d=e}createCurveSubArrow(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u){if(this.icn3d.icn3dui.bNode)return;let g=[],f=[];g.push(e),f.push(o),this.prepareStrand(g,f,t,s,i,void 0,n,l,r,a,d,!1,c,h,p,m,u),g=[],f=[]}createStripArrow(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g){if(this.icn3d.icn3dui.bNode)return;let f=[],C=[];f.push(e),f.push(t),C.push(o),C.push(a),this.prepareStrand(f,C,void 0,s,i,n,l,void 0,r,d,c,!0,h,p,m,u,g),f=[],C=[]}prepareStrand(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g,f){let C=this.icn3d,b=C.icn3dui;if(1===d.length)return;let y=i,v=!u,_=[];_.push(i[i.length-2]),_.push(i[i.length-1]),n=n||C.axisDIV;let w,S,A,x,k=2/(a-1),O={};for(let e=0,s=t.length;e1)if(void 0!==d){let i,n,l=[];for(let r=0,o=p.length;r0&&i.tubeCls.createTube(a,"CA",i.coilWidth,s),Object.keys(d).length>0&&i.strandCls.createStrand(d,void 0,void 0,!0,0,i.helixSheetWidth,!1,2*i.ribbonthickness,s)):(Object.keys(a).length>0&&i.tubeCls.createTube(a,"CA",i.coilWidth),Object.keys(d).length>0&&i.strandCls.createStrand(d,void 0,void 0,!0,0,i.helixSheetWidth,!1,2*i.ribbonthickness))}createCylinderCurve(e,t,s,i,n){let l=this.icn3d;if(l.icn3dui.bNode)return;let r,o,a,d,c,h,p=null;for(a in e)if(d=e[a],!d.het&&(c=d.structure+"_"+d.chain,h=d.structure+"_"+r,-1!=t.indexOf(d.name))){if(null!==p&&r===d.chain&&l.ParserUtilsCls.getResiNCBI(h,o)+1===l.ParserUtilsCls.getResiNCBI(c,d.resi)&&Math.abs(p.coord.x-d.coord.x)<8&&Math.abs(p.coord.y-d.coord.y)<8&&Math.abs(p.coord.z-d.coord.z)<8){let e=p.coord.clone().add(d.coord).multiplyScalar(.5);if(n)1===n&&(this.createCylinder(p.coord,e,s,p.color,n),this.createCylinder(e,d.coord,s,d.color,n),l.sphereCls.createSphere(d,s,!0,1,n));else if(i){let t=l.lineCls.createSingleLine(p.coord,e,p.color,!1);l.mdl.add(t),l.objects.push(t),t=l.lineCls.createSingleLine(e,d.coord,d.color,!1),l.mdl.add(t),l.objects.push(t)}else this.createCylinder(p.coord,e,s,p.color),this.createCylinder(e,d.coord,s,d.color),l.sphereCls.createSphere(d,s,!0,1,n)}p=d,r=d.chain,o=d.resi,l.sphereCls.createSphere(d,s,!0,1,n),2===n&&l.boxCls.createBox(d,void 0,void 0,void 0,void 0,n)}if(null!==p&&r===d.chain&&l.ParserUtilsCls.getResiNCBI(h,o)+1===l.ParserUtilsCls.getResiNCBI(c,d.resi)&&Math.abs(p.coord.x-d.coord.x)<8&&Math.abs(p.coord.y-d.coord.y)<8&&Math.abs(p.coord.z-d.coord.z)<8){let e=p.coord.add(d.coord).multiplyScalar(.5);if(n)1===n&&(this.createCylinder(p.coord,e,s,p.color,n),this.createCylinder(e,d.coord,s,d.color,n),l.sphereCls.createSphere(d,s,!0,1,n));else if(i){let t=l.lineCls.createSingleLine(p.coord,e,p.color,!1);l.mdl.add(t),l.objects.push(t),t=l.lineCls.createSingleLine(e,d.coord,d.color,!1),l.mdl.add(t),l.objects.push(t)}else this.createCylinder(p.coord,e,s,p.color),this.createCylinder(e,d.coord,s,d.color)}}}class Le{constructor(e){this.icn3d=e}createLineRepresentation(e,t){let s=this.icn3d;if(s.icn3dui.bNode)return;let i=new THREE.BufferGeometry,n=[],l=[],r=0,o=0;s.reprSubCls.createRepresentationSub(e,void 0,(function(e,t){if(e.color===t.color)n[r++]=e.coord.x,n[r++]=e.coord.y,n[r++]=e.coord.z,n[r++]=t.coord.x,n[r++]=t.coord.y,n[r++]=t.coord.z,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b;else{let s=e.coord.clone().add(t.coord).multiplyScalar(.5);n[r++]=e.coord.x,n[r++]=e.coord.y,n[r++]=e.coord.z,n[r++]=s.x,n[r++]=s.y,n[r++]=s.z,n[r++]=t.coord.x,n[r++]=t.coord.y,n[r++]=t.coord.z,n[r++]=s.x,n[r++]=s.y,n[r++]=s.z,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b}}));if(i.setAttribute("position",new THREE.BufferAttribute(new Float32Array(n),3)),i.setAttribute("color",new THREE.BufferAttribute(new Float32Array(l),3)),2!==t){let e;1===t||(e=new THREE.LineSegments(i,new THREE.LineBasicMaterial({linewidth:s.linewidth,vertexColors:!0})),s.mdl.add(e)),1===t?s.prevHighlightObjects.push(e):s.objects.push(e)}else 2===t&&s.boxCls.createBoxRepresentation_P_CA(e,.8,t)}createConnCalphSidechain(e,t){let s=this.icn3d;if(s.icn3dui.bNode)return;let i={};for(let s in e){let n=e[s];if(!n.het&&n.style2===t){i[n.structure+"_"+n.chain+"_"+n.resi]=1}}let n=[],l=[];for(let e in i){let t=s.firstAtomObjCls.getFirstAtomObjByName(s.residues[e],"CA");if(void 0!==t)for(let e=0,i=t.bonds.length;e=t.bonds.length&&e.bonds.length>1)s=e.serial,l=e.bonds[0],d=e.bonds[1];else{if(!(t.bonds.length>=e.bonds.length&&t.bonds.length>1))return void console.log("Double bond was not drawn due to the undefined cross plane");s=t.serial,l=t.bonds[0],d=t.bonds[1]}let i=r.atoms[s].coord.clone();i.sub(r.atoms[l].coord);let n=r.atoms[s].coord.clone();n.sub(r.atoms[d].coord),i.cross(n),0==parseInt(1e4*i.length())&&(i=new THREE.Vector3(.2,.3,.5)),c=t.coord.clone(),c.sub(e.coord),c.cross(i).normalize().multiplyScalar(.2*o),0==parseInt(1e4*c.length())&&(i=new THREE.Vector3(.5,.3,.2),c.cross(i).normalize().multiplyScalar(.2*o))}e.color===t.color?r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),t.coord.clone().add(c),a,e.color,n),r.cylinderCls.createCylinder(e.coord.clone().sub(c),t.coord.clone().sub(c),a,e.color,n)):r.bImpo?r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),t.coord.clone().add(c),a,e.color,n,t.color),r.cylinderCls.createCylinder(e.coord.clone().sub(c),t.coord.clone().sub(c),a,e.color,n,t.color)):r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),i.clone().add(c),a,e.color,n),r.cylinderCls.createCylinder(t.coord.clone().add(c),i.clone().add(c),a,t.color,n),r.cylinderCls.createCylinder(e.coord.clone().sub(c),i.clone().sub(c),a,e.color,n),r.cylinderCls.createCylinder(t.coord.clone().sub(c),i.clone().sub(c),a,t.color,n))}else if(r.aromaticbonds.hasOwnProperty(l)){let s,l,d;if(e.bonds.length>t.bonds.length&&e.bonds.length>1)s=e.serial,l=e.bonds[0],d=e.bonds[1];else{if(!(t.bonds.length>1))return;s=t.serial,l=t.bonds[0],d=t.bonds[1]}let c=r.atoms[s].coord.clone();c.sub(r.atoms[l].coord);let h=r.atoms[s].coord.clone();h.sub(r.atoms[d].coord),c.cross(h);let p=t.coord.clone();p.sub(e.coord),p.cross(c).normalize().multiplyScalar(.2*o);let m=0;for(let s=0,i=e.bondOrder.length;so+1?(s=k.clone(),i=d.atoms[j[j.length-1-o-1]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random()))):U[m]&&"CA"===p.name&&(j.length>o+1?(s=k.clone(),i=d.atoms[j[j.length-1-o-1]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random())),s.normalize(),s.multiplyScalar(C),null!==I&&s.dot(I)<0&&s.negate(),I=s;for(let e=0,s=2/(t-1);e6||c&&Math.abs(S.y-c.y)>6||c&&Math.abs(S.z-c.z)>6;if((g!==p.chain||p.ssbegin||p.ssend||z||$==W&&"coil"!=p.ss)&&u[0].length>0){let c="CA",g=[],f=[];if(isNaN(d.atoms[D].resi))g=[];else{let e=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)-1).toString(),t=d.firstAtomObjCls.getAtomCoordFromResi(e,c);g=void 0!==t?[t]:[]}if(!isNaN(d.atoms[D].resi)){let e=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)+1).toString(),t=d.firstAtomObjCls.getAtomCoordFromResi(e,c);void 0!==t&&f.push(t);let s=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)+2).toString(),i=d.firstAtomObjCls.getAtomCoordFromResi(s,c);void 0!==i&&f.push(i)}if(!z){1===a||2===a?w.push(d.hColor):w.push(R),C=p.ssend&&"sheet"===p.ss?0:"coil"===E&&p.ssbegin||T&&p.ssbegin||"coil"===p.ss?n:l;let s,i,o=4;"O"===p.name?(s=A.clone(),s.sub(S)):U[m]&&"CA"===p.name&&(j.length>o?(s=S.clone(),i=d.atoms[j[j.length-1-o]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random())),s.normalize(),s.multiplyScalar(C),null!==I&&s.dot(I)<0&&s.negate(),I=s;for(let e=0,s=2/(t-1);e0){let e="CA",n=[],l=[];if(isNaN(d.atoms[D].resi))n=[];else{let t=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)-1).toString();d.firstAtomObjCls.getAtomCoordFromResi(t,e)}for(let e=0;!i&&e0&&(o!==c.chain||Math.abs(c.coord.x-h.coord.x)>6||Math.abs(c.coord.y-h.coord.y)>6||Math.abs(c.coord.z-h.coord.z)>6||r.ParserUtilsCls.getResiNCBI(c.structure+"_"+o,a)+13||Math.abs(c.coord.y-h.coord.y)>3||Math.abs(c.coord.z-h.coord.z)>3))){if(2!==i){if(!isNaN(d.resi)&&!isNaN(h.resi)){let e=d.structure+"_"+d.chain+"_"+(parseInt(d.resi)-1).toString(),i=r.firstAtomObjCls.getAtomCoordFromResi(e,t);g=void 0!==i?[i]:[];let l=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+1).toString(),o=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+2).toString(),a=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+3).toString();if(r.residues.hasOwnProperty(l)){let e=r.firstAtomObjCls.getAtomFromResi(l,t);void 0!==e&&e.ssbegin&&(l=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+2).toString(),o=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+3).toString(),p.push(e.coord),n?u.push(this.getCustomtubesize(l)):u.push(this.getRadius(s,e)),m.push(e.color))}if(1==p.length&&r.residues.hasOwnProperty(l)){let e=r.firstAtomObjCls.getAtomFromResi(l,t);if(e){p.push(e.coord),m.push(e.color);let t=this.getRadius(s,c);u.push(t),l=o,o=a}}let C=r.firstAtomObjCls.getAtomCoordFromResi(l,t);void 0!==C&&f.push(C);let b=r.firstAtomObjCls.getAtomCoordFromResi(o,t);void 0!==b&&f.push(b)}b.push({pnts:p,colors:m,radii:u,prevone:g,nexttwo:f})}p=[],m=[],u=[],g=[],f=[],d=c,C=0}if(0==p.length&&!isNaN(c.resi)){let e=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)-1).toString();r.residues.hasOwnProperty(e)&&(h=r.firstAtomObjCls.getAtomFromResi(e,t),void 0!==h&&h.ssend&&(p.push(h.coord),n?u.push(this.getCustomtubesize(e)):u.push(this.getRadius(s,h)),m.push(h.color)))}let e;p.push(c.coord),e=n?this.getCustomtubesize(c.structure+"_"+c.chain+"_"+c.resi):this.getRadius(s,c),l||"coil"==c.ss||c.ssbegin||c.ssend||(e=0),u.push(e),m.push(c.color),1===C&&(m[m.length-2]=c.color),o=c.chain,a=c.resi;let y=1.2;2!==i||c.ssbegin||r.boxCls.createBox(c,void 0,void 0,y,void 0,i),++C,h=c}if(2!==i){if(g=[],void 0!==d&&!isNaN(d.resi)){let e=d.structure+"_"+d.chain+"_"+(parseInt(d.resi)-1).toString(),s=r.firstAtomObjCls.getAtomCoordFromResi(e,t);g=void 0!==s?[s]:[]}if(f=[],void 0!==c&&!isNaN(c.resi)){let e=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+1).toString(),i=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+2).toString(),n=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+3).toString();if(1==p.length&&r.residues.hasOwnProperty(e)){let l=r.firstAtomObjCls.getAtomFromResi(e,t);if(l){p.push(l.coord),m.push(l.color);let t=this.getRadius(s,c);u.push(t),e=i,i=n}}let l=r.firstAtomObjCls.getAtomCoordFromResi(e,t);void 0!==l&&f.push(l);let o=r.firstAtomObjCls.getAtomCoordFromResi(i,t);void 0!==o&&f.push(o)}b.push({pnts:p,colors:m,radii:u,prevone:g,nexttwo:f})}for(let e=0,t=b.length;e0&&(c=n);else if(g%1==0)n=s[g],n>0&&(c=n);else{let e=Math.floor(g),t=g-e;n=s[e]*(1-t)+s[e+1]*t,r||n<1*c&&(n=0)}e1?a.parasCls.thr(t[t.length-2]):a.parasCls.thr(t[e]),C[v++]=d.r,C[v++]=d.g,C[v++]=d.b}}let k,O=0;for(let e=0,t=S.length-1;er&&(l=r,e=1);for(let t=0;t0&&t.b<=100?.01*t.b:t.b>100?1:s.coilWidth),i}}class ze{constructor(e){this.icn3d=e}drawCartoonNucleicAcid(e,t,s,i){this.drawStrandNucleicAcid(e,2,t,!0,void 0,s,i)}drawStrandNucleicAcid(e,t,s,i,n,l,r){let o,a,d,c=this.icn3d;if(c.icn3dui.bNode)return;2===r&&(t=void 0,l=void 0),n=n||c.nucleicAcidWidth,s=s||c.axisDIV,t=t||c.nucleicAcidStrandDIV;let h=[];for(d=0;dy?y=b:b=y);let v=.8*C/y;if(g.width=b,g.height=y,f.clearRect(0,0,b,y),h)if(f.fillStyle="rgba("+n.r+","+n.g+","+n.b+","+n.a+")",f.strokeStyle="rgba("+l.r+","+l.g+","+l.b+","+l.a+")",f.lineWidth=r,p){let e=.4*b;this.circle(f,0,0,b,y,e)}else{let e=0;this.roundRect(f,0,0,b,y,e)}f.font="Bold "+a+"px "+o,f.textAlign="center",f.textBaseline="middle",f.fillStyle="rgba("+u.r+", "+u.g+", "+u.b+", 1.0)",f.strokeStyle="rgba("+u.r+", "+u.g+", "+u.b+", 1.0)",f.fillText(e,.5*b,.5*y);let _=new THREE.Texture(g);_.needsUpdate=!0;let w=new THREE.SpriteMaterial({map:_,depthTest:!1,depthWrite:!1});w.map.minFilter=THREE.LinearFilter;let S=new THREE.Sprite(w);return p?S.scale.set(.3*d,.3*d,1):S.scale.set(v*d,d,1),S.renderOrder=1,S}roundRect(e,t,s,i,n,l){e.beginPath(),e.moveTo(t+l,s),e.lineTo(t+i-l,s),e.quadraticCurveTo(t+i,s,t+i,s+l),e.lineTo(t+i,s+n-l),e.quadraticCurveTo(t+i,s+n,t+i-l,s+n),e.lineTo(t+l,s+n),e.quadraticCurveTo(t,s+n,t,s+n-l),e.lineTo(t,s+l),e.quadraticCurveTo(t,s,t+l,s),e.closePath(),e.fill(),e.stroke()}circle(e,t,s,i,n,l){e.beginPath(),e.arc(t+i/2,.9*(s+n/2),l,0,2*Math.PI,!0),e.closePath(),e.fill(),e.stroke()}}class Ve{constructor(e){this.icn3d=e,this.textSpriteCls=new Ge(e)}createLabelRepresentation(e){let t=this.icn3d;t.icn3dui;let s=t.oriMaxD/100;s<.4&&(s=.4);let i=3*s*t.labelScale;for(let s in e){let n=void 0!==e[s]?e[s]:[],l="black"!=t.opts.background?t.colorWhitebkgd:t.colorBlackbkgd;for(let e=0,r=n.length;e.99999)h.set(0,0,0,1);else if(e.y<-.99999)h.set(1,0,0,0);else{let t=new THREE.Vector3;t.set(e.z,0,-e.x).normalize();let s=Math.acos(e.y);h.setFromAxisAngle(t,s)}return c.applyQuaternion(h),c.scale.set(l,n,l),c.position.copy(t),c}setPc1Axes(e){let t=this.icn3d,s=t.icn3dui;if(s.bNode)return;let i=s.hashUtilsCls.intHash(t.hAtoms,t.dAtoms),n=[],l=Object.keys(i).length<100;for(let e in i){let s=t.atoms[e],i=s.structure+"_"+s.chain+"_"+s.resi;(l||""!=i)&&n.push(s.coord.clone())}let r=s.rmsdSuprCls.getEigenForSelection(n,n.length),o=new THREE.Vector3(r.h1[0],r.h1[1],r.h1[2]);if(0==r.k&&t.bRender)return void alert("Can't determine the first principal component. Please select a subset and try it again.");let a=t.applyCenterCls.centerAtoms(i),d=a.maxD,c=a.center,h=c.clone().add(o.normalize().multiplyScalar(.4*d)),p=o.normalize();if(s.htmlCls.clickMenuCls.setLogCmd("Principle X-Axis: "+p.x.toFixed(3)+" "+p.y.toFixed(3)+" "+p.z.toFixed(3),!1),e)return p;let m=new THREE.Vector3(r.h2[0],r.h2[1],r.h2[2]),u=c.clone().add(m.normalize().multiplyScalar(.3*d)),g=new THREE.Vector3(r.h3[0],r.h3[1],r.h3[2]),f=c.clone().add(g.normalize().multiplyScalar(.3*d));this.buildAxes(void 0,c,h,u,f,!0);let C=[c,h,u,f];return t.axes.push(C),t.drawCls.draw(),C}}class Ye{constructor(e){this.icn3d=e}showGlycans(){let e=this.icn3d,t=e.icn3dui;if(t.bNode)return;let s={},i=e.dAtoms;for(let n in i){let i=e.atoms[n];i.het&&-1!=t.parasCls.glycanHash.hasOwnProperty(i.resn)&&(void 0===s[i.resn]&&(s[i.resn]={}),"Misc"!=i.chain&&(s[i.resn][i.structure+"_"+i.chain+"_"+i.resi]=1))}let n=Object.keys(s);for(let i=0,l=n.length;i>2))+i+((2&t)>>1))*c+n+(1&t)]&this.ISDONE)<=3&&(t.push(t[i]),i=t.length-1,t.push(t[n]),n=t.length-1,t.push(t[l]),l=t.length-1),s.push(i),s.push(n),s.push(l)}}},Xe.prototype.laplacianSmooth=function(e,t,s){let i,n,l,r,o,a=new Array(t.length);for(i=0,n=t.length;ithis.origextent[1][0])&&(!(tthis.origextent[1][1])&&!(sthis.origextent[1][2]))},Ke.prototype.getFacesAndVertices=function(){let e,t,s=this.verts;for(e=0,t=s.length;eh&&(h=this.pmaxy-this.pminy),this.pmaxz-this.pminz>h&&(h=this.pmaxz-this.pminz),this.scaleFactor=(c-1)/h,this.scaleFactor=this.defaultScaleFactor,this.defaultScaleFactor*h>this.threshbox&&(c=Math.floor(this.threshbox),this.scaleFactor=(this.threshbox-1)/h),this.bCalcArea&&(this.scaleFactor=this.defaultScaleFactor),this.pLength=Math.ceil(this.scaleFactor*(this.pmaxx-this.pminx))+1,this.pWidth=Math.ceil(this.scaleFactor*(this.pmaxy-this.pminy))+1,this.pHeight=Math.ceil(this.scaleFactor*(this.pmaxz-this.pminz))+1,this.boundingatom(t),this.cutRadius=this.probeRadius*this.scaleFactor,this.vpBits=new Uint8Array(this.pLength*this.pWidth*this.pHeight),this.vpDistance=new Float64Array(this.pLength*this.pWidth*this.pHeight),this.vpAtomID=new Int32Array(this.pLength*this.pWidth*this.pHeight),this.vpColor=[],this.vpPot=[]},Ke.prototype.boundingatom=function(e){let t,s,i,n,l=[];for(let r in this.vdwRadii){if(!this.vdwRadii.hasOwnProperty(r))continue;let o=this.vdwRadii[r];l[r]=e?(o+this.probeRadius)*this.scaleFactor+.5:o*this.scaleFactor+.5,i=l[r]*l[r],this.widxz[r]=Math.floor(l[r])+1,this.depty[r]=new Int32Array(this.widxz[r]*this.widxz[r]),n=0;for(let e=0;ei?this.depty[r][n]=-1:(s=Math.sqrt(i-t),this.depty[r][n]=Math.floor(s)),n++}},Ke.prototype.fillvoxels=function(e,t){let s,i,n,l;for(s=0,l=this.vpBits.length;sc&&(a=c),b>h&&(b=h),v>p&&(v=p);let _,w=g[o*m+d*u+y],S=g[a*m+d*u+y],A=g[o*m+b*u+y],x=g[o*m+d*u+v],k=g[a*m+b*u+y],O=g[o*m+b*u+v],R=g[a*m+d*u+v],I=g[a*m+b*u+v],E=r.x-o,T=r.y-d,P=r.z-y,D=((w*(1-E)+S*E)*(1-T)+(A*(1-E)+k*E)*T)*(1-P)+((x*(1-E)+R*E)*(1-T)+(O*(1-E)+I*E)*T)*P,M=s*f+i*C+n;this.vpPot[M]=D,D>this.isovalue&&(D=this.isovalue),D<-this.isovalue&&(D=-this.isovalue),D>0?(D/=1*this.isovalue,_=new THREE.Color(1-D,1-D,1)):(D/=-1*this.isovalue,_=new THREE.Color(1,1-D,1-D)),this.vpColor[M]=_}}for(s=0,l=this.vpBits.length;s=this.pLength||g>=this.pWidth||f>=this.pHeight)continue;let h=u*S+g*this.pHeight+f;if(this.vpBits[h]&this.INOUT){let p=t[this.vpAtomID[h]];p.serial!=e.serial&&(l=s+a-Math.floor(.5+this.scaleFactor*(p.x+this.ptranx)),r=i+d-Math.floor(.5+this.scaleFactor*(p.y+this.ptrany)),o=n+c-Math.floor(.5+this.scaleFactor*(p.z+this.ptranz)),a*a+d*d+c*c=this.pLength||p>=this.pWidth||m>=this.pHeight)continue;let u=h*S+p*this.pHeight+m;if(this.vpBits[u]&this.ISDONE){let h=t[this.vpAtomID[u]];h.serial!=e.serial&&(l=s+a-Math.floor(.5+this.scaleFactor*(h.x+this.ptranx)),r=i+d-Math.floor(.5+this.scaleFactor*(h.y+this.ptrany)),o=n+c-Math.floor(.5+this.scaleFactor*(h.z+this.ptranz)),a*a+d*d+c*c-1&&r-1&&a-1&&o=h)||(this.vpBits[n]|=this.ISBOUND))},Ke.prototype.fastoneshell=function(e,t){let s,i,n,l,r,o,a,d,c,h,p,m,u=[];if(0===e.length)return u;let g={ix:-1,iy:-1,iz:-1},f=this.pWidth*this.pHeight;for(a=0,c=e.length;a-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,h-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,h-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,hm&&(m=this.pmaxy-this.pminy),this.pmaxz-this.pminz>m&&(m=this.pmaxz-this.pminz),this.scaleFactor=1,this.pLength=Math.floor(.5+this.scaleFactor*(this.pmaxx-this.pminx))+1,this.pWidth=Math.floor(.5+this.scaleFactor*(this.pmaxy-this.pminy))+1,this.pHeight=Math.floor(.5+this.scaleFactor*(this.pmaxz-this.pminz))+1,this.cutRadius=this.probeRadius*this.scaleFactor,this.vpBits=new Uint8Array(this.pLength*this.pWidth*this.pHeight),this.ccp4&&(this.vpGridTrans=new Array(this.pLength*this.pWidth*this.pHeight)),this.vpAtomID=new Uint8Array(this.pLength*this.pWidth*this.pHeight)},Je.prototype.transformMemPro=function(e,t,s,i){let n=e.clone();n.sub(s);let l=n.x*t[0]+n.y*t[1]+n.z*t[2]+i.x,r=n.x*t[3]+n.y*t[4]+n.z*t[5]+i.y,o=n.x*t[6]+n.y*t[7]+n.z*t[8]+i.z;return n.x=l,n.y=r,n.z=o,n},Je.prototype.fillvoxels=function(e,t){let s,i,n,l,r,o;for(s=0,l=this.vpBits.length;sthis.pLength&&(o=this.pLength),p>this.pWidth&&(p=this.pWidth),C>this.pHeight&&(C=this.pHeight);let b,y=l[r*a+h*d+f],v=l[o*a+h*d+f],_=l[r*a+p*d+f],w=l[r*a+h*d+C],S=l[o*a+p*d+f],A=l[r*a+p*d+C],x=l[o*a+h*d+C],k=l[o*a+p*d+C],O=n.x-r,R=n.y-h,I=n.z-f,E=((y*(1-O)+v*O)*(1-R)+(_*(1-O)+S*O)*R)*(1-I)+((w*(1-O)+x*O)*(1-R)+(A*(1-O)+k*O)*R)*I;E>this.isovalue&&(E=this.isovalue),E<-this.isovalue&&(E=-this.isovalue),E>0?(E/=1*this.isovalue,b=new THREE.Color(1-E,1-E,1)):(E/=-1*this.isovalue,b=new THREE.Color(1,1-E,1-E)),this.icn3d.atoms[t[s]].color=b,this.icn3d.atomPrevColors[t[s]]=b}}else{for(let p in t){let f,C=e[t[p]];if("DUM"!==C.resn){if(void 0!==this.rmsd_supr&&void 0!==this.rmsd_supr.rot){f=this.transformMemPro(C.coord,g,u,m).applyMatrix4(c)}else f=C.coord.clone().applyMatrix4(c);for(s=Math.floor(f.x)-this.maxdist,l=Math.ceil(f.x)+this.maxdist;s<=l;++s)if(!(s<0||s>this.header.xExtent*this.scaleFactor-1))for(i=Math.floor(f.y)-this.maxdist,r=Math.ceil(f.y)+this.maxdist;i<=r;++i)if(!(i<0||i>this.header.yExtent*this.scaleFactor-1))for(n=Math.floor(f.z)-this.maxdist,o=Math.ceil(f.z)+this.maxdist;n<=o;++n){if(n<0||n>this.header.zExtent*this.scaleFactor-1)continue;let e=s*a+i*d+n;h.push(e)}}}for(s=0,l=h.length;s=this.isovalue?1:0:"fofc"==this.type?(this.vpBits[e]=this.dataArray[e]>=this.isovalue||this.dataArray[e]<=-this.isovalue?1:0,this.vpAtomID[e]=this.dataArray[e]>=0?1:0):"em"==this.type&&(this.vpBits[e]=this.dataArray[e]>=this.isovalue?1:0)}}}else for(s=0;s=this.isovalue||this.dataArray[e]<=-this.isovalue?1:0,this.vpAtomID[t]=this.dataArray[e]>=0?1:0)}for(s=0,l=this.vpBits.length;s-1&&r-1&&a-1&&o1?"Structure":"",a=Object.keys(i).length>1?"Chain":"";n+=""+o+a+"ResidueNumberSASA (Å2)Percent OutIn/Out";for(let e in l.resid2area){let d=e.lastIndexOf("_"),c=e.substr(d+1),h=r.utilsCls.getIdArray(e.substr(0,d));o=Object.keys(s).length>1?""+h[0]+"":"",a=Object.keys(i).length>1?""+h[1]+"":"";let p="",m="";l.resid2area[e]=(l.resid2area[e]/t).toFixed(2),r.parasCls.residueArea.hasOwnProperty(c)&&(m=parseInt(l.resid2area[e]/r.parasCls.residueArea[c]*100),m>100&&(m=100),m>=50&&(p="out"),m<20&&(p="in")),n+=''+o+a+""+c+''+h[2]+''+l.resid2area[e]+''+m+"%"+p+""}return n+="",void(l.areahtml=n)}let p,m,u,g=c.vertices,f=c.faces,C=r.parasCls.thr("#00FFFF"),b=r.parasCls.thr("#00FF00"),y=r.parasCls.thr("#ff0000"),v=r.parasCls.thr("#00FFFF"),_=r.parasCls.thr("#0000FF"),w=r.parasCls.thr("#FF0000");11!=t&&12!=t&&13!=t&&14!=t||void 0===l.rmsd_supr||void 0===l.rmsd_supr.rot||(p=l.rmsd_supr.rot,m=l.rmsd_supr.trans1,u=l.rmsd_supr.trans2);let S=(11==t||12==t||13==t||14==t&&"delphi"!=l.loadPhiFrom)&&void 0!==l.rmsd_supr&&void 0!==l.rmsd_supr.rot;n=new THREE.BufferGeometry;let A,x=[],k=[],O=[],R=0;for(let e=0,s=g.length;e0?-parseInt(b.z):parseInt(b.z),y.onBeforeRender=function(e,t,s,i,n,o){let a,d=new THREE.Vector3(0,0,0),c=i.getAttribute("position").array;for(let e=0,t=c.length;e0?-parseInt(a.z):parseInt(a.z)},l.mdl.add(y),11==t||12==t?l.prevMaps.push(y):13==t?l.prevEmmaps.push(y):14==t?l.prevPhimaps.push(y):l.prevSurfaces.push(y)}}else{let e=new THREE.Mesh(n,new THREE.MeshPhongMaterial({specular:l.frac,shininess:20,emissive:l.emissive,vertexColors:!0,wireframe:s,opacity:i,transparent:!0,depthWrite:10==parseInt(10*i),side:THREE.DoubleSide}));e.renderOrder=-2,l.mdl.add(e),11==t||12==t?l.prevMaps.push(e):13==t?l.prevEmmaps.push(e):14==t?l.prevPhimaps.push(e):l.prevSurfaces.push(e)}c=null,g=null,f=null,n=null}transformMemPro(e,t,s,i,n){this.icn3d.icn3dui;let l=e.clone();l.sub(s),n&&console.log("sub coord: "+JSON.stringify(l));let r=l.x*t[0]+l.y*t[1]+l.z*t[2]+i.x,o=l.x*t[3]+l.y*t[4]+l.z*t[5]+i.y,a=l.x*t[6]+l.y*t[7]+l.z*t[8]+i.z;return l.x=r,l.y=o,l.z=a,n&&console.log("out coord: "+JSON.stringify(l)),l}SetupSurface(e){let t=this.icn3d;t.icn3dui;let s=e.threshbox,i=new Ke(t,s);i.initparm(e.extent,1!==e.type,e.bCalcArea,e.atomsToShow,e.header,e.data,e.matrix,e.isovalue,e.loadPhiFrom),i.fillvoxels(e.allatoms,e.extendedAtoms),i.buildboundary(),2===e.type&&(i.fastdistancemap(),i.boundingatom(!1),i.fillvoxelswaals(e.allatoms,e.extendedAtoms));let n=i.marchingcube();i.vpBits=null,i.vpDistance=null,i.vpAtomID=null;let l=i.getFacesAndVertices(e.atomsToShow);return l.area=n.area,l.serial2area=n.serial2area,l.scaleFactor=n.scaleFactor,i.faces=null,i.verts=null,l}SetupMap(e){let t=this.icn3d;if(t.icn3dui,!e.ccp4){let s,i=new Je(t);return i.initparm(e.header,e.data,e.matrix,e.isovalue,e.center,e.maxdist,e.pmin,e.pmax,e.water,e.type,e.rmsd_supr,e.loadPhiFrom,e.icn3d),i.fillvoxels(e.allatoms,e.extendedAtoms),e.header.bSurface||i.buildboundary(),e.header.bSurface||i.marchingcube(),i.vpBits=null,i.vpAtomID=null,e.header.bSurface||(s=i.getFacesAndVertices(e.allatoms,e.atomsToShow)),i.faces=null,i.verts=null,s}{let s,i=10,n=t.center?[t.center.x,t.center.y,t.center.z]:[0,0,0];if("2fofc"==e.type){s="2fofc";let l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes");t.ccp4ParserCls.makeChickenWire(r,s),l=null,r=null}else if("fofc"==e.type){s="fofc_neg";let l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes");t.ccp4ParserCls.makeChickenWire(r,s),s="fofc_pos",l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes"),t.ccp4ParserCls.makeChickenWire(r,s),l=null,r=null}}}}class Qe{constructor(e){this.icn3d=e}applyCenterOptions(e){let t,s=this.icn3d;switch(s.icn3dui,void 0===e&&(e=s.opts),e.rotationcenter.toLowerCase()){case"molecule center":void 0!==s.center&&this.setRotationCenter(s.center);break;case"pick center":void 0!==s.pAtom&&this.setRotationCenter(s.pAtom.coord);break;case"display center":t=this.centerAtoms(s.dAtoms).center,this.setRotationCenter(t);break;case"highlight center":t=this.centerAtoms(s.hAtoms).center,this.setRotationCenter(t)}}setRotationCenter(e){this.icn3d.icn3dui,this.setCenter(e)}setCenter(e){let t=this.icn3d;t.icn3dui,t.mdl.position.set(0,0,0),t.mdlImpostor.position.set(0,0,0),t.mdl_ghost.position.set(0,0,0),t.mdl.position.sub(e),t.mdlImpostor.position.sub(e),t.mdl_ghost.position.sub(e)}centerSelection(e,t){let s=this.icn3d,i=s.icn3dui;if(s.opts.rotationcenter="highlight center",void 0===e&&(e=i.hashUtilsCls.hash2Atoms(s.hAtoms,s.atoms)),t||(s._zoomFactor=1,s.mouseChange=new THREE.Vector2(0,0),s.quaternion=new THREE.Quaternion(0,0,0,1)),Object.keys(e).length>1){let t=this.centerAtoms(e);s.center=t.center,this.setCenter(s.center),s.cameraCls.setCamera()}}centerAtoms(e){let t=this.icn3d;t.icn3dui;let s=new THREE.Vector3(9999,9999,9999),i=new THREE.Vector3(-9999,-9999,-9999),n=new THREE.Vector3;for(let l in e){let e=t.atoms[l].coord;n.add(e),s.min(e),i.max(e)}let l=t.ParserUtilsCls.getGeoCenter(s,i);return{center:l,maxD:t.ParserUtilsCls.getStructureSize(e,s,i,l),pmin:s,pmax:i}}setWidthHeight(e,t){let s=this.icn3d;s.icn3dui,void 0===s.scaleFactor&&(s.scaleFactor=1),s.renderer.setSize(e*s.scaleFactor,t*s.scaleFactor),s.renderer.domElement.style.width=e*s.scaleFactor+"px",s.renderer.domElement.style.height=t*s.scaleFactor+"px",s.renderer.domElement.width=e*s.scaleFactor,s.renderer.domElement.height=t*s.scaleFactor,s.container.whratio=e/t}}class et{constructor(e){this.icn3d=e}applyClbondsOptions(e){let t=this.icn3d,s=t.icn3dui;if(void 0===e&&(e=t.opts),t.bCalcCrossLink||(t.clbondpnts={},t.clbondResid2serial={},this.applyClbondsOptions_base("chemical"),this.applyClbondsOptions_base("all"),t.bCalcCrossLink=!0),"yes"===e.clbonds.toLowerCase()&&"nothing"!==e.chemicals){let e="#006400";if(s.parasCls.thr(25600),t.lines.clbond=[],t.residuesHashClbonds={},t.structures){let i=Object.keys(t.structures);for(let n=0,l=i.length;n1&&"sphere"!==a[Object.keys(a)[0]].style&&"dot"!==a[Object.keys(a)[0]].style){if(void 0===i.bCid||!i.bCid)for(let e in a){let t=a[e],n=1;i.boxCls.createBox(t,void 0,void 0,n,void 0,s)}}else for(let e in o){let l=i.firstAtomObjCls.getFirstCalphaAtomObj(i.residues[e]),r=l,o=r.structure+"_"+r.chain+"_"+(parseInt(r.resi)-1).toString(),a=r.structure+"_"+r.chain+"_"+(parseInt(r.resi)+1).toString();if("cylinder and plate"===r.style&&"helix"===r.ss)for(let t in i.residues[e]){let e=i.atoms[t],n=1;i.boxCls.createBox(e,void 0,void 0,n,void 0,s)}else if("ribbon"===r.style&&"coil"===r.ss||"strand"===r.style&&"coil"===r.ss||"o3 trace"===r.style||"schematic"===r.style||"c alpha trace"===r.style||"b factor tube"===r.style||"cylinder and plate"===r.style&&"helix"!==r.ss){if(void 0!==l&&void 0!==l.style2&&"nothing"!==l.style2)continue;let e=!1;if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(a)){let s=Object.keys(i.residues[a])[0],l=n.hashUtilsCls.hash2Atoms(i.residues[a],i.atoms)[s];if(r.style===l.style&&!l.ssbegin||l.ssbegin){let s=i.residues[a];if(t=n.hashUtilsCls.unionHash(t,s),e=!0,l.ssbegin)for(let e in s)i.atoms[e].notshow=!0}}if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(o)){let s=Object.keys(i.residues[o])[0],l=n.hashUtilsCls.hash2Atoms(i.residues[o],i.atoms)[s];r.style===l.style&&(t=n.hashUtilsCls.unionHash(t,i.residues[o]),e=!0)}}else if("ribbon"===r.style&&"coil"!==r.ss&&r.ssend||"strand"===r.style&&"coil"!==r.ss&&r.ssend){if(void 0!==l&&void 0!==l.style2&&"nothing"!==l.style2)continue;let e=!1;if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(a)){let s=Object.keys(i.residues[a])[0];n.hashUtilsCls.hash2Atoms(i.residues[a],i.atoms)[s],t=n.hashUtilsCls.unionHash(t,i.residues[a]),e=!0}}}a={}}if(i.bInitial&&void 0===i.bMembrane){if(""!=n.htmlCls.setHtmlCls.getCookie("membrane")){let e=parseInt(n.htmlCls.setHtmlCls.getCookie("membrane"));i.bMembrane!=e&&n.htmlCls.clickMenuCls.setLogCmd("set membrane "+e,!0),i.bMembrane=isNaN(e)?0:parseInt(e)}i.bMembrane?i.selectionCls.toggleMembrane(!0):i.selectionCls.toggleMembrane(!1)}i.setStyleCls.setStyle2Atoms(t);let d=.5*i.cylinderRadius;void 0!==i.labels&&delete i.labels.schematic;for(let e in i.style2atoms){let t=i.style2atoms[e],l=n.hashUtilsCls.intHash(t,i.nucleotides),r=n.utilsCls.isCalphaPhosOnly(n.hashUtilsCls.hash2Atoms(l,i.atoms));if("ribbon"===e)i.strandCls.createStrand(n.hashUtilsCls.hash2Atoms(t,i.atoms),2,void 0,!0,void 0,void 0,!1,i.ribbonthickness,s);else if("strand"===e)i.strandCls.createStrand(n.hashUtilsCls.hash2Atoms(t,i.atoms),null,null,null,null,null,!1,void 0,s);else if("cylinder and plate"===e)i.cylinderCls.createCylinderHelix(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderHelixRadius,s);else if("nucleotide cartoon"===e)r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):(i.cartoonNuclCls.drawCartoonNucleicAcid(n.hashUtilsCls.hash2Atoms(t,i.atoms),null,i.ribbonthickness,s),2!==s&&i.cartoonNuclCls.drawNucleicAcidStick(n.hashUtilsCls.hash2Atoms(t,i.atoms),s));else if("o3 trace"===e)r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["O3'","O3*"],i.traceRadius,!1,s);else if("schematic"===e){let e=i.firstAtomObjCls.getFirstAtomObj(t);if(i.chemicals.hasOwnProperty(e.serial)){i.residueLabelsCls.addNonCarbonAtomLabels(n.hashUtilsCls.hash2Atoms(t,i.atoms));let e=!0;i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),d,d,void 0,s,e)}else i.residueLabelsCls.addResidueLabels(n.hashUtilsCls.hash2Atoms(t,i.atoms),!0),r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["O3'","O3*"],i.traceRadius,!1,s),i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["CA"],i.traceRadius,!1,s)}else"c alpha trace"===e?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["CA"],i.traceRadius,!1,s):"b factor tube"===e?i.tubeCls.createTube(n.hashUtilsCls.hash2Atoms(t,i.atoms),"CA",null,s,!1,!0):"custom tube"===e?i.tubeCls.createTube(n.hashUtilsCls.hash2Atoms(t,i.atoms),"CA",null,s,!0,!0):"lines"===e||"lines2"===e?(1===s?i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.hlLineRadius,i.hlLineRadius,void 0,s):i.lineCls.createLineRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),s),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"stick"===e||"stick2"===e?(i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,i.cylinderRadius,void 0,s,void 0),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"backbone"===e?(t=this.selectMainChainSubset(t),i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,i.cylinderRadius,void 0,s,void 0)):"ball and stick"===e||"ball and stick2"===e?(i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,.5*i.cylinderRadius,i.dotSphereScale,s,void 0),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"sphere"===e||"sphere2"===e?i.sphereCls.createSphereRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.sphereRadius,void 0,void 0,s):"dot"===e&&i.sphereCls.createSphereRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.sphereRadius,!1,i.dotSphereScale,s)}if(i.cnt>i.maxmaxatomcnt&&i.init_base(),void 0!==i.labels&&Object.keys(i.labels).length>0){i.labelCls.hideLabels();for(let e in i.labels)"schematic"!=e&&this.changeLabelColor(i.labels[e]);i.labelCls.createLabelRepresentation(i.labels)}}changeLabelColor(e){let t=this.icn3d;if(t.icn3dui,e)for(let s=0,i=e.length;s0){this.updateStabilizer();let e="#FFFFFF",s=t.stabilizerpnts;t.lines.stabilizer=[];for(let i=0,n=Math.floor(s.length/2);i0)for(let e=0,s=t.distPnts.length;e0&&t.applySymdCls.applySymd(),void 0!==t.prevOtherMesh)for(let e=0,s=t.prevOtherMesh.length;e0&&(e=s.hashUtilsCls.hash2Atoms(t.chemicals,t.atoms));let i=4;if(void 0!==e){let n=t.contactCls.getAtomsWithinAtom(t.atoms,e,i),l=3.5;t.opts.hbonds="yes",Object.keys(n).length>0&&t.hBondCls.calculateChemicalHbonds(e,n,parseFloat(l)),t.bSetFog||t.transformCls.zoominSelection(s.hashUtilsCls.unionHash(e,n))}}else"hide"===e.chemicalbinding&&(t.hBondCls.hideHbonds(),t.showInterCls.hideExtraBonds(),t.bSetFog||t.transformCls.zoominSelection(t.atoms))}updateStabilizer(){let e=this.icn3d;if(e.icn3dui,e.stabilizerpnts=[],void 0!==e.pairArray)for(let t=0,s=e.pairArray.length;t=0;i--){let r=t.ssbondpnts[e][2*i],o=t.ssbondpnts[e][2*i+1],a={};a.color=n,a.dashed=!1;let d=[],c=[],h=[],p=[],m=!1,u=!1;for(let e in t.residues[r])"SG"===t.atoms[e].name&&(h.push(t.atoms[e].coord),d.push(t.atoms[e].serial),m=!0);if(!m)for(let e in t.residues[r])if("CA"===t.atoms[e].name){h.push(t.atoms[e].coord),d.push(t.atoms[e].serial),m=!0,u=!0;break}m=!1;for(let e in t.residues[o])"SG"===t.atoms[e].name&&(p.push(t.atoms[e].coord),c.push(t.atoms[e].serial),m=!0);if(!m)for(let e in t.residues[o])if("CA"===t.atoms[e].name){p.push(t.atoms[e].coord),c.push(t.atoms[e].serial),m=!0,u=!0;break}let g=u?7:3,f=!1;for(let e=0,t=h.length;e1&&(l=!0)}if(t)if(l){let t=Object.keys(r)[0];e=i.chains[t]}else{0==Object.keys(i.hAtoms).length&&(i.hAtoms=n.hashUtilsCls.cloneHash(i.dAtoms));let t,s=parseInt(Object.keys(i.hAtoms).length/u),l=0;for(let n in i.hAtoms)if(e[n]=1,t=n,++l,l>s)break;let r=i.atoms[t].structure+"_"+i.atoms[t].chain+"_"+i.atoms[t].resi;e=n.hashUtilsCls.unionHash(e,i.residues[r])}else{let t=Object.keys(i.structures)[0]+"_"+g;if(i.chains.hasOwnProperty(t)||(t=Object.keys(i.structures)[0]+"_"+g.toLowerCase()),!i.chains.hasOwnProperty(t)){t=Object.keys(i.chains)[0];for(let e in i.chains){let s=Object.keys(i.chains[e])[0];if(i.proteins.hasOwnProperty(s)){t=e;break}}}e=i.chains[t]}let a=s.clone().add(h).multiplyScalar(.5),c=new THREE.Vector3,p=0,f=h.clone().sub(s).normalize(),C=new THREE.Vector3(0,0,1),b=new THREE.Quaternion;b.setFromUnitVectors(f,C);let y=-9999;for(let t in e){let e=i.atoms[t].coord.clone();c.add(e),e.sub(a).applyQuaternion(b);let s=e.x*e.x+e.y*e.y;s>y&&(y=s),++p}let v=i.ParserUtilsCls.getMassCenter(c,p),_=new THREE.Line3(s,h),w=new THREE.Vector3;_.closestPointToPoint(v,!0,w);let S,A,x,k,O=Math.sqrt(y),R=v.clone().sub(w).normalize().multiplyScalar(O),I=a.clone().add(s.clone().sub(a).multiplyScalar(.83)).add(R),E=a.clone().add(h.clone().sub(a).multiplyScalar(.83)).add(R),T=2*Math.PI/o;for(let e=0;et&&(i.sphereCls.createSphereBase(r,m,d,1,0),i.cylinderCls.createCylinder(e,r,d,m,0),i.cylinderCls.createCylinder(s,r,d,m,0),void 0!==n&&i.cylinderCls.createCylinder(c[n],r,d,m,0),n=l)}}else if("O"==r)for(let e=0,t=c.length;e0&&(e.mdl.remove(e.prevSurfaces[e.prevSurfaces.length-1]),e.prevSurfaces.slice(e.prevSurfaces.length-1,1))}removeMaps(){let e=this.icn3d;e.icn3dui;for(let t=0,s=e.prevMaps.length;t0&&(e.mdl.remove(e.prevMaps[e.prevMaps.length-1]),e.prevMaps.slice(e.prevMaps.length-1,1))}removeLastEmmap(){let e=this.icn3d;e.icn3dui,e.prevEmmaps.length>0&&(e.mdl.remove(e.prevEmmaps[e.prevEmmaps.length-1]),e.prevEmmaps.slice(e.prevEmmaps.length-1,1))}removeLastPhimap(){let e=this.icn3d;e.icn3dui,e.prevPhimaps.length>0&&(e.mdl.remove(e.prevPhimaps[e.prevPhimaps.length-1]),e.prevPhimaps.slice(e.prevPhimaps.length-1,1))}}class ot{constructor(e){this.icn3d=e}addResidueLabels(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui;if(r.bNode)return;let o=r.hashUtilsCls.intHash(l.hAtoms,e);t?void 0===l.labels.schematic&&(l.labels.schematic=[]):void 0===l.labels.residue&&(l.labels.residue=[]);let a="";for(let e in o){let s=l.atoms[e],o={},d=s.structure+"_"+s.chain+"_"+s.resi;if(!s.het&&("CA"===s.name||"O3'"===s.name||"O3*"===s.name)||l.water.hasOwnProperty(s.serial)||l.ions.hasOwnProperty(s.serial)||l.chemicals.hasOwnProperty(s.serial)&&d!==a){if(o.position=s.coord,o.bSchematic=0,t&&(o.bSchematic=1),o.text=r.utilsCls.residueName2Abbr(s.resn),i)o.text+=s.resi;else if(n){let e=s.structure+"_"+s.chain+"_"+s.resi,t="";l.resid2refnum[e]&&(t=" "==l.resid2refnum[e].substr(0,1)?"":l.resid2refnum[e]),o.text=t}o.size=18,o.factor=.3;let e=s.color.getHexString().toUpperCase();o.color=i?"black"!=l.opts.background?l.colorWhitebkgd:l.colorBlackbkgd:n?"#00FFFF":"CCCCCC"===e||"C8C8C8"===e?"#888888":"#"+e,o.background="#FFFFFF",t?l.labels.schematic.push(o):l.labels.residue.push(o)}a=d}l.hlObjectsCls.removeHlObjects()}addIgLabels(e){let t=this.icn3d;if(t.icn3dui.bNode)return;t.labels.ig=[];let s=t.firstAtomObjCls.getChainsFromAtoms(e);for(let e in t.igLabel2Pos)if(s.hasOwnProperty(e))for(let s in t.igLabel2Pos[e]){let i={};i.position=t.igLabel2Pos[e][s],i.text=s,i.size=60,i.color="#00FFFF",t.labels.ig.push(i)}t.hlObjectsCls.removeHlObjects()}addNonCarbonAtomLabels(e){let t=this.icn3d,s=t.icn3dui;if(s.bNode)return;let i=s.hashUtilsCls.intHash(t.hAtoms,e);void 0===t.labels.schematic&&(t.labels.schematic=[]);for(let e in i){let s=t.atoms[e];if(!t.residues.hasOwnProperty(s.structure+"_"+s.chain+"_"+s.resi))continue;if("C"===s.elem)continue;let i={};i.position=s.coord,i.bSchematic=1,i.text=s.elem,i.size=18,i.color="black"!=t.opts.background?t.colorWhitebkgd:s.color.getHexString(),i.background="#FFFFFF",t.labels.schematic.push(i)}t.hlObjectsCls.removeHlObjects()}addAtomLabels(e,t){let s=this.icn3d,i=s.icn3dui;if(i.bNode)return;let n=i.hashUtilsCls.intHash(s.hAtoms,e);n=i.hashUtilsCls.intHash(s.dAtoms,n),void 0===s.labels.residue&&(s.labels.residue=[]);for(let e in n){let i=s.atoms[e],n={};n.position=i.coord,n.bSchematic=0,n.text=t?i.elem:i.name.padEnd(2," "),n.size=18,t&&(n.bSchematic=!0);let l=i.color.getHexString().toUpperCase();n.color="black"!=s.opts.background?s.colorWhitebkgd:s.colorBlackbkgd,t&&(n.color="CCCCCC"===l||"C8C8C8"===l?"#888888":"#"+l),n.background="#FFFFFF",s.labels.residue.push(n)}s.hlObjectsCls.removeHlObjects()}}class at{constructor(e){this.icn3d=e}onBeforeRender(e,t,s,i,n,l){let r=n.uniforms,o=[];if(r.objectId&&(r.objectId.value=SupportsReadPixelsFloat?this.id:this.id/255,o.push("objectId")),(r.modelViewMatrixInverse||r.modelViewMatrixInverseTranspose||r.modelViewProjectionMatrix||r.modelViewProjectionMatrixInverse)&&this.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,this.matrixWorld),r.modelViewMatrixInverse&&(r.modelViewMatrixInverse.value.copy(this.modelViewMatrix).invert(),o.push("modelViewMatrixInverse")),r.modelViewMatrixInverseTranspose&&(r.modelViewMatrixInverse?r.modelViewMatrixInverseTranspose.value.copy(r.modelViewMatrixInverse.value).transpose():r.modelViewMatrixInverseTranspose.value.copy(this.modelViewMatrix).invert().transpose(),o.push("modelViewMatrixInverseTranspose")),r.modelViewProjectionMatrix&&(s.updateProjectionMatrix(),r.modelViewProjectionMatrix.value.multiplyMatrices(s.projectionMatrix,this.modelViewMatrix),o.push("modelViewProjectionMatrix")),r.modelViewProjectionMatrixInverse){let e=new THREE.Matrix4;r.modelViewProjectionMatrix?(e.copy(r.modelViewProjectionMatrix.value),r.modelViewProjectionMatrixInverse.value.copy(e).invert()):(s.updateProjectionMatrix(),e.multiplyMatrices(s.projectionMatrix,this.modelViewMatrix),r.modelViewProjectionMatrixInverse.value.copy(e).invert()),o.push("modelViewProjectionMatrixInverse")}if(r.projectionMatrix&&(s.updateProjectionMatrix(),r.projectionMatrix.value.copy(s.projectionMatrix),o.push("projectionMatrix")),r.projectionMatrixInverse&&(s.updateProjectionMatrix(),r.projectionMatrixInverse.value.copy(s.projectionMatrix).invert(),o.push("projectionMatrixInverse")),o.length){let t=e.properties.get(n);if(t.program){let s=e.getContext(),i=t.program;s.useProgram(i.program);let n=i.getUniforms();o.forEach((function(e){n.setValue(s,e,r[e].value)}))}}}setParametersForShader(e){let t,s=this.icn3d,i=s.icn3dui.parasCls.backgroundColors[s.opts.background.toLowerCase()],n=2.5*s.maxD,l=4*s.maxD,r=void 0!==s.biomtMatrices&&s.biomtMatrices.length*s.cnt>s.maxatomcnt;"yes"===s.opts.slab?r?t=.1:void 0!==s.camMaxDFactorFog?(t=s.maxD*s.camMaxDFactorFog-10,n=2.5*s.maxD-t<0?0:2.5*s.maxD-t,l=4*s.maxD-t):t=s.maxD*s.camMaxDFactor:t=.1;let o=void 0!==e?e:1,a=s.shininess/100*.5;s.uniforms=THREE.UniformsUtils.merge([THREE.UniformsLib.common,{modelViewMatrix:{value:new THREE.Matrix4},modelViewMatrixInverse:{value:new THREE.Matrix4},modelViewMatrixInverseTranspose:{value:new THREE.Matrix4},modelViewProjectionMatrix:{value:new THREE.Matrix4},modelViewProjectionMatrixInverse:{value:new THREE.Matrix4},projectionMatrix:{value:new THREE.Matrix4},projectionMatrixInverse:{value:new THREE.Matrix4},diffuse:{type:"v3",value:[1,1,1]},emissive:{type:"v3",value:[.06,.06,.06]},roughness:{type:"f",value:.5},metalness:{type:"f",value:a},opacity:{type:"f",value:o},nearClip:{type:"f",value:t},ortho:{type:"f",value:0},shrink:{type:"f",value:.13},fogColor:{type:"v3",value:[i.r,i.g,i.b]},fogNear:{type:"f",value:n},fogFar:{type:"f",value:l},fogDensity:{type:"f",value:2}},THREE.UniformsLib.ambient,THREE.UniformsLib.lights]),s.defines={USE_COLOR:1,NEAR_CLIP:1,CAP:1},"yes"!==s.opts.fog||r||(s.defines.USE_FOG=1,"orthographic"===s.opts.camera&&(s.defines.FOG_EXP2=1)),s.bExtFragDepth&&(s.defines.USE_LOGDEPTHBUF_EXT=1)}drawImpostorShader(){this.icn3d.icn3dui.bNode||(this.setParametersForShader(),this.createImpostorShaderSphere("SphereImpostor"),this.createImpostorShaderCylinder("CylinderImpostor"))}getShader(e){this.icn3d.icn3dui;let t=$NGL_shaderTextHash[e];return t=t.replace(/#include\s+(\S+)/gim,(function(e,t){let s;return THREE.ShaderChunk.hasOwnProperty(t)&&(s=THREE.ShaderChunk[t]),s||""})),t}createImpostorShaderBase(e,t,s,i,n,l,r,o,a){let d=this.icn3d;d.icn3dui;let c=new THREE.ShaderMaterial({defines:d.defines,uniforms:d.uniforms,vertexShader:this.getShader(e+".vert"),fragmentShader:this.getShader(e+".frag"),depthTest:!0,depthWrite:!0,lights:!0});c.extensions.fragDepth=!0,"CylinderImpostor"==e?d.CylinderImpostorMaterial=c:"SphereImpostor"==e&&(d.SphereImpostorMaterial=c);let h,p,m=l*r,u=l*o,g=new(m>65535?Uint32Array:Uint16Array)(u);for(let e=0;e=0;t--){let s=a.children[t];s.onBeforeRender=e.impostorCls.onBeforeRender,s.frustumCulled=!1}l.add(a)}void 0!==e.mdl_ghost&&(a=e.mdl_ghost.clone(),this.applyMat(a,d),r.add(a));let c=e.center.clone();this.applyMat(c,d,!0),s.add(c),++t}e.mdl.add(n),e.mdlImpostor.add(l),e.mdl_ghost.add(r),void 0!==e.bSetInstancing&&e.bSetInstancing?(e.maxD=e.maxDAssembly,e.center=e.centerAssembly.clone(),e.applyCenterCls.setCenter(e.center),e.cameraCls.setCamera()):(e.maxD*=Math.sqrt(t),e.center=e.ParserUtilsCls.getMassCenter(s,t),e.maxDAssembly=e.maxD,e.centerAssembly=e.center.clone(),e.applyCenterCls.setCenter(e.center),e.cameraCls.setCamera()),e.bSetInstancing=!0}createInstancedGeometry(e){let t=this.icn3d,s=t.icn3dui,i=e.geometry,n=new THREE.InstancedBufferGeometry,l=[],r=[],o=[],a=[],d=[],c=[],h=[],p=[];if(t.bImpo&&"Cylinder"==e.type){t.instancedMaterial=this.getInstancedMaterial("CylinderInstancing");let e=s.hashUtilsCls.hashvalue2array(i.attributes.position1.array),r=s.hashUtilsCls.hashvalue2array(i.attributes.color.array),m=s.hashUtilsCls.hashvalue2array(i.attributes.position2.array),u=s.hashUtilsCls.hashvalue2array(i.attributes.color2.array),g=s.hashUtilsCls.hashvalue2array(i.index.array),f=s.hashUtilsCls.hashvalue2array(i.attributes.radius.array),C=s.hashUtilsCls.hashvalue2array(i.attributes.mapping.array);l=l.concat(e),o=o.concat(r),h=h.concat(m),p=p.concat(u),a=a.concat(g),d=d.concat(f),c=c.concat(C),n.setAttribute("position1",new THREE.BufferAttribute(new Float32Array(l),3)),n.setAttribute("color",new THREE.BufferAttribute(new Float32Array(o),3)),n.setAttribute("position2",new THREE.BufferAttribute(new Float32Array(h),3)),n.setAttribute("color2",new THREE.BufferAttribute(new Float32Array(p),3)),n.setAttribute("radius",new THREE.BufferAttribute(new Float32Array(d),1)),n.setAttribute("mapping",new THREE.BufferAttribute(new Float32Array(c),3)),n.setIndex(new THREE.BufferAttribute(new Uint32Array(a),1)),e=null,r=null,m=null,u=null,g=null,f=null,C=null}else if(t.bImpo&&"Sphere"==e.type){t.instancedMaterial=this.getInstancedMaterial("SphereInstancing");let e=s.hashUtilsCls.hashvalue2array(i.attributes.position.array),r=s.hashUtilsCls.hashvalue2array(i.attributes.color.array),h=s.hashUtilsCls.hashvalue2array(i.index.array),p=s.hashUtilsCls.hashvalue2array(i.attributes.radius.array),m=s.hashUtilsCls.hashvalue2array(i.attributes.mapping.array);l=l.concat(e),o=o.concat(r),a=a.concat(h),d=d.concat(p),c=c.concat(m),n.setAttribute("position",new THREE.BufferAttribute(new Float32Array(l),3)),n.setAttribute("color",new THREE.BufferAttribute(new Float32Array(o),3)),n.setAttribute("radius",new THREE.BufferAttribute(new Float32Array(d),1)),n.setAttribute("mapping",new THREE.BufferAttribute(new Float32Array(c),2)),n.setIndex(new THREE.BufferAttribute(new Uint32Array(a),1)),e=null,r=null,h=null,p=null,m=null}else{t.instancedMaterial=this.getInstancedMaterial("Instancing");let e=i.attributes.position?s.hashUtilsCls.hashvalue2array(i.attributes.position.array):[],d=i.attributes.normal?s.hashUtilsCls.hashvalue2array(i.attributes.normal.array):[],c=i.attributes.color?s.hashUtilsCls.hashvalue2array(i.attributes.color.array):[],h=i.index?s.hashUtilsCls.hashvalue2array(i.index.array):[];l=l.concat(e),r=r.concat(d),o=o.concat(c),a=a.concat(h);let p=[],m="CylinderGeometry"==i.type?1:0;for(let e=0,t=l.length/3;e0&&(e.dAtoms=t.hashUtilsCls.cloneHash(s)),e.bShowHighlight=!1}e.applyMapCls.removeSurfaces(),e.applyMapCls.applySurfaceOptions(),e.applyMapCls.removeMaps(),e.applyMapCls.applyMapOptions(),e.applyMapCls.removeEmmaps(),e.applyMapCls.applyEmmapOptions(),e.applyMapCls.removePhimaps(),e.applyMapCls.applyPhimapOptions(),e.applyMapCls.removeSurfaces(),e.applyMapCls.applyphisurfaceOptions(),e.axes=[],e.pc1&&e.axesCls.setPc1Axes(),e.opts.rotationcenter="highlight center",e.drawCls.draw(),e.bShowHighlight=!0}async alternateWrapper(){let e=this.icn3d;e.icn3dui,e.bAlternate=!0,await this.alternateStructures(),e.bAlternate=!1}}class ht{constructor(e){this.icn3d=e}draw(e){let t=this.icn3d,s=t.icn3dui;if(t.impostorCls.clearImpostors(),!t.bRender||t.hAtoms&&0!=Object.keys(t.hAtoms)||(t.hAtoms=s.hashUtilsCls.cloneHash(t.atoms)),t.sceneCls.rebuildScene(),t.bImpo&&t.impostorCls.drawImpostorShader(),t.setColorCls.applyPrevColor(),void 0!==t.biomtMatrices&&t.biomtMatrices.length>1)if(t.bAssembly&&1==Object.keys(t.structures).length&&(void 0===s.cfg.mmdbid&&1==s.cfg.bu||void 0!==s.cfg.mmdbid&&1==s.cfg.bu&&Object.keys(t.atoms).length*t.biomtMatrices.length>t.maxatomcnt))t.instancingCls.drawSymmetryMates();else{let e=!0;t.applyCenterCls.centerSelection(void 0,e)}let i=void 0!==t.hAtoms?Object.keys(t.hAtoms).length:0;if(i>0&&i0){e.children[0].scale.z=t[0].distance,t[0].point.sub(r.mdl.position);let s=r.rayThreshold,i=r.rayCls.getAtomsFromPosition(t[0].point,s);for(;!i&&s<10;)s+=.5,i=r.rayCls.getAtomsFromPosition(t[0].point,s);i&&(r.pAtomNum%2==0?r.pAtom=i:r.pAtom2=i,++r.pAtomNum,this.showPickingVr(r.pk,i))}}}}catch(e){}}showPickingVr(e,t){let s=this.icn3d;s.icn3dui,e||(e=2),s.hAtoms=s.pickingCls.getPickedAtomList(e,t),2===e?s.residueLabelsCls.addResidueLabels(s.hAtoms,void 0,void 0,!0):1===e&&s.residueLabelsCls.addAtomLabels(s.hAtoms),s.setOptionCls.setStyle("proteins",t.style)}render_base(){let e=this.icn3d,t=e.icn3dui,s=this;if(t.bNode)return;let i=e.bControlGl&&!t.bNode?window.cam:e.cam;if(e.directionalLight){let t=new THREE.Quaternion;t.setFromUnitVectors(new THREE.Vector3(0,0,e.cam_z).normalize(),i.position.clone().normalize()),e.directionalLight.position.copy(e.lightPos.clone().applyQuaternion(t).normalize()),e.directionalLight2.position.copy(e.lightPos2.clone().applyQuaternion(t).normalize()),e.directionalLight3.position.copy(e.lightPos3.clone().applyQuaternion(t).normalize())}if(e.bVr||e.renderer.setPixelRatio(window.devicePixelRatio),e.bVr){let t=.04;if(e.controllers){let i=this.updateGamepadState();for(let n=0,l=e.controllers.length;n{const i=e.gamepad.axes;let r=parseInt(1e3*i[t]),o=parseInt(-1e3*i[s]);n.push(r),l.push(o)})),{xArray:n,yArray:l}}return{xArray:[0,0],yArray:[0,0]}}}class pt{constructor(e){this.icn3d=e}getAtomsWithinAtom(e,t,s,i,n,l,r){let o=this.icn3d,a=o.icn3dui,d=this.getNeighboringAtoms(e,t,s,r);i&&(o.resid2Residhash={});let c={};for(let e in t){let h=o.atoms[e];if(n&&"H"==h.elem)continue;let p,m,u=a.parasCls.vdwRadii[h.elem.toUpperCase()],g=h.structure+"_"+h.chain,f=h.structure+"_"+h.chain+"_"+h.resi;for(let e in o.residues[f])if(o.atoms[e]&&("CA"===o.atoms[e].name&&"C"===o.atoms[e].elem||"O3'"===o.atoms[e].name||"O3*"===o.atoms[e].name)){p=o.atoms[e];break}if(void 0===p&&(p=h),i){let e=0==h.name.indexOf("pi")&&h.ring?h.ring.join(","):h.serial;m=h.resn+" $"+h.structure+"."+h.chain+":"+h.resi+" "+e,void 0===o.resid2Residhash[m]&&(o.resid2Residhash[m]={})}let C=h.structure+"_"+h.chain+"_"+h.resi;for(let e in d){let f=d[e];if(n&&"H"==f.elem)continue;let b=a.parasCls.vdwRadii[f.elem.toUpperCase()],y=f.structure+"_"+f.chain;if(n&&!o.crossstrucinter&&h.structure!=f.structure)continue;if(!r&&f.serial in t)continue;if(o.bOpm&&"DUM"===f.resn)continue;let v=f.coord.distanceTo(h.coord);if(n&&vo?r:o,d=Math.sqrt(a),c=(d+s)*(d+s),h={};for(let r in e){let e=n.atoms[r];!i&&t.hasOwnProperty(e.serial)||(this.bOpm&&"DUM"===e.resn||e.coord.xl[1][0]+s||e.coord.yl[1][1]+s||e.coord.zl[1][2]+s||(e.coord.x-l[2][0])*(e.coord.x-l[2][0])+(e.coord.y-l[2][1])*(e.coord.y-l[2][1])+(e.coord.z-l[2][2])*(e.coord.z-l[2][2])e.coord.x?n:e.coord.x,l=l>e.coord.y?l:e.coord.y,r=r>e.coord.z?r:e.coord.z}return[[t,s,i],[n,l,r],[o/c,a/c,d/c]]}hideContact(){let e=this.icn3d;e.icn3dui,e.opts.contact="no",void 0===e.lines&&(e.lines={}),e.lines.contact=[],e.contactpnts=[]}}class mt{constructor(e){this.icn3d=e}isHbondDonorAcceptor(e){let t=this.icn3d;if(t.icn3dui,"N"==e.name&&!e.het||"N"==e.elem&&"Arg"==e.resn||"N"==e.elem&&"Asn"==e.resn||"N"==e.elem&&"Gln"==e.resn||"N"==e.elem&&"Lys"==e.resn||"N"==e.elem&&"Trp"==e.resn)return"donor";if("O"==e.name&&!e.het||"S"==e.elem&&"Met"==e.resn||"O"==e.elem&&"Asn"==e.resn||"O"==e.elem&&"Asp"==e.resn||"O"==e.elem&&"Gln"==e.resn||"O"==e.elem&&"Glu"==e.resn)return"acceptor";if("S"==e.elem&&"Cys"==e.resn||"N"==e.elem&&"His"==e.resn||"O"==e.elem&&"Ser"==e.resn||"O"==e.elem&&"Thr"==e.resn||"O"==e.elem&&"Tyr"==e.resn)return"both";if("Pro"==e.resn)return"none";if("N"==e.elem){if("Asn"==e.resn||"Gln"==e.resn)return"both";let s=0,i=0;for(let i=0,n=e.bonds.length;i1?"ring":"donor":"none"}if("O"==e.elem&&1==e.bonds.length){if("Asn"==e.resn||"Gln"==e.resn)return"both";for(let s=0,i=e.bonds.length;s=2?"acceptor":"both"}if("O"==e.elem&&2==e.bonds.length){for(let s=0,i=e.bonds.length;s1);++t)"H"!=s.atoms[e.bonds[t]].elem&&(i=s.atoms[e.bonds[t]],l[r++].subVectors(s.atoms[e.bonds[t]].coord,e.coord));if(1===r)for(let t=0,n=i.bonds.length;t1);++t)"H"!=s.atoms[i.bonds[t]].elem&&s.atoms[i.bonds[t]].serial!=e.serial&&l[r++].subVectors(s.atoms[i.bonds[t]].coord,e.coord);if(2!==r)return;let o=l[0].cross(l[1]);return Math.abs(Math.PI/2-o.angleTo(n))}isValidHbond(e,t,s){let i=this.icn3d;i.icn3dui;let n,l,r=this.isHbondDonorAcceptor(e),o=this.isHbondDonorAcceptor(t),a=50*Math.PI/180,d=50*Math.PI/180,c=90*Math.PI/180,h=30*Math.PI/180;if("donor"==r&&("acceptor"==o||"both"==o||"ring"==o)||"acceptor"==o&&("donor"==r||"both"==r||"ring"==r))n=e,l=t;else if("acceptor"==r&&("donor"==o||"both"==o||"ring"==o)||"donor"==o&&("acceptor"==r||"both"==r||"ring"==r))l=e,n=t;else{if("both"!=r&&"ring"!=r||"both"!=o&&"ring"!=o)return!1;n=e,l=t,i.nucleotides.hasOwnProperty(e.serial)&&i.nucleotides.hasOwnProperty(t.serial)&&("ring"==r||"ring"==o)||(e.het||t.het)&&"ring"==r&&"ring"==o||(h=90*Math.PI/180)}let p=this.calcAngles(n,l),m=90*Math.PI/180;for(let e=0,t=p.length;ed)return!1;let u=this.calcPlaneAngle(n,l);if(void 0!==u&&u>h)return!1;let g=this.calcAngles(l,n),f=90*Math.PI/180;for(let e=0,t=g.length;ea)return!1;let C=this.calcPlaneAngle(l,n);return!(void 0!==C&&C>c)}calculateChemicalHbonds(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(0===Object.keys(e).length||0===Object.keys(t).length)return;r.resid2Residhash={};let a,d,c={},h=s*s;for(let t in e){let s=e[t],n=i?"LYS"===s.resn&&"N"===s.elem&&"N"!==s.name||"ARG"===s.resn&&("NH1"===s.name||"NH2"===s.name)||("GLU"===s.resn||"ASP"===s.resn)&&"O"===s.elem&&"O"!==s.name||s.het&&("N"===s.elem||"O"===s.elem||"S"===s.elem):"N"===s.elem||"O"===s.elem||"S"===s.elem&&(s.het||"Cys"===s.resn||"Met"===s.resn);n=r.bOpm?n&&"DUM"!==s.resn:n,n&&(a=s.structure+"_"+s.chain+"_"+s.resi,d=a+"_"+s.name,c[d]=s)}let p={},m={},u=.5,g=-27.888,f={};for(let e in t){let C=t[e],b=i?"LYS"===C.resn&&"N"===C.elem&&"N"!==C.name||"ARG"===C.resn&&("NH1"===C.name||"NH2"===C.name)||("GLU"===C.resn||"ASP"===C.resn)&&"O"===C.elem&&"O"!==C.name||C.het&&("N"===C.elem||"O"===C.elem||"S"===C.elem):"N"===C.elem||"O"===C.elem||"S"===C.elem&&(C.het||"Cys"===C.resn||"Met"===C.resn);if(b=r.bOpm?b&&"DUM"!==C.resn:b,b){a=C.structure+"_"+C.chain+"_"+C.resi,d=a+"_"+C.name;let e=0==C.name.indexOf("pi")&&C.ring?C.ring.join(","):C.serial,t=C.resn+" $"+C.structure+"."+C.chain+":"+C.resi+"@"+C.name+" "+e;void 0===r.resid2Residhash[t]&&(r.resid2Residhash[t]={});for(let e in c){if(i&&!(("LYS"!==C.resn&&"ARG"!==C.resn||"LYS"!==c[e].resn&&"ARG"!==c[e].resn)&&("GLU"!==C.resn&&"ASP"!==C.resn||"GLU"!==c[e].resn&&"ASP"!==c[e].resn)))continue;if(!r.crossstrucinter&&C.structure!=c[e].structure)continue;if(a==e.substr(0,e.lastIndexOf("_")))continue;let d=Math.abs(C.coord.x-c[e].coord.x);if(d>s)continue;let b=Math.abs(C.coord.y-c[e].coord.y);if(b>s)continue;let y=Math.abs(C.coord.z-c[e].coord.z);if(y>s)continue;let v=d*d+b*b+y*y;if(v>h)continue;if(!r.proteins.hasOwnProperty(C.serial)||!r.proteins.hasOwnProperty(c[e].serial)||"N"!==C.name&&"O"!==C.name||"O"!==c[e].name&&"N"!==c[e].name){if(!this.isValidHbond(C,c[e],s))continue}else{if(C.name===c[e].name)continue;if(C.structure==c[e].structure&&C.chain==c[e].chain&&Math.abs(C.resi-c[e].resi)<=1)continue;let t,i="N"===C.name?C:c[e],n="O"===C.name?C:c[e];if("Pro"===i.resn)continue;if(void 0===i.hcoord){if(!this.isValidHbond(C,c[e],s))continue}else{let s,l=i.hcoord,o=i.coord,a=n.structure+"_"+n.chain+"_"+n.resi;for(let e in r.residues[a])if("C"===r.atoms[e].name){s=r.atoms[e];break}if(!s)continue;let d=s.coord,h=n.coord,p=l.distanceTo(h),m=l.distanceTo(d),f=o.distanceTo(d),b=o.distanceTo(h);t=p2||f[c[e].serial]>2)continue;void 0===f[C.serial]?f[C.serial]=1:++f[C.serial],void 0===f[c[e].serial]?f[c[e].serial]=1:++f[c[e].serial],"graph"!==n&&(i?(r.saltbridgepnts.push({serial:C.serial,coord:C.coord}),r.saltbridgepnts.push({serial:c[e].serial,coord:c[e].coord})):(r.hbondpnts.push({serial:C.serial,coord:C.coord}),r.hbondpnts.push({serial:c[e].serial,coord:c[e].coord})));let _=c[e].structure+"_"+c[e].chain+"_"+c[e].resi;p=o.hashUtilsCls.unionHash(p,r.residues[a]),p=o.hashUtilsCls.unionHash(p,r.residues[_]),m[a]=1,m[_]=1;let w=0==c[e].name.indexOf("pi")&&c[e].ring?c[e].ring.join(","):c[e].serial,S=c[e].resn+" $"+c[e].structure+"."+c[e].chain+":"+c[e].resi+"@"+c[e].name+" "+w,A=a+"_"+C.resn+","+_+"_"+c[e].resn;void 0!==r.resids2interAll[A]&&void 0!==r.resids2interAll[A].ionic&&r.resids2interAll[A].ionic.hasOwnProperty(t+"|"+S)||(r.resid2Residhash[t][S]=v.toFixed(1),l||(void 0===r.resids2inter[A]&&(r.resids2inter[A]={}),void 0===r.resids2inter[A].hbond&&(r.resids2inter[A].hbond={}),r.resids2inter[A].hbond[t+"|"+S]=v.toFixed(1)),void 0===r.resids2interAll[A]&&(r.resids2interAll[A]={}),void 0===r.resids2interAll[A].hbond&&(r.resids2interAll[A].hbond={}),r.resids2interAll[A].hbond[t+"|"+S]=v.toFixed(1))}}}let C=Object.keys(m);if("graph"!==n)for(let e=0,t=C.length;en)return!1;let c=Math.abs(e.coord.y-t.coord.y);if(c>n)return!1;let h=Math.abs(e.coord.z-t.coord.z);if(h>n)return!1;let p=d*d+c*c+h*h;if(p>l)return!1;"graph"!==s&&("halogen"==i?(a.halogenpnts.push({serial:e.serial,coord:e.coord}),a.halogenpnts.push({serial:t.serial,coord:t.coord})):"pi-cation"==i?(a.picationpnts.push({serial:e.serial,coord:e.coord}),a.picationpnts.push({serial:t.serial,coord:t.coord})):"pi-stacking"==i&&(a.pistackingpnts.push({serial:e.serial,coord:e.coord}),a.pistackingpnts.push({serial:t.serial,coord:t.coord})));let m=0==t.name.indexOf("pi")&&t.ring?t.ring.join(","):t.serial,u=t.resn+" $"+t.structure+"."+t.chain+":"+t.resi+"@"+t.name+" "+m;a.resid2Residhash[r][u]=p.toFixed(1);let g=e.structure+"_"+e.chain+"_"+e.resi+"_"+e.resn+","+t.structure+"_"+t.chain+"_"+t.resi+"_"+t.resn;return o||(void 0===a.resids2inter[g]&&(a.resids2inter[g]={}),void 0===a.resids2inter[g][i]&&(a.resids2inter[g][i]={}),a.resids2inter[g][i][r+"|"+u]=p.toFixed(1)),void 0===a.resids2interAll[g]&&(a.resids2interAll[g]={}),void 0===a.resids2interAll[g][i]&&(a.resids2interAll[g][i]={}),a.resids2interAll[g][i][r+"|"+u]=p.toFixed(1),!0}getRingNormal(e){if(this.icn3d.icn3dui,e.length<3)return;let t=e[0].clone().sub(e[1]),s=e[1].clone().sub(e[2]);return t.cross(s).normalize()}getAromaticRings(e,t,s){let i=this.icn3d;i.icn3dui;let n=[],l=[],r=[],o=[];if("nucleotide"==s){let s=new THREE.Vector3,a=new THREE.Vector3;if("A"==e.trim().toUpperCase()||"DA"==e.trim().toUpperCase()||"G"==e.trim().toUpperCase()||"DG"==e.trim().toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"N1"==t.name||"C2"==t.name||"N3"==t.name||"C6"==t.name?(s.add(t.coord),r.push(t.coord)):"C4"==t.name||"C5"==t.name?(s.add(t.coord),a.add(t.coord),r.push(t.coord),o.push(t.coord)):"N7"!=t.name&&"C8"!=t.name&&"N9"!=t.name||(a.add(t.coord),o.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r))),5==o.length&&(a.multiplyScalar(.2),n.push(a),l.push(this.getRingNormal(o)))}else if("C"==e.trim().toUpperCase()||"DC"==e.trim().toUpperCase()||"T"==e.trim().toUpperCase()||"DT"==e.trim().toUpperCase()||"U"==e.trim().toUpperCase()||"DU"==e.trim().toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"N1"==t.name||"C2"==t.name||"N3"==t.name||"C6"==t.name?(s.add(t.coord),r.push(t.coord)):"C4"!=t.name&&"C5"!=t.name||(s.add(t.coord),r.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r)))}}else if("protein"==s){let s=new THREE.Vector3,a=new THREE.Vector3;if("PHE"==e.toUpperCase()||"TYR"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CG"!=t.name&&"CD1"!=t.name&&"CE1"!=t.name&&"CZ"!=t.name&&"CE2"!=t.name&&"CD2"!=t.name||(s.add(t.coord),r.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r)))}else if("HIS"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CG"!=t.name&&"ND1"!=t.name&&"CE1"!=t.name&&"NE2"!=t.name&&"CD2"!=t.name||(s.add(t.coord),r.push(t.coord))}5==r.length&&(s.multiplyScalar(.2),n.push(s),l.push(this.getRingNormal(r)))}else if("TRP"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CZ2"==t.name||"CH2"==t.name||"CZ3"==t.name||"CE3"==t.name?(s.add(t.coord),r.push(t.coord)):"CD2"==t.name||"CE2"==t.name?(s.add(t.coord),a.add(t.coord),r.push(t.coord),o.push(t.coord)):"CG"!=t.name&&"CD1"!=t.name&&"NE1"!=t.name||(a.add(t.coord),o.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r))),5==o.length&&(a.multiplyScalar(.2),n.push(a),l.push(this.getRingNormal(o)))}}return{piPosArray:n,normalArray:l}}dfs_cycle(e,t,s){let i=this.icn3d;if(i.icn3dui,2==i.ring_color[e])return s;if(1==i.ring_color[e]){s++;let n=t;for(i.ring_mark[n]=s;n!=e;)n=i.ring_par[n],i.ring_mark[n]=s;return s}if(i.ring_par[e]=t,i.ring_color[e]=1,void 0!==i.atoms[e])for(let t=0,n=i.atoms[e].bonds.length;t=3&&o<=6&&a[0]&&a[1]&&a[2]&&a[3]){let i=a[0].clone().sub(a[1]).normalize(),r=a[1].clone().sub(a[2]).normalize(),c=a[2].clone().sub(a[3]).normalize(),h=i.cross(r).normalize(),p=h.dot(c);if(Math.abs(p)<.052){l.multiplyScalar(1/o);let i=t.atoms[n];s[e+"_pi"+n]={resn:i.resn,name:"pi"+n,coord:l,serial:i.serial,structure:i.structure,chain:i.chain,resi:i.resi,normal:h,ring:d}}}}return s}hideHalogenPi(){let e=this.icn3d;e.icn3dui,e.opts.halogen="no",e.opts["pi-cation"]="no",e.opts["pi-stacking"]="no",void 0===e.lines&&(e.lines={}),e.lines.halogen=[],e.lines["pi-cation"]=[],e.lines["pi-stacking"]=[],e.halogenpnts=[],e.picationpnts=[],e.pistackingpnts=[]}}class gt{constructor(e){this.icn3d=e}calculateIonicInteractions(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(0===Object.keys(e).length||0===Object.keys(t).length)return;r.resid2Residhash={};let a,d,c={},h={},p=s*s;for(let t in e){let s=e[t];if("ARG"===s.resn&&"NH2"===s.name||"GLU"===s.resn&&"OE2"===s.name||"ASP"===s.resn&&"OD2"===s.name)continue;let i=("LYS"===s.resn||"HIS"===s.resn)&&"N"===s.elem&&"N"!==s.name||"ARG"===s.resn&&("NH1"===s.name||"NH2"===s.name)||s.het&&-1!==o.parasCls.cationsTrimArray.indexOf(s.elem)||s.het&&"N"===s.elem&&1==s.bonds.length,n=this.isAnion(s);i=r.bOpm?i&&"DUM"!==s.resn:i,n=r.bOpm?n&&"DUM"!==s.resn:n,(i||n)&&(a=s.structure+"_"+s.chain+"_"+s.resi,d=a+"_"+s.name,i&&(c[d]=s),n&&(h[d]=s))}let m={},u={};for(let e in t){let i=t[e];if("ARG"===i.resn&&"NH2"===i.name||"GLU"===i.resn&&"OE2"===i.name||"ASP"===i.resn&&"OD2"===i.name)continue;let g=("LYS"===i.resn||"HIS"===i.resn)&&"N"===i.elem&&"N"!==i.name||"ARG"===i.resn&&("NH1"===i.name||"NH2"===i.name)||i.het&&-1!==o.parasCls.cationsTrimArray.indexOf(i.elem),f=this.isAnion(i);if(g=r.bOpm?g&&"DUM"!==i.resn:g,f=r.bOpm?f&&"DUM"!==i.resn:f,g||f){a=i.structure+"_"+i.chain+"_"+i.resi,d=a+"_"+i.name;let e=0==i.name.indexOf("pi")&&i.ring?i.ring.join(","):i.serial,t=i.resn+" $"+i.structure+"."+i.chain+":"+i.resi+"@"+i.name+" "+e;void 0===r.resid2Residhash[t]&&(r.resid2Residhash[t]={});let C={};g?C=h:f&&(C=c);let b,y=i.structure+"_"+i.chain+"_"+i.resi;g&&"ARG"===i.resn&&"NH1"===i.name?b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"NH2"):f&&"GLU"===i.resn&&"OE1"===i.name?b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"OE2"):f&&"ASP"===i.resn&&"OD1"===i.name&&(b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"OD2"));let v=void 0===b?i.coord:i.coord.clone().add(b.coord).multiplyScalar(.5);for(let e in C){if(a==e.substr(0,e.lastIndexOf("_")))continue;if(!r.crossstrucinter&&i.structure!=C[e].structure)continue;let d,c=C[e].structure+"_"+C[e].chain+"_"+C[e].resi;f&&"ARG"===C[e].resn&&"NH1"===C[e].name?d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"NH2"):g&&"GLU"===C[e].resn&&"OE1"===C[e].name?d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"OE2"):g&&"ASP"===C[e].resn&&"OD1"===C[e].name&&(d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"OD2"));let h=void 0===d?C[e].coord:C[e].coord.clone().add(d.coord).multiplyScalar(.5),b=Math.abs(v.x-h.x);if(b>s)continue;let y=Math.abs(v.y-h.y);if(y>s)continue;let _=Math.abs(v.z-h.z);if(_>s)continue;let w=b*b+y*y+_*_;if(w>p)continue;"graph"!==n&&(r.saltbridgepnts.push({serial:i.serial,coord:v}),r.saltbridgepnts.push({serial:C[e].serial,coord:h}));let S=C[e].structure+"_"+C[e].chain+"_"+C[e].resi;m=o.hashUtilsCls.unionHash(m,r.residues[a]),m=o.hashUtilsCls.unionHash(m,r.residues[S]),u[a]=1,u[S]=1;let A=0==C[e].name.indexOf("pi")&&C[e].ring?C[e].ring.join(","):C[e].serial,x=C[e].resn+" $"+C[e].structure+"."+C[e].chain+":"+C[e].resi+"@"+C[e].name+" "+A;r.resid2Residhash[t][x]=w.toFixed(1);let k=a+"_"+i.resn+","+S+"_"+C[e].resn;l||(void 0===r.resids2inter[k]&&(r.resids2inter[k]={}),void 0===r.resids2inter[k].ionic&&(r.resids2inter[k].ionic={}),r.resids2inter[k].ionic[t+"|"+x]=w.toFixed(1)),void 0===r.resids2interAll[k]&&(r.resids2interAll[k]={}),void 0===r.resids2interAll[k].ionic&&(r.resids2interAll[k].ionic={}),r.resids2interAll[k].ionic[t+"|"+x]=w.toFixed(1)}}}let g=Object.keys(u);if("graph"!==n)for(let e=0,t=g.length;e1?1/(n-1):1;for(let n in e){let e=t.atoms[n];e.color=s.parasCls.thr().setHSL(3/4*(1-i++*l),1,.45),t.atomPrevColors[n]=e.color}}colorRainbow(e){let t=this.icn3d,s=t.icn3dui,i=0,n=0;e=s.hashUtilsCls.intHash(e,t.hAtoms);for(let s in e)t.atoms[s],++n;let l=n>1?1/(n-1):1;for(let n in e){let e=t.atoms[n];e.color=s.parasCls.thr().setHSL(3/4*i++*l,1,.45),t.atomPrevColors[n]=e.color}}setColorAcrossSets(e,t){let s=this.icn3d,i=s.icn3dui,n=0,l=e.length,r=l>1?1/(l-1):1;for(let l=0,o=e.length;l0)this.setMmdbChainColor();else{let e=-1,s="",l=n.parasCls.stdChainColors.length;for(let r in t){let t=i.atoms[r];t.chain!=s&&(++e,e%=l),t.het?(t.color=n.parasCls.atomColors[t.elem],i.atomPrevColors[r]=t.color):(t.color=n.parasCls.stdChainColors[e],Object.keys(i.chainsColor).length>0&&this.updateChainsColor(t),i.atomPrevColors[r]=t.color),s=t.chain}}break;case"domain":s=0,l=0;let m=Object.keys(i.tddomains);l=m.length,r=l>1?1/(l-1):1;for(let e=0,t=m.length;e1?1/(l-1):1;for(let e=0;e Defined Sets", and try it again.');break;case"secondary structure green":case"secondary structure":i.sheetcolor="green";for(let e in t){let t=i.atoms[e];t.color=t.het?n.parasCls.atomColors[t.elem]||n.parasCls.defaultAtomColor:n.parasCls.ssColors[t.ss]||n.parasCls.thr(16711935),i.atomPrevColors[e]=t.color}break;case"secondary structure yellow":i.sheetcolor="yellow";for(let e in t){let t=i.atoms[e];t.color=t.het?n.parasCls.atomColors[t.elem]||n.parasCls.defaultAtomColor:n.parasCls.ssColors2[t.ss]||n.parasCls.thr(16711935),i.atomPrevColors[e]=t.color}break;case"secondary structure spectrum":s=0,l=0;let u,g,f=[],C=-9999;for(let e in t){if(!i.proteins.hasOwnProperty(e))continue;let t=i.atoms[e];-9999==C&&(u=parseInt(e)),-9999!=C&&(t.ss!=g.ss||Math.abs(t.resi-g.resi)>1||t.ssbegin&&g.ssend)&&("coil"==g.ss||f.push([u,C]),u=e),C=parseInt(e),g=t}"coil"==g.ss||f.push([u,C]),l=f.length,r=l>1?1/(l-1):1;for(let e=0,t=f.length;e100&&(e=100);let r=(i.middB-e)*i.spanBinv1,o=(e-i.middB)*i.spanBinv2;e=90?t.color=n.parasCls.thr().setRGB(0,.325,.839):e>=70&&e<90?t.color=n.parasCls.thr().setRGB(.396,.572,.953):e>=50&&e<70?t.color=n.parasCls.thr().setRGB(1,.859,.075):e<50&&(t.color=n.parasCls.thr().setRGB(1,.49,.271))}i.atomPrevColors[e]=t.color}break;case"b factor":i.middB=50,i.spanBinv1=.02,i.spanBinv2=.02;for(let e in t){let t=i.atoms[e];if(void 0===t.b||isNaN(t.b)||0==parseInt(1e3*t.b))t.color=n.parasCls.thr().setRGB(0,1,0);else{let e=t.b;e>100&&(e=100),e=t.structure.substr(0,4)!=i.defaultPdbId&&t.structure.length>5?100-e:e;let s=(i.middB-e)*i.spanBinv1,l=(e-i.middB)*i.spanBinv2;t.color=et.b&&(o=t.b),a5?100-t.b:t.b,s=i.bfactorArray.indexOf(e)/b;t.color=s<.5?n.parasCls.thr().setRGB(2*s,2*s,1):n.parasCls.thr().setRGB(1,2*(1-s),2*(1-s))}i.atomPrevColors[e]=t.color}break;case"area":if(void 0===i.resid2area){let e=n.hashUtilsCls.cloneHash(i.hAtoms);i.hAtoms=n.hashUtilsCls.cloneHash(i.atoms),i.bCalcArea=!0,i.opts.surface="solvent accessible surface",i.applyMapCls.applySurfaceOptions(),i.bCalcArea=!1,i.hAtoms=n.hashUtilsCls.cloneHash(e)}let y=void 0!==i.midpercent?i.midpercent:35;i.spanBinv1=.02,i.spanBinv2=.02;for(let e in t){let t=i.atoms[e],s=t.structure+"_"+t.chain+"_"+t.resi+"_"+t.resn,l=n.parasCls.residueArea.hasOwnProperty(t.resn)?i.resid2area[s]/n.parasCls.residueArea[t.resn]*100:y;l>100&&(l=100);let r=(y-l)*i.spanBinv1,o=(l-y)*i.spanBinv2;t.color=l

    ";if("atom"==e){let e=["proteins","nucleotides","chemicals","ions","water"];for(let i=0,l=e.length;i[e,s.parasCls.hydrophobicValues[e]]));l.sort(((e,t)=>parseFloat(e[1])-parseFloat(t[1])));var r=l.map((e=>[e[0],Object.keys(o[e[0]])[0]]));n+="
    ","normalized hydrophobic"==e?(n+="Dark green (W, F, L, I, Y, M, V, C): Hydrophobic
    ",n+="Light green (P, T, S, A, Q, N, G): Polar
    ",n+="Grey: Charged, not hydrophobic

    "):(n+="Green (W, F, L, I, Y, M, V, C): Hydrophobic
    ",n+="Yellow (P, T, S, A, Q, N, G): Polar
    ",n+="Red: Negatively Charged
    ",n+="Blue: Positively Charged

    ");let a=0;for(let e of r)s.parasCls.residueAbbrev[e[0]]&&(n+="
    ",n+="
    ",n+=s.parasCls.residueAbbrev[e[0]]+"
    ",a%4==3&&(n+="
    "),++a);n+="
    "}else"b factor"==e?(n+="
    B factor quantitates the uncertainty for each atom. A high B factor reflects that the position is less certain.

    ",n+=s.htmlCls.clickMenuCls.setLegendHtml()):"confidence"==e?n+=s.htmlCls.clickMenuCls.setLegendHtml(!0):"exon"==e?(t.startColor="red",t.midColor="white",t.endColor="blue",t.startValue="Start",t.midValue="Middle",t.endValue="End",n+=s.htmlCls.clickMenuCls.setLegendHtml()):n="";n?($("#"+s.pre+"dl_legend_html").html(n),s.htmlCls.dialogCls.openDlg("dl_legend","Color Legend")):$("#"+s.pre+"dl_legend").hasClass("ui-dialog-content")&&$("#"+s.pre+"dl_legend").dialog("isOpen")&&$("#"+s.pre+"dl_legend").dialog("close")}getColorLegendForElem(e,t){let s=this.icn3d,i=s.icn3dui,n="",l={};for(let e in t){let t=s.atoms[e],i=void 0===t||void 0===t.color||"FFFFFF"===t.color.getHexString().toUpperCase()?"DDDDDD":t.color.getHexString();void 0===l[t.elem]&&(l[t.elem]={}),l[t.elem][i]=1}if(Object.keys(l).length>0){n+=""+e+"
    ";let t=Object.keys(l).sort();for(let e=0,s=t.length;e";for(let e in l[s])n+="
    ";n+=i.parasCls.atomnames[s.toUpperCase()]+"

    "}n+="
    "}return n}getRes2color(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=s.firstAtomObjCls.getResiduesFromAtoms(e);for(let e in l){let l=s.residues[e],r=s.firstAtomObjCls.getFirstAtomObj(l),o=t?r.resn:i.parasCls.residueAbbrev[r.resn],a=void 0===r||void 0===r.color||"FFFFFF"===r.color.getHexString().toUpperCase()?"DDDDDD":r.color.getHexString();null!=o&&(void 0===n[o]&&(n[o]={}),n[o][a]=1)}return n}getColorLegendForResidue(e){this.icn3d.icn3dui;let t="",s=this.getRes2color(e);if(Object.keys(s).length>0){t+="
    ";let e=Object.keys(s).sort(),i="",n=0;for(let l=0,r=e.length;l";for(let e in s[o])r+="
    ";r+=o+"
    ",n%4==3&&(r+="
    "),-1!=o.indexOf("(")?(t+=r,++n):i+=r}i&&(t+="
    "+i),t+="
    "}return t}getColorLegendForCharge(e){let t=this.icn3d;t.icn3dui;let s="",i=t.firstAtomObjCls.getResiduesFromAtoms(e),n={};for(let e in i){let s=t.residues[e],i=t.firstAtomObjCls.getFirstAtomObj(s);"ARG"==i.resn||"LYS"==i.resn?n.Positive=1:"HIS"==i.resn?n["Partial-Positive"]=1:"ASP"==i.resn||"GLU"==i.resn||t.nucleotides[i.serial]?n.Negative=1:n.Neutral=1}const l={Positive:"0000ff","Partial-Positive":"8080ff",Negative:"ff0000",Neutral:"888888"};let r=["Positive","Partial-Positive","Negative","Neutral"];s+="
    ";for(let e=0,t=r.length;e",s+="
    ",s+=t,s+="
    ")}return s+="
    (Charges are at pH 7)",s+="
    ",s}getColorLegendForIgstrand(e){this.icn3d.icn3dui;let t="";const s={"A Strand":"9400D3","B Strand":"ba55d3","C Strand":"0000FF","C' Strand":"6495ED","C'' Strand":"006400","D Strand":"00FF00","E Strand":"FFD700","F Strand":"FF8C00","G Strand":"FF0000",Loop:"CCCCCC"};t+="
    ";for(let e in s){t+="",t+="
    ",t+=e,t+="

    "}return t+="
    ",t}getColorLegendForIgproto(e){this.icn3d.icn3dui;let t="";const s={"Protodomain 1":"","A Strand":"0000FF","B Strand":"006400","C Strand":"FFD700","C' Strand":"FF8C00","
    Linker":"","C'' Strand":"FF0000","
    Protodomain 2":"","D Strand":"0000FF","E Strand":"006400","F Strand":"FFD700","G Strand":"FF8C00","":"",Loop:"CCCCCC"};t+="
    A protodomain is a supersecondary structure
    that by its duplication, symmetry operations
    can generate a structural domain.

    ";for(let e in s){let i=s[e];t+="",i&&(t+="
    "),t+=e,t+="

    "}return t+="
    ",t}}class vt{constructor(e){this.icn3d=e}async showCddSiteAll(){let e=this.icn3d,t=e.icn3dui,s=this;e.chainid2pssmid={};let i=$.map(e.protein_chainid,(function(e){return e})),n=Object.keys(e.protein_chainid),l="https://www.ncbi.nlm.nih.gov/Structure/cdannots/cdannots.fcgi?fmt&frclive&live=lcl&queries="+i;if(1==Object.keys(e.structures).length&&!t.cfg.afid&&(t.cfg.mmtfid||t.cfg.pdbid||t.cfg.opmid||t.cfg.mmdbid||t.cfg.gi||t.cfg.uniprotid||t.cfg.blast_rep_id||t.cfg.cid||t.cfg.mmcifid)||2==Object.keys(e.structures).length&&t.cfg.align){let e={};try{t.bNode?e=await t.getAjaxPromise(l,"jsonp"):e.value=await t.getAjaxPromise(l,"jsonp"),s.parseCddData([e],n)}catch(e){return void s.getNoCdd(i)}}else{let i=[];for(let s=0,r=n.length;s',p=h,m=h,u=d.doms;n.bNode&&!i.resid2cdd[c]&&(i.resid2cdd[c]=[]),n.bNode&&!i.chainid2cdd[c]&&(i.chainid2cdd[c]=[]);let g=l.setDomainFeature(u,c,"domain",h,p,m);i.chainid2pssmid[c]={pssmid2name:g.pssmid2name,pssmid2fromArray:g.pssmid2fromArray,pssmid2toArray:g.pssmid2toArray};let f=g.acc2domain;h=g.html+"",p=g.html2+"",m=g.html3+"",$("#"+i.pre+"dt_cdd_"+c).html(h),$("#"+i.pre+"ov_cdd_"+c).html(p),$("#"+i.pre+"tt_cdd_"+c).html(m),h='
    ',p=h,m=h;let C=d.motifs;n.bNode&&!i.resid2site[c]&&(i.resid2site[c]=[]),g=l.setDomainFeature(C,c,"feat",h,p,m,f),h=g.html,p=g.html2,m=g.html3;let b=a.data[e].sites,y=void 0!==b?b.length:0;for(let e=0;e17&&(s=s.substr(0,17)+"...");let l,r=b[e].title,o=[];for(let t=0,s=b[e].locs.length;t'+s+"
    ",u=''+t.toString()+" Res",g='';m+=d+u+"
    ",h+=d+u+g,p+=d+u+g;let f="site"+e.toString(),C=0,y=0,v=1;i.seqStartLen&&i.seqStartLen[c]&&(p+=i.showSeqCls.insertMulGapOverview(c,i.seqStartLen[c])),i.seqStartLen&&i.seqStartLen[c]&&(h+=i.showSeqCls.insertMulGap(i.seqStartLen[c],"-"));for(let t=0,s=i.giSeq[c].length;t1&&(l=s[0]+"..");let r=i.ParserUtilsCls.getResi(c,t);if(h+=''+s+"",n.bNode){let t={};t[c+"_"+r]="site: "+b[e].title,i.resid2site[c].push(t)}p+=i.showSeqCls.insertGapOverview(c,t);let o=n.cfg.blast_rep_id==c?Math.round(i.seqAnnWidth*t/(i.maxAnnoLength+i.nTotalGap)-C-y):Math.round(i.seqAnnWidth*t/i.maxAnnoLength-C-y);o>=0&&(p+='
     
    ',p+='
     
    ',C+=o,y+=v)}else h+="-";i.seqStartLen&&i.seqStartLen[c]&&(h+=i.showSeqCls.insertMulGap(i.seqEndLen[c],"-")),g=' '+t.toString()+" Residues",g+="
    ",g+="
    ",h+=g,p+=g}h+="",p+="",m+="",$("#"+i.pre+"dt_site_"+c).html(h),$("#"+i.pre+"ov_site_"+c).html(p),$("#"+i.pre+"tt_site_"+c).html(m)}}for(let e in i.protein_chainid)r.hasOwnProperty(e)||($("#"+i.pre+"dt_cdd_"+e).html(""),$("#"+i.pre+"ov_cdd_"+e).html(""),$("#"+i.pre+"tt_cdd_"+e).html(""),$("#"+i.pre+"dt_site_"+e).html(""),$("#"+i.pre+"ov_site_"+e).html(""),$("#"+i.pre+"tt_site_"+e).html(""));i.showAnnoCls.enableHlSeq(),i.bAjaxCddSite=!0}getNoCdd(e){let t=this.icn3d;t.icn3dui,console.log("No CDD data were found for the protein "+e+"...");for(let e in t.protein_chainid)$("#"+t.pre+"dt_cdd_"+e).html(""),$("#"+t.pre+"ov_cdd_"+e).html(""),$("#"+t.pre+"tt_cdd_"+e).html(""),$("#"+t.pre+"dt_site_"+e).html(""),$("#"+t.pre+"ov_site_"+e).html(""),$("#"+t.pre+"tt_site_"+e).html("");t.showAnnoCls.enableHlSeq(),t.bAjaxCddSite=!0}getResiArrayStr(e,t){let s=this.icn3d;s.icn3dui;let i="";for(let n=0,l=e.length;n0&&(i+=","),i+=r.split("_")[2]}return i}setDomainFeature(e,t,s,i,n,l,r,o,a){let d,c,h,p=this.icn3d,m=p.icn3dui,u="domain"!=s&&"feat"!=s;"domain"==s&&(r={},d={},c={},h={}),void 0===e&&(e=[]);let g=e.length,f="domain"==s?14:19,C="domain"==s?100:120;e.sort((function(e,t){let i=e.locs,n="domain"==s||"ig"==s?i[0].segs:[i[0]],l=Math.round(n[0].from);return i=t.locs,n="domain"==s||"ig"==s?i[0].segs:[i[0]],l-Math.round(n[0].from)}));for(let b=0;bf&&(w=w.substr(0,f)+"...");let S=u?a[b]:s+": "+v;"domain"==s&&(d[g]=v);let A=e[b].locs;if(A)for(let e=0,r=A.length;e'+w+" ",I=''+u.toString()+" Res";l+=R+I+"
    ";let E='';i+=R+I+E,"domain"==s&&(n+='
    '),n+='
    '+w+"
    ",n+=I+E;let T=s+b.toString();if(p.seqStartLen&&p.seqStartLen[t]&&(i+=p.showSeqCls.insertMulGap(p.seqStartLen[t],"-")),m.bNode&&"domain"==s){let e=this.getResiArrayStr(r,t),s=this.getResiArrayStr(a,t);p.chainid2cdd[t].push(S+"_from_"+e+"_to_"+s)}for(let e=0,n=p.giSeq[t].length;e1&&(l=n[0]+"..");let r=p.ParserUtilsCls.getResi(t,e);if(i+=''+n+"",m.bNode){let e={};e[t+"_"+r]=S,"domain"==s?p.resid2cdd[t].push(e):p.resid2site[t].push(e)}}else i+="-";if(p.seqStartLen&&p.seqStartLen[t]&&(i+=p.showSeqCls.insertMulGap(p.seqEndLen[t],"-")),p.seqStartLen&&p.seqStartLen[t]&&(n+=p.showSeqCls.insertMulGapOverview(t,p.seqStartLen[t])),m.cfg.blast_rep_id!=t){let i;for(let l=0,d=r.length;l ',n+='
    '+v+"
    "}}else{let i=[],l=[];for(let e=0,t=r.length;e ',n+='
    '+v+"
    "}}E=' '+u.toString()+" Residues",E+="
    ",E+="
    ",i+=E,n+=E,"domain"==s&&(n+='')}}return{html:i,html2:n,html3:l,acc2domain:r,pssmid2name:d,pssmid2fromArray:c,pssmid2toArray:h}}getColorFromPos(e,t,s){let i,n=this.icn3d;n.icn3dui;let l=e+"_"+n.ParserUtilsCls.getResi(e,t),r=n.firstAtomObjCls.getFirstAtomObj(n.residues[l]),o=r&&void 0!==r.color&&"FFFFFF"!==r.color.getHexString()?r.color.getHexString():"DDDDDD";return i=r&&void 0!==r.color?o:"CCCCCC",i}showAnnoType(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui,a='
    ',d=a,c=a;if(0==n.length)return $("#"+r.pre+"dt_"+s+"_"+e).html(""),$("#"+r.pre+"ov_"+s+"_"+e).html(""),void $("#"+r.pre+"tt_"+s+"_"+e).html("");let h=i;i.length>17&&(i=i.substr(0,17)+"...");let p=[];for(let e=0,t=n.length;e'+i+"
    ",f=''+m.toString()+" Res";c+=g+f+"
    ";let C='';a+=g+f+C,d+=g+f+C;let b=s,y=0,v=0;r.seqStartLen&&r.seqStartLen[e]&&(d+=r.showSeqCls.insertMulGapOverview(e,r.seqStartLen[e])),r.seqStartLen&&r.seqStartLen[e]&&(a+=r.showSeqCls.insertMulGap(r.seqStartLen[e],"-"));for(let t=0,i=r.giSeq[e].length;t1&&(c=n[0]+"..");let h=i,p=e+"_"+i,m=n+i;if("ssbond"==s){m="Residue "+p+" has disulfide bond with";let t="";if(void 0!==l[p])for(let e=0,s=l[p].length;e'+c+"",d+=r.showSeqCls.insertGapOverview(e,t);let u=o.cfg.blast_rep_id==e?Math.round(r.seqAnnWidth*t/(r.maxAnnoLength+r.nTotalGap)-y-v):Math.round(r.seqAnnWidth*t/r.maxAnnoLength-y-v);u>=0&&(d+='
     
    ',d+='
     
    ',y+=u,v+=1)}else a+="-"}r.seqStartLen&&r.seqStartLen[e]&&(a+=r.showSeqCls.insertMulGap(r.seqEndLen[e],"-")),C=' '+m.toString()+" Residues",C+="",C+="
    ",a+=C,d+=C,a+="",d+="",c+="",$("#"+r.pre+"dt_"+s+"_"+e).html(a),$("#"+r.pre+"ov_"+s+"_"+e).html(d),$("#"+r.pre+"tt_"+s+"_"+e).html(c)}setToolTip(){let e=this.icn3d;e.icn3dui,$("[id^="+e.pre+"snp]").add("[id^="+e.pre+"clinvar]").add("[id^="+e.pre+"ssbond]").add("[id^="+e.pre+"crosslink]").tooltip({content:function(){return $(this).prop("title")},show:null,close:function(e,t){t.tooltip.hover((function(){$(this).stop(!0).fadeTo(400,1)}),(function(){$(this).fadeOut("400",(function(){$(this).remove()}))}))}})}}class _t{constructor(e){this.icn3d=e}showInteraction(e,t){this.icn3d.icn3dui,this.showInteraction_base(e,t)}showInteraction_base(e,t){let s=this.icn3d,i=s.icn3dui;i.bNode&&(s.resid2contact||(s.resid2contact={}),s.resid2contact[e]||(s.resid2contact[e]=[])),void 0===s.chainname2residues&&(s.chainname2residues={});let n=Object.keys(s.chains),l=e,r=Math.round(l.indexOf("_"));if(s.firstAtomObjCls.getFirstCalphaAtomObj(s.chains[l]),void 0===s.chainname2residues[l]){s.chainname2residues[l]={};let t=n.length;if(t>100&&void 0===i.cfg.mmdbid&&void 0===i.cfg.gi&&void 0===i.cfg.blast_rep_id&&void 0===i.cfg.align&&void 0===i.cfg.chainalign)return $("#"+s.pre+"dt_interaction_"+e).html(""),void $("#"+s.pre+"ov_interaction_"+e).html("");for(let e=0;e4)continue;let o,a=s.firstAtomObjCls.getFirstCalphaAtomObj(s.chains[t]);s.chemicals.hasOwnProperty(a.serial)?o="chemical":s.nucleotides.hasOwnProperty(a.serial)?o="nucleotide":s.ions.hasOwnProperty(a.serial)?o="ion":s.proteins.hasOwnProperty(a.serial)?o="protein":s.water.hasOwnProperty(a.serial)&&(o="water");let d=s.contactCls.getAtomsWithinAtom(i.hashUtilsCls.hash2Atoms(s.chains[l],s.atoms),i.hashUtilsCls.hash2Atoms(s.chains[t],s.atoms),4);if(0==Object.keys(d).length)continue;let c={};for(let e in d){let t=s.atoms[e];c[t.structure+"_"+t.chain+"_"+t.resi]=1}let h=t.substr(t.indexOf("_")+1)+"("+o+")";s.chainname2residues[l][h]=Object.keys(c)}}let o='
    ',a=o,d=o,c=0;for(let t in s.chainname2residues[e]){let n=s.chainname2residues[e][t];if(!n)continue;let l="Interact ."+t;l.length>17&&(l=l.substr(0,17)+"...");let r="Interact ."+t,h=[];for(let e=0,t=n.length;e'+l+"
    ",g=''+p.toString()+" Res";d+=u+g+"
    ";let f='';o+=u+g+f,a+=u+g+f;let C="inter"+c.toString(),b=0,y=0,v=1;s.seqStartLen&&s.seqStartLen[e]&&(a+=s.showSeqCls.insertMulGapOverview(e,s.seqStartLen[e])),s.seqStartLen&&s.seqStartLen[e]&&(o+=s.showSeqCls.insertMulGap(s.seqStartLen[e],"-"));for(let t=0,n=s.giSeq[e].length;t1&&(d=l[0]+"..");let c=n;if(o+=''+d+"",i.bNode){let t={};t[e+"_"+c]=r,s.resid2contact[e].push(t)}a+=s.showSeqCls.insertGapOverview(e,t);let h=i.cfg.blast_rep_id==e?Math.round(s.seqAnnWidth*t/(s.maxAnnoLength+s.nTotalGap)-b-y):Math.round(s.seqAnnWidth*t/s.maxAnnoLength-b-y);h>=0&&(a+='
     
    ',a+='
     
    ',b+=h,y+=v)}else o+="-"}s.seqStartLen&&s.seqStartLen[e]&&(o+=s.showSeqCls.insertMulGap(s.seqEndLen[e],"-")),f=' '+p.toString()+" Residues",f+="
    ",f+="
    ",o+=f,a+=f,++c}o+="",a+="",d+="",$("#"+s.pre+"dt_interaction_"+e).html(o),$("#"+s.pre+"ov_interaction_"+e).html(a),$("#"+s.pre+"tt_interaction_"+e).html(d),i.utilsCls.isMobile()?(s.hlSeqCls.selectSequenceMobile(),s.hlSeqCls.selectChainMobile()):s.hlSeqCls.selectSequenceNonMobile()}}class wt{constructor(e){this.icn3d=e}async showPTM(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui,o=this,a=e.substr(0,e.indexOf("_")),d=e.substr(e.indexOf("_")+1);if("afmem"==s){let t={Transmembrane:[{begin:i,end:n}]};this.setAnnoPtmTransmem("transmem",t,e)}else if(a.length>5){let t,i="https://www.ebi.ac.uk/proteins/api/features/"+a;try{t=await r.getAjaxPromise(i,"json"),o.parsePTM(t,e,s)}catch{return void o.getNoPTM(e,s)}}else{let t,i=a.substr(0,4).toLowerCase(),n="https://www.ebi.ac.uk/pdbe/api/mappings/uniprot/"+i;try{t=await r.getAjaxPromise(n,"json");let a="";l.UPResi2ResiPosPerChain||(l.UPResi2ResiPosPerChain={}),l.UPResi2ResiPosPerChain[e]={};let c=t[i].UniProt,h=!1;for(let t in c){let s=c[t].mappings;for(let i=0,n=s.length;i',o+=r,a+=r,s.substr(0,s.indexOf("_"));for(let d in t){let c=t[d],h=[],p=!1;for(let e=0,t=c.length;e5?h.push(e-1):i.UPResi2ResiPosPerChain&&i.UPResi2ResiPosPerChain[s][e]&&h.push(i.UPResi2ResiPosPerChain[s][e]),!p&&i.residues.hasOwnProperty(s+"_"+e)&&(p=!0)}if(0==h.length)continue;let m=h.length,u="ptm"==e?"PTM: "+d:"Transmembrane";u.length>17&&(u=u.substr(0,17)+"...");let g=d,f='
    '+u+"
    ",C=''+m.toString()+" Res",b='';a+=f+C+"
    ",r+=f+C+b,o+=f+C+b;let y=e+l.toString(),v=0,_=0,w=1;i.seqStartLen&&i.seqStartLen[s]&&(o+=i.showSeqCls.insertMulGapOverview(s,i.seqStartLen[s])),i.seqStartLen&&i.seqStartLen[s]&&(r+=i.showSeqCls.insertMulGap(i.seqStartLen[s],"-"));for(let e=0,t=i.giSeq[s].length;e1&&(l=t[0]+"..");let a=i.ParserUtilsCls.getResi(s,e);if(r+=''+t+"",n.bNode){let e={};e[s+"_"+a]=u,i.resid2ptm[s].push(e)}o+=i.showSeqCls.insertGapOverview(s,e);let d=n.cfg.blast_rep_id==s?Math.round(i.seqAnnWidth*e/(i.maxAnnoLength+i.nTotalGap)-v-_):Math.round(i.seqAnnWidth*e/i.maxAnnoLength-v-_);d>=0&&(o+='
     
    ',o+='
     
    ',v+=d,_+=w)}else r+="-";i.seqStartLen&&i.seqStartLen[s]&&(r+=i.showSeqCls.insertMulGap(i.seqEndLen[s],"-")),b=' '+m.toString()+" Residues",b+="
    ",b+="
    ",r+=b,o+=b,++l}r+="",o+="",a+="",$("#"+i.pre+"dt_"+e+"_"+s).html(r),$("#"+i.pre+"ov_"+e+"_"+s).html(o),$("#"+i.pre+"tt_"+e+"_"+s).html(a)}getNoPTM(e,t){let s=this.icn3d;s.icn3dui,console.log("No PTM data were found for the chain "+e+"...");let i="ptm"==t?"ptm":"transmem";$("#"+s.pre+"dt_"+i+"_"+e).html(""),$("#"+s.pre+"ov_"+i+"_"+e).html(""),$("#"+s.pre+"tt_"+i+"_"+e).html(""),s.showAnnoCls.enableHlSeq(),s.bAjaxPTM=!0}}class St{constructor(e){this.icn3d=e}async showIg(e,t){let s=this.icn3d;s.icn3dui,s.bRunRefnumAgain&&await s.refnumCls.showIgRefNum(t);let i="",n="",l="";if(s.bShowRefnum&&s.chainid2refpdbname.hasOwnProperty(e)&&s.chainid2refpdbname[e].length>0){let t=s.showSeqCls.getSeq(e),r=s.annoIgCls.showAllRefNum(t,e);i+=r.html,n+=r.html2,l+=r.html3}$("#"+s.pre+"dt_"+"ig_"+e).html(i),$("#"+s.pre+"ov_"+"ig_"+e).html(n),$("#"+s.pre+"tt_"+"ig_"+e).html(l)}showAllRefNum(e,t){let s=this.icn3d;s.icn3dui;let i="",n="",l="",r=!1;for(let i=0,n=e.length;i0){r=!0;break}}let o=!1;for(let i=0,n=e.length;i0){o=!0;break}}let a=this.showRefNum(e,t);i+=a.html,n+=a.html2,l+=a.html3;let d=1;return r&&(a=this.showRefNum(e,t,d),i+=a.html,n+=a.html2,l+=a.html3),d=2,o&&(a=this.showRefNum(e,t,d),i+=a.html,n+=a.html2,l+=a.html3),{html:i,html2:n,html3:l}}showRefNum(e,t,s,i){let n=this.icn3d;if(n.icn3dui,n.chainid2igtrack){if(!n.chainid2igtrack[t])return{html:"",html2:"",html3:""}}let l=this.getIgAnnoHtml(t,e,i,s);return n.bShowRefnum&&(n.opts.color="ig strand",n.setColorCls.setColorByOptions(n.opts,n.chains[t])),l}setChain2igArray(e,t,s){let i,n=this.icn3d;n.icn3dui;let l={};for(let r=0,o=t.length;r0&&s!=i+1&&(a.push(i),o.push(s)),i=s;a.push(s);let d={};d.domainid=t,d.startPosArray=o,d.endPosArray=a,n.chain2igArray[e].push(d)}}getIgAnnoHtml(e,t,s,i){let n=this.icn3d,l=n.icn3dui,r="",o="",a="";n.chain2igArray||(n.chain2igArray={});let d,c,h,p=!1,m="";n.chain2igArray[e]=[],this.setChain2igArray(e,t,s);let u=n.chain2igArray[e];for(let t=0,s=u.length;t=0;--t){let s=e+"_"+n.chainsSeq[e][t].resi;if(!n.residIgLoop.hasOwnProperty(s))break;delete n.resid2refnum[s],delete n.residIgLoop[s],delete n.resid2domainid[s]}}}n.chain2igArray[e]=[],this.setChain2igArray(e,t,s);let g="";for(let l=0,r=t.length;l'+h+"":' '}else g+="";else if(1==i||2==i)if(h){let e=parseInt(h).toString(),t='style="color:'+this.getRefnumColor(m,!0)+'"';g+=parseInt(e.substr(e.length-2,2))%2==0?"'+h+"":" '}else g+="";else" "!=m?(p=n.residIgLoop[t],g+=this.getRefnumHtml(t,h,c,d,m,p,o)):g+="";else g+=""}if(l.bNode)return{html:r,html2:o,html3:a};let f="icn3d-link icn3d-blue",C="IgStRAnD Ref. No.",b=n.chain2igArray[e].length,y=[],v=[],_={};n.igLabel2Pos||(n.igLabel2Pos={}),n.igLabel2Pos[e]={};for(let t=0;t",S='
    ';s&&(S='
    ');let A='
    '+C+"
    ";if(S+='
    ',s?(S+='
    Custom Ref. No.
    ',S+=''):1==i?(S+='
    Kabat Ref. No.
    ',S+=''):2==i?(S+='
    IMGT Ref. No.
    ',S+=''):(S+=A,S+=w),a+=S+"
    ",r+=S+'',n.seqStartLen&&n.seqStartLen[e]&&(r+=n.showSeqCls.insertMulGap(n.seqStartLen[e],"-")),r+=g,n.seqStartLen&&n.seqStartLen[e]&&(r+=n.showSeqCls.insertMulGap(n.seqEndLen[e],"-")),s||(r+=w),r+="",r+="
    ",r+="
    ",r+="
    ",u=n.chain2igArray[e],0==u.length)return{html:r,html2:o,html3:a};let x=[],k=[],O=[],R=[],I=e.substr(e.lastIndexOf("_")+1);for(let e=0,t=u.length;e',n.seqStartLen&&n.seqStartLen[e]&&(o+=n.showSeqCls.insertMulGapOverview(e,n.seqStartLen[e]));for(let i=0,l=y.length;i 
    ',o+='
    '+R[r]+"
    ",t=r}o+=w,o+="",a+="",S='
    ';let i=S,l=S,d=n.annoCddSiteCls.setDomainFeature(x,e,"ig",S,i,l,void 0,k,O);r+=d.html+"
    ",o+=d.html2+"",a+=d.html3+""}return{html:r,html2:o,html3:a}}getRefnumHtml(e,t,s,i,n,l,r){let o=this.icn3d,a=o.icn3dui,d=parseInt(t).toString(),c=(d-1e3*parseInt(d/1e3)).toString(),h=parseInt(d.toString().substr(0,2)),p="5"!=c.substr(0,1)&&"18"!=h,m=this.getRefnumColor(n,!0),u=l?'style="color:'+m+'"':'style="color:'+m+'; text-decoration: underline overline;"',g=d.substr(d.length-2,2),f=parseInt(g);parseInt(d.substr(d.length-3,3));let C="";return!i||50!=f||p||l?i&&f%2==0&&52!=f&&!r?(g=isNaN(t)?g+t.substr(t.length-1,1):g,C+="'+g+""):C+=" ':(o.hAtomsRefnum=a.hashUtilsCls.unionHash(o.hAtomsRefnum,o.residues[e]),C+="'+i.substr(0,1)+""+i.substr(1)+""),C}getRefnumColor(e,t){let s=this.icn3d.icn3dui,i=e?e.substr(0,1):"";return"C"==e?"#0000FF":"C'"==e?"#6495ED":"C''"==e?"#006400":"A"==i?"#9400D3":"B"==i?"#ba55d3":"D"==i?"#00FF00":"E"==i?"#FFD700":"F"==i?"#FF8C00":"G"==i?"#FF0000":s.htmlCls.GREYB}getProtodomainColor(e){let t=this.icn3d.icn3dui,s=e?e.substr(0,1):"";return"A"==s||"D"==s?"#0000FF":"B"==s||"E"==s?"#006400":"C"==e||"F"==s?"#FFD700":"C'"==e||"G"==s?"#FF8C00":"C''"==e?"#FF0000":t.htmlCls.GREYB}}class At{constructor(e){this.icn3d=e}showCrosslink(e,t){let s=this.icn3d;s.icn3dui;let i=this;void 0===s.clbondpnts?setTimeout((function(){i.showCrosslink_base(e,t)}),1e3):this.showCrosslink_base(e,t)}showCrosslink_base(e,t){let s=this.icn3d;s.icn3dui.bNode&&(s.resid2crosslink||(s.resid2crosslink={}),s.resid2crosslink[e]||(s.resid2crosslink[e]=[]));let i=t,n={},l=i.substr(0,i.indexOf("_")),r=s.clbondpnts[l];if(void 0===r)return $("#"+s.pre+"dt_crosslink_"+e).html(""),$("#"+s.pre+"ov_crosslink_"+e).html(""),void $("#"+s.pre+"tt_crosslink_"+e).html("");for(let e=0,t=r.length;e',a=o,d=o,c=e.indexOf("_"),h=e.substr(c+1);h.length>1&&"1"==h.substr(h.length-1)&&(h=h.substr(0,h.length-1)),n=e,i=t.domains[e]?t.domains[e].domains:[];for(let t=0,c=i.length;t17?c.substr(0,17)+"...":c,p=i[t].intervals,m=[],u=[],g={},f=0;for(let t=0,s=p.length;t'+h+" ",b=''+f.toString()+" Res";d+=C+b+"
    ";let y='';o+=C+b+y,a+=C+b+y;let v="domain3d"+t.toString();l.seqStartLen&&l.seqStartLen[e]&&(o+=l.showSeqCls.insertMulGap(l.seqStartLen[e],"-"));for(let t=0,s=l.giSeq[e].length;t1&&(n=i[0]+"..");let r=s;o+=''+i+""}else o+="-"}l.seqStartLen&&l.seqStartLen[e]&&(o+=l.showSeqCls.insertMulGap(l.seqEndLen[e],"-"));let _=l.firstAtomObjCls.getFirstCalphaAtomObj(l.chains[e]),w=void 0===_.color||"FFFFFF"===_.color.getHexString()?"DDDDDD":_.color.getHexString(),S=void 0!==_.color?w:"CCCCCC";if(l.seqStartLen&&l.seqStartLen[e]&&(a+=l.showSeqCls.insertMulGapOverview(e,l.seqStartLen[e])),r.cfg.blast_rep_id!=e)for(let s=0,i=m.length;s ',a+='"}else{let s=[],i=[];for(let e=0,t=m.length;e ',a+='"}}y=' '+f.toString()+" Residues",y+="",y+="
    ",o+=y,a+=y}if(s||(o+="",a+="",d+="",$("#"+l.pre+"dt_domain_"+e).html(o),$("#"+l.pre+"ov_domain_"+e).html(a),$("#"+l.pre+"tt_domain_"+e).html(d)),s&&l.chainid2clashedResidpair){l.clashedResidHash={};for(let e in l.chainid2clashedResidpair){let t=e.split("|"),s=l.chainid2clashedResidpair[e].split("|");parseInt(s[0])0){let s={};for(let i in e.clashedResidHash)s=t.hashUtilsCls.unionHash(s,e.residues[i]);e.bHideClashed?e.hAtoms=t.hashUtilsCls.exclHash(e.hAtoms,s):e.hAtoms=t.hashUtilsCls.unionHash(e.hAtoms,s),e.dAtoms=t.hashUtilsCls.cloneHash(e.hAtoms)}}getMoreResidues(e,t,s,i){let n=this.icn3d;n.icn3dui;let l={};for(let r=1;r<100;++r){let o=t+"_"+(e+s*r).toString(),a=n.firstAtomObjCls.getFirstAtomObj(n.residues[o]);if(a){let e=!1;if("not coil"==i?e="coil"!=a.ss:"ssbegin"==i?e=a.ssbegin:"ssend"==i&&(e=a.ssend),e)break;l[o]=1}}return l}}class kt{constructor(e){this.icn3d=e}async showSnp(e,t){this.icn3d.icn3dui,await this.showSnpClinvar(e,t,!0)}async showClinvar(e,t){this.icn3d.icn3dui,await this.showSnpClinvar(e,t,!1)}async showSnpClinvar(e,t,s){let i=this.icn3d.icn3dui,n=this,l=i.htmlCls.baseUrl+"vastdyn/vastdyn.cgi?chainid="+t;try{let r=await i.getAjaxPromise(l,"jsonp"),o=r.snpgi,a=r.gi;if(s)await n.showSnpPart2(e,t,o);else{let s=o;[6137708,1942289,224510717,2624886,253723219,2554905,75765331,3660278,312207882,319443632,342350956,1827805,109157826,1065265,40889086,6730307,163931185,494469,163931091,60594093,55669745,18655489,17942684,6980537,166235465,6435586,4139398,4389047,364506122,78101667,262118402,20664221,2624640,158430173,494395,28948777,34810587,13399647,3660342,261278854,342350965,384482350,378792570,15988303,213424334,4558333,2098365,10835631,3318817,374074330,332639529,122919696,4389286,319443573,2781341,67464020,194709238,210061039,364506106,28949044,40889076,161172338,17943181,4557976,62738484,365813173,6137343,350610552,17942703,576308,223674070,15826518,1310997,93279697,4139395,255311799,157837067,361132363,357380836,146387678,383280379,1127268,299856826,13786789,1311054,46015217,3402130,381353319,30750059,218766885,340707375,27065817,355333104,2624634,62738384,241913553,304446010].includes(a)&&(s=a),await n.showClinvarPart2(e,t,s)}}catch(t){return void(s?n.processNoSnp(e):n.processNoClinvar(e))}}navClinVar(e){let t=this.icn3d;t.icn3dui;let s=this;t.currClin[e]=-1,$(document).on("click","#"+t.pre+e+"_prevclin",(function(t){let i=s.icn3d;t.stopImmediatePropagation();let n=void 0!==i.resi2disease_nonempty[e]?Object.keys(i.resi2disease_nonempty[e]).length:0;--i.currClin[e],i.currClin[e]<0&&(i.currClin[e]=n-1),s.showClinVarLabelOn3D(e)})),$(document).on("click","#"+t.pre+e+"_nextclin",(function(t){let i=s.icn3d;t.stopImmediatePropagation();let n=void 0!==i.resi2disease_nonempty[e]?Object.keys(i.resi2disease_nonempty[e]).length:0;++i.currClin[e],i.currClin[e]>n-1&&(i.currClin[e]=0),s.showClinVarLabelOn3D(e)}))}showClinVarLabelOn3D(e){let t,s,i=this.icn3d,n=i.icn3dui,l=Object.keys(i.resi2disease_nonempty[e]);t=e,s=t+"_"+(parseInt(l[i.currClin[e]])+i.baseResi[e]).toString();let r="",o=i.resi2disease_nonempty[e][l[i.currClin[e]]];for(let e=0,t=o.length;e0?o[0]:"N/A");let a=i.applyCenterCls.centerAtoms(n.hashUtilsCls.hash2Atoms(i.residues[s],i.atoms));r.length>30&&(r=r.substr(0,30)+"..."),i.selectionCls.removeSelection(),null==i.labels&&(i.labels={}),i.labels.clinvar=[];let d=i.LABELSIZE,c="black"!=i.opts.background?i.colorWhitebkgd:i.colorBlackbkgd;i.analysisCls.addLabel(r,a.center.x+1,a.center.y+1,a.center.z+1,d,c,void 0,"clinvar"),i.hAtoms={};for(let e in i.residues[s])i.hAtoms[e]=1;$("#clinvar_"+i.pre+s).addClass("icn3d-highlightSeq"),void 0===$("#"+i.pre+"modeswitch")[0]||$("#"+i.pre+"modeswitch")[0].checked||i.definedSetsCls.setMode("selection"),i.drawCls.draw()}getSnpLine(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g){let f=this.icn3d,C=f.icn3dui,b="",y=m?"clinvar":"snp",v=!1;for(let e in i){for(let t=0,s=i[e].length;t(from human)",i=" (based on human sequences and mapped to this structure by sequence similarity)"),b+=m?'":'"}else if(2==e&&m){let e=C.utilsCls.isMobile()?"none":"button";b+='
    ',b+='
    '}else b+='
    ';let _=y,w=0,S=0,A={},x={},k=f.firstAtomObjCls.getResiduesFromAtoms(f.chains[h]);for(let t in k){let i=t.split("_")[2];if(void 0!==r[i]){++w;let t="";for(let n=0,r=s[i].length;n'+O+" Res":'',u)return b+"
    ";b+='';let R="",I=0,E=0;p?f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGapOverview(h,f.seqStartLen[h])):f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGap(f.seqStartLen[h],"-"));for(let t=1,a=f.giSeq[h].length;t<=a;++t){let a=f.ParserUtilsCls.getResi(h,t-1),d=a;if(p){if(void 0!==r[d]){let e=f.giSeq[h][t-1],i=e;e.length>1&&(i=e[0]+"..");let n=a+i+">";for(let e=0,t=s[d].length;e=0&&(b+='
     
    ',b+='
     
    ',I+=r,E+=1):r>0&&(b+='
     
    ',b+='
     
    ',I+=r,E+=1)}}else if(b+=f.showSeqCls.insertGap(h,t-1,"-"),void 0!==r[d])if(m||1!=e){let r=f.giSeq[h][t-1],c=r;r.length>1&&(c=r[0]+"..");let p,u="",y="
    ",v=s[d].length,w=0,S=0;if(2==e&&(w=0,S=v),m){p=1;let t=0;for(let e=w;e0?w+="; ":0!==e&&1!==e||(R='disease="'+b[t]+'"'),w+=b[t],""!=_[t]&&(w+="("+_[t]+")"),++S;t"+s[d][e],y+=": "+w,g&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(r,"snpin3d","3D with scap","SNP in 3D with scap",70,m)+"  ",y+=f.showAnnoCls.addSnpButton(r,"snpinter","Interactions","SNP Interactions in 3D",70,m)+"  ",y+=f.showAnnoCls.addSnpButton(r,"snppdb","PDB","Download SNP PDB",35,m)),y+="
    Links: ClinVar",0!=i[d][e]&&(y+=", dbSNP(rs"+i[d][e]+")"),e
    "),++t}t>p&&2==e&&(u+="..")}else{p=1;for(let e=w;e"+s[d][e],g)m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),0!=i[d][e]&&(y+="
    Link: dbSNP(rs"+i[d][e]+")"),e
    ");else{let s=l[d][e].split("; "),a=o[d][e].split("; "),c="",h=0;for(let t=0,i=s.length;t0?c+="; ":0!==e&&1!==e||(R='disease="'+s[t]+'"'),c+=s[t],""!=a[t]&&(c+="("+a[t]+")"),++h;""!=c?(y+=": "+c,m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),y+="
    Links: ClinVar, dbSNP(rs"+i[d][e]+")"):(m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),y+="
    Link: dbSNP(rs"+i[d][e]+")"),e
    ")}}v>p&&2==e&&(u+="..")}y+="
    ",b+=m?1==e?"":""==u||" "==u?"-":''+u+"":""==u||" "==u?"-":g?''+u+"":''+u+""}else b+="";else b+="-"}return p||f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGap(f.seqEndLen[h],"-")),b+=1==e?' '+O+" Residues":'',b+="
    ",b+="
    ",b}processSnpClinvar(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui,o='
    ',a=o,d=o,c='
    ',h=c,p=c,m=!i||n?e.data:e.split("\n"),u={},g={},f={};void 0===l.resi2disease_nonempty[t]&&(l.resi2disease_nonempty[t]={});let C={},b={},y={},v={},_={},w="";r.bNode&&(i?(l.resid2snp||(l.resid2snp={}),l.resid2snp[t]||(l.resid2snp[t]=[])):(l.resid2clinvar||(l.resid2clinvar={}),l.resid2clinvar[t]||(l.resid2clinvar[t]=[])));let S={};for(let e=0,s=m.length;e5&&(d=parseInt(s[5])):s.length>8&&(d=parseInt(s[8])),o==w)continue;w=o;let c=o.indexOf(">"),h=o.substr(0,c-1),p=Math.round(h),A=d?p:l.ParserUtilsCls.getResi(t,p-1),x=A+o.substr(c-1);if(S.hasOwnProperty(x))continue;S[x]=1;let k=o.substr(c-1,1),O=l.firstAtomObjCls.getFirstAtomObj(l.residues[t+"_"+A]),R=O?r.utilsCls.residueName2Abbr(O.resn.substr(0,3)):"";if(d||(R=l.chainsSeq[t][p-1].name),k!=R)continue;if(r.bNode){let e={};e[t+"_"+A]=x,i?l.resid2snp[t].push(e):l.resid2clinvar[t].push(e)}let I=x.substr(x.indexOf(">")+1),E=i?"":s[5],T=i?"":s[6],P=i?"":s[7];v[A]=1,""!=T&&(_[A]=1),g[A]=e+1,void 0===u[A]&&(u[A]=[]),u[A].push(I),void 0===b[A]&&(b[A]=[]),b[A].push(a),void 0===y[A]&&(y[A]=[]),y[A].push(E),void 0===f[A]&&(f[A]=[]),f[A].push(T),""!=T&&(void 0===l.resi2disease_nonempty[t][A]&&(l.resi2disease_nonempty[t][A]=[]),l.resi2disease_nonempty[t][A].push(T)),void 0===C[A]&&(C[A]=[]),C[A].push(P)}let A=Object.keys(v),x=Object.keys(_);if(i){let e=!1;o+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,void 0,i),o+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,void 0,i),d+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,!0,i),d+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,!0,i),a+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!0,e,void 0,i),o+="
    ",a+="
    ",d+="",$("#"+l.pre+"dt_snp_"+t).html(o),$("#"+l.pre+"ov_snp_"+t).html(a),$("#"+l.pre+"tt_snp_"+t).html(d)}else{let e=!0;c+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,void 0,i),c+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,void 0,i),p+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,!0,i),p+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,!0,i),h+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!0,e,void 0,i),c+="",h+="",p+="",$("#"+l.pre+"dt_clinvar_"+t).html(c),$("#"+l.pre+"ov_clinvar_"+t).html(h),$("#"+l.pre+"tt_clinvar_"+t).html(p),this.navClinVar(t,s)}l.showAnnoCls.enableHlSeq(),i?l.bAjaxSnp=!0:l.bAjaxClinvar=!0}async showClinvarPart2(e,t,s){let i=this.icn3d,n=i.icn3dui,l=this;i.chainid2uniport||await this.getUniprotForAllStructures();let r=n.htmlCls.baseUrl+"vastdyn/vastdyn.cgi?chainid_clinvar="+t+"&uniprot="+i.chainid2uniport[t];i.chainsGene[e]&&i.chainsGene[e].geneSymbol&&(r+="&gene="+i.chainsGene[e].geneSymbol);try{let s=await n.getAjaxPromise(r,"jsonp");if(s&&s.data&&s.data.length>0){let i=!1,n=s;l.processSnpClinvar(n,e,t,i)}else l.processNoClinvar(e)}catch(t){return void l.processNoClinvar(e)}}async getUniprotForAllStructures(){let e=this.icn3d,t=e.icn3dui;e.chainid2uniport={};for(let s in e.structures)if(s.length>5){let t=e.structures[s];for(let i=0,n=t.length;i0){let s=!0,n=!0;l.processSnpClinvar(i,e,t,s,n)}else l.processNoSnp(e)}catch(t){return void l.processNoSnp(e)}}else this.processNoSnp(e),console.log("No gi was found for the chain "+t+"...")}processNoClinvar(e){let t=this.icn3d;t.icn3dui,console.log("No ClinVar data were found for the protein "+e+"..."),$("#"+t.pre+"dt_clinvar_"+e).html(""),$("#"+t.pre+"ov_clinvar_"+e).html(""),t.showAnnoCls.enableHlSeq(),t.bAjaxClinvar=!0}processNoSnp(e){let t=this.icn3d;t.icn3dui,console.log("No SNP data were found for the protein "+e+"..."),$("#"+t.pre+"dt_snp_"+e).html(""),$("#"+t.pre+"ov_snp_"+e).html(""),t.showAnnoCls.enableHlSeq(),t.bAjaxSnp=!0}}class Ot{constructor(e){this.icn3d=e}showSsbond(e,t){let s=this.icn3d;s.icn3dui;let i=this;void 0===s.ssbondpnts?setTimeout((function(){i.showSsbond_base(e,t)}),1e3):this.showSsbond_base(e,t)}showSsbond_base(e,t){let s=this.icn3d;s.icn3dui.bNode&&(s.resid2ssbond||(s.resid2ssbond={}),s.resid2ssbond[e]||(s.resid2ssbond[e]=[]));let i=t,n={},l=i.substr(0,i.indexOf("_")),r=s.ssbondpnts[l];if(void 0===r)return $("#"+s.pre+"dt_ssbond_"+e).html(""),$("#"+s.pre+"ov_ssbond_"+e).html(""),void $("#"+s.pre+"tt_ssbond_"+e).html("");for(let e=0,t=r.length;e-s.halfBilayerSize){i[t.structure+"_"+t.chain+"_"+t.resi]=1}}let n=Object.keys(i);s.annoCddSiteCls.showAnnoType(e,t,"transmem","Transmembrane",n)}}class It{constructor(e){this.icn3d=e,this.init3ddomain()}init3ddomain(){this.icn3d.icn3dui,this.dcut=8,this.min_contacts=2,this.MAX_SSE=512,this.ctc_cnt=[];for(let e=0;e=this.curr_ratio+.01||f>this.split_ratio)return e;if(f>this.curr_ratio-.01&&Math.min(m,u)=0&&l[i]==t-e+i;i--);if(i<0)break;for(l[i]++,s=i+1;s-1;i++);for(l=Math.min(i-1,this.max_csz),this.curr_ne0=this.curr_ne1=0,this.curr_ratio=100,s=1;s<=l;s++)this.cut_size(s,i);if(this.top--,0==this.curr_ne0){for(n=this.stack[this.top],e=n;e-1;e++)this.parts[this.np++]=this.elements[e];this.parts[this.np++]=-1,this.n_doms++}else{if(this.save_ratios[this.saved++]=this.curr_ratio,this.curr_ne0>this.min_sse){for(n=this.stack[this.top],e=0;ethis.min_sse){for(n=this.stack[this.top],e=0;e0;)this.process_set()}output(e){let t,s;this.icn3d.icn3dui;let i=[];for(t=0;t<2*e;t++)i.push(0);for(t=s=0;st+n)break;let p=(t-a)*(t-a);p+=(s-c)*(s-c),p+=(i-h)*(i-h);let m=Math.sqrt(p);if(m>n)continue;let u={},g={};parseInt(e.rnum)this.MAX_SSE)return o=this.standardizeSubstruct(p,o,u),{subdomains:a,substruct:o};let f=h.length,C=f,b=this.c2b_AlphaContacts(f,i,n,l,t,r),y=[];for(let e=0;e=this.min_contacts&&(k[s]||(k[s]={}),k[i]||(k[i]={}),k[s][i]=1,k[i][s]=1)}let O=0,R={};this.groupnum2sheet={},this.visited={};for(let e in k)this.visited[e]=!1;for(let e in k)0==this.visited[e]&&(O++,this.countUtil(e,k,O));for(let e in this.groupnum2sheet){let t=this.groupnum2sheet[e].sort((function(e,t){return e-t}));for(let e=0,s=t.length;e0&&this.elt_size[s.sse-1]>=6&&0!=s.adj_strand2&&e++}for(let e=0;e0)for(let e=0;e0){let e=0;for(let t=0;t<=T;t++){let t=[];for(;e<2*g;){let s=this.parts[e++];if(0==s){P.push(t);break}t.push(s)}}}P.sort((function(e,t){return e[0]-t[0]}));let D=[];for(let e=0,t=P.length;e=this.min_sse&&D.push(P[e])}if(P=D,0==P.length){let e={},t={},s=0;for(let i=0,n=this.group_num.length;i=3&&(s=n)):e[n]=1)}if(0!=s){let e=[s].concat(t[s]);P.push(e)}}for(let e=0,t=P.length;e=o.length)return o=this.standardizeSubstruct(p,o,u),{subdomains:a,substruct:o};let n=o[i],l=n.From,r=n.To;for(let e=l;e<=r;e++)s[e]=1;if(0==i&&l>1)for(let e=1;e0){let e=o[i-1].To,t=parseInt(.5*(l-e-1));if(t>0)for(let e=l-t;e<=l-1;e++)s[e]=1}if(i0)for(let e=r+1;e<=r+t;e++)s[e]=1}}let i,n=!1,l=[];for(let e=0;ec&&(c=p),i.ssend&&(o.To=e+1,o.x2=i.coord.x,o.y2=i.coord.y,o.z2=i.coord.z,o.Sheet="sheet"==i.ss,r.push(o),o={}),i.ssbegin&&(o.From=e+1,o.x1=i.coord.x,o.y1=i.coord.y,o.z1=i.coord.z)}r=this.standardizeSubstruct(l,r,a);let h='{"data": [';h+='{"ss": [';let p=0;for(let e=0,s=r.length;e0&&(h+=", "),h+="["+s+","+i+","+n+","+r[e].x1.toFixed(2)+","+r[e].y1.toFixed(2)+",",h+=r[e].z1.toFixed(2)+","+r[e].x2.toFixed(2)+","+r[e].y2.toFixed(2)+","+r[e].z2.toFixed(2)+"]",++p)}h+="]",h+=', "domain": [';let m=0;for(let e=d;e<=c;++e){let n=l+"_"+e,r=t.ncbi2resid[n];r.split("_")[2];let o=e;if(m>0&&(h+=", "),i.hasOwnProperty(r)){let e=t.firstAtomObjCls.getFirstCalphaAtomObj(t.residues[r]);h+="["+o+","+(s.parasCls.resn2restype[e.resn]?s.parasCls.resn2restype[e.resn]:0)+","+e.coord.x.toFixed(2)+","+e.coord.y.toFixed(2)+","+e.coord.z.toFixed(2)+"]"}else h+="["+o+",0,0,0,0]";++m}return h+="]}",h+="]}",h}}class Et{constructor(e){this.icn3d=e}clickAddTrackButton(){let e=this.icn3d,t=e.icn3dui,s=this;t.myEventCls.onIds("#"+e.pre+"addtrack_button1","click",(async function(e){let i=s.icn3d;e.stopImmediatePropagation(),dialog.dialog("close");let n=$("#"+i.pre+"track_chainid").val(),l=$("#"+i.pre+"track_gi").val(),r=isNaN(l)?"Acc "+l:"gi "+l,o=t.htmlCls.baseUrl+"pwaln/pwaln.fcgi?from=track",a={targets:n,queries:l},d=await t.getAjaxPostPromise(o,a);s.alignSequenceToStructure(n,d,r)})),t.myEventCls.onIds("#"+e.pre+"addtrack_button2","click",(async function(e){let i=s.icn3d;e.stopImmediatePropagation(),dialog.dialog("close");let n=$("#"+i.pre+"track_chainid").val(),l=$("#"+i.pre+"track_fasta").val(),r=$("#"+i.pre+"fasta_title").val(),o=n.substr(0,n.indexOf("_")),a=n;if(5==o.length)a=a.substr(0,4);else if(o.length>5){a="";for(let e=0,t=i.chainsSeq[n].length;e8||d.length<6)&&(a=!1),d.length<9&&(o=!1),d[0];let c,h,p=d[1],m=d[2],u=d[3];d.length,d.length>5&&(c=d[5]),d.length,d.length,d.length>8&&(h=d[8]),d.length,d.length,d.length;let g=u,f="51,51,51";o?f=h:a&&("+"==c&&l.length>0?f=l[0]:"-"==c&&l.length>1?f=l[1]:"."==c&&l.length>2&&(f=l[2]));let C="",b=[];for(let e=0,t=m;e1&&(s=t[0]);let l=i.ParserUtilsCls.getResi(n,e);if(a.hasOwnProperty(n+"_"+l)){let e=i.firstAtomObjCls.getFirstCalphaAtomObj(i.residues[n+"_"+l]),t=void 0===e.color||"FFFFFF"===e.color.getHexString().toUpperCase()?"DDDDDD":e.color.getHexString(),o=void 0!==e.color?t:"CCCCCC";r+=s,d.push("#"+o)}else r+="-",d.push("")}s.showNewTrack(n,l,r,d,void 0,"selection",void 0),t.htmlCls.clickMenuCls.setLogCmd("add track | chainid "+n+" | title "+l+" | text "+s.simplifyText(r)+" | type selection",!0)}))}showNewTrack(e,t,s,i,n,l,r,o,a,d,c,h,p){let m=this.icn3d,u=m.icn3dui,g=!1;"cannot be aligned"==s&&(g=!0);let f=s.replace(/-/g,"").length;if(!o)if(s.length>m.giSeq[e].length)s=s.substr(0,m.giSeq[e].length);else if(s.length20&&(C=C.substr(0,20));let b=u.htmlCls.RESIDUE_WIDTH*s.length+200;$("#"+m.pre+"dt_custom_"+e).append("
    "),$("#"+m.pre+"dt_custom_"+e+"_"+C).width(b),$("#"+m.pre+"ov_custom_"+e).append("
    "),$("#"+m.pre+"ov_custom_"+e+"_"+C).width(b),$("#"+m.pre+"tt_custom_"+e).append("
    "),$("#"+m.pre+"tt_custom_"+e+"_"+C).width(b);let y='
    ',v=y,_=y,w=y,S=y,A=parseInt(10*Math.random()),x='",k='
    Exons
    ',O=''+f.toString()+" Pos";w+=x+O+"
    ",S+=k+O+"
    ";let R='';y+=x+O+R,v+=k+O+R,_+=x+O+R;let I=e.indexOf("_"),E="cst"+e.substr(I+1),T=0,P=0,D=(void 0===l||"seq"===l||"custom"===l)&&-1==s.indexOf("cannot-be-aligned")&&-1==s.indexOf("cannot be aligned"),M="identity"===l&&-1==s.indexOf("cannot-be-aligned")&&-1==s.indexOf("cannot be aligned"),F={},H=0;x="";let L={},N={},q={},U=0;if(h)for(let e=0,t=h.length;e"+d+"",h){let t='style="background-color:'+L[U]+'"';v+=' ";for(let t in m.residues[e+"_"+g]){let e=m.atoms[t];e.color=u.parasCls.thr(L[U]),m.atomPrevColors[t]=e.color}}x+=m.showSeqCls.insertGapOverview(e,t);let f=Math.round(m.seqAnnWidth*t/(m.maxAnnoLength+m.nTotalGap)-T-P);f<0&&(f=0),x+='
     
    ',s=void 0!==i&&""!=i[t]?i[t]:r?"rgb("+r+")":D?"#"+c:"#333",x+='
     
    ',T+=f,P+=1,++U}else g?y+=""+d+"":(y+="-",v+="")}if(void 0!==a){x="";let s=[],i=[],n=[];for(let e=0,t=a.length;e 
    ',h){let t,s,i=n[r];l=d[r]-a[r]+1;let o,c,p,m=g,u=g+l-1;g+=l;for(let e=0,i=h.length;e=i&&m<=n&&(t={exonIndex:e,rangeStart:i,rangeEnd:n,from:m,genomeRange:h[e].genomeRange}),u>=i&&u<=n&&(s={exonIndex:e,rangeStart:i,rangeEnd:n,to:u,genomeRange:h[e].genomeRange})}if(t&&s&&t.exonIndex==s.exonIndex)o=this.getExonColor(t.rangeStart,t.rangeEnd,m),c=this.getExonColor(t.rangeStart,t.rangeEnd,u),p=o+" 0%, #FFF 50%, "+c+" 100%",x+=this.getExonHtml(t.exonIndex,p,t.from,s.to,t.genomeRange,e,C,i);else if(t&&(o=this.getExonColor(t.rangeStart,t.rangeEnd,m),p=o+" 0%, #FFF 50%, #00F 100%",x+=this.getExonHtml(t.exonIndex,p,t.from,t.rangeEnd,t.genomeRange,e,C,i)),t&&s){for(let n=t.exonIndex+1;n'+t+""}}R=''+f.toString()+" Pos",R+="",R+="
    ",R+="",y+=R,_+=x+R,v+=R,w+="",S+="",h?($("#"+m.pre+"dt_custom_"+e+"_"+C).html(v+y),$("#"+m.pre+"ov_custom_"+e+"_"+C).html(_),$("#"+m.pre+"tt_custom_"+e+"_"+C).html(S+w)):($("#"+m.pre+"dt_custom_"+e+"_"+C).html(y),$("#"+m.pre+"ov_custom_"+e+"_"+C).html(_),$("#"+m.pre+"tt_custom_"+e+"_"+C).html(w))}getExonHtml(e,t,s,i,n,l,r,o){let a=this.icn3d;return a.icn3dui,''}getExonColor(e,t,s){this.icn3d.icn3dui;let i=.5*(e+t);if(s1e-200&&(h=parseFloat(h).toExponential()),n.scores.bit_score;let p=t.targets[l].seqdata,m=i.seqdata,u=n.segs;for(let e=0,t=u.length;e0&&(l=n+"H"+d.toString().padStart(2,"0")+")","coil"==t&&(s.selectionCls.selectResidueList(r,l,l,o,a),o||(o=!0)),r={})),n=e+"_H"+d.toString().padStart(2,"0"),r[p]=1,i.ssend&&(h=e+"_C(H"+d.toString().padStart(2,"0"),"helix"==t&&(s.selectionCls.selectResidueList(r,n,n,o,a),o||(o=!0)),r={})):"E"==m?(i.ssbegin&&(++c,Object.keys(r).length>0&&(l=n+"S"+c.toString().padStart(2,"0")+")","coil"==t&&(s.selectionCls.selectResidueList(r,l,l,o,a),o||(o=!0)),r={})),n=e+"_S"+c.toString().padStart(2,"0"),r[p]=1,i.ssend&&(h=e+"_C(S"+c.toString().padStart(2,"0"),"sheet"==t&&(s.selectionCls.selectResidueList(r,n,n,o,a),o||(o=!0)),r={})):(n=h+"-",r[p]=1)}}Object.keys(r).length>0&&(l=n+"Cterm)","coil"==t&&s.selectionCls.selectResidueList(r,l,l,o,a))}defineIgstrand(e,t){let s=this.icn3d,i=s.icn3dui;$("#"+s.pre+"dl_definedsets").hasClass("ui-dialog-content")&&$("#"+s.pre+"dl_definedsets").dialog("isOpen")||(i.htmlCls.dialogCls.openDlg("dl_definedsets","Select sets"),$("#"+s.pre+"atomsCustom").resizable());let n={},l=!1,r=!0;if(s.hAtoms={},"igdomain"==t){let t=s.chain2igArray[e];if(t&&t.length>0)for(let i=0,o=t.length;i1e3&&"50"==C.substr(C.length-2,2)&&(n[y]=1):(d=s.residIgLoop.hasOwnProperty(y)?"igloop":"igstrand",u&&d!=c&&Object.keys(n).length>0&&("igstrand"==c?(++h,i="Strand-"+a+"-"+e+"-"+h.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igstrand"==t&&(s.selectionCls.selectResidueList(n,i,i,l,r),l||(l=!0)),m=a):"igloop"==c&&(++p,i="Loop-"+m+"_"+o+"-"+e+"-"+p.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igloop"==t&&(s.selectionCls.selectResidueList(n,i,i,l,r),l||(l=!0))),n={}),n[y]=1,a=o,c=d,u=!0)))}"iganchor"==t?(i="Anchor-"+e,s.selectionCls.selectResidueList(n,i,i,l,r)):"igstrand"==c?(++h,i="Strand-"+a+"-"+e+"-"+h.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igstrand"==t&&s.selectionCls.selectResidueList(n,i,i,l,r)):"igloop"==c&&(++p,o="CT",i="Loop-"+m+"_"+o+"-"+e+"-"+p.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igloop"==t&&s.selectionCls.selectResidueList(n,i,i,l,r))}}simplifyText(e){this.icn3d.icn3dui;let t,s,i="",n=!1,l=-1;for(t=0,s=(e=e.replace(/undefined/g," ")).length;t20)return!1;if(void 0!==o.giSeq&&void 0!==o.giSeq[e]){let r=this.getFullText(s);return s=r.text,this.showNewTrack(e,t,s,void 0,void 0,i,n,l),!1}setTimeout((function(){a.checkGiSeq(e,t,s,i,n,l,r+1)}),100)}getFullText(e){this.icn3d.icn3dui;let t="",s=[],i=[],n=e.split(","),l=-1;for(let e=0,r=n.length;ep?t+=c.substr(0,p):t+=c;for(let e=0;ed&&(d=t.length,c=h),++h}o=n.htmlCls.baseUrl+"pwaln/pwaln.fcgi?from=msa";let p=e.split(","),m={};m[t]=0;for(let e=0,t=p.length;e0&&(g+=","+p.join(","));let f={targets:u,queries:g},C=await n.getAjaxPostPromise(o,f);if(!C.data)return void console.log("The protein accessions "+u+","+g+" can not be aligned...");let b=[];i.qt_start_end={};let y=[],v=[],_=Object.keys(C.targets)[0],w=C.targets[_].seqdata;p.splice(0,0,t);for(let e=0,s=p.length;eA&&(A=e)}let x=S,k=w.length-(A+1),O=[],R=[];for(let e=0,t=p.length;ea&&(a=t.length,d=c),++c}s.qt_start_end={};let m="genomeRes",u={};for(let e=0,i=h.length;ef&&(f=e)}for(let e=0,t=h.length;e0&&(d=h,o.targetGapHash[a+o.startposGiSeq]={from:a+o.startposGiSeq,to:d+m-1+o.startposGiSeq}),c=t[s],h=p,"-"!=t[s]?(++p,f=s,o.seqEndLen[e]=C-1-f,u||(g=s,o.seqStartLen[e]=g,u=!0)):++m;o.maxAnnoLength0&&(b+=" "),b+=e+"_"+o.targetGapHash[e].from+"_"+o.targetGapHash[e].to,++y;let v={};for(let a=0,d=i.length;a=o.seqStartLen[e]&&("-"==t[s]&&b--,"-"==h&&b++),c+=h,"-"!=t[s]&&(t[s]==i[a][s]&&++v[d],++d),p=h;"-"!=p&&u.push(C-1);let _=s[a].length<20?s[a]:s[a].substr(0,20)+"...",w=!0,S=r?r[s[a]]:void 0;this.showNewTrack(e,_,c,void 0,void 0,l,void 0,w,m,u,f,S,y)}o.opts.color="exon",o.legendTableCls.showColorLegend(o.opts.color),o.hlUpdateCls.updateHlAll(),o.drawCls.draw()}processAccList(e){this.icn3d.icn3dui;let t=e.split(","),s={},i="";for(let e=0,n=t.length;e5?(l.uniprot2acc&&l.uniprot2acc[y]&&(y=l.uniprot2acc[y]),f=y):f=e,y.length>5){let e="";for(let t=0,s=l.chainsSeq.length;t"),d=a[1].indexOf("\n");n=a[1].substr(d+1).replace(/\n/g,"");for(let e=2,t=a.length;e0&&($("#"+e.pre+"anno_cdd")[0].checked?(this.setAnnoTabCdd(),t.htmlCls.clickMenuCls.setLogCmd("set annotation cdd",!0)):(this.hideAnnoTabCdd(),t.htmlCls.clickMenuCls.setLogCmd("hide annotation cdd",!0)))}showAnnoSelectedChains(){let e=this.icn3d,t=e.icn3dui,s={};for(let t in e.hAtoms){let i=e.atoms[t];s[i.structure+"_"+i.chain]=1}$("#"+e.pre+"dl_annotations > .icn3d-annotation").hide();for(let i in s){$("#"+e.pre+"anno_"+i).length&&$("#"+e.pre+"anno_"+i).show();let s=e.firstAtomObjCls.getFirstCalphaAtomObj(e.chains[i]);if(s&&void 0!==s.resn){let i=t.utilsCls.residueName2Abbr(s.resn.substr(0,3));$("#"+e.pre+"anno_"+i).show()}}}showAnnoAllChains(){let e=this.icn3d;e.icn3dui,$("#"+e.pre+"dl_annotations > .icn3d-annotation").show()}setAnnoView(e){let t=this.icn3d;t.icn3dui.bNode||("detailed view"===e?(t.view="detailed view",$("#"+t.pre+"dl_anno_view_tabs").tabs("option","active",1)):(t.view="overview",$("#"+t.pre+"dl_anno_view_tabs").tabs("option","active",0)))}setAnnoDisplay(e,t){let s=this.icn3d;s.icn3dui;let i=["giseq","custom","site","ptm","snp","clinvar","cdd","domain","interaction","ssbond","crosslink","transmem","ig"];for(let n in i){let l=i[n];$("[id^="+s.pre+t+"_"+l+"]").attr("style",e)}}showFixedTitle(){this.icn3d.icn3dui;this.setAnnoDisplay("display:block;","tt")}hideFixedTitle(){this.icn3d.icn3dui;this.setAnnoDisplay("display:none!important;","tt")}setAnnoViewAndDisplay(e){let t=this.icn3d;if(t.icn3dui,"detailed view"===e){this.setAnnoView("detailed view");let e="display:block;";this.setAnnoDisplay(e,"dt"),$("#"+t.pre+"seqguide_wrapper").attr("style",e),e="display:none;",this.setAnnoDisplay(e,"ov")}else{this.setAnnoView("overview"),this.hideFixedTitle();let e="display:none;";this.setAnnoDisplay(e,"dt"),$("#"+t.pre+"seqguide_wrapper").attr("style",e),e="display:block;",this.setAnnoDisplay(e,"ov")}}async updateClinvar(){let e=this.icn3d;if(e.icn3dui,void 0===e.bClinvarShown||!e.bClinvarShown)for(let t in e.protein_chainid){let s=e.protein_chainid[t];await e.annoSnpClinVarCls.showClinvar(t,s)}e.bClinvarShown=!0}async updateSnp(){let e=this.icn3d;if(e.icn3dui,void 0===e.bSnpShown||!e.bSnpShown)for(let t in e.protein_chainid){let s=e.protein_chainid[t];await e.annoSnpClinVarCls.showSnp(t,s)}e.bSnpShown=!0}updateDomain(){let e=this.icn3d;e.icn3dui,void 0!==e.bDomainShown&&e.bDomainShown||e.annoDomainCls.showDomainAll(),e.bDomainShown=!0}updateInteraction(){let e=this.icn3d;if(e.icn3dui,void 0===e.bInteractionShown||!e.bInteractionShown)for(let t in e.interactChainbase){let s=e.interactChainbase[t];e.annoContactCls.showInteraction(t,s)}e.bInteractionShown=!0}async updatePTM(){let e=this.icn3d;if(e.icn3dui,void 0===e.bPTMShown||!e.bPTMShown)for(let t in e.PTMChainbase){let s=e.PTMChainbase[t];await e.annoPTMCls.showPTM(t,s,"ptm")}e.bPTMShown=!0}updateSsbond(){let e=this.icn3d;if(e.icn3dui,void 0===e.bSSbondShown||!e.bSSbondShown)for(let t in e.ssbondChainbase){let s=e.ssbondChainbase[t];e.annoSsbondCls.showSsbond(t,s)}e.bSSbondShown=!0}updateCrosslink(){let e=this.icn3d;if(e.icn3dui,void 0===e.bCrosslinkShown||!e.bCrosslinkShown)for(let t in e.crosslinkChainbase){let s=e.crosslinkChainbase[t];e.annoCrossLinkCls.showCrosslink(t,s)}e.bCrosslinkShown=!0}async updateTransmem(){let e=this.icn3d,t=e.icn3dui;if(void 0===e.bTranememShown||!e.bTranememShown)for(let s in e.protein_chainid){let i=e.protein_chainid[s];if(void 0!==t.cfg.opmid)e.annoTransMemCls.showTransmem(s,i);else if(e.bAfMem&&e.afmem_start_end){let t=e.afmem_start_end[0],n=e.afmem_start_end[1];await e.annoPTMCls.showPTM(s,i,"afmem",t,n)}else await e.annoPTMCls.showPTM(s,i,"transmem")}e.bTranememShown=!0}async updateIg(e,t){let s=this.icn3d,i=s.icn3dui;if(s.opts.color="ig strand",!e){s.hAtoms={};for(let e in s.protein_chainid)s.hAtoms=i.hashUtilsCls.unionHash(s.hAtoms,s.chains[e])}let n=s.firstAtomObjCls.getResiduesFromAtoms(s.hAtoms);for(let e in n)s.resid2refnum&&delete s.resid2refnum[e],s.residIgLoop&&delete s.residIgLoop[e],s.resid2domainid&&delete s.resid2domainid[e];s.bRunRefnumAgain=!0;let l=e?s.firstAtomObjCls.getChainsFromAtoms(s.hAtoms):s.protein_chainid;for(let e in l)await s.annoIgCls.showIg(e,t),s.bRunRefnumAgain=!1;s.bShowRefnum&&(s.hlUpdateCls.updateHlAll(),s.drawCls.draw())}}class Pt{constructor(e){this.icn3d=e}showAnnotations_part1(e){let t=this.icn3d,s=t.icn3dui;if(s.htmlCls.dialogCls.openDlg("dl_selectannotations","Sequences and Annotations"),(void 0===t.bAssemblyNote||!t.bAssemblyNote)&&void 0!==t.asuCnt){let e="
    Assembly Tips: Only the asymmetric unit is shown in the sequence window.
    Click \"Assembly\" in the menu \"View\" to switch between asymmetric unit and biological assembly("+t.asuCnt+" asymmetric unit).
    ";$("#"+t.pre+"dl_annotations_tabs").append(e),t.bAssemblyNote=!0}t.bResetAnno&&(t.giSeq={},t.currClin={},t.resi2disease_nonempty={},t.baseResi={},t.matchedPos={},$("#"+s.pre+"dl_annotations").empty(),t.annotationCls.setAnnoView("overview"));let i={},n={},l={};if(void 0===t.bAnnoShown||!t.bAnnoShown||t.bResetAnno){t.protein_chainid={};let r,o=Object.keys(t.chains);if(e){let s=t.resid2specCls.atoms2structureArray(e);o=[];for(let e=0,i=s.length;e1&&"1"==d.substr(d.length-1)?(d=d.substr(0,d.length-1),a=o[e].substr(0,o[e].indexOf("_"))+"_"+d):a=o[e],t.proteins.hasOwnProperty(r.serial)&&t.chainsSeq[o[e]].length>1)t.protein_chainid[o[e]]=a;else if(t.nucleotides.hasOwnProperty(r.serial)&&t.chainsSeq[o[e]].length>1)i[o[e]]=a;else if(t.chainsSeq[o[e]].length>1)n[o[e]]=a;else{let s=t.chainsSeq[o[e]][0].name,i=o[e]+"_"+t.chainsSeq[o[e]][0].resi;void 0===l[s]&&(l[s]=[]),l[s].push(i)}if((void 0!==s.cfg.pdbid||void 0!==s.cfg.opmid||void 0!==s.cfg.mmcifid||void 0!==s.cfg.mmtfid)&&(t.proteins.hasOwnProperty(r.serial)||t.nucleotides.hasOwnProperty(r.serial)))for(let s=0,i=t.chainsSeq[o[e]].length;st.maxAnnoLengthOri&&(t.protein_chainid.hasOwnProperty(e)||i.hasOwnProperty(e))&&(t.maxAnnoLengthOri=t.chainsSeq[e].length);t.maxAnnoLength=t.maxAnnoLengthOri}return{nucleotide_chainid:i,chemical_chainid:n,chemical_set:l}}async showAnnotations(e){let t=this.icn3d,s=t.icn3dui,i=this,n=this.showAnnotations_part1(e),l=n.nucleotide_chainid,r=n.chemical_chainid,o=n.chemical_set;if(!t.bAnnoShown||t.bResetAnno)if(t.bAnnoShown=!0,void 0===s.cfg.blast_rep_id){if(t.bFullUi){if(void 0!==s.cfg.mmtfid){let e=Object.keys(t.structures)[0];await t.mmcifParserCls.downloadMmcifSymmetry(e,"mmtfid")}await this.showAnnoSeqData(l,r,o)}}else if(void 0===s.cfg.blast_rep_id||t.bSmithwm||t.bLocalSmithwm){if(void 0!==s.cfg.blast_rep_id&&(t.bSmithwm||t.bLocalSmithwm)){let e,n,a=[s.cfg.blast_rep_id];if(-1!=s.cfg.query_id.indexOf(">")?n=s.cfg.query_id.substr(s.cfg.query_id.indexOf("\n")+1):!/\d/.test(s.cfg.query_id)||s.cfg.query_id.length>50?n=s.cfg.query_id:a.push(s.cfg.query_id),t.blastAcxn){let i=s.cfg.afid+"_A",n="";for(let e=0,s=t.chainsSeq[i].length;e5){let n;e.uniprot2acc&&e.uniprot2acc[i]?e.uniprot2acc[i]:e.uniprot2acc={},n="https://rest.uniprot.org/uniprotkb/search?format=json&fields=xref_geneid,gene_names&query="+i;let l=await t.getAjaxPromise(n,"json"),r=l.results[0]&&l.results[0].uniProtKBCrossReferences&&l.results[0].uniProtKBCrossReferences[0]?l.results[0].uniProtKBCrossReferences[0].id:void 0,o=l.results[0]&&l.results[0].genes&&l.results[0].genes[0]&&l.results[0].genes[0].geneName?l.results[0].genes[0].geneName.value:"ID "+r;e.chainsGene[s]={geneId:r,geneSymbol:o}}}for(let s in e.protein_chainid){let i=t.utilsCls.isMobile()?"none":"button",l=e.showSeqCls.getProteinName(s),r=l,o=0==n?"Proteins:

    ":"",a=e.chainsGene[s]&&e.chainsGene[s].geneId&&e.chainsGene[s].geneDesc?"(Gene: "+e.chainsGene[s].geneSymbol+")":"",d=s.substr(0,s.indexOf("_")),c=d.length>5?''+s+"":s,h="
    "+o+"Annotations of "+c+": "+r+""+a+"   "+this.addButton(s,"icn3d-addtrack","Add Track","Add a custom track",60,i)+"   ";h+=this.addButton(s,"icn3d-customcolor","Custom Color/Tube","Use a custom file to define the colors or tubes in 3D structure",110,i)+"   ",h+=this.addButton(s,"icn3d-helixsets","Helix Sets",'Define sets for each helix in this chain and add them to the menu of "Defined Sets"',60,i)+" "+this.addButton(s,"icn3d-sheetsets","Sheet Sets",'Define sets for each sheet in this chain and add them to the menu of "Defined Sets"',60,i)+" "+this.addButton(s,"icn3d-coilsets","Coil Sets",'Define sets for each coil in this chain and add them to the menu of "Defined Sets"',60,i),h+="   "+this.addButton(s,"icn3d-iganchorsets","Ig Anchor Set",'Define the set for all Ig anchors in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igstrandsets","Ig Strand Sets",'Define sets for each Ig strand in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igloopsets","Ig Loop Sets",'Define sets for each Ig loop in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igdomainsets","Ig Domain Sets",'Define sets for each Ig domain in this chain and add them to the menu of "Defined Sets"',80,i),$("#"+e.pre+"dl_annotations").append(h);let p=["giseq","cdd","clinvar","snp","site","ptm","ssbond","crosslink","transmem","domain","custom","interaction","ig"];for(let t in p){let i=p[t];$("#"+e.pre+"anno_"+s).append(this.getAnDiv(s,i))}$("#"+e.pre+"anno_"+s).append("


    "),++n}if(t.bNode||e.annoCddSiteCls.setToolTip(),void 0!==e.chainid_seq)await this.processSeqData(e.chainid_seq);else try{let n=[],l=[];for(let e=0,t=i.length;e=6?l.push(i[e]):n.push(i[e])}if(n.length>0){let s=t.htmlCls.baseUrl+"/vastdyn/vastdyn.cgi?chainlist="+n;e.chainid_seq=await t.getAjaxPromise(s,"jsonp")}else e.chainid_seq={};for(let t=0,s=l.length;t40&&(r=r.substr(0,40)+"...");let o="";0==i&&("protein"==s?o="Proteins:

    ":"nucleotide"==s?o="Nucleotides:

    ":"chemical"==s&&(o="Chemicals/Ions/Water:

    ")),$("#"+n.pre+"dl_annotations").append("
    "+o+""+e+": "+r+"
    "),$("#"+n.pre+"anno_"+e).append(this.getAnDiv(e,"giseq")),$("#"+n.pre+"anno_"+e).append(this.getAnDiv(e,"interaction")),$("#"+n.pre+"anno_"+e).append("


    "),n.giSeq[e]=[];for(let t=0;tChemicals/Ions/Water:

    ":"",o=t[0].lastIndexOf("_"),a=t[0].substr(0,o),d=void 0!==l.cfg.mmdbid&&void 0!==n.chainid2sid?n.chainid2sid[a]:void 0;i=void 0!==d?""+e+" ":""+e+"",$("#"+n.pre+"dl_annotations").append("
    "+r+i+"
    "),$("#"+n.pre+"anno_"+e).append("
    "),$("#"+n.pre+"anno_"+e).append("


    ");let c='
    ';c+='",c+='Count: '+t.length+"",c+='';let h=c,p=c;for(let s=0,i=t.length;s3&&(l=i.substr(0,3)),s'+l+""}let m=l.htmlCls.GREY8,u=Math.round(n.seqAnnWidth*t.length/n.maxAnnoLength);u<1&&(u=1),p+='
     
    ',c="",c+="
    ",c+="
    ",h+=c,p+=c,$("#"+n.pre+"dt_giseq_"+e).html(h),$("#"+n.pre+"ov_giseq_"+e).html(p)}async processSeqData(e){let t=this.icn3d,s=t.icn3dui;t.bAnnoShown=!0;for(let i in t.protein_chainid){let n=t.protein_chainid[i];if(e.hasOwnProperty(n)){let s=e[n];t.giSeq[i]=s;let l="";for(let e=0;e<10&&e14?"Query: "+o.substr(0,6)+"...":isNaN(s.cfg.query_id)?"Query: "+o:"Query: gi "+o;let a="cannot be aligned";t.queryStart="",t.queryEnd="",t.bRender&&alert("The sequence can NOT be aligned to the structure"),t.showSeqCls.showSeq(i,n,void 0,e,l,a,r)}else if(s.cfg.blast_rep_id==i&&(void 0!==t.seqStructAlignData||void 0!==t.seqStructAlignDataSmithwm)){let e,l,r,o,a,d=s.cfg.oriQuery_id?s.cfg.oriQuery_id:s.cfg.query_id;if(e=d.length>14?"Query: "+d.substr(0,6)+"...":isNaN(s.cfg.query_id)?"Query: "+d:"Query: gi "+d,void 0!==t.seqStructAlignData){let e,s,i=t.seqStructAlignData;if(void 0!==i.data){e=i.data[0].query;let t=Object.keys(i.data[0].targets);s=i.data[0].targets[t[0]],s=void 0!==s&&s.hsps.length>0?s.hsps[0]:void 0}if(void 0!==e&&void 0!==s){l=s.scores.e_value.toPrecision(2),l>1e-200&&(l=parseFloat(l).toExponential()),s.scores.bit_score;let t=Object.keys(i.targets);r=i.targets[t[0]].seqdata,o=e.seqdata,a=s.segs}}else{let e=t.seqStructAlignDataSmithwm;l=e.score,r=e.target.replace(/-/g,""),o=e.query.replace(/-/g,""),a=[];let s=-1,i=-1,n=!1,d={};for(let t=0,l=e.target.length;t0)if(i.orifrom-ni.from-l)for(let t=n+1;t
    "+i+"
    "}addButton(e,t,s,i,n,l){return this.icn3d.icn3dui,"
    "}addSnpButton(e,t,s,i,n,l){let r=this.icn3d;return r.icn3dui,"
    "}conservativeReplacement(e,t){let s=this.icn3d.icn3dui,i=-1!==s.parasCls.b62ResArray.indexOf(e)?s.parasCls.b62ResArray.indexOf(e):s.parasCls.b62ResArray.length-1,n=-1!==s.parasCls.b62ResArray.indexOf(t)?s.parasCls.b62ResArray.indexOf(t):s.parasCls.b62ResArray.length-1;return s.parasCls.b62Matrix[i][n]>0}getColorhexFromBlosum62(e,t){let s=this.icn3d.icn3dui,i="333333";if(!e||!t)return i;e=e.toUpperCase(),t=t.toUpperCase();let n=-1!==s.parasCls.b62ResArray.indexOf(e)?s.parasCls.b62ResArray.indexOf(e):s.parasCls.b62ResArray.length-1,l=-1!==s.parasCls.b62ResArray.indexOf(t)?s.parasCls.b62ResArray.indexOf(t):s.parasCls.b62ResArray.length-1,r=s.parasCls.b62Matrix[n][l];if(void 0===r)return"333333";if(r>0){let e=221-parseInt(r/11*221),t=e<10?"0"+e.toString(16):e.toString(16);i="DD"+t+t}else{let e=221-parseInt(-1*r/4*221),t=e<10?"0"+e.toString(16):e.toString(16);i=t+t+"DD"}return i}}class Dt{constructor(e){this.icn3d=e}getSeq(e){let t,s=this.icn3d,i=s.icn3dui;if(void 0===i.cfg.mmdbid&&void 0===i.cfg.gi&&void 0===i.cfg.blast_rep_id&&void 0===i.cfg.align&&void 0===i.cfg.chainalign&&void 0===i.cfg.mmdbafid){t=[];for(let i=0;i10){m='
    ';let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]);void 0===a.cfg.mmdbid&&void 0===a.cfg.gi&&void 0===a.cfg.blast_rep_id&&void 0===a.cfg.align&&void 0===a.cfg.chainalign&&void 0===a.cfg.mmdbafid||void 0===t.resi_ori||t.resi_ori==t.resi||-1!=e.indexOf("Misc")?m+='
    ':m+='
    NCBI Residue Numbers
    ',m+='',f+=m+"
    ",u+=m+'';let s=0,i=0,n="";o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e]," "));for(let t=0,l=d.length;t",l%10==0&&(u+=l);let r=e+"_"+l,a=l%10!=0&&l%10!=1&&l%10!=9;if(o.residues.hasOwnProperty(r)){let e=o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[r]);"H"==o.secondaries[r]&&e.ssbegin?(++s,n='H'+s+"",a&&(u+=n,n="")):"E"==o.secondaries[r]&&e.ssbegin?(++i,"green"==o.sheetcolor?n='S'+i+"":"yellow"==o.sheetcolor&&(n='S'+i+""),a&&(u+=n,n="")):e.ssend&&(n=""),""!=n&&a&&(u+=n,n="")}u+=""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e]," ")),u+='',u+="",u+="
    ",u+="
    ",f+=""}m='
    ',m+='
    ',m+='',f+=m+"
    ",u+=m+'',o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t':'',u+=" ";else if("E"==o.secondaries[s]){o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[s]).ssend?"green"==o.sheetcolor?u+='':"yellow"==o.sheetcolor&&(u+=''):"green"==o.sheetcolor?u+='':"yellow"==o.sheetcolor&&(u+=''),u+=" "}else"c"==o.secondaries[s]?u+=' ':"o"==o.secondaries[s]&&(u+=' ');else u+="-"}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),u+='',u+="",u+="
    ",u+="
    ",u+="",f+="",m=a.cfg.blast_rep_id===e?'
    ':'
    ';let C="Protein",b="Protein";void 0!==s&&("nucleotide"==s?(C="Nucl.",b="Nucleotide"):"chemical"==s&&(C="Chem.",b="Chemical")),m+='",m+=''+(o.baseResi[e]+1).toString()+"",f+=m+"
    ";let y='';u+=m+y,g+=m+y;let v,_=0;o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t1&&(i=s[0]+".."),v=o.ParserUtilsCls.getResi(e,t),o.residues.hasOwnProperty(e+"_"+v)){let n="333333";if(a.cfg.blast_rep_id==e&&void 0!==o.fullpos2ConsTargetpos&&void 0!==o.fullpos2ConsTargetpos[t+_])n=o.fullpos2ConsTargetpos[t+_].color;else{let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[e+"_"+v]),s=void 0===t.color||"FFFFFF"===t.color.getHexString().toUpperCase()||"FFF"===t.color.getHexString().toUpperCase()?"DDDDDD":t.color.getHexString();n=void 0!==t.color?s:"CCCCCC"}u+=''+i+""}else i=i.toLowerCase(),u+=''+i+""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),a.cfg.blast_rep_id==e&&(o.opts.color=o.blastAcxn?"confidence":"conservation",o.setColorCls.setColorByOptions(o.opts,o.atoms));let w=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]),S=w.color?w.color.getHexString():"CCCCCC",A=Math.round(o.seqAnnWidth*d.length/(o.maxAnnoLength+o.nTotalGap));if(A<1&&(A=1),o.seqStartLen&&o.seqStartLen[e]&&(g+=this.insertMulGapOverview(e,o.seqStartLen[e])),a.cfg.blast_rep_id!=e)g+='";else{let t=[],s=[];t.push(0);for(let e=0,i=d.length;e';for(let i=0,n=t.length;i'+e+"
    ";g+="
    "}if(m=''+v+"",m+="",m+="
    ",u+=m,g+=m,a.cfg.blast_rep_id==e){if(void 0!==r&&""!==r){m='",m+='',f+=m+"
    ";let t='';u+=m+t,g+=m+t;let s=0,i=0,l=1;o.queryStart;for(let t=0,n=r.length;t-";else if(" "==n)u+=" ";else{let r=o.fullpos2ConsTargetpos[t].pos;if(o.residues.hasOwnProperty(e+"_"+r)){let s=o.fullpos2ConsTargetpos[t].color;u+=''+n+""}else n=n.toLowerCase(),u+=''+n+"";g+=this.insertGapOverview(e,t);let a=Math.round(o.seqAnnWidth*t/(o.maxAnnoLength+o.nTotalGap)-s-i);a>=0&&(g+='
     
    ',g+='
     
    ',s+=a,i+=l)}}m='',m+="",m+="
    ",u+=m,g+=m}m='
    '+i+"
    ",m+=''+o.queryStart+"",f+=m+"
    ";let t='';u+=m+t,g+=m+t;let s=o.queryStart;for(let t=0,i=l.length;t-":(void 0===o.fullpos2ConsTargetpos||void 0===o.fullpos2ConsTargetpos[t]||o.residues.hasOwnProperty(e+"_"+o.fullpos2ConsTargetpos[t].pos)||(i=i.toLowerCase()),u+=''+i+"",++s)}let a=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]),d=void 0===a.color||"FFFFFF"===a.color.getHexString()?"DDDDDD":a.color.getHexString(),c=void 0!==a.color?d:"CCCCCC",h=[],p=[],C="-";for(let e=0,t=l.length;e ',g+='
    '+i+"
    "}m=''+o.queryEnd+"",m+="",m+="
    ",u+=m,g+=m}if(u+="",g+="",f+="",d.length>10){let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]);if((void 0!==a.cfg.mmdbid||void 0!==a.cfg.gi||void 0!==a.cfg.blast_rep_id||void 0!==a.cfg.align||void 0!==a.cfg.chainalign||void 0!==a.cfg.mmdbafid)&&void 0!==t.resi_ori&&t.resi_ori!=t.resi&&-1==e.indexOf("Misc")){m='
    ',m+='
    ',m+='
    PDB Residue Numbers
    ',m+='',f+=m+"
    ",u+=m+'',o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t",e%10==0&&(u+=e+" "),u+=""}else u+=""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),u+='',u+="",u+="
    ",u+="
    ",u+="
    ",f+=""}if(o.bShowCustomRefnum&&o.chainsMapping.hasOwnProperty(e)){let t=!0,s=o.annoIgCls.showRefNum(d,e,void 0,t);u+=s.html,f+=s.html3}}o.bShowRefnum&&o.hlUpdateCls.updateHlAll(),$("#"+o.pre+"dt_giseq_"+e).html(u),$("#"+o.pre+"ov_giseq_"+e).html(g),$("#"+o.pre+"tt_giseq_"+e).html(f)}insertGap(e,t,s,i){let n=this.icn3d;n.icn3dui;let l="";return void 0!==n.targetGapHash&&n.targetGapHash.hasOwnProperty(t)&&(l+=this.insertMulGap(n.targetGapHash[t].to-n.targetGapHash[t].from+1,s,i)),l}insertMulGap(e,t,s){this.icn3d.icn3dui;let i="";for(let n=0;n"+t+"";return i}insertGapOverview(e,t){let s=this.icn3d;s.icn3dui;let i="";return void 0!==s.targetGapHash&&s.targetGapHash.hasOwnProperty(t)&&(i+=this.insertMulGapOverview(e,s.targetGapHash[t].to-s.targetGapHash[t].from+1)),i}insertMulGapOverview(e,t){let s=this.icn3d;s.icn3dui;let i="",n=s.seqAnnWidth*t/(s.maxAnnoLength+s.nTotalGap);return n=parseInt(n),i+='
     
    ',i}setAlternativeSeq(e,t){let s=this.icn3d;s.icn3dui;let i=s.chainsSeq[e];s.giSeq[e]=[];for(let t=0,n=i.length;t1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+e,!0)}else{let o={};if(void 0!==$(e).attr("domain")||void 0!==$(e).attr("feat")||void 0!==$(e).attr("3ddomain")||void 0!==$(e).attr("custom")||void 0!==$(e).attr("ig")){t.hlUpdateCls.hlSummaryDomain3ddomain(e);let a,d,c,h=$(e).attr("from").split(","),p=$(e).attr("to").split(",");r.substr(0,r.indexOf("_"));for(let s=0,i=h.length;s1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+c,!0)}}else{t.bCtrl||t.bShift?(t.currSelectedSets.push(i),t.selectionCls.selectAChain(r,i,!0,!0)):(t.currSelectedSets=[i],t.selectionCls.selectAChain(r,i,t.bAlignSeq)),t.bAlignSeq?s.htmlCls.clickMenuCls.setLogCmd("select alignChain "+r,!0):s.htmlCls.clickMenuCls.setLogCmd("select chain "+r,!0);let e=t.currSelectedSets.join(" or ");t.currSelectedSets.length>1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+e,!0)}else t.hlObjectsCls.removeHlObjects(),t.hlUpdateCls.removeHl2D(),$("#"+t.pre+"atomsCustom").val("")}}selectResidues(e,t){let s=this.icn3d,i=s.icn3dui;if(!i.bNode&&(!1!==s.bSelectResidue||s.bShift||s.bCtrl||s.selectionCls.removeSelection(),void 0!==e&&""!==e)){e=e.substr(e.indexOf("_")+1),s.bSelectResidue=!0,$(t).toggleClass("icn3d-highlightSeq");let n=e.substr(e.indexOf("_")+1);if(s.residues.hasOwnProperty(n))if($(t).hasClass("icn3d-highlightSeq")){for(let e in s.residues[n])s.hAtoms[e]=1;if(s.selectedResidues[n]=1,s.bAnnotations&&void 0!==$(t).attr("disease")){let e=$(t).attr("disease"),l=s.applyCenterCls.centerAtoms(i.hashUtilsCls.hash2Atoms(s.residues[n],s.atoms)),r=15;e.length>r&&(e=e.substr(0,r)+"...");let o=s.LABELSIZE,a=i.htmlCls.GREYD;s.analysisCls.addLabel(e,l.center.x,l.center.y,l.center.z,o,a,void 0,"custom")}}else{for(let e in s.residues[n])delete s.hAtoms[e];delete s.selectedResidues[n],s.hlObjectsCls.removeHlObjects()}}}}class Ft{constructor(e){this.icn3d=e}update2DdgmContent(){let e=this.icn3d,t=e.icn3dui,s="";void 0!==t.cfg.mmdbid||void 0!==t.cfg.gi?(s+=e.diagram2dCls.draw2Ddgm(e.interactionData,e.inputid,void 0,!0),s+=e.diagram2dCls.set2DdgmNote(),$("#"+e.pre+"dl_2ddgm_html").html(s)):e.mmdbidArray&&(void 0!==t.cfg.align||void 0!==t.cfg.chainalign||e.bRealign)&&(s+=e.diagram2dCls.draw2Ddgm(e.interactionData1,e.mmdbidArray[0].toUpperCase(),0,!0),void 0!==e.mmdbid_q&&e.mmdbid_q===e.mmdbid_t?s+=e.diagram2dCls.draw2Ddgm(e.interactionData2,e.mmdbidArray[0].toUpperCase(),1,!0):s+=e.diagram2dCls.draw2Ddgm(e.interactionData2,e.mmdbidArray[1].toUpperCase(),1,!0),s+=e.diagram2dCls.set2DdgmNote(!0),$("#"+e.pre+"dl_2ddgm_html").html(s))}changeSeqColor(e){let t=this.icn3d,s=t.icn3dui;for(let i=0,n=e.length;i0&&($("#"+t.pre+"dl_2ddgm svg line").attr("stroke","#000000"),$("#"+t.pre+"dl_2ddgm line").attr("stroke-width",1)),e||($("#"+t.pre+"dl_linegraph circle").attr("stroke","#000000"),$("#"+t.pre+"dl_linegraph circle").attr("stroke-width",1),$("#"+t.pre+"dl_scatterplot rect").attr("stroke","#000000"),$("#"+t.pre+"dl_scatterplot circle").attr("stroke","#000000"),$("#"+t.pre+"dl_scatterplot rect").attr("stroke-width",1),$("#"+t.pre+"dl_scatterplot circle").attr("stroke-width",1))}removeHlMenus(){let e=this.icn3d;e.icn3dui,$("#"+e.pre+"atomsCustom").val(""),$("#"+e.pre+"atomsCustom")[0].blur()}updateHlAll(e,t,s,i){let n=this.icn3d,l=n.icn3dui;n.prevHighlightAtoms=l.hashUtilsCls.cloneHash(n.hAtoms),this.updateHlObjects(i),void 0!==e?this.updateHlSeqInChain(e,s):this.updateHlSeq(void 0,void 0,s),this.updateHl2D(),(void 0===t||t)&&this.updateHlMenus(e)}updateHlObjects(e){let t=this.icn3d;t.icn3dui,t.hlObjectsCls.removeHlObjects(),(t.hAtoms&&t.atoms&&Object.keys(t.hAtoms).length0&&(e=s.defNames2Residues[i]);let t={};if(void 0!==s.defNames2Atoms[i]&&s.defNames2Atoms[i].length>0){for(let e=0,n=s.defNames2Atoms[i].length;e0&&(r=t.firstAtomObjCls.getFirstCalphaAtomObj(l))}let o=void 0!==r&&void 0!==r.color?"#"+r.color.getHexString():"#FFFFFF",a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] rect[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] rect[class='icn3d-basenode']");void 0!==a&&(t.diagram2dCls.highlightNode("rect",a,d,l),$(a).attr("fill",o)),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] circle[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] circle[class='icn3d-basenode']"),void 0!==a&&(t.diagram2dCls.highlightNode("circle",a,d,l),$(a).attr("fill",o)),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] ellipse[class='icn3d-hlnode']"),void 0!==a&&t.diagram2dCls.highlightNode("ellipse",a,void 0,l),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] polygon[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] polygon[class='icn3d-basenode']"),void 0!==a&&(t.diagram2dCls.highlightNode("polygon",a,d,l),$(a).attr("fill",o))}if(void 0!==t.lineArray2d)for(let e=0,i=t.lineArray2d.length;e1){let e={},l=[],o=[],a=[],c=[],h=[],m=[],u=[],g=[],f=[],C=[],b=[],y=[],v={},_={},w={};for(let t=0,s=p.length;t4&&!isNaN(parseInt(e.substr(-4,4)))||t.length>4&&!isNaN(parseInt(t.substr(-4,4))),c=e+"_"+t+"_"+s.c,h=n.hashUtilsCls.cloneHash(s);h.source+=S+i.chainsMapping[r][d],h.target+=S+i.chainsMapping[o][C];let m=n.hashUtilsCls.cloneHash(s);m.source+=A+i.chainsMapping[r][d],m.target+=A+i.chainsMapping[o][C],v[c]!=p.length||!a&&0!=w[c]?b[f].push(m):u[f].push(h),g[f][s.source]=i.chainsMapping[r][d],g[f][s.target]=i.chainsMapping[o][C],y[f][s.source]=i.chainsMapping[r][d],y[f][s.target]=i.chainsMapping[o][C]}else{let e=n.hashUtilsCls.cloneHash(s);e.source+=i.chainsMapping[r]&&i.chainsMapping[r][d]?A+i.chainsMapping[r][d]:A+k,e.target+=i.chainsMapping[o]&&i.chainsMapping[o][C]?A+i.chainsMapping[o][C]:A+k,b[f].push(e),g[f][s.source]=i.chainsMapping[r]&&i.chainsMapping[r][d]?i.chainsMapping[r][d]:x,g[f][s.target]=i.chainsMapping[o]&&i.chainsMapping[o][C]?i.chainsMapping[o][C]:x,y[f][s.source]=i.chainsMapping[r]&&i.chainsMapping[r][d]?i.chainsMapping[r][d]:k,y[f][s.target]=i.chainsMapping[o]&&i.chainsMapping[o][C]?i.chainsMapping[o][C]:k}}}let O=[],R=[],I=0,E=[],T=1;for(let e=0,t=p.length;e0&&(T=1,t=i.getGraphCls.getNodeTopBottom(c[e],d,void 0,T,g[e]),h[e]=t.nodeArray1,m[e]=t.nodeArray2,d=n.hashUtilsCls.unionHash(d,t.name2node),T=2,t=i.getGraphCls.getNodeTopBottom(c[e],d,void 0,T,y[e]),f[e]=t.nodeArray1,C[e]=t.nodeArray2,d=n.hashUtilsCls.unionHash(d,t.name2node)),O[e]=l[e].length,R[e]=o[e].length,I=Math.max(I,R[e]),E.push(p[e])}let P,D,M,F,H,L=1,N=3*L,q=7*L,U=10,$=10,B=30,j=20;t?(M=(n.utilsCls.sumArray(O)+2*E.length)*(N+q)+4*$+2*B+j*E.length,D=(I+2)*(N+q)+2*U+B):(P=110+j,M=P*E.length,D=(I+2)*(N+q)+2*U,D+=20),Object.keys(i.chainsMapping).length>0&&(M*=3),t?(i.scatterplotWidth=2*D,H=i.scatterplotWidth,F=n.scatterplotid):(i.linegraphWidth=2*D,H=i.linegraphWidth,F=n.linegraphid),s=0==E.length?"No interactions found for each structure

    ":"2D integration graph for "+E.length+" structure(s) "+E+'. There are three sections: "Interactions", "Common interactions", and "Different interactions". Each section has '+E.length+" graphs.

    ",s+="";let z,G=0;T=0,z=this.drawGraphPerType(T,p,t,l,o,a,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html,Object.keys(i.chainsMapping).length>0&&(T=1,z=this.drawGraphPerType(T,p,t,h,m,u,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html,T=2,z=this.drawGraphPerType(T,p,t,f,C,b,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html),s+=""}else if(t){let e,t,l,c,h=p[0],m=o.length,u=a.length,g=1,f=3*g,C=7*g,b=30;t=(m+2)*(f+C)+2*10+b,e=(u+2)*(f+C)+2*10+b,i.scatterplotWidth=2*e,c=i.scatterplotWidth,l=n.scatterplotid,s=r.length>0?"":"No interactions found for these two sets

    ",s+="",s+=this.drawScatterplot_base(o,a,r,d,0),i.lineGraphStr+=i.getGraphCls.updateGraphJson(h,1,o,a,r),s+=""}else{let e=p[0],t=o.length,l=a.length,c=1,h=3*c,m=7*c,u=110,g=10,f=t>l?t*(h+m)+2*g:l*(h+m)+2*g;i.linegraphWidth=2*f,s=r.length>0?"":"No interactions found for these two sets

    ",s+="",s+=this.drawLineGraph_base(o,a,r,d,0),i.lineGraphStr+=i.getGraphCls.updateGraphJson(e,1,o,a,r),s+=""}return i.lineGraphStr+="}\n",i.scatterplotStr=i.lineGraphStr,t?$("#"+i.pre+"scatterplotDiv").html(s):$("#"+i.pre+"linegraphDiv").html(s),s}drawGraphPerType(e,t,s,i,n,l,r,o,a,d,c,h,p,m){let u=this.icn3d;u.icn3dui;let g,f,C="",b=2==t.length&&"2"==t[1].replace(t[0],"");0==e?(g="Interactions in ",f=""):1==e?(g="Common interactions in ",f="_common"):2==e&&(g="Different interactions in ",f="_diff");for(let y=0,v=t.length;y0&&(u.lineGraphStr+=", \n"):u.lineGraphStr+=", \n",u.lineGraphStr+=u.getGraphCls.updateGraphJson(t[y],y+f,i[y],n[y],l[y])}return{heightFinal:o,html:C}}getIdArrayFromNode(e){let t=this.icn3d.icn3dui,s=[];s.push(""),s.push("");let i=e.r.substr(4);return s=s.concat(t.utilsCls.getIdArray(i)),s}drawLineGraph_base(e,t,s,i,n,l,r){let o,a,d=this.icn3d,c=d.icn3dui,h="",p=e.length,m=t.length;p>m?(o=10,a=10*Math.abs(p-m)*.5+10):(a=10,o=10*Math.abs(p-m)*.5+10),l&&(h+=""+l+"");let u=30+n,g=80+n,f="",C={},b={};for(let t=0;t";let u=1==t.n?"Interaction":t.n+" interactions";t.n>1&&(h+=""+u+" of residue "+n.id+" with residue "+l.id+""),h+=""}return h+=f,h}drawScatterplot_base(e,t,s,i,n,l,r,o,a){let d=this.icn3d;d.icn3dui;let c="",h=e.length,p=t.length,m=l?3:7,u=(h+1)*(3+m)+30+40;r&&(c+=""+r+"");let g=n+u-(50+(3+m)),f=40+(3+m),C="",b={},y={};for(let t=0;t";else{d+="";let i=1==e.n?"Interaction":e.n+" interactions";e.n>1&&(d+=""+i+" of residue "+t.id+" with residue "+s.id+""),d+=l?"":"",d+=""}return d}copyStylesInline(e,t){this.icn3d.icn3dui;let s=["svg","g"];for(let i=0;i",b=e.id;return c.resid2refnum[p]&&(b+="=>"+c.resid2refnum[p]),C+=""+b+"",o?(C+="",C+=""+g+""):(C+="",C+=""+g+""),C+="",C}getNodeTopBottom(e,t,s,i,n){let l=this.icn3d.icn3dui,r=this,o=[],a=[],d={};for(let s in e){let e=t[s];if(e){if(1==i||2==i){if(e=l.hashUtilsCls.cloneHash(e),1==i){let t=n[s]?n[s]:"-";e.id+="=>"+t}else{let t=n[s]?n[s]:"--";e.id+="==>"+t}d[e.id]=e}"a"==e.s?o.push(e):"b"==e.s?a.push(e):"ab"==e.s&&(o.push(e),a.push(e))}}return o.sort((function(e,t){return r.compNode(e,t)})),a.sort((function(e,t){return r.compNode(e,t,s)})),{nodeArray1:o,nodeArray2:a,name2node:d}}updateGraphJson(e,t,s,i,n){let l=this.icn3d.icn3dui,r="";return r+='"structure'+t+'": {"id": "'+e+'", "nodes1":[',r+=l.utilsCls.getJSONFromArray(s),r+='], \n"nodes2":[',r+=l.utilsCls.getJSONFromArray(i),r+='], \n"links":[',r+=l.utilsCls.getJSONFromArray(n),r+="]}",r}updateGraphColor(){this.icn3d.icn3dui}handleForce(){let e=this.icn3d;0==e.icn3dui.htmlCls.force&&void 0!==e.simulation?(e.simulation.stop(),e.simulation.force("charge",null),e.simulation.force("x",null),e.simulation.force("y",null),e.simulation.force("r",null),e.simulation.force("link",null)):e.drawGraphCls.drawGraph(e.graphStr,e.pre+"dl_graph")}getNodesLinksForSet(e,t,s,i){let n=this.icn3d,l=n.icn3dui,r=[],o=[],a=0,d=l.htmlCls.coilValue,c="",h="",p=0,m={};for(let u in e){let e=n.atoms[u];if("DUM"!=e.chain&&(i||e.het||"CA"==e.name&&"C"==e.elem||"O3'"==e.name||"O3*"==e.name||"P"==e.name)){let i=e.structure+"_"+e.chain+"_"+e.resi;if(m.hasOwnProperty(i))continue;m[i]=1;let u=l.utilsCls.residueName2Abbr(e.resn)+e.resi;"chain"!=t&&"structure"!=t||(u+="."+e.chain),"structure"==t&&(u+="."+e.structure);let g="1_1_"+i,f=e.color?e.color.getHexString().toUpperCase():"000";r.push('{"id": "'+u+'", "r": "'+g+'", "s": "'+s+'", "x": '+e.coord.x.toFixed(0)+', "y": '+e.coord.y.toFixed(0)+', "c": "'+f+'"}'),a>0&&c==e.chain&&(n.resid2ncbi[e.resi]==n.resid2ncbi[p]+1||n.resid2ncbi[e.resi]==n.resid2ncbi[p])&&(o.push('{"source": "'+h+'", "target": "'+u+'", "v": '+d+', "c": "'+f+'"}'),e.ssbegin&&(d=l.htmlCls.ssValue),e.ssend&&(d=l.htmlCls.coilValue)),c=e.chain,h=u,p=e.resi,++a}}return{node:r,link:o}}getHbondLinksForSet(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=parseFloat($("#"+s.pre+"hbondthreshold").val()),r=e,o=r;if(Object.keys(o).length>0&&Object.keys(r).length>0){let e=!1;s.hBondCls.calculateChemicalHbonds(i.hashUtilsCls.hash2Atoms(o,s.atoms),i.hashUtilsCls.hash2Atoms(r,s.atoms),parseFloat(l),e,"graph",!0),n=i.hashUtilsCls.cloneHash(s.resid2Residhash)}return this.getGraphLinks(n,n,i.htmlCls.hbondInsideColor,t,i.htmlCls.hbondInsideValue)}getIonicLinksForSet(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=parseFloat($("#"+s.pre+"saltbridgethreshold").val()),r=e,o=r;if(Object.keys(o).length>0&&Object.keys(r).length>0){let e=!1;s.saltbridgeCls.calculateIonicInteractions(i.hashUtilsCls.hash2Atoms(o,s.atoms),i.hashUtilsCls.hash2Atoms(r,s.atoms),parseFloat(l),e,"graph",!0),n=i.hashUtilsCls.cloneHash(s.resid2Residhash)}return this.getGraphLinks(n,n,i.htmlCls.ionicInsideColor,t,i.htmlCls.ionicInsideValue)}getHalogenPiLinksForSet(e,t){let s,i=this.icn3d,n=i.icn3dui,l={},r=e,o=r,a="";return s=parseFloat($("#"+i.pre+"halogenthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","halogen",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.halogenInsideColor,t,n.htmlCls.halogenInsideValue),s=parseFloat($("#"+i.pre+"picationthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","pi-cation",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.picationInsideColor,t,n.htmlCls.picationInsideValue),s=parseFloat($("#"+i.pre+"pistackingthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","pi-stacking",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.pistackingInsideColor,t,n.htmlCls.pistackingInsideValue),a}getContactLinksForSet(e,t,s){let i=this.icn3d;i.icn3dui;let n=[],l="",r="",o={};for(let t in e){let e=i.atoms[t];e.ss==l&&e.chain==r||(Object.keys(o).length>0&&n.push(o),o={}),o[e.serial]=1,l=e.ss,r=e.chain}Object.keys(o).length>0&&n.push(o);let a=n.length,d="";for(let e=0;ed?s?-1:1:ah?1:c1&&Object.keys(n).length>1)return void alert("Please select one ligand or residue as one of the interaction sets...");Object.keys(e).length0&&Object.keys(a).length>0)){let t,s=c.hBondCls.calculateChemicalHbonds(h.hashUtilsCls.hash2Atoms(d,c.atoms),h.hashUtilsCls.hash2Atoms(a,c.atoms),parseFloat(e),n);n?(c.resid2ResidhashSaltbridge=h.hashUtilsCls.cloneHash(c.resid2Residhash),t="all atoms that have salt bridges with the selected atoms"):(c.resid2ResidhashHbond=h.hashUtilsCls.cloneHash(c.resid2Residhash),t="all atoms that are hydrogen-bonded with the selected atoms");let i={};for(let e in s){i[c.atoms[e].structure+"_"+c.atoms[e].chain+"_"+c.atoms[e].resi]=1}c.hAtoms={};for(let e in i)for(let t in c.residues[e])c.hAtoms[t]=1,c.atoms[t].style2="stick";let l=r+"_auto";c.selectionCls.addCustomSelection(Object.keys(i),l,t,o,!0),c.selectionCls.saveSelectionIfSelected(),c.drawCls.draw()}}showHydrogens(){let e=this.icn3d;if(void 0!==e.icn3dui.cfg.cid)for(let t in e.hAtoms){let s=e.atoms[t];if("H"!==s.elem.substr(0,1)){e.atoms[s.serial].bonds=e.atoms[s.serial].bonds2.concat(),e.atoms[s.serial].bondOrder=e.atoms[s.serial].bondOrder2.concat();for(let t=0,i=e.atoms[s.serial].bonds.length;t0){let i=e.atoms[t].bonds[0];e.atoms[i].bonds.push(s.serial),e.atoms[i].bondOrder&&e.atoms[i].bondOrder.push(1)}e.dAtoms[t]=1}} +var icn3d=function(e){"use strict";class t{constructor(e){this.icn3dui=e}cloneHash(e){this.icn3dui;let t={};void 0===e&&(e={});for(let s in e)t[s]=e[s];return t}intHash(e,t){this.icn3dui;let s={};if(void 0===e&&(e={}),void 0===t&&(t={}),Object.keys(e).length0||window.navigator.userAgent.match(/Trident.*rv\:11\./))}isMobile(){return this.icn3dui,/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent)}isMac(){return this.icn3dui,/Mac/i.test(window.navigator.userAgent)}isAndroid(){return this.icn3dui,/android/i.test(window.navigator.userAgent.toLowerCase())}isChrome(){return this.icn3dui,navigator.userAgent.includes("Chrome")&&navigator.vendor.includes("Google Inc")}isSessionStorageSupported(){return this.icn3dui,window.sessionStorage}isLocalStorageSupported(){return this.icn3dui,window.localStorage}hexToRgb(e,t){this.icn3dui;let s=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return s?{r:parseInt(s[1],16),g:parseInt(s[2],16),b:parseInt(s[3],16),a:t}:null}isCalphaPhosOnly(e){this.icn3dui;let t=!1,s=0,i=0;for(let t in e){if(!(s<100))break;{let s=e[t].name;if(!s)continue;s=s.trim(),"CA"!==s&&"P"!==s&&"O3'"!==s&&"O3*"!==s&&++i}++s}return i<.5*s&&(t=!0),t}hasCovalentBond(e,t){let s=this.icn3dui,i=s.parasCls.covalentRadii[e.elem.toUpperCase()]+s.parasCls.covalentRadii[t.elem.toUpperCase()],n=e.coord.x-t.coord.x,l=e.coord.y-t.coord.y,r=e.coord.z-t.coord.z;return n*n+l*l+r*r<("N"==e.elem&&"H"==t.elem.substr(0,1)||"N"==t.elem&&"H"==e.elem.substr(0,1)?2.2:1.3)*i*i}residueName2Abbr(e){this.icn3dui;let t=e.indexOf(" ");switch(t>0&&(e=e.substr(0,t)),e){case" A":case" DA":case"DA":case"ALA":return"A";case" C":case" DC":case"DC":case"CYS":return"C";case" G":case" DG":case"DG":case"GLY":return"G";case" T":case" DT":case"DT":case"THR":return"T";case" U":case" DU":case"DU":case"SEC":return"U";case" I":case" DI":case"DI":case"ILE":return"I";case"ARG":return"R";case"ASN":return"N";case"ASP":return"D";case"GLU":return"E";case"GLN":return"Q";case"HIS":return"H";case"LEU":return"L";case"LYS":return"K";case"MET":return"M";case"PHE":return"F";case"PRO":return"P";case"SER":return"S";case"TRP":return"W";case"TYR":return"Y";case"VAL":return"V";case"HOH":case"WAT":return"O";default:return e.trim()}}residueAbbr2Name(e){if(this.icn3dui,(e=e.toUpperCase()).length>1)return e;switch(e){case"A":return"ALA";case"R":return"ARG";case"N":return"ASN";case"D":return"ASP";case"C":return"CYS";case"E":return"GLU";case"Q":return"GLN";case"G":return"GLY";case"H":return"HIS";case"I":return"ILE";case"L":return"LEU";case"K":return"LYS";case"M":return"MET";case"F":return"PHE";case"P":return"PRO";case"S":return"SER";case"T":return"THR";case"W":return"TRP";case"Y":return"TYR";case"V":return"VAL";case"O":return"HOH";default:return e.trim()}}getJSONFromArray(e){this.icn3dui;let t="";for(let s=0,i=e.length;sd?1:ah?1:cs&&(e.htmlCls.WIDTH=s),i&&e.htmlCls.HEIGHT>i&&(e.htmlCls.HEIGHT=i)}sumArray(e){let t=0;for(let s=0,i=e.length;sRed and blue membranes indicate extracellular and intracellular membranes, respectively.

    "}getStructures(e){let t=this.icn3dui,s={};for(let i in e){s[t.icn3d.atoms[i].structure]=1}return s}getHlStructures(e){let t=this.icn3dui;return e||(e=t.icn3d.hAtoms),this.getStructures(e)}getDisplayedStructures(e){let t=this.icn3dui;return e||(e=t.icn3d.dAtoms),this.getStructures(e)}getDateDigitStr(){this.icn3dui;let e=new Date,t=(e.getMonth()+1).toString();e.getMonth()+1<10&&(t="0"+t);let s=e.getDate().toString();return e.getDate()<10&&(s="0"+s),e.getFullYear().toString()+t+s}}class i{constructor(e){this.icn3dui=e,this.glycanHash={GLC:{c:"1E90FF",s:"sphere"},BGC:{c:"1E90FF",s:"sphere"},NAG:{c:"1E90FF",s:"cube"},NDG:{c:"1E90FF",s:"cube"},GCS:{c:"1E90FF",s:"cube"},PA1:{c:"1E90FF",s:"cube"},GCU:{c:"1E90FF",s:"cone"},BDP:{c:"1E90FF",s:"cone"},G6D:{c:"1E90FF",s:"cone"},DDA:{c:"1E90FF",s:"cylinder"},B6D:{c:"1E90FF",s:"cylinder"},XXM:{c:"1E90FF",s:"cylinder"},MAN:{c:"00FF00",s:"sphere"},BMA:{c:"00FF00",s:"sphere"},BM3:{c:"00FF00",s:"cube"},"95Z":{c:"00FF00",s:"cube"},MAV:{c:"00FF00",s:"cone"},BEM:{c:"00FF00",s:"cone"},RAM:{c:"00FF00",s:"cone"},RM4:{c:"00FF00",s:"cone"},TYV:{c:"00FF00",s:"cylinder"},ARA:{c:"00FF00",s:"cylinder"},ARB:{c:"00FF00",s:"cylinder"},KDN:{c:"00FF00",s:"cylinder"},KDM:{c:"00FF00",s:"cylinder"},"6PZ":{c:"00FF00",s:"cylinder"},GMH:{c:"00FF00",s:"cylinder"},BDF:{c:"00FF00",s:"cylinder"},GAL:{c:"FFFF00",s:"sphere"},GLA:{c:"FFFF00",s:"sphere"},NGA:{c:"FFFF00",s:"cube"},A2G:{c:"FFFF00",s:"cube"},X6X:{c:"FFFF00",s:"cube"},"1GN":{c:"FFFF00",s:"cube"},ADA:{c:"FFFF00",s:"cone"},GTR:{c:"FFFF00",s:"cone"},LDY:{c:"FFFF00",s:"cylinder"},KDO:{c:"FFFF00",s:"cylinder"},T6T:{c:"FFFF00",s:"cylinder"},GUP:{c:"A52A2A",s:"sphere"},GL0:{c:"A52A2A",s:"sphere"},LGU:{c:"A52A2A",s:"cone"},ABE:{c:"A52A2A",s:"cylinder"},XYS:{c:"A52A2A",s:"cylinder"},XYP:{c:"A52A2A",s:"cylinder"},SOE:{c:"A52A2A",s:"cylinder"},PZU:{c:"FF69B4",s:"cylinder"},RIP:{c:"FF69B4",s:"cylinder"},"0MK":{c:"FF69B4",s:"cylinder"},ALL:{c:"8A2BE2",s:"sphere"},AFD:{c:"8A2BE2",s:"sphere"},NAA:{c:"8A2BE2",s:"cube"},SIA:{c:"8A2BE2",s:"cylinder"},SIB:{c:"8A2BE2",s:"cylinder"},AMU:{c:"8A2BE2",s:"cylinder"},X0X:{c:"1E90FF",s:"cone"},X1X:{c:"1E90FF",s:"cone"},NGC:{c:"1E90FF",s:"cylinder"},NGE:{c:"1E90FF",s:"cylinder"},"4N2":{c:"A0522D",s:"sphere"},HSQ:{c:"A0522D",s:"cube"},IDR:{c:"A0522D",s:"cone"},MUR:{c:"A0522D",s:"cylinder"},FUC:{c:"FF0000",s:"cone"},FUL:{c:"FF0000",s:"cone"}},this.nucleotidesArray=[" G"," A"," T"," C"," U"," DG"," DA"," DT"," DC"," DU","G","A","T","C","U","DG","DA","DT","DC","DU"],this.ionsArray=[" K"," NA"," MG"," AL"," CA"," TI"," MN"," FE"," NI"," CU"," ZN"," AG"," BA"," F"," CL"," BR"," I","K","NA","MG","AL","CA","TI","MN","FE","NI","CU","ZN","AG","BA","F","CL","BR","I"],this.cationsTrimArray=["K","NA","MG","AL","CA","TI","MN","FE","NI","CU","ZN","AG","BA"],this.anionsTrimArray=["F","CL","BR","I"],this.ionCharges={K:1,NA:1,MG:2,AL:3,CA:2,TI:3,MN:2,FE:3,NI:2,CU:2,ZN:2,AG:1,BA:2},this.vdwRadii={H:1.08,HE:1.34,LI:1.75,BE:2.05,B:1.47,C:1.49,N:1.41,O:1.4,F:1.39,NE:1.68,NA:1.84,MG:2.05,AL:2.11,SI:2.07,P:1.92,S:1.82,CL:1.83,AR:1.93,K:2.05,CA:2.21,SC:2.16,TI:1.87,V:1.79,CR:1.89,MN:1.97,FE:1.94,CO:1.92,NI:1.84,CU:1.86,ZN:2.1,GA:2.08,GE:2.15,AS:2.06,SE:1.93,BR:1.98,KR:2.12,RB:2.16,SR:2.24,Y:2.19,ZR:1.86,NB:2.07,MO:2.09,TC:2.09,RU:2.07,RH:1.95,PD:2.02,AG:2.03,CD:2.3,IN:2.36,SN:2.33,SB:2.25,TE:2.23,I:2.23,XE:2.21,CS:2.22,BA:2.51,LA:2.4,CE:2.35,PR:2.39,ND:2.29,PM:2.36,SM:2.29,EU:2.33,GD:2.37,TB:2.21,DY:2.29,HO:2.16,ER:2.35,TM:2.27,YB:2.42,LU:2.21,HF:2.12,TA:2.17,W:2.1,RE:2.17,OS:2.16,IR:2.02,PT:2.09,AU:2.17,HG:2.09,TL:2.35,PB:2.32,BI:2.43,PO:2.29,AT:2.36,RN:2.43,FR:2.56,RA:2.43,AC:2.6,TH:2.37,PA:2.43,U:2.4,NP:2.21,PU:2.56,AM:2.56,CM:2.56,BK:2.56,CF:2.56,ES:2.56,FM:2.56},this.covalentRadii={H:.31,HE:.28,LI:1.28,BE:.96,B:.84,C:.76,N:.71,O:.66,F:.57,NE:.58,NA:1.66,MG:1.41,AL:1.21,SI:1.11,P:1.07,S:1.05,CL:1.02,AR:1.06,K:2.03,CA:1.76,SC:1.7,TI:1.6,V:1.53,CR:1.39,MN:1.39,FE:1.32,CO:1.26,NI:1.24,CU:1.32,ZN:1.22,GA:1.22,GE:1.2,AS:1.19,SE:1.2,BR:1.2,KR:1.16,RB:2.2,SR:1.95,Y:1.9,ZR:1.75,NB:1.64,MO:1.54,TC:1.47,RU:1.46,RH:1.42,PD:1.39,AG:1.45,CD:1.44,IN:1.42,SN:1.39,SB:1.39,TE:1.38,I:1.39,XE:1.4,CS:2.44,BA:2.15,LA:2.07,CE:2.04,PR:2.03,ND:2.01,PM:1.99,SM:1.98,EU:1.98,GD:1.96,TB:1.94,DY:1.92,HO:1.92,ER:1.89,TM:1.9,YB:1.87,LU:1.87,HF:1.75,TA:1.7,W:1.62,RE:1.51,OS:1.44,IR:1.41,PT:1.36,AU:1.36,HG:1.32,TL:1.45,PB:1.46,BI:1.48,PO:1.4,AT:1.5,RN:1.5,FR:2.6,RA:2.21,AC:2.15,TH:2.06,PA:2,U:1.96,NP:1.9,PU:1.87,AM:1.8,CM:1.69},this.atomColors={H:this.thr(16777215),He:this.thr(16761035),HE:this.thr(16761035),Li:this.thr(11674146),LI:this.thr(11674146),B:this.thr(65280),C:this.thr(11184810),N:this.thr(255),O:this.thr(15728640),F:this.thr(14329120),Na:this.thr(255),NA:this.thr(255),Mg:this.thr(2263842),MG:this.thr(2263842),Al:this.thr(8421520),AL:this.thr(8421520),Si:this.thr(14329120),SI:this.thr(14329120),P:this.thr(16753920),S:this.thr(16762930),Cl:this.thr(65280),CL:this.thr(65280),Ca:this.thr(8421520),CA:this.thr(8421520),Ti:this.thr(8421520),TI:this.thr(8421520),Cr:this.thr(8421520),CR:this.thr(8421520),Mn:this.thr(8421520),MN:this.thr(8421520),Fe:this.thr(16753920),FE:this.thr(16753920),Ni:this.thr(10824234),NI:this.thr(10824234),Cu:this.thr(10824234),CU:this.thr(10824234),Zn:this.thr(10824234),ZN:this.thr(10824234),Br:this.thr(10824234),BR:this.thr(10824234),Ag:this.thr(8421520),AG:this.thr(8421520),I:this.thr(10494192),Ba:this.thr(16753920),BA:this.thr(16753920),Au:this.thr(14329120),AU:this.thr(14329120)},this.atomnames={H:"Hydrogen",HE:"Helium",LI:"Lithium",B:"Boron",C:"Carbon",N:"Nitrogen",O:"Oxygen",F:"Fluorine",NA:"Sodium",MG:"Magnesium",AL:"Aluminum",SI:"Silicon",P:"Phosphorus",S:"Sulfur",CL:"Chlorine",CA:"Calcium",TI:"Titanium",CR:"Chromium",MN:"Manganese",FE:"Iron",NI:"Nickel",CU:"Copper",ZN:"Zinc",BR:"Bromine",AG:"Silver",I:"Iodine",BA:"Barium",AU:"Gold"},this.defaultAtomColor=this.thr(13421772),this.stdChainColors=[this.thr(16711935),this.thr(255),this.thr(10053171),this.thr(65433),this.thr(16750848),this.thr(16737894),this.thr(3329330),this.thr(2003199),this.thr(16416882),this.thr(16753920),this.thr(52945),this.thr(16738740),this.thr(65280),this.thr(255),this.thr(16711680),this.thr(16776960),this.thr(65535),this.thr(16711935),this.thr(3978097),this.thr(4620980),this.thr(13458524),this.thr(16770229),this.thr(11529966),this.thr(15631086),this.thr(25600),this.thr(139),this.thr(9109504),this.thr(13468991),this.thr(35723),this.thr(9699539)],this.backgroundColors={black:this.thr(0),grey:this.thr(13421772),white:this.thr(16777215),transparent:this.thr(16777215)},this.residueColors={ALA:this.thr(13158600),ARG:this.thr(1334015),ASN:this.thr(56540),ASP:this.thr(15075850),CYS:this.thr(15132160),GLN:this.thr(56540),GLU:this.thr(15075850),GLY:this.thr(15461355),HIS:this.thr(8553170),ILE:this.thr(1016335),LEU:this.thr(1016335),LYS:this.thr(1334015),MET:this.thr(15132160),PHE:this.thr(3289770),PRO:this.thr(14456450),SER:this.thr(16422400),THR:this.thr(16422400),TRP:this.thr(11819700),TYR:this.thr(3289770),VAL:this.thr(1016335),ASX:this.thr(16738740),GLX:this.thr(16738740),G:this.thr(32768),A:this.thr(6324479),T:this.thr(16744448),C:this.thr(16711680),U:this.thr(16744448),DG:this.thr(32768),DA:this.thr(6324479),DT:this.thr(16744448),DC:this.thr(16711680),DU:this.thr(16744448)},this.residueArea={ALA:247,ARG:366,ASN:290,ASP:285,CYS:271,GLN:336,GLU:325,GLY:217,HIS:340,ILE:324,LEU:328,LYS:373,MET:346,PHE:366,PRO:285,SER:265,THR:288,TRP:414,TYR:387,VAL:293,ASX:290,GLX:336,G:520,A:507,T:515,C:467,U:482,DG:520,DA:507,DT:515,DC:467,DU:482},this.defaultResidueColor=this.thr(12492910),this.chargeColors={" G":this.thr(16711680)," A":this.thr(16711680)," T":this.thr(16711680)," C":this.thr(16711680)," U":this.thr(16711680)," DG":this.thr(16711680)," DA":this.thr(16711680)," DT":this.thr(16711680)," DC":this.thr(16711680)," DU":this.thr(16711680),G:this.thr(16711680),A:this.thr(16711680),T:this.thr(16711680),C:this.thr(16711680),U:this.thr(16711680),DG:this.thr(16711680),DA:this.thr(16711680),DT:this.thr(16711680),DC:this.thr(16711680),DU:this.thr(16711680),ARG:this.thr(255),LYS:this.thr(255),ASP:this.thr(16711680),GLU:this.thr(16711680),HIS:this.thr(8421631),GLY:this.thr(8947848),PRO:this.thr(8947848),ALA:this.thr(8947848),VAL:this.thr(8947848),LEU:this.thr(8947848),ILE:this.thr(8947848),PHE:this.thr(8947848),SER:this.thr(8947848),THR:this.thr(8947848),ASN:this.thr(8947848),GLN:this.thr(8947848),TYR:this.thr(8947848),MET:this.thr(8947848),CYS:this.thr(8947848),TRP:this.thr(8947848)},this.hydrophobicColors={" G":this.thr(16711680)," A":this.thr(16711680)," T":this.thr(16711680)," C":this.thr(16711680)," U":this.thr(16711680)," DG":this.thr(16711680)," DA":this.thr(16711680)," DT":this.thr(16711680)," DC":this.thr(16711680)," DU":this.thr(16711680),G:this.thr(16711680),A:this.thr(16711680),T:this.thr(16711680),C:this.thr(16711680),U:this.thr(16711680),DG:this.thr(16711680),DA:this.thr(16711680),DT:this.thr(16711680),DC:this.thr(16711680),DU:this.thr(16711680),ARG:this.thr(255),LYS:this.thr(255),ASP:this.thr(16711680),GLU:this.thr(16711680),HIS:this.thr(8421631),TRP:this.thr().setHSL(1/3,1,.5),PHE:this.thr().setHSL(1/3,1,.5909090909090908),LEU:this.thr().setHSL(1/3,1,.700956937799043),ILE:this.thr().setHSL(1/3,1,.7320574162679425),TYR:this.thr().setHSL(1/3,1,.5+.69/2.09),MET:this.thr().setHSL(1/3,1,.5+.71/2.09),VAL:this.thr().setHSL(1/3,1,.5+.815/2.09),CYS:this.thr().setHSL(1/3,1,.5+1.035/2.09),PRO:this.thr().setHSL(1/6,1,.9391304347826086),THR:this.thr().setHSL(1/6,1,.8913043478260869),SER:this.thr().setHSL(1/6,1,.8),ALA:this.thr().setHSL(1/6,1,.7826086956521738),GLN:this.thr().setHSL(1/6,1,.6652173913043478),ASN:this.thr().setHSL(1/6,1,.6304347826086956),GLY:this.thr().setHSL(1/6,1,.5)},this.normalizedHPColors={" G":this.thr(16777215)," A":this.thr(16777215)," T":this.thr(16777215)," C":this.thr(16777215)," U":this.thr(16777215)," DG":this.thr(16777215)," DA":this.thr(16777215)," DT":this.thr(16777215)," DC":this.thr(16777215)," DU":this.thr(16777215),G:this.thr(16777215),A:this.thr(16777215),T:this.thr(16777215),C:this.thr(16777215),U:this.thr(16777215),DG:this.thr(16777215),DA:this.thr(16777215),DT:this.thr(16777215),DC:this.thr(16777215),DU:this.thr(16777215),ARG:this.thr(16777215),LYS:this.thr(16777215),ASP:this.thr(16777215),GLU:this.thr(16777215),HIS:this.thr(16777215),TRP:this.thr().setHSL(1/3,1,.5),PHE:this.thr().setHSL(1/3,1,.558641975308642),LEU:this.thr().setHSL(1/3,1,.6296296296296295),ILE:this.thr().setHSL(1/3,1,.6496913580246912),TYR:this.thr().setHSL(1/3,1,.5+.69/3.24),MET:this.thr().setHSL(1/3,1,.5+.71/3.24),VAL:this.thr().setHSL(1/3,1,.5+.815/3.24),CYS:this.thr().setHSL(1/3,1,.5+1.035/3.24),PRO:this.thr().setHSL(1/3,1,.5+1.115/3.24),THR:this.thr().setHSL(1/3,1,.5+1.17/3.24),SER:this.thr().setHSL(1/3,1,.5+1.275/3.24),ALA:this.thr().setHSL(1/3,1,.5+1.295/3.24),GLN:this.thr().setHSL(1/3,1,.5+1.43/3.24),ASN:this.thr().setHSL(1/3,1,.5+1.47/3.24),GLY:this.thr().setHSL(1/3,1,1)},this.hydrophobicValues={" G":3," A":3," T":3," C":3," U":3," DG":3," DA":3," DT":3," DC":3," DU":3,G:3,A:3,T:3,C:3,U:3,DG:3,DA:3,DT:3,DC:3,DU:3,ARG:1.5,LYS:1.5,ASP:3,GLU:3,HIS:2,TRP:-2.09,PHE:-1.71,LEU:-1.25,ILE:-1.12,TYR:-.71,MET:-.67,VAL:-.46,CYS:-.02,PRO:.14,THR:.25,SER:.46,ALA:.5,GLN:.77,ASN:.85,GLY:1.15},this.residueAbbrev={ALA:"A (Ala)",ARG:"R (Arg)",ASN:"N (Asn)",ASP:"D (Asp)",CYS:"C (Cys)",GLN:"Q (Gln)",GLU:"E (Glu)",GLY:"G (Gly)",HIS:"H (His)",ILE:"I (Ile)",LEU:"L (Leu)",LYS:"K (Lys)",MET:"M (Met)",PHE:"F (Phe)",PRO:"P (Pro)",SER:"S (Ser)",THR:"T (Thr)",TRP:"W (Trp)",TYR:"Y (Tyr)",VAL:"V (Val)",ASX:"X (Asx)",GLX:"X (Glx)",G:"Guanine",A:"Adenine",T:"Thymine",C:"Cytosine",U:"Uracil",DG:"deoxy-Guanine",DA:"deoxy-Adenine",DT:"deoxy-Thymine",DC:"deoxy-Cytosine",DU:"deoxy-Uracil"},this.ssColors={helix:this.thr(16711680),sheet:this.thr(32768),coil:this.thr(6324479)},this.ssColors2={helix:this.thr(16711680),sheet:this.thr(16762880),coil:this.thr(6324479)},this.resn2restype={ALA:1,ARG:4,ASN:7,ASP:10,CYS:13,GLN:16,GLU:19,GLY:22,HIS:25,ILE:28,LEU:31,LYS:34,MET:37,PHE:40,PRO:43,SER:46,THR:49,TRP:52,TYR:55,VAL:58},this.nuclMainArray=["C1'","C1*","C2'","C2*","C3'","C3*","C4'","C4*","C5'","C5*","O3'","O3*","O4'","O4*","O5'","O5*","P","OP1","O1P","OP2","O2P"],this.b62ResArray=["A","R","N","D","C","Q","E","G","H","I","L","K","M","F","P","S","T","W","Y","V","B","Z","X","*"],this.b62Matrix=[[4,-1,-2,-2,0,-1,-1,0,-2,-1,-1,-1,-1,-2,-1,1,0,-3,-2,0,-2,-1,0,-4],[-1,5,0,-2,-3,1,0,-2,0,-3,-2,2,-1,-3,-2,-1,-1,-3,-2,-3,-1,0,-1,-4],[-2,0,6,1,-3,0,0,0,1,-3,-3,0,-2,-3,-2,1,0,-4,-2,-3,3,0,-1,-4],[-2,-2,1,6,-3,0,2,-1,-1,-3,-4,-1,-3,-3,-1,0,-1,-4,-3,-3,4,1,-1,-4],[0,-3,-3,-3,9,-3,-4,-3,-3,-1,-1,-3,-1,-2,-3,-1,-1,-2,-2,-1,-3,-3,-2,-4],[-1,1,0,0,-3,5,2,-2,0,-3,-2,1,0,-3,-1,0,-1,-2,-1,-2,0,3,-1,-4],[-1,0,0,2,-4,2,5,-2,0,-3,-3,1,-2,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-2,0,-1,-3,-2,-2,6,-2,-4,-4,-2,-3,-3,-2,0,-2,-2,-3,-3,-1,-2,-1,-4],[-2,0,1,-1,-3,0,0,-2,8,-3,-3,-1,-2,-1,-2,-1,-2,-2,2,-3,0,0,-1,-4],[-1,-3,-3,-3,-1,-3,-3,-4,-3,4,2,-3,1,0,-3,-2,-1,-3,-1,3,-3,-3,-1,-4],[-1,-2,-3,-4,-1,-2,-3,-4,-3,2,4,-2,2,0,-3,-2,-1,-2,-1,1,-4,-3,-1,-4],[-1,2,0,-1,-3,1,1,-2,-1,-3,-2,5,-1,-3,-1,0,-1,-3,-2,-2,0,1,-1,-4],[-1,-1,-2,-3,-1,0,-2,-3,-2,1,2,-1,5,0,-2,-1,-1,-1,-1,1,-3,-1,-1,-4],[-2,-3,-3,-3,-2,-3,-3,-3,-1,0,0,-3,0,6,-4,-2,-2,1,3,-1,-3,-3,-1,-4],[-1,-2,-2,-1,-3,-1,-1,-2,-2,-3,-3,-1,-2,-4,7,-1,-1,-4,-3,-2,-2,-1,-2,-4],[1,-1,1,0,-1,0,0,0,-1,-2,-2,0,-1,-2,-1,4,1,-3,-2,-2,0,0,0,-4],[0,-1,0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1,1,5,-2,-2,0,-1,-1,0,-4],[-3,-3,-4,-4,-2,-2,-3,-2,-2,-3,-2,-3,-1,1,-4,-3,-2,11,2,-3,-4,-3,-2,-4],[-2,-2,-2,-3,-2,-1,-2,-3,2,-1,-1,-2,-1,3,-3,-2,-2,2,7,-1,-3,-2,-1,-4],[0,-3,-3,-3,-1,-2,-2,-3,-3,3,1,-2,1,-1,-2,-2,0,-3,-1,4,-3,-2,-1,-4],[-2,-1,3,4,-3,0,1,-1,0,-3,-4,0,-3,-3,-2,0,-1,-4,-3,-3,4,1,-1,-4],[-1,0,0,1,-3,3,4,-2,0,-3,-3,1,-1,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,0,0,-2,-1,-1,-1,-1,-1,-4],[-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1]]}thr(e){return this.icn3dui,"#0"==e&&(e="#000"),new THREE.Color(e)}}class n{constructor(e){this.icn3dui=e}onId(e,t,s){if(this.icn3dui,!(Object.keys(window).length<2)&&("#"==e.substr(0,1)&&(e=e.substr(1)),document.getElementById(e))){t.split(" ").forEach((t=>{document.getElementById(e).addEventListener(t,s)}))}}onIds(e,t,s){let i=this.icn3dui;Array.isArray(e)?e.forEach((e=>{i.myEventCls.onId(e,t,s)})):i.myEventCls.onId(e,t,s)}}class l{constructor(e){this.icn3dui=e}getRmsdSuprCls(e,t,s){let i,n,l,r,o,a,d,c,h,p,m,u,g,f=this.icn3dui,C=new Array(9),b=new THREE.Vector3,y=new THREE.Vector3,v=[],_=[],w=new Array(3),S=new Array(3),A=new Array(3),x=new Array(3),k=new Array(3),O=new Array(3);if(i=0,s<=1)return{rot:void 0,trans1:void 0,trans2:void 0,rmsd:999};let R=s;for(n=0;n0?(C[0]=x[0]*w[0]+k[0]*S[0]+O[0]*A[0],C[1]=x[0]*w[1]+k[0]*S[1]+O[0]*A[1],C[2]=x[0]*w[2]+k[0]*S[2]+O[0]*A[2],C[3]=x[1]*w[0]+k[1]*S[0]+O[1]*A[0],C[4]=x[1]*w[1]+k[1]*S[1]+O[1]*A[1],C[5]=x[1]*w[2]+k[1]*S[2]+O[1]*A[2],C[6]=x[2]*w[0]+k[2]*S[0]+O[2]*A[0],C[7]=x[2]*w[1]+k[2]*S[1]+O[2]*A[1],C[8]=x[2]*w[2]+k[2]*S[2]+O[2]*A[2]):(C[0]=x[0]*w[0]+k[0]*S[0]-O[0]*A[0],C[1]=x[0]*w[1]+k[0]*S[1]-O[0]*A[1],C[2]=x[0]*w[2]+k[0]*S[2]-O[0]*A[2],C[3]=x[1]*w[0]+k[1]*S[0]-O[1]*A[0],C[4]=x[1]*w[1]+k[1]*S[1]-O[1]*A[1],C[5]=x[1]*w[2]+k[1]*S[2]-O[1]*A[2],C[6]=x[2]*w[0]+k[2]*S[0]-O[2]*A[0],C[7]=x[2]*w[1]+k[2]*S[1]-O[2]*A[1],C[8]=x[2]*w[2]+k[2]*S[2]-O[2]*A[2]),c=Math.sqrt(c),h=Math.sqrt(h),p=Math.sqrt(p),g=c+h+u*p,m=a+d-2*g,i=m>0?Math.sqrt(m):void 0,{rot:C,trans1:I,trans2:E,rmsd:i})}eigen_values(e){let t,s,i,n,l,r,o,a,d,c,h,p,m,u,g,f,C,b,y,v;if(this.icn3dui,t=e[0],s=e[1],i=e[2],n=e[3],l=e[4],r=e[5],o=e[6],a=e[7],d=e[8],c=-(t+l+d),h=t*l+(t+l)*d-r*a-s*n-i*o,p=-t*l*d+t*r*a+s*n*d-s*r*o-i*n*a+i*l*o,m=-c*c/3+h,u=c*c*c/13.5-c*h/3+p,g=.25*u*u+m*m*m/27,g<0){let e,t;e=Math.sqrt(.25*u*u-g),t=Math.acos(-.5*u/e),b=2*Math.cbrt(e)*Math.cos(t/3)}else f=Math.cbrt(-.5*u+Math.sqrt(g)),C=Math.cbrt(-.5*u-Math.sqrt(g)),b=f+C;return b-=c/3,c+=b,p/=-b,y=.5*(-c+Math.sqrt(c*c-4*p)),v=.5*(-c-Math.sqrt(c*c-4*p)),yw&&(w=Math.abs(d)),Math.abs(c)>w&&(w=Math.abs(c)),Math.abs(h)>w&&(w=Math.abs(h)),Math.abs(p)>w&&(w=Math.abs(p)),Math.abs(m)>w&&(w=Math.abs(m)),Math.abs(u)>w&&(w=Math.abs(u)),Math.abs(g)>w&&(w=Math.abs(g)),Math.abs(f)>w&&(w=Math.abs(f)),w<1e-10)return r=3,{k:r,v1:t,v2:s,v3:i};if(o=0,a/=w,d/=w,c/=w,h/=w,p/=w,m/=w,u/=w,g/=w,f/=w,Math.abs(a)w&&(_=a,a=h,h=_,_=d,d=p,p=_,_=c,c=m,m=_,w=Math.abs(d)),Math.abs(g)>w&&(_=a,a=u,u=_,_=d,d=g,g=_,_=c,c=f,f=_),y=m-p*c/d,v=f-g*c/d,Math.abs(y)w&&(_=a,a=h,h=_,_=d,d=p,p=_,_=c,c=m,m=_,w=Math.abs(a)),Math.abs(c)>w&&(_=a,a=u,u=_,_=d,d=g,g=_,_=c,c=f,f=_),C=p-h*d/a,b=m-h*c/a,y=g-u*d/a,v=f-u*c/a,Math.abs(C)0&&(1==o?(a=s[0],d=s[1],c=s[2],_=Math.sqrt(a*a+d*d+c*c),s[0]=a/_,s[1]=d/_,s[2]=c/_):2==o?(a=t[0],d=t[1],c=t[2],h=s[0],p=s[1],m=s[2],_=a*h+d*p+c*m,Math.abs(_)>=n&&(s[0]=a+_*h,s[1]=d+_*p,s[2]=c+_*m,h=s[0],p=s[1],m=s[2]),_=Math.sqrt(a*a+d*d+c*c),t[0]=a/_,t[1]=d/_,t[2]=c/_,_=Math.sqrt(h*h+p*p+m*m),s[0]=h/_,s[1]=p/_,s[2]=m/_):(a=t[0],d=t[1],c=t[2],_=Math.sqrt(a*a+d*d+c*c),t[0]=a/_,t[1]=d/_,t[2]=c/_)),{k:r,v1:t,v2:s,v3:i}}getEigenForSelection(e,t){let s,i=this.icn3dui,n=new THREE.Vector3,l=[];for(s=0;s0&&Math.abs(l[0].x-e[0].x)<=6&&Math.abs(l[0].y-e[0].y)<=6&&Math.abs(l[0].z-e[0].z)<=6?(p.push(l[0]),m=1):m=0,p.push(e[0]);for(let t=1,s=e.length-1;t0&&Math.abs(r[0].x-e[e.length-1].x)<=6&&Math.abs(r[0].y-e[e.length-1].y)<=6&&Math.abs(r[0].z-e[e.length-1].z)<=6&&(p.push(r[0]),++g),u>1&&Math.abs(r[0].x-r[1].x)<=6&&Math.abs(r[0].y-r[1].y)<=6&&Math.abs(r[0].z-r[1].z)<=6&&(p.push(r[1]),++g);let f=[],C=[],b=[];o&&(g=u>0?u-1:0);let y;for(let e=-1,n=p.length,l=1/s;e<=n-3;++e){y=e-m;let r=p[-1===e?0:e],o=p[e+1],u=p[e+2],v=p[e===n-3?n-1:e+3],_=0,w=a.subdivideCls.getKnot(1,_,r,o),S=a.subdivideCls.getKnot(1,w,o,u),A=a.subdivideCls.getKnot(1,S,u,v);w-_<1e-4&&(w=_+1),S-w<1e-4&&(S=w+1),A-S<1e-4&&(A=S+1),e>-1&&(void 0===i||i[y+1])&&e>=-1+m&&e<=n-3-g+1&&(d=d.concat(f),c=c.concat(C),h=h.concat(b)),f=[],C=[],b=[];let x=(S-w)*l;for(let l=0;l=-1+m&&e<=n-3-g&&i[y+1]&&l<=parseInt(s/2)&&(d.push(new THREE.Vector3(k,O,R)),c.push(i[y+1]),h.push(t[y+1])),e>=-1+m&&e<=n-3-g+1&&i[y+2]&&l>parseInt(s/2)&&(f.push(new THREE.Vector3(k,O,R)),C.push(i[y+2]),b.push(t[y+2]))):e>=-1+m&&e<=n-3-g&&(d.push(new THREE.Vector3(k,O,R)),c.push(y+1),h.push(t[y+1]))}}i&&!i[y+1]||(d=d.concat(f),c=c.concat(C),h=h.concat(b),d.push(p[p.length-1-g]),c.push(p.length-1-g),h.push(t[p.length-1-g])),f=[],C=[],b=[],p=[];let v=[];return v.push(d),v.push(c),v.push(h),v}getKnot(e,t,s,i){return this.icn3dui,s.distanceTo(i)+t}getValueFromKnot(e,t,s,i,n,l,r,o,a){this.icn3dui;let d,c,h=(r-l)/(s-t),p=(o-r)/(i-s),m=(a-o)/(n-i),u=(s+i)*(s+i)-4*(t*s+i*n-t*n);return 0==u?(d=9999,c=9999):(d=6*(3*p*s+2*h*n+m*s-2*h*s-2*p*n-p*i-m*s)/u,c=6*(3*p*i+2*m*t+h*s-2*p*t-2*m*i-h*i-p*s)/u),p*(e-s)+r+((2*d+c)/6/(s-i)*(e-s)*(e-i)*(e-i)+(2*c+d)/6/(i-s)*(e-s)*(e-s)*(e-i))}}class o{constructor(e){this.icn3dui=e}passFloat32(e,t){let s=this.icn3dui,i=e.length;t||(t=new Uint8Array(4*i));let n=s.convertTypeCls.getDataView(t);for(let t=0;t  Very high (pLDDT > 90)
      Confident (90 > pLDDT > 70)
      Low (70 > pLDDT > 50)
      Very low (pLDDT < 50)
    '}setLegendHtml(e){let t=this.icn3dui.icn3d,s="
    ";if(e)s+=this.setAlphaFoldLegend();else{s+="
    "+t.startValue+""+t.midValue+""+t.endValue+"
    "}return s}SetChainsAdvancedMenu(){let e=this.icn3dui,t=e.icn3d;if(void 0===t.bSetChainsAdvancedMenu||!t.bSetChainsAdvancedMenu){let s=e.hashUtilsCls.cloneHash(t.hAtoms);t.definedSetsCls.setPredefinedInMenu(),t.bSetChainsAdvancedMenu=!0,t.hAtoms=e.hashUtilsCls.cloneHash(s)}}setSetsMenus(e,t){let s=this.icn3dui,i=s.icn3d;this.SetChainsAdvancedMenu();let n=e,l=e+"2",r=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+s.pre+n).length&&$("#"+s.pre+n).html(" "+r),!t&&$("#"+s.pre+l).length&&$("#"+s.pre+l).html(" "+r),$("#"+s.pre+n).resizable(),t||$("#"+s.pre+l).resizable()}applyShownMenus(e){let t=this.icn3dui;t.icn3d;let s=[];for(let e in t.htmlCls.allMenus)t.htmlCls.shownMenus.hasOwnProperty(e)?$("#"+t.pre+e).parent().show():($("#"+t.pre+e).parent().hide(),s.push(e));Object.keys(t.htmlCls.shownMenus).length==Object.keys(t.htmlCls.allMenus).length?$(".icn3d-menusep").show():$(".icn3d-menusep").hide(),localStorage&&!e&&localStorage.setItem("hiddenmenus",JSON.stringify(s))}getHiddenMenusFromCache(){let e=this.icn3dui;e.icn3d,e.htmlCls.shownMenus={};let t=localStorage?localStorage.getItem("hiddenmenus"):"";if(t&&"[]"!=t){let s=JSON.parse(t);for(let t in e.htmlCls.allMenus)-1==s.indexOf(t)&&(e.htmlCls.shownMenus[t]=1)}else e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus)}displayShownMenus(){let e=this.icn3dui;e.icn3d;let t="
    ";t+="",t+="";for(let s in e.htmlCls.allMenusSel){if("uniclr"==s.substr(0,6)||"mn5_opacity"==s.substr(0,11)||"mn6_labelscale"==s.substr(0,14)||"faq_"==s.substr(0,4)||"dev_"==s.substr(0,4))continue;"mn1_searchgrooup"==s?t+="
    FileSelectViewStyleColorAnalysisHelp
    ":("mn2_definedsets"==s||"mn2_show_selected"==s||"mn3_proteinwrap"==s||e.cfg.cid&&"mn3_ligwrap"==s||"mn4_clrwrap"==s||"mn6_selectannotations"==s||"abouticn3d"==s)&&(t+="");let i=e.htmlCls.shownMenus.hasOwnProperty(s)?"checked":"",n=e.htmlCls.allMenusSel[s];t+=""+e.htmlCls.allMenus[s]+"
    "}t+="
    ",$("#"+e.pre+"menulist").html(t)}async setIgTemplate(e){let t=this.icn3dui.icn3d;t.bRunRefnumAgain=!0;let s=t.resid2specCls.atoms2residues(Object.keys(t.hAtoms));for(let e=0,i=s.length;e0?"_blank":"_self";window.open(n,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_mmciffile","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmciffile","Please append mmCIF File")})),e.myEventCls.onIds("#"+e.pre+"mn1_mmcifid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmcifid","Please input mmCIF ID")})),e.myEventCls.onIds("#"+e.pre+"mn1_mmdbid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmdbid","Please input MMDB or PDB ID")})),e.myEventCls.onIds(["#"+e.pre+"mn1_mmdbafid",,"#"+e.pre+"tool_mmdbafid"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmdbafid","Please input PDB/MMDB/AlphaFold UniProt IDs")})),e.myEventCls.onIds("#"+e.pre+"mn1_blast_rep_id","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_blast_rep_id","Align sequence to structure")})),e.myEventCls.onIds("#"+e.pre+"mn1_esmfold","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_esmfold","Sequence to structure prediction with ESMFold")})),e.myEventCls.onIds("#"+e.pre+"mn1_proteinname","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_proteinname","Please input protein or gene name")})),e.myEventCls.onIds("#"+e.pre+"mn1_cid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_cid","Please input PubChem Compound")})),e.myEventCls.onIds("#"+e.pre+"mn1_smiles","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_smiles","Please input a chemical SMILES")})),e.myEventCls.onIds("#"+e.pre+"mn1_pngimage","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_pngimage","Please append PNG images")})),e.myEventCls.onIds("#"+e.pre+"mn1_state","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_state","Please input the state file")})),e.myEventCls.onIds("#"+e.pre+"mn1_selection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_selection","Please input the selection file")})),e.myEventCls.onIds("#"+e.pre+"mn1_collection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_selectCollections","Select Collections")})),e.myEventCls.onIds("#"+e.pre+"mn1_dsn6","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_dsn6","Please input the map file to display electron density map")})),e.myEventCls.onIds(["#"+e.pre+"mn1_delphi","#"+e.pre+"mn1_delphi2","#"+e.pre+"tool_delphi"],"click",(function(t){e.icn3d.loadPhiFrom="delphi",$("#"+e.pre+"dl_delphi_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_delphi","Please set parameters to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_phi","click",(function(t){e.icn3d.loadPhiFrom="phi",$("#"+e.pre+"dl_phi_tabs").tabs(),$("#"+e.pre+"phitab1_tabs").tabs(),$("#"+e.pre+"phitab2_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_phi","Please input local phi or cube file to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_phiurl","click",(function(t){e.icn3d.loadPhiFrom="phiurl",$("#"+e.pre+"dl_phiurl_tabs").tabs(),$("#"+e.pre+"phiurltab1_tabs").tabs(),$("#"+e.pre+"phiurltab2_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_phiurl","Please input URL phi or cube file to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_dsn6url","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_dsn6url","Please input the map file to display electron density map")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportState","click",(function(s){let i=e.icn3d;t.setLogCmd("export state file",!1);let n=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(n+"_statefile.txt","command")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportPdbRes","click",(function(s){e.icn3d,e.htmlCls.setHtmlCls.exportPdb(),t.setLogCmd("export pdb",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSecondary","click",(function(s){e.icn3d,e.htmlCls.setHtmlCls.exportSecondary(),t.setLogCmd("export secondary structure",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphipdb","#"+e.pre+"phipdb"],"click",(function(s){let i=e.icn3d,n=i.saveFileCls.getSelectedResiduePDB();t.setLogCmd("export PDB of selected residues",!1);let l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_icn3d_residues.pdb","text",[n])})),e.myEventCls.onIds(["#"+e.pre+"delphipqr","#"+e.pre+"phipqr","#"+e.pre+"phiurlpqr"],"click",(async function(s){e.icn3d,await e.htmlCls.setHtmlCls.exportPqr(),t.setLogCmd("export pqr",!0)})),e.myEventCls.onIds("#"+e.pre+"profixpdb","click",(async function(s){let i=e.icn3d;await i.scapCls.exportPdbProfix(!1),t.setLogCmd("export pdb missing atoms",!0)})),e.myEventCls.onIds("#"+e.pre+"profixpdbh","click",(async function(s){let i=e.icn3d;await i.scapCls.exportPdbProfix(!0),t.setLogCmd("export pdb hydrogen",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportIgstrand","click",(async function(s){e.icn3d.refnumCls.exportRefnum("igstrand"),t.setLogCmd("export refnum igstrand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportKabat","click",(async function(s){e.icn3d.refnumCls.exportRefnum("kabat"),t.setLogCmd("export refnum kabat",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportImgt","click",(async function(s){e.icn3d.refnumCls.exportRefnum("imgt"),t.setLogCmd("export refnum imgt",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportStl","click",(function(s){let i=e.icn3d;t.setLogCmd("export stl file",!1),i.export3DCls.exportStlFile("")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportVrml","click",(function(s){let i=e.icn3d;t.setLogCmd("export vrml file",!1),i.export3DCls.exportVrmlFile("")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportStlStab","click",(function(s){let i=e.icn3d;t.setLogCmd("export stl stabilizer file",!1),i.threeDPrintCls.hideStabilizer(),i.threeDPrintCls.resetAfter3Dprint(),i.threeDPrintCls.addStabilizer(),i.export3DCls.exportStlFile("_stab")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportVrmlStab","click",(function(s){let i=e.icn3d;t.setLogCmd("export vrml stabilizer file",!1),i.threeDPrintCls.hideStabilizer(),i.threeDPrintCls.resetAfter3Dprint(),i.threeDPrintCls.addStabilizer(),i.export3DCls.exportVrmlFile("_stab")})),e.myEventCls.onIds("#"+e.pre+"mn6_exportInteraction","click",(async function(s){let i=e.icn3d;t.setLogCmd("export interactions",!1),void 0!==e.cfg.mmdbid&&await i.viewInterPairsCls.retrieveInteractionData(),i.viewInterPairsCls.exportInteractions()})),e.myEventCls.onIds(["#"+e.pre+"mn1_exportCanvas","#"+e.pre+"saveimage"],"click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas",!1);await i.shareLinkCls.shareLink(!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas1","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 1",!0),i.scaleFactor=1,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas2","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 2",!0),i.scaleFactor=2,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas4","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 4",!0),i.scaleFactor=4,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas8","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 8",!0),i.scaleFactor=8,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCounts","click",(function(s){let i=e.icn3d;t.setLogCmd("export counts",!1);let n='

    Total Count for atoms with coordinates:
    ';n+="",n+="
    Structure CountChain CountResidue CountAtom Count
    "+Object.keys(i.structures).length+""+Object.keys(i.chains).length+""+Object.keys(i.residues).length+""+Object.keys(i.atoms).length+"

    ",n+="Counts by Chain for atoms with coordinates:
    ";let l=Object.keys(i.chains);for(let e=0,t=l.length;e"}n+="
    StructureChainResidue CountAtom Count
    "+r+""+o+""+Object.keys(a).length+""+Object.keys(i.chains[t]).length+"

    ";let r=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(r+"_counts.html","html",n)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSelections","click",(function(s){let i=e.icn3d;t.setLogCmd("export all selections",!1),t.SetChainsAdvancedMenu();let n=i.saveFileCls.exportCustomAtoms(),l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_selections.txt","text",[n])})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSelDetails","click",(function(s){let i=e.icn3d;t.setLogCmd("export all selections with details",!1),t.SetChainsAdvancedMenu();let n=i.saveFileCls.exportCustomAtoms(!0),l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_sel_details.txt","text",[n])})),e.myEventCls.onIds(["#"+e.pre+"mn1_sharelink","#"+e.pre+"tool_sharelink"],"click",(async function(t){let s=e.icn3d;await s.shareLinkCls.shareLink()})),e.myEventCls.onIds("#"+e.pre+"mn1_replayon","click",(async function(s){let i=e.icn3d;await i.resizeCanvasCls.replayon(),t.setLogCmd("replay on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_replayoff","click",(async function(s){let i=e.icn3d;await i.resizeCanvasCls.replayoff(),t.setLogCmd("replay off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_menuall","click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus),t.applyShownMenus()})),e.myEventCls.onIds("#"+e.pre+"mn1_menusimple","click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.simpleMenus),t.applyShownMenus()})),e.myEventCls.onIds("#"+e.pre+"mn1_menupref","click",(function(s){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_menupref","Select Menus"),t.getHiddenMenusFromCache(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"apply_menupref","#"+e.pre+"apply_menupref2"],"click",(function(s){e.icn3d;var i=document.querySelectorAll('form[name="'+e.pre+'selmenu"] input:checked');for(var n of(e.htmlCls.shownMenus={},i))e.htmlCls.shownMenus[n.value]=1;t.applyShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"reset_menupref","#"+e.pre+"reset_menupref2"],"click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.simpleMenus),t.applyShownMenus(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"reset_menupref_all","#"+e.pre+"reset_menupref_all2"],"click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus),t.applyShownMenus(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"savepref","#"+e.pre+"savepref2"],"click",(function(t){let s=e.icn3d,i="[";var n=document.querySelectorAll('form[name="'+e.pre+'selmenu"] input:not(:checked)');let l=0;for(var r of n)l>0&&(i+=", "),i+='"'+r.value+'"',++l;i+="]",s.saveFileCls.saveFile("icn3d_menus_pref.txt","text",[i])})),e.myEventCls.onIds("#"+e.pre+"reload_menupreffile","click",(function(s){e.icn3d,s.preventDefault(),e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"menupreffile")[0].files[0];if(i){e.htmlCls.setHtmlCls.fileSupport();let s=new FileReader;s.onload=function(s){let i=s.target.result,n=JSON.parse(i);e.htmlCls.shownMenus={};for(let t in e.htmlCls.allMenus)-1==n.indexOf(t)&&(e.htmlCls.shownMenus[t]=1);t.applyShownMenus(),t.displayShownMenus()},s.readAsText(i)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"mn1_menuloadpref","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_menuloadpref","Please input the menu preference file")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_structure","click",(function(t){let s=e.icn3d,i=s.saveFileCls.getLinkToStructureSummary(!0),n=s.structures&&Object.keys(s.structures).length>0?"_blank":"_self";window.open(i,n)})),e.myEventCls.onIds("#"+e.pre+"mn1_alphafold","click",(function(t){e.icn3d;window.open("https://github.com/sokrypton/ColabFold","_blank")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_bind","click",(function(s){let i=e.icn3d,n="https://www.ncbi.nlm.nih.gov/pccompound?LinkName=pccompound_structure&from_uid="+i.inputid;t.setLogCmd("link to 3D protein structures bound to CID "+i.inputid+": "+n,!1);let l=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(n,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_link_vast","click",(function(s){let i,n=e.icn3d;if(void 0===n.inputid)i="https://www.ncbi.nlm.nih.gov/pccompound?term="+n.molTitle,t.setLogCmd("link to compounds "+n.molTitle+": "+i,!1);else if(void 0!==e.cfg.cid)i="https://www.ncbi.nlm.nih.gov/pccompound?LinkName=pccompound_pccompound_3d&from_uid="+n.inputid,t.setLogCmd("link to compounds with structure similar to CID "+n.inputid+": "+i,!1);else{let s=n.inputid.split("_");1===s.length?(i=e.htmlCls.baseUrl+"vastplus/vastplus.cgi?uid="+n.inputid,t.setLogCmd("link to structures similar to "+n.inputid+": "+i,!1)):2===s.length&&(i=e.htmlCls.baseUrl+"vastplus/vastplus.cgi?uid="+s[0],t.setLogCmd("link to structures similar to "+s[0]+": "+i,!1))}let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_link_pubmed","click",(function(s){let i,n=e.icn3d;if(void 0===n.inputid){i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+n.molTitle,t.setLogCmd("link to literature about "+n.molTitle+": "+i,!1);let e=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,e)}else if(n.pmid){let e=n.pmid.toString().split("_");1===e.length?(i="https://www.ncbi.nlm.nih.gov/pubmed/"+n.pmid,t.setLogCmd("link to PubMed ID "+n.pmid+": "+i,!1)):2===e.length&&(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+e[0]+" OR "+e[1],t.setLogCmd("link to PubMed IDs "+e[0]+", "+e[1]+": "+i,!1));let s=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,s)}else if(isNaN(n.inputid)){let e=n.inputid.toString().split("_");1===e.length?(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+n.inputid,t.setLogCmd("link to literature about PDB "+n.inputid+": "+i,!1)):2===e.length&&(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+e[0]+" OR "+e[1],t.setLogCmd("link to literature about PDB "+e[0]+" OR "+e[1]+": "+i,!1));let s=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,s)}else void 0!==e.cfg.cid?alert("No literature information is available for this compound in the SDF file."):alert("No literature information is available for this structure.")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_protein","click",(function(s){let i=e.icn3d,n=Object.keys(i.structures),l=Object.keys(i.chains),r="";for(let e=0,t=l.length;e0&&(r=r.substr(0,r.length-4));let o="https://www.ncbi.nlm.nih.gov/protein/?term="+r;t.setLogCmd("link to Entrez protein about PDB "+n+": "+o,!1);let a=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(o,a)}))}clickMenu2(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds(["#"+e.pre+"mn6_selectannotations","#"+e.pre+"tool_selectannotations"],"click",(async function(s){let i=e.icn3d;await i.showAnnoCls.showAnnotations(),t.setLogCmd("view annotations",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_selectall","click",(function(s){let i=e.icn3d;t.setLogCmd("select all",!0),i.selectionCls.selectAll(),i.hlUpdateCls.removeHlAll(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearall","click",(function(s){let i=e.icn3d;t.setLogCmd("clear all",!0),i.bSelectResidue=!1,i.selectionCls.selectAll(),i.hlUpdateCls.removeHlAll(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_selectdisplayed","click",(function(s){let i=e.icn3d;t.setLogCmd("select displayed set",!0),i.hAtoms=e.hashUtilsCls.cloneHash(i.viewSelectionAtoms),i.hlUpdateCls.updateHlAll()})),e.myEventCls.onIds("#"+e.pre+"mn2_clashedYes","click",(function(s){let i=e.icn3d;i.bHideClashed=!1,i.annoDomainCls.showHideClashedResidues(),i.drawCls.draw(),t.setLogCmd("clashed residues show",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_clashedNo","click",(function(s){let i=e.icn3d;i.bHideClashed=!0,t.setClashedResidues(),i.annoDomainCls.showHideClashedResidues(),i.drawCls.draw(),t.setLogCmd("clashed residues hide",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_fullstru","click",(function(s){let i=e.icn3d;t.setLogCmd("show all",!0),i.selectionCls.showAll()})),e.myEventCls.onIds("#"+e.pre+"mn2_selectcomplement","click",(function(s){let i=e.icn3d;Object.keys(i.hAtoms).lengthnon-selected"+n),$("#"+e.pre+"atomsCustomSphere2").length&&$("#"+e.pre+"atomsCustomSphere2").html(" "+n),e.htmlCls.dialogCls.openDlg("dl_aroundsphere","Select a sphere around a set of residues"),i.bSphereCalc=!1,$("#"+e.pre+"atomsCustomSphere").resizable(),$("#"+e.pre+"atomsCustomSphere2").resizable()})),e.myEventCls.onIds(["#"+e.pre+"mn2_select_chain","#"+e.pre+"definedSets"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_select_chain","Select Structure/Chain/Custom Selection")}))}clickMenu3(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsRibbon","#"+e.pre+"tool_proteinsRibbon"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","ribbon"),t.setLogCmd("style proteins ribbon",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsStrand","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","strand"),t.setLogCmd("style proteins strand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsCylinder","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","cylinder and plate"),t.setLogCmd("style proteins cylinder and plate",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","schematic"),t.setLogCmd("style proteins schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsCalpha","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","c alpha trace"),t.setLogCmd("style proteins c alpha trace",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsBackbone","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","backbone"),t.setLogCmd("style proteins backbone",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsBfactor","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","b factor tube"),t.setLogCmd("style proteins b factor tube",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsLines","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","lines"),t.setLogCmd("style proteins lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsStick","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","stick"),t.setLogCmd("style proteins stick",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsBallstick","#"+e.pre+"tool_proteinsBallstick"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","ball and stick"),t.setLogCmd("style proteins ball and stick",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsSphere","#"+e.pre+"tool_proteinsSphere"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","sphere"),t.setLogCmd("style proteins sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsNo","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","nothing"),t.setLogCmd("style proteins nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecLines","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","lines2"),t.setLogCmd("style sidec lines2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecStick","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","stick2"),t.setLogCmd("style sidec stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","ball and stick2"),t.setLogCmd("style sidec ball and stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","sphere2"),t.setLogCmd("style sidec sphere2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecNo","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","nothing"),t.setLogCmd("style sidec nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseLines","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","lines2"),t.setLogCmd("style ntbase lines2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseStick","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","stick2"),t.setLogCmd("style ntbase stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","ball and stick2"),t.setLogCmd("style ntbase ball and stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","sphere2"),t.setLogCmd("style ntbase sphere2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseNo","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","nothing"),t.setLogCmd("style ntbase nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclCartoon","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","nucleotide cartoon"),t.setLogCmd("style nucleotides nucleotide cartoon",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclBackbone","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","backbone"),t.setLogCmd("style nucleotides backbone",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","schematic"),t.setLogCmd("style nucleotides schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclPhos","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","o3 trace"),t.setLogCmd("style nucleotides o3 trace",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclLines","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","lines"),t.setLogCmd("style nucleotides lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclStick","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","stick"),t.setLogCmd("style nucleotides stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","ball and stick"),t.setLogCmd("style nucleotides ball and stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","sphere"),t.setLogCmd("style nucleotides sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclNo","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","nothing"),t.setLogCmd("style nucleotides nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligLines","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","lines"),t.setLogCmd("style chemicals lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligStick","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","stick"),t.setLogCmd("style chemicals stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","ball and stick"),t.setLogCmd("style chemicals ball and stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","schematic"),t.setLogCmd("style chemicals schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","sphere"),t.setLogCmd("style chemicals sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligNo","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","nothing"),t.setLogCmd("style chemicals nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_glycansCartYes","click",(function(s){let i=e.icn3d;i.bGlycansCartoon=!0,i.drawCls.draw(),t.setLogCmd("glycans cartoon yes",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_glycansCartNo","click",(function(s){let i=e.icn3d;i.bGlycansCartoon=!1,i.drawCls.draw(),t.setLogCmd("glycans cartoon no",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_hydrogensYes","click",(function(s){let i=e.icn3d;i.showInterCls.showHydrogens(),i.drawCls.draw(),t.setLogCmd("hydrogens",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_hydrogensNo","click",(function(s){let i=e.icn3d;i.showInterCls.hideHydrogens(),i.drawCls.draw(),t.setLogCmd("set hydrogens off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","sphere"),t.setLogCmd("style ions sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsDot","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","dot"),t.setLogCmd("style ions dot",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsNo","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","nothing"),t.setLogCmd("style ions nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("water","sphere"),t.setLogCmd("style water sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterDot","click",(function(s){e.icn3d.setOptionCls.setStyle("water","dot"),t.setLogCmd("style water dot",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterNo","click",(function(s){e.icn3d.setOptionCls.setStyle("water","nothing"),t.setLogCmd("style water nothing",!0)}))}clickMenu4(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrum","click",(function(s){e.icn3d.setOptionCls.setOption("color","spectrum"),t.setLogCmd("color spectrum",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumChain","click",(function(s){e.icn3d.setOptionCls.setOption("color","spectrum for chains"),t.setLogCmd("color spectrum for chains",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumAcrossSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorSpectrumAcross").length&&$("#"+e.pre+"atomsCustomColorSpectrumAcross").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorspectrumacrosssets","Please select sets to apply spectrum color for sets"),$("#"+e.pre+"atomsCustomColorSpectrumAcross").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorSpectrum").length&&$("#"+e.pre+"atomsCustomColorSpectrum").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorspectrumbysets","Please select sets to apply spectrum color for residues"),$("#"+e.pre+"atomsCustomColorSpectrum").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbowAcrossSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorRainbowAcross").length&&$("#"+e.pre+"atomsCustomColorRainbowAcross").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorrainbowacrosssets","Please select sets to apply rainbow color for sets"),$("#"+e.pre+"atomsCustomColorRainbowAcross").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbowSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorRainbow").length&&$("#"+e.pre+"atomsCustomColorRainbow").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorrainbowbysets","Please select sets to apply rainbow color for residues"),$("#"+e.pre+"atomsCustomColorRainbow").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbow","click",(function(s){e.icn3d.setOptionCls.setOption("color","rainbow"),t.setLogCmd("color rainbow",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrRainbowChain","#"+e.pre+"tool_clrRainbowChain"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","rainbow for chains"),t.setLogCmd("color rainbow for chains",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrChain","#"+e.pre+"tool_clrChain"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","chain"),t.setLogCmd("color chain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrStructure","click",(function(s){e.icn3d.setOptionCls.setOption("color","structure"),t.setLogCmd("color structure",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrdomain","click",(function(s){e.icn3d.setOptionCls.setOption("color","domain"),t.setLogCmd("color domain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrsets","click",(function(s){e.icn3d.setOptionCls.setOption("color","defined sets"),t.setLogCmd("color defined sets",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrSSGreen","#"+e.pre+"tool_clrSSGreen"],"click",(function(s){let i=e.icn3d;i.sheetcolor="green",i.setOptionCls.setOption("color","secondary structure green"),t.setLogCmd("color secondary structure green",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSSYellow","click",(function(s){let i=e.icn3d;i.sheetcolor="yellow",i.setOptionCls.setOption("color","secondary structure yellow"),t.setLogCmd("color secondary structure yellow",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSSSpectrum","click",(function(s){e.icn3d.setOptionCls.setOption("color","secondary structure spectrum"),t.setLogCmd("color secondary structure spectrum",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrResidue","click",(function(s){e.icn3d.setOptionCls.setOption("color","residue"),t.setLogCmd("color residue",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrResidueCustom","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_rescolorfile","Please input the file on residue colors")})),e.myEventCls.onIds("#"+e.pre+"reload_rescolorfile","click",(function(s){let i=e.icn3d;s.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"rescolorfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let s=new FileReader;s.onload=function(s){let n=s.target.result.replace(/#/g,"");i.customResidueColors=JSON.parse(n);for(let t in i.customResidueColors)i.customResidueColors[t.toUpperCase()]=e.parasCls.thr("#"+i.customResidueColors[t]);i.setOptionCls.setOption("color","residue custom"),t.setLogCmd("color residue custom | "+n,!0)},s.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_customcolorfile","click",(function(s){let i=e.icn3d;s.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.startColor=$("#"+e.pre+"startColor").val(),i.midColor=$("#"+e.pre+"midColor").val(),i.endColor=$("#"+e.pre+"endColor").val();let n=t.setLegendHtml();$("#"+e.pre+"dl_legend_html").html(n),e.htmlCls.dialogCls.openDlg("dl_legend","Color range"),i.addTrackCls.setCustomFile("color",i.startColor,i.midColor,i.endColor)})),e.myEventCls.onIds("#"+e.pre+"mn6_customref","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_customref","Set custom reference numbers")})),e.myEventCls.onIds("#"+e.pre+"reload_customreffile","click",(function(s){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=$("#"+i.pre+"cstreffile")[0].files[0];if(n){e.utilsCls.checkFileAPI();let s=new FileReader;s.onload=async function(e){let s=e.target.result;await i.refnumCls.parseCustomRefFile(s),s=s.replace(/\r/g,"").replace(/\n/g,"\\n"),t.setLogCmd("custom refnum | "+s,!0)},s.readAsText(n)}else alert("Please select a file before clicking 'Apply'")})),e.myEventCls.onIds("#"+e.pre+"remove_legend","click",(function(s){e.icn3d,s.preventDefault(),$("#"+e.pre+"legend").hide(),t.setLogCmd("remove legend",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_customtubefile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.addTrackCls.setCustomFile("tube")})),e.myEventCls.onIds("#"+e.pre+"mn4_clrCharge","click",(function(s){e.icn3d.setOptionCls.setOption("color","charge"),t.setLogCmd("color charge",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrHydrophobic","click",(function(s){e.icn3d.setOptionCls.setOption("color","hydrophobic"),t.setLogCmd("color hydrophobic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrNormalizedHP","click",(function(s){e.icn3d.setOptionCls.setOption("color","normalized hydrophobic"),t.setLogCmd("color normalized hydrophobic",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrAtom","#"+e.pre+"tool_clrAtom"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","atom"),t.setLogCmd("color atom",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrBfactor","click",(function(s){e.icn3d.setOptionCls.setOption("color","b factor"),t.setLogCmd("color b factor",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrConfidence","click",(function(s){e.icn3d.setOptionCls.setOption("color","confidence"),t.setLogCmd("color confidence",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIgstrand","click",(function(s){e.icn3d.setOptionCls.setOption("color","ig strand"),t.setLogCmd("color ig strand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIgproto","click",(function(s){e.icn3d.setOptionCls.setOption("color","ig protodomain"),t.setLogCmd("color ig protodomain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrArea","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_colorbyarea","Color based on residue's solvent accessibility")})),e.myEventCls.onIds("#"+e.pre+"applycolorbyarea","click",(function(s){let i=e.icn3d;i.midpercent=$("#"+e.pre+"midpercent").val(),i.setOptionCls.setOption("color","area"),t.setLogCmd("color area | "+i.midpercent,!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrBfactorNorm","click",(function(s){e.icn3d.setOptionCls.setOption("color","b factor percentile"),t.setLogCmd("color b factor percentile",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIdentity","click",(function(s){e.icn3d.setOptionCls.setOption("color","identity"),t.setLogCmd("color identity",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrConserved","click",(function(s){e.icn3d.setOptionCls.setOption("color","conservation"),t.setLogCmd("color conservation",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrCustom","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_clr","Color picker")})),$(document).on("click",".icn3d-color-rad-text",(function(s){let i=e.icn3d;s.stopImmediatePropagation();let n=$(this).attr("color");i.setOptionCls.setOption("color",n),t.setLogCmd("color "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSave","click",(function(s){e.icn3d.setOptionCls.saveColor(),t.setLogCmd("save color",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrApplySave","click",(function(s){e.icn3d.setOptionCls.applySavedColor(),t.setLogCmd("apply saved color",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_styleSave","click",(function(s){e.icn3d.setOptionCls.saveStyle(),t.setLogCmd("save style",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_styleApplySave","click",(function(s){e.icn3d.setOptionCls.applySavedStyle(),t.setLogCmd("apply saved style",!0)}))}clickMenu5(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds("#"+e.pre+"mn5_neighborsYes","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.applyMapCls.removeLastSurface(),i.applyMapCls.applySurfaceOptions(),i.bRender&&i.drawCls.render(),t.setLogCmd("set surface neighbors on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_neighborsNo","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.applyMapCls.removeLastSurface(),i.applyMapCls.applySurfaceOptions(),i.bRender&&i.drawCls.render(),t.setLogCmd("set surface neighbors off",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn5_surfaceVDW","#"+e.pre+"tool_surfaceVDW"],"click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","Van der Waals surface"),t.setLogCmd("set surface Van der Waals surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceSAS","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","solvent accessible surface"),t.setLogCmd("set surface solvent accessible surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceMolecular","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","molecular surface"),t.setLogCmd("set surface molecular surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceVDWContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","Van der Waals surface with context"),t.setLogCmd("set surface Van der Waals surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceSASContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","solvent accessible surface with context"),t.setLogCmd("set surface solvent accessible surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceMolecularContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","molecular surface with context"),t.setLogCmd("set surface molecular surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceNo","click",(function(s){e.icn3d.setOptionCls.setOption("surface","nothing"),t.setLogCmd("set surface nothing",!0)})),$(document).on("click","."+e.pre+"mn5_opacity",(function(s){let i=e.icn3d;i.transparentRenderOrder=!1;let n=$(this).attr("v");i.setOptionCls.setOption("opacity",n),t.setLogCmd("set surface opacity "+n,!0)})),$(document).on("click","."+e.pre+"mn5_opacityslow",(function(s){let i=e.icn3d;i.transparentRenderOrder=!0;let n=$(this).attr("v");i.setOptionCls.setOption("opacity",n),t.setLogCmd("set surface2 opacity "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_wireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("wireframe","yes"),t.setLogCmd("set surface wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_wireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("wireframe","no"),t.setLogCmd("set surface wireframe off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_elecmap2fofc","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_elecmap2fofc","2Fo-Fc Electron Density Map")})),e.myEventCls.onIds("#"+e.pre+"mn5_elecmapfofc","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_elecmapfofc","Fo-Fc Electron Density Map")})),e.myEventCls.onIds(["#"+e.pre+"mn5_elecmapNo","#"+e.pre+"elecmapNo2","#"+e.pre+"elecmapNo3","#"+e.pre+"elecmapNo4","#"+e.pre+"elecmapNo5"],"click",(function(s){e.icn3d.setOptionCls.setOption("map","nothing"),t.setLogCmd("setoption map nothing",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphimapNo","#"+e.pre+"phimapNo","#"+e.pre+"phiurlmapNo","#"+e.pre+"mn1_phimapNo"],"click",(function(s){e.icn3d.setOptionCls.setOption("phimap","nothing"),t.setLogCmd("setoption phimap nothing",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphimapNo2","#"+e.pre+"phimapNo2","#"+e.pre+"phiurlmapNo2"],"click",(function(s){e.icn3d.setOptionCls.setOption("phisurface","nothing"),t.setLogCmd("setoption phisurface nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"applymap2fofc","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"sigma2fofc").val());await i.densityCifParserCls.densityCifParser(i.inputid,"2fofc",n),t.setLogCmd("set map 2fofc sigma "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applymapfofc","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"sigmafofc").val());await i.densityCifParserCls.densityCifParser(i.inputid,"fofc",sigma2fofc),t.setLogCmd("set map fofc sigma "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_mapwireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("mapwireframe","yes"),t.setLogCmd("set map wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_mapwireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("mapwireframe","no"),t.setLogCmd("set map wireframe off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmap","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_emmap","EM Density Map")})),e.myEventCls.onIds(["#"+e.pre+"mn5_emmapNo","#"+e.pre+"emmapNo2"],"click",(function(s){e.icn3d.setOptionCls.setOption("emmap","nothing"),t.setLogCmd("setoption emmap nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"applyemmap","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"empercentage").val());await i.densityCifParserCls.densityCifParser(i.inputid,"em",n,i.emd),t.setLogCmd("set emmap percentage "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmapwireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("emmapwireframe","yes"),t.setLogCmd("set emmap wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmapwireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("emmapwireframe","no"),t.setLogCmd("set emmap wireframe off",!0)}))}clickMenu6(){let e=this.icn3dui,t=e.icn3d;if(e.bNode)return;let s=this;e.myEventCls.onIds("#"+e.pre+"mn6_assemblyYes","click",(function(t){let i=e.icn3d;i.bAssembly=!0,s.setLogCmd("set assembly on",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_assemblyNo","click",(function(t){let i=e.icn3d;i.bAssembly=!1,s.setLogCmd("set assembly off",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefYes","click",(async function(t){let i=e.icn3d;i.bRunRefnumAgain=!0,s.setLogCmd("ig refnum on",!0),i.bAnnoShown||await i.showAnnoCls.showAnnotations();await i.annotationCls.setAnnoTabIg(!0),i.bRunRefnumAgain=!1})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefTpl","click",(async function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_igrefTpl","Choose an Ig template")})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefTpl_apply","click",(async function(t){e.icn3d,e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"refTpl").val();await s.setIgTemplate(i),s.setLogCmd("ig template "+i,!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_alignrefTpl","click",(async function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_alignrefTpl","Align with an Ig template")})),e.myEventCls.onIds("#"+e.pre+"mn6_alignrefTpl_apply","click",(async function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"refTpl2").val(),l=e.hashUtilsCls.cloneHash(i.hAtoms),r=e.htmlCls.baseUrl+"icn3d/refpdb/"+n+".pdb";await i.pdbParserCls.downloadUrl(r,"pdb",void 0,n),s.setLogCmd("load url "+r+" | type pdb",!0);let o=n.replace(/_/g,"").substr(0,4),a=i.structures[o][0];i.hAtoms=e.hashUtilsCls.unionHash(l,i.chains[a]),e.cfg.aligntool="tmalign",await i.realignParserCls.realignOnStructAlign(),s.setLogCmd("realign on tmalign",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefNo","click",(async function(t){let i=e.icn3d;s.setLogCmd("ig refnum off",!0),await i.refnumCls.hideIgRefNum()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelAtoms","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addAtomLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add atom labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelElements","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addAtomLabels(i.hAtoms,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add element labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelResidues","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add residue labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelResnum","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms,void 0,void 0,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add residue number labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelRefnum","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms,void 0,void 0,void 0,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add reference number labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelIg","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addIgLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add ig labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelChains","click",(function(t){let i=e.icn3d;i.analysisCls.addChainLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add chain labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelTermini","click",(function(t){let i=e.icn3d;i.analysisCls.addTerminiLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add terminal labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelYes","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_addlabel","Add custom labels by selection"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelSelection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_addlabelselection","Add custom labels by the selected")})),e.myEventCls.onIds("#"+e.pre+"mn6_labelColor","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_labelColor","Change color for all labels")})),e.myEventCls.onIds(["#"+e.pre+"mn2_saveselection","#"+e.pre+"tool_saveselection"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_saveselection","Save the selected")})),e.myEventCls.onIds(["#"+e.pre+"mn6_addlabelNo","#"+e.pre+"removeLabels"],"click",(function(t){let i=e.icn3d;i.labelcolor=void 0,i.pickpair=!1;s.setLogCmd("set labels off",!0);for(let e in i.labels)i.labels[e]=[];i.drawCls.draw()})),$(document).on("click","."+e.pre+"mn6_labelscale",(function(t){let i=e.icn3d,n=$(this).attr("v");i.labelScale=n,i.drawCls.draw(),s.setLogCmd("set label scale "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_distanceYes","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_distance","Measure the distance of atoms"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0,s.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distTwoSets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_disttwosets","Measure the distance between two sets"),s.setSetsMenus("atomsCustomDist"),i.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distManySets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_distmanysets","Measure the pairwise distances among many sets"),s.setSetsMenus("atomsCustomDistTable"),i.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_angleManySets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_anglemanysets","Measure the pairwise angles among many sets"),s.setSetsMenus("atomsCustomAngleTable"),i.bMeasureAngle=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distanceNo","click",(function(t){let i=e.icn3d;i.pickpair=!1;s.setLogCmd("set lines off",!0),i.labels.distance=[],i.lines.distance=[],i.distPnts=[],i.pk=2,i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn5_cartoonshape","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_cartoonshape","Draw cartoon for a set");s.setSetsMenus("cartoonshape",!0),i.bCartoonshape=!0})),e.myEventCls.onIds("#"+e.pre+"mn5_linebtwsets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_linebtwsets","Draw a line between two sets"),s.setSetsMenus("linebtwsets"),i.bLinebtwsets=!0})),e.myEventCls.onIds(["#"+e.pre+"mn2_selectedcenter","#"+e.pre+"zoomin_selection","#"+e.pre+"tool_selectedcenter"],"click",(function(t){let i=e.icn3d;i.transformCls.zoominSelection(),i.drawCls.draw(),s.setLogCmd("zoom selection",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_center","click",(function(t){let i=e.icn3d;i.applyCenterCls.centerSelection(),i.drawCls.draw(),s.setLogCmd("center selection",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_resetOrientation","#"+e.pre+"resetOrientation","#"+e.pre+"tool_resetOrientation"],"click",(function(t){let i=e.icn3d;i.transformCls.resetOrientation(),i.drawCls.draw(),s.setLogCmd("reset orientation",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_chemicalbindingshow","#"+e.pre+"chemicalbindingshow"],"click",(function(t){e.icn3d.setOptionCls.setOption("chemicalbinding","show"),s.setLogCmd("set chemicalbinding show",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_chemicalbindinghide","#"+e.pre+"chemicalbindinghide"],"click",(function(t){e.icn3d.setOptionCls.setOption("chemicalbinding","hide"),s.setLogCmd("set chemicalbinding hide",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_sidebyside","click",(function(t){let i=e.icn3d;if(i.bInputfile)return void alert("Side-by-Side does NOT work when the input is from a local file.");let n=i.shareLinkCls.shareLinkUrl(void 0);n=n.replace("icn3d/full.html?","icn3d/full2.html?"),n=n.replace("icn3d/?","icn3d/full2.html?"),n+="&closepopup=1";let l=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(n,l),s.setLogCmd("side by side | "+n,!0)})),$(document).on("click","#"+e.pre+"mn2_translate",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_translate","Translate the X,Y,Z coordinates of the structure")})),$(document).on("click","#"+e.pre+"mn6_angleTwoSets",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_angle","Measure the angle between two vectors")})),$(document).on("click","#"+e.pre+"mn2_matrix",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_matrix","Apply matrix to the X,Y,Z coordinates of the structure")})),$(document).on("click","."+e.pre+"mn6_rotate",(function(t){let i=e.icn3d,n=$(this).attr("v").toLowerCase(),l=n.split(" ")[1];s.setLogCmd(n,!0),i.bStopRotate=!1,i.transformCls.rotateCount=0,i.transformCls.rotateCountMax=6e3,i.ROT_DIR=l,i.resizeCanvasCls.rotStruc(l)})),$(document).on("click","."+e.pre+"mn6_rotate90",(function(t){let i,n=e.icn3d,l=$(this).attr("v").toLowerCase(),r=l.split(" ")[1];s.setLogCmd(l,!0),"x"==r?i=new THREE.Vector3(1,0,0):"y"==r?i=new THREE.Vector3(0,1,0):"z"==r&&(i=new THREE.Vector3(0,0,1));let o=.5*Math.PI;n.transformCls.setRotation(i,o)})),e.myEventCls.onIds("#"+e.pre+"mn6_cameraPers","click",(function(t){e.icn3d.setOptionCls.setOption("camera","perspective"),s.setLogCmd("set camera perspective",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_cameraOrth","click",(function(t){e.icn3d.setOptionCls.setOption("camera","orthographic"),s.setLogCmd("set camera orthographic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdBlack","click",(function(t){e.icn3d.setStyleCls.setBackground("black")})),e.myEventCls.onIds("#"+e.pre+"tool_bkgd","click",(function(t){let s=e.icn3d;"black"==s.opts.background?s.setStyleCls.setBackground("white"):s.setStyleCls.setBackground("black")})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdGrey","click",(function(t){e.icn3d.setStyleCls.setBackground("grey")})),e.myEventCls.onIds(["#"+e.pre+"mn6_bkgdWhite","#"+e.pre+"tool_bkgdWhite"],"click",(function(t){e.icn3d.setStyleCls.setBackground("white")})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdTransparent","click",(function(t){e.icn3d.setStyleCls.setBackground("transparent")})),e.myEventCls.onIds("#"+e.pre+"mn6_showfogYes","click",(function(t){let i=e.icn3d;i.opts.fog="yes",i.fogCls.setFog(!0),i.drawCls.draw(),s.setLogCmd("set fog on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showfogNo","click",(function(t){let i=e.icn3d;i.opts.fog="no",i.fogCls.setFog(!0),i.drawCls.draw(),s.setLogCmd("set fog off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showslabYes","click",(function(t){e.icn3d.setOptionCls.setOption("slab","yes"),s.setLogCmd("set slab on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showslabNo","click",(function(t){e.icn3d.setOptionCls.setOption("slab","no"),s.setLogCmd("set slab off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisYes","click",(function(t){e.icn3d.setOptionCls.setOption("axis","yes"),s.setLogCmd("set axis on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisSel","click",(function(t){let i=e.icn3d;i.pc1=!0,i.axesCls.setPc1Axes(),s.setLogCmd("set pc1 axis",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisNo","click",(function(t){let i=e.icn3d;i.pc1=!1,i.axes=[],i.setOptionCls.setOption("axis","no"),s.setLogCmd("set axis off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_symmetry","click",(async function(t){let s=e.icn3d;s.bAxisOnly=!1,await s.symdCls.retrieveSymmetry(Object.keys(s.structures)[0])})),e.myEventCls.onIds("#"+e.pre+"mn6_symd","click",(async function(t){let i=e.icn3d;i.bAxisOnly=!1,await i.symdCls.retrieveSymd(),i.bSymd=!0,s.setLogCmd("symd symmetry",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_clear_sym","click",(function(t){let i=e.icn3d;i.symdArray=[],i.drawCls.draw(),s.setLogCmd("clear symd symmetry",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_axes_only","click",(function(t){let i=e.icn3d;i.bAxisOnly=!0,i.drawCls.draw(),s.setLogCmd("show axis",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_area","click",(function(t){e.icn3d.analysisCls.calculateArea(),s.setLogCmd("area",!0)})),e.myEventCls.onIds("#"+e.pre+"applysymmetry","click",(function(t){let i=e.icn3d;i.bAxisOnly=!1;let n=$("#"+e.pre+"selectSymmetry").val();i.symmetrytitle="none"===n?void 0:n,i.drawCls.draw(),s.setLogCmd("symmetry "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"clearsymmetry","click",(function(t){let i=e.icn3d;i.symmetrytitle=void 0,i.drawCls.draw(),s.setLogCmd("symmetry none",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_hbondsYes","#"+e.pre+"hbondsYes"],"click",(function(t){let i=e.icn3d;s.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomHbond").length&&$("#"+e.pre+"atomsCustomHbond").html(" "+n),$("#"+e.pre+"atomsCustomHbond2").length&&$("#"+e.pre+"atomsCustomHbond2").html(" "+n),e.htmlCls.dialogCls.openDlg("dl_hbonds","Hydrogen bonds/interactions between two sets of atoms"),i.bHbondCalc=!1,$("#"+e.pre+"atomsCustomHbond").resizable(),$("#"+e.pre+"atomsCustomHbond2").resizable()})),e.myEventCls.onIds(["#"+e.pre+"mn6_contactmap"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_contact","Set contact map")})),e.myEventCls.onIds(["#"+e.pre+"mn6_DSSP"],"click",(async function(t){let i=e.icn3d;s.setLogCmd("set dssp sse",!0),await i.pdbParserCls.applyCommandDssp(),i.bResetAnno=!0,i.bAnnoShown&&(await i.showAnnoCls.showAnnotations(),i.annotationCls.resetAnnoTabAll())})),e.myEventCls.onIds("#"+e.pre+"mn6_hbondsNo","click",(function(t){let s=e.icn3d;s.showInterCls.hideHbondsContacts(),s.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerYes","click",(function(t){let i=e.icn3d;i.threeDPrintCls.addStabilizer(),i.threeDPrintCls.prepareFor3Dprint(),s.setLogCmd("stabilizer",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerNo","click",(function(t){let i=e.icn3d;s.setLogCmd("set stabilizer off",!0),i.threeDPrintCls.hideStabilizer(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerOne","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_stabilizer","Add One Stabilizer"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerRmOne","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_stabilizer_rm","Remove One Stabilizer"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn1_thicknessSet","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_thickness","Set Thickness for 3D Printing")})),e.myEventCls.onIds("#"+e.pre+"mn3_setThickness","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_thickness2","Style Preferences")})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsYes","click",(function(t){let i=e.icn3d;s.setLogCmd("disulfide bonds",!0),i.showInterCls.showSsbonds()})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsExport","click",(function(t){e.icn3d.viewInterPairsCls.exportSsbondPairs(),s.setLogCmd("export disulfide bond pairs",!1)})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsNo","click",(function(t){let i=e.icn3d;i.opts.ssbonds="no";s.setLogCmd("set disulfide bonds off",!0),i.lines.ssbond=[],i.setOptionCls.setStyle("sidec","nothing")})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsYes","click",(function(t){let i=e.icn3d;s.setLogCmd("cross linkage",!0),i.showInterCls.showClbonds()})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsExport","click",(function(t){e.icn3d.viewInterPairsCls.exportClbondPairs(),s.setLogCmd("export cross linkage pairs",!1)})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsNo","click",(function(t){let i=e.icn3d;i.opts.clbonds="no";s.setLogCmd("set cross linkage off",!0),i.lines.clbond=[],i.setOptionCls.setStyle("sidec","nothing")})),$("#"+e.pre+"newvs2").on("submit",(function(){let s=t.saveFileCls.getAtomPDB(t.hAtoms,void 0,void 0,void 0,void 0,void 0,void 0,!0);return $("#"+e.pre+"pdbstr").val(s),!0})),$("#"+e.pre+"fssubmit").on("click",(function(){let e=t.saveFileCls.getAtomPDB(t.hAtoms),s=window.open("","_blank");s.document.body.innerHTML="\n\nLoading Foldseek\n\n\n\n
    Foldseek is loading...
    \n",$.ajax({url:"https://search.foldseek.com/api/ticket",type:"POST",data:{q:e,database:["afdb50","afdb-swissprot","gmgcl_id","pdb100","afdb-proteome","mgnify_esm30"],mode:"3diaa"},dataType:"text",success:function(e){s.location="https://search.foldseek.com/queue/"+JSON.parse(e).id},error:function(e,t,s){console.log("Error in submitting data to Foldseek...")}})})),e.myEventCls.onIds("#"+e.pre+"jn_copy","click",(function(t){e.icn3d;let s=$("#"+e.pre+"jn_commands").val();navigator.clipboard.writeText(s)}))}setLogCmd(e,t,s){var i=this.icn3dui,n=i.icn3d;if(""===e.trim())return!1;let l=e.indexOf("|||");-1!==l&&(e=e.substr(0,l));let r={};if(n.quaternion||(n._zoomFactor=1,n.mouseChange=new THREE.Vector2(0,0),n.quaternion=new THREE.Quaternion(0,0,0,1)),r.factor=n._zoomFactor,r.mouseChange=n.mouseChange,r.quaternion={},r.quaternion._x=parseFloat(n.quaternion._x).toPrecision(5),r.quaternion._y=parseFloat(n.quaternion._y).toPrecision(5),r.quaternion._z=parseFloat(n.quaternion._z).toPrecision(5),r.quaternion._w=parseFloat(n.quaternion._w).toPrecision(5),t&&n.bAddCommands)if(n.STATENUMBER "+n.logs.join("\n> ")+"\n> "),$("#"+i.pre+"logtext")[0]&&$("#"+i.pre+"logtext").scrollTop($("#"+i.pre+"logtext")[0].scrollHeight)}n.setStyleCls.adjustIcon()}}class d{constructor(e){this.icn3dui=e}getLink(e,t,s,i){return this.icn3dui.htmlCls.setHtmlCls.getLink(e,t,s,i)}getMenuText(e,t,s,i,n){return this.icn3dui.htmlCls.setHtmlCls.getMenuText(e,t,s,i,n)}getMenuUrl(e,t,s,i,n){return this.icn3dui.htmlCls.setHtmlCls.getMenuUrl(e,t,s,i,n)}getMenuSep(){return this.icn3dui.htmlCls.setHtmlCls.getMenuSep()}getLinkWrapper(e,t,s,i,n,l){let r=this.icn3dui;return r.icn3d,r.htmlCls.setHtmlCls.getLinkWrapper(e,t,s,i,n,l)}getLinkWrapper2(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.setHtmlCls.getLinkWrapper2(e,t,s,i,n)}getRadio(e,t,s,i,n,l){return this.icn3dui.htmlCls.setHtmlCls.getRadio(e,t,s,i,n,l)}getRadClr(e,t,s,i,n,l,r){return this.icn3dui.htmlCls.setHtmlCls.getRadioColor(e,t,s,i,n,l,r)}setTopMenusHtml(e,t,s){let i=this.icn3dui;if(i.bNode)return"";let n="black"==i.htmlCls.opts.background?i.htmlCls.GREYD:"black",l="";l+="
    ",l+=i.htmlCls.divStr+"popup' class='icn3d-text icn3d-popup'>
    ",l+=this.setReplayHtml(),l+="\x3c!--https://forum.jquery.com/topic/looking-for-a-jquery-horizontal-menu-bar--\x3e",l+=i.htmlCls.divStr+"mnlist' style='position:absolute; z-index:999; float:left; display:table-row; margin-top: -2px;'>",l+="";let r='",l+=r+this.setMenu2()+"",l+=r+this.setMenu2b()+"",l+=r+this.setMenu3()+"",l+=r+this.setMenu4()+"",l+=r+this.setMenu5()+"",l+=r+this.setMenu6()+"",i.htmlCls.shownMenus=i.hashUtilsCls.cloneHash(i.htmlCls.simpleMenus),l+=r+"
    "+t,l+="
    "+s,l+=r+'
    '+i.htmlCls.space2+'Toolbar '+i.htmlCls.space2+'
    ",l+=r+'
    '+i.htmlCls.space2+' ?
    ',l+="
    ",l+="
    ';if(l+=r+this.setMenu1()+"
    ",l+="",l+=this.setTools(),l+=i.htmlCls.divStr+"title' class='icn3d-commandTitle' style='font-size:1.2em; font-weight:normal; position:absolute; z-index:1; float:left; display:table-row; margin: 85px 0px 0px 5px; color:"+n+"; width:"+i.htmlCls.WIDTH+"px'>",l+=i.htmlCls.divStr+"viewer' style='position:relative; width:100%; height:100%; background-color: "+i.htmlCls.GREYD+";'>",l+=i.htmlCls.divStr+"mnLogSection'>",l+="
    ",l+=" ",void 0===i.cfg.mmtfid){let e="top:180px; font-size: 1.8em;";l+=i.htmlCls.divStr+"wait' style='position:absolute; left:50px; "+e+" color: #444444;'>Loading data..."}l+="Your browser does not support WebGL.",(void 0===i.cfg.showcommand||i.cfg.showcommand)&&(l+=this.setLogWindow()),l+="",l+="",l+=i.htmlCls.setDialogCls.setDialogs(),l+=i.htmlCls.setDialogCls.setCustomDialogs(),$("#"+e).html(l),$("accordion").accordion({collapsible:!0,active:!1,heightStyle:"content"}),$("accordion div").removeClass("ui-accordion-content ui-corner-all ui-corner-bottom ui-widget-content"),$(".icn3d-mn-item").menu({position:{my:"left top",at:"right top"}}),$(".icn3d-mn-item").hover((function(){}),(function(){$("accordion").accordion("option","active","none")})),$("#"+i.pre+"accordion1").hover((function(){$("#"+i.pre+"accordion1 div").css("display","block")}),(function(){$("#"+i.pre+"accordion1 div").css("display","none")})),$("#"+i.pre+"accordion2").hover((function(){$("#"+i.pre+"accordion2 div").css("display","block")}),(function(){$("#"+i.pre+"accordion2 div").css("display","none")})),$("#"+i.pre+"accordion2b").hover((function(){$("#"+i.pre+"accordion2b div").css("display","block")}),(function(){$("#"+i.pre+"accordion2b div").css("display","none")})),$("#"+i.pre+"accordion3").hover((function(){$("#"+i.pre+"accordion3 div").css("display","block")}),(function(){$("#"+i.pre+"accordion3 div").css("display","none")})),$("#"+i.pre+"accordion4").hover((function(){$("#"+i.pre+"accordion4 div").css("display","block")}),(function(){$("#"+i.pre+"accordion4 div").css("display","none")})),$("#"+i.pre+"accordion5").hover((function(){$("#"+i.pre+"accordion5 div").css("display","block")}),(function(){$("#"+i.pre+"accordion5 div").css("display","none")})),$("#"+i.pre+"accordion6").hover((function(){$("#"+i.pre+"accordion6 div").css("display","block")}),(function(){$("#"+i.pre+"accordion6 div").css("display","none")}))}setTopMenusHtmlMobile(e,t,s){let i=this.icn3dui;if(i.bNode)return"";let n="black"==i.htmlCls.opts.background?i.htmlCls.GREYD:"black",l="";if(l+="
    ",l+=i.htmlCls.divStr+"popup' class='icn3d-text icn3d-popup'>
    ",l+=this.setReplayHtml(),!i.utilsCls.isMobile()){let e=i.htmlCls.WIDTH-40+5;l+=i.htmlCls.buttonStr+"fullscreen' style='position:absolute; z-index:1999; display:block; padding:0px; margin: 12px 0px 0px "+e+"px; width:30px; height:34px; border-radius:4px; border:none; background-color:#f6f6f6;' title='Full screen'>",l+="",l+="",l+="",l+="",l+=""}l+="\x3c!--https://forum.jquery.com/topic/looking-for-a-jquery-horizontal-menu-bar--\x3e",l+=i.htmlCls.divStr+"mnlist' style='position:absolute; z-index:999; float:left; display:block; margin: 5px 0px 0px 5px;'>",l+="
    ",l+="",i.cfg.notebook?l+="

    ":l+="

    ",l+="
    ";let r="
  • File",l+=this.setMenu1_base(),l+=r+">Select",l+=this.setMenu2_base(),l+=r+">View",l+=this.setMenu2b_base(),l+=r+" id='"+i.pre+"style'>Style",l+=this.setMenu3_base(),l+=r+" id='"+i.pre+"color'>Color",l+=this.setMenu4_base(),l+=r+">Analysis",l+=this.setMenu5_base(),l+=r+">Help",l+=this.setMenu6_base(),i.htmlCls.shownMenus=i.hashUtilsCls.cloneHash(i.htmlCls.simpleMenus),l+="
  • "+t,l+="
    "+s,l+="
  • Alternate",l+="",l+="
  • ",l+="
    ",l+="
    ",l+="",l+=i.htmlCls.divStr+"title' class='icn3d-commandTitle' style='font-size:1.2em; font-weight:normal; position:absolute; z-index:1; float:left; display:block; margin: 12px 0px 0px 40px; color:"+n+"; width:"+(i.htmlCls.WIDTH-40).toString()+"px'>",l+=i.htmlCls.divStr+"viewer' style='position:relative; width:100%; height:100%; background-color: "+i.htmlCls.GREYD+";'>",l+=i.htmlCls.divStr+"mnLogSection'>",l+="
    ",l+="",void 0===i.cfg.mmtfid){let e="top:180px; font-size: 1.8em;";l+=i.htmlCls.divStr+"wait' style='position:absolute; left:50px; "+e+" color: #444444;'>Loading data..."}l+="Your browser does not support WebGL.",(void 0===i.cfg.showcommand||i.cfg.showcommand)&&(l+=this.setLogWindow()),l+="",l+="",l+=i.htmlCls.setDialogCls.setDialogs(),l+=i.htmlCls.setDialogCls.setCustomDialogs(),$("#"+e).html(l),$("accordion").accordion({collapsible:!0,active:!1,heightStyle:"content"}),$("accordion div").removeClass("ui-accordion-content ui-corner-all ui-corner-bottom ui-widget-content"),$(".icn3d-mn-item").menu({position:{my:"left top",at:"right top"}}),$(".icn3d-mn-item").hover((function(){}),(function(){$("accordion").accordion("option","active","none")})),$("#"+i.pre+"accordion0").hover((function(){$("#"+i.pre+"accordion0 div").css("display","block")}),(function(){$("#"+i.pre+"accordion0 div").css("display","none")}))}setReplayHtml(e){let t=this.icn3dui;if(t.bNode)return"";let s="";return s+=t.htmlCls.divStr+"replay' style='display:none; position:absolute; z-index:9999; top:"+parseInt(t.htmlCls.HEIGHT-100).toString()+"px; left:20px;'>",s+="
    ",s+='',s+="",s+='',s+='',s+="",s+="
    ",s+=t.htmlCls.divStr+"replay_menu' style='background-color:#DDDDDD; padding:3px; font-weight:bold;'>",s+=t.htmlCls.divStr+"replay_cmd' style='background-color:#DDDDDD; padding:3px; max-width:250px'>",s+="",s}setTools(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+=e.htmlCls.divStr+"selection' style='display:none;'>
    ",t+="",t+=this.setTools_base(),t+="
    ",t+="
    ",t}setButton(e,t,s,i,n){let l=this.icn3dui;return l.bNode?"":(n=void 0!==n?"color:"+n:"","
    ")}setIcon(e,t,s,i,n,l,r){let o=this.icn3dui;if(o.bNode)return"";let a,d=r?"color:#f8b84e; ":"color:#1c94c4; ",c=" background-color:#EEE; ",h="text"==e?"":"cursor:pointer;";return a=l?'
    '+i+"
    ":'',"link"==e?''+a+"":a}setTools_base(){if(this.icn3dui.bNode)return"";let e="",t="regular",s="",i="";return e+=s+this.setIcon(t,"tool_mmdbafid","Input PDB/MMDB/AlphaFold IDs","id",void 0,!0)+"",e+=s+this.setIcon(t,"tool_pdbfile","Input PDB Files (appendable)","file-alt")+"",e+=s+this.setIcon(t,"tool_sharelink","Get Share Link","link")+"",e+=s+this.setIcon(t,"saveimage","Save iCn3D PNG Image","camera")+"",e+=i+this.setIcon(t,"tool_definedsets","Defined Sets","object-group")+"",e+=s+this.setIcon(t,"tool_aroundsphere","Select by Distance","dot-circle")+"",e+=s+this.setIcon(t,"tool_saveselection","Save Selection as a Set","save")+"",e+=s+this.setIcon(t,"toggleHighlight","Toggle Highlight","highlighter")+"",e+=i+this.setIcon(t,"show_selected","View Selection","eye")+"",e+=s+this.setIcon(t,"tool_selectedcenter","Zoom in Selection","search-plus")+"",e+=s+this.setIcon(t,"alternate","Alternate the Structures by keying the letter 'a'","a",void 0,!0,!0)+"",e+=s+this.setIcon(t,"tool_resetOrientation","Reset Orientation","undo-alt")+"",e+=i+this.setIcon(t,"tool_proteinsRibbon","Style Ribbon for proteins","dna")+"",e+=s+this.setIcon(t,"tool_proteinsSphere","Style Sphere for proteins","volleyball-ball")+"",e+=s+this.setIcon(t,"tool_surfaceVDW","Show Van der Waals Surface","cloud")+"",e+=s+this.setIcon(t,"tool_bkgd","Toggle Background Color","adjust")+"",e+=i+this.setIcon(t,"tool_clrRainbowChain","Color Rainbow for Chains","rainbow")+"",e+=s+this.setIcon(t,"tool_clrSSGreen","Color by Secondary Structures","ring")+"",e+=s+this.setIcon(t,"tool_clrChain","Color by Chains","layer-group")+"",e+=s+this.setIcon(t,"tool_clrAtom","Color by Atoms","atom")+"",e+=i+this.setIcon(t,"tool_selectannotations","Sequences & Annotations","grip-lines")+"",e+=s+this.setIcon(t,"hbondsYes","Interactions","users")+"",e+=s+this.setIcon(t,"tool_delphi","Delphi Potentials","cloud-meatball")+"",e+=s+this.setIcon(t,"removeLabels","Remove Labels","remove-format")+"",e+=i+this.setIcon("link","tool-gallery","Gallery","image","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#gallery")+"",e+=s+this.setIcon("link","tool-video","Videos","file-video","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#videos")+"",e+=s+this.setIcon("link","tool-github","iCn3D GitHub","code","https://github.com/ncbi/icn3d")+"",e+=s+this.setIcon("link","tool-hints","Transform Hints","info-circle","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#useicn3d")+"",e+="",e}setTheme(e){let t,s,i,n,l,r=this.icn3dui;if(r.bNode)return"";r.htmlCls.themecolor=e,"orange"==e?(t="#e78f08",s="#f6a828",i="ui-bg_gloss-wave_35_f6a828_500x100.png",n="ui-icons_ef8c08_256x240.png",l="#eb8f00"):"black"==e?(t="#333333",s="#333333",i="ui-bg_gloss-wave_25_333333_500x100.png",n="ui-icons_222222_256x240.png",l="#222222"):"blue"==e&&(t="#4297d7",s="#5c9ccc",i="ui-bg_gloss-wave_55_5c9ccc_500x100.png",n="ui-icons_228ef1_256x240.png",l="#444"),$(".ui-widget-header").css({border:"1px solid "+t,background:s+' url("https://www.ncbi.nlm.nih.gov/Structure/icn3d/lib/images/'+i+'") 50% 50% repeat-x',color:"#fff","font-weight":"bold"}),$(".ui-button .ui-icon").css({"background-image":"url(https://www.ncbi.nlm.nih.gov/Structure/icn3d/lib/images/"+n+")"}),$(".ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited").css({color:l,"text-decoration":"none"})}setLogWindow(e,t){let s=this.icn3dui;if(s.bNode)return"";let i,n="",l=s.htmlCls.setHtmlCls.getCookie("cmdwindow");return""!=l?(i=void 0!==t?t:parseInt(l),1==i?(s.htmlCls.LOG_HEIGHT=180,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+=""):(s.htmlCls.LOG_HEIGHT=65,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+="")):(i=0,s.htmlCls.LOG_HEIGHT=65,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+=""),e||(n+=""),e&&(s.htmlCls.clickMenuCls.setLogCmd("set cmdwindow "+i,!0),$("#"+s.pre+"cmdlog").html(n)),n}setMenu1(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    File

    ",t+="
    ",t+=this.setMenu1_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu1_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuText("mn1_searchgrooup","Search Structure "+e.htmlCls.wifiStr,void 0,1,1),t+="
        ",t+=this.getMenuUrl("mn1_searchstru","https://www.ncbi.nlm.nih.gov/structure","PDB Structures "+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_proteinname","AlphaFold Structures "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("mn1_afdatabase","https://alphafold.ebi.ac.uk","AlphaFold UniProt Database "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_searchsimilar","Search Similar"+e.htmlCls.wifiStr,void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_vastplus","NCBI VAST+ (PDB Complex)"+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_vast","NCBI VAST (PDB Chain)"+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_foldseek","Foldseek (PDB & AlphaFold)"+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_retrievebyid","Retrieve by ID",void 0,1,1),t+="
        ",t+=this.getLink("mn1_mmdbafid","PDB/MMDB/AlphaFold IDs"+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_mmdbid","NCBI MMDB ID (annotation) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_mmtfid","RCSB BCIF/MMTF ID (fast) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_pdbid","RCSB PDB ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getMenuText("mn1_afwrap","AlphaFold Structures",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_afid","UniProt ID "+e.htmlCls.wifiStr,void 0,3),t+=this.getLink("mn1_refseqid","NCBI Protein Accession "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+=this.getLink("mn1_opmid","OPM PDB ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_mmcifid","RCSB mmCIF ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_cid","PubChem CID/Name/InchI "+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_smiles","Chemical SMILES ",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_openfile","Open File",void 0,1,1),t+="
        ",t+=this.getLink("mn1_pdbfile_app","PDB Files (appendable)",1,2),t+=this.getLink("mn1_mmciffile","mmCIF Files (appendable)",void 0,2),t+=this.getLink("mn1_mol2file","Mol2 File",void 0,2),t+=this.getLink("mn1_sdffile","SDF File",void 0,2),t+=this.getLink("mn1_xyzfile","XYZ File",void 0,2),t+=this.getLink("mn1_afmapfile","AlphaFold PAE File",void 0,2),t+=this.getLink("mn1_urlfile","URL(CORS) "+e.htmlCls.wifiStr,void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_pngimage","iCn3D PNG (appendable)",1,2),t+=this.getLink("mn1_state","State/Script File",void 0,2),t+=this.getLink("mn1_fixedversion","Share Link in Archived Ver. "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_selection","Selection File",void 0,2),t+=this.getLink("mn1_collection","Collection File",void 0,2),t+=this.getMenuSep(),t+=this.getMenuText("mn1_dsn6wrap","Electron Density",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_dsn6","Local File",void 0,3),t+=this.getLink("mn1_dsn6url","URL(CORS) "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+="

      • ",t+="
      ",t+="",t+=this.getMenuText("mn1_fold","Predict by Seq.",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_esmfold","ESMFold",void 0,2),t+=this.getLink("mn1_alphafold","AlphaFold2 via ColabFold"+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=this.getMenuText("mn1_alignwrap","Align",void 0,1,1),t+="
        ",t+=this.getMenuText("mn1_chainalignwrap","Multiple Chains",void 0,1,2),t+="
          ",t+=this.getRadio("mn1_chainalignRad","mn1_chainalign","by Structure Alignment "+e.htmlCls.wifiStr,void 0,1,3),t+=this.getRadio("mn1_chainalignRad","mn1_chainalign2","by Sequence Alignment "+e.htmlCls.wifiStr,void 0,1,3),t+=this.getRadio("mn1_chainalignRad","mn1_chainalign3","Residue by Residue",void 0,void 0,3),t+="
        ",t+="",t+=this.getMenuText("mn1_aligntwostru","Protein Complexes",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_align","Two PDB Structures "+e.htmlCls.wifiStr,void 0,3),t+=this.getLink("mn1_alignaf","Two AlphaFold Structures "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+=this.getLink("mn1_blast_rep_id","Sequence to Structure",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_realignWrap","Realign Selection",void 0,void 0,1),t+="
        ",t+=this.getMenuText("mn2_chainrealignwrap","Multiple Chains",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn2_realign","mn2_realignonstruct","by Structure Alignment "+e.htmlCls.wifiStr,void 0,void 0,3),t+=this.getRadio("mn2_realign","mn2_realignonseqalign","by Sequence Alignment "+e.htmlCls.wifiStr,void 0,void 0,3),t+=this.getRadio("mn2_realign","mn2_realignresbyres","Residue by Residue",void 0,void 0,3),t+="
        ",t+=this.getLink("mn2_realigntwostru","Protein Complexes",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_3dpprint","3D Printing",void 0,1,1),t+="
        ",void 0===e.cfg.cid?(t+=this.getLink("mn1_exportVrmlStab","WRL/VRML(Color, W/ Stab.)",1,2),t+=this.getLink("mn1_exportStlStab","STL(W/ Stabilizers)",1,2),t+=this.getMenuSep(),t+=this.getLink("mn1_exportVrml","WRL/VRML(Color)",void 0,2),t+=this.getLink("mn1_exportStl","STL",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_stabilizerYes","Add All Stabilizers",void 0,2),t+=this.getLink("mn1_stabilizerNo","Remove All Stabilizers",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_stabilizerOne","Add One Stabilizer",void 0,2),t+=this.getLink("mn1_stabilizerRmOne","Remove One Stabilizer",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_thicknessSet","Set Thickness",void 0,2)):(t+=this.getLink("mn1_exportVrml","VRML(Color)",1,2),t+=this.getLink("mn1_exportStl","STL",1,2)),t+="
      ",t+="",t+=this.getMenuText("mn1_savefile","Save File",void 0,1,1),t+="
        ",t+=this.getMenuText("mn1_savepngimage","iCn3D PNG Image",void 0,1,2),t+="
          ",t+=this.getLink("mn1_exportCanvas","Original Size & HTML",1,3),t+=this.getLink("mn1_exportCanvas1","Original Size",void 0,3),t+=this.getLink("mn1_exportCanvas2","2X Large",void 0,3),t+=this.getLink("mn1_exportCanvas4","4X Large",void 0,3),t+=this.getLink("mn1_exportCanvas8","8X Large",void 0,3),t+="
        ",t+="",t+=this.getLink("mn1_exportState","State File",void 0,2),t+=this.getLink("mn1_exportSelections","Selection File",void 0,2),t+=this.getLink("mn1_exportSelDetails","Selection Details",void 0,2),t+=this.getLink("mn1_exportCounts","Residue Counts",void 0,2),t+=this.getLink("mn1_exportPdbRes","PDB",1,2),t+=this.getLink("profixpdb","PDB with Missing Atoms",void 0,2),void 0===e.cfg.cid&&(t+=this.getLink("mn1_exportSecondary","Secondary Structure",void 0,2)),t+=this.getMenuText("m1_exportrefnum","Reference Numbers",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_exportIgstrand","Ig Strand",void 0,3),t+=this.getLink("mn1_exportKabat","Kabat",void 0,3),t+=this.getLink("mn1_exportImgt","IMGT",void 0,3),t+="
        ",t+="

      • ",t+="
      ",t+="",t+=this.getLink("mn1_sharelink","Share Link "+e.htmlCls.wifiStr,1,1),t+=this.getLink("mn1_replayon","Replay Each Step",void 0,1),t+=this.getMenuSep(),t+=this.getMenuText("mn1_menuwrap","Customize Menus",void 0,1,1),t+="
        ",t+=this.getLink("mn1_menuall","All Menus",1,2),t+=this.getLink("mn1_menusimple","Simple Menus",1,2),t+=this.getMenuSep(),t+=this.getLink("mn1_menupref","Preferences",1,2),t+=this.getLink("mn1_menuloadpref","Load Preferences",1,2),t+="
      ",t+="",t+="

    • ",t+="
    ",t}setMenu2(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Select

    ",t+="
    ",t+=this.setMenu2_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu2_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getLink("mn2_definedsets","Defined Sets",1,1),t+=this.getLink("mn2_selectall","All",void 0,1),t+=this.getLink("mn2_selectdisplayed","Displayed Set",void 0,1),t+=this.getLink("mn2_aroundsphere","by Distance",1,1),t+=this.getMenuText("mn2_selbyprop","by Property",void 0,void 0,1),t+="
        ",t+=this.getLink("mn2_propPos","Positive",void 0,2),t+=this.getLink("mn2_propNeg","Negative",void 0,2),t+=this.getLink("mn2_propHydro","Hydrophobic",void 0,2),t+=this.getLink("mn2_propPolar","Polar",void 0,2),t+=this.getLink("mn2_propBfactor","B-factor/pLDDT",void 0,2),t+=this.getLink("mn2_propSolAcc","Solvent Accessibility",void 0,2),t+="
      ",t+="",t+=this.getLink("mn2_selectcomplement","Inverse",void 0,1),t+=this.getLink("mn2_selectmainchains","Main Chains",void 0,1),t+=this.getLink("mn2_selectsidechains","Side Chains",void 0,1),t+=this.getLink("mn2_selectmainsidechains","Main & Side Chains",void 0,1),t+=this.getLink("mn2_command","Advanced",void 0,1),void 0===e.cfg.cid?(t+=this.getMenuText("mn2_selon3d","Select on 3D",void 0,1,1),t+="
        ",t+='
      • "Alt"+Click: start selection
      • ',t+='
      • "Ctrl"+Click: union selection
      • ',t+='
      • "Shift"+Click: range Selection
      • ',t+=this.getMenuSep(),t+=this.getRadio("mn2_pk","mn2_pkChain","Chain",void 0,1,2),void 0===e.cfg.mmdbid&&void 0===e.cfg.gi||(t+=this.getRadio("mn2_pk","mn2_pkDomain","3D Domain",void 0,void 0,2)),t+=this.getRadio("mn2_pk","mn2_pkStrand","Strand/Helix",void 0,void 0,2),t+=this.getRadio("mn2_pk","mn2_pkResidue","Residue",!0,1,2),t+=this.getRadio("mn2_pk","mn2_pkYes","Atom",void 0,1,2),t+=this.getRadio("mn2_pk","mn2_pkNo","None",void 0,void 0,2),t+="
      ",t+=""):e.utilsCls.isMobile()?t+="
    • Touch to pick
    • ":t+='
    • Picking with
      "Alt" + Click
    • ',t+=this.getMenuSep(),t+=this.getLink("mn2_saveselection","Save Selection",1,1),t+=this.getLink("clearall","Clear Selection",void 0,1),t+=this.getLink("mn2_saveresidue","Save Res. in Sel.",1,1),t+=this.getMenuSep(),t+=this.getMenuText("mn2_hlcolor","Highlight Color",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_hl_clr","mn2_hl_clrYellow","Yellow",!0,void 0,2),t+=this.getRadio("mn2_hl_clr","mn2_hl_clrGreen","Green",void 0,void 0,2),t+=this.getRadio("mn2_hl_clr","mn2_hl_clrRed","Red",void 0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_hlstyle","Highlight Style",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_hl_style","mn2_hl_styleOutline","Outline",!0,void 0,2),t+=this.getRadio("mn2_hl_style","mn2_hl_styleObject","3D Objects",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("toggleHighlight2","Toggle Highlight",1,1),t+="

    • ",t+="
    ",t}setMenu2b(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    View

    ",t+="
    ",t+=this.setMenu2b_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu2b_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getLink("mn2_show_selected","View Selection",1,1),t+=this.getLink("mn2_hide_selected","Hide Selection",1,1),t+=this.getLink("mn2_selectedcenter","Zoom in Selection",1,1),t+=this.getLink("mn6_center","Center Selection",1,1),t+=this.getLink("mn2_fullstru","View Full Structure"),t+=this.getLinkWrapper("mn2_alternate",'Alternate(Key "a")',"mn2_alternateWrap",void 0,1),void 0!==e.cfg.opmid?t+=this.getLinkWrapper("togglemem","Toggle Membrane","togglememli",void 0,1):void 0===e.cfg.cid&&(t+=this.getLinkWrapper("togglemem","Toggle Membrane","togglememli",void 0,1,!0)),void 0!==e.cfg.opmid&&(t+=this.getLinkWrapper("adjustmem","Adjust Membrane","adjustmemli",void 0,1),t+=this.getLinkWrapper("selectplane","Select between
      Two X-Y Planes","selectplaneli",void 0,1)),t+=this.getMenuSep(),t+=this.getMenuText("mn2_vrarhints","VR & AR Hints",void 0,1,1),t+="
        ",t+=this.getMenuUrl("vrhint",e.htmlCls.baseUrl+"icn3d/icn3d.html#vr","VR: VR Headsets",1,2),t+=this.getMenuUrl("arhint",e.htmlCls.baseUrl+"icn3d/icn3d.html#ar","AR: Chrome in Android",1,2),t+="
      ",t+="",t+=this.getLink("mn6_sidebyside","Side by Side",1,1),t+=this.getMenuText("mn2_rotate","Rotate",void 0,1,1),t+="
        ",t+=this.getMenuText("mn2_rotate90","Rotate 90°",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn6_rotate90","mn6_rotatex","rotate x",void 0,void 0,2),t+=this.getRadio("mn6_rotate90","mn6_rotatey","rotate y",void 0,void 0,2),t+=this.getRadio("mn6_rotate90","mn6_rotatez","rotate z",void 0,void 0,2),t+="
        ",t+="",t+=this.getMenuText("mn2_rotateauto","Auto Rotation",void 0,1,2),t+="
          ",t+=this.getRadio("mn6_rotate","mn6_rotateleft","Rotate Left",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotateright","Rotate Right",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotateup","Rotate Up",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotatedown","Rotate Down",void 0,1,3),t+="
        ",t+="",t+="
      ",t+="",t+=this.getLink("mn2_translate","Translate XYZ",void 0,1),t+=this.getLink("mn2_matrix","Rotate with Matrix",void 0,1),t+=this.getMenuText("mn2_camera","Camera",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_camera","mn6_cameraPers","Perspective",!0,void 0,2),t+=this.getRadio("mn6_camera","mn6_cameraOrth","Orthographic",void 0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_fog","Fog for Selection",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showfog","mn6_showfogYes","On",void 0,void 0,2),t+=this.getRadio("mn6_showfog","mn6_showfogNo","Off",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_slab","Slab for Selection",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showslab","mn6_showslabYes","On",void 0,void 0,2),t+=this.getRadio("mn6_showslab","mn6_showslabNo","Off",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_axes","XYZ-axes",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showaxis","mn6_showaxisYes","Original",void 0,void 0,2),t+=this.getRadio("mn6_showaxis","mn6_showaxisSel","Prin. Axes on Sel.",void 0,void 0,2),t+=this.getRadio("mn6_showaxis","mn6_showaxisNo","Hide",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuSep(),t+=this.getMenuText("mn2_resetwrap","Reset",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_reset","reset","All",void 0,1,2),t+=this.getRadio("mn6_reset","mn6_resetOrientation","Orientation",void 0,1,2),t+="
      ",t+="",t+=this.getLink("mn6_back","Undo",void 0,1),t+=this.getLink("mn6_forward","Redo",void 0,1),t+=this.getLink("mn6_fullscreen","Full Screen",void 0,1),t+="

    • ",t+="
    ",t}setMenu3(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Style

    ",t+="
    ",t+=this.setMenu3_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu3_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";t+="
      ",void 0===e.cfg.cid&&(t+=this.getMenuText("mn3_proteinwrap","Proteins",void 0,1,1),t+="
        ",void 0!==e.cfg.align||void 0!==e.cfg.chainalign?t+=this.getRadio("mn3_proteins","mn3_proteinsRibbon","Ribbon",void 0,1,2):t+=this.getRadio("mn3_proteins","mn3_proteinsRibbon","Ribbon",!0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsStrand","Strand",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsCylinder","Cylinder and Plate",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsSchematic","Schematic",void 0,1,2),void 0!==e.cfg.align||void 0!==e.cfg.chainalign?t+=this.getRadio("mn3_proteins","mn3_proteinsCalpha","C Alpha Trace",!0,1,2):t+=this.getRadio("mn3_proteins","mn3_proteinsCalpha","C Alpha Trace",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBackbone","Backbone",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBfactor","B-factor Tube",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsLines","Lines",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsStick","Stick",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_sidecwrap","Side Chains",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_sidec","mn3_sidecLines","Lines",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecStick","Stick",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecNo","Hide",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_nuclwrap","Nucleotides",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_nucl","mn3_nuclCartoon","Cartoon",!0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclPhos","O3' Trace",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclBackbone","Backbone",void 0,void 0,2),t+=this.getRadio("mn3_nucl","mn3_nuclSchematic","Schematic",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclLines","Lines",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclStick","Stick",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_ntbasewrap","Nucl. Bases",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_ntbase","mn3_ntbaseLines","Lines",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseStick","Stick",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseNo","Hide",!0,1,2),t+="
      ",t+=""),t+=this.getMenuText("mn3_ligwrap","Chemicals",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_lig","mn3_ligLines","Lines",void 0,1,2),void 0===e.cfg.cid?(t+=this.getRadio("mn3_lig","mn3_ligStick","Stick",!0,1,2),t+=this.getRadio("mn3_lig","mn3_ligBallstick","Ball and Stick",void 0,1,2)):(t+=this.getRadio("mn3_lig","mn3_ligStick","Stick",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligBallstick","BalHydrogensl and Stick",!0,1,2)),t+=this.getRadio("mn3_lig","mn3_ligSchematic","Schematic",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_hydrogenswrap","Hydrogens",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_hydrogens","mn3_hydrogensYes","Show",!0,1,2),t+=this.getRadio("mn3_hydrogens","mn3_hydrogensNo","Hide",void 0,1,2),t+="
      ",t+="",void 0===e.cfg.cid&&(t+=this.getMenuText("mn3_glycanwrap","Glycans",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn3_glycansCart","mn3_glycansCartYes","Show Cartoon",void 0,void 0,2),t+=this.getRadio("mn3_glycansCart","mn3_glycansCartNo","Hide Cartoon",!0,void 0,2),t+="
      ",t+=""),t+=this.getMenuText("mn3_ionswrap","Ions",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_ions","mn3_ionsSphere","Sphere",!0,1,2),t+=this.getRadio("mn3_ions","mn3_ionsDot","Dot",void 0,1,2),t+=this.getRadio("mn3_ions","mn3_ionsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_waterwrap","Water",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_water","mn3_waterSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_water","mn3_waterDot","Dot",void 0,1,2),t+=this.getRadio("mn3_water","mn3_waterNo","Hide",!0,1,2),t+="
      ",t+="",void 0===e.cfg.cid&&(t+=this.getMenuText("mn2_clashedwrap","Clashed Residues",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_clashed","mn2_clashedYes","Show",!0,void 0,2),t+=this.getRadio("mn2_clashed","mn2_clashedNo","Hide",void 0,void 0,2),t+="
      ",t+=""),t+=this.getLink("mn3_setThickness","Preferences",void 0,1),t+=this.getMenuSep(),t+=this.getLink("mn3_styleSave","Save Style",void 0,2),t+=this.getLink("mn3_styleApplySave","Apply Saved Style",void 0,2),t+=this.getMenuSep(),t+=this.getMenuText("mn5_surfacewrap","Surface Type",void 0,1,1),t+="
        ",t+=this.getRadio("mn5_surface","mn5_surfaceVDW","Van der Waals",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceVDWContext","VDW with Context",void 0,void 0,2),t+=this.getRadio("mn5_surface","mn5_surfaceMolecular","Molecular Surface",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceMolecularContext","MS with Context",void 0,void 0,2),t+=this.getRadio("mn5_surface","mn5_surfaceSAS","Solvent Accessible",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceSASContext","SA with Context",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn5_surfaceNo","Remove Surface",1,1),t+=this.getMenuText("mn5_surfaceop","Surface Opacity",void 0,1,1),t+="
        ",t+=this.getMenuText("mn5_surfaceopfast","Fast Transparency",void 0,1,2),t+="
          ",t+=this.getRadio("mn5_opacity","mn5_opacity10","1.0",!0,1,3);for(let e=9;e>0;--e)t+=this.getRadio("mn5_opacity","mn5_opacity0"+e,"0."+e,1,3);t+="
        ",t+="",t+=this.getMenuText("mn5_surfaceopslow","Slow Transparency",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn5_opacityslow","mn5_opacityslow10","1.0",!0,void 0,3);for(let e=9;e>0;--e)t+=this.getRadio("mn5_opacityslow","mn5_opacityslow0"+e,"0."+e,void 0,void 0,3);return t+="
        ",t+="",t+="
      ",t+=this.getMenuText("mn5_wireframewrap","Surface Wireframe",void 0,1,1),t+="
        ",t+=this.getRadio("mn5_wireframe","mn5_wireframeYes","Yes",void 0,1,2),t+=this.getRadio("mn5_wireframe","mn5_wireframeNo","No",!0,1,2),t+="
      ",t+="",t+=this.getMenuSep(),t+=this.getLink("mn5_cartoonshape","Cartoon for a Set",void 0,1),t+=this.getLink("mn5_linebtwsets","Line btw. Two Sets",void 0,1),void 0===e.cfg.cid&&void 0===e.cfg.align&&void 0===e.cfg.chainalign&&void 0===e.cfg.mmdbaf&&(t+=this.getMenuSep(),t+=this.getLinkWrapper2("mn5_map","Electron Density","mapWrapper1",void 0,1),t+="
        ",t+=this.getLink("mn5_elecmap2fofc","2Fo-Fc Map",void 0,2),t+=this.getLink("mn5_elecmapfofc","Fo-Fc Map",void 0,2),t+=this.getLinkWrapper("mn5_elecmapNo","Remove Map","mapWrapper2",void 0,2),t+="
      ",t+="",t+=this.getLinkWrapper2("mn5_map3","Map Wireframe","mapWrapper3",void 0,1),t+="
        ",t+=this.getRadio("mn5_mapwireframe","mn5_mapwireframeYes","Yes",!0,void 0,2),t+=this.getRadio("mn5_mapwireframe","mn5_mapwireframeNo","No",void 0,void 0,2),t+="
      ",t+="",void 0===e.cfg.mmtfid&&(t+=this.getLinkWrapper("mn5_emmap","EM Density Map","emmapWrapper1",void 0,1),t+=this.getLinkWrapper("mn5_emmapNo","Remove EM Map","emmapWrapper2",void 0,1),t+=this.getLinkWrapper2("mn5_emmap3","EM Map Wireframe","emmapWrapper3",void 0,1),t+="
        ",t+=this.getRadio("mn5_emmapwireframe","mn5_emmapwireframeYes","Yes",!0,void 0,2),t+=this.getRadio("mn5_emmapwireframe","mn5_emmapwireframeNo","No",void 0,void 0,2),t+="
      ",t+="")),t+=this.getMenuSep(),t+=this.getMenuText("mn6_bkgdwrap","Background",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_bkgd","mn6_bkgdTransparent","Transparent",void 0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdBlack","Black",!0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdGrey","Gray",void 0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdWhite","White",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_themewrap","Dialog Color",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_theme","mn6_themeBlue","Blue",!0,void 0,2),t+=this.getRadio("mn6_theme","mn6_themeOrange","Orange",void 0,void 0,2),t+=this.getRadio("mn6_theme","mn6_themeBlack","Black",void 0,void 0,2),t+="
      ",t+="",t+="

    • ",t+="
    ",t}setMenu4(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Color

    ",t+="
    ",t+=this.setMenu4_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu4_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuText("mn4_clrwrap","Unicolor","icn3d-menupd",1,1),t+="
        ",t+=this.getMenuText("uniclrRedwrap","Red",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrRed1","Red","F00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed2","Indian Red","CD5C5C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed3","Light Coral","F08080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed4","Salmon","FA8072",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed5","Dark Salmon","E9967A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed6","Light Salmon","FFA07A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed7","Crimson","DC143C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed8","Fire Brick","B22222",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed9","Dark Red","8B0000",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrPinkwrap","Pink",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrPink1","Pink","FFC0CB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink2","Light Pink","FFB6C1",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink3","Hot Pink","FF69B4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink4","Deep Pink","FF1493",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink5","Medium Violet Red","C71585",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink6","Pale Violet Red","DB7093",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrOrangewrap","Orange",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrOran1","Orange","FFA500",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran2","Dark Orange","FF8C00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran3","Orange Red","FF4500",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran4","Tomato","FF6347",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran5","Coral","FF7F50",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran6","Light Salmon","FFA07A",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrYellowwrap","Yellow",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrYllw1","Yellow","FF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw2","Gold","FFD700",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw3","Light Yellow","FFFFE0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw4","Lemon Chiffon","FFFACD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw5","Light Golden Rod","FAFAD2",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw6","Papaya Whip","FFEFD5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw7","Moccasin","FFE4B5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw8","Peach Puff","FFDAB9",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw9","Pale Golden Rod","EEE8AA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw10","Khaki","F0E68C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw11","Dark Khaki","BDB76B",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrMagentawrap","Magenta",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrMgnt1","Magenta","F0F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt2","Orchid","DA70D6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt3","Violet","EE82EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt4","Plum","DDA0DD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt5","Thistle","D8BFD8",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt6","Lavender","E6E6FA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt7","Medium Orchid","BA55D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt8","Medium Purple","9370DB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt9","Rebecca Purple","663399",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt10","Blue Violet","8A2BE2",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt11","Dark Violet","9400D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt12","Dark Orchid","9932CC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt13","Dark Magenta","8B008B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt14","Purple","800080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt15","Indigo","4B0082",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt16","Slat Blue","6A5ACD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt17","Dark Slate Blue","483D8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt18","Medium Slat Blue","6A5ACD",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrGreenwrap","Green",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrGrn1","Green","0F0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn2","Dark Green","006400",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn3","Yellow Green","9ACD32",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn4","Olive Drab","6B8E23",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn5","Olive","808000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn6","Dark Olive Green","556B2F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn7","Medium Aquamarine","66CDAA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn8","Dark Sea Green","8FBC8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn9","Lignt Sea Green","20B2AA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn10","Dark Cyan","008B8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn11","Teal","008080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn12","Forest Green","228B22",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn13","Sea Green","2E8B57",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn14","Medium Sea Green","3CB371",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn15","Spring Green","00FF7F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn16","Medium Spring","00FA9A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn17","Light Green","90EE90",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn18","Pale Green","98FB98",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn19","Lime Green","32CD32",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn20","Lawn Green","7CFC00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn21","Chartreuse","7FFF00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn22","Green Yellow","ADFF2F",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrCyanwrap","Cyan",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrCyan1","Cyan","0FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan2","Light Cyan","E0FFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan3","Pale Turquoise","AFEEEE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan4","Aquamarine","7FFFD4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan5","Turquoise","40E0D0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan6","Medium Turquoise","48D1CC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan7","Dark Turquoise","00CED1",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrBluewrap","Blue",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrBlue1","Blue","00F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue2","Medium Blue","0000CD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue3","Dark Blue","00008B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue4","Navy","000080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue5","Midnight Blue","191970",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue6","Royal Blue","4169E1",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue7","Medium Slate Blue","7B68EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue8","Corn Flower Blue","6495ED",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue9","Dodger Blue","1E90FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue10","Deep Sky Blue","00BFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue11","Light Sky Blue","87CEFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue12","Sky Blue","87CEEB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue13","Light Blue","ADD8E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue14","Powder Blue","B0E0E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue15","Light Steel Blue","B0C4DE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue16","Steel Blue","4682B4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue17","Cadet Blue","5F9EA0",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrBrownwrap","Brown",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrBrown1","Brown","A52A2A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown2","Maroon","800000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown3","Sienna","A0522D",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown4","Saddle Brown","8B4513",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown5","Chocolate","D2691E",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown6","Peru","CD853F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown7","Dark Golden Rod","B8860B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown8","Golden Rod","DAA520",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown9","Sandy Brown","F4A460",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown10","Rosy Brown","BC8F8F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown11","Tan","D2B48C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown12","Burlywood","DEB887",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown13","Wheat","F5DEB3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown14","Navajo White","FFDEAD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown15","Bisque","FFE4C4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown16","Blanched Almond","FFEBCD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown17","Corn Silk","FFF8DC",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrWhitewrap","White",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrWhite1","White","FFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite2","Snow","FFFAFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite3","Honey Dew","F0FFF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite4","Mint Cream","F5FFFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite5","Azure","F0FFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite6","Alice Blue","F0F8FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite7","Ghost White","F8F8FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite8","White Smoke","F5F5F5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite9","Sea Shell","FFF5EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite10","Beige","F5F5DC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite11","Old Lace","FDF5E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite12","Floral White","FFFAF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite13","Ivory","FFFFF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite14","Antique White","FAEBD7",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite15","Linen","FAF0E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite16","Lavenderblush","FFF0F5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite17","Misty Rose","FFE4E1",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrGraywrap","Gray",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrGray1","Gray","808080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray2","Dim Gray","696969",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray3","Light Slate Gray","778899",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray4","Slate Gray","708090",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray5","Dark Slate Gray","2F4F4F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray6","Black","000000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray7","Dark Gray","A9A9A9",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray8","Silver","C0C0C0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray9","Light Gray","D3D3D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray10","Gainsboro","DCDCDC",void 0,1,3),t+="
        ",t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrCustom","Color Picker",void 0,void 0,1),t+=this.getMenuSep(),void 0===e.cfg.cid?(t+=this.getMenuText("mn4_clrRainbowwrap","Rainbow (R-V)","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrRainbow","for Selection",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowChain","for Chains",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowSets","for Sets",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowAcrossSets","across Sets",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrSpectrumwrap","Spectrum (V-R)","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrSpectrum","for Selection",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumChain","for Chains",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumSets","for Sets",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumAcrossSets","across Sets",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrSSwrap","Secondary","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrSSGreen","Sheet in Green",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSSYellow","Sheet in Yellow",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSSSpectrum","Spectrum",void 0,void 0,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrCharge","Charge",void 0,1,1),t+=this.getMenuText("mn4_hydrophobicwrap","Hydrophobicity","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrNormalizedHP","Normalized",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrHydrophobic","Wimley-White",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrBfactorwrap","B-factor","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrBfactor","Original",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrBfactorNorm","Percentile",void 0,1,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrArea",'Solvent
      Accessibility',void 0,void 0,1),t+=this.getRadio("mn4_clr","mn4_clrStructure","Structure",void 0,1,1),void 0!==e.cfg.align||void 0!==e.cfg.chainalign||void 0!==e.cfg.blast_rep_id?t+=this.getRadio("mn4_clr","mn4_clrChain","Chain",void 0,1,1):t+=this.getRadio("mn4_clr","mn4_clrChain","Chain",!0,1,1),t+=this.getRadio("mn4_clr","mn4_clrdomain","3D Domain",void 0,void 0,1),void 0===e.cfg.cid&&(t+=this.getMenuText("mn4_clrsetswrap","Defined Sets","icn3d-menupd",void 0,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrsets",'Rainbow for Selected Sets
        in "Analysis > Defined Sets"',void 0,void 0,2),t+="
      ",t+=""),t+=this.getMenuText("mn4_clrResiduewrap","Residue","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrResidue","Default",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrResidueCustom","Custom",void 0,void 0,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrAtom","Atom",void 0,1,1),void 0!==e.cfg.align||void 0!==e.cfg.chainalign?(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",!0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",void 0,void 0,2)):void 0!==e.cfg.blast_rep_id?(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",!0,void 0,2)):(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",void 0,void 0,2)),t+=this.getRadio("mn4_clr","mn4_clrConfidence","pLDDT",void 0,1,1),t+=this.getRadio("mn4_clr","mn4_clrIgstrand","Ig Strand",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrIgproto","Ig Protodomain",void 0,void 0,2)):t+=this.getRadio("mn4_clr","mn4_clrAtom","Atom",!0,1,1),t+=this.getMenuSep(),t+=this.getLink("mn4_clrSave","Save Color",void 0,1),t+=this.getLink("mn4_clrApplySave","Apply Saved Color",void 0,1),t+="

    • ",t+="
    ",t}setMenu5(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

     Analysis

    ",t+="
    ",t+=this.setMenu5_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu5_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";t+="
      ",void 0===e.cfg.cid&&(t+=this.getLink("mn6_selectannotations","Seq. & Annotations "+e.htmlCls.wifiStr,1,1),t+=this.getLink("mn2_alignment","Aligned Seq. "+e.htmlCls.wifiStr,void 0,1),void 0===e.cfg.mmdbid&&void 0===e.cfg.gi&&void 0===e.cfg.blast_rep_id&&void 0===e.cfg.align&&void 0===e.cfg.chainalign||(t+=this.getLink("mn2_2ddgm","2D Diagram "+e.htmlCls.wifiStr,1,1)),t+=this.getMenuText("2dctnwrap","2D Cartoon",void 0,void 0,1),t+="
        ",t+=this.getLink("2dctn_chain","Chain Level",void 0,2),t+=this.getLink("2dctn_domain","Domain Level",void 0,2),t+=this.getLink("2dctn_secondary","Helix/Sheet Level",void 0,2),t+="
      ",t+="",t+=this.getLink("definedsets2","Defined Sets",1,1),t+=this.getMenuSep(),t+=this.getLink("mn6_hbondsYes","Interactions",1,1),t+=this.getMenuText("mn1_window","Bring to Front",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_window_table","Interaction Table",void 0,2),t+=this.getLink("mn1_window_linegraph","2D Interaction Network",void 0,2),t+=this.getLink("mn1_window_scatterplot","2D Interaction Map",void 0,2),t+=this.getLink("mn1_window_graph","2D Graph(Force-Directed)",void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_contactmap","Contact Map",void 0,1),t+=this.getLink("mn1_mutation","Mutation "+e.htmlCls.wifiStr,1,1)),e.cfg.hidelicense||(t+=this.getMenuText("mn1_delphiwrap","DelPhi Potential",void 0,1,1),t+="
        ",t+=this.getLink("mn1_delphi","DelPhi Potential "+e.htmlCls.licenseStr,1,2),t+=this.getMenuText("mn1_phiwrap","Load PQR/Phi",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_phi","Local PQR/Phi/Cube File",void 0,3),t+=this.getLink("mn1_phiurl","URL PQR/Phi/Cube File",void 0,3),t+="
        ",t+="",t+=this.getLink("delphipqr","Download PQR",void 0,2),t+="
      ",t+=""),t+=this.getMenuSep(),t+=this.getMenuText("mn6_distancewrap","Distance",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_distance","mn6_distanceYes","between Two Atoms",void 0,1,2),t+=this.getRadio("mn6_distance","mn6_distTwoSets","between Two Sets",void 0,void 0,2),t+=this.getRadio("mn6_distance","mn6_distManySets","among Many Sets",void 0,void 0,2),t+=this.getRadio("mn6_distance","mn6_distanceNo","Hide",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_anglewrap","Angle",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_angle","mn6_angleManySets","among Many Sets",void 0,1,2),t+=this.getRadio("mn6_angle","mn6_angleTwoSets","b/w Two Vectors",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_area","Surface Area",1,1),t+=this.getMenuText("mn6_addlabelwrap","Label",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_addlabel","mn6_addlabelYes","by Picking Atoms",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelSelection","per Selection",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelAtoms","per Atom",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelElements","per Atom Element",void 0,1,2),void 0===e.cfg.cid&&(t+=this.getRadio("mn6_addlabel","mn6_addlabelResidues","per Residue",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelResnum","per Residue & Number",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelRefnum","per Reference Number",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelIg","per Ig Domain",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelChains","per Chain",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelTermini","N- & C-Termini",void 0,1,2)),t+=this.getMenuSep(),t+=this.getRadio("mn6_addlabel","mn6_labelColor","Change Label Color",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelNo","Remove",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("labelscalewrap","Label Scale",void 0,1,1),t+="
        ";for(let e=1;e<=4;++e){let s=2*e;t+=this.getRadio("mn6_labelscale","mn6_labelscale0"+s,"0."+s,void 0,1,2)}for(let e=2;e<=10;++e){let s=(e/2).toFixed(1);t+=2==e?this.getRadio("mn6_labelscale","mn6_labelscale"+e+"0",s,!0,1,2):this.getRadio("mn6_labelscale","mn6_labelscale"+e+"0",s,void 0,1,2)}if(t+="
      ",t+="",t+=this.getMenuSep(),void 0===e.cfg.cid){t+=this.getMenuText("mn6_chemicalbindingwrap","Chem. Binding",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_chemicalbinding","mn6_chemicalbindingshow","Show",void 0,void 0,2),t+=this.getRadio("mn6_chemicalbinding","mn6_chemicalbindinghide","Hide",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn6_ssbondswrap","Disulfide Bonds",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_ssbonds","mn6_ssbondsYes","Show",!0,1,2),t+=this.getRadio("mn6_ssbonds","mn6_ssbondsExport","Export Pairs",void 0,void 0,2),t+=this.getRadio("mn6_ssbonds","mn6_ssbondsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_clbondswrap","Cross-Linkages",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_clbonds","mn6_clbondsYes","Show",!0,void 0,2),t+=this.getRadio("mn6_clbonds","mn6_clbondsExport","Export Pairs",void 0,void 0,2),t+=this.getRadio("mn6_clbonds","mn6_clbondsNo","Hide",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_DSSP","DSSP Secondary",void 0,1);let s=void 0!==e.cfg.mmtfid||void 0!==e.cfg.pdbid||void 0!==e.cfg.opmid||void 0!==e.cfg.mmcifid||void 0!==e.cfg.mmdbid||void 0!==e.cfg.mmdbafid||void 0!==e.cfg.gi||void 0!==e.cfg.blast_rep_id;s&&(t+=this.getMenuText("assemblyWrapper","Assembly",void 0,1,1),t+="
        ",e.cfg.bu?(t+=this.getRadio("mn6_assembly","mn6_assemblyYes","Biological Assembly",!0,1,2),t+=this.getRadio("mn6_assembly","mn6_assemblyNo","Asymmetric Unit",void 0,1,2)):(t+=this.getRadio("mn6_assembly","mn6_assemblyYes","Biological Assembly",void 0,1,2),t+=this.getRadio("mn6_assembly","mn6_assemblyNo","Asymmetric Unit",!0,1,2)),t+="
      ",t+=""),t+=this.getMenuText("mn6_symmetrywrap","Symmetry",void 0,void 0,1),t+="
        ",s&&(t+=this.getLink("mn6_symmetry","from PDB(precalculated) "+e.htmlCls.wifiStr,void 0,2)),t+=this.getLink("mn6_symd","from SymD(Dynamic) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn6_clear_sym","Clear SymD Symmetry",void 0,2),t+=this.getLink("mn6_axes_only","Show Axes Only",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn6_igrefwrap","Ref. Number",void 0,void 0,1),t+="
        ",t+=this.getLink("mn6_igrefYes","Show Ig for Selection",void 0,2),t+=this.getLink("mn6_igrefTpl","Ig w/ Specified Template",void 0,2),t+=this.getLink("mn6_alignrefTpl","Align w/ Specified Template",void 0,2),t+=this.getLink("mn6_igrefNo","Reset Ig Ref. Number",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn6_customref","Custom Ref. Number",void 0,2),t+="
      ",t+="",t+=this.getMenuSep()}return t+=this.getLink("mn6_yournote","Window Title",void 0,1),void 0!==e.cfg.cid?(t+=this.getMenuText("mn1_linkwrap","Links",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_link_structure","Compound Summary "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_vast","Similar Compounds "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_bind","Structures Bound "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=""):(t+=this.getMenuText("mn1_linkwrap","Links",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_link_structure","Structure Summary "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_vast","Similar Structures "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_pubmed","Literature "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_protein","Protein "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=""),t+="

    • ",t+="
    ",t}setMenu6(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Help

    ",t+="
    ",t+=this.setMenu6_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu6_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuUrl("abouticn3d",e.htmlCls.baseUrl+"icn3d/icn3d.html#about","About iCn3D "+e.REVISION+"",1,1),t+=this.getMenuUrl("gallery",e.htmlCls.baseUrl+"icn3d/icn3d.html#gallery","Live Gallery "+e.htmlCls.wifiStr,1,1),t+=this.getMenuUrl("video",e.htmlCls.baseUrl+"icn3d/icn3d.html#videos","Videos & Tutorials",1,1),t+=this.getMenuText("mn6_faq","FAQ",void 0,1,1),t+="
        ",t+=this.getMenuUrl("faq_viewstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#viewstru","View structure",1,2),t+=this.getMenuUrl("faq_tfstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#tfstru","Transform Structure",1,2),t+=this.getMenuUrl("faq_selsubset",e.htmlCls.baseUrl+"icn3d/icn3d.html#selsubset","Select Subsets",1,2),t+=this.getMenuUrl("faq_stylecolor",e.htmlCls.baseUrl+"icn3d/icn3d.html#changestylecolor","Change Style/Color",1,2),t+=this.getMenuUrl("faq_savework",e.htmlCls.baseUrl+"icn3d/icn3d.html#saveview","Save Work",1,2),t+=this.getMenuUrl("faq_showanno",e.htmlCls.baseUrl+"icn3d/icn3d.html#showanno","Show Annotations",1,2),t+=this.getMenuUrl("faq_exportanno",e.htmlCls.baseUrl+"icn3d/icn3d.html#exportanno","Export Annotations",1,2),t+=this.getMenuUrl("faq_interanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#interanalysis","Interaction Analysis",1,2),t+=this.getMenuUrl("faq_mutanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#mutationanalysis","Mutation Analysis",1,2),t+=this.getMenuUrl("faq_elecpot",e.htmlCls.baseUrl+"icn3d/icn3d.html#elecpot","Electrostatic Pot.",1,2),t+=this.getMenuUrl("faq_simipdb",e.htmlCls.baseUrl+"icn3d/icn3d.html#simivast","Similar PDB",1,2),t+=this.getMenuUrl("faq_simialphapdb",e.htmlCls.baseUrl+"icn3d/icn3d.html#simifoldseek","Similar AlphaFold/PDB",1,2),t+=this.getMenuUrl("faq_alnstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#alignmul","Align Multiple Structures",1,2),t+=this.getMenuUrl("faq_batchanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#batchanalysis","Batch Analysis",1,2),t+=this.getMenuUrl("faq_batchanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#igrefnum","Assign Ig Ref. Numbers",1,2),t+=this.getMenuUrl("faq_embedicn3d",e.htmlCls.baseUrl+"icn3d/icn3d.html#embedicn3d","Embed iCn3D",1,2),t+="
      ",t+="",t+=this.getMenuUrl("citing",e.htmlCls.baseUrl+"icn3d/icn3d.html#citing","Citing iCn3D",void 0,1),t+=this.getMenuText("mn6_source","Source Code",void 0,1,1),t+="
        ",t+=this.getMenuUrl("github","https://github.com/ncbi/icn3d","GitHub (browser) "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("npm","https://www.npmjs.com/package/icn3d","npm (Node.js) "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("notebook","https://pypi.org/project/icn3dpy","Jupyter Notebook "+e.htmlCls.wifiStr,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_develop","Develop",void 0,void 0,1),t+="
        ",t+=this.getMenuUrl("dev_embedicn3d2",e.htmlCls.baseUrl+"icn3d/icn3d.html#HowToUse","Embed iCn3D",void 0,2),t+=this.getMenuUrl("dev_urlpara",e.htmlCls.baseUrl+"icn3d/icn3d.html#parameters","URL Parameters",void 0,2),t+=this.getMenuUrl("dev_command",e.htmlCls.baseUrl+"icn3d/icn3d.html#commands","Commands",void 0,2),t+=this.getMenuUrl("dev_datastru",e.htmlCls.baseUrl+"icn3d/icn3d.html#datastructure","Data Structure",void 0,2),t+=this.getMenuUrl("dev_classstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#classstructure","Class Structure",void 0,2),t+=this.getMenuUrl("dev_addclass",e.htmlCls.baseUrl+"icn3d/icn3d.html#addclass","Add New Classes",void 0,2),t+=this.getMenuUrl("dev_modfunc",e.htmlCls.baseUrl+"icn3d/icn3d.html#modifyfunction","Modify Functions",void 0,2),t+=this.getMenuUrl("dev_restful",e.htmlCls.baseUrl+"icn3d/icn3d.html#restfulapi","RESTful APIs",void 0,2),t+=this.getMenuUrl("dev_contributor",e.htmlCls.baseUrl+"icn3d/icn3d.html#contributors","iCn3D Contributors",void 0,2),t+="
      ",t+="",t+=this.getMenuUrl("helpdoc",e.htmlCls.baseUrl+"icn3d/docs/icn3d_help.html","Help Doc "+e.htmlCls.wifiStr,1,1),t+=this.getMenuSep(),t+=this.getMenuText("mn6_tfhint","Transform Hints",void 0,1,1),t+="
        ",t+=this.getMenuText("mn6_rotate","Rotate",void 0,1,2),t+="
          ",t+="
        • Left Mouse (Click & Drag)
        • ",t+="
        • Key l: Left
        • ",t+="
        • Key j: Right
        • ",t+="
        • Key i: Up
        • ",t+="
        • Key m: Down
        • ",t+="
        • Shift + Key l: Left 90°
        • ",t+="
        • Shift + Key j: Right 90°
        • ",t+="
        • Shift + Key i: Up 90°
        • ",t+="
        • Shift + Key m: Down 90°
        • ",t+="
        ",t+="",t+=this.getMenuText("mn6_zoom","Zoom",void 0,1,2),t+="
          ",t+="
        • Middle Mouse
          (Pinch & Spread)
        • ",t+="
        • Key z: Zoom in
        • ",t+="
        • Key x: Zoom out
        • ",t+="
        ",t+="",t+=this.getMenuText("mn6_translate","Translate",void 0,1,2),t+="
          ",t+="
        • Right Mouse
          (Two Finger Click & Drag)
        • ",t+="
        ",t+="",t+="
      ",t+="",t+=this.getMenuUrl("selhints",e.htmlCls.baseUrl+"icn3d/icn3d.html#selsubset","Selection Hints",void 0,1),t+=this.getMenuUrl("helpdesk","https://support.nlm.nih.gov/support/create-case/","Write to Help Desk",1,1),t+="

    • ",t+="
    ",t}hideMenu(){let e=this.icn3dui;e.bNode||(void 0!==$("#"+e.pre+"mnlist")[0]&&($("#"+e.pre+"mnlist")[0].style.display="none"),void 0!==$("#"+e.pre+"mnLogSection")[0]&&($("#"+e.pre+"mnLogSection")[0].style.display="none"),void 0!==$("#"+e.pre+"cmdlog")[0]&&($("#"+e.pre+"cmdlog")[0].style.display="none"),$("#"+e.pre+"title")[0].style.margin="10px 0 0 10px")}showMenu(){let e=this.icn3dui;e.bNode||(void 0!==$("#"+e.pre+"mnlist")[0]&&($("#"+e.pre+"mnlist")[0].style.display="block"),void 0!==$("#"+e.pre+"mnLogSection")[0]&&($("#"+e.pre+"mnLogSection")[0].style.display="block"),void 0!==$("#"+e.pre+"cmdlog")[0]&&($("#"+e.pre+"cmdlog")[0].style.display="block"))}}class c{constructor(e){this.icn3dui=e}openDlg(e,t){let s=this.icn3dui;s.icn3d,s.bNode||(e=s.pre+e,s.cfg.notebook?this.openDlgNotebook(e,t):this.openDlgRegular(e,t),s.htmlCls.themecolor||(s.htmlCls.themecolor="blue"),s.htmlCls.setMenuCls.setTheme(s.htmlCls.themecolor))}addSaveButton(e){let t=this.icn3dui;t.icn3d,t.bNode||void 0!==this.dialogHashSave&&this.dialogHashSave.hasOwnProperty(e)||($("#"+e).parent().children(".ui-dialog-titlebar").append("
    "),void 0===this.dialogHashSave&&(this.dialogHashSave={}),this.dialogHashSave[e]=1)}addHideButton(e){let t=this.icn3dui;t.icn3d,t.bNode||void 0!==this.dialogHashHide&&this.dialogHashHide.hasOwnProperty(e)||($("#"+e).parent().children(".ui-dialog-titlebar").append("
    "),void 0===this.dialogHashHide&&(this.dialogHashHide={}),this.dialogHashHide[e]=1)}getDialogStatus(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t={},s={},i=$("#"+e.pre+"dl_selectannotations").hasClass("ui-dialog-content"),n=$("#"+e.pre+"dl_graph").hasClass("ui-dialog-content"),l=$("#"+e.pre+"dl_linegraph").hasClass("ui-dialog-content"),r=$("#"+e.pre+"dl_scatterplot").hasClass("ui-dialog-content"),o=$("#"+e.pre+"dl_ligplot").hasClass("ui-dialog-content"),a=$("#"+e.pre+"dl_contactmap").hasClass("ui-dialog-content"),d=$("#"+e.pre+"dl_alignerrormap").hasClass("ui-dialog-content"),c=$("#"+e.pre+"dl_interactionsorted").hasClass("ui-dialog-content"),h=$("#"+e.pre+"dl_alignment").hasClass("ui-dialog-content"),p=$("#"+e.pre+"dl_2ddgm").hasClass("ui-dialog-content"),m=$("#"+e.pre+"dl_2dctn").hasClass("ui-dialog-content"),u=$("#"+e.pre+"dl_definedsets").hasClass("ui-dialog-content");return t.bSelectannotationsInit2=!1,t.bGraph2=!1,t.bLineGraph2=!1,t.bScatterplot2=!1,t.bLigplot2=!1,t.bTable2=!1,t.bAlignmentInit2=!1,t.bTwoddgmInit2=!1,t.bTwodctnInit2=!1,t.bSetsInit2=!1,s.dl_selectannotations="bSelectannotationsInit2",s.dl_graph="bGraph2",s.dl_linegraph="bLineGraph2",s.dl_scatterplot="bScatterplot2",s.dl_ligplot="bLigplot2",s.dl_contactmap="bContactmap2",s.dl_alignerrormap="bAlignerrormap2",s.dl_interactionsorted="bTable2",s.dl_alignment="bAlignmentInit2",s.dl_2ddgm="bTwoddgmInit2",s.dl_2dctn="bTwodctnInit2",s.dl_definedsets="bSetsInit2",i&&(t.bSelectannotationsInit2=$("#"+e.pre+"dl_selectannotations").dialog("isOpen")),n&&(t.bGraph2=$("#"+e.pre+"dl_graph").dialog("isOpen")),l&&(t.bLineGraph2=$("#"+e.pre+"dl_linegraph").dialog("isOpen")),r&&(t.bScatterplot2=$("#"+e.pre+"dl_scatterplot").dialog("isOpen")),o&&(t.bLigplot2=$("#"+e.pre+"dl_ligplot").dialog("isOpen")),a&&(t.bContactmap2=$("#"+e.pre+"dl_contactmap").dialog("isOpen")),d&&(t.bAlignerror2=$("#"+e.pre+"dl_alignerrormap").dialog("isOpen")),c&&(t.bTable2=$("#"+e.pre+"dl_interactionsorted").dialog("isOpen")),h&&(t.bAlignmentInit2=$("#"+e.pre+"dl_alignment").dialog("isOpen")),p&&(t.bTwoddgmInit2=$("#"+e.pre+"dl_2ddgm").dialog("isOpen")),m&&(t.bTwodctnInit2=$("#"+e.pre+"dl_2dctn").dialog("isOpen")),u&&(t.bSetsInit2=$("#"+e.pre+"dl_definedsets").dialog("isOpen")),{status:t,id2flag:s}}openDlgHalfWindow(e,t,s,i){let n=this.icn3dui,l=n.icn3d;if(n.bNode)return;let r=this,o=n.htmlCls.width2d+20;l.resizeCanvasCls.resizeCanvas(n.htmlCls.WIDTH-s,n.htmlCls.HEIGHT,i);let a,d=n.htmlCls.HEIGHT,c=s;a=!n.cfg.showmenu||n.utilsCls.isMobile()||n.cfg.mobilemenu?{my:"left top",at:"right top",of:"#"+n.pre+"viewer",collision:"none"}:{my:"left top",at:"right top+40",of:"#"+n.pre+"viewer",collision:"none"},n.cfg.resize=!1,window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:d,width:c,modal:!1,position:a,close:function(t){let s=r.getDialogStatus(),i=s.status,a=s.id2flag,d=!1;for(let t in a){let s=e===n.pre+t;for(let e in i)i.hasOwnProperty(e)||(s=s&&!i[e]);d=d||s}if(d)if(i.bTwoddgmInit2||i.bTwodctnInit2||i.bSetsInit2){let e=n.utilsCls.isMobile()?n.htmlCls.WIDTH:n.htmlCls.WIDTH-o;l.resizeCanvasCls.resizeCanvas(e,n.htmlCls.HEIGHT,!0),i.bTwoddgmInit2&&r.openDlg2Ddgm(n.pre+"dl_2ddgm",void 0,i.bSetsInit2),i.bTwodctnInit2&&r.openDlg2Ddgm(n.pre+"dl_2dctn",void 0,i.bSetsInit2),i.bSetsInit2&&r.openDlg2Ddgm(n.pre+"dl_definedsets")}else l.resizeCanvasCls.resizeCanvas(n.htmlCls.WIDTH,n.htmlCls.HEIGHT,!0)},resize:function(t){if(e==n.pre+"dl_selectannotations")l.annotationCls.hideFixedTitle();else if(e==n.pre+"dl_graph"){let t=$("#"+e).width(),s=$("#"+e).height();d3.select("#"+n.svgid).attr("width",t).attr("height",s)}else if(e==n.pre+"dl_linegraph"||e==n.pre+"dl_scatterplot"||e==n.pre+"dl_ligplot"||e==n.pre+"dl_contactmap"||e==n.pre+"dl_alignerrormap"){let t=status.bTwoddgmInit2||status.bSetsInit2?(n.htmlCls.WIDTH-o)/2:n.htmlCls.WIDTH/2,s=$("#"+e).width()/t;if(e==n.pre+"dl_linegraph"){let e=l.linegraphWidth*s;$("#"+n.linegraphid).attr("width",e)}else if(e==n.pre+"dl_scatterplot"){let e=l.scatterplotWidth*s;$("#"+n.scatterplotid).attr("width",e)}else if(e==n.pre+"dl_ligplot"){let e=l.ligplotWidth*s;$("#"+n.ligplotid).attr("width",e)}else if(e==n.pre+"dl_ligplot"){let e=l.ligplotWidth*s;$("#"+n.ligplotid).attr("width",e)}else if(e==n.pre+"dl_contactmap"){let e=l.contactmapWidth*s;$("#"+n.contactmapid).attr("width",e)}else if(e==n.pre+"dl_alignerrormap"){let e=l.alignerrormapWidth*s;$("#"+n.alignerrormapid).attr("width",e)}}}}),this.addSaveButton(e),this.addHideButton(e)}openDlg2Ddgm(e,t,s){let i=this.icn3dui,n=i.icn3d;if(i.bNode)return;let l,r,o=this,a=i.htmlCls.width2d+20;e===i.pre+"dl_definedsets"?(l="right top",r="Select sets"):e!==i.pre+"dl_2ddgm"&&e!==i.pre+"dl_2dctn"||(l=s?"right top+240":"right top",r=e===i.pre+"dl_2ddgm"?"2D Diagram":"2D Cartoon");let d={my:"left top+"+i.htmlCls.MENU_HEIGHT,at:l,of:"#"+i.pre+"viewer",collision:"none"};window.dialog=$("#"+e).dialog({autoOpen:!0,title:r,height:"auto",width:a,modal:!1,position:d,close:function(e){let t=o.getDialogStatus().status;t.bSelectannotationsInit2||t.bGraph2||t.bLineGraph2||t.bScatterplot2||t.bLigplot2||t.bTable2||t.bAlignmentInit2||n.resizeCanvasCls.resizeCanvas(i.htmlCls.WIDTH,i.htmlCls.HEIGHT,!0)},resize:function(t,s){e==i.pre+"dl_2dctn"&&(n.resizeRatioX=s.size.width/i.htmlCls.width2d,n.resizeRatioY=s.size.height/(i.htmlCls.width2d+70))},resizeStop:function(e,t){n.resizeRatioX=t.size.width/i.htmlCls.width2d,n.resizeRatioY=t.size.height/(i.htmlCls.width2d+70)}}),this.addSaveButton(e),this.addHideButton(e)}openDlgRegular(e,t){let s=this.icn3dui,i=s.icn3d;if(s.bNode)return;let n=400,l=150,r=s.htmlCls.width2d+20,o=this.getDialogStatus().status;if(e===s.pre+"dl_selectannotations"||e===s.pre+"dl_graph"||e===s.pre+"dl_linegraph"||e===s.pre+"dl_scatterplot"||e===s.pre+"dl_ligplot"||e===s.pre+"dl_contactmap"||e===s.pre+"dl_alignerrormap"||e===s.pre+"dl_interactionsorted"||e===s.pre+"dl_alignment"){let a=.5*s.htmlCls.WIDTH-.5*r;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)this.openDlgHalfWindow(e,t,a,!0),(o.bTwoddgmInit2||o.bTwodctnInit2||o.bSetsInit2)&&(i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-a-r,s.htmlCls.HEIGHT,!0),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,o.bSetsInit2),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,o.bSetsInit2),o.bSetsInit2&&this.openDlg2Ddgm(s.pre+"dl_definedsets"));else{i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH,.5*s.htmlCls.HEIGHT,!0),l=.5*s.htmlCls.HEIGHT,n=s.htmlCls.WIDTH;let a={my:"left top",at:"left bottom+32",of:"#"+s.pre+"canvas",collision:"none"};window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:l,width:n,modal:!1,position:a,close:function(t){if(!((e!==s.pre+"dl_selectannotations"||o.bAlignmentInit2||o.bGraph2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_graph"||o.bSelectannotationsInit2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_alignment"||o.bSelectannotationsInit2||o.bGraph2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_interactionsorted"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_linegraph"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_scatterplot"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_ligplot"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_contactmap"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bAlignerrormap2)&&(e!==s.pre+"dl_alignerrormap"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2)))if(o.bTwoddgmInit2||o.bTwodctnInit2||o.bSetsInit2){let e=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(e,s.htmlCls.HEIGHT,!0),o.bTwoddgmInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,o.bSetsInit2),o.bTwodctnInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,o.bSetsInit2),o.bSetsInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_definedsets")}else i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH,s.htmlCls.HEIGHT,!0)},resize:function(t){if(e==s.pre+"dl_selectannotations")i.annotationCls.hideFixedTitle();else if(e==s.pre+"dl_graph"){let t=$("#"+e).width(),i=$("#"+e).height();d3.select("#"+s.svgid).attr("width",t).attr("height",i)}else if(e==s.pre+"dl_linegraph"||e==s.pre+"dl_scatterplot"||e==s.pre+"dl_ligplot"||e==s.pre+"dl_contactmap"||e==s.pre+"dl_alignerrormap"){let t=o.bTwoddgmInit2||o.bSetsInit2?(s.htmlCls.WIDTH-r)/2:s.htmlCls.WIDTH/2,n=$("#"+e).width()/t;if(e==s.pre+"dl_linegraph"){let e=i.linegraphWidth*n;$("#"+s.linegraphid).attr("width",e)}else if(e==s.pre+"dl_scatterplot"){let e=i.scatterplotWidth*n;$("#"+s.scatterplotid).attr("width",e)}else if(e==s.pre+"dl_ligplot"){let e=i.ligplotWidth*n;$("#"+s.ligplotid).attr("width",e)}else if(e==s.pre+"dl_contactmap"){let e=i.contactmapWidth*n;$("#"+s.contactmapid).attr("width",e)}else if(e==s.pre+"dl_alignerrormap"){let e=i.alignerrormapWidth*n;$("#"+s.alignerrormapid).attr("width",e)}}}}),this.addSaveButton(e),this.addHideButton(e)}}else if(e===s.pre+"dl_2ddgm"||e===s.pre+"dl_2dctn"){let t=0;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)(o.bSelectannotationsInit2||o.bGraph2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bTable2||o.bAlignmentInit2)&&(t=.5*s.htmlCls.WIDTH-.5*r),i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-t-r,s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,void 0,o.bSetsInit2);else{let t=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(t,.5*s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT,o.bSetsInit2)}}else{let a;if(l="auto",n="auto",e===s.pre+"dl_addtrack"?n="50%":e===s.pre+"dl_menupref"&&(n=600,l=500),e===s.pre+"dl_definedsets"){let t=0;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)(o.bSelectannotationsInit2||o.bGraph2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bTable2||o.bAlignmentInit2)&&(t=.5*s.htmlCls.WIDTH-.5*r),i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-t-r,s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,!0),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,!0);else{let t=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(t,.5*s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",.5*s.htmlCls.HEIGHT,!0),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",.5*s.htmlCls.HEIGHT,!0)}}else s.utilsCls.isMobile()?a={my:"left top",at:"left bottom-50",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_allinteraction"||e===s.pre+"dl_buriedarea"?(a={my:"right top",at:"right top+50",of:"#"+i.divid,collision:"none"},n=700,l=500):a=e===s.pre+"dl_rmsd"||e===s.pre+"dl_legend"?{my:"left bottom",at:"left+20 bottom-20",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_symd"?{my:"left top",at:"right-200 bottom-200",of:"#"+s.pre+"canvas",collision:"none"}:s.cfg.align?{my:"left top",at:"left top+90",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_mmdbafid"?{my:"left top",at:"left top+130",of:"#"+s.pre+"canvas",collision:"none"}:{my:"left top",at:"left top+50",of:"#"+s.pre+"canvas",collision:"none"},window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:l,width:n,modal:!1,position:a}),this.addSaveButton(e),this.addHideButton(e)}$(".ui-dialog .ui-button span").removeClass("ui-icon-closethick").addClass("ui-icon-close")}openDlgNotebook(e,t){let s=this.icn3dui,i=s.icn3d;if(s.bNode)return;let n=400,l=150,r=s.htmlCls.width2d+20;e===s.pre+"dl_selectannotations"||e===s.pre+"dl_graph"||e===s.pre+"dl_linegraph"||e===s.pre+"dl_scatterplot"||e===s.pre+"dl_ligplot"||e===s.pre+"dl_contactmap"||e===s.pre+"dl_alignerrormap"||e===s.pre+"dl_interactionsorted"||e===s.pre+"dl_alignment"?($("#"+e).show(),$("#"+e+"_nb").show(),$("#"+e+"_title").html(t),l=.5*s.htmlCls.HEIGHT,n=s.htmlCls.WIDTH,$("#"+e).width(n),$("#"+e).height(l),$("#"+e).resize((function(t){let n=s.htmlCls.WIDTH/2,l=$("#"+e).width()/n;if(e==s.pre+"dl_selectannotations")i.annotationCls.hideFixedTitle();else if(e==s.pre+"dl_graph"){let t=$("#"+e).width(),i=$("#"+e).height();d3.select("#"+s.svgid).attr("width",t).attr("height",i)}else if(e==s.pre+"dl_linegraph"){let e=i.linegraphWidth*l;$("#"+s.linegraphid).attr("width",e)}else if(e==s.pre+"dl_scatterplot"){let e=i.scatterplotWidth*l;$("#"+s.scatterplotid).attr("width",e)}else if(e==s.pre+"dl_ligplot"){let e=i.ligplotWidth*l;$("#"+s.ligplotid).attr("width",e)}else if(e==s.pre+"dl_contactmap"){let e=i.contactmapWidth*l;$("#"+s.contactmapid).attr("width",e)}else if(e==s.pre+"dl_alignerrormap"){let e=i.alignerrormapWidth*l;$("#"+s.alignerrormapid).attr("width",e)}}))):(i.bRender&&($("#"+e).show(),$("#"+e+"_nb").show(),$("#"+e+"_title").html(t)),l="auto",n="auto",e===s.pre+"dl_addtrack"?n="50%":e===s.pre+"dl_2ddgm"||e===s.pre+"dl_2dctn"||e===s.pre+"dl_definedsets"?n=r:e!==s.pre+"dl_allinteraction"&&e!==s.pre+"dl_buriedarea"||(n=700,l=500),$("#"+e).width(n),$("#"+e).height(l))}}class h{constructor(e){this.icn3dui=e}setCustomDialogs(){let e=this.icn3dui;if(e.icn3d,e.bNode)return"";return""}getHtmlAlignResidueByResidue(e,t,s){let i=this.icn3dui;i.icn3d;let n="";return n+="All chains will be aligned to the first chain in the comma-separated chain IDs. Each chain ID has the form of PDBID_chain (e.g., 1HHO_A, case sensitive) or UniprotID (e.g., P69905 for AlphaFold structures).

    ",n+="Chain IDs: "+i.htmlCls.inputTextStr+"id='"+i.pre+e+"' value='P69905,P01942,1HHO_A' size=50>

    ",n+='Each alignment is defined as " | "-separated residue lists in one line. "10-50" means a range of residues from 10 to 50.

    ",n+=i.htmlCls.buttonStr+s+"'>Align Residue by Residue
    ",n}addNotebookTitle(e,t,s){let i=this.icn3dui;i.icn3d;let n='';return s&&(n+='
    '),n}setDialogs(){let e=this.icn3dui,t=e.icn3d;if(e.bNode)return"";let s="";e.htmlCls.optionStr="";for(let l=0,r=t[n].length;l"+r+", Strands: "+s[r]+""}i+=""}return i}getAnnoHeader(){let e=this.icn3dui;e.icn3d;let t="";t+="
    Annotations: 
    ",t+="
    ";let s="",t+=i+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_cdd' checked>Conserved Domains"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_clinvar'>ClinVar"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_binding'>Functional Sites"+e.htmlCls.space2+"",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_custom'>Custom"+e.htmlCls.space2+"",t+=i+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_3dd'>3D Domains"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_snp'>SNPs"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ptm'>PTM (UniProt)"+e.htmlCls.space2+"",t+="",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ssbond'>Disulfide Bonds"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_interact'>Interactions"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_crosslink'>Cross-Linkages"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_transmem'>Transmembrane"+e.htmlCls.space2+"",t+="",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ig'>Ig Domains"+e.htmlCls.space2+"",t+="",t+="
    ",i="";return t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_all'>All"+e.htmlCls.space2+"
    ",t}}class p{constructor(e){this.icn3dui=e}setLogCmd(e,t,s){var i=this.icn3dui;i.icn3d,i.htmlCls.clickMenuCls.setLogCmd(e,t,s)}fullScreenChange(){let e=this.icn3dui,t=e.icn3d,s=this;e.bNode||document.fullscreenElement||document.webkitFullscreenElement||document.mozFullscreenElement||document.msFullscreenElement||(s.setLogCmd("exit full screen",!1),t.bFullscreen=!1,e.utilsCls.setViewerWidthHeight(e,!0),t.applyCenterCls.setWidthHeight(e.htmlCls.WIDTH,e.htmlCls.HEIGHT),t.drawCls.draw())}convertUniProtInChains(e){this.icn3dui.icn3d;let t=e.split(","),s="";for(let e=0,i=t.length;e0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(l)),s.cfg.aligntool=e;let r="vast"==e?"structure align":"tmalign";if(r+=t?" msa":"",l.length>0?n.setLogCmd("realign on "+r+" | "+l,!0):n.setLogCmd("realign on "+r,!0),t){if(0==l.length){l=[];let e={};for(let t in i.chains){let s=i.firstAtomObjCls.getFirstAtomObj(i.chains[t]);e.hasOwnProperty(s.structure)||!i.proteins.hasOwnProperty(s.serial)&&!i.nucleotides.hasOwnProperty(s.serial)||(l.push(t),e[s.structure]=1)}}await i.realignParserCls.realignOnStructAlignMsa(l)}else await i.realignParserCls.realignOnStructAlign()}async readFile(e,t,s,i,n,l){let r=this.icn3dui,o=r.icn3d,a=this,d=t[s],c=e?"append":"load";c+=n?" mmcif file ":l?" png file ":" pdb file ";let h=new FileReader;h.onload=async function(h){let p=h.target.result;if(a.setLogCmd(c+d.name,!1),e?(o.resetConfig(),o.bResetAnno=!0,o.bResetSets=!0):o.init(),o.bInputfile=!0,o.InputfileType=n?"mmcif":l?"png":"pdb",l){let e=await r.htmlCls.setHtmlCls.loadPng(p);if(p=e.pdb,!p)return;o.statefileArray||(o.statefileArray=[]),o.statefileArray.push(e.statefile)}o.InputfileData=o.InputfileData?o.InputfileData+"\nENDMDL\n"+p:p,i=s>0?i+"\nENDMDL\n"+p:p,Object.keys(t).length==s+1?(e&&(o.hAtoms={},o.dAtoms={}),n?await o.mmcifParserCls.loadMultipleMmcifData(i,void 0,e):await o.pdbParserCls.loadPdbData(i,void 0,void 0,e)):await a.readFile(e,t,s+1,i,n,l),e&&(o.bSetChainsAdvancedMenu&&o.definedSetsCls.showSets(),o.bResetAnno=!0,o.bAnnoShown&&(await o.showAnnoCls.showAnnotations(),o.annotationCls.resetAnnoTabAll()))},"object"==typeof d&&h.readAsText(d)}async loadPdbFile(e,t,s){let i=this.icn3dui,n=i.icn3d;n.bInitial=!0,i.cfg.notebook||dialog.dialog("close"),i.cfg.notebook?n.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let l=$("#"+i.pre+t)[0].files;l[0]?(i.htmlCls.setHtmlCls.fileSupport(),n.molTitle="",n.dataStrAll="",await this.readFile(e,l,0,"",s)):alert("Please select a file before clicking 'Load'")}saveHtml(e){let t=this.icn3dui.icn3d,s="";s+='\n',s+='\n',s+=$("#"+e).html();let i=e.split("_"),n=i.length>2?i[2]:e,l=Object.keys(t.structures)[0];Object.keys(t.structures).length>1&&(l+="-"+Object.keys(t.structures)[1]),t.saveFileCls.saveFile(l+"-"+n+".html","html",encodeURIComponent(s))}setPredefinedMenu(e){let t=this.icn3dui,s=t.icn3d;if(Object.keys(s.chains).length<2)return void alert("At least two chains are required for alignment...");t.htmlCls.clickMenuCls.SetChainsAdvancedMenu();let i=s.definedSetsCls.setAtomMenu(["protein"]);$("#"+t.pre+e).length&&$("#"+t.pre+e).html(i),$("#"+t.pre+e).resizable()}async launchMmdb(e,t,s,i){let n=this.icn3dui,l=n.icn3d,r=this;n.cfg.notebook||dialog.dialog("close");let o=t?1:0;if(!(e=e.replace(/,/g," ").replace(/\s+/g,",").trim()))return void alert("Please enter a list of PDB IDs or AlphaFold UniProt IDs...");let a=e.split(",");if(i)if(l.structures||1!=a.length||4!=a[0].length&&isNaN(a[0])){n.cfg.mmdbafid=e,n.cfg.bu=o,l.bMmdbafid=!0,l.inputid=l.inputid?l.inputid+n.cfg.mmdbafid:n.cfg.mmdbafid,1==n.cfg.bu?l.loadCmd="load mmdbaf1 "+n.cfg.mmdbafid:l.loadCmd="load mmdbaf0 "+n.cfg.mmdbafid,n.htmlCls.clickMenuCls.setLogCmd(l.loadCmd,!0);let t=!!(l.structures&&Object.keys(l.structures).length>0);await l.chainalignParserCls.downloadMmdbAf(n.cfg.mmdbafid),t&&(l.bSetChainsAdvancedMenu&&l.definedSetsCls.showSets(),l.bAnnoShown&&(await l.showAnnoCls.showAnnotations(),l.annotationCls.resetAnnoTabAll()))}else{r.setLogCmd("load mmdb"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbid="+e+"&bu="+o,t)}else if(1!=a.length||4!=a[0].length&&isNaN(a[0])){r.setLogCmd("load mmdbaf"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbafid="+e+"&bu="+o,t)}else{r.setLogCmd("load mmdb"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbid="+e+"&bu="+o,t)}}allEventFunctions(){let e=this.icn3dui,t=e.icn3d,s=this;if(e.bNode)return;let i=document.URL,n=i.indexOf("?");i=-1==n?i:i.substr(0,n),i.indexOf("/vast/icn3d/")&&(i=i.replace(/\/vast\/icn3d\//g,"/icn3d/")),t.definedSetsCls.clickCustomAtoms(),t.definedSetsCls.clickCommand_apply(),t.definedSetsCls.clickModeswitch(),t.selectionCls.clickShow_selected(),t.selectionCls.clickHide_selected(),t.diagram2dCls.click2Ddgm(),t.cartoon2dCls.click2Dcartoon(),t.ligplotCls.clickLigplot(),t.addTrackCls.clickAddTrackButton(),t.resizeCanvasCls.windowResize(),t.annotationCls.setTabs(),t.resid2specCls.switchHighlightLevel(),e.utilsCls.isMobile()?(t.hlSeqCls.selectSequenceMobile(),t.hlSeqCls.selectChainMobile()):t.hlSeqCls.selectSequenceNonMobile(),e.htmlCls.clickMenuCls.clickMenu1(),e.htmlCls.clickMenuCls.clickMenu2(),e.htmlCls.clickMenuCls.clickMenu3(),e.htmlCls.clickMenuCls.clickMenu4(),e.htmlCls.clickMenuCls.clickMenu5(),e.htmlCls.clickMenuCls.clickMenu6(),e.myEventCls.onIds(["#"+e.pre+"back","#"+e.pre+"mn6_back"],"click",(async function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("back",!1),await i.resizeCanvasCls.back()})),e.myEventCls.onIds(["#"+e.pre+"forward","#"+e.pre+"mn6_forward"],"click",(async function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("forward",!1),await i.resizeCanvasCls.forward()})),e.myEventCls.onIds(["#"+e.pre+"fullscreen","#"+e.pre+"mn6_fullscreen"],"click",(function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("enter full screen",!1),i.bFullscreen=!0,e.htmlCls.WIDTH=$(window).width(),e.htmlCls.HEIGHT=$(window).height(),i.applyCenterCls.setWidthHeight(e.htmlCls.WIDTH,e.htmlCls.HEIGHT),i.drawCls.draw(),i.resizeCanvasCls.openFullscreen($("#"+e.pre+"canvas")[0])})),document.addEventListener("fullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("webkitfullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("mozfullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("msfullscreenchange",this.fullScreenChange.bind(this)),e.myEventCls.onIds(["#"+e.pre+"toggle","#"+e.pre+"mn2_toggle"],"click",(function(t){e.icn3d.selectionCls.toggleSelection(),s.setLogCmd("toggle selection",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrYellow","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color yellow",!0),i.hColor=e.parasCls.thr(16776960),i.matShader=i.setColorCls.setOutlineColor("yellow"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrGreen","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color green",!0),i.hColor=e.parasCls.thr(65280),i.matShader=i.setColorCls.setOutlineColor("green"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrRed","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color red",!0),i.hColor=e.parasCls.thr(16711680),i.matShader=i.setColorCls.setOutlineColor("red"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleOutline","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight style outline",!0),i.bHighlight=1,i.hlUpdateCls.showHighlight()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleObject","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight style 3d",!0),i.bHighlight=2,i.hlUpdateCls.showHighlight()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleNone","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds(["#"+e.pre+"alternate","#"+e.pre+"mn2_alternate","#"+e.pre+"alternate2"],"click",(async function(t){let i=e.icn3d;i.bAlternate=!0,await i.alternateCls.alternateStructures(),i.bAlternate=!1,s.setLogCmd("alternate structures",!1)})),e.myEventCls.onIds("#"+e.pre+"mn2_realignresbyres","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_realignresbyres","Align multiple chains residue by residue")})),e.myEventCls.onIds("#"+e.pre+"realignSelection","click",(function(t){let i=e.icn3d;Object.keys(i.chains).length<2?alert("At least two chains are required for alignment..."):(i.realignParserCls.realign(),s.setLogCmd("realign",!0))})),e.myEventCls.onIds("#"+e.pre+"mn2_realignonseqalign","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realign","Please select chains to realign"),s.setPredefinedMenu("atomsCustomRealign")})),e.myEventCls.onIds("#"+e.pre+"mn2_realignonstruct","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realignbystruct","Please select chains to realign"),s.setPredefinedMenu("atomsCustomRealignByStruct")})),e.myEventCls.onIds("#"+e.pre+"mn2_realigntwostru","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realigntwostru","Please select structures to realign"),s.setPredefinedMenu("atomsCustomRealignByStruct2")})),e.myEventCls.onIds("#"+e.pre+"applyRealign","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomRealign").val();n.length>0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(n)),await i.realignParserCls.realignOnSeqAlign(),n.length>0?s.setLogCmd("realign on seq align | "+n,!0):s.setLogCmd("realign on seq align",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("vast",!1)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct_tmalign","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("tmalign",!1)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStructMsa","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("vast",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStructMsa_tmalign","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("tmalign",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct_vastplus","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomRealignByStruct2").val();n.length>0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(n)),await i.vastplusCls.realignOnVastplus(),n.length>0?s.setLogCmd("realign on vastplus | "+n,!0):s.setLogCmd("realign on vastplus",!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorSpectrumAcrossSets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorSpectrumAcross").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorAcrossSets(n,!0),s.setLogCmd("set color spectrum | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorSpectrumBySets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorSpectrum").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorBySets(n,!0),s.setLogCmd("set residues color spectrum | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorRainbowAcrossSets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorRainbowAcross").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorAcrossSets(n,!1),s.setLogCmd("set color rainbow | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorRainbowBySets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorRainbow").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorBySets(n,!1),s.setLogCmd("set residues color rainbow | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"anno_summary","click",(function(t){let i=e.icn3d;t.preventDefault(),i.annotationCls.setAnnoViewAndDisplay("overview"),s.setLogCmd("set view overview",!0)})),e.myEventCls.onIds("#"+e.pre+"anno_details","click",(function(t){let i=e.icn3d;t.preventDefault(),i.annotationCls.setAnnoViewAndDisplay("detailed view"),s.setLogCmd("set view detailed view",!0)})),e.myEventCls.onIds("#"+e.pre+"show_annotations","click",(async function(t){let i=e.icn3d;await i.showAnnoCls.showAnnotations(),s.setLogCmd("view annotations",!0)})),e.myEventCls.onIds("#"+e.pre+"showallchains","click",(function(t){e.icn3d.annotationCls.showAnnoAllChains(),s.setLogCmd("show annotations all chains",!0)})),e.myEventCls.onIds("#"+e.pre+"show_alignsequences","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_alignment","Select residues in aligned sequences")})),e.myEventCls.onIds(["#"+e.pre+"show_2ddgm","#"+e.pre+"mn2_2ddgm"],"click",(async function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_2ddgm","2D Diagram"),await i.viewInterPairsCls.retrieveInteractionData(),s.setLogCmd("view interactions",!0)})),e.myEventCls.onIds("#"+e.pre+"search_seq_button","click",(async function(t){e.icn3d,t.stopImmediatePropagation(),await s.searchSeq()})),e.myEventCls.onIds("#"+e.pre+"search_seq","keyup",(async function(t){e.icn3d,13===t.keyCode&&(t.preventDefault(),await s.searchSeq())})),e.myEventCls.onIds("#"+e.pre+"reload_vastplus","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("vast+ search "+$("#"+e.pre+"vastpluspdbid").val(),!1);let n=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open("https://www.ncbi.nlm.nih.gov/Structure/vastplus/vastplus.cgi?uid="+$("#"+e.pre+"vastpluspdbid").val(),n)})),e.myEventCls.onIds("#"+e.pre+"reload_vast","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("vast search "+$("#"+e.pre+"vastpdbid").val()+"_"+$("#"+e.pre+"vastchainid").val(),!1);let n=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open("https://www.ncbi.nlm.nih.gov/Structure/vast/vastsrv.cgi?pdbid="+$("#"+e.pre+"vastpdbid").val()+"&chain="+$("#"+e.pre+"vastchainid").val(),n)})),e.myEventCls.onIds("#"+e.pre+"reload_foldseek","click",(function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"foldseekchainids").val(),l=s.convertUniProtInChains(n);s.setLogCmd("load chainalignment "+l,!0),window.open(i+"?chainalign="+l+"&aligntool=tmalign&showalignseq=1&bu=0","_self")})),e.myEventCls.onIds("#"+e.pre+"reload_mmtf","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load bcif "+$("#"+e.pre+"mmtfid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?bcifid="+$("#"+e.pre+"mmtfid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"mmtfid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmtf "+$("#"+e.pre+"mmtfid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmtfid="+$("#"+e.pre+"mmtfid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_pdb","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load pdb "+$("#"+e.pre+"pdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?pdbid="+$("#"+e.pre+"pdbid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"translate_pdb","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"translateX").val(),l=$("#"+e.pre+"translateY").val(),r=$("#"+e.pre+"translateZ").val();i.transformCls.translateCoord(i.hAtoms,parseFloat(n),parseFloat(l),parseFloat(r)),i.drawCls.draw(),s.setLogCmd("translate pdb "+n+" "+l+" "+r,!0)})),e.myEventCls.onIds("#"+e.pre+"measure_angle","click",(function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"v1X").val(),n=$("#"+e.pre+"v1Y").val(),l=$("#"+e.pre+"v1Z").val(),r=$("#"+e.pre+"v2X").val(),o=$("#"+e.pre+"v2Y").val(),a=$("#"+e.pre+"v2Z").val(),d=new THREE.Vector3(parseFloat(i),parseFloat(n),parseFloat(l)).angleTo(new THREE.Vector3(parseFloat(r),parseFloat(o),parseFloat(a)))/3.1416*180;d=Math.abs(d).toFixed(0),d>180&&(d-=180),d>90&&(d=180-d),s.setLogCmd("The angle is "+d+" degree",!1),$("#"+e.pre+"angle_value").val(d)})),e.myEventCls.onIds("#"+e.pre+"matrix_pdb","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=[];for(let t=0;t<16;++t)n.push(parseFloat($("#"+e.pre+"matrix"+t).val()));i.transformCls.rotateCoord(i.hAtoms,n),i.drawCls.draw(),s.setLogCmd("rotate pdb "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"pdbid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load pdb "+$("#"+e.pre+"pdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?pdbid="+$("#"+e.pre+"pdbid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_af","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load af "+$("#"+e.pre+"afid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?afid="+$("#"+e.pre+"afid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_afmap","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=e.cfg.afid?e.cfg.afid:$("#"+e.pre+"afid").val();s.setLogCmd("set half pae map "+n,!0),await i.contactMapCls.afErrorMap(n)})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfull","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=e.cfg.afid?e.cfg.afid:$("#"+e.pre+"afid").val();s.setLogCmd("set full pae map "+n,!0),await i.contactMapCls.afErrorMap(n,!0)})),e.myEventCls.onIds("#"+e.pre+"afid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load af "+$("#"+e.pre+"afid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?afid="+$("#"+e.pre+"afid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_opm","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load opm "+$("#"+e.pre+"opmid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?opmid="+$("#"+e.pre+"opmid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"opmid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load opm "+$("#"+e.pre+"opmid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?opmid="+$("#"+e.pre+"opmid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_align_refined","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=1&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=1&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_align_ori","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=0&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=0&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_align_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=2&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=2&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_alignaf","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignafid1").val()+"_A,"+$("#"+e.pre+"alignafid2").val()+"_A";s.setLogCmd("load chains "+l+" | residues | resdef ",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+l+"&resnum=&resdef=&showalignseq=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_alignaf_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignafid1").val()+"_A,"+$("#"+e.pre+"alignafid2").val()+"_A";s.setLogCmd("load chains "+l+" | residues | resdef | align tmalign",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+l+"&aligntool=tmalign&resnum=&resdef=&showalignseq=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids").val(),r=s.convertUniProtInChains(l);s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef ",!1);let o=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum=&resdef=&showalignseq=1&bu=0",o)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym2","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids2").val(),r=s.convertUniProtInChains(l),o=$("#"+e.pre+"resalignids").val();s.setLogCmd("load chains "+r+" on asymmetric unit | residues "+o+" | resdef ",!1);let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum="+o+"&resdef=&showalignseq=1&bu=0",a)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym3","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids3").val(),r=s.convertUniProtInChains(l),o=$("#"+e.pre+"predefinedres").val().trim().replace(/\n/g,": ");if(o&&r.split(",").length-1!=o.split(": ").length)return void alert("Please make sure the number of chains and the lines of predefined residues are the same...");s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef "+o,!1);let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum=&resdef="+o+"&showalignseq=1&bu=0",a)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym4","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"chainalignids4").val(),l=s.convertUniProtInChains(n),r=$("#"+e.pre+"predefinedres2").val().trim().replace(/\n/g,": ");if(r&&l.split(",").length-1!=r.split(": ").length)return void alert("Please make sure the number of chains and the lines of predefined residues are the same...");e.cfg.resdef=r.replace(/:/gi,";");let o=l.split(",");await i.realignParserCls.realignChainOnSeqAlign(void 0,o,!0,!0),s.setLogCmd("realign predefined "+l+" "+r,!0)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids").val(),r=s.convertUniProtInChains(l);s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef | align tmalign",!1);let o=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&aligntool=tmalign&resnum=&resdef=&showalignseq=1&bu=0",o)})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_3d","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o;await n.scapCls.retrieveScap(e),s.setLogCmd("scap 3d "+e,!0),s.setLogCmd("select displayed set",!0)}else{let e=o.substr(0,o.indexOf("_"));s.setLogCmd("3d of mutation "+o,!1);let t=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?"+l+"="+e+"&command=scap 3d "+o+"; select displayed set",t)}})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_pdb","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o,t=!0;await n.scapCls.retrieveScap(e,void 0,t),s.setLogCmd("scap pdb "+e,!0)}else{let e=o.substr(0,o.indexOf("_"));s.setLogCmd("pdb of mutation "+o,!1);let t=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?"+l+"="+e+"&command=scap pdb "+o+"; select displayed set",t)}})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_inter","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o,t=!0;await n.scapCls.retrieveScap(e,t),s.setLogCmd("scap interaction "+e,!0);let i=e.split("_"),l="."+i[1]+":"+i[2],r="snp_"+i[1]+"_"+i[2];s.setLogCmd("select "+l+" | name "+r,!0),s.setLogCmd("line graph interaction pairs | selected non-selected | hbonds,salt bridge,interactions,halogen,pi-cation,pi-stacking | false | threshold 3.8 6 4 3.8 6 5.5",!0),s.setLogCmd("adjust dialog dl_linegraph",!0),s.setLogCmd("select displayed set",!0)}else{let e=o.split(","),t=[];for(let s=0,i=e.length;s0?"_blank":"_self";window.open(i+"?"+l+"="+r+"&command=scap interaction "+o,a)}})),e.myEventCls.onIds("#"+e.pre+"reload_mmcif","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmcif "+$("#"+e.pre+"mmcifid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmcifid="+$("#"+e.pre+"mmcifid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"mmcifid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmcif "+$("#"+e.pre+"mmcifid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmcifid="+$("#"+e.pre+"mmcifid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_mmdb","click",(function(t){let n=e.icn3d;t.preventDefault(),s.setLogCmd("load mmdb1 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=1",l)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdb_asym","click",(function(t){let n=e.icn3d;t.preventDefault(),s.setLogCmd("load mmdb0 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=0",l)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_asym","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,0,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_append","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i,!0)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_asym_append","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,0,i,!0)})),e.myEventCls.onIds("#"+e.pre+"mmdbid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),s.setLogCmd("load mmdb1 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=1",l)}})),e.myEventCls.onIds("#"+e.pre+"mmdbafid","keyup",(function(t){if(e.icn3d,13===t.keyCode){t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i)}})),e.myEventCls.onIds("#"+e.pre+"reload_blast_rep_id","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=blast&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"run_esmfold","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),$("#"+e.pre+"dl_mmdbafid").hasClass("ui-dialog-content")&&$("#"+e.pre+"dl_mmdbafid").dialog("close");let n=$("#"+e.pre+"esmfold_fasta").val(),l="stru--";if(-1!=n.indexOf(">")){let e=n.indexOf("\n");if(i.esmTitle=n.substr(1,e-1).trim(),-1!=i.esmTitle.indexOf("|")){let e=i.esmTitle.split("|");l=e.length>2?e[1]:i.esmTitle}else l=-1!=i.esmTitle.indexOf(" ")?i.esmTitle.substr(0,i.esmTitle.indexOf(" ")):i.esmTitle;l.length<6&&(l=l.padEnd(6,"-")),n=n.substr(e+1)}if(n=n.replace(/\s/g,""),n.length>400)return void alert("Your sequence is larger than 400 characters. Please consider to split it as described at https://github.com/facebookresearch/esm/issues/21.");s.setLogCmd("Run ESMFold with the sequence "+n,!1);let r=await e.getAjaxPostPromise("https://api.esmatlas.com/foldSequence/v1/pdb/",n,!0,"Problem in returning PDB from ESMFold server...",void 0,!0,"text");i.bResetAnno=!0,i.bInputfile=!0,i.InputfileType="pdb",i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+r:r,i.bEsmfold=!0;await i.pdbParserCls.loadPdbData(r,l,void 0,!0,void 0,void 0,void 0,i.bEsmfold)})),e.myEventCls.onIds("#"+e.pre+"reload_alignsw","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids_smithwm "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=smithwm&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"reload_alignswlocal","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids_local_smithwm "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=local_smithwm&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"reload_proteinname","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load protein "+$("#"+e.pre+"proteinname").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?protein="+$("#"+e.pre+"proteinname").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_refseq","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load refseq "+$("#"+e.pre+"refseqid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?refseqid="+$("#"+e.pre+"refseqid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"gi","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load gi "+$("#"+e.pre+"gi").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?gi="+$("#"+e.pre+"gi").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_uniprotid","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load uniprotid "+$("#"+e.pre+"uniprotid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?uniprotid="+$("#"+e.pre+"uniprotid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"uniprotid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load uniprotid "+$("#"+e.pre+"uniprotid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?uniprotid="+$("#"+e.pre+"uniprotid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_cid","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load cid "+$("#"+e.pre+"cid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?cid="+$("#"+e.pre+"cid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_smiles","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=s.structures&&Object.keys(s.structures).length>0?"_blank":"_self";n="_blank",window.open(i+"?smiles="+encodeURIComponent($("#"+e.pre+"smiles").val()),"_blank")})),e.myEventCls.onIds("#"+e.pre+"cid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load cid "+$("#"+e.pre+"cid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?cid="+$("#"+e.pre+"cid").val(),l)}})),e.htmlCls.setHtmlCls.clickReload_pngimage(),e.myEventCls.onIds("#"+e.pre+"reload_state","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close"),i.bInputfile||i.init();let n=$("#"+e.pre+"state")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){i.bStatefile=!0;let n=t.target.result;s.setLogCmd("load state file "+$("#"+e.pre+"state").val(),!1),i.commands=[],i.optsHistory=[],await i.loadScriptCls.loadScript(n,!0)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_selectionfile","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"selectionfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;await i.selectionCls.loadSelection(n),s.setLogCmd("load selection file "+$("#"+e.pre+"selectionfile").val(),!1)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_collectionfile","click",(function(t){let s=e.icn3d;t.preventDefault();let i=$("#"+e.pre+"collectionfile")[0].files[0];if(i){e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?s.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close"),s.bInputfile=!1,s.pdbCollection=[],s.allData={},s.allData.all={atoms:{},proteins:{},nucleotides:{},chemicals:{},ions:{},water:{},structures:{},ssbondpnts:{},residues:{},chains:{},chainsSeq:{},defNames2Atoms:{},defNames2Residues:{}},s.allData.prev={},s.selectCollectionsCls.reset(),s.dAtoms=e.hashUtilsCls.cloneHash(s.atoms),s.hAtoms=e.hashUtilsCls.cloneHash(s.atoms),e.htmlCls.setHtmlCls.fileSupport();let t=i.name.split(".").pop().toLowerCase();function n(e){return JSON.parse(e).structures.map((({id:e,title:t,description:s,commands:i})=>(e&&e.includes(".pdb")&&(e=e.split(".pdb")[0]),[e,t,s,i,!1])))}function l(e,t="",i=[]){let n=e.split("\n"),l=[],r=[];n.forEach((e=>{e.startsWith("HEADER")&&(r=[],l.push(r)),r.push(e)}));let o=[],a=[];return l.forEach((e=>{let t=e[0];t=t.replace(/[\n\r]/g,"").trim();let s=t.split(" ").filter(Boolean),i=s[s.length-1];o.push(i),a.push(e[1].startsWith("TITLE")?e[1].split("TITLE").pop().trim():i)})),l.length>0&&s.pdbCollection.push(...l),o.map(((e,t,s,i)=>[e,a[t],s,i,!0]))}$("#"+s.pre+"collections_menu").empty(),$("#"+s.pre+"collections_menu").off("change");let r=[];if("json"===t||"pdb"===t){let o=new FileReader;o.onload=async function(i){"json"===t?r=n(i.target.result):"pdb"===t&&(s.bInputfile=!0,r=l(i.target.result));let o=await s.selectCollectionsCls.setAtomMenu(r);$("#"+s.pre+"collections_menu").html(o),await s.selectCollectionsCls.clickStructure(r),$("#"+s.pre+"collections_menu").trigger("change"),e.htmlCls.clickMenuCls.setLogCmd("load collection file "+$("#"+e.pre+"collectionfile").val(),!1)},o.readAsText(i)}else{if("zip"!==t&&"gz"!==t)throw new Error("Invalid file type");{s.bInputfile=!0;let o=new FileReader;o.onload=async function(i){if("zip"===t){let t="./script/jszip.js";await e.getAjaxPromise(t,"script");let s=new JSZip;try{let t=await s.loadAsync(i.target.result),o=!1,a=!1,d=!1,c=[],h=[],p=[];for(let e in t.files){let s=t.files[e];s.dir||(e.endsWith(".json")?(o=!0,c.push(s)):e.endsWith(".pdb")?(a=!0,h.push(s)):e.endsWith(".gz")&&(d=!0,p.push(s)))}if(o&&a){let e=[];for(const t of c){n(await t.async("text")).forEach((t=>{e.push(t)}))}for(const[t,s,i,n,o]of e){let e=h.find((e=>e.name.toLowerCase().includes(t.toLowerCase())));if(e){l(await e.async("text"),i,n).forEach((e=>{r.push(e)}))}}}else if(o)c.forEach((async e=>{n(await e.async("text")).forEach((e=>{r.push(e)}))}));else if(a)h.forEach((async e=>{l(await e.async("text")).forEach((e=>{r.push(e)}))}));else if(d){let t="./script/pako.js";await e.getAjaxPromise(t,"script");try{for(const e of p){let t=await e.async("uint8array");l(pako.inflate(t,{to:"string"})).forEach((e=>{r.push(e)}))}}catch(e){console.error("Error loading GZ file",e)}}}catch(e){console.error("Error loading ZIP file",e)}}else if("gz"===t){let t="./script/pako.js";await e.getAjaxPromise(t,"script");try{const e=new Uint8Array(i.target.result),t=pako.inflate(e,{to:"string"});r=l(t)}catch(e){console.error("Error loading GZ file",e)}}let o=await s.selectCollectionsCls.setAtomMenu(r);$("#"+s.pre+"collections_menu").html(o),await s.selectCollectionsCls.clickStructure(r),$("#"+s.pre+"collections_menu").trigger("change"),e.htmlCls.clickMenuCls.setLogCmd("load collection file "+$("#"+e.pre+"collectionfile").val(),!1)},o.onerror=function(e){console.error("Error reading file",e)},o.readAsArrayBuffer(i)}}Object.keys(e.utilsCls.getStructures(s.dAtoms))?($("#"+e.pre+"dl_collection_file").hide(),$("#"+e.pre+"dl_collection_structures").show(),$("#"+e.pre+"dl_collection_file_expand").show(),$("#"+e.pre+"dl_collection_file_shrink").hide(),$("#"+e.pre+"dl_collection_structures_expand").hide(),$("#"+e.pre+"dl_collection_structures_shrink").show()):($("#"+e.pre+"dl_collection_file").show(),$("#"+e.pre+"dl_collection_structures").hide(),$("#"+e.pre+"dl_collection_file_expand").hide(),$("#"+e.pre+"dl_collection_file_shrink").hide(),$("#"+e.pre+"dl_collection_structures_expand").show(),$("#"+e.pre+"dl_collection_structures_shrink").hide()),e.htmlCls.dialogCls.openDlg("dl_selectCollections","Select Collections")}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"opendl_export_collections","click",(function(t){e.htmlCls.dialogCls.openDlg("dl_export_collections","Export Collections")})),e.myEventCls.onIds("#"+e.pre+"export_collections","click",(function(t){let s=e.icn3d;const i=document.getElementById(e.pre+"collections_menu"),n=[],l=document.getElementById("dl_collectionExportSelected"),r=document.getElementById("dl_collectionExportAll");l.checked?Array.from(i.options).filter((e=>e.selected)).forEach((e=>{const t=e.value,i=e.textContent.trim(),l=e.getAttribute("data-description");n.push({id:t,title:i,description:l||"",commands:s.allData[t]&&s.allData[t].commands?s.allData[t].commands:[]})})):r.checked&&Array.from(i.options).forEach((e=>{const t=e.value,i=e.textContent.trim(),l=e.getAttribute("data-description");n.push({name:t,title:i,description:l||"",commands:s.allData[t]&&s.allData[t].commands?s.allData[t].commands:[]})}));const o=new Date,a=`${o.getMonth()+1}_${o.getDate()}_${o.getFullYear()}`,d={collectionTitle:document.getElementById("dl_collectionTitle").value,collectionDescription:document.getElementById("dl_collectionDescription").value,structures:n},c=`${d.collectionTitle.replace(/\s+/g,"_")}_${a}.json`,h=JSON.stringify(d,null,2),p=new Blob([h],{type:"application/json"}),m=URL.createObjectURL(p),u=document.createElement("a");u.href=m,u.download=c,document.body.appendChild(u),u.click(),document.body.removeChild(u),URL.revokeObjectURL(m)})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6file2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6File("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6filefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6File("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4file2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4File("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4filefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4File("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfile2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfilefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfile2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("2fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfilefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_delphifile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadDelphiFile("delphi")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrfile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("pqr")})),e.myEventCls.onIds("#"+e.pre+"reload_phifile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("phi")})),e.myEventCls.onIds("#"+e.pre+"reload_cubefile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("cube")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("pqrurl")})),e.myEventCls.onIds("#"+e.pre+"reload_phiurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("phiurl")})),e.myEventCls.onIds("#"+e.pre+"reload_cubeurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("cubeurl")})),e.myEventCls.onIds("#"+e.pre+"reload_delphifile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("delphi"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadDelphiFile("delphi2")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrfile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("pqr2")})),e.myEventCls.onIds("#"+e.pre+"reload_phifile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("phi2")})),e.myEventCls.onIds("#"+e.pre+"reload_cubefile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("cube2")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("pqrurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_phiurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("phiurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_cubeurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("cubeurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6fileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6FileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6fileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6FileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4fileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4FileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4fileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4FileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfileurl2fofc","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.mtzParserCls.loadMtzFileUrl("2fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfileurlfofc","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.mtzParserCls.loadMtzFileUrl("fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_pdbfile","click",(async function(t){e.icn3d,t.preventDefault();await s.loadPdbFile(!1,"pdbfile")})),e.myEventCls.onIds("#"+e.pre+"reload_pdbfile_app","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bAppend=!0,await s.loadPdbFile(i.bAppend,"pdbfile_app")})),e.myEventCls.onIds("#"+e.pre+"reload_mol2file","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"mol2file")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load mol2 file "+$("#"+e.pre+"mol2file").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="mol2",await i.mol2ParserCls.loadMol2Data(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_sdffile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"sdffile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load sdf file "+$("#"+e.pre+"sdffile").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="sdf",await i.sdfParserCls.loadSdfData(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_xyzfile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"xyzfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load xyz file "+$("#"+e.pre+"xyzfile").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="xyz",await i.xyzParserCls.loadXyzData(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"afmapfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=function(t){let n=t.target.result;s.setLogCmd("load AlphaFold PAE file "+$("#"+e.pre+"afmapfile").val(),!1),e.htmlCls.dialogCls.openDlg("dl_alignerrormap","Show Predicted Aligned Error (PAE) map"),i.contactMapCls.processAfErrorMap(JSON.parse(n))},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfilefull","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"afmapfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=function(t){let n=t.target.result;s.setLogCmd("load AlphaFold PAE file "+$("#"+e.pre+"afmapfile").val(),!1),e.htmlCls.dialogCls.openDlg("dl_alignerrormap","Show Predicted Aligned Error (PAE) map"),i.contactMapCls.processAfErrorMap(JSON.parse(n),!0)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_urlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),s.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?s.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let i=$("#"+e.pre+"filetype").val(),n=$("#"+e.pre+"urlfile").val();s.inputurl="type="+i+"&url="+encodeURIComponent(n),s.init(),s.bInputfile=!0,s.bInputUrlfile=!0,await s.pdbParserCls.downloadUrl(n,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmciffile","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bAppend=!0;await s.loadPdbFile(i.bAppend,"mmciffile",!0)})),e.myEventCls.onIds("#"+e.pre+"applycustomcolor","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.setOptionCls.setOption("color",$("#"+e.pre+"colorcustom").val()),s.setLogCmd("color "+$("#"+e.pre+"colorcustom").val(),!0)})),e.myEventCls.onIds(["#"+e.pre+"atomsCustomSphere2","#"+e.pre+"atomsCustomSphere","#"+e.pre+"radius_aroundsphere"],"change",(function(t){e.icn3d.bSphereCalc=!1})),e.myEventCls.onIds("#"+e.pre+"applypick_aroundsphere","click",(function(t){let i=e.icn3d,n=parseFloat($("#"+e.pre+"radius_aroundsphere").val()),l=$("#"+e.pre+"atomsCustomSphere").val(),r=$("#"+e.pre+"atomsCustomSphere2").val();if(0==r.length)alert("Please select the first set at step #1");else{let e="select zone cutoff "+n+" | sets "+r+" "+l+" | "+i.bSphereCalc;i.bSphereCalc||i.showInterCls.pickCustomSphere(n,r,l,i.bSphereCalc),i.bSphereCalc=!0,i.hlUpdateCls.updateHlAll(),s.setLogCmd(e,!0)}})),e.myEventCls.onIds("#"+e.pre+"sphereExport","click",(function(t){let i=e.icn3d;t.preventDefault();let n=parseFloat($("#"+e.pre+"radius_aroundsphere").val()),l=$("#"+e.pre+"atomsCustomSphere").val(),r=$("#"+e.pre+"atomsCustomSphere2").val();if(0==r.length)alert("Please select the first set at step #1");else{i.showInterCls.pickCustomSphere(n,r,l,i.bSphereCalc),i.bSphereCalc=!0;let t=i.viewInterPairsCls.exportSpherePairs(),o=Object.keys(e.utilsCls.getHlStructures()).join(",");i.saveFileCls.saveFile(o+"_sphere_pairs.html","html",t),s.setLogCmd("export pairs | "+r+" "+l+" | dist "+n,!0)}})),e.myEventCls.onIds("#"+e.pre+"apply_adjustmem","click",(function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+e.pre+"extra_mem_z").val()),l=parseFloat($("#"+e.pre+"intra_mem_z").val());i.selectionCls.adjustMembrane(n,l);let r="adjust membrane z-axis "+n+" "+l;s.setLogCmd(r,!0)})),e.myEventCls.onIds("#"+e.pre+"apply_selectplane","click",(function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+e.pre+"selectplane_z1").val()),l=parseFloat($("#"+e.pre+"selectplane_z2").val());i.selectionCls.selectBtwPlanes(n,l);let r="select planes z-axis "+n+" "+l;s.setLogCmd(r,!0)})),e.myEventCls.onIds(["#"+e.pre+"atomsCustomHbond2","#"+e.pre+"atomsCustomHbond","#"+e.pre+"analysis_hbond","#"+e.pre+"analysis_saltbridge","#"+e.pre+"analysis_contact","#"+e.pre+"hbondthreshold","#"+e.pre+"saltbridgethreshold","#"+e.pre+"contactthreshold"],"change",(function(t){e.icn3d.bHbondCalc=!1})),e.myEventCls.onIds("#"+e.pre+"crossstrucinter","change",(function(t){let i=e.icn3d;t.preventDefault(),i.crossstrucinter=parseInt($("#"+e.pre+"crossstrucinter").val()),s.setLogCmd("cross structure interaction "+i.crossstrucinter,!0)})),e.myEventCls.onIds("#"+e.pre+"applyhbonds","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("3d")})),e.myEventCls.onIds("#"+e.pre+"applycontactmap","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+i.pre+"contactdist").val()),l=$("#"+i.pre+"contacttype").val();await i.contactMapCls.contactMap(n,l),s.setLogCmd("contact map | dist "+n+" | type "+l,!0)})),e.myEventCls.onIds("#"+e.pre+"hbondWindow","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("view")})),e.myEventCls.onIds("#"+e.pre+"areaWindow","click",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.pre+"atomsCustomHbond").val(),l=$("#"+e.pre+"atomsCustomHbond2").val();i.analysisCls.calcBuriedSurface(l,n),s.setLogCmd("calc buried surface | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"sortSet1","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("save1")})),$(document).on("click","."+e.pre+"showintercntonly",(function(t){e.icn3d,t.stopImmediatePropagation(),$(".icn3d-border").hide(),s.setLogCmd("table inter count only",!0)})),$(document).on("click","."+e.pre+"showinterdetails",(function(t){e.icn3d,t.stopImmediatePropagation(),$(".icn3d-border").show(),s.setLogCmd("table inter details",!0)})),e.myEventCls.onIds("#"+e.pre+"sortSet2","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("save2")})),e.myEventCls.onIds("#"+e.pre+"hbondGraph","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("graph")})),e.myEventCls.onIds("#"+e.pre+"hbondLineGraph","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("linegraph")})),e.myEventCls.onIds("#"+e.pre+"hbondLineGraph2","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!0,s.setLogCmd("show ref number",!0),await i.showInterCls.showInteractions("linegraph")})),e.myEventCls.onIds("#"+e.pre+"hbondScatterplot","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("scatterplot")})),e.myEventCls.onIds("#"+e.pre+"hbondScatterplot2","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!0,s.setLogCmd("show ref number",!0),await i.showInterCls.showInteractions("scatterplot")})),e.myEventCls.onIds("#"+e.pre+"hbondLigplot","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("ligplot")})),$(document).on("click","#"+e.svgid+" circle.selected",(function(t){let s=e.icn3d;t.stopImmediatePropagation();let i=$(this).attr("res");!1!==s.bSelectResidue||s.bShift||s.bCtrl||s.selectionCls.removeSelection(),void 0!==i&&(s.hlSeqCls.selectResidues(i,this),s.hlObjectsCls.addHlObjects())})),e.myEventCls.onIds("#"+e.svgid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.svgid,s.inputid+"_force_directed_graph.svg")})),e.myEventCls.onIds("#"+e.svgid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.svgid,s.inputid+"_force_directed_graph.png")})),e.myEventCls.onIds("#"+e.svgid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.graphStr.substr(0,s.graphStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_force_directed_graph.json","text",[i])})),$(document).on("click","#"+e.svgid_ct+"_svg",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.svgid_ct,s.inputid+"_cartoon.svg")})),$(document).on("click","#"+e.svgid_ct+"_png",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.svgid_ct,s.inputid+"_cartoon.png")})),$(document).on("click","#"+e.svgid_ct+"_json",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveFile(s.inputid+"_cartoon.json","text",[s.graphStr])})),$(document).on("change","#"+e.svgid_ct+"_label",(function(t){e.icn3d,t.preventDefault();let i=$("#"+e.svgid_ct+"_label").val();$("#"+e.svgid_ct+" text").removeClass(),$("#"+e.svgid_ct+" text").addClass(i),s.setLogCmd("cartoon label "+i,!0)})),e.myEventCls.onIds("#"+e.linegraphid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.linegraphid,s.inputid+"_line_graph.svg")})),e.myEventCls.onIds("#"+e.linegraphid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.linegraphid,s.inputid+"_line_graph.png")})),e.myEventCls.onIds("#"+e.linegraphid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.lineGraphStr.substr(0,s.lineGraphStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_line_graph.json","text",[i])})),e.myEventCls.onIds("#"+e.linegraphid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.linegraphid+"_scale").val();$("#"+e.linegraphid).attr("width",(i.linegraphWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("line graph scale "+n,!0)})),e.myEventCls.onIds("#"+e.scatterplotid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.scatterplotid,s.inputid+"_scatterplot.svg")})),e.myEventCls.onIds("#"+e.scatterplotid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.scatterplotid,s.inputid+"_scatterplot.png")})),e.myEventCls.onIds("#"+e.scatterplotid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.scatterplotStr.substr(0,s.scatterplotStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_scatterplot.json","text",[i])})),e.myEventCls.onIds("#"+e.scatterplotid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.scatterplotid+"_scale").val();$("#"+e.scatterplotid).attr("width",(i.scatterplotWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("scatterplot scale "+n,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.ligplotid,s.inputid+"_ligplot.svg",void 0,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.ligplotid,s.inputid+"_ligplot.png",void 0,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.ligplotid+"_scale").val();$("#"+e.ligplotid).attr("width",(i.ligplotWidth*parseFloat(n)).toString()+"px"),i.ligplotScale=parseFloat(n),s.setLogCmd("ligplot scale "+n,!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.contactmapid,s.inputid+"_contactmap.svg",!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.contactmapid,s.inputid+"_contactmap.png",!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.contactmapStr.substr(0,s.contactmapStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_contactmap.json","text",[i])})),e.myEventCls.onIds("#"+e.contactmapid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.contactmapid+"_scale").val();$("#"+e.contactmapid).attr("width",(i.contactmapWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("contactmap scale "+n,!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault();$("#"+e.alignerrormapid+"_scale").val(1),$("#"+e.alignerrormapid).attr("width",(s.alignerrormapWidth*parseFloat(1)).toString()+"px"),s.saveFileCls.saveSvg(e.alignerrormapid,s.inputid+"_alignerrormap.svg",!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault();$("#"+e.alignerrormapid+"_scale").val(1),$("#"+e.alignerrormapid).attr("width",(s.alignerrormapWidth*parseFloat(1)).toString()+"px"),s.saveFileCls.savePng(e.alignerrormapid,s.inputid+"_alignerrormap.png",!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_full","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.contactMapCls.afErrorMap(afid,!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.alignerrormapStr.substr(0,s.alignerrormapStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_alignerrormap.json","text",[i])})),e.myEventCls.onIds("#"+e.alignerrormapid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.alignerrormapid+"_scale").val();$("#"+e.alignerrormapid).attr("width",(i.alignerrormapWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("alignerrormap scale "+n,!0)})),e.myEventCls.onIds("#"+e.svgid+"_label","change",(function(t){e.icn3d,t.preventDefault();let i=$("#"+e.svgid+"_label").val();$("#"+e.svgid+" text").removeClass(),$("#"+e.svgid+" text").addClass(i),s.setLogCmd("graph label "+i,!0)})),e.myEventCls.onIds("#"+e.svgid+"_hideedges","change",(function(t){let i=e.icn3d;t.preventDefault(),e.htmlCls.hideedges=parseInt($("#"+e.svgid+"_hideedges").val()),e.htmlCls.hideedges?(e.htmlCls.contactInsideColor="FFF",e.htmlCls.hbondInsideColor="FFF",e.htmlCls.ionicInsideColor="FFF"):(e.htmlCls.contactInsideColor="DDD",e.htmlCls.hbondInsideColor="AFA",e.htmlCls.ionicInsideColor="8FF"),void 0!==i.graphStr&&(i.bRender&&e.htmlCls.force&&e.drawGraph(i.graphStr,e.pre+"dl_graph"),s.setLogCmd("hide edges "+e.htmlCls.hideedges,!0))})),e.myEventCls.onIds("#"+e.svgid+"_force","change",(function(t){let i=e.icn3d;t.preventDefault(),e.htmlCls.force=parseInt($("#"+e.svgid+"_force").val()),void 0!==i.graphStr&&(s.setLogCmd("graph force "+e.htmlCls.force,!0),i.getGraphCls.handleForce())})),e.myEventCls.onIds("#"+e.pre+"hbondReset","click",(function(t){let i=e.icn3d;t.preventDefault(),i.viewInterPairsCls.resetInteractionPairs(),s.setLogCmd("reset interaction pairs",!0)})),e.myEventCls.onIds("#"+e.pre+"applypick_labels","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"labeltext").val(),l=$("#"+e.pre+"labelsize").val(),r=$("#"+e.pre+"labelcolor").val(),o=$("#"+e.pre+"labelbkgd").val();if("0"!==l&&""!==l&&"undefined"!==l||(l=0),"0"!==r&&""!==r&&"undefined"!==r||(r=0),"0"!==o&&""!==o&&"undefined"!==o||(o=0),void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{let e=(i.pAtom.coord.x+i.pAtom2.coord.x)/2,t=(i.pAtom.coord.y+i.pAtom2.coord.y)/2,a=(i.pAtom.coord.z+i.pAtom2.coord.z)/2;i.analysisCls.addLabel(n,e,t,a,l,r,o,"custom"),i.pickpair=!1;let d="",c="",h="";0!=l&&(d=" | size "+l),0!=r&&(c=" | color "+r),0!=o&&(h=" | background "+o),s.setLogCmd("add label "+n+" | x "+e.toPrecision(4)+" y "+t.toPrecision(4)+" z "+a.toPrecision(4)+d+c+h+" | type custom",!0),i.drawCls.draw()}})),e.myEventCls.onIds("#"+e.pre+"applyselection_labels","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"labeltext2").val(),l=$("#"+e.pre+"labelsize2").val(),r=$("#"+e.pre+"labelcolor2").val(),o=$("#"+e.pre+"labelbkgd2").val();"0"!==l&&""!==l&&"undefined"!==l||(l=0),"0"!==r&&""!==r&&"undefined"!==r||(r=0),"0"!==o&&""!==o&&"undefined"!==o||(o=0);let a=i.applyCenterCls.centerAtoms(e.hashUtilsCls.hash2Atoms(i.hAtoms,i.atoms)),d=a.center.x,c=a.center.y,h=a.center.z;i.analysisCls.addLabel(n,d,c,h,l,r,o,"custom");let p="",m="",u="";0!=l&&(p=" | size "+l),0!=r&&(m=" | color "+r),0!=o&&(u=" | background "+o),s.setLogCmd("add label "+n+" | x "+d.toPrecision(4)+" y "+c.toPrecision(4)+" z "+h.toPrecision(4)+p+m+u+" | type custom",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applylabelcolor","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.labelcolor=$("#"+e.pre+"labelcolorall").val(),s.setLogCmd("set label color "+i.labelcolor,!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applypick_stabilizer","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),void 0===i.pAtom||void 0===i.pAtom2?alert("Please pick another atom"):(i.pickpair=!1,s.setLogCmd("add one stabilizer | "+i.pAtom.serial+" "+i.pAtom2.serial,!0),void 0===i.pairArray&&(i.pairArray=[]),i.pairArray.push(i.pAtom.serial),i.pairArray.push(i.pAtom2.serial),i.threeDPrintCls.setThichknessFor3Dprint(),i.drawCls.draw())}));let l=new CP(document.querySelector("#"+e.pre+"colorcustom"));l.on("change",(function(e){this.target.value=e})),e.myEventCls.onIds("#"+e.pre+"colorcustom","input",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","keyup",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","paste",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","cut",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()}));let r=new CP(document.querySelector("#"+e.pre+"labelcolorall"));r.on("change",(function(e){this.target.value=e})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","input",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","keyup",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","paste",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","cut",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"applypick_stabilizer_rm","click",(function(t){let i=e.icn3d;if(t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{i.pickpair=!1,s.setLogCmd("remove one stabilizer | "+i.pAtom.serial+" "+i.pAtom2.serial,!0);let e=[];e.push(i.pAtom.serial),e.push(i.pAtom2.serial),i.threeDPrintCls.removeOneStabilizer(e),i.drawCls.draw()}})),e.myEventCls.onIds("#"+e.pre+"applypick_measuredistance","click",(function(t){let i=e.icn3d;if(t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1,void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{let t=0,n=0,l=$("#"+e.pre+"linecolor").val(),r=(i.pAtom.coord.x+i.pAtom2.coord.x)/2,o=(i.pAtom.coord.y+i.pAtom2.coord.y)/2,a=(i.pAtom.coord.z+i.pAtom2.coord.z)/2;i.analysisCls.addLineFromPicking("distance");let d=(parseInt(10*i.pAtom.coord.distanceTo(i.pAtom2.coord))/10).toString()+" A";i.analysisCls.addLabel(d,r,o,a,t,l,n,"distance");let c="",h="",p="";0!=l&&(h=" | color "+l),s.setLogCmd("add label "+d+" | x "+r.toPrecision(4)+" y "+o.toPrecision(4)+" z "+a.toPrecision(4)+c+h+p+" | type distance",!0),i.drawCls.draw(),i.pk=2}})),e.myEventCls.onIds("#"+e.pre+"applydist2","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1;let n=$("#"+e.pre+"atomsCustomDist").val(),l=$("#"+e.pre+"atomsCustomDist2").val();i.analysisCls.measureDistTwoSets(n,l),s.setLogCmd("dist | "+l+" "+n,!0)})),$(document).on("click",".icn3d-distance",(function(t){let i=e.icn3d;t.preventDefault(),i.bMeasureDistance=!1,i.distPnts=[],i.labels.distance=[],i.lines.distance=[];let n=$(this).attr("sets").split("|"),l=[n[0]],r=[n[1]];i.analysisCls.measureDistTwoSets(l,r),s.setLogCmd("dist | "+r+" "+l,!0)})),e.myEventCls.onIds("#"+e.pre+"applydisttable","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1;let n=$("#"+e.pre+"atomsCustomDistTable").val(),l=$("#"+e.pre+"atomsCustomDistTable2").val();i.analysisCls.measureDistManySets(n,l),e.htmlCls.dialogCls.openDlg("dl_disttable","Distance among the sets"),s.setLogCmd("disttable | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyangletable","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureAngle=!1;let n=$("#"+e.pre+"atomsCustomAngleTable").val(),l=$("#"+e.pre+"atomsCustomAngleTable2").val();i.analysisCls.measureAngleManySets(n,l),e.htmlCls.dialogCls.openDlg("dl_angletable","Angles among the sets"),s.setLogCmd("angletable | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applylinebtwsets","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bLinebtwsets=!1;let n=$("#"+e.pre+"linebtwsets").val(),l=$("#"+e.pre+"linebtwsets2").val(),r=i.definedSetsCls.getAtomsFromNameArray(n),o=i.definedSetsCls.getAtomsFromNameArray(l),a=i.contactCls.getExtent(r),d=i.contactCls.getExtent(o),c=new THREE.Vector3(a[2][0],a[2][1],a[2][2]),h=new THREE.Vector3(d[2][0],d[2][1],d[2][2]),p=$("#"+e.pre+"linebtwsets_radius").val(),m=$("#"+e.pre+"linebtwsets_customcolor").val(),u=$("#"+e.pre+"linebtwsets_opacity").val(),g="Solid"!=$("#"+e.pre+"linebtwsets_style").val(),f="cylinder",C="add line | x1 "+c.x.toPrecision(4)+" y1 "+c.y.toPrecision(4)+" z1 "+c.z.toPrecision(4)+" | x2 "+h.x.toPrecision(4)+" y2 "+h.y.toPrecision(4)+" z2 "+h.z.toPrecision(4)+" | color "+m+" | dashed "+g+" | type "+f+" | radius "+p+" | opacity "+u;s.setLogCmd(C,!0),i.analysisCls.addLine(c.x,c.y,c.z,h.x,h.y,h.z,m,g,f,p,u),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applycartoonshape","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bCartoonshape=!1;let n=$("#"+e.pre+"cartoonshape").val(),l=i.definedSetsCls.getAtomsFromNameArray(n),r=i.contactCls.getExtent(l),o=new THREE.Vector3(r[2][0],r[2][1],r[2][2]),a=$("#"+e.pre+"cartoonshape_shape").val(),d=$("#"+e.pre+"cartoonshape_radius").val(),c=$("#"+e.pre+"cartoonshape_customcolor").val(),h=$("#"+e.pre+"cartoonshape_opacity").val();c="#"+c.replace(/\#/g,"");let p,m=e.parasCls.thr(c);"Sphere"==a?(i.sphereCls.createSphereBase(o,m,d,void 0,void 0,void 0,h),p="add sphere | "+n+" | color "+c+" | opacity "+h+" | radius "+d):(i.boxCls.createBox_base(o,d,m,void 0,void 0,void 0,h),p="add cube | "+n+" | color "+c+" | opacity "+h+" | radius "+d),s.setLogCmd(p,!0),i.shapeCmdHash[p]=1,i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearlinebtwsets","click",(function(t){let i=e.icn3d;t.preventDefault(),i.lines.cylinder=[],s.setLogCmd("clear line between sets",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearcartoonshape","click",(function(t){let i=e.icn3d;t.preventDefault(),i.shapeCmdHash={},s.setLogCmd("clear shape",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"apply_thickness_3dprint","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("3dprint")})),e.myEventCls.onIds("#"+e.pre+"apply_thickness_style","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("style"),e.htmlCls.setMenuCls.setLogWindow(!0)})),e.myEventCls.onIds("#"+e.pre+"reset_thickness_3dprint","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("3dprint",!0)})),e.myEventCls.onIds("#"+e.pre+"reset_thickness_style","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("style",!0),e.htmlCls.setMenuCls.setLogWindow(!0)})),e.myEventCls.onIds("#"+e.pre+"reset","click",(function(t){let s=e.icn3d;s.selectionCls.resetAll(),s.bRender&&s.drawCls.draw()})),e.myEventCls.onIds(["#"+e.pre+"toggleHighlight","#"+e.pre+"toggleHighlight2"],"click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.toggleHighlight(),s.setLogCmd("toggle highlight",!0)})),e.myEventCls.onIds("#"+e.pre+"seq_clearselection","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"seq_clearselection2","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),t.preventDefault(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"alignseq_clearselection","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"replay","click",(async function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.CURRENTNUMBER++;let n=e.cfg.replay?i.STATENUMBER:i.STATENUMBER-1;if(i.CURRENTNUMBER==n)i.bReplay=0,$("#"+e.pre+"replay").hide();else if(i.commands.length>0&&i.commands[i.CURRENTNUMBER]){await i.loadScriptCls.execCommandsBase(i.CURRENTNUMBER,i.CURRENTNUMBER,i.STATENUMBER);let t=i.commands[i.CURRENTNUMBER].indexOf("|||"),n=-1!=t?i.commands[i.CURRENTNUMBER].substr(0,t):i.commands[i.CURRENTNUMBER],l=30,r=n.length>l?n.substr(0,l)+"...":n,o=i.applyCommandCls.getMenuFromCmd(r);$("#"+e.pre+"replay_cmd").html("Cmd: "+r),$("#"+e.pre+"replay_menu").html("Menu: "+o),s.setLogCmd(n,!0),i.drawCls.draw()}})),t.loadScriptCls.pressCommandtext(),e.myEventCls.onIds("#"+e.pre+"seq_saveselection","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"seq_command_name").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),e.myEventCls.onIds("#"+e.pre+"seq_saveselection2","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"seq_command_name2").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),e.myEventCls.onIds("#"+e.pre+"mn2_saveresidue","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),i.selectionCls.saveEachResiInSel(),s.setLogCmd("select each residue",!0)})),e.myEventCls.onIds("#"+e.pre+"alignseq_saveselection","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"alignseq_command_name").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),$(document).on("click","."+e.pre+"outputselection",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelectResidue=!1,i.bSelectAlignResidue=!1,s.setLogCmd("output selection",!0),i.threeDPrintCls.outputSelection()})),$(document).on("click",".icn3d-saveicon",(function(t){e.icn3d,t.stopImmediatePropagation();let i=$(this).attr("pid");s.saveHtml(i),s.setLogCmd("save html "+i,!0)})),$(document).on("click",".icn3d-hideicon",(function(t){let s=e.icn3d;t.stopImmediatePropagation();let i=$(this).attr("pid");if(!e.cfg.notebook)if(void 0===s.dialogHashHideDone&&(s.dialogHashHideDone={}),void 0===s.dialogHashPosToRight&&(s.dialogHashPosToRight={}),s.dialogHashHideDone.hasOwnProperty(i)){let e=s.dialogHashHideDone[i].width,t=s.dialogHashHideDone[i].height,n=s.dialogHashHideDone[i].position;$("#"+i).dialog("option","width",e),$("#"+i).dialog("option","height",t),$("#"+i).dialog("option","position",n),delete s.dialogHashHideDone[i]}else{s.dialogHashHideDone[i]={width:$("#"+i).dialog("option","width"),height:$("#"+i).dialog("option","height"),position:$("#"+i).dialog("option","position")};let e,t=160,n=80;$("#"+i).dialog("option","width",t),$("#"+i).dialog("option","height",n),s.dialogHashPosToRight.hasOwnProperty(i)?e=s.dialogHashPosToRight[i]:(e=Object.keys(s.dialogHashPosToRight).length*(t+10),s.dialogHashPosToRight[i]=e);let l={my:"right bottom",at:"right-"+e+" bottom+60",of:"#"+s.divid,collision:"none"};$("#"+i).dialog("option","position",l)}})),$(document).on("click","."+e.pre+"selres",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelOneRes=!1;let n=$("."+e.pre+"seloneres");for(let e=0,t=n.length;e0&&(r+=" or "),r+=i.selectionCls.selectOneResid(t)}i.hlUpdateCls.updateHlAll(),s.setLogCmd(r,!0)})),$(document).on("click","."+e.pre+"seloneres",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.bSelOneRes||(s.hAtoms={},s.selectedResidues={},s.bSelOneRes=!0);let i=$(this).attr("resid"),n=$(this).attr("id");$("#"+n).length&&$("#"+n)[0].checked?s.selectionCls.selectOneResid(i):$("#"+n).length&&!$("#"+n)[0].checked&&s.selectionCls.selectOneResid(i,!0),s.hlUpdateCls.updateHlAll()})),$(document).on("click","."+e.pre+"selset",(async function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelOneRes=!1;let n=$("."+e.pre+"seloneres");for(let e=0,t=n.length;e0))return{sequencesHtml:a,maxSeqCnt:d};c[s]=1}let h,p=void 0===t||t;p&&(o.hAtoms={});let m,u,g=0,f=0;for(let t=0,l=e.length;t0?m:l,p&&(o.hAtoms=r.hashUtilsCls.unionHash(o.hAtoms,o.alnChains[l]));let C=[],b="",y=void 0!==o.alnChainsSeq[l]?o.alnChainsSeq[l].length:0;y>d&&(d=y);let v,_,w=u.indexOf("_"),S=u.substr(0,w),A=u.substr(w+1);for(let e=0,t=y;e=0;--e)if("-"!=o.alnChainsSeq[l][e].resn){_=o.alnChainsSeq[l][e].resi;break}b+=""+v+"",h=!(void 0===e||!c.hasOwnProperty(u));for(let e=0,t=y;e"}""!==a?-1!=o.alnChainsSeq[l][e].resi?b+=""+o.alnChainsSeq[l][e].resn+"":b+=""+o.alnChainsSeq[l][e].resn+"":b+=""+o.alnChainsSeq[l][e].resn+""}b+=""+_+"";let x=e.length,k=void 0!==o.alnChainsAnno[l]?o.alnChainsAnno[l].length:0;for(let t=0,s=k;t";for(let e=0,i=o.alnChainsAnno[l][t].length;e ':' ';else if("E"==i)if(void 0!==o.alnChainsSeq[s][e]){let i=s+"_"+o.alnChainsSeq[s][e].resi;if(o.residues.hasOwnProperty(i)){o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[i]).ssend?C[t]+=' ':C[t]+=' '}else C[t]+=' '}else C[t]+=' ';else C[t]+="c"==i?' ':"o"==i?' ':"";else C[t]+=""+i+""}C[t]+=""}let O=l,R=void 0!==o.pdbid_chain2title?o.pdbid_chain2title[u]:"";for(let e=k-1;e>=0;--e){let t=o.alnChainsAnTtl[l][e][0];"SS"==t&&(t=""),a+="
    "+t+"
    "+C[e]+"
    "}a+=''+b+"
    ",g>0&&(f+=y),++g}return{sequencesHtml:a,maxSeqCnt:d}}}class u{constructor(e){this.icn3dui=e}getLink(e,t,s,i){let n=this.icn3dui;return n.icn3d,n.htmlCls.allMenus[e]=t,i&&(n.htmlCls.allMenusSel[e]=i),s&&(n.htmlCls.simpleMenus[e]=1),"
  • "+t+"
  • "}getMenuText(e,t,s,i,n){let l=this.icn3dui;l.icn3d,l.htmlCls.allMenus[e]=t,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1);let r="icn3d-menupd"==s?" style='padding-left:1.5em!important;'":"";return"
  • "+t+""}getMenuUrl(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.allMenus[e]=s,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1),"
  • "+s+"
  • "}getMenuSep(){return this.icn3dui.icn3d,"
  • -
  • "}getLinkWrapper(e,t,s,i,n,l){let r=this.icn3dui;r.icn3d,r.htmlCls.allMenus[e]=t,n&&(r.htmlCls.allMenusSel[e]=n),i&&(r.htmlCls.simpleMenus[e]=1);let o=l?' style="display:none"':"";return"
  • "+t+"
  • "}getLinkWrapper2(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.allMenus[e]=t,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1),"
  • "+t+""}getRadio(e,t,s,i,n,l){let r=this.icn3dui;r.icn3d,r.htmlCls.allMenus[t]=s,l&&(r.htmlCls.allMenusSel[t]=l),n&&(r.htmlCls.simpleMenus[t]=1);let o=i?" checked":"";return"
  • "}getRadioColor(e,t,s,i,n,l,r){let o=this.icn3dui;o.icn3d,o.htmlCls.allMenus[t]=s,r&&(o.htmlCls.allMenusSel[t]=r),l&&(o.htmlCls.simpleMenus[t]=1);let a=n?" checked":"";return"
  • "}setAdvanced(e){let t=this.icn3dui;t.icn3d;let s=void 0===e?"":e,i=t.cfg.notebook?"icn3d-hidden":"",n=t.htmlCls.divStr+"dl_advanced"+s+"' class='"+i+"'>";return n+="",n+="",n+="
    ",n+="",n+="",n+="",n+="
    Select:"+t.htmlCls.inputTextStr+"id='"+t.pre+"command"+s+"' placeholder='$[structures].[chains]:[residues]@[atoms]' size='60'>
    Name:"+t.htmlCls.inputTextStr+"id='"+t.pre+"command_name"+s+"' placeholder='my_selection' size='60'>
    "+t.htmlCls.space3+t.htmlCls.buttonStr+"command_apply"+s+"'>Save Selection to Defined Sets
    ",n+='Specification Tips:

    ',n+=t.htmlCls.divStr+"specguide"+s+"' style='display:none; width:500px' class='icn3d-box'>",n+='Specification: In the selection "$1HHO,4N7N.A,B,C:5-10,LV,3AlaVal,chemicals@CA,C,C*":',n+='
    • "$1HHO,4N7N" uses "$" to indicate structure selection.
      ',n+='
    • ".A,B,C" uses "." to indicate chain selection.
      ',n+='
    • ":5-10,LV,3LeuVal,chemicals" uses the colon ":" to indicate residue selection. Residue selection could be residue number(5-10), one-letter IUPAC residue name abbreviations(LV), three-letter residue names(AlaVal, "3" indicates each residue name has three letters), or predefined names: "proteins", "nucleotides", "chemicals", "ions", and "water". IUPAC abbreviations can be written either as a contiguous string(e.g., ":LV"), in order to find all instances of that sequence in the structure, or they can be separated by commas(e.g., ":L,V") to select all residues of a given type in the structure(in the latter case, select all Leucine and Valine in the structure).
      ',n+='
    • "@CA,C,C*" uses "@" to indicate atom name selection. "C*" selects any atom names starting with "C".
      ',n+='
    • Partial definition is allowed, e.g., ":1-10" selects all residue IDs 1-10 in all chains.
      ',n+='
    • Different selections can be unioned(with "or", default), intersected(with "and"), or negated(with "not"). For example, ":1-10 or :K" selects all residues 1-10 and all Lys residues. ":1-10 and :K" selects all Lys residues in the range of residue number 1-10. ":1-10 or not :K" selects all residues 1-10, which are not Lys residues.
      ',n+='
    • The wild card character "X" or "x" can be used to represent any character.',n+="
    ",n+="Set Operation:",n+='
    • Users can select multiple sets in the menu "Select > Defined Sets".
      ',n+='
    • Different sets can be unioned(with "or", default), intersected(with "and"), or negated(with "not"). For example, if the "Defined Sets" menu has four sets ":1-10", ":11-20", ":5-15", and ":7-8", the command "saved atoms :1-10 or :11-20 and :5-15 not :7-8" unions all residues 1-10 and 11-20 to get the residues 1-20, then intersects with the residues 5-15 to get the residues 5-15, then exclude the residues 7-8 to get the final residues 5-6 and 9-15.
    ',n+="Full commands in url or command window:",n+="
    • Select without saving the set: select $1HHO,4N7N.A,B,C:5-10,LV,chemicals@CA,C,C*
      ",n+="
    • Select and save: select $1HHO,4N7N.A,B,C:5-10,LV,chemicals@CA,C,C* | name my_name
    ",n+="",n+="
    ",n+="",n}getOptionHtml(e,t){let s=this.icn3dui;s.icn3d;let i="";for(let n=0,l=e.length;n"+l+"":s.htmlCls.optionStr+"'"+l+"'>"+l+""}return i}setColorHints(){let e=this.icn3dui;e.icn3d;let t="";return t+=e.htmlCls.divNowrapStr+'Green: H-Bonds; ',t+='Cyan: Salt Bridge/Ionic; ',t+='Grey: Contacts',t+=e.htmlCls.divNowrapStr+'Magenta: Halogen Bonds; ',t+='Red: π-Cation; ',t+='Blue: π-Stacking',t}setThicknessHtml(e){let t=this.icn3dui,s=t.icn3d,i="",n="3dprint"==e?"1":"0.1",l="3dprint"==e?"1.2":"0.3",r="3dprint"==e?"0.8":"0.4",o="3dprint"==e?"0.8":"0.4",a="3dprint"==e?"1":"0.4",d="3dprint"==e?"0.6":"0.3",c="3dprint"==e?"1":"0.2",h="3dprint"==e?"2":"1.3",p="3dprint"==e?"1.4":"0.8",m=40,u=.8,g=.4,f=.2,C=0,b=1,y=0;if("style"==e){if(""!=this.getCookie("shininess")&&(m=parseFloat(this.getCookie("shininess"))),""!=this.getCookie("light1")&&(u=parseFloat(this.getCookie("light1")),g=parseFloat(this.getCookie("light2")),f=parseFloat(this.getCookie("light3"))),""!=this.getCookie("lineRadius")){n=parseFloat(this.getCookie("lineRadius")),l=parseFloat(this.getCookie("coilWidth")),r=parseFloat(this.getCookie("cylinderRadius"));let e=this.getCookie("crosslinkRadius");o=isNaN(e)?s.crosslinkRadius:parseFloat(e),a=parseFloat(this.getCookie("traceRadius")),d=parseFloat(this.getCookie("dotSphereScale")),c=parseFloat(this.getCookie("ribbonthickness")),h=parseFloat(this.getCookie("helixSheetWidth")),p=parseFloat(this.getCookie("nucleicAcidWidth"))}""!=this.getCookie("glycan")&&(C=parseFloat(this.getCookie("glycan"))),""!=this.getCookie("membrane")&&(b=parseFloat(this.getCookie("membrane"))),""!=this.getCookie("cmdwindow")&&(y=parseFloat(this.getCookie("cmdwindow"))),i+="Note: The following parameters will be saved in cache. You just need to set them once.

    ",i+="1. Shininess: "+t.htmlCls.inputTextStr+"id='"+t.pre+"shininess' value='"+m+"' size=4>"+t.htmlCls.space3+"(for the shininess of the 3D objects, default 40)

    ",i+="2. Three directional lights:
    ",i+="Key Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light1' value='"+u+"' size=4>"+t.htmlCls.space3+"(for the light strength of the key light, default 0.8)
    ",i+="Fill Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light2' value='"+g+"' size=4>"+t.htmlCls.space3+"(for the light strength of the fill light, default 0.4)
    ",i+="Back Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light3' value='"+f+"' size=4>"+t.htmlCls.space3+"(for the light strength of the back light, default 0.2)

    ",i+="3. Thickness:
    "}return i+="Line Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"linerad_"+e+"' value='"+n+"' size=4>"+t.htmlCls.space3+"(for stabilizers, hydrogen bonds, distance lines, default 0.1)
    ",i+="Coil Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"coilrad_"+e+"' value='"+l+"' size=4>"+t.htmlCls.space3+"(for coils, default 0.3)
    ",i+="Stick Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"stickrad_"+e+"' value='"+r+"' size=4>"+t.htmlCls.space3+"(for sticks, default 0.4)
    ",i+="Cross-Linkage Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"crosslinkrad_"+e+"' value='"+o+"' size=4>"+t.htmlCls.space3+"(for cross-linkages, default 0.4)
    ",i+="Trace Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"tracerad_"+e+"' value='"+a+"' size=4>"+t.htmlCls.space3+"(for C alpha trace, O3' trace, default 0.4)
    ",i+="Ribbon Thickness: "+t.htmlCls.inputTextStr+"id='"+t.pre+"ribbonthick_"+e+"' value='"+c+"' size=4>"+t.htmlCls.space3+"(for helix and sheet ribbons, nucleotide ribbons, default 0.2)
    ",i+="Protein Ribbon Width: "+t.htmlCls.inputTextStr+"id='"+t.pre+"prtribbonwidth_"+e+"' value='"+h+"' size=4>"+t.htmlCls.space3+"(for helix and sheet ribbons, default 1.3)
    ",i+="Nucleotide Ribbon Width: "+t.htmlCls.inputTextStr+"id='"+t.pre+"nucleotideribbonwidth_"+e+"' value='"+p+"' size=4>"+t.htmlCls.space3+"(for nucleotide ribbons, default 0.8)
    ",i+="Ball Scale: "+t.htmlCls.inputTextStr+"id='"+t.pre+"ballscale_"+e+"' value='"+d+"' size=4>"+t.htmlCls.space3+"(for styles 'Ball and Stick' and 'Dot', default 0.3)
    ","style"==e&&(i+="
    4. Show Glycan Cartoon: "+t.htmlCls.inputTextStr+"id='"+t.pre+"glycan' value='"+C+"' size=4>"+t.htmlCls.space3+"(0: hide, 1: show, default 0)
    ",i+="
    5. Show Membrane: "+t.htmlCls.inputTextStr+"id='"+t.pre+"membrane' value='"+b+"' size=4>"+t.htmlCls.space3+"(0: hide, 1: show, default 1)
    ",i+="
    6. Enlarge Command Window: "+t.htmlCls.inputTextStr+"id='"+t.pre+"cmdwindow' value='"+y+"' size=4>"+t.htmlCls.space3+"(0: Regular, 1: Large, default 0)

    "),i+=t.htmlCls.spanNowrapStr+""+t.htmlCls.buttonStr+"apply_thickness_"+e+"'>Apply   ",i+=t.htmlCls.spanNowrapStr+""+t.htmlCls.buttonStr+"reset_thickness_"+e+"'>Reset",i}getCookie(e){let t=e+"=",s=decodeURIComponent(document.cookie).split(";");for(let e=0;e":(n+='
    ',n+="
    Selection: Name: "+s.htmlCls.inputTextStr+"id='"+s.pre+"seq_command_name"+e+"' value='seq_"+l+"' size='5'> "+s.htmlCls.space2+"

    ",n+=s.htmlCls.divStr+"seqguide"+e+"' style='display:none; white-space:normal;' class='icn3d-box'>"),n+=this.getSelectionHints();return n+="Residue labeling: standard residue with coordinates: UPPER case letter; nonstandard residue with coordinates: the first UPPER case letter plus a period except that water residue uses the letter 'O'; residue missing coordinates: lower case letter."+(s.utilsCls.isMac()&&!s.utilsCls.isMobile()?"

    Turn on scroll bar: System preferences -> General -> show scroll bars -> check Always":"")+"
    ",n}setAlignSequenceGuide(e,t){let s=this.icn3dui,i=s.icn3d,n="";let l=i&&i.defNames2Atoms?Object.keys(i.defNames2Atoms).length:1;n+='
    ',n+="
    Selection: Name: "+s.htmlCls.inputTextStr+"id='"+s.pre+"alignseq_command_name' value='alseq_"+l+"' size='10'> "+s.htmlCls.space2+"

    ",n+=s.htmlCls.divStr+"alignseqguide' style='display:none; white-space:normal;' class='icn3d-box'>",n+=this.getSelectionHints();return n+="Residue labeling: aligned residue with coordinates: UPPER case letter; non-aligned residue with coordinates: lower case letter which can be highlighted; residue missing coordinates: lower case letter which can NOT be highlighted."+(s.utilsCls.isMac()&&!s.utilsCls.isMobile()?"

    Turn on scroll bar: System preferences -> General -> show scroll bars -> check Always":"")+"
    ",n}getSelectionHints(){let e=this.icn3dui;e.icn3d;let t="";if(e.utilsCls.isMobile())t+='Select Aligned Sequences: touch to select, touch again to deselect, multiple selection is allowed without Ctrl key, click "Save Selection" to save the current selection.
    ';else{t+='Select on 1D sequences: drag to select, drag again to deselect, multiple selection is allowed without Ctrl key, click "Save Selection" to save the current selection.

    ',t+="Select on 2D interaction diagram: click on the nodes or lines. The nodes are chains and can be united with the Ctrl key. The lines are interactions and can NOT be united. Each click on the lines selects half of the lines, i.e., select the interacting residues in one of the two chains.

    ",t+="Select on 3D structures: "+(e.utilsCls.isMobile()?"use finger to pick":'hold "Alt" and use mouse to pick')+', click the second time to deselect, hold "Ctrl" to union selection, hold "Shift" to select a range, press the up/down arrow to switch among atom/residue/strand/chain/structure, click "Save Selection" to save the current selection.

    ',t+='Save the current selection(either on 3D structure, 2D interactions, or 1D sequence): open the menu "Select -> Save Selection", specify the name and description for the selection, and click "Save".

    '}return t}addGsizeSalt(e){let t=this.icn3dui;t.icn3d;let s="";s+="Grid Size: ",s+="Salt Concentration: M
    ",s}getFootHtml(e,t){let s=this.icn3dui;s.icn3d;let i="
    ";return"delphi"==e?s.cfg.cid?i+="Note: Partial charges(MMFF94) are from PubChem Compound SDF files.

    ":(i+="Note: Only the selected residues are used for DelPhi potential calculation by solving linear Poisson-Boltzmann equation.",i+='

    ',i+=s.htmlCls.divStr+t+"' style='display:none;'>",i+="
    The hydrogens and partial charges of proteins and nucleotides are added using DelPhiPKa with the Amber charge and size files. The hydrogens of ligands are added using Open Babel. The partial charges of ligands are calculated using Antechamber with the Gasteiger charge method. All partial charges are calculated at pH 7.

    ",i+='Lipids are treated as ligands. Please use "HETATM" instead of "ATOM " for each lipid atom in your PDB file. Each phosphate in lipids is assigned with a charge of -1. You can download PQR and modify it, or prepare your PQR file using other tools. Then load the PQR file at the menu "Analysis > Load PQR/Potential".

    ',i+="
    "):(i+="Note: Always load a PDB file before loading a PQR or DelPhi potential file.",i+='

    ',i+=s.htmlCls.divStr+t+"' style='display:none;'>",i+='The PDB file can be loaded in the URL with "pdbid=" or at "File > Open File". The PQR file can be prepared at the menu "Analysis > Download PQR" with your modification or using other tools. The DelPhi potential file can be calculated at DelPhi Web Server and be exported as a Cube file. ',"url"==e&&(i+="The PQR or potential file can be accessed in a URL if it is located in the same host as iCn3D."),i+="

    ",i+=""),i+="",i}getPotentialHtml(e,t){let s=this.icn3dui;s.icn3d;let i,n,l,r,o,a="";r="Equipotential Map",o="Surface with Potential","delphi"==e?n="delphi":"local"==e?(i="pqr",n="phi",l="cube"):"url"==e&&(i="pqrurl",n="phiurl",l="cubeurl"),a+=s.htmlCls.divStr+"dl_"+n+"' class='"+t+"'>",a+=s.htmlCls.setDialogCls.addNotebookTitle("dl_"+n,"DelPhi Potential"),a+=s.htmlCls.divStr+"dl_"+n+"_tabs' style='border:0px;'>",a+="",a+=s.htmlCls.divStr+n+"tab1'>","delphi"==e&&(a+=this.addGsizeSalt(n+"1")+"
    "),a+="Potential contour at: kT/e(25.6mV at 298K)

    ","delphi"==e?(a+=s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map",a+=s.htmlCls.buttonStr+n+"mapNo' style='margin-left:30px;'>Remove Map
    "):"local"==e?(a+=s.htmlCls.divStr+n+"tab1_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo'>Remove Map",a+=s.htmlCls.divStr+n+"tab1_"+i+"'>",a+=this.addGsizeSalt(i)+"
    ",a+="PQR File: "+s.htmlCls.inputFileStr+"id='"+s.pre+i+"file'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+n+"'>",a+="Phi File: "+s.htmlCls.inputFileStr+"id='"+s.pre+n+"file'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+l+"'>",a+="Cube File: "+s.htmlCls.inputFileStr+"id='"+s.pre+l+"file'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=""):"url"==e&&(a+=s.htmlCls.divStr+n+"tab1_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo'>Remove Map",a+=s.htmlCls.divStr+n+"tab1_"+i+"2'>",a+=this.addGsizeSalt(i)+"
    ",a+="PQR URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+i+"file'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+n+"2'>",a+="Phi URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+n+"file'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+l+"2'>",a+="Cube URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+l+"file'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=""),a+="
    "+this.getFootHtml(e,n+"tab1_foot"),a+="",a+=s.htmlCls.divStr+n+"tab2'>","delphi"==e&&(a+=this.addGsizeSalt(n+"2")+"
    "),a+="Surface with max potential at: kT/e(25.6mV at 298K)

    ",a+="Surface: ",a+="Opacity: ",a+="Wireframe:
    ",a+="
    ","delphi"==e?(a+=s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential",a+=s.htmlCls.buttonStr+n+"mapNo2' style='margin-left:30px;'>Remove Surface
    "):"local"==e?(a+=s.htmlCls.divStr+n+"tab2_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo2'>Remove Surface",a+=s.htmlCls.divStr+n+"tab2_"+i+"'>",a+=this.addGsizeSalt(i+"2")+"
    ",a+="PQR File: "+s.htmlCls.inputFileStr+"id='"+s.pre+i+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+n+"'>",a+="Phi File: "+s.htmlCls.inputFileStr+"id='"+s.pre+n+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+l+"'>",a+="Cube File: "+s.htmlCls.inputFileStr+"id='"+s.pre+l+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=""):"url"==e&&(a+=s.htmlCls.divStr+n+"tab2_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo2'>Remove Surface",a+=s.htmlCls.divStr+n+"tab2_"+i+"2'>",a+=this.addGsizeSalt(i+"2")+"
    ",a+="PQR URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+i+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+n+"2'>",a+="Phi URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+n+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+l+"2'>",a+="Cube URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+l+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=""),a+="
    "+this.getFootHtml(e,n+"tab2_foot"),a+="",a+="",a+="",a}async exportPqr(e){let t=this.icn3dui,s=t.icn3d,i={},n={},l=t.hashUtilsCls.intHash(s.dAtoms,s.hAtoms);for(let e in l)s.atoms[e],s.ions.hasOwnProperty(e)?i[e]=1:n[e]=1;let r=e?"pdb":"pqr";if(t.cfg.cid){let l="",o=!e;l+=s.saveFileCls.getAtomPDB(n,o)+s.saveFileCls.getAtomPDB(i,o);let a=Object.keys(t.utilsCls.getHlStructures()).join(",");s.saveFileCls.saveFile(a+"_icn3d."+r,"text",[l])}else{if(t.utilsCls.isCalphaPhosOnly(t.hashUtilsCls.hash2Atoms(n,s.atoms)))return void alert("The potential will not be shown because the side chains are missing in the structure...");let l="",o=!0;l+=s.saveFileCls.getAtomPDB(n,void 0,void 0,void 0,void 0,void 0,o),l+=s.saveFileCls.getAtomPDB(i,!0,void 0,!0);let a=t.htmlCls.baseUrl+"delphi/delphi.cgi",d={pdb2pqr:l,pdbid:t.cfg.cid?t.cfg.cid:Object.keys(s.structures).toString()},c=await t.getAjaxPostPromise(a,d,!0,void 0,void 0,!0,"text");if(e){let e=c.split("\n"),s="";for(let i=0,n=e.length;i Save File > iCn3D PNG Image"...');else if(-1!=r){let t=e.substr(r+l.length);i.htmlCls.clickMenuCls.setLogCmd("load iCn3D PNG image "+$("#"+i.pre+"pngimage").val(),!1),window.open(t,"_self")}else if(-1!=a){let i="Start of data file======\n",l=e.indexOf(i);n.bInputfile=-1!=l,n.bInputPNGWithData=n.bInputfile;let r=t?t.replace(/;/g,"\n"):"",h=e.indexOf("End of data file======\n");d=e.substr(l+i.length,h-l-i.length);let p="Start of type file======\n",m=e.indexOf(p),u=e.indexOf("End of type file======\n"),g=e.substr(m+p.length,u-m-p.length-1);n.InputfileType=g;let f=e.indexOf("End of state file======\n");c=e.substr(a+o.length,f-a-o.length),c=decodeURIComponent(c+"\n"+r),s&&("pdb"===g?(await n.pdbParserCls.loadPdbData(d),n.commands=[],n.optsHistory=[]):("mol2"===g?await n.mol2ParserCls.loadMol2Data(d):"sdf"===g?await n.sdfParserCls.loadSdfData(d):"xyz"===g?await n.xyzParserCls.loadXyzData(d):"mmcif"===g&&await n.mmcifParserCls.loadMmcifData(d),n.commands=[],n.optsHistory=[]),await n.loadScriptCls.loadScript(c,!0))}return{pdb:d,statefile:c}}fileSupport(){window.File&&window.FileReader&&window.FileList&&window.Blob||alert("The File APIs are not fully supported in this browser.")}getLinkColor(){let e="";return e+=", linkmap: {\n",e+='3: {"type": "peptidebond", "c":""},\n',e+='4: {"type": "ssbond", "c":"FFA500"},\n',e+='5: {"type": "ionic", "c":"0FF"},\n',e+='6: {"type": "ionicInside", "c":"FFF"},\n',e+='11: {"type": "contact", "c":"888"},\n',e+='12: {"type": "contactInside", "c":"FFF"},\n',e+='13: {"type": "hbond", "c":"0F0"},\n',e+='14: {"type": "hbondInside", "c":"FFF"},\n',e+='15: {"type": "clbond", "c":"006400"},\n',e+='17: {"type": "halogen", "c":"F0F"},\n',e+='18: {"type": "halogenInside", "c":"FFF"},\n',e+='19: {"type": "pication", "c":"F00"},\n',e+='20: {"type": "picationInside", "c":"FFF"},\n',e+='21: {"type": "pistacking", "c":"00F"},\n',e+='22: {"type": "pistackingInside", "c":"FFF"}\n',e+="}}\n",', linkmap: {\n3: {"type": "peptidebond", "c":""},\n4: {"type": "ssbond", "c":"FFA500"},\n5: {"type": "ionic", "c":"0FF"},\n6: {"type": "ionicInside", "c":"FFF"},\n11: {"type": "contact", "c":"888"},\n12: {"type": "contactInside", "c":"FFF"},\n13: {"type": "hbond", "c":"0F0"},\n14: {"type": "hbondInside", "c":"FFF"},\n15: {"type": "clbond", "c":"006400"},\n17: {"type": "halogen", "c":"F0F"},\n18: {"type": "halogenInside", "c":"FFF"},\n19: {"type": "pication", "c":"F00"},\n20: {"type": "picationInside", "c":"FFF"},\n21: {"type": "pistacking", "c":"00F"},\n22: {"type": "pistackingInside", "c":"FFF"}\n}}\n'}setCookieForThickness(){let e=this.icn3dui,t=e.icn3d;if(!e.bNode){let e=3650;this.setCookie("lineRadius",t.lineRadius,e),this.setCookie("coilWidth",t.coilWidth,e),this.setCookie("cylinderRadius",t.cylinderRadius,e),this.setCookie("crosslinkRadius",t.crosslinkRadius,e),this.setCookie("traceRadius",t.traceRadius,e),this.setCookie("dotSphereScale",t.dotSphereScale,e),this.setCookie("ribbonthickness",t.ribbonthickness,e),this.setCookie("helixSheetWidth",t.helixSheetWidth,e),this.setCookie("nucleicAcidWidth",t.nucleicAcidWidth,e)}}setLineThickness(e,t){let s=this.icn3dui,i=s.icn3d;if(i.bSetThickness=!0,"style"==e&&(t&&($("#"+s.pre+"shininess").val("40"),$("#"+s.pre+"light1").val("0.8"),$("#"+s.pre+"light2").val("0.4"),$("#"+s.pre+"light3").val("0.2"),$("#"+s.pre+"glycan").val("0"),$("#"+s.pre+"membrane").val("1"),$("#"+s.pre+"cmdwindow").val("0")),i.shininess=parseFloat($("#"+s.pre+"shininess").val()),i.light1=parseFloat($("#"+s.pre+"light1").val()),i.light2=parseFloat($("#"+s.pre+"light2").val()),i.light3=parseFloat($("#"+s.pre+"light3").val()),i.bGlycansCartoon=parseInt($("#"+s.pre+"glycan").val()),i.bMembrane=parseInt($("#"+s.pre+"membrane").val()),i.bCmdWindow=parseInt($("#"+s.pre+"cmdwindow").val())),t&&($("#"+s.pre+"linerad_"+e).val(.1),$("#"+s.pre+"coilrad_"+e).val(.3),$("#"+s.pre+"stickrad_"+e).val(.4),$("#"+s.pre+"crosslinkrad_"+e).val(.4),$("#"+s.pre+"tracerad_"+e).val(.4),$("#"+s.pre+"ballscale_"+e).val(.3),$("#"+s.pre+"ribbonthick_"+e).val(.2),$("#"+s.pre+"prtribbonwidth_"+e).val(1.3),$("#"+s.pre+"nucleotideribbonwidth_"+e).val(.8)),i.lineRadius=parseFloat($("#"+s.pre+"linerad_"+e).val()),i.coilWidth=parseFloat($("#"+s.pre+"coilrad_"+e).val()),i.cylinderRadius=parseFloat($("#"+s.pre+"stickrad_"+e).val()),i.crosslinkRadius=parseFloat($("#"+s.pre+"crosslinkrad_"+e).val()),i.traceRadius=parseFloat($("#"+s.pre+"tracerad_"+e).val()),i.dotSphereScale=parseFloat($("#"+s.pre+"ballscale_"+e).val()),i.ribbonthickness=parseFloat($("#"+s.pre+"ribbonthick_"+e).val()),i.helixSheetWidth=parseFloat($("#"+s.pre+"prtribbonwidth_"+e).val()),i.nucleicAcidWidth=parseFloat($("#"+s.pre+"nucleotideribbonwidth_"+e).val()),!s.bNode){let e=3650;this.setCookie("shininess",i.shininess,e),this.setCookie("light1",i.light1,e),this.setCookie("light2",i.light2,e),this.setCookie("light3",i.light3,e),this.setCookie("glycan",i.bGlycansCartoon,e),this.setCookie("membrane",i.bMembrane,e),this.setCookie("cmdwindow",i.bCmdWindow,e)}if(this.setCookieForThickness(),e=t){let e="reset thickness";s.htmlCls.clickMenuCls.setLogCmd(e,!0),i.bSetThickness=!1,i.threeDPrintCls.resetAfter3Dprint()}else s.htmlCls.clickMenuCls.setLogCmd("set thickness | linerad "+i.lineRadius+" | coilrad "+i.coilWidth+" | stickrad "+i.cylinderRadius+" | crosslinkrad "+i.crosslinkRadius+" | tracerad "+i.traceRadius+" | ribbonthick "+i.ribbonthickness+" | proteinwidth "+i.helixSheetWidth+" | nucleotidewidth "+i.nucleicAcidWidth+" | ballscale "+i.dotSphereScale,!0),s.htmlCls.clickMenuCls.setLogCmd("set glycan "+i.bGlycansCartoon,!0),s.htmlCls.clickMenuCls.setLogCmd("set membrane "+i.bMembrane,!0),s.htmlCls.clickMenuCls.setLogCmd("set cmdwindow "+i.bCmdWindow,!0);i.drawCls.draw()}setCookie(e,t,s){let i=new Date;i.setTime(i.getTime()+24*s*60*60*1e3);let n="expires="+i.toUTCString();document.cookie=e+"="+t+";"+n+";path=/"}updateSurfPara(e){let t=this.icn3dui,s=t.icn3d;s.phisurftype=$("#"+t.pre+e+"surftype").val(),s.phisurfop=$("#"+t.pre+e+"surfop").val(),s.phisurfwf=$("#"+t.pre+e+"surfwf").val()}exportPdb(){let e=this.icn3dui,t=e.icn3d,s="",i=e.hashUtilsCls.intHash(t.dAtoms,t.hAtoms);if(s+=t.saveFileCls.getAtomPDB(i),!e.bNode){let i=Object.keys(e.utilsCls.getHlStructures()).join(",");t.saveFileCls.saveFile(i+"_icn3d.pdb","text",[s])}return s}exportSecondary(){let e=this.icn3dui,t=e.icn3d,s="",i=e.hashUtilsCls.intHash(t.dAtoms,t.hAtoms);if(s+=t.saveFileCls.getSecondary(i),!e.bNode){let i=Object.keys(e.utilsCls.getHlStructures()).join(",");t.saveFileCls.saveFile(i+"_icn3d_ss.txt","text",[s])}return s}}class g{constructor(e){let t=e;this.icn3dui=e,this.cfg=this.icn3dui.cfg,this.opts={},this.opts.background="black",this.allMenus={},this.allMenusSel={},this.simpleMenus={},this.shownMenus={},this.WIDTH=400,this.HEIGHT=400,this.RESIDUE_WIDTH=10,t.utilsCls.isMobile()||this.cfg.mobilemenu?this.MENU_HEIGHT=0:this.MENU_HEIGHT=40,this.LOG_HEIGHT=65,this.MENU_WIDTH=750,this.LESSWIDTH=20,this.LESSWIDTH_RESIZE=20,this.LESSHEIGHT=20,this.width2d=200,this.CMD_HEIGHT=.8*this.LOG_HEIGHT,this.EXTRAHEIGHT=this.MENU_HEIGHT+this.CMD_HEIGHT,null!=this.cfg.showmenu&&0==this.cfg.showmenu&&(this.EXTRAHEIGHT-=this.MENU_HEIGHT),null!=this.cfg.showcommand&&0==this.cfg.showcommand&&(this.EXTRAHEIGHT-=this.CMD_HEIGHT),this.GREY8="#AAAAAA",this.GREYB="#CCCCCC",this.GREYC="#DDDDDD",this.GREYD="#EEEEEE",this.ORANGE="#FFA500",this.themecolor="blue",this.defaultValue=1,this.ssValue=3,this.coilValue=3,this.contactValue=11,this.contactInsideValue=12,this.hbondValue=13,this.hbondInsideValue=14,this.ssbondValue=4,this.ionicValue=5,this.ionicInsideValue=6,this.clbondValue=15,this.halogenValue=17,this.halogenInsideValue=18,this.picationValue=19,this.picationInsideValue=20,this.pistackingValue=21,this.pistackingInsideValue=22,this.contactColor="888",this.contactInsideColor="FFF",this.hbondColor="0F0",this.hbondInsideColor="FFF",this.ssbondColor="FFA500",this.ionicColor="0FF",this.ionicInsideColor="FFF",this.clbondColor="006400",this.halogenColor="F0F",this.halogenInsideColor="FFF",this.picationColor="F00",this.picationInsideColor="FFF",this.pistackingColor="00F",this.pistackingInsideColor="FFF",this.hideedges=1,this.force=4,this.simulation=void 0,this.baseUrl=window&&window.location&&"structure.ncbi.nlm.nih.gov"==window.location.hostname?"https://structure.ncbi.nlm.nih.gov/Structure/":"https://www.ncbi.nlm.nih.gov/Structure/",this.tmalignUrl=this.baseUrl+"tmalign/tmalign.cgi",this.divStr="
    ",this.spanNowrapStr="",this.inputTextStr="=2.0 are supported.")));const a=new pe(o,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});a.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e=0&&void 0===r[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}a.setExtensions(l),a.setPlugins(r),a.parse(s,i)}parseAsync(e,t){const s=this;return new Promise((function(i,n){s.parse(e,t,i,n)}))}}function C(){let e={};return{get:function(t){return e[t]},add:function(t,s){e[t]=s},remove:function(t){delete e[t]},removeAll:function(){e={}}}}const b={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression"};class y{constructor(e){this.parser=e,this.name=b.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let s=0,i=t.length;s=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,n.source,l)}}class R{constructor(e){this.parser=e,this.name=b.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,s=this.parser,i=s.json,n=i.textures[e];if(!n.extensions||!n.extensions[t])return null;const l=n.extensions[t],r=i.images[l.source];let o=s.textureLoader;if(r.uri){const e=s.options.manager.getHandler(r.uri);null!==e&&(o=e)}return this.detectSupport().then((function(n){if(n)return s.loadTextureImage(e,l.source,o);if(i.extensionsRequired&&i.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return s.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}}class I{constructor(e){this.name=b.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,s=t.bufferViews[e];if(s.extensions&&s.extensions[this.name]){const e=s.extensions[this.name],i=this.parser.getDependency("buffer",e.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return Promise.all([i,n.ready]).then((function(t){const s=e.byteOffset||0,i=e.byteLength||0,l=e.count,r=e.byteStride,o=new ArrayBuffer(l*r),a=new Uint8Array(t[0],s,i);return n.decodeGltfBuffer(new Uint8Array(o),l,r,a,e.mode,e.filter),o}))}return null}}const E="glTF",T=1313821514,P=5130562;class D{constructor(e){this.name=b.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,12);if(this.header={magic:THREE.LoaderUtils.decodeText(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==E)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const s=this.header.length-12,i=new DataView(e,12);let n=0;for(;n",t).replace("#include ",s).replace("#include ",i).replace("#include ",n).replace("#include ",l)},Object.defineProperties(this,{specular:{get:function(){return r.specular.value},set:function(e){r.specular.value=e}},specularMap:{get:function(){return r.specularMap.value},set:function(e){r.specularMap.value=e,e?this.defines.USE_SPECULARMAP="":delete this.defines.USE_SPECULARMAP}},glossiness:{get:function(){return r.glossiness.value},set:function(e){r.glossiness.value=e}},glossinessMap:{get:function(){return r.glossinessMap.value},set:function(e){r.glossinessMap.value=e,e?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_UV=""):(delete this.defines.USE_GLOSSINESSMAP,delete this.defines.USE_UV)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(e)}copy(e){return super.copy(e),this.specularMap=e.specularMap,this.specular.copy(e.specular),this.glossinessMap=e.glossinessMap,this.glossiness=e.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this}}class L{constructor(){this.name=b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,this.specularGlossinessParams=["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity"]}getMaterialType(){return H}extendParams(e,t,s){const i=t.extensions[this.name];e.color=new Color(1,1,1),e.opacity=1;const n=[];if(Array.isArray(i.diffuseFactor)){const t=i.diffuseFactor;e.color.fromArray(t),e.opacity=t[3]}if(void 0!==i.diffuseTexture&&n.push(s.assignTexture(e,"map",i.diffuseTexture,sRGBEncoding)),e.emissive=new Color(0,0,0),e.glossiness=void 0!==i.glossinessFactor?i.glossinessFactor:1,e.specular=new Color(1,1,1),Array.isArray(i.specularFactor)&&e.specular.fromArray(i.specularFactor),void 0!==i.specularGlossinessTexture){const t=i.specularGlossinessTexture;n.push(s.assignTexture(e,"glossinessMap",t)),n.push(s.assignTexture(e,"specularMap",t,sRGBEncoding))}return Promise.all(n)}createMaterial(e){const t=new H(e);return t.fog=!0,t.color=e.color,t.map=void 0===e.map?null:e.map,t.lightMap=null,t.lightMapIntensity=1,t.aoMap=void 0===e.aoMap?null:e.aoMap,t.aoMapIntensity=1,t.emissive=e.emissive,t.emissiveIntensity=1,t.emissiveMap=void 0===e.emissiveMap?null:e.emissiveMap,t.bumpMap=void 0===e.bumpMap?null:e.bumpMap,t.bumpScale=1,t.normalMap=void 0===e.normalMap?null:e.normalMap,t.normalMapType=TangentSpaceNormalMap,e.normalScale&&(t.normalScale=e.normalScale),t.displacementMap=null,t.displacementScale=1,t.displacementBias=0,t.specularMap=void 0===e.specularMap?null:e.specularMap,t.specular=e.specular,t.glossinessMap=void 0===e.glossinessMap?null:e.glossinessMap,t.glossiness=e.glossiness,t.alphaMap=null,t.envMap=void 0===e.envMap?null:e.envMap,t.envMapIntensity=1,t}}class N{constructor(){this.name=b.KHR_MESH_QUANTIZATION}}class q extends THREE.Interpolant{constructor(e,t,s,i){super(e,t,s,i)}copySampleValue_(e){const t=this.resultBuffer,s=this.sampleValues,i=this.valueSize,n=e*i*3+i;for(let e=0;e!==i;e++)t[e]=s[n+e];return t}}q.prototype.beforeStart_=q.prototype.copySampleValue_,q.prototype.afterEnd_=q.prototype.copySampleValue_,q.prototype.interpolate_=function(e,t,s,i){const n=this.resultBuffer,l=this.sampleValues,r=this.valueSize,o=2*r,a=3*r,d=i-t,c=(s-t)/d,h=c*c,p=h*c,m=e*a,u=m-a,g=-2*p+3*h,f=p-h,C=1-g,b=f-h+c;for(let e=0;e!==r;e++){const t=l[u+e+r],s=l[u+e+o]*d,i=l[m+e+r],a=l[m+e]*d;n[e]=C*t+b*s+g*i+f*a}return n};const U=new THREE.Quaternion;class B extends q{interpolate_(e,t,s,i){const n=super.interpolate_(e,t,s,i);return U.fromArray(n).normalize().toArray(n),n}}const j=0,z=1,G=2,V=3,W=4,Y=5,X=6,K={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},J={9728:THREE.NearestFilter,9729:THREE.LinearFilter,9984:THREE.NearestMipmapNearestFilter,9985:THREE.LinearMipmapNearestFilter,9986:THREE.NearestMipmapLinearFilter,9987:THREE.LinearMipmapLinearFilter},Z={33071:THREE.ClampToEdgeWrapping,33648:THREE.MirroredRepeatWrapping,10497:THREE.RepeatWrapping},Q={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},ee={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},te={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},se={CUBICSPLINE:void 0,LINEAR:THREE.InterpolateLinear,STEP:THREE.InterpolateDiscrete},ie="OPAQUE",ne="MASK",le="BLEND";function re(e,t,s){for(const i in s.extensions)void 0===e[i]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[i]=s.extensions[i])}function oe(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function ae(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let s=0,i=t.weights.length;s{const s=this.associations.get(e);null!=s&&this.associations.set(t,s);for(const[s,i]of e.children.entries())n(i,t.children[s])};return n(s,i),i.name+="_instance_"+e.uses[t]++,i}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let s=0;s=2&&m.setY(t,c[e*l+1]),l>=3&&m.setZ(t,c[e*l+2]),l>=4&&m.setW(t,c[e*l+3]),l>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return m}))}loadTexture(e){const t=this.json,s=this.options,i=t.textures[e].source,n=t.images[i];let l=this.textureLoader;if(n.uri){const e=s.manager.getHandler(n.uri);null!==e&&(l=e)}return this.loadTextureImage(e,i,l)}loadTextureImage(e,t,s){const i=this,n=this.json,l=n.textures[e],r=n.images[t],o=(r.uri||r.bufferView)+":"+l.sampler;if(this.textureCache[o])return this.textureCache[o];const a=this.loadImageSource(t,s).then((function(t){t.flipY=!1,l.name&&(t.name=l.name);const s=(n.samplers||{})[l.sampler]||{};return t.magFilter=J[s.magFilter]||LinearFilter,t.minFilter=J[s.minFilter]||LinearMipmapLinearFilter,t.wrapS=Z[s.wrapS]||RepeatWrapping,t.wrapT=Z[s.wrapT]||RepeatWrapping,i.associations.set(t,{textures:e}),t})).catch((function(){return null}));return this.textureCache[o]=a,a}loadImageSource(e,t){const s=this,i=this.json,n=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then((e=>e.clone()));const l=i.images[e],r=self.URL||self.webkitURL;let o=l.uri||"",a=!1;if(void 0!==l.bufferView)o=s.getDependency("bufferView",l.bufferView).then((function(e){a=!0;const t=new Blob([e],{type:l.mimeType});return o=r.createObjectURL(t),o}));else if(void 0===l.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const d=Promise.resolve(o).then((function(e){return new Promise((function(s,i){let l=s;!0===t.isImageBitmapLoader&&(l=function(e){const t=new Texture(e);t.needsUpdate=!0,s(t)}),t.load(THREE.LoaderUtils.resolveURL(e,n.path),l,void 0,i)}))})).then((function(e){var t;return!0===a&&r.revokeObjectURL(o),e.userData.mimeType=l.mimeType||((t=l.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e})).catch((function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),e}));return this.sourceCache[e]=d,d}assignTexture(e,t,s,i){const n=this;return this.getDependency("texture",s.index).then((function(l){if(void 0===s.texCoord||0==s.texCoord||"aoMap"===t&&1==s.texCoord||console.warn("THREE.GLTFLoader: Custom UV set "+s.texCoord+" for texture "+t+" not yet supported."),n.extensions[b.KHR_TEXTURE_TRANSFORM]){const e=void 0!==s.extensions?s.extensions[b.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=n.associations.get(l);l=n.extensions[b.KHR_TEXTURE_TRANSFORM].extendTexture(l,e),n.associations.set(l,t)}}return void 0!==i&&(l.encoding=i),e[t]=l,l}))}assignFinalMaterial(e){const t=e.geometry;let s=e.material;const i=void 0===t.attributes.tangent,n=void 0!==t.attributes.color,l=void 0===t.attributes.normal;if(e.isPoints){const e="PointsMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new PointsMaterial,Material.prototype.copy.call(t,s),t.color.copy(s.color),t.map=s.map,t.sizeAttenuation=!1,this.cache.add(e,t)),s=t}else if(e.isLine){const e="LineBasicMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new LineBasicMaterial,Material.prototype.copy.call(t,s),t.color.copy(s.color),this.cache.add(e,t)),s=t}if(i||n||l){let e="ClonedMaterial:"+s.uuid+":";s.isGLTFSpecularGlossinessMaterial&&(e+="specular-glossiness:"),i&&(e+="derivative-tangents:"),n&&(e+="vertex-colors:"),l&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=s.clone(),n&&(t.vertexColors=!0),l&&(t.flatShading=!0),i&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(s))),s=t}s.aoMap&&void 0===t.attributes.uv2&&void 0!==t.attributes.uv&&t.setAttribute("uv2",t.attributes.uv),e.material=s}getMaterialType(){return MeshStandardMaterial}loadMaterial(e){const t=this,s=this.json,i=this.extensions,n=s.materials[e];let l;const r={},o=n.extensions||{},a=[];if(o[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){const e=i[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];l=e.getMaterialType(),a.push(e.extendParams(r,n,t))}else if(o[b.KHR_MATERIALS_UNLIT]){const e=i[b.KHR_MATERIALS_UNLIT];l=e.getMaterialType(),a.push(e.extendParams(r,n,t))}else{const s=n.pbrMetallicRoughness||{};if(r.color=new Color(1,1,1),r.opacity=1,Array.isArray(s.baseColorFactor)){const e=s.baseColorFactor;r.color.fromArray(e),r.opacity=e[3]}void 0!==s.baseColorTexture&&a.push(t.assignTexture(r,"map",s.baseColorTexture,sRGBEncoding)),r.metalness=void 0!==s.metallicFactor?s.metallicFactor:1,r.roughness=void 0!==s.roughnessFactor?s.roughnessFactor:1,void 0!==s.metallicRoughnessTexture&&(a.push(t.assignTexture(r,"metalnessMap",s.metallicRoughnessTexture)),a.push(t.assignTexture(r,"roughnessMap",s.metallicRoughnessTexture))),l=this._invokeOne((function(t){return t.getMaterialType&&t.getMaterialType(e)})),a.push(Promise.all(this._invokeAll((function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,r)}))))}!0===n.doubleSided&&(r.side=DoubleSide);const d=n.alphaMode||ie;if(d===le?(r.transparent=!0,r.depthWrite=!1):(r.transparent=!1,d===ne&&(r.alphaTest=void 0!==n.alphaCutoff?n.alphaCutoff:.5)),void 0!==n.normalTexture&&l!==MeshBasicMaterial&&(a.push(t.assignTexture(r,"normalMap",n.normalTexture)),r.normalScale=new Vector2(1,1),void 0!==n.normalTexture.scale)){const e=n.normalTexture.scale;r.normalScale.set(e,e)}return void 0!==n.occlusionTexture&&l!==MeshBasicMaterial&&(a.push(t.assignTexture(r,"aoMap",n.occlusionTexture)),void 0!==n.occlusionTexture.strength&&(r.aoMapIntensity=n.occlusionTexture.strength)),void 0!==n.emissiveFactor&&l!==MeshBasicMaterial&&(r.emissive=(new Color).fromArray(n.emissiveFactor)),void 0!==n.emissiveTexture&&l!==MeshBasicMaterial&&a.push(t.assignTexture(r,"emissiveMap",n.emissiveTexture,sRGBEncoding)),Promise.all(a).then((function(){let s;return s=l===H?i[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(r):new l(r),n.name&&(s.name=n.name),oe(s,n),t.associations.set(s,{materials:e}),n.extensions&&re(i,s,n),s}))}createUniqueName(e){const t=PropertyBinding.sanitizeNodeName(e||"");let s=t;for(let e=1;this.nodeNamesUsed[s];++e)s=t+"_"+e;return this.nodeNamesUsed[s]=!0,s}loadGeometries(e){const t=this,s=this.extensions,i=this.primitiveCache;function n(e){return s[b.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then((function(s){return ue(s,e,t)}))}const l=[];for(let s=0,r=e.length;s0&&ae(h,n),h.name=t.createUniqueName(n.name||"mesh_"+e),oe(h,n),c.extensions&&re(i,h,c),t.assignFinalMaterial(h),a.push(h)}for(let s=0,i=a.length;s1?new Group:1===t.length?t[0]:new Object3D,r!==t[0])for(let e=0,s=t.length;e{const t=new Map;for(const[e,s]of n.associations)(e instanceof Material||e instanceof Texture)&&t.set(e,s);return e.traverse((e=>{const s=n.associations.get(e);null!=s&&t.set(e,s)})),t})(l),l}))}}function me(e,t,s,i){const n=s.nodes[e];return i.getDependency("node",e).then((function(e){if(void 0===n.skin)return e;let t;return i.getDependency("skin",n.skin).then((function(e){t=e;const s=[];for(let e=0,n=t.joints.length;e{const s=n[e];return s&&(l={profileId:e,profilePath:`${t}/${s.path}`,deprecated:!!s.deprecated}),!!l})),!l){if(!s)throw new Error("No matching profile name found");const e=n[s];if(!e)throw new Error(`No matching profile name found and default profile "${s}" missing.`);l={profileId:s,profilePath:`${t}/${e.path}`,deprecated:!!e.deprecated}}const r=await Ce(l.profilePath);let o;if(i){let t;if(t="any"===e.handedness?r.layouts[Object.keys(r.layouts)[0]]:r.layouts[e.handedness],!t)throw new Error(`No matching handedness, ${e.handedness}, in profile ${l.profileId}`);t.assetPath&&(o=l.profilePath.replace("profile.json",t.assetPath))}return{profile:r,assetPath:o}}const ye={xAxis:0,yAxis:0,button:0,state:fe.ComponentState.DEFAULT};class ve{constructor(e){this.componentProperty=e.componentProperty,this.states=e.states,this.valueNodeName=e.valueNodeName,this.valueNodeProperty=e.valueNodeProperty,this.valueNodeProperty===fe.VisualResponseProperty.TRANSFORM&&(this.minNodeName=e.minNodeName,this.maxNodeName=e.maxNodeName),this.value=0,this.updateFromComponent(ye)}updateFromComponent({xAxis:e,yAxis:t,button:s,state:i}){const{normalizedXAxis:n,normalizedYAxis:l}=function(e=0,t=0){let s=e,i=t;if(Math.sqrt(e*e+t*t)>1){const n=Math.atan2(t,e);s=Math.cos(n),i=Math.sin(n)}return{normalizedXAxis:.5*s+.5,normalizedYAxis:.5*i+.5}}(e,t);switch(this.componentProperty){case fe.ComponentProperty.X_AXIS:this.value=this.states.includes(i)?n:.5;break;case fe.ComponentProperty.Y_AXIS:this.value=this.states.includes(i)?l:.5;break;case fe.ComponentProperty.BUTTON:this.value=this.states.includes(i)?s:0;break;case fe.ComponentProperty.STATE:this.valueNodeProperty===fe.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(i):this.value=this.states.includes(i)?1:0;break;default:throw new Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`)}}}class _e{constructor(e,t){if(!(e&&t&&t.visualResponses&&t.gamepadIndices&&0!==Object.keys(t.gamepadIndices).length))throw new Error("Invalid arguments supplied");this.id=e,this.type=t.type,this.rootNodeName=t.rootNodeName,this.touchPointNodeName=t.touchPointNodeName,this.visualResponses={},Object.keys(t.visualResponses).forEach((e=>{const s=new ve(t.visualResponses[e]);this.visualResponses[e]=s})),this.gamepadIndices=Object.assign({},t.gamepadIndices),this.values={state:fe.ComponentState.DEFAULT,button:void 0!==this.gamepadIndices.button?0:void 0,xAxis:void 0!==this.gamepadIndices.xAxis?0:void 0,yAxis:void 0!==this.gamepadIndices.yAxis?0:void 0}}get data(){return{id:this.id,...this.values}}updateFromGamepad(e){if(this.values.state=fe.ComponentState.DEFAULT,void 0!==this.gamepadIndices.button&&e.buttons.length>this.gamepadIndices.button){const t=e.buttons[this.gamepadIndices.button];this.values.button=t.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,t.pressed||1===this.values.button?this.values.state=fe.ComponentState.PRESSED:(t.touched||this.values.button>fe.ButtonTouchThreshold)&&(this.values.state=fe.ComponentState.TOUCHED)}void 0!==this.gamepadIndices.xAxis&&e.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=e.axes[this.gamepadIndices.xAxis],this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis,this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis,this.values.state===fe.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>fe.AxisTouchThreshold&&(this.values.state=fe.ComponentState.TOUCHED)),void 0!==this.gamepadIndices.yAxis&&e.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=e.axes[this.gamepadIndices.yAxis],this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis,this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis,this.values.state===fe.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>fe.AxisTouchThreshold&&(this.values.state=fe.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach((e=>{e.updateFromComponent(this.values)}))}}class we{constructor(e,t,s){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No profile supplied");this.xrInputSource=e,this.assetUrl=s,this.id=t.profileId,this.layoutDescription=t.layouts[e.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach((e=>{const t=this.layoutDescription.components[e];this.components[e]=new _e(e,t)})),this.updateFromGamepad()}get gripSpace(){return this.xrInputSource.gripSpace}get targetRaySpace(){return this.xrInputSource.targetRaySpace}get data(){const e=[];return Object.values(this.components).forEach((t=>{e.push(t.data)})),e}updateFromGamepad(){Object.values(this.components).forEach((e=>{e.updateFromGamepad(this.xrInputSource.gamepad)}))}}class Se extends THREE.Object3D{constructor(){super(),this.motionController=null,this.envMap=null}setEnvironmentMap(e){return this.envMap==e||(this.envMap=e,this.traverse((e=>{e.isMesh&&(e.material.envMap=this.envMap,e.material.needsUpdate=!0)}))),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach((e=>{Object.values(e.visualResponses).forEach((e=>{const{valueNode:t,minNode:s,maxNode:i,value:n,valueNodeProperty:l}=e;t&&(l===fe.VisualResponseProperty.VISIBILITY?t.visible=n:l===fe.VisualResponseProperty.TRANSFORM&&(t.quaternion.slerpQuaternions(s.quaternion,i.quaternion,n),t.position.lerpVectors(s.position,i.position,n)))}))})))}}function Ae(e,t){!function(e,t){Object.values(e.components).forEach((e=>{const{type:s,touchPointNodeName:i,visualResponses:n}=e;if(s===fe.ComponentType.TOUCHPAD)if(e.touchPointNode=t.getObjectByName(i),e.touchPointNode){const t=new SphereGeometry(.001),s=new MeshBasicMaterial({color:255}),i=new Mesh(t,s);e.touchPointNode.add(i)}else console.warn(`Could not find touch dot, ${e.touchPointNodeName}, in touchpad component ${e.id}`);Object.values(n).forEach((e=>{const{valueNodeName:s,minNodeName:i,maxNodeName:n,valueNodeProperty:l}=e;if(l===fe.VisualResponseProperty.TRANSFORM){if(e.minNode=t.getObjectByName(i),e.maxNode=t.getObjectByName(n),!e.minNode)return void console.warn(`Could not find ${i} in the model`);if(!e.maxNode)return void console.warn(`Could not find ${n} in the model`)}e.valueNode=t.getObjectByName(s),e.valueNode||console.warn(`Could not find ${s} in the model`)}))}))}(e.motionController,t),e.envMap&&t.traverse((t=>{t.isMesh&&(t.material.envMap=e.envMap,t.material.needsUpdate=!0)})),e.add(t)}class xe{constructor(e=null){this.gltfLoader=e,this.path="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",this._assetCache={},this.gltfLoader||(this.gltfLoader=new f)}createControllerModel(e){const t=new Se;let s=null;return e.addEventListener("connected",(e=>{const i=e.data;"tracked-pointer"===i.targetRayMode&&i.gamepad&&be(i,this.path,"generic-trigger").then((({profile:e,assetPath:n})=>{t.motionController=new we(i,e,n);const l=this._assetCache[t.motionController.assetUrl];if(l)s=l.scene.clone(),Ae(t,s);else{if(!this.gltfLoader)throw new Error("GLTFLoader not set.");this.gltfLoader.setPath(""),this.gltfLoader.load(t.motionController.assetUrl,(e=>{this._assetCache[t.motionController.assetUrl]=e,s=e.scene.clone(),Ae(t,s)}),null,(()=>{throw new Error(`Asset ${t.motionController.assetUrl} missing or malformed.`)}))}})).catch((e=>{console.warn(e)}))})),e.addEventListener("disconnected",(()=>{t.motionController=null,t.remove(s),s=null})),t}}class ke extends THREE.EventDispatcher{constructor(e){if(super(),void 0===e)return void console.error("ControllerGestures must be passed a renderer");const t=new THREE.Clock;this.controller1=e.xr.getController(0),this.controller1.userData.gestures={index:0},this.controller1.userData.selectPressed=!1,this.controller1.addEventListener("selectstart",i),this.controller1.addEventListener("selectend",n),this.controller2=e.xr.getController(1),this.controller2.userData.gestures={index:1},this.controller2.userData.selectPressed=!1,this.controller2.addEventListener("selectstart",i),this.controller2.addEventListener("selectend",n),this.doubleClickLimit=.2,this.pressMinimum=.4,this.right=new THREE.Vector3(1,0,0),this.up=new THREE.Vector3(0,1,0),this.type="unknown",this.prevTap="none",this.clock=t;const s=this;function i(){const e=this.userData.gestures;e.startPosition=void 0,e.startTime=t.getElapsedTime(),-1==s.type.indexOf("tap")&&(e.taps=0),s.type="unknown",this.userData.selectPressed=!0}function n(){const e=this.userData.gestures;e.endTime=t.getElapsedTime();e.endTime-e.startTime.05&&(e.startPosition=this.controller1.position.clone())),this.controller2.userData.selectPressed&&void 0===t.startPosition&&(i=s-t.startTime,i>.05&&(t.startPosition=this.controller2.position.clone())),!this.controller1.userData.selectPressed&&"tap"===this.type&&(i=this.clock.getElapsedTime()-e.endTime,i>this.doubleClickLimit)){switch(e.taps){case 1:self.prevTap="tap";break;case 2:this.dispatchEvent({type:"doubletap",position:this.controller1.position,matrixWorld:this.controller1.matrixWorld}),self.prevTap="doubletap"}this.type="unknown",e.taps=0}if("unknown"===this.type&&this.touch)"doubletap"==self.prevTap?(this.type="pinch",this.startDistance=this.controller1.position.distanceTo(this.controller2.position),this.dispatchEvent({type:"pinch",delta:new THREE.Vector3(0,0,0),scale:1,initialise:!0})):(this.type="pan",this.startPosition=this.controller1.position.clone(),this.dispatchEvent({type:"pan",delta:new THREE.Vector3(0,0,0),initialise:!0}));else if(("pinch"===this.type||"pan"===this.type)&&"doubletap"==self.prevTap&&this.controller2.position){const e=this.controller1.position.distanceTo(this.controller2.position)/this.startDistance,t=this.controller1.position.clone().sub(this.startPosition);this.dispatchEvent({type:"pinch",delta:t,scale:e})}}}class Oe{constructor(e,t){this.config=void 0===t?{panelSize:{width:1,height:1},width:512,height:512,opacity:.7,body:{fontFamily:"Arial",fontSize:30,padding:2,backgroundColor:"#000",fontColor:"#fff",borderRadius:6}}:t,void 0===this.config.width&&(this.config.width=512),void 0===this.config.height&&(this.config.height=512),void 0===this.config.body&&(this.config.body={fontFamily:"Arial",size:30,padding:2,backgroundColor:"#000",fontColor:"#fff",borderRadius:6});const s=this.config.body;void 0===s.borderRadius&&(s.borderRadius=6),void 0===s.fontFamily&&(s.fontFamily="Arial"),void 0===s.padding&&(s.padding=2),void 0===s.fontSize&&(s.fontSize=30),void 0===s.backgroundColor&&(s.backgroundColor="#000"),void 0===s.fontColor&&(s.fontColor="#fff"),Object.entries(this.config).forEach((([e,t])=>{if(!("object"!=typeof t||"panelSize"===e||t instanceof THREE.WebGLRenderer||t instanceof THREE.Scene)){const e=void 0!==t.position?t.position:{x:0,y:0};void 0!==e.left&&void 0===e.x&&(e.x=e.left),void 0!==e.top&&void 0===e.y&&(e.y=e.top);const s=void 0!==t.width?t.width:this.config.width,i=void 0!==t.height?t.height:this.config.height;void 0!==e.right&&void 0===e.x&&(e.x=this.config.width-e.right-s),void 0!==e.bottom&&void 0===e.y&&(e.y=this.config.height-e.bottom-i),void 0===e.x&&(e.x=0),void 0===e.y&&(e.y=0),t.position=e,void 0===t.type&&(t.type="text")}}));const i=this.createOffscreenCanvas(this.config.width,this.config.height);this.context=i.getContext("2d"),this.context.save();const n=void 0!==this.config.opacity?this.config.opacity:.7,l=new THREE.MeshBasicMaterial({transparent:!0,opacity:n});this.panelSize=void 0!==this.config.panelSize?this.config.panelSize:{width:1,height:1};const r=new THREE.PlaneGeometry(this.panelSize.width,this.panelSize.height);this.mesh=new THREE.Mesh(r,l),this.texture=new THREE.CanvasTexture(i),this.mesh.material.map=this.texture,this.scene=this.config.scene;if(Object.values(this.config).filter((e=>"input-text"===e.type)).length>0){this.keyboard=new Re(this.panelSize.width,this.config.renderer);this.keyboard.mesh.position.set(0,-.3,.2),this.mesh.add(this.keyboard.mesh)}if(void 0===e)this.content={body:""},this.config.body.type="text";else{this.content=e;Object.values(t).filter((e=>"button"===e.type||"scroll"===e.overflow||"input-text"===e.type)).length>0&&(void 0===t||void 0===t.renderer?console.warn("CanvasUI: button, scroll or input-text in the config but no renderer"):(this.renderer=t.renderer,this.initControllers()))}this.selectedElements=[void 0,void 0],this.selectPressed=[!1,!1],this.scrollData=[void 0,void 0],this.intersects=[void 0,void 0],this.needsUpdate=!0,this.update()}getIntersectY(e){const t=this.config.height||512,s=this.intersects[e];return void 0===s||void 0===s.uv?0:(1-s.uv.y)*t}initControllers(){this.vec3=new THREE.Vector3,this.mat4=new THREE.Matrix4,this.raycaster=new THREE.Raycaster;const e=this;function t(t){const s=t.target===e.controller?0:1,i=e.selectedElements[s];if(void 0!==i)if("button"==i.type)e.select(s);else if("input-text"==i.type&&e.keyboard)if(e.keyboard.visible)e.keyboard.linkedUI=void 0,e.keyboard.linkedText=void 0,e.keyboard.linkedElement=void 0,e.keyboard.visible=!1;else{let t;e.keyboard.linkedUI=e,Object.entries(e.config).forEach((([e,s])=>{s==i&&(t=e)}));const s=(.5-(i.position.y+i.height+e.config.body.padding)/e.config.height)*e.panelSize.height,n=Math.max(e.panelSize.width,e.panelSize.height)/2;e.keyboard.position.set(0,-n/1.5-s,.1),e.keyboard.linkedText=e.content[t],e.keyboard.linkedName=t,e.keyboard.linkedElement=i,e.keyboard.visible=!0}}function s(t){const s=t.target===e.controller?0:1;if(e.selectPressed[s]=!0,void 0!==e.selectedElements[s]&&"scroll"==e.selectedElements[s].overflow){const t=e.selectedElements[s];e.scrollData[s]={scrollY:t.scrollY,rayY:e.getIntersectY(s)}}}function i(t){const s=t.target===e.controller?0:1;e.selectPressed[s]=!1,void 0!==e.selectedElements[s]&&"scroll"==e.selectedElements[s].overflow&&(e.scrollData[s]=void 0)}if(this.controller=this.renderer.xr.getController(0),this.controller.addEventListener("select",t),this.controller.addEventListener("selectstart",s),this.controller.addEventListener("selectend",i),this.controller1=this.renderer.xr.getController(1),this.controller1.addEventListener("select",t),this.controller1.addEventListener("selectstart",s),this.controller1.addEventListener("selectend",i),this.scene){const e=.015,t=new THREE.IcosahedronBufferGeometry(e),s=new THREE.MeshBasicMaterial({color:170}),i=new THREE.Mesh(t,s);i.visible=!1,this.scene.add(i);const n=new THREE.Mesh(t,s);n.visible=!1,this.scene.add(n),this.intersectMesh=[i,n]}}setClip(e){const t=this.context;if(t.restore(),t.save(),void 0!==e.clipPath){const s=new Path2D(e.clipPath);t.clip(s)}else{const s=void 0!==e.position?e.position:{x:0,y:0},i=e.borderRadius||0,n=e.width||this.config.width,l=e.height||this.config.height;if(t.beginPath(),0!==i){const e=Math.PI/2;t.moveTo(s.x+i,s.y),t.arc(s.x+i,s.y+i,i,e,2*e,!0),t.lineTo(s.x,s.y+l-i),t.arc(s.x+i,s.y+l-i,i,0,e,!0),t.lineTo(s.x+n-i,s.y+l),t.arc(s.x+n-i,s.y+l-i,i,3*e,4*e,!0),t.lineTo(s.x+n,s.y+i),t.arc(s.x+n-i,s.y+i,i,2*e,3*e,!0),t.closePath(),t.clip()}else t.rect(s.x,s.y,n,l),t.clip()}}setPosition(e,t,s){void 0!==this.mesh&&this.mesh.position.set(e,t,s)}setRotation(e,t,s){void 0!==this.mesh&&this.mesh.rotation.set(e,t,s)}updateElement(e,t){let s=this.content[e];void 0!==s?("object"==typeof s?s.content=t:s=t,this.content[e]=s,this.needsUpdate=!0):console.warn(`CanvasGUI.updateElement: No ${e} found`)}get panel(){return this.mesh}getElementAtLocation(e,t){const s=this,i=Object.entries(this.config).filter((([i,n])=>{if(!("object"!=typeof n||"panelSize"===i||"body"===i||n instanceof THREE.WebGLRenderer||n instanceof THREE.Scene)){const i=n.position,l=void 0!==n.width?n.width:s.config.width,r=void 0!==n.height?n.height:s.config.height;return e>=i.x&&e=i.y&&t0?(this.hover(t,s[0].uv),this.intersects[t]=s[0],this.scroll(t)):(this.hover(t),this.intersects[t]=void 0,this.scroll(t))}update(){if(void 0===this.mesh)return;if(this.controller&&this.handleController(this.controller,0),this.controller1&&this.handleController(this.controller1,1),this.keyboard&&this.keyboard.visible&&this.keyboard.update(),!this.needsUpdate)return;let e=this.context;e.clearRect(0,0,this.config.width,this.config.height);const t=this.config.body.backgroundColor?this.config.body.backgroundColor:"#000";!this.config.body.fontFamily||this.config.body.fontFamily;const s=this.config.body.fontColor?this.config.body.fontColor:"#fff";!this.config.body.fontSize||this.config.body.fontSize,this.setClip(this.config.body),e.fillStyle=t,e.fillRect(0,0,this.config.width,this.config.height);const i=this;Object.entries(this.content).forEach((([t,n])=>{const l=void 0!==i.config[t]?i.config[t]:i.config.body;if("none"!==(void 0!==l.display?l.display:"block")){const r=void 0!==l.position?l.position:{x:0,y:0},o=void 0!==l.width?l.width:i.config.width,a=void 0!==l.height?l.height:i.config.height;"button"!=l.type||n.toLowerCase().startsWith("")||(void 0===l.borderRadius&&(l.borderRadius=6),void 0===l.textAlign&&(l.textAlign="center")),i.setClip(l);const d=n.toLowerCase().startsWith(""),c=void 0!==i.selectedElements[0]&&this.selectedElements[0]===l||void 0!==i.selectedElements[1]&&this.selectedElements[1]===l;if(void 0!==l.backgroundColor&&(c&&"button"==l.type&&void 0!==l.hover?e.fillStyle=l.hover:e.fillStyle=l.backgroundColor,e.fillRect(r.x,r.y,o,a)),"text"==l.type||"button"==l.type||"input-text"==l.type){let h=!1;if(c?(d||"button"!=l.type?e.fillStyle=void 0!==l.hover?l.hover:void 0!==l.fontColor?l.fontColor:s:e.fillStyle=void 0!==l.fontColor?l.fontColor:s,h=void 0===l.hover):e.fillStyle=void 0!==l.fontColor?l.fontColor:s,d){const t=n.toUpperCase().substring(6,n.length-7);e.save(),e.translate(r.x,r.y);const s=new Path2D(t);e.fill(s),e.restore()}else i.wrapText(t,n);h&&(e.beginPath(),e.strokeStyle="#fff",e.lineWidth=2,e.rect(r.x,r.y,o,a),e.stroke())}else if("img"==l.type)if(void 0===l.img)this.loadImage(n).then((e=>{console.log(`w: ${e.width} | h: ${e.height}`),l.img=e,i.needsUpdate=!0,i.update()})).catch((e=>console.error(e)));else{const t=o/(l.img.width/l.img.height);e.drawImage(l.img,r.x,r.y,o,t)}}})),this.needsUpdate=!1,this.texture.needsUpdate=!0}loadImage(e){return new Promise(((t,s)=>{const i=new THREE.Image;i.addEventListener("load",(()=>t(i))),i.addEventListener("error",(e=>s(e))),i.src=e}))}createOffscreenCanvas(e,t){const s=document.createElement("canvas");return s.width=e,s.height=t,s}fillRoundedRect(e,t,s,i,n){const l=this.context;l.beginPath(),l.moveTo(e+n,t),l.lineTo(e+s-n,t),l.quadraticCurveTo(e+s,t,e+s,t+n),l.lineTo(e+s,t+i-n),l.quadraticCurveTo(e+s,t+i,e+s-n,t+i),l.lineTo(e+n,t+i),l.quadraticCurveTo(e,t+i,e,t+i-n),l.lineTo(e,t+n),l.quadraticCurveTo(e,t,e+n,t),l.closePath(),l.fill()}lookAt(e){void 0!==this.mesh&&(e instanceof Vector3?this.mesh.lookAt(e):console.error("CanvasUI lookAt called parameter not a THREE.Vector3"))}get visible(){return void 0!==this.mesh&&this.mesh.visible}set visible(e){this.mesh&&(this.mesh.visible=e)}get position(){if(void 0!==this.mesh)return this.mesh.position}set position(e){void 0!==this.mesh&&(e instanceof Vector3?this.mesh.position.copy(e):console.error("CanvasUI trying to set the mesh position using a parameter that is not a THREE.Vector3"))}get quaternion(){if(void 0!==this.mesh)return this.mesh.quaternion}set quaternion(e){void 0!==this.mesh&&(e instanceof QUaternion?this.mesh.quaternion.copy(e):console.error("CanvasUI trying to set the mesh quaternion using a parameter that is not a THREE.Quaternion"))}wrapText(e,t){const s=t.split(" ");let i="";const n=[],l=void 0!==this.config[e]?this.config[e]:this.config.body,r=void 0!==l.width?l.width:this.config.width,o=void 0!==l.height?l.height:this.config.height,a=void 0!==l.position?l.position:{x:0,y:0},d=void 0!==l.padding?l.padding:void 0!==this.config.body.padding?this.config.body.padding:10,c=void 0!==l.paddingTop?l.paddingTop:d,h=void 0!==l.paddingLeft?l.paddingLeft:d,p=void 0!==l.paddingBottom?l.paddingBottom:d,m=void 0!==l.paddingRight?l.paddingRight:d,u={x:a.x+h,y:a.y+c,width:r-h-m,height:o-c-p},g=void 0!==l.textAlign?l.textAlign:void 0!==this.config.body.textAlign?this.config.body.textAlign:"left",f=void 0!==l.fontSize?l.fontSize:void 0!==this.config.body.fontSize?this.config.body.fontSize:30,C=void 0!==l.fontFamily?l.fontFamily:void 0!==this.config.body.fontFamily?this.config.body.fontFamily:"Arial",b=f+(void 0!==l.leading?l.leading:void 0!==this.config.body.leading?this.config.body.leading:8),y=this.context;y.textAlign=g,y.font=`${f}px '${C}'`,s.forEach((function(e){let t=s.length>1?`${i}${e} `:e,l=y.measureText(t);if(l.width>u.width&&e.length>1)if(0==i.length&&l.width>u.width){for(;l.width>u.width;){let s=0;do{s++,t=e.substr(0,s),l=y.measureText(t)}while(l.widthu.height&&"scroll"===l.overflow){void 0===l.scrollY&&(l.scrollY=0);const e=void 0!==l.fontColor?l.fontColor:this.config.body.fontColor;y.fillStyle="#aaa",this.fillRoundedRect(a.x+r-12,a.y,12,o,6),y.fillStyle="#666";const t=u.height/v,s=t*o,i=-l.scrollY*t;this.fillRoundedRect(a.x+r-12,a.y+i,12,s,6),y.fillStyle=e,_=l.scrollY,l.minScrollY=u.height-v}let w,S=_+u.y+f/2;switch(g){case"center":w=u.x+u.width/2;break;case"right":w=u.x+u.width;break;default:w=u.x}n.forEach((e=>{S+b>0&&y.fillText(e,w,S),S+=b}))}}class Re{constructor(e,t,s="EN"){const i=this.getConfig(s);i.panelSize={width:e,height:.5*e},i.height=256,i.body={backgroundColor:"#555"},i.renderer=t;const n=this.getContent(s);this.keyboard=new Oe(n,i),this.keyboard.mesh.visible=!1,this.shift=!1}get mesh(){return this.keyboard.mesh}getConfig(e){const t={};let s=10;const i=39.2,n=49,l="#333",r="#000";let o=s,a=s;for(let e=0;e<10;e++){const d={type:"button",position:{x:a,y:o},width:i,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e)};t[`btn${e}`]=d,a+=49.2}o+=59,a=s;for(let e=0;e<10;e++){const d={type:"button",position:{x:a,y:o},width:i,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+10)};t[`btn${e+10}`]=d,a+=49.2}o+=59,a=s;for(let e=0;e<9;e++){const d=0==e||8==e?1.5*i+5:i,c={type:"button",position:{x:a,y:o},width:d,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+20)};t[`btn${e+20}`]=c,a+=d+s}o+=59,a=s;for(let e=0;e<5;e++){const d=0==e||4==e?88.4:2==e?186.8:i,c={type:"button",position:{x:a,y:o},width:d,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+30)};0==e&&(c.fontSize=20),t[`btn${e+30}`]=c,a+=d+s}return t}getContent(e,t=0){let s,i={};switch(this.language=e,this.keyboardIndex=t,t){case 0:s=["q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","@","⇧","z","x","c","v","b","n","m","⇦","","?123",","," ",".","↲"];for(let e=0;e","_","`","~",":",";","⇦","","abc",","," ",".","↲"];for(let e=0;e=0;e--){let s=t.scene.children[e];t.scene.remove(s)}else t.scene=new THREE.Scene;if(void 0!==t.scene_ghost)for(let e=t.scene_ghost.children.length-1;e>=0;e--){let s=t.scene_ghost.children[e];t.scene_ghost.remove(s)}else t.scene_ghost=new THREE.Scene;if(""!=s.htmlCls.setHtmlCls.getCookie("shininess")){let e=parseFloat(s.htmlCls.setHtmlCls.getCookie("shininess"));t.shininess!=e&&s.htmlCls.clickMenuCls.setLogCmd("set shininess "+e,!0),t.shininess=e}if(!s.bNode&&""!=s.htmlCls.setHtmlCls.getCookie("light1")){let e=parseFloat(s.htmlCls.setHtmlCls.getCookie("light1")),i=parseFloat(s.htmlCls.setHtmlCls.getCookie("light2")),n=parseFloat(s.htmlCls.setHtmlCls.getCookie("light3"));t.light1==e&&t.light2==i&&t.light3==n||s.htmlCls.clickMenuCls.setLogCmd("set light | light1 "+e+" | light2 "+i+" | light3 "+n,!0),t.light1=e,t.light2=i,t.light3=n}t.directionalLight=new THREE.DirectionalLight(16777215,t.light1),t.directionalLight2=new THREE.DirectionalLight(16777215,t.light2),t.directionalLight3=new THREE.DirectionalLight(16777215,t.light3),t.cam_z>0?(t.directionalLight.position.set(-1,1,1),t.directionalLight2.position.set(1,1,1),t.directionalLight3.position.set(1,1,-1),t.lightPos=new THREE.Vector3(-1,1,1),t.lightPos2=new THREE.Vector3(1,1,1),t.lightPos3=new THREE.Vector3(1,1,-1)):(t.directionalLight.position.set(-1,1,-1),t.directionalLight2.position.set(1,1,-1),t.directionalLight3.position.set(1,1,1),t.lightPos=new THREE.Vector3(-1,1,-1),t.lightPos2=new THREE.Vector3(1,1,-1),t.lightPos3=new THREE.Vector3(1,1,1));let i=new THREE.AmbientLight(4210752);if(t.scene.add(t.directionalLight),t.scene.add(i),void 0!==t.mdl)for(let e=t.mdl.children.length-1;e>=0;e--){let s=t.mdl.children[e];s.geometry&&s.geometry.dispose(),s.material&&s.material.dispose(),t.mdl.remove(s)}if(void 0!==t.mdlImpostor){for(let e=t.mdlImpostor.children.length-1;e>=0;e--){let s=t.mdlImpostor.children[e];s.geometry&&s.geometry.dispose(),s.material&&s.material.dispose(),t.mdlImpostor.remove(s)}t.mdlImpostor.children.length=0}s.bNode||t.renderer.renderLists.dispose(),t.mdl=new THREE.Object3D,t.mdlImpostor=new THREE.Object3D,t.scene.add(t.mdl),t.scene.add(t.mdlImpostor),t.mdl_ghost=new THREE.Object3D,t.scene_ghost.add(t.mdl_ghost),t.objects=[],t.objects_ghost=[],t.raycaster=new THREE.Raycaster,t.projector=new THREE.Projector,t.mouse=new THREE.Vector2;let n=s.parasCls.backgroundColors[t.opts.background.toLowerCase()];s.bNode||("transparent"===t.opts.background.toLowerCase()?t.renderer.setClearColor(n,0):t.renderer.setClearColor(n,1)),t.perspectiveCamera=new THREE.PerspectiveCamera(20,t.container.whratio,.1,1e4),t.perspectiveCamera.position.set(0,0,t.cam_z),t.perspectiveCamera.lookAt(new THREE.Vector3(0,0,0)),t.orthographicCamera=new THREE.OrthographicCamera,t.orthographicCamera.position.set(0,0,t.cam_z),t.orthographicCamera.lookAt(new THREE.Vector3(0,0,0)),t.cams={perspective:t.perspectiveCamera,orthographic:t.orthographicCamera}}setVrAr(){let e=this.icn3d;e.icn3dui;let t=this;e.bSetVrAr=!0,e.bVr?(e.canvasUI=this.createUI(),e.raycasterVR=new THREE.Raycaster,e.workingMatrix=new THREE.Matrix4,e.workingVector=new THREE.Vector3,e.origin=new THREE.Vector3,e.dolly=new THREE.Object3D,e.dolly.position.z=5,e.dolly.add(e.cam),e.scene.add(e.dolly),e.dollyId=e.dolly.id,e.dummyCam=new THREE.Object3D,e.cam.add(e.dummyCam),e.clock=new THREE.Clock,e.controllers=this.getControllers(),e.controllers.forEach((s=>{s.addEventListener("connected",(function(e){try{const s={},i="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",n="generic-trigger";be(e.data,i,n).then((({profile:i,assetPath:n})=>{s.name=i.profileId,s.targetRayMode=e.data.targetRayMode,Object.entries(i.layouts).forEach((([e,t])=>{const i={};Object.values(t.components).forEach((e=>{i[e.rootNodeName]=e.gamepadIndices})),s[e]=i})),t.updateControllers(s)}))}catch(e){}})),s.addEventListener("disconnected",(function(){this.remove(this.children[0]),e.controllers.forEach((e=>{}))}))}))):e.bAr&&(e.gestures=new ke(e.renderer),e.scene.add(e.gestures.controller1),e.scene.add(e.gestures.controller2),e.gestures.addEventListener("doubletap",(e=>{t.positionCenter()})),e.gestures.addEventListener("pinch",(s=>{if(void 0!==s.initialise)t.startPosition=e.mdl.position.clone(),t.startScale=e.mdl.scale.clone();else{let i=1;const n=t.startScale.clone().multiplyScalar(s.scale*i);e.mdl.scale.copy(n)}})))}positionCenter(){let e=this.icn3d;e.icn3dui;const t=e.gestures.controller1;e.mdl.position.set(-.06,0,-.6).applyMatrix4(t.matrixWorld),e.mdl.scale.copy(new THREE.Vector3(.005,.005,.005))}setVrArButtons(){let e=this.icn3d,t=e.icn3dui;e.bSetVrArButtons=!0,t.bNode||($("#"+t.pre+"VRButton").remove(),$("#"+t.pre+"viewer").get(0).appendChild(e.VRButtonCls.createButton(e.renderer)),$("#"+t.pre+"ARButton").remove(),$("#"+t.pre+"viewer").get(0).appendChild(e.ARButtonCls.createButton(e.renderer)))}updateControllers(e){this.icn3d.icn3dui,this.addEventForController(e,"right"),this.addEventForController(e,"left")}addEventForController(e,t){let s=this.icn3d;s.icn3dui;const i="right"==t?s.renderer.xr.getController(0):s.renderer.xr.getController(1),n="right"==t?e.right:e.left;if(i&&void 0!==n){let e=!1,t=!1;Object.keys(n).forEach((i=>{-1!=i.indexOf("trigger")&&(e=!0),-1!=i.indexOf("squeeze")&&(t=!0),-1==i.indexOf("thumbstick")&&-1==i.indexOf("touchpad")||(s.xAxisIndex=n[i].xAxis,s.yAxisIndex=n[i].yAxis)})),e&&(i.addEventListener("selectstart",(function(){this.userData.selectPressed=!0})),i.addEventListener("selectend",(function(){this.userData.selectPressed=!1,this.userData.selected=void 0}))),t&&(i.addEventListener("squeezestart",(function(){this.userData.squeezePressed=!0,s.cam.add(s.canvasUI.mesh)})),i.addEventListener("squeezeend",(function(){this.userData.squeezePressed=!1,s.cam.remove(s.canvasUI.mesh)})))}}createUI(){let e=this.icn3d,t=e.icn3dui,s=94,i=50,n=94,l=34,r=12,o="#1c94c4",a="#ccc",d="#fbcb09",c=20;const h={panelSize:{width:2,height:1.6},height:400,select:{type:"button",paddingTop:c,position:{top:6,left:6},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},residue:{type:"button",paddingTop:c,position:{top:62,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=2,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},secondarySelect:{type:"button",paddingTop:12,position:{top:118,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=3,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},chainSelect:{type:"button",paddingTop:c,position:{top:174,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=5,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},atom:{type:"button",paddingTop:c,position:{top:230,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=1,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},reset:{type:"button",paddingTop:c,position:{top:286,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.viewInterPairsCls.resetInteractionPairs(),e.selectionCls.resetAll(),e.cam.remove(e.canvasUI.mesh)}},togglehl:{type:"button",paddingTop:12,position:{top:342,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.hlUpdateCls.toggleHighlight(),e.cam.remove(e.canvasUI.mesh)}},style:{type:"button",paddingTop:c,position:{top:6,left:106},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},ribbon:{type:"button",paddingTop:c,position:{top:62,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","ribbon"),e.setOptionCls.setStyle("nucleotides","nucleotide cartoon"),e.cam.remove(e.canvasUI.mesh)}},schematic:{type:"button",paddingTop:c,position:{top:118,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","schematic"),e.setOptionCls.setStyle("nucleotides","schematic"),e.cam.remove(e.canvasUI.mesh)}},stick:{type:"button",paddingTop:c,position:{top:174,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","stick"),e.setOptionCls.setStyle("nucleotides","stick"),e.cam.remove(e.canvasUI.mesh)}},sphere:{type:"button",paddingTop:c,position:{top:230,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","sphere"),e.setOptionCls.setStyle("nucleotides","sphere"),e.cam.remove(e.canvasUI.mesh)}},surface:{type:"button",paddingTop:c,position:{top:286,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.opts.surface="molecular surface",e.applyMapCls.applySurfaceOptions(),e.cam.remove(e.canvasUI.mesh)}},surfaceTrn:{type:"button",paddingTop:12,position:{top:342,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.opts.surface="molecular surface",e.opts.opacity="0.2",e.applyMapCls.applySurfaceOptions(),e.cam.remove(e.canvasUI.mesh)}},color:{type:"button",paddingTop:c,position:{top:6,left:206},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},rainbow:{type:"button",paddingTop:c,position:{top:62,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","rainbow for chains"),e.cam.remove(e.canvasUI.mesh)}},atomColor:{type:"button",paddingTop:c,position:{top:118,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","atom"),e.cam.remove(e.canvasUI.mesh)}},chainColor:{type:"button",paddingTop:c,position:{top:174,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","chain"),e.cam.remove(e.canvasUI.mesh)}},secondaryColor:{type:"button",paddingTop:12,position:{top:230,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","secondary structure green"),e.cam.remove(e.canvasUI.mesh)}},charge:{type:"button",paddingTop:c,position:{top:342,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","charge"),e.cam.remove(e.canvasUI.mesh)}},AlphaFold:{type:"button",paddingTop:c,position:{top:286,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","confidence"),e.cam.remove(e.canvasUI.mesh)}},unicolor:{type:"button",paddingTop:c,position:{top:6,left:306},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},red:{type:"button",position:{top:i,left:300},width:n,height:l,fontColor:"red",hover:d,onSelect:function(){e.setOptionCls.setOption("color","red"),e.cam.remove(e.canvasUI.mesh)}},green:{type:"button",position:{top:78,left:300},width:n,height:l,fontColor:"green",hover:d,onSelect:function(){e.setOptionCls.setOption("color","green"),e.cam.remove(e.canvasUI.mesh)}},blue:{type:"button",position:{top:106,left:300},width:n,height:l,fontColor:"blue",hover:d,onSelect:function(){e.setOptionCls.setOption("color","blue"),e.cam.remove(e.canvasUI.mesh)}},blueviolet:{type:"button",position:{top:134,left:300},width:n,height:l,fontColor:"#8A2BE2",hover:d,onSelect:function(){e.setOptionCls.setOption("color","8A2BE2"),e.cam.remove(e.canvasUI.mesh)}},magenta:{type:"button",position:{top:162,left:300},width:n,height:l,fontColor:"magenta",hover:d,onSelect:function(){e.setOptionCls.setOption("color","magenta"),e.cam.remove(e.canvasUI.mesh)}},yellow:{type:"button",position:{top:190,left:300},width:n,height:l,fontColor:"yellow",hover:d,onSelect:function(){e.setOptionCls.setOption("color","yellow"),e.cam.remove(e.canvasUI.mesh)}},orange:{type:"button",position:{top:218,left:300},width:n,height:l,fontColor:"orange",hover:d,onSelect:function(){e.setOptionCls.setOption("color","FFA500"),e.cam.remove(e.canvasUI.mesh)}},cyan:{type:"button",position:{top:246,left:300},width:n,height:l,fontColor:"cyan",hover:d,onSelect:function(){e.setOptionCls.setOption("color","cyan"),e.cam.remove(e.canvasUI.mesh)}},gray:{type:"button",position:{top:274,left:300},width:n,height:l,fontColor:"gray",hover:d,onSelect:function(){e.setOptionCls.setOption("color","888888"),e.cam.remove(e.canvasUI.mesh)}},white:{type:"button",position:{top:302,left:300},width:n,height:l,fontColor:"white",hover:d,onSelect:function(){e.setOptionCls.setOption("color","white"),e.cam.remove(e.canvasUI.mesh)}},analysis:{type:"button",paddingTop:c,position:{top:6,left:406},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},distance:{type:"button",paddingTop:c,position:{top:62,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){try{e.bMeasureDistance=!0;let s=e.pickingCls.getPickedAtomList(e.pk,e.pAtom),i=e.pickingCls.getPickedAtomList(e.pk,e.pAtom2),n=e.applyCenterCls.centerAtoms(t.hashUtilsCls.hash2Atoms(s,e.atoms)).center,l=e.applyCenterCls.centerAtoms(t.hashUtilsCls.hash2Atoms(i,e.atoms)).center,r=0,o=0,a="#FFFF00",d=(n.x+l.x)/2,c=(n.y+l.y)/2,h=(n.z+l.z)/2,p=!0;e.analysisCls.addLine(n.x,n.y,n.z,l.x,l.y,l.z,a,p,"distance");let m=(parseInt(10*n.distanceTo(l))/10).toString()+" A";e.analysisCls.addLabel(m,d,c,h,r,a,o,"distance"),e.drawCls.draw(),e.cam.remove(e.canvasUI.mesh)}catch(e){}}},interaction:{type:"button",paddingTop:c,position:{top:118,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){try{e.viewInterPairsCls.viewInteractionPairs(["selected"],["non-selected"],!1,"3d",1,1,1,1,1,1),e.cam.remove(e.canvasUI.mesh)}catch(e){}}},delphi:{type:"button",paddingTop:c,position:{top:174,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:async function(){e.phisurftype=22,e.phisurfop=1,e.phisurfwf="no",await e.delphiCls.CalcPhi(65,.15,2,!0),e.cam.remove(e.canvasUI.mesh)}},removeLabel:{type:"button",paddingTop:c,position:{top:230,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){for(let t in e.labels)e.labels[t]=[];e.drawCls.draw(),e.cam.remove(e.canvasUI.mesh)}},renderer:e.renderer},p=new Oe({select:"Select",residue:"Residue",secondarySelect:"Secondary Structure",chainSelect:"Chain",atom:"Atom",reset:"Reset",togglehl:"Toggle Highlight",style:"Style",ribbon:"Ribbon",schematic:"Schematic",stick:"Stick",sphere:"Sphere",surface:"Surface",surfaceTrn:"Transparent Surface",color:"Color",rainbow:"Rainbow",atomColor:"Atom",chainColor:"Chain",secondaryColor:"Secondary Structure",AlphaFold:"AlphaFold",charge:"Charge",unicolor:"UniColor",red:"M 100 15 L 15 15 L 15 100 L 100 100 Z",green:"M 100 15 L 15 15 L 15 100 L 100 100 Z",blue:"M 100 15 L 15 15 L 15 100 L 100 100 Z",blueviolet:"M 100 15 L 15 15 L 15 100 L 100 100 Z",magenta:"M 100 15 L 15 15 L 15 100 L 100 100 Z",yellow:"M 100 15 L 15 15 L 15 100 L 100 100 Z",orange:"M 100 15 L 15 15 L 15 100 L 100 100 Z",cyan:"M 100 15 L 15 15 L 15 100 L 100 100 Z",gray:"M 100 15 L 15 15 L 15 100 L 100 100 Z",white:"M 100 15 L 15 15 L 15 100 L 100 100 Z",analysis:"Analysis",distance:"Distance",interaction:"Interaction",delphi:"DelPhi Potential",removeLabel:"Remove Label"},h);return p.mesh.position.set(0,0,-3),p}createUILog(){let e=this.icn3d;e.icn3dui;const t={panelSize:{width:2,height:2},height:512,info:{type:"text",overflow:"scroll",position:{top:6,left:6},width:506,height:506,backgroundColor:"#aaa",fontColor:"#000"},renderer:e.renderer},s=new Oe({info:"Debug info"},t);return s.mesh.position.set(0,-1,-2),s}getControllers(){let e=this.icn3d;e.icn3dui;const t=new xe,s=(new THREE.BufferGeometry).setFromPoints([new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,-1)]),i=new THREE.Line(s);i.name="line",i.scale.z=50;const n=[];for(let s=0;s<=1;s++){const l=e.renderer.xr.getController(s);if(!l)continue;e.dolly.add(l),l.add(i.clone()),l.userData.selectPressed=!1,e.cam.add(l),n.push(l);const r=e.renderer.xr.getControllerGrip(s);r.add(t.createControllerModel(r)),e.scene.add(r)}return n}}class Ee{constructor(e){this.icn3d=e}setCamera(){let e=this.icn3d,t=e.icn3dui;if(e.bControlGl&&!t.bNode){window.cam=e.cams[e.opts.camera.toLowerCase()];let s=e.maxD;if(window.cam===e.perspectiveCamera){let i=void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>e.maxatomcnt;i?window.camMaxDFactor=1:void 0!==window.camMaxDFactorFog?window.camMaxDFactor=window.camMaxDFactorFog:window.camMaxDFactor=3,window.cam_z>0?window.cam.position.z=s*window.camMaxDFactor:window.cam.position.z=-s*window.camMaxDFactor,"yes"===e.opts.slab?i?window.cam.near=.1:void 0!==window.camMaxDFactorFog?window.cam.near=s*window.camMaxDFactorFog-10:window.cam.near=s*window.camMaxDFactor:window.cam.near=.1,window.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.TrackballControls(window.cam,void 0,e):t.bNode?e.controls=new THREE.TrackballControls(e.cam,document,e):e.controls=new THREE.TrackballControls(e.cam,document.getElementById(e.id),e)}else window.cam===e.orthographicCamera&&(void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>10*e.maxatomcnt?window.cam.right=e.maxD/2*1.5:window.cam.right=e.maxD/2*2.5,window.cam.left=-window.cam.right,window.cam.top=window.cam.right/e.container.whratio,window.cam.bottom=-window.cam.right/e.container.whratio,"yes"===e.opts.slab?window.cam.near=2*e.maxD:window.cam.near=0,window.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.OrthographicTrackballControls(window.cam,void 0,e):t.bNode?e.controls=new THREE.OrthographicTrackballControls(e.cam,document,e):e.controls=new THREE.OrthographicTrackballControls(e.cam,document.getElementById(e.id),e));window.cam.updateProjectionMatrix()}e.cam=e.cams[e.opts.camera.toLowerCase()];let s=e.maxD;if(e.cam===e.perspectiveCamera){let i=void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>e.maxatomcnt;i?e.camMaxDFactor=1:void 0!==e.camMaxDFactorFog?e.camMaxDFactor=e.camMaxDFactorFog:e.camMaxDFactor=3,e.cam_z>0?e.cam.position.z=s*e.camMaxDFactor:e.cam.position.z=-s*e.camMaxDFactor,"yes"===e.opts.slab?i?e.cam.near=.1:void 0!==e.camMaxDFactorFog?e.cam.near=s*e.camMaxDFactorFog-10:e.cam.near=s*e.camMaxDFactor:e.cam.near=.1,e.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.TrackballControls(e.cam,void 0,e):t.bNode?e.controls=new THREE.TrackballControls(e.cam,document,e):e.controls=new THREE.TrackballControls(e.cam,document.getElementById(e.id),e)}else e.cam===e.orthographicCamera&&(void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>10*e.maxatomcnt?e.cam.right=e.maxD/2*1.5:e.cam.right=e.maxD/2*2.5,e.cam.left=-e.cam.right,e.cam.top=e.cam.right/e.container.whratio,e.cam.bottom=-e.cam.right/e.container.whratio,"yes"===e.opts.slab?e.cam.near=2*e.maxD:e.cam.near=0,e.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.OrthographicTrackballControls(e.cam,void 0,e):t.bNode?e.controls=new THREE.OrthographicTrackballControls(e.cam,document,e):e.controls=new THREE.OrthographicTrackballControls(e.cam,document.getElementById(e.id),e));e.cam.updateProjectionMatrix()}}class Te{constructor(e){this.icn3d=e}setFog(e){let t=this.icn3d,s=t.icn3dui.parasCls.backgroundColors[t.opts.background.toLowerCase()];if(e){let e=t.applyCenterCls.centerAtoms(t.hAtoms);t.maxD=e.maxD,t.maxD<25&&(t.maxD=25)}let i=void 0!==t.biomtMatrices&&t.biomtMatrices.length*t.cnt>t.maxatomcnt;if("yes"===t.opts.fog)if("perspective"===t.opts.camera)if(i)t.scene.fog=void 0,t.bSetFog=!1;else{let e=t._zoomFactor>1?1*t._zoomFactor:t._zoomFactor;t.scene.fog=new THREE.Fog(s,2.5*t.maxD*e,4*t.maxD*e),t.bSetFog=!0,t.camMaxDFactorFog=3}else"orthographic"===t.opts.camera&&(t.scene.fog=void 0,t.bSetFog=!1);else t.scene.fog=void 0,t.bSetFog=!1}}class Pe{constructor(e){this.icn3d=e}createBox(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(o.bNode)return;void 0===t&&(t=.8),void 0===s&&(s=!1),void 0===i&&(i=.8),l?void 0===n&&(n=r.hColor):void 0===n&&(n=e.color);let a=s?t:(o.parasCls.vdwRadii[e.elem.toUpperCase()]||t)*(i||1);this.createBox_base(e.coord,a,n,l)}createBox_base(e,t,s,i,n,l,r){let o,a=this.icn3d;a.icn3dui.bNode||(void 0===r&&(r=l?.5:1),new THREE.BoxGeometry(1,1,1),o=new THREE.Mesh(a.boxGeometry,new THREE.MeshPhongMaterial({transparent:!0,opacity:r,specular:a.frac,shininess:a.shininess,emissive:a.emissive,color:s})),o.scale.x=o.scale.y=o.scale.z=t,o.position.copy(e),a.mdl.add(o),i?a.prevHighlightObjects.push(o):n?a.prevOtherMesh.push(o):a.objects.push(o))}createBoxRepresentation_P_CA(e,t,s){let i=this.icn3d;if(i.icn3dui.bNode)return;let n=this;i.reprSubCls.createRepresentationSub(e,(function(e){"CA"!==e.name&&"O3'"!==e.name&&"O3*"!==e.name||n.createBox(e,void 0,void 0,t,void 0,s)}))}}class De{constructor(e){this.icn3d=e}createBrick(e,t,s,i){let n=this.icn3d;if(n.icn3dui.bNode)return;let l=new THREE.CylinderGeometry(1,1,1,4,1),r=new THREE.Mesh(l,new THREE.MeshPhongMaterial({specular:n.frac,shininess:n.shininess,emissive:n.emissive,color:i}));r.position.copy(e).add(t).multiplyScalar(.5),r.matrixAutoUpdate=!1,r.lookAt(t.clone().sub(e)),r.updateMatrix(),r.matrix.multiply((new THREE.Matrix4).makeScale(s,s,e.distanceTo(t))).multiply((new THREE.Matrix4).makeRotationX(.5*Math.PI)),n.mdl.add(r)}}class Me{constructor(e){this.icn3d=e}createCurveSubArrow(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u){if(this.icn3d.icn3dui.bNode)return;let g=[],f=[];g.push(e),f.push(o),this.prepareStrand(g,f,t,s,i,void 0,n,l,r,a,d,!1,c,h,p,m,u),g=[],f=[]}createStripArrow(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g){if(this.icn3d.icn3dui.bNode)return;let f=[],C=[];f.push(e),f.push(t),C.push(o),C.push(a),this.prepareStrand(f,C,void 0,s,i,n,l,void 0,r,d,c,!0,h,p,m,u,g),f=[],C=[]}prepareStrand(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g,f){let C=this.icn3d,b=C.icn3dui;if(1===d.length)return;let y=i,v=!u,_=[];_.push(i[i.length-2]),_.push(i[i.length-1]),n=n||C.axisDIV;let w,S,A,x,k=2/(a-1),O={};for(let e=0,s=t.length;e1)if(void 0!==d){let i,n,l=[];for(let r=0,o=p.length;r0&&i.tubeCls.createTube(a,"CA",i.coilWidth,s),Object.keys(d).length>0&&i.strandCls.createStrand(d,void 0,void 0,!0,0,i.helixSheetWidth,!1,2*i.ribbonthickness,s)):(Object.keys(a).length>0&&i.tubeCls.createTube(a,"CA",i.coilWidth),Object.keys(d).length>0&&i.strandCls.createStrand(d,void 0,void 0,!0,0,i.helixSheetWidth,!1,2*i.ribbonthickness))}createCylinderCurve(e,t,s,i,n){let l=this.icn3d;if(l.icn3dui.bNode)return;let r,o,a,d,c,h,p=null;for(a in e)if(d=e[a],!d.het&&(c=d.structure+"_"+d.chain,h=d.structure+"_"+r,-1!=t.indexOf(d.name))){if(null!==p&&r===d.chain&&l.ParserUtilsCls.getResiNCBI(h,o)+1===l.ParserUtilsCls.getResiNCBI(c,d.resi)&&Math.abs(p.coord.x-d.coord.x)<8&&Math.abs(p.coord.y-d.coord.y)<8&&Math.abs(p.coord.z-d.coord.z)<8){let e=p.coord.clone().add(d.coord).multiplyScalar(.5);if(n)1===n&&(this.createCylinder(p.coord,e,s,p.color,n),this.createCylinder(e,d.coord,s,d.color,n),l.sphereCls.createSphere(d,s,!0,1,n));else if(i){let t=l.lineCls.createSingleLine(p.coord,e,p.color,!1);l.mdl.add(t),l.objects.push(t),t=l.lineCls.createSingleLine(e,d.coord,d.color,!1),l.mdl.add(t),l.objects.push(t)}else this.createCylinder(p.coord,e,s,p.color),this.createCylinder(e,d.coord,s,d.color),l.sphereCls.createSphere(d,s,!0,1,n)}p=d,r=d.chain,o=d.resi,l.sphereCls.createSphere(d,s,!0,1,n),2===n&&l.boxCls.createBox(d,void 0,void 0,void 0,void 0,n)}if(null!==p&&r===d.chain&&l.ParserUtilsCls.getResiNCBI(h,o)+1===l.ParserUtilsCls.getResiNCBI(c,d.resi)&&Math.abs(p.coord.x-d.coord.x)<8&&Math.abs(p.coord.y-d.coord.y)<8&&Math.abs(p.coord.z-d.coord.z)<8){let e=p.coord.add(d.coord).multiplyScalar(.5);if(n)1===n&&(this.createCylinder(p.coord,e,s,p.color,n),this.createCylinder(e,d.coord,s,d.color,n),l.sphereCls.createSphere(d,s,!0,1,n));else if(i){let t=l.lineCls.createSingleLine(p.coord,e,p.color,!1);l.mdl.add(t),l.objects.push(t),t=l.lineCls.createSingleLine(e,d.coord,d.color,!1),l.mdl.add(t),l.objects.push(t)}else this.createCylinder(p.coord,e,s,p.color),this.createCylinder(e,d.coord,s,d.color)}}}class Le{constructor(e){this.icn3d=e}createLineRepresentation(e,t){let s=this.icn3d;if(s.icn3dui.bNode)return;let i=new THREE.BufferGeometry,n=[],l=[],r=0,o=0;s.reprSubCls.createRepresentationSub(e,void 0,(function(e,t){if(e.color===t.color)n[r++]=e.coord.x,n[r++]=e.coord.y,n[r++]=e.coord.z,n[r++]=t.coord.x,n[r++]=t.coord.y,n[r++]=t.coord.z,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b;else{let s=e.coord.clone().add(t.coord).multiplyScalar(.5);n[r++]=e.coord.x,n[r++]=e.coord.y,n[r++]=e.coord.z,n[r++]=s.x,n[r++]=s.y,n[r++]=s.z,n[r++]=t.coord.x,n[r++]=t.coord.y,n[r++]=t.coord.z,n[r++]=s.x,n[r++]=s.y,n[r++]=s.z,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b}}));if(i.setAttribute("position",new THREE.BufferAttribute(new Float32Array(n),3)),i.setAttribute("color",new THREE.BufferAttribute(new Float32Array(l),3)),2!==t){let e;1===t||(e=new THREE.LineSegments(i,new THREE.LineBasicMaterial({linewidth:s.linewidth,vertexColors:!0})),s.mdl.add(e)),1===t?s.prevHighlightObjects.push(e):s.objects.push(e)}else 2===t&&s.boxCls.createBoxRepresentation_P_CA(e,.8,t)}createConnCalphSidechain(e,t){let s=this.icn3d;if(s.icn3dui.bNode)return;let i={};for(let s in e){let n=e[s];if(!n.het&&n.style2===t){i[n.structure+"_"+n.chain+"_"+n.resi]=1}}let n=[],l=[];for(let e in i){let t=s.firstAtomObjCls.getFirstAtomObjByName(s.residues[e],"CA");if(void 0!==t)for(let e=0,i=t.bonds.length;e=t.bonds.length&&e.bonds.length>1)s=e.serial,l=e.bonds[0],d=e.bonds[1];else{if(!(t.bonds.length>=e.bonds.length&&t.bonds.length>1))return void console.log("Double bond was not drawn due to the undefined cross plane");s=t.serial,l=t.bonds[0],d=t.bonds[1]}let i=r.atoms[s].coord.clone();i.sub(r.atoms[l].coord);let n=r.atoms[s].coord.clone();n.sub(r.atoms[d].coord),i.cross(n),0==parseInt(1e4*i.length())&&(i=new THREE.Vector3(.2,.3,.5)),c=t.coord.clone(),c.sub(e.coord),c.cross(i).normalize().multiplyScalar(.2*o),0==parseInt(1e4*c.length())&&(i=new THREE.Vector3(.5,.3,.2),c.cross(i).normalize().multiplyScalar(.2*o))}e.color===t.color?r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),t.coord.clone().add(c),a,e.color,n),r.cylinderCls.createCylinder(e.coord.clone().sub(c),t.coord.clone().sub(c),a,e.color,n)):r.bImpo?r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),t.coord.clone().add(c),a,e.color,n,t.color),r.cylinderCls.createCylinder(e.coord.clone().sub(c),t.coord.clone().sub(c),a,e.color,n,t.color)):r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),i.clone().add(c),a,e.color,n),r.cylinderCls.createCylinder(t.coord.clone().add(c),i.clone().add(c),a,t.color,n),r.cylinderCls.createCylinder(e.coord.clone().sub(c),i.clone().sub(c),a,e.color,n),r.cylinderCls.createCylinder(t.coord.clone().sub(c),i.clone().sub(c),a,t.color,n))}else if(r.aromaticbonds.hasOwnProperty(l)){let s,l,d;if(e.bonds.length>t.bonds.length&&e.bonds.length>1)s=e.serial,l=e.bonds[0],d=e.bonds[1];else{if(!(t.bonds.length>1))return;s=t.serial,l=t.bonds[0],d=t.bonds[1]}let c=r.atoms[s].coord.clone();c.sub(r.atoms[l].coord);let h=r.atoms[s].coord.clone();h.sub(r.atoms[d].coord),c.cross(h);let p=t.coord.clone();p.sub(e.coord),p.cross(c).normalize().multiplyScalar(.2*o);let m=0;for(let s=0,i=e.bondOrder.length;so+1?(s=k.clone(),i=d.atoms[j[j.length-1-o-1]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random()))):U[m]&&"CA"===p.name&&(j.length>o+1?(s=k.clone(),i=d.atoms[j[j.length-1-o-1]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random())),s.normalize(),s.multiplyScalar(C),null!==I&&s.dot(I)<0&&s.negate(),I=s;for(let e=0,s=2/(t-1);e6||c&&Math.abs(S.y-c.y)>6||c&&Math.abs(S.z-c.z)>6;if((g!==p.chain||p.ssbegin||p.ssend||z||$==W&&"coil"!=p.ss)&&u[0].length>0){let c="CA",g=[],f=[];if(isNaN(d.atoms[D].resi))g=[];else{let e=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)-1).toString(),t=d.firstAtomObjCls.getAtomCoordFromResi(e,c);g=void 0!==t?[t]:[]}if(!isNaN(d.atoms[D].resi)){let e=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)+1).toString(),t=d.firstAtomObjCls.getAtomCoordFromResi(e,c);void 0!==t&&f.push(t);let s=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)+2).toString(),i=d.firstAtomObjCls.getAtomCoordFromResi(s,c);void 0!==i&&f.push(i)}if(!z){1===a||2===a?w.push(d.hColor):w.push(R),C=p.ssend&&"sheet"===p.ss?0:"coil"===E&&p.ssbegin||T&&p.ssbegin||"coil"===p.ss?n:l;let s,i,o=4;"O"===p.name?(s=A.clone(),s.sub(S)):U[m]&&"CA"===p.name&&(j.length>o?(s=S.clone(),i=d.atoms[j[j.length-1-o]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random())),s.normalize(),s.multiplyScalar(C),null!==I&&s.dot(I)<0&&s.negate(),I=s;for(let e=0,s=2/(t-1);e0){let e="CA",n=[],l=[];if(isNaN(d.atoms[D].resi))n=[];else{let t=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)-1).toString();d.firstAtomObjCls.getAtomCoordFromResi(t,e)}for(let e=0;!i&&e0&&(o!==c.chain||Math.abs(c.coord.x-h.coord.x)>6||Math.abs(c.coord.y-h.coord.y)>6||Math.abs(c.coord.z-h.coord.z)>6||r.ParserUtilsCls.getResiNCBI(c.structure+"_"+o,a)+13||Math.abs(c.coord.y-h.coord.y)>3||Math.abs(c.coord.z-h.coord.z)>3))){if(2!==i){if(!isNaN(d.resi)&&!isNaN(h.resi)){let e=d.structure+"_"+d.chain+"_"+(parseInt(d.resi)-1).toString(),i=r.firstAtomObjCls.getAtomCoordFromResi(e,t);g=void 0!==i?[i]:[];let l=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+1).toString(),o=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+2).toString(),a=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+3).toString();if(r.residues.hasOwnProperty(l)){let e=r.firstAtomObjCls.getAtomFromResi(l,t);void 0!==e&&e.ssbegin&&(l=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+2).toString(),o=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+3).toString(),p.push(e.coord),n?u.push(this.getCustomtubesize(l)):u.push(this.getRadius(s,e)),m.push(e.color))}if(1==p.length&&r.residues.hasOwnProperty(l)){let e=r.firstAtomObjCls.getAtomFromResi(l,t);if(e){p.push(e.coord),m.push(e.color);let t=this.getRadius(s,c);u.push(t),l=o,o=a}}let C=r.firstAtomObjCls.getAtomCoordFromResi(l,t);void 0!==C&&f.push(C);let b=r.firstAtomObjCls.getAtomCoordFromResi(o,t);void 0!==b&&f.push(b)}b.push({pnts:p,colors:m,radii:u,prevone:g,nexttwo:f})}p=[],m=[],u=[],g=[],f=[],d=c,C=0}if(0==p.length&&!isNaN(c.resi)){let e=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)-1).toString();r.residues.hasOwnProperty(e)&&(h=r.firstAtomObjCls.getAtomFromResi(e,t),void 0!==h&&h.ssend&&(p.push(h.coord),n?u.push(this.getCustomtubesize(e)):u.push(this.getRadius(s,h)),m.push(h.color)))}let e;p.push(c.coord),e=n?this.getCustomtubesize(c.structure+"_"+c.chain+"_"+c.resi):this.getRadius(s,c),l||"coil"==c.ss||c.ssbegin||c.ssend||(e=0),u.push(e),m.push(c.color),1===C&&(m[m.length-2]=c.color),o=c.chain,a=c.resi;let y=1.2;2!==i||c.ssbegin||r.boxCls.createBox(c,void 0,void 0,y,void 0,i),++C,h=c}if(2!==i){if(g=[],void 0!==d&&!isNaN(d.resi)){let e=d.structure+"_"+d.chain+"_"+(parseInt(d.resi)-1).toString(),s=r.firstAtomObjCls.getAtomCoordFromResi(e,t);g=void 0!==s?[s]:[]}if(f=[],void 0!==c&&!isNaN(c.resi)){let e=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+1).toString(),i=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+2).toString(),n=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+3).toString();if(1==p.length&&r.residues.hasOwnProperty(e)){let l=r.firstAtomObjCls.getAtomFromResi(e,t);if(l){p.push(l.coord),m.push(l.color);let t=this.getRadius(s,c);u.push(t),e=i,i=n}}let l=r.firstAtomObjCls.getAtomCoordFromResi(e,t);void 0!==l&&f.push(l);let o=r.firstAtomObjCls.getAtomCoordFromResi(i,t);void 0!==o&&f.push(o)}b.push({pnts:p,colors:m,radii:u,prevone:g,nexttwo:f})}for(let e=0,t=b.length;e0&&(c=n);else if(g%1==0)n=s[g],n>0&&(c=n);else{let e=Math.floor(g),t=g-e;n=s[e]*(1-t)+s[e+1]*t,r||n<1*c&&(n=0)}e1?a.parasCls.thr(t[t.length-2]):a.parasCls.thr(t[e]),C[v++]=d.r,C[v++]=d.g,C[v++]=d.b}}let k,O=0;for(let e=0,t=S.length-1;er&&(l=r,e=1);for(let t=0;t0&&t.b<=100?.01*t.b:t.b>100?1:s.coilWidth),i}}class ze{constructor(e){this.icn3d=e}drawCartoonNucleicAcid(e,t,s,i){this.drawStrandNucleicAcid(e,2,t,!0,void 0,s,i)}drawStrandNucleicAcid(e,t,s,i,n,l,r){let o,a,d,c=this.icn3d;if(c.icn3dui.bNode)return;2===r&&(t=void 0,l=void 0),n=n||c.nucleicAcidWidth,s=s||c.axisDIV,t=t||c.nucleicAcidStrandDIV;let h=[];for(d=0;dy?y=b:b=y);let v=.8*C/y;if(g.width=b,g.height=y,f.clearRect(0,0,b,y),h)if(f.fillStyle="rgba("+n.r+","+n.g+","+n.b+","+n.a+")",f.strokeStyle="rgba("+l.r+","+l.g+","+l.b+","+l.a+")",f.lineWidth=r,p){let e=.4*b;this.circle(f,0,0,b,y,e)}else{let e=0;this.roundRect(f,0,0,b,y,e)}f.font="Bold "+a+"px "+o,f.textAlign="center",f.textBaseline="middle",f.fillStyle="rgba("+u.r+", "+u.g+", "+u.b+", 1.0)",f.strokeStyle="rgba("+u.r+", "+u.g+", "+u.b+", 1.0)",f.fillText(e,.5*b,.5*y);let _=new THREE.Texture(g);_.needsUpdate=!0;let w=new THREE.SpriteMaterial({map:_,depthTest:!1,depthWrite:!1});w.map.minFilter=THREE.LinearFilter;let S=new THREE.Sprite(w);return p?S.scale.set(.3*d,.3*d,1):S.scale.set(v*d,d,1),S.renderOrder=1,S}roundRect(e,t,s,i,n,l){e.beginPath(),e.moveTo(t+l,s),e.lineTo(t+i-l,s),e.quadraticCurveTo(t+i,s,t+i,s+l),e.lineTo(t+i,s+n-l),e.quadraticCurveTo(t+i,s+n,t+i-l,s+n),e.lineTo(t+l,s+n),e.quadraticCurveTo(t,s+n,t,s+n-l),e.lineTo(t,s+l),e.quadraticCurveTo(t,s,t+l,s),e.closePath(),e.fill(),e.stroke()}circle(e,t,s,i,n,l){e.beginPath(),e.arc(t+i/2,.9*(s+n/2),l,0,2*Math.PI,!0),e.closePath(),e.fill(),e.stroke()}}class Ve{constructor(e){this.icn3d=e,this.textSpriteCls=new Ge(e)}createLabelRepresentation(e){let t=this.icn3d;t.icn3dui;let s=t.oriMaxD/100;s<.4&&(s=.4);let i=3*s*t.labelScale;for(let s in e){let n=void 0!==e[s]?e[s]:[],l="black"!=t.opts.background?t.colorWhitebkgd:t.colorBlackbkgd;for(let e=0,r=n.length;e.99999)h.set(0,0,0,1);else if(e.y<-.99999)h.set(1,0,0,0);else{let t=new THREE.Vector3;t.set(e.z,0,-e.x).normalize();let s=Math.acos(e.y);h.setFromAxisAngle(t,s)}return c.applyQuaternion(h),c.scale.set(l,n,l),c.position.copy(t),c}setPc1Axes(e){let t=this.icn3d,s=t.icn3dui;if(s.bNode)return;let i=s.hashUtilsCls.intHash(t.hAtoms,t.dAtoms),n=[],l=Object.keys(i).length<100;for(let e in i){let s=t.atoms[e],i=s.structure+"_"+s.chain+"_"+s.resi;(l||""!=i)&&n.push(s.coord.clone())}let r=s.rmsdSuprCls.getEigenForSelection(n,n.length),o=new THREE.Vector3(r.h1[0],r.h1[1],r.h1[2]);if(0==r.k&&t.bRender)return void alert("Can't determine the first principal component. Please select a subset and try it again.");let a=t.applyCenterCls.centerAtoms(i),d=a.maxD,c=a.center,h=c.clone().add(o.normalize().multiplyScalar(.4*d)),p=o.normalize();if(s.htmlCls.clickMenuCls.setLogCmd("Principle X-Axis: "+p.x.toFixed(3)+" "+p.y.toFixed(3)+" "+p.z.toFixed(3),!1),e)return p;let m=new THREE.Vector3(r.h2[0],r.h2[1],r.h2[2]),u=c.clone().add(m.normalize().multiplyScalar(.3*d)),g=new THREE.Vector3(r.h3[0],r.h3[1],r.h3[2]),f=c.clone().add(g.normalize().multiplyScalar(.3*d));this.buildAxes(void 0,c,h,u,f,!0);let C=[c,h,u,f];return t.axes.push(C),t.drawCls.draw(),C}}class Ye{constructor(e){this.icn3d=e}showGlycans(){let e=this.icn3d,t=e.icn3dui;if(t.bNode)return;let s={},i=e.dAtoms;for(let n in i){let i=e.atoms[n];i.het&&-1!=t.parasCls.glycanHash.hasOwnProperty(i.resn)&&(void 0===s[i.resn]&&(s[i.resn]={}),"Misc"!=i.chain&&(s[i.resn][i.structure+"_"+i.chain+"_"+i.resi]=1))}let n=Object.keys(s);for(let i=0,l=n.length;i>2))+i+((2&t)>>1))*c+n+(1&t)]&this.ISDONE)<=3&&(t.push(t[i]),i=t.length-1,t.push(t[n]),n=t.length-1,t.push(t[l]),l=t.length-1),s.push(i),s.push(n),s.push(l)}}},Xe.prototype.laplacianSmooth=function(e,t,s){let i,n,l,r,o,a=new Array(t.length);for(i=0,n=t.length;ithis.origextent[1][0])&&(!(tthis.origextent[1][1])&&!(sthis.origextent[1][2]))},Ke.prototype.getFacesAndVertices=function(){let e,t,s=this.verts;for(e=0,t=s.length;eh&&(h=this.pmaxy-this.pminy),this.pmaxz-this.pminz>h&&(h=this.pmaxz-this.pminz),this.scaleFactor=(c-1)/h,this.scaleFactor=this.defaultScaleFactor,this.defaultScaleFactor*h>this.threshbox&&(c=Math.floor(this.threshbox),this.scaleFactor=(this.threshbox-1)/h),this.bCalcArea&&(this.scaleFactor=this.defaultScaleFactor),this.pLength=Math.ceil(this.scaleFactor*(this.pmaxx-this.pminx))+1,this.pWidth=Math.ceil(this.scaleFactor*(this.pmaxy-this.pminy))+1,this.pHeight=Math.ceil(this.scaleFactor*(this.pmaxz-this.pminz))+1,this.boundingatom(t),this.cutRadius=this.probeRadius*this.scaleFactor,this.vpBits=new Uint8Array(this.pLength*this.pWidth*this.pHeight),this.vpDistance=new Float64Array(this.pLength*this.pWidth*this.pHeight),this.vpAtomID=new Int32Array(this.pLength*this.pWidth*this.pHeight),this.vpColor=[],this.vpPot=[]},Ke.prototype.boundingatom=function(e){let t,s,i,n,l=[];for(let r in this.vdwRadii){if(!this.vdwRadii.hasOwnProperty(r))continue;let o=this.vdwRadii[r];l[r]=e?(o+this.probeRadius)*this.scaleFactor+.5:o*this.scaleFactor+.5,i=l[r]*l[r],this.widxz[r]=Math.floor(l[r])+1,this.depty[r]=new Int32Array(this.widxz[r]*this.widxz[r]),n=0;for(let e=0;ei?this.depty[r][n]=-1:(s=Math.sqrt(i-t),this.depty[r][n]=Math.floor(s)),n++}},Ke.prototype.fillvoxels=function(e,t){let s,i,n,l;for(s=0,l=this.vpBits.length;sc&&(a=c),b>h&&(b=h),v>p&&(v=p);let _,w=g[o*m+d*u+y],S=g[a*m+d*u+y],A=g[o*m+b*u+y],x=g[o*m+d*u+v],k=g[a*m+b*u+y],O=g[o*m+b*u+v],R=g[a*m+d*u+v],I=g[a*m+b*u+v],E=r.x-o,T=r.y-d,P=r.z-y,D=((w*(1-E)+S*E)*(1-T)+(A*(1-E)+k*E)*T)*(1-P)+((x*(1-E)+R*E)*(1-T)+(O*(1-E)+I*E)*T)*P,M=s*f+i*C+n;this.vpPot[M]=D,D>this.isovalue&&(D=this.isovalue),D<-this.isovalue&&(D=-this.isovalue),D>0?(D/=1*this.isovalue,_=new THREE.Color(1-D,1-D,1)):(D/=-1*this.isovalue,_=new THREE.Color(1,1-D,1-D)),this.vpColor[M]=_}}for(s=0,l=this.vpBits.length;s=this.pLength||g>=this.pWidth||f>=this.pHeight)continue;let h=u*S+g*this.pHeight+f;if(this.vpBits[h]&this.INOUT){let p=t[this.vpAtomID[h]];p.serial!=e.serial&&(l=s+a-Math.floor(.5+this.scaleFactor*(p.x+this.ptranx)),r=i+d-Math.floor(.5+this.scaleFactor*(p.y+this.ptrany)),o=n+c-Math.floor(.5+this.scaleFactor*(p.z+this.ptranz)),a*a+d*d+c*c=this.pLength||p>=this.pWidth||m>=this.pHeight)continue;let u=h*S+p*this.pHeight+m;if(this.vpBits[u]&this.ISDONE){let h=t[this.vpAtomID[u]];h.serial!=e.serial&&(l=s+a-Math.floor(.5+this.scaleFactor*(h.x+this.ptranx)),r=i+d-Math.floor(.5+this.scaleFactor*(h.y+this.ptrany)),o=n+c-Math.floor(.5+this.scaleFactor*(h.z+this.ptranz)),a*a+d*d+c*c-1&&r-1&&a-1&&o=h)||(this.vpBits[n]|=this.ISBOUND))},Ke.prototype.fastoneshell=function(e,t){let s,i,n,l,r,o,a,d,c,h,p,m,u=[];if(0===e.length)return u;let g={ix:-1,iy:-1,iz:-1},f=this.pWidth*this.pHeight;for(a=0,c=e.length;a-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,h-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,h-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,hm&&(m=this.pmaxy-this.pminy),this.pmaxz-this.pminz>m&&(m=this.pmaxz-this.pminz),this.scaleFactor=1,this.pLength=Math.floor(.5+this.scaleFactor*(this.pmaxx-this.pminx))+1,this.pWidth=Math.floor(.5+this.scaleFactor*(this.pmaxy-this.pminy))+1,this.pHeight=Math.floor(.5+this.scaleFactor*(this.pmaxz-this.pminz))+1,this.cutRadius=this.probeRadius*this.scaleFactor,this.vpBits=new Uint8Array(this.pLength*this.pWidth*this.pHeight),this.ccp4&&(this.vpGridTrans=new Array(this.pLength*this.pWidth*this.pHeight)),this.vpAtomID=new Uint8Array(this.pLength*this.pWidth*this.pHeight)},Je.prototype.transformMemPro=function(e,t,s,i){let n=e.clone();n.sub(s);let l=n.x*t[0]+n.y*t[1]+n.z*t[2]+i.x,r=n.x*t[3]+n.y*t[4]+n.z*t[5]+i.y,o=n.x*t[6]+n.y*t[7]+n.z*t[8]+i.z;return n.x=l,n.y=r,n.z=o,n},Je.prototype.fillvoxels=function(e,t){let s,i,n,l,r,o;for(s=0,l=this.vpBits.length;sthis.pLength&&(o=this.pLength),p>this.pWidth&&(p=this.pWidth),C>this.pHeight&&(C=this.pHeight);let b,y=l[r*a+h*d+f],v=l[o*a+h*d+f],_=l[r*a+p*d+f],w=l[r*a+h*d+C],S=l[o*a+p*d+f],A=l[r*a+p*d+C],x=l[o*a+h*d+C],k=l[o*a+p*d+C],O=n.x-r,R=n.y-h,I=n.z-f,E=((y*(1-O)+v*O)*(1-R)+(_*(1-O)+S*O)*R)*(1-I)+((w*(1-O)+x*O)*(1-R)+(A*(1-O)+k*O)*R)*I;E>this.isovalue&&(E=this.isovalue),E<-this.isovalue&&(E=-this.isovalue),E>0?(E/=1*this.isovalue,b=new THREE.Color(1-E,1-E,1)):(E/=-1*this.isovalue,b=new THREE.Color(1,1-E,1-E)),this.icn3d.atoms[t[s]].color=b,this.icn3d.atomPrevColors[t[s]]=b}}else{for(let p in t){let f,C=e[t[p]];if("DUM"!==C.resn){if(void 0!==this.rmsd_supr&&void 0!==this.rmsd_supr.rot){f=this.transformMemPro(C.coord,g,u,m).applyMatrix4(c)}else f=C.coord.clone().applyMatrix4(c);for(s=Math.floor(f.x)-this.maxdist,l=Math.ceil(f.x)+this.maxdist;s<=l;++s)if(!(s<0||s>this.header.xExtent*this.scaleFactor-1))for(i=Math.floor(f.y)-this.maxdist,r=Math.ceil(f.y)+this.maxdist;i<=r;++i)if(!(i<0||i>this.header.yExtent*this.scaleFactor-1))for(n=Math.floor(f.z)-this.maxdist,o=Math.ceil(f.z)+this.maxdist;n<=o;++n){if(n<0||n>this.header.zExtent*this.scaleFactor-1)continue;let e=s*a+i*d+n;h.push(e)}}}for(s=0,l=h.length;s=this.isovalue?1:0:"fofc"==this.type?(this.vpBits[e]=this.dataArray[e]>=this.isovalue||this.dataArray[e]<=-this.isovalue?1:0,this.vpAtomID[e]=this.dataArray[e]>=0?1:0):"em"==this.type&&(this.vpBits[e]=this.dataArray[e]>=this.isovalue?1:0)}}}else for(s=0;s=this.isovalue||this.dataArray[e]<=-this.isovalue?1:0,this.vpAtomID[t]=this.dataArray[e]>=0?1:0)}for(s=0,l=this.vpBits.length;s-1&&r-1&&a-1&&o1?"Structure":"",a=Object.keys(i).length>1?"Chain":"";n+=""+o+a+"ResidueNumberSASA (Å2)Percent OutIn/Out";for(let e in l.resid2area){let d=e.lastIndexOf("_"),c=e.substr(d+1),h=r.utilsCls.getIdArray(e.substr(0,d));o=Object.keys(s).length>1?""+h[0]+"":"",a=Object.keys(i).length>1?""+h[1]+"":"";let p="",m="";l.resid2area[e]=(l.resid2area[e]/t).toFixed(2),r.parasCls.residueArea.hasOwnProperty(c)&&(m=parseInt(l.resid2area[e]/r.parasCls.residueArea[c]*100),m>100&&(m=100),m>=50&&(p="out"),m<20&&(p="in")),n+=''+o+a+""+c+''+h[2]+''+l.resid2area[e]+''+m+"%"+p+""}return n+="",void(l.areahtml=n)}let p,m,u,g=c.vertices,f=c.faces,C=r.parasCls.thr("#00FFFF"),b=r.parasCls.thr("#00FF00"),y=r.parasCls.thr("#ff0000"),v=r.parasCls.thr("#00FFFF"),_=r.parasCls.thr("#0000FF"),w=r.parasCls.thr("#FF0000");11!=t&&12!=t&&13!=t&&14!=t||void 0===l.rmsd_supr||void 0===l.rmsd_supr.rot||(p=l.rmsd_supr.rot,m=l.rmsd_supr.trans1,u=l.rmsd_supr.trans2);let S=(11==t||12==t||13==t||14==t&&"delphi"!=l.loadPhiFrom)&&void 0!==l.rmsd_supr&&void 0!==l.rmsd_supr.rot;n=new THREE.BufferGeometry;let A,x=[],k=[],O=[],R=0;for(let e=0,s=g.length;e0?-parseInt(b.z):parseInt(b.z),y.onBeforeRender=function(e,t,s,i,n,o){let a,d=new THREE.Vector3(0,0,0),c=i.getAttribute("position").array;for(let e=0,t=c.length;e0?-parseInt(a.z):parseInt(a.z)},l.mdl.add(y),11==t||12==t?l.prevMaps.push(y):13==t?l.prevEmmaps.push(y):14==t?l.prevPhimaps.push(y):l.prevSurfaces.push(y)}}else{let e=new THREE.Mesh(n,new THREE.MeshPhongMaterial({specular:l.frac,shininess:20,emissive:l.emissive,vertexColors:!0,wireframe:s,opacity:i,transparent:!0,depthWrite:10==parseInt(10*i),side:THREE.DoubleSide}));e.renderOrder=-2,l.mdl.add(e),11==t||12==t?l.prevMaps.push(e):13==t?l.prevEmmaps.push(e):14==t?l.prevPhimaps.push(e):l.prevSurfaces.push(e)}c=null,g=null,f=null,n=null}transformMemPro(e,t,s,i,n){this.icn3d.icn3dui;let l=e.clone();l.sub(s),n&&console.log("sub coord: "+JSON.stringify(l));let r=l.x*t[0]+l.y*t[1]+l.z*t[2]+i.x,o=l.x*t[3]+l.y*t[4]+l.z*t[5]+i.y,a=l.x*t[6]+l.y*t[7]+l.z*t[8]+i.z;return l.x=r,l.y=o,l.z=a,n&&console.log("out coord: "+JSON.stringify(l)),l}SetupSurface(e){let t=this.icn3d;t.icn3dui;let s=e.threshbox,i=new Ke(t,s);i.initparm(e.extent,1!==e.type,e.bCalcArea,e.atomsToShow,e.header,e.data,e.matrix,e.isovalue,e.loadPhiFrom),i.fillvoxels(e.allatoms,e.extendedAtoms),i.buildboundary(),2===e.type&&(i.fastdistancemap(),i.boundingatom(!1),i.fillvoxelswaals(e.allatoms,e.extendedAtoms));let n=i.marchingcube();i.vpBits=null,i.vpDistance=null,i.vpAtomID=null;let l=i.getFacesAndVertices(e.atomsToShow);return l.area=n.area,l.serial2area=n.serial2area,l.scaleFactor=n.scaleFactor,i.faces=null,i.verts=null,l}SetupMap(e){let t=this.icn3d;if(t.icn3dui,!e.ccp4){let s,i=new Je(t);return i.initparm(e.header,e.data,e.matrix,e.isovalue,e.center,e.maxdist,e.pmin,e.pmax,e.water,e.type,e.rmsd_supr,e.loadPhiFrom,e.icn3d),i.fillvoxels(e.allatoms,e.extendedAtoms),e.header.bSurface||i.buildboundary(),e.header.bSurface||i.marchingcube(),i.vpBits=null,i.vpAtomID=null,e.header.bSurface||(s=i.getFacesAndVertices(e.allatoms,e.atomsToShow)),i.faces=null,i.verts=null,s}{let s,i=10,n=t.center?[t.center.x,t.center.y,t.center.z]:[0,0,0];if("2fofc"==e.type){s="2fofc";let l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes");t.ccp4ParserCls.makeChickenWire(r,s),l=null,r=null}else if("fofc"==e.type){s="fofc_neg";let l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes");t.ccp4ParserCls.makeChickenWire(r,s),s="fofc_pos",l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes"),t.ccp4ParserCls.makeChickenWire(r,s),l=null,r=null}}}}class Qe{constructor(e){this.icn3d=e}applyCenterOptions(e){let t,s=this.icn3d;switch(s.icn3dui,void 0===e&&(e=s.opts),e.rotationcenter.toLowerCase()){case"molecule center":void 0!==s.center&&this.setRotationCenter(s.center);break;case"pick center":void 0!==s.pAtom&&this.setRotationCenter(s.pAtom.coord);break;case"display center":t=this.centerAtoms(s.dAtoms).center,this.setRotationCenter(t);break;case"highlight center":t=this.centerAtoms(s.hAtoms).center,this.setRotationCenter(t)}}setRotationCenter(e){this.icn3d.icn3dui,this.setCenter(e)}setCenter(e){let t=this.icn3d;t.icn3dui,t.mdl.position.set(0,0,0),t.mdlImpostor.position.set(0,0,0),t.mdl_ghost.position.set(0,0,0),t.mdl.position.sub(e),t.mdlImpostor.position.sub(e),t.mdl_ghost.position.sub(e)}centerSelection(e,t){let s=this.icn3d,i=s.icn3dui;if(s.opts.rotationcenter="highlight center",void 0===e&&(e=i.hashUtilsCls.hash2Atoms(s.hAtoms,s.atoms)),t||(s._zoomFactor=1,s.mouseChange=new THREE.Vector2(0,0),s.quaternion=new THREE.Quaternion(0,0,0,1)),Object.keys(e).length>1){let t=this.centerAtoms(e);s.center=t.center,this.setCenter(s.center),s.cameraCls.setCamera()}}centerAtoms(e){let t=this.icn3d;t.icn3dui;let s=new THREE.Vector3(9999,9999,9999),i=new THREE.Vector3(-9999,-9999,-9999),n=new THREE.Vector3;for(let l in e){let e=t.atoms[l].coord;n.add(e),s.min(e),i.max(e)}let l=t.ParserUtilsCls.getGeoCenter(s,i);return{center:l,maxD:t.ParserUtilsCls.getStructureSize(e,s,i,l),pmin:s,pmax:i}}setWidthHeight(e,t){let s=this.icn3d;s.icn3dui,void 0===s.scaleFactor&&(s.scaleFactor=1),s.renderer.setSize(e*s.scaleFactor,t*s.scaleFactor),s.renderer.domElement.style.width=e*s.scaleFactor+"px",s.renderer.domElement.style.height=t*s.scaleFactor+"px",s.renderer.domElement.width=e*s.scaleFactor,s.renderer.domElement.height=t*s.scaleFactor,s.container.whratio=e/t}}class et{constructor(e){this.icn3d=e}applyClbondsOptions(e){let t=this.icn3d,s=t.icn3dui;if(void 0===e&&(e=t.opts),t.bCalcCrossLink||(t.clbondpnts={},t.clbondResid2serial={},this.applyClbondsOptions_base("chemical"),this.applyClbondsOptions_base("all"),t.bCalcCrossLink=!0),"yes"===e.clbonds.toLowerCase()&&"nothing"!==e.chemicals){let e="#006400";if(s.parasCls.thr(25600),t.lines.clbond=[],t.residuesHashClbonds={},t.structures){let i=Object.keys(t.structures);for(let n=0,l=i.length;n1&&"sphere"!==a[Object.keys(a)[0]].style&&"dot"!==a[Object.keys(a)[0]].style){if(void 0===i.bCid||!i.bCid)for(let e in a){let t=a[e],n=1;i.boxCls.createBox(t,void 0,void 0,n,void 0,s)}}else for(let e in o){let l=i.firstAtomObjCls.getFirstCalphaAtomObj(i.residues[e]),r=l,o=r.structure+"_"+r.chain+"_"+(parseInt(r.resi)-1).toString(),a=r.structure+"_"+r.chain+"_"+(parseInt(r.resi)+1).toString();if("cylinder and plate"===r.style&&"helix"===r.ss)for(let t in i.residues[e]){let e=i.atoms[t],n=1;i.boxCls.createBox(e,void 0,void 0,n,void 0,s)}else if("ribbon"===r.style&&"coil"===r.ss||"strand"===r.style&&"coil"===r.ss||"o3 trace"===r.style||"schematic"===r.style||"c alpha trace"===r.style||"b factor tube"===r.style||"cylinder and plate"===r.style&&"helix"!==r.ss){if(void 0!==l&&void 0!==l.style2&&"nothing"!==l.style2)continue;let e=!1;if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(a)){let s=Object.keys(i.residues[a])[0],l=n.hashUtilsCls.hash2Atoms(i.residues[a],i.atoms)[s];if(r.style===l.style&&!l.ssbegin||l.ssbegin){let s=i.residues[a];if(t=n.hashUtilsCls.unionHash(t,s),e=!0,l.ssbegin)for(let e in s)i.atoms[e].notshow=!0}}if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(o)){let s=Object.keys(i.residues[o])[0],l=n.hashUtilsCls.hash2Atoms(i.residues[o],i.atoms)[s];r.style===l.style&&(t=n.hashUtilsCls.unionHash(t,i.residues[o]),e=!0)}}else if("ribbon"===r.style&&"coil"!==r.ss&&r.ssend||"strand"===r.style&&"coil"!==r.ss&&r.ssend){if(void 0!==l&&void 0!==l.style2&&"nothing"!==l.style2)continue;let e=!1;if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(a)){let s=Object.keys(i.residues[a])[0];n.hashUtilsCls.hash2Atoms(i.residues[a],i.atoms)[s],t=n.hashUtilsCls.unionHash(t,i.residues[a]),e=!0}}}a={}}if(i.bInitial&&void 0===i.bMembrane){if(""!=n.htmlCls.setHtmlCls.getCookie("membrane")){let e=parseInt(n.htmlCls.setHtmlCls.getCookie("membrane"));i.bMembrane!=e&&n.htmlCls.clickMenuCls.setLogCmd("set membrane "+e,!0),i.bMembrane=isNaN(e)?0:parseInt(e)}i.bMembrane?i.selectionCls.toggleMembrane(!0):i.selectionCls.toggleMembrane(!1)}i.setStyleCls.setStyle2Atoms(t);let d=.5*i.cylinderRadius;void 0!==i.labels&&delete i.labels.schematic;for(let e in i.style2atoms){let t=i.style2atoms[e],l=n.hashUtilsCls.intHash(t,i.nucleotides),r=n.utilsCls.isCalphaPhosOnly(n.hashUtilsCls.hash2Atoms(l,i.atoms));if("ribbon"===e)i.strandCls.createStrand(n.hashUtilsCls.hash2Atoms(t,i.atoms),2,void 0,!0,void 0,void 0,!1,i.ribbonthickness,s);else if("strand"===e)i.strandCls.createStrand(n.hashUtilsCls.hash2Atoms(t,i.atoms),null,null,null,null,null,!1,void 0,s);else if("cylinder and plate"===e)i.cylinderCls.createCylinderHelix(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderHelixRadius,s);else if("nucleotide cartoon"===e)r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):(i.cartoonNuclCls.drawCartoonNucleicAcid(n.hashUtilsCls.hash2Atoms(t,i.atoms),null,i.ribbonthickness,s),2!==s&&i.cartoonNuclCls.drawNucleicAcidStick(n.hashUtilsCls.hash2Atoms(t,i.atoms),s));else if("o3 trace"===e)r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["O3'","O3*"],i.traceRadius,!1,s);else if("schematic"===e){let e=i.firstAtomObjCls.getFirstAtomObj(t);if(i.chemicals.hasOwnProperty(e.serial)){i.residueLabelsCls.addNonCarbonAtomLabels(n.hashUtilsCls.hash2Atoms(t,i.atoms));let e=!0;i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),d,d,void 0,s,e)}else i.residueLabelsCls.addResidueLabels(n.hashUtilsCls.hash2Atoms(t,i.atoms),!0),r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["O3'","O3*"],i.traceRadius,!1,s),i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["CA"],i.traceRadius,!1,s)}else"c alpha trace"===e?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["CA"],i.traceRadius,!1,s):"b factor tube"===e?i.tubeCls.createTube(n.hashUtilsCls.hash2Atoms(t,i.atoms),"CA",null,s,!1,!0):"custom tube"===e?i.tubeCls.createTube(n.hashUtilsCls.hash2Atoms(t,i.atoms),"CA",null,s,!0,!0):"lines"===e||"lines2"===e?(1===s?i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.hlLineRadius,i.hlLineRadius,void 0,s):i.lineCls.createLineRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),s),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"stick"===e||"stick2"===e?(i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,i.cylinderRadius,void 0,s,void 0),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"backbone"===e?(t=this.selectMainChainSubset(t),i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,i.cylinderRadius,void 0,s,void 0)):"ball and stick"===e||"ball and stick2"===e?(i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,.5*i.cylinderRadius,i.dotSphereScale,s,void 0),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"sphere"===e||"sphere2"===e?i.sphereCls.createSphereRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.sphereRadius,void 0,void 0,s):"dot"===e&&i.sphereCls.createSphereRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.sphereRadius,!1,i.dotSphereScale,s)}if(i.cnt>i.maxmaxatomcnt&&i.init_base(),void 0!==i.labels&&Object.keys(i.labels).length>0){i.labelCls.hideLabels();for(let e in i.labels)"schematic"!=e&&this.changeLabelColor(i.labels[e]);i.labelCls.createLabelRepresentation(i.labels)}}changeLabelColor(e){let t=this.icn3d;if(t.icn3dui,e)for(let s=0,i=e.length;s0){this.updateStabilizer();let e="#FFFFFF",s=t.stabilizerpnts;t.lines.stabilizer=[];for(let i=0,n=Math.floor(s.length/2);i0)for(let e=0,s=t.distPnts.length;e0&&t.applySymdCls.applySymd(),void 0!==t.prevOtherMesh)for(let e=0,s=t.prevOtherMesh.length;e0&&(e=s.hashUtilsCls.hash2Atoms(t.chemicals,t.atoms));let i=4;if(void 0!==e){let n=t.contactCls.getAtomsWithinAtom(t.atoms,e,i),l=3.5;t.opts.hbonds="yes",Object.keys(n).length>0&&t.hBondCls.calculateChemicalHbonds(e,n,parseFloat(l)),t.bSetFog||t.transformCls.zoominSelection(s.hashUtilsCls.unionHash(e,n))}}else"hide"===e.chemicalbinding&&(t.hBondCls.hideHbonds(),t.showInterCls.hideExtraBonds(),t.bSetFog||t.transformCls.zoominSelection(t.atoms))}updateStabilizer(){let e=this.icn3d;if(e.icn3dui,e.stabilizerpnts=[],void 0!==e.pairArray)for(let t=0,s=e.pairArray.length;t=0;i--){let r=t.ssbondpnts[e][2*i],o=t.ssbondpnts[e][2*i+1],a={};a.color=n,a.dashed=!1;let d=[],c=[],h=[],p=[],m=!1,u=!1;for(let e in t.residues[r])"SG"===t.atoms[e].name&&(h.push(t.atoms[e].coord),d.push(t.atoms[e].serial),m=!0);if(!m)for(let e in t.residues[r])if("CA"===t.atoms[e].name){h.push(t.atoms[e].coord),d.push(t.atoms[e].serial),m=!0,u=!0;break}m=!1;for(let e in t.residues[o])"SG"===t.atoms[e].name&&(p.push(t.atoms[e].coord),c.push(t.atoms[e].serial),m=!0);if(!m)for(let e in t.residues[o])if("CA"===t.atoms[e].name){p.push(t.atoms[e].coord),c.push(t.atoms[e].serial),m=!0,u=!0;break}let g=u?7:3,f=!1;for(let e=0,t=h.length;e1&&(l=!0)}if(t)if(l){let t=Object.keys(r)[0];e=i.chains[t]}else{0==Object.keys(i.hAtoms).length&&(i.hAtoms=n.hashUtilsCls.cloneHash(i.dAtoms));let t,s=parseInt(Object.keys(i.hAtoms).length/u),l=0;for(let n in i.hAtoms)if(e[n]=1,t=n,++l,l>s)break;let r=i.atoms[t].structure+"_"+i.atoms[t].chain+"_"+i.atoms[t].resi;e=n.hashUtilsCls.unionHash(e,i.residues[r])}else{let t=Object.keys(i.structures)[0]+"_"+g;if(i.chains.hasOwnProperty(t)||(t=Object.keys(i.structures)[0]+"_"+g.toLowerCase()),!i.chains.hasOwnProperty(t)){t=Object.keys(i.chains)[0];for(let e in i.chains){let s=Object.keys(i.chains[e])[0];if(i.proteins.hasOwnProperty(s)){t=e;break}}}e=i.chains[t]}let a=s.clone().add(h).multiplyScalar(.5),c=new THREE.Vector3,p=0,f=h.clone().sub(s).normalize(),C=new THREE.Vector3(0,0,1),b=new THREE.Quaternion;b.setFromUnitVectors(f,C);let y=-9999;for(let t in e){let e=i.atoms[t].coord.clone();c.add(e),e.sub(a).applyQuaternion(b);let s=e.x*e.x+e.y*e.y;s>y&&(y=s),++p}let v=i.ParserUtilsCls.getMassCenter(c,p),_=new THREE.Line3(s,h),w=new THREE.Vector3;_.closestPointToPoint(v,!0,w);let S,A,x,k,O=Math.sqrt(y),R=v.clone().sub(w).normalize().multiplyScalar(O),I=a.clone().add(s.clone().sub(a).multiplyScalar(.83)).add(R),E=a.clone().add(h.clone().sub(a).multiplyScalar(.83)).add(R),T=2*Math.PI/o;for(let e=0;et&&(i.sphereCls.createSphereBase(r,m,d,1,0),i.cylinderCls.createCylinder(e,r,d,m,0),i.cylinderCls.createCylinder(s,r,d,m,0),void 0!==n&&i.cylinderCls.createCylinder(c[n],r,d,m,0),n=l)}}else if("O"==r)for(let e=0,t=c.length;e0&&(e.mdl.remove(e.prevSurfaces[e.prevSurfaces.length-1]),e.prevSurfaces.slice(e.prevSurfaces.length-1,1))}removeMaps(){let e=this.icn3d;e.icn3dui;for(let t=0,s=e.prevMaps.length;t0&&(e.mdl.remove(e.prevMaps[e.prevMaps.length-1]),e.prevMaps.slice(e.prevMaps.length-1,1))}removeLastEmmap(){let e=this.icn3d;e.icn3dui,e.prevEmmaps.length>0&&(e.mdl.remove(e.prevEmmaps[e.prevEmmaps.length-1]),e.prevEmmaps.slice(e.prevEmmaps.length-1,1))}removeLastPhimap(){let e=this.icn3d;e.icn3dui,e.prevPhimaps.length>0&&(e.mdl.remove(e.prevPhimaps[e.prevPhimaps.length-1]),e.prevPhimaps.slice(e.prevPhimaps.length-1,1))}}class ot{constructor(e){this.icn3d=e}addResidueLabels(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui;if(r.bNode)return;let o=r.hashUtilsCls.intHash(l.hAtoms,e);t?void 0===l.labels.schematic&&(l.labels.schematic=[]):void 0===l.labels.residue&&(l.labels.residue=[]);let a="";for(let e in o){let s=l.atoms[e],o={},d=s.structure+"_"+s.chain+"_"+s.resi;if(!s.het&&("CA"===s.name||"O3'"===s.name||"O3*"===s.name)||l.water.hasOwnProperty(s.serial)||l.ions.hasOwnProperty(s.serial)||l.chemicals.hasOwnProperty(s.serial)&&d!==a){if(o.position=s.coord,o.bSchematic=0,t&&(o.bSchematic=1),o.text=r.utilsCls.residueName2Abbr(s.resn),i)o.text+=s.resi;else if(n){let e=s.structure+"_"+s.chain+"_"+s.resi,t="";l.resid2refnum[e]&&(t=" "==l.resid2refnum[e].substr(0,1)?"":l.resid2refnum[e]),o.text=t}o.size=18,o.factor=.3;let e=s.color.getHexString().toUpperCase();o.color=i?"black"!=l.opts.background?l.colorWhitebkgd:l.colorBlackbkgd:n?"#00FFFF":"CCCCCC"===e||"C8C8C8"===e?"#888888":"#"+e,o.background="#FFFFFF",t?l.labels.schematic.push(o):l.labels.residue.push(o)}a=d}l.hlObjectsCls.removeHlObjects()}addIgLabels(e){let t=this.icn3d;if(t.icn3dui.bNode)return;t.labels.ig=[];let s=t.firstAtomObjCls.getChainsFromAtoms(e);for(let e in t.igLabel2Pos)if(s.hasOwnProperty(e))for(let s in t.igLabel2Pos[e]){let i={};i.position=t.igLabel2Pos[e][s],i.text=s,i.size=60,i.color="#00FFFF",t.labels.ig.push(i)}t.hlObjectsCls.removeHlObjects()}addNonCarbonAtomLabels(e){let t=this.icn3d,s=t.icn3dui;if(s.bNode)return;let i=s.hashUtilsCls.intHash(t.hAtoms,e);void 0===t.labels.schematic&&(t.labels.schematic=[]);for(let e in i){let s=t.atoms[e];if(!t.residues.hasOwnProperty(s.structure+"_"+s.chain+"_"+s.resi))continue;if("C"===s.elem)continue;let i={};i.position=s.coord,i.bSchematic=1,i.text=s.elem,i.size=18,i.color="black"!=t.opts.background?t.colorWhitebkgd:s.color.getHexString(),i.background="#FFFFFF",t.labels.schematic.push(i)}t.hlObjectsCls.removeHlObjects()}addAtomLabels(e,t){let s=this.icn3d,i=s.icn3dui;if(i.bNode)return;let n=i.hashUtilsCls.intHash(s.hAtoms,e);n=i.hashUtilsCls.intHash(s.dAtoms,n),void 0===s.labels.residue&&(s.labels.residue=[]);for(let e in n){let i=s.atoms[e],n={};n.position=i.coord,n.bSchematic=0,n.text=t?i.elem:i.name.padEnd(2," "),n.size=18,t&&(n.bSchematic=!0);let l=i.color.getHexString().toUpperCase();n.color="black"!=s.opts.background?s.colorWhitebkgd:s.colorBlackbkgd,t&&(n.color="CCCCCC"===l||"C8C8C8"===l?"#888888":"#"+l),n.background="#FFFFFF",s.labels.residue.push(n)}s.hlObjectsCls.removeHlObjects()}}class at{constructor(e){this.icn3d=e}onBeforeRender(e,t,s,i,n,l){let r=n.uniforms,o=[];if(r.objectId&&(r.objectId.value=SupportsReadPixelsFloat?this.id:this.id/255,o.push("objectId")),(r.modelViewMatrixInverse||r.modelViewMatrixInverseTranspose||r.modelViewProjectionMatrix||r.modelViewProjectionMatrixInverse)&&this.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,this.matrixWorld),r.modelViewMatrixInverse&&(r.modelViewMatrixInverse.value.copy(this.modelViewMatrix).invert(),o.push("modelViewMatrixInverse")),r.modelViewMatrixInverseTranspose&&(r.modelViewMatrixInverse?r.modelViewMatrixInverseTranspose.value.copy(r.modelViewMatrixInverse.value).transpose():r.modelViewMatrixInverseTranspose.value.copy(this.modelViewMatrix).invert().transpose(),o.push("modelViewMatrixInverseTranspose")),r.modelViewProjectionMatrix&&(s.updateProjectionMatrix(),r.modelViewProjectionMatrix.value.multiplyMatrices(s.projectionMatrix,this.modelViewMatrix),o.push("modelViewProjectionMatrix")),r.modelViewProjectionMatrixInverse){let e=new THREE.Matrix4;r.modelViewProjectionMatrix?(e.copy(r.modelViewProjectionMatrix.value),r.modelViewProjectionMatrixInverse.value.copy(e).invert()):(s.updateProjectionMatrix(),e.multiplyMatrices(s.projectionMatrix,this.modelViewMatrix),r.modelViewProjectionMatrixInverse.value.copy(e).invert()),o.push("modelViewProjectionMatrixInverse")}if(r.projectionMatrix&&(s.updateProjectionMatrix(),r.projectionMatrix.value.copy(s.projectionMatrix),o.push("projectionMatrix")),r.projectionMatrixInverse&&(s.updateProjectionMatrix(),r.projectionMatrixInverse.value.copy(s.projectionMatrix).invert(),o.push("projectionMatrixInverse")),o.length){let t=e.properties.get(n);if(t.program){let s=e.getContext(),i=t.program;s.useProgram(i.program);let n=i.getUniforms();o.forEach((function(e){n.setValue(s,e,r[e].value)}))}}}setParametersForShader(e){let t,s=this.icn3d,i=s.icn3dui.parasCls.backgroundColors[s.opts.background.toLowerCase()],n=2.5*s.maxD,l=4*s.maxD,r=void 0!==s.biomtMatrices&&s.biomtMatrices.length*s.cnt>s.maxatomcnt;"yes"===s.opts.slab?r?t=.1:void 0!==s.camMaxDFactorFog?(t=s.maxD*s.camMaxDFactorFog-10,n=2.5*s.maxD-t<0?0:2.5*s.maxD-t,l=4*s.maxD-t):t=s.maxD*s.camMaxDFactor:t=.1;let o=void 0!==e?e:1,a=s.shininess/100*.5;s.uniforms=THREE.UniformsUtils.merge([THREE.UniformsLib.common,{modelViewMatrix:{value:new THREE.Matrix4},modelViewMatrixInverse:{value:new THREE.Matrix4},modelViewMatrixInverseTranspose:{value:new THREE.Matrix4},modelViewProjectionMatrix:{value:new THREE.Matrix4},modelViewProjectionMatrixInverse:{value:new THREE.Matrix4},projectionMatrix:{value:new THREE.Matrix4},projectionMatrixInverse:{value:new THREE.Matrix4},diffuse:{type:"v3",value:[1,1,1]},emissive:{type:"v3",value:[.06,.06,.06]},roughness:{type:"f",value:.5},metalness:{type:"f",value:a},opacity:{type:"f",value:o},nearClip:{type:"f",value:t},ortho:{type:"f",value:0},shrink:{type:"f",value:.13},fogColor:{type:"v3",value:[i.r,i.g,i.b]},fogNear:{type:"f",value:n},fogFar:{type:"f",value:l},fogDensity:{type:"f",value:2}},THREE.UniformsLib.ambient,THREE.UniformsLib.lights]),s.defines={USE_COLOR:1,NEAR_CLIP:1,CAP:1},"yes"!==s.opts.fog||r||(s.defines.USE_FOG=1,"orthographic"===s.opts.camera&&(s.defines.FOG_EXP2=1)),s.bExtFragDepth&&(s.defines.USE_LOGDEPTHBUF_EXT=1)}drawImpostorShader(){this.icn3d.icn3dui.bNode||(this.setParametersForShader(),this.createImpostorShaderSphere("SphereImpostor"),this.createImpostorShaderCylinder("CylinderImpostor"))}getShader(e){this.icn3d.icn3dui;let t=$NGL_shaderTextHash[e];return t=t.replace(/#include\s+(\S+)/gim,(function(e,t){let s;return THREE.ShaderChunk.hasOwnProperty(t)&&(s=THREE.ShaderChunk[t]),s||""})),t}createImpostorShaderBase(e,t,s,i,n,l,r,o,a){let d=this.icn3d;d.icn3dui;let c=new THREE.ShaderMaterial({defines:d.defines,uniforms:d.uniforms,vertexShader:this.getShader(e+".vert"),fragmentShader:this.getShader(e+".frag"),depthTest:!0,depthWrite:!0,lights:!0});c.extensions.fragDepth=!0,"CylinderImpostor"==e?d.CylinderImpostorMaterial=c:"SphereImpostor"==e&&(d.SphereImpostorMaterial=c);let h,p,m=l*r,u=l*o,g=new(m>65535?Uint32Array:Uint16Array)(u);for(let e=0;e=0;t--){let s=a.children[t];s.onBeforeRender=e.impostorCls.onBeforeRender,s.frustumCulled=!1}l.add(a)}void 0!==e.mdl_ghost&&(a=e.mdl_ghost.clone(),this.applyMat(a,d),r.add(a));let c=e.center.clone();this.applyMat(c,d,!0),s.add(c),++t}e.mdl.add(n),e.mdlImpostor.add(l),e.mdl_ghost.add(r),void 0!==e.bSetInstancing&&e.bSetInstancing?(e.maxD=e.maxDAssembly,e.center=e.centerAssembly.clone(),e.applyCenterCls.setCenter(e.center),e.cameraCls.setCamera()):(e.maxD*=Math.sqrt(t),e.center=e.ParserUtilsCls.getMassCenter(s,t),e.maxDAssembly=e.maxD,e.centerAssembly=e.center.clone(),e.applyCenterCls.setCenter(e.center),e.cameraCls.setCamera()),e.bSetInstancing=!0}createInstancedGeometry(e){let t=this.icn3d,s=t.icn3dui,i=e.geometry,n=new THREE.InstancedBufferGeometry,l=[],r=[],o=[],a=[],d=[],c=[],h=[],p=[];if(t.bImpo&&"Cylinder"==e.type){t.instancedMaterial=this.getInstancedMaterial("CylinderInstancing");let e=s.hashUtilsCls.hashvalue2array(i.attributes.position1.array),r=s.hashUtilsCls.hashvalue2array(i.attributes.color.array),m=s.hashUtilsCls.hashvalue2array(i.attributes.position2.array),u=s.hashUtilsCls.hashvalue2array(i.attributes.color2.array),g=s.hashUtilsCls.hashvalue2array(i.index.array),f=s.hashUtilsCls.hashvalue2array(i.attributes.radius.array),C=s.hashUtilsCls.hashvalue2array(i.attributes.mapping.array);l=l.concat(e),o=o.concat(r),h=h.concat(m),p=p.concat(u),a=a.concat(g),d=d.concat(f),c=c.concat(C),n.setAttribute("position1",new THREE.BufferAttribute(new Float32Array(l),3)),n.setAttribute("color",new THREE.BufferAttribute(new Float32Array(o),3)),n.setAttribute("position2",new THREE.BufferAttribute(new Float32Array(h),3)),n.setAttribute("color2",new THREE.BufferAttribute(new Float32Array(p),3)),n.setAttribute("radius",new THREE.BufferAttribute(new Float32Array(d),1)),n.setAttribute("mapping",new THREE.BufferAttribute(new Float32Array(c),3)),n.setIndex(new THREE.BufferAttribute(new Uint32Array(a),1)),e=null,r=null,m=null,u=null,g=null,f=null,C=null}else if(t.bImpo&&"Sphere"==e.type){t.instancedMaterial=this.getInstancedMaterial("SphereInstancing");let e=s.hashUtilsCls.hashvalue2array(i.attributes.position.array),r=s.hashUtilsCls.hashvalue2array(i.attributes.color.array),h=s.hashUtilsCls.hashvalue2array(i.index.array),p=s.hashUtilsCls.hashvalue2array(i.attributes.radius.array),m=s.hashUtilsCls.hashvalue2array(i.attributes.mapping.array);l=l.concat(e),o=o.concat(r),a=a.concat(h),d=d.concat(p),c=c.concat(m),n.setAttribute("position",new THREE.BufferAttribute(new Float32Array(l),3)),n.setAttribute("color",new THREE.BufferAttribute(new Float32Array(o),3)),n.setAttribute("radius",new THREE.BufferAttribute(new Float32Array(d),1)),n.setAttribute("mapping",new THREE.BufferAttribute(new Float32Array(c),2)),n.setIndex(new THREE.BufferAttribute(new Uint32Array(a),1)),e=null,r=null,h=null,p=null,m=null}else{t.instancedMaterial=this.getInstancedMaterial("Instancing");let e=i.attributes.position?s.hashUtilsCls.hashvalue2array(i.attributes.position.array):[],d=i.attributes.normal?s.hashUtilsCls.hashvalue2array(i.attributes.normal.array):[],c=i.attributes.color?s.hashUtilsCls.hashvalue2array(i.attributes.color.array):[],h=i.index?s.hashUtilsCls.hashvalue2array(i.index.array):[];l=l.concat(e),r=r.concat(d),o=o.concat(c),a=a.concat(h);let p=[],m="CylinderGeometry"==i.type?1:0;for(let e=0,t=l.length/3;e0&&(e.dAtoms=t.hashUtilsCls.cloneHash(s)),e.bShowHighlight=!1}e.applyMapCls.removeSurfaces(),e.applyMapCls.applySurfaceOptions(),e.applyMapCls.removeMaps(),e.applyMapCls.applyMapOptions(),e.applyMapCls.removeEmmaps(),e.applyMapCls.applyEmmapOptions(),e.applyMapCls.removePhimaps(),e.applyMapCls.applyPhimapOptions(),e.applyMapCls.removeSurfaces(),e.applyMapCls.applyphisurfaceOptions(),e.axes=[],e.pc1&&e.axesCls.setPc1Axes(),e.opts.rotationcenter="highlight center",e.drawCls.draw(),e.bShowHighlight=!0}async alternateWrapper(){let e=this.icn3d;e.icn3dui,e.bAlternate=!0,await this.alternateStructures(),e.bAlternate=!1}}class ht{constructor(e){this.icn3d=e}draw(e){let t=this.icn3d,s=t.icn3dui;if(t.impostorCls.clearImpostors(),!t.bRender||t.hAtoms&&0!=Object.keys(t.hAtoms)||(t.hAtoms=s.hashUtilsCls.cloneHash(t.atoms)),t.sceneCls.rebuildScene(),t.bImpo&&t.impostorCls.drawImpostorShader(),t.setColorCls.applyPrevColor(),void 0!==t.biomtMatrices&&t.biomtMatrices.length>1)if(t.bAssembly&&1==Object.keys(t.structures).length&&(void 0===s.cfg.mmdbid&&1==s.cfg.bu||void 0!==s.cfg.mmdbid&&1==s.cfg.bu&&Object.keys(t.atoms).length*t.biomtMatrices.length>t.maxatomcnt))t.instancingCls.drawSymmetryMates();else{let e=!0;t.applyCenterCls.centerSelection(void 0,e)}let i=void 0!==t.hAtoms?Object.keys(t.hAtoms).length:0;if(i>0&&i0){e.children[0].scale.z=t[0].distance,t[0].point.sub(r.mdl.position);let s=r.rayThreshold,i=r.rayCls.getAtomsFromPosition(t[0].point,s);for(;!i&&s<10;)s+=.5,i=r.rayCls.getAtomsFromPosition(t[0].point,s);i&&(r.pAtomNum%2==0?r.pAtom=i:r.pAtom2=i,++r.pAtomNum,this.showPickingVr(r.pk,i))}}}}catch(e){}}showPickingVr(e,t){let s=this.icn3d;s.icn3dui,e||(e=2),s.hAtoms=s.pickingCls.getPickedAtomList(e,t),2===e?s.residueLabelsCls.addResidueLabels(s.hAtoms,void 0,void 0,!0):1===e&&s.residueLabelsCls.addAtomLabels(s.hAtoms),s.setOptionCls.setStyle("proteins",t.style)}render_base(){let e=this.icn3d,t=e.icn3dui,s=this;if(t.bNode)return;let i=e.bControlGl&&!t.bNode?window.cam:e.cam;if(e.directionalLight){let t=new THREE.Quaternion;t.setFromUnitVectors(new THREE.Vector3(0,0,e.cam_z).normalize(),i.position.clone().normalize()),e.directionalLight.position.copy(e.lightPos.clone().applyQuaternion(t).normalize()),e.directionalLight2.position.copy(e.lightPos2.clone().applyQuaternion(t).normalize()),e.directionalLight3.position.copy(e.lightPos3.clone().applyQuaternion(t).normalize())}if(e.bVr||e.renderer.setPixelRatio(window.devicePixelRatio),e.bVr){let t=.04;if(e.controllers){let i=this.updateGamepadState();for(let n=0,l=e.controllers.length;n{const i=e.gamepad.axes;let r=parseInt(1e3*i[t]),o=parseInt(-1e3*i[s]);n.push(r),l.push(o)})),{xArray:n,yArray:l}}return{xArray:[0,0],yArray:[0,0]}}}class pt{constructor(e){this.icn3d=e}getAtomsWithinAtom(e,t,s,i,n,l,r){let o=this.icn3d,a=o.icn3dui,d=this.getNeighboringAtoms(e,t,s,r);i&&(o.resid2Residhash={});let c={};for(let e in t){let h=o.atoms[e];if(n&&"H"==h.elem)continue;let p,m,u=a.parasCls.vdwRadii[h.elem.toUpperCase()],g=h.structure+"_"+h.chain,f=h.structure+"_"+h.chain+"_"+h.resi;for(let e in o.residues[f])if(o.atoms[e]&&("CA"===o.atoms[e].name&&"C"===o.atoms[e].elem||"O3'"===o.atoms[e].name||"O3*"===o.atoms[e].name)){p=o.atoms[e];break}if(void 0===p&&(p=h),i){let e=0==h.name.indexOf("pi")&&h.ring?h.ring.join(","):h.serial;m=h.resn+" $"+h.structure+"."+h.chain+":"+h.resi+" "+e,void 0===o.resid2Residhash[m]&&(o.resid2Residhash[m]={})}let C=h.structure+"_"+h.chain+"_"+h.resi;for(let e in d){let f=d[e];if(n&&"H"==f.elem)continue;let b=a.parasCls.vdwRadii[f.elem.toUpperCase()],y=f.structure+"_"+f.chain;if(n&&!o.crossstrucinter&&h.structure!=f.structure)continue;if(!r&&f.serial in t)continue;if(o.bOpm&&"DUM"===f.resn)continue;let v=f.coord.distanceTo(h.coord);if(n&&vo?r:o,d=Math.sqrt(a),c=(d+s)*(d+s),h={};for(let r in e){let e=n.atoms[r];!i&&t.hasOwnProperty(e.serial)||(this.bOpm&&"DUM"===e.resn||e.coord.xl[1][0]+s||e.coord.yl[1][1]+s||e.coord.zl[1][2]+s||(e.coord.x-l[2][0])*(e.coord.x-l[2][0])+(e.coord.y-l[2][1])*(e.coord.y-l[2][1])+(e.coord.z-l[2][2])*(e.coord.z-l[2][2])e.coord.x?n:e.coord.x,l=l>e.coord.y?l:e.coord.y,r=r>e.coord.z?r:e.coord.z}return[[t,s,i],[n,l,r],[o/c,a/c,d/c]]}hideContact(){let e=this.icn3d;e.icn3dui,e.opts.contact="no",void 0===e.lines&&(e.lines={}),e.lines.contact=[],e.contactpnts=[]}}class mt{constructor(e){this.icn3d=e}isHbondDonorAcceptor(e){let t=this.icn3d;if(t.icn3dui,"N"==e.name&&!e.het||"N"==e.elem&&"Arg"==e.resn||"N"==e.elem&&"Asn"==e.resn||"N"==e.elem&&"Gln"==e.resn||"N"==e.elem&&"Lys"==e.resn||"N"==e.elem&&"Trp"==e.resn)return"donor";if("O"==e.name&&!e.het||"S"==e.elem&&"Met"==e.resn||"O"==e.elem&&"Asn"==e.resn||"O"==e.elem&&"Asp"==e.resn||"O"==e.elem&&"Gln"==e.resn||"O"==e.elem&&"Glu"==e.resn)return"acceptor";if("S"==e.elem&&"Cys"==e.resn||"N"==e.elem&&"His"==e.resn||"O"==e.elem&&"Ser"==e.resn||"O"==e.elem&&"Thr"==e.resn||"O"==e.elem&&"Tyr"==e.resn)return"both";if("Pro"==e.resn)return"none";if("N"==e.elem){if("Asn"==e.resn||"Gln"==e.resn)return"both";let s=0,i=0;for(let i=0,n=e.bonds.length;i1?"ring":"donor":"none"}if("O"==e.elem&&1==e.bonds.length){if("Asn"==e.resn||"Gln"==e.resn)return"both";for(let s=0,i=e.bonds.length;s=2?"acceptor":"both"}if("O"==e.elem&&2==e.bonds.length){for(let s=0,i=e.bonds.length;s1);++t)"H"!=s.atoms[e.bonds[t]].elem&&(i=s.atoms[e.bonds[t]],l[r++].subVectors(s.atoms[e.bonds[t]].coord,e.coord));if(1===r)for(let t=0,n=i.bonds.length;t1);++t)"H"!=s.atoms[i.bonds[t]].elem&&s.atoms[i.bonds[t]].serial!=e.serial&&l[r++].subVectors(s.atoms[i.bonds[t]].coord,e.coord);if(2!==r)return;let o=l[0].cross(l[1]);return Math.abs(Math.PI/2-o.angleTo(n))}isValidHbond(e,t,s){let i=this.icn3d;i.icn3dui;let n,l,r=this.isHbondDonorAcceptor(e),o=this.isHbondDonorAcceptor(t),a=50*Math.PI/180,d=50*Math.PI/180,c=90*Math.PI/180,h=30*Math.PI/180;if("donor"==r&&("acceptor"==o||"both"==o||"ring"==o)||"acceptor"==o&&("donor"==r||"both"==r||"ring"==r))n=e,l=t;else if("acceptor"==r&&("donor"==o||"both"==o||"ring"==o)||"donor"==o&&("acceptor"==r||"both"==r||"ring"==r))l=e,n=t;else{if("both"!=r&&"ring"!=r||"both"!=o&&"ring"!=o)return!1;n=e,l=t,i.nucleotides.hasOwnProperty(e.serial)&&i.nucleotides.hasOwnProperty(t.serial)&&("ring"==r||"ring"==o)||(e.het||t.het)&&"ring"==r&&"ring"==o||(h=90*Math.PI/180)}let p=this.calcAngles(n,l),m=90*Math.PI/180;for(let e=0,t=p.length;ed)return!1;let u=this.calcPlaneAngle(n,l);if(void 0!==u&&u>h)return!1;let g=this.calcAngles(l,n),f=90*Math.PI/180;for(let e=0,t=g.length;ea)return!1;let C=this.calcPlaneAngle(l,n);return!(void 0!==C&&C>c)}calculateChemicalHbonds(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(0===Object.keys(e).length||0===Object.keys(t).length)return;r.resid2Residhash={};let a,d,c={},h=s*s;for(let t in e){let s=e[t],n=i?"LYS"===s.resn&&"N"===s.elem&&"N"!==s.name||"ARG"===s.resn&&("NH1"===s.name||"NH2"===s.name)||("GLU"===s.resn||"ASP"===s.resn)&&"O"===s.elem&&"O"!==s.name||s.het&&("N"===s.elem||"O"===s.elem||"S"===s.elem):"N"===s.elem||"O"===s.elem||"S"===s.elem&&(s.het||"Cys"===s.resn||"Met"===s.resn);n=r.bOpm?n&&"DUM"!==s.resn:n,n&&(a=s.structure+"_"+s.chain+"_"+s.resi,d=a+"_"+s.name,c[d]=s)}let p={},m={},u=.5,g=-27.888,f={};for(let e in t){let C=t[e],b=i?"LYS"===C.resn&&"N"===C.elem&&"N"!==C.name||"ARG"===C.resn&&("NH1"===C.name||"NH2"===C.name)||("GLU"===C.resn||"ASP"===C.resn)&&"O"===C.elem&&"O"!==C.name||C.het&&("N"===C.elem||"O"===C.elem||"S"===C.elem):"N"===C.elem||"O"===C.elem||"S"===C.elem&&(C.het||"Cys"===C.resn||"Met"===C.resn);if(b=r.bOpm?b&&"DUM"!==C.resn:b,b){a=C.structure+"_"+C.chain+"_"+C.resi,d=a+"_"+C.name;let e=0==C.name.indexOf("pi")&&C.ring?C.ring.join(","):C.serial,t=C.resn+" $"+C.structure+"."+C.chain+":"+C.resi+"@"+C.name+" "+e;void 0===r.resid2Residhash[t]&&(r.resid2Residhash[t]={});for(let e in c){if(i&&!(("LYS"!==C.resn&&"ARG"!==C.resn||"LYS"!==c[e].resn&&"ARG"!==c[e].resn)&&("GLU"!==C.resn&&"ASP"!==C.resn||"GLU"!==c[e].resn&&"ASP"!==c[e].resn)))continue;if(!r.crossstrucinter&&C.structure!=c[e].structure)continue;if(a==e.substr(0,e.lastIndexOf("_")))continue;let d=Math.abs(C.coord.x-c[e].coord.x);if(d>s)continue;let b=Math.abs(C.coord.y-c[e].coord.y);if(b>s)continue;let y=Math.abs(C.coord.z-c[e].coord.z);if(y>s)continue;let v=d*d+b*b+y*y;if(v>h)continue;if(!r.proteins.hasOwnProperty(C.serial)||!r.proteins.hasOwnProperty(c[e].serial)||"N"!==C.name&&"O"!==C.name||"O"!==c[e].name&&"N"!==c[e].name){if(!this.isValidHbond(C,c[e],s))continue}else{if(C.name===c[e].name)continue;if(C.structure==c[e].structure&&C.chain==c[e].chain&&Math.abs(C.resi-c[e].resi)<=1)continue;let t,i="N"===C.name?C:c[e],n="O"===C.name?C:c[e];if("Pro"===i.resn)continue;if(void 0===i.hcoord){if(!this.isValidHbond(C,c[e],s))continue}else{let s,l=i.hcoord,o=i.coord,a=n.structure+"_"+n.chain+"_"+n.resi;for(let e in r.residues[a])if("C"===r.atoms[e].name){s=r.atoms[e];break}if(!s)continue;let d=s.coord,h=n.coord,p=l.distanceTo(h),m=l.distanceTo(d),f=o.distanceTo(d),b=o.distanceTo(h);t=p2||f[c[e].serial]>2)continue;void 0===f[C.serial]?f[C.serial]=1:++f[C.serial],void 0===f[c[e].serial]?f[c[e].serial]=1:++f[c[e].serial],"graph"!==n&&(i?(r.saltbridgepnts.push({serial:C.serial,coord:C.coord}),r.saltbridgepnts.push({serial:c[e].serial,coord:c[e].coord})):(r.hbondpnts.push({serial:C.serial,coord:C.coord}),r.hbondpnts.push({serial:c[e].serial,coord:c[e].coord})));let _=c[e].structure+"_"+c[e].chain+"_"+c[e].resi;p=o.hashUtilsCls.unionHash(p,r.residues[a]),p=o.hashUtilsCls.unionHash(p,r.residues[_]),m[a]=1,m[_]=1;let w=0==c[e].name.indexOf("pi")&&c[e].ring?c[e].ring.join(","):c[e].serial,S=c[e].resn+" $"+c[e].structure+"."+c[e].chain+":"+c[e].resi+"@"+c[e].name+" "+w,A=a+"_"+C.resn+","+_+"_"+c[e].resn;void 0!==r.resids2interAll[A]&&void 0!==r.resids2interAll[A].ionic&&r.resids2interAll[A].ionic.hasOwnProperty(t+"|"+S)||(r.resid2Residhash[t][S]=v.toFixed(1),l||(void 0===r.resids2inter[A]&&(r.resids2inter[A]={}),void 0===r.resids2inter[A].hbond&&(r.resids2inter[A].hbond={}),r.resids2inter[A].hbond[t+"|"+S]=v.toFixed(1)),void 0===r.resids2interAll[A]&&(r.resids2interAll[A]={}),void 0===r.resids2interAll[A].hbond&&(r.resids2interAll[A].hbond={}),r.resids2interAll[A].hbond[t+"|"+S]=v.toFixed(1))}}}let C=Object.keys(m);if("graph"!==n)for(let e=0,t=C.length;en)return!1;let c=Math.abs(e.coord.y-t.coord.y);if(c>n)return!1;let h=Math.abs(e.coord.z-t.coord.z);if(h>n)return!1;let p=d*d+c*c+h*h;if(p>l)return!1;"graph"!==s&&("halogen"==i?(a.halogenpnts.push({serial:e.serial,coord:e.coord}),a.halogenpnts.push({serial:t.serial,coord:t.coord})):"pi-cation"==i?(a.picationpnts.push({serial:e.serial,coord:e.coord}),a.picationpnts.push({serial:t.serial,coord:t.coord})):"pi-stacking"==i&&(a.pistackingpnts.push({serial:e.serial,coord:e.coord}),a.pistackingpnts.push({serial:t.serial,coord:t.coord})));let m=0==t.name.indexOf("pi")&&t.ring?t.ring.join(","):t.serial,u=t.resn+" $"+t.structure+"."+t.chain+":"+t.resi+"@"+t.name+" "+m;a.resid2Residhash[r][u]=p.toFixed(1);let g=e.structure+"_"+e.chain+"_"+e.resi+"_"+e.resn+","+t.structure+"_"+t.chain+"_"+t.resi+"_"+t.resn;return o||(void 0===a.resids2inter[g]&&(a.resids2inter[g]={}),void 0===a.resids2inter[g][i]&&(a.resids2inter[g][i]={}),a.resids2inter[g][i][r+"|"+u]=p.toFixed(1)),void 0===a.resids2interAll[g]&&(a.resids2interAll[g]={}),void 0===a.resids2interAll[g][i]&&(a.resids2interAll[g][i]={}),a.resids2interAll[g][i][r+"|"+u]=p.toFixed(1),!0}getRingNormal(e){if(this.icn3d.icn3dui,e.length<3)return;let t=e[0].clone().sub(e[1]),s=e[1].clone().sub(e[2]);return t.cross(s).normalize()}getAromaticRings(e,t,s){let i=this.icn3d;i.icn3dui;let n=[],l=[],r=[],o=[];if("nucleotide"==s){let s=new THREE.Vector3,a=new THREE.Vector3;if("A"==e.trim().toUpperCase()||"DA"==e.trim().toUpperCase()||"G"==e.trim().toUpperCase()||"DG"==e.trim().toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"N1"==t.name||"C2"==t.name||"N3"==t.name||"C6"==t.name?(s.add(t.coord),r.push(t.coord)):"C4"==t.name||"C5"==t.name?(s.add(t.coord),a.add(t.coord),r.push(t.coord),o.push(t.coord)):"N7"!=t.name&&"C8"!=t.name&&"N9"!=t.name||(a.add(t.coord),o.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r))),5==o.length&&(a.multiplyScalar(.2),n.push(a),l.push(this.getRingNormal(o)))}else if("C"==e.trim().toUpperCase()||"DC"==e.trim().toUpperCase()||"T"==e.trim().toUpperCase()||"DT"==e.trim().toUpperCase()||"U"==e.trim().toUpperCase()||"DU"==e.trim().toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"N1"==t.name||"C2"==t.name||"N3"==t.name||"C6"==t.name?(s.add(t.coord),r.push(t.coord)):"C4"!=t.name&&"C5"!=t.name||(s.add(t.coord),r.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r)))}}else if("protein"==s){let s=new THREE.Vector3,a=new THREE.Vector3;if("PHE"==e.toUpperCase()||"TYR"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CG"!=t.name&&"CD1"!=t.name&&"CE1"!=t.name&&"CZ"!=t.name&&"CE2"!=t.name&&"CD2"!=t.name||(s.add(t.coord),r.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r)))}else if("HIS"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CG"!=t.name&&"ND1"!=t.name&&"CE1"!=t.name&&"NE2"!=t.name&&"CD2"!=t.name||(s.add(t.coord),r.push(t.coord))}5==r.length&&(s.multiplyScalar(.2),n.push(s),l.push(this.getRingNormal(r)))}else if("TRP"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CZ2"==t.name||"CH2"==t.name||"CZ3"==t.name||"CE3"==t.name?(s.add(t.coord),r.push(t.coord)):"CD2"==t.name||"CE2"==t.name?(s.add(t.coord),a.add(t.coord),r.push(t.coord),o.push(t.coord)):"CG"!=t.name&&"CD1"!=t.name&&"NE1"!=t.name||(a.add(t.coord),o.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r))),5==o.length&&(a.multiplyScalar(.2),n.push(a),l.push(this.getRingNormal(o)))}}return{piPosArray:n,normalArray:l}}dfs_cycle(e,t,s){let i=this.icn3d;if(i.icn3dui,2==i.ring_color[e])return s;if(1==i.ring_color[e]){s++;let n=t;for(i.ring_mark[n]=s;n!=e;)n=i.ring_par[n],i.ring_mark[n]=s;return s}if(i.ring_par[e]=t,i.ring_color[e]=1,void 0!==i.atoms[e])for(let t=0,n=i.atoms[e].bonds.length;t=3&&o<=6&&a[0]&&a[1]&&a[2]&&a[3]){let i=a[0].clone().sub(a[1]).normalize(),r=a[1].clone().sub(a[2]).normalize(),c=a[2].clone().sub(a[3]).normalize(),h=i.cross(r).normalize(),p=h.dot(c);if(Math.abs(p)<.052){l.multiplyScalar(1/o);let i=t.atoms[n];s[e+"_pi"+n]={resn:i.resn,name:"pi"+n,coord:l,serial:i.serial,structure:i.structure,chain:i.chain,resi:i.resi,normal:h,ring:d}}}}return s}hideHalogenPi(){let e=this.icn3d;e.icn3dui,e.opts.halogen="no",e.opts["pi-cation"]="no",e.opts["pi-stacking"]="no",void 0===e.lines&&(e.lines={}),e.lines.halogen=[],e.lines["pi-cation"]=[],e.lines["pi-stacking"]=[],e.halogenpnts=[],e.picationpnts=[],e.pistackingpnts=[]}}class gt{constructor(e){this.icn3d=e}calculateIonicInteractions(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(0===Object.keys(e).length||0===Object.keys(t).length)return;r.resid2Residhash={};let a,d,c={},h={},p=s*s;for(let t in e){let s=e[t];if("ARG"===s.resn&&"NH2"===s.name||"GLU"===s.resn&&"OE2"===s.name||"ASP"===s.resn&&"OD2"===s.name)continue;let i=("LYS"===s.resn||"HIS"===s.resn)&&"N"===s.elem&&"N"!==s.name||"ARG"===s.resn&&("NH1"===s.name||"NH2"===s.name)||s.het&&-1!==o.parasCls.cationsTrimArray.indexOf(s.elem)||s.het&&"N"===s.elem&&1==s.bonds.length,n=this.isAnion(s);i=r.bOpm?i&&"DUM"!==s.resn:i,n=r.bOpm?n&&"DUM"!==s.resn:n,(i||n)&&(a=s.structure+"_"+s.chain+"_"+s.resi,d=a+"_"+s.name,i&&(c[d]=s),n&&(h[d]=s))}let m={},u={};for(let e in t){let i=t[e];if("ARG"===i.resn&&"NH2"===i.name||"GLU"===i.resn&&"OE2"===i.name||"ASP"===i.resn&&"OD2"===i.name)continue;let g=("LYS"===i.resn||"HIS"===i.resn)&&"N"===i.elem&&"N"!==i.name||"ARG"===i.resn&&("NH1"===i.name||"NH2"===i.name)||i.het&&-1!==o.parasCls.cationsTrimArray.indexOf(i.elem),f=this.isAnion(i);if(g=r.bOpm?g&&"DUM"!==i.resn:g,f=r.bOpm?f&&"DUM"!==i.resn:f,g||f){a=i.structure+"_"+i.chain+"_"+i.resi,d=a+"_"+i.name;let e=0==i.name.indexOf("pi")&&i.ring?i.ring.join(","):i.serial,t=i.resn+" $"+i.structure+"."+i.chain+":"+i.resi+"@"+i.name+" "+e;void 0===r.resid2Residhash[t]&&(r.resid2Residhash[t]={});let C={};g?C=h:f&&(C=c);let b,y=i.structure+"_"+i.chain+"_"+i.resi;g&&"ARG"===i.resn&&"NH1"===i.name?b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"NH2"):f&&"GLU"===i.resn&&"OE1"===i.name?b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"OE2"):f&&"ASP"===i.resn&&"OD1"===i.name&&(b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"OD2"));let v=void 0===b?i.coord:i.coord.clone().add(b.coord).multiplyScalar(.5);for(let e in C){if(a==e.substr(0,e.lastIndexOf("_")))continue;if(!r.crossstrucinter&&i.structure!=C[e].structure)continue;let d,c=C[e].structure+"_"+C[e].chain+"_"+C[e].resi;f&&"ARG"===C[e].resn&&"NH1"===C[e].name?d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"NH2"):g&&"GLU"===C[e].resn&&"OE1"===C[e].name?d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"OE2"):g&&"ASP"===C[e].resn&&"OD1"===C[e].name&&(d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"OD2"));let h=void 0===d?C[e].coord:C[e].coord.clone().add(d.coord).multiplyScalar(.5),b=Math.abs(v.x-h.x);if(b>s)continue;let y=Math.abs(v.y-h.y);if(y>s)continue;let _=Math.abs(v.z-h.z);if(_>s)continue;let w=b*b+y*y+_*_;if(w>p)continue;"graph"!==n&&(r.saltbridgepnts.push({serial:i.serial,coord:v}),r.saltbridgepnts.push({serial:C[e].serial,coord:h}));let S=C[e].structure+"_"+C[e].chain+"_"+C[e].resi;m=o.hashUtilsCls.unionHash(m,r.residues[a]),m=o.hashUtilsCls.unionHash(m,r.residues[S]),u[a]=1,u[S]=1;let A=0==C[e].name.indexOf("pi")&&C[e].ring?C[e].ring.join(","):C[e].serial,x=C[e].resn+" $"+C[e].structure+"."+C[e].chain+":"+C[e].resi+"@"+C[e].name+" "+A;r.resid2Residhash[t][x]=w.toFixed(1);let k=a+"_"+i.resn+","+S+"_"+C[e].resn;l||(void 0===r.resids2inter[k]&&(r.resids2inter[k]={}),void 0===r.resids2inter[k].ionic&&(r.resids2inter[k].ionic={}),r.resids2inter[k].ionic[t+"|"+x]=w.toFixed(1)),void 0===r.resids2interAll[k]&&(r.resids2interAll[k]={}),void 0===r.resids2interAll[k].ionic&&(r.resids2interAll[k].ionic={}),r.resids2interAll[k].ionic[t+"|"+x]=w.toFixed(1)}}}let g=Object.keys(u);if("graph"!==n)for(let e=0,t=g.length;e1?1/(n-1):1;for(let n in e){let e=t.atoms[n];e.color=s.parasCls.thr().setHSL(3/4*(1-i++*l),1,.45),t.atomPrevColors[n]=e.color}}colorRainbow(e){let t=this.icn3d,s=t.icn3dui,i=0,n=0;e=s.hashUtilsCls.intHash(e,t.hAtoms);for(let s in e)t.atoms[s],++n;let l=n>1?1/(n-1):1;for(let n in e){let e=t.atoms[n];e.color=s.parasCls.thr().setHSL(3/4*i++*l,1,.45),t.atomPrevColors[n]=e.color}}setColorAcrossSets(e,t){let s=this.icn3d,i=s.icn3dui,n=0,l=e.length,r=l>1?1/(l-1):1;for(let l=0,o=e.length;l0)this.setMmdbChainColor();else{let e=-1,s="",l=n.parasCls.stdChainColors.length;for(let r in t){let t=i.atoms[r];t.chain!=s&&(++e,e%=l),t.het?(t.color=n.parasCls.atomColors[t.elem],i.atomPrevColors[r]=t.color):(t.color=n.parasCls.stdChainColors[e],Object.keys(i.chainsColor).length>0&&this.updateChainsColor(t),i.atomPrevColors[r]=t.color),s=t.chain}}break;case"domain":s=0,l=0;let m=Object.keys(i.tddomains);l=m.length,r=l>1?1/(l-1):1;for(let e=0,t=m.length;e1?1/(l-1):1;for(let e=0;e Defined Sets", and try it again.');break;case"secondary structure green":case"secondary structure":i.sheetcolor="green";for(let e in t){let t=i.atoms[e];t.color=t.het?n.parasCls.atomColors[t.elem]||n.parasCls.defaultAtomColor:n.parasCls.ssColors[t.ss]||n.parasCls.thr(16711935),i.atomPrevColors[e]=t.color}break;case"secondary structure yellow":i.sheetcolor="yellow";for(let e in t){let t=i.atoms[e];t.color=t.het?n.parasCls.atomColors[t.elem]||n.parasCls.defaultAtomColor:n.parasCls.ssColors2[t.ss]||n.parasCls.thr(16711935),i.atomPrevColors[e]=t.color}break;case"secondary structure spectrum":s=0,l=0;let u,g,f=[],C=-9999;for(let e in t){if(!i.proteins.hasOwnProperty(e))continue;let t=i.atoms[e];-9999==C&&(u=parseInt(e)),-9999!=C&&(t.ss!=g.ss||Math.abs(t.resi-g.resi)>1||t.ssbegin&&g.ssend)&&("coil"==g.ss||f.push([u,C]),u=e),C=parseInt(e),g=t}"coil"==g.ss||f.push([u,C]),l=f.length,r=l>1?1/(l-1):1;for(let e=0,t=f.length;e100&&(e=100);let r=(i.middB-e)*i.spanBinv1,o=(e-i.middB)*i.spanBinv2;e=90?t.color=n.parasCls.thr().setRGB(0,.325,.839):e>=70&&e<90?t.color=n.parasCls.thr().setRGB(.396,.572,.953):e>=50&&e<70?t.color=n.parasCls.thr().setRGB(1,.859,.075):e<50&&(t.color=n.parasCls.thr().setRGB(1,.49,.271))}i.atomPrevColors[e]=t.color}break;case"b factor":i.middB=50,i.spanBinv1=.02,i.spanBinv2=.02;for(let e in t){let t=i.atoms[e];if(void 0===t.b||isNaN(t.b)||0==parseInt(1e3*t.b))t.color=n.parasCls.thr().setRGB(0,1,0);else{let e=t.b;e>100&&(e=100),e=t.structure.substr(0,4)!=i.defaultPdbId&&t.structure.length>5?100-e:e;let s=(i.middB-e)*i.spanBinv1,l=(e-i.middB)*i.spanBinv2;t.color=et.b&&(o=t.b),a5?100-t.b:t.b,s=i.bfactorArray.indexOf(e)/b;t.color=s<.5?n.parasCls.thr().setRGB(2*s,2*s,1):n.parasCls.thr().setRGB(1,2*(1-s),2*(1-s))}i.atomPrevColors[e]=t.color}break;case"area":if(void 0===i.resid2area){let e=n.hashUtilsCls.cloneHash(i.hAtoms);i.hAtoms=n.hashUtilsCls.cloneHash(i.atoms),i.bCalcArea=!0,i.opts.surface="solvent accessible surface",i.applyMapCls.applySurfaceOptions(),i.bCalcArea=!1,i.hAtoms=n.hashUtilsCls.cloneHash(e)}let y=void 0!==i.midpercent?i.midpercent:35;i.spanBinv1=.02,i.spanBinv2=.02;for(let e in t){let t=i.atoms[e],s=t.structure+"_"+t.chain+"_"+t.resi+"_"+t.resn,l=n.parasCls.residueArea.hasOwnProperty(t.resn)?i.resid2area[s]/n.parasCls.residueArea[t.resn]*100:y;l>100&&(l=100);let r=(y-l)*i.spanBinv1,o=(l-y)*i.spanBinv2;t.color=l

    ";if("atom"==e){let e=["proteins","nucleotides","chemicals","ions","water"];for(let i=0,l=e.length;i[e,s.parasCls.hydrophobicValues[e]]));l.sort(((e,t)=>parseFloat(e[1])-parseFloat(t[1])));var r=l.map((e=>[e[0],Object.keys(o[e[0]])[0]]));n+="
    ","normalized hydrophobic"==e?(n+="Dark green (W, F, L, I, Y, M, V, C): Hydrophobic
    ",n+="Light green (P, T, S, A, Q, N, G): Polar
    ",n+="Grey: Charged, not hydrophobic

    "):(n+="Green (W, F, L, I, Y, M, V, C): Hydrophobic
    ",n+="Yellow (P, T, S, A, Q, N, G): Polar
    ",n+="Red: Negatively Charged
    ",n+="Blue: Positively Charged

    ");let a=0;for(let e of r)s.parasCls.residueAbbrev[e[0]]&&(n+="
    ",n+="
    ",n+=s.parasCls.residueAbbrev[e[0]]+"
    ",a%4==3&&(n+="
    "),++a);n+="
    "}else"b factor"==e?(n+="
    B factor quantitates the uncertainty for each atom. A high B factor reflects that the position is less certain.

    ",n+=s.htmlCls.clickMenuCls.setLegendHtml()):"confidence"==e?n+=s.htmlCls.clickMenuCls.setLegendHtml(!0):"exon"==e?(t.startColor="red",t.midColor="white",t.endColor="blue",t.startValue="Start",t.midValue="Middle",t.endValue="End",n+=s.htmlCls.clickMenuCls.setLegendHtml()):n="";n?($("#"+s.pre+"dl_legend_html").html(n),s.htmlCls.dialogCls.openDlg("dl_legend","Color Legend")):$("#"+s.pre+"dl_legend").hasClass("ui-dialog-content")&&$("#"+s.pre+"dl_legend").dialog("isOpen")&&$("#"+s.pre+"dl_legend").dialog("close")}getColorLegendForElem(e,t){let s=this.icn3d,i=s.icn3dui,n="",l={};for(let e in t){let t=s.atoms[e],i=void 0===t||void 0===t.color||"FFFFFF"===t.color.getHexString().toUpperCase()?"DDDDDD":t.color.getHexString();void 0===l[t.elem]&&(l[t.elem]={}),l[t.elem][i]=1}if(Object.keys(l).length>0){n+=""+e+"
    ";let t=Object.keys(l).sort();for(let e=0,s=t.length;e";for(let e in l[s])n+="
    ";n+=i.parasCls.atomnames[s.toUpperCase()]+"

    "}n+="
    "}return n}getRes2color(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=s.firstAtomObjCls.getResiduesFromAtoms(e);for(let e in l){let l=s.residues[e],r=s.firstAtomObjCls.getFirstAtomObj(l),o=t?r.resn:i.parasCls.residueAbbrev[r.resn],a=void 0===r||void 0===r.color||"FFFFFF"===r.color.getHexString().toUpperCase()?"DDDDDD":r.color.getHexString();null!=o&&(void 0===n[o]&&(n[o]={}),n[o][a]=1)}return n}getColorLegendForResidue(e){this.icn3d.icn3dui;let t="",s=this.getRes2color(e);if(Object.keys(s).length>0){t+="
    ";let e=Object.keys(s).sort(),i="",n=0;for(let l=0,r=e.length;l";for(let e in s[o])r+="
    ";r+=o+"
    ",n%4==3&&(r+="
    "),-1!=o.indexOf("(")?(t+=r,++n):i+=r}i&&(t+="
    "+i),t+="
    "}return t}getColorLegendForCharge(e){let t=this.icn3d;t.icn3dui;let s="",i=t.firstAtomObjCls.getResiduesFromAtoms(e),n={};for(let e in i){let s=t.residues[e],i=t.firstAtomObjCls.getFirstAtomObj(s);"ARG"==i.resn||"LYS"==i.resn?n.Positive=1:"HIS"==i.resn?n["Partial-Positive"]=1:"ASP"==i.resn||"GLU"==i.resn||t.nucleotides[i.serial]?n.Negative=1:n.Neutral=1}const l={Positive:"0000ff","Partial-Positive":"8080ff",Negative:"ff0000",Neutral:"888888"};let r=["Positive","Partial-Positive","Negative","Neutral"];s+="
    ";for(let e=0,t=r.length;e",s+="
    ",s+=t,s+="
    ")}return s+="
    (Charges are at pH 7)",s+="
    ",s}getColorLegendForIgstrand(e){this.icn3d.icn3dui;let t="";const s={"A Strand":"9400D3","B Strand":"ba55d3","C Strand":"0000FF","C' Strand":"6495ED","C'' Strand":"006400","D Strand":"00FF00","E Strand":"FFD700","F Strand":"FF8C00","G Strand":"FF0000",Loop:"CCCCCC"};t+="
    ";for(let e in s){t+="",t+="
    ",t+=e,t+="

    "}return t+="
    ",t}getColorLegendForIgproto(e){this.icn3d.icn3dui;let t="";const s={"Protodomain 1":"","A Strand":"0000FF","B Strand":"006400","C Strand":"FFD700","C' Strand":"FF8C00","
    Linker":"","C'' Strand":"FF0000","
    Protodomain 2":"","D Strand":"0000FF","E Strand":"006400","F Strand":"FFD700","G Strand":"FF8C00","":"",Loop:"CCCCCC"};t+="
    A protodomain is a supersecondary structure
    that by its duplication, symmetry operations
    can generate a structural domain.

    ";for(let e in s){let i=s[e];t+="",i&&(t+="
    "),t+=e,t+="

    "}return t+="
    ",t}}class vt{constructor(e){this.icn3d=e}async showCddSiteAll(){let e=this.icn3d,t=e.icn3dui,s=this;e.chainid2pssmid={};let i=$.map(e.protein_chainid,(function(e){return e})),n=Object.keys(e.protein_chainid),l="https://www.ncbi.nlm.nih.gov/Structure/cdannots/cdannots.fcgi?fmt&frclive&live=lcl&queries="+i;if(1==Object.keys(e.structures).length&&!t.cfg.afid&&(t.cfg.mmtfid||t.cfg.pdbid||t.cfg.opmid||t.cfg.mmdbid||t.cfg.gi||t.cfg.uniprotid||t.cfg.blast_rep_id||t.cfg.cid||t.cfg.mmcifid)||2==Object.keys(e.structures).length&&t.cfg.align){let e={};try{t.bNode?e=await t.getAjaxPromise(l,"jsonp"):e.value=await t.getAjaxPromise(l,"jsonp"),s.parseCddData([e],n)}catch(e){return void s.getNoCdd(i)}}else{let i=[];for(let s=0,r=n.length;s',p=h,m=h,u=d.doms;n.bNode&&!i.resid2cdd[c]&&(i.resid2cdd[c]=[]),n.bNode&&!i.chainid2cdd[c]&&(i.chainid2cdd[c]=[]);let g=l.setDomainFeature(u,c,"domain",h,p,m);i.chainid2pssmid[c]={pssmid2name:g.pssmid2name,pssmid2fromArray:g.pssmid2fromArray,pssmid2toArray:g.pssmid2toArray};let f=g.acc2domain;h=g.html+"",p=g.html2+"",m=g.html3+"",$("#"+i.pre+"dt_cdd_"+c).html(h),$("#"+i.pre+"ov_cdd_"+c).html(p),$("#"+i.pre+"tt_cdd_"+c).html(m),h='
    ',p=h,m=h;let C=d.motifs;n.bNode&&!i.resid2site[c]&&(i.resid2site[c]=[]),g=l.setDomainFeature(C,c,"feat",h,p,m,f),h=g.html,p=g.html2,m=g.html3;let b=a.data[e].sites,y=void 0!==b?b.length:0;for(let e=0;e17&&(s=s.substr(0,17)+"...");let l,r=b[e].title,o=[];for(let t=0,s=b[e].locs.length;t'+s+"
    ",u=''+t.toString()+" Res",g='';m+=d+u+"
    ",h+=d+u+g,p+=d+u+g;let f="site"+e.toString(),C=0,y=0,v=1;i.seqStartLen&&i.seqStartLen[c]&&(p+=i.showSeqCls.insertMulGapOverview(c,i.seqStartLen[c])),i.seqStartLen&&i.seqStartLen[c]&&(h+=i.showSeqCls.insertMulGap(i.seqStartLen[c],"-"));for(let t=0,s=i.giSeq[c].length;t1&&(l=s[0]+"..");let r=i.ParserUtilsCls.getResi(c,t);if(h+=''+s+"",n.bNode){let t={};t[c+"_"+r]="site: "+b[e].title,i.resid2site[c].push(t)}p+=i.showSeqCls.insertGapOverview(c,t);let o=n.cfg.blast_rep_id==c?Math.round(i.seqAnnWidth*t/(i.maxAnnoLength+i.nTotalGap)-C-y):Math.round(i.seqAnnWidth*t/i.maxAnnoLength-C-y);o>=0&&(p+='
     
    ',p+='
     
    ',C+=o,y+=v)}else h+="-";i.seqStartLen&&i.seqStartLen[c]&&(h+=i.showSeqCls.insertMulGap(i.seqEndLen[c],"-")),g=' '+t.toString()+" Residues",g+="
    ",g+="
    ",h+=g,p+=g}h+="",p+="",m+="",$("#"+i.pre+"dt_site_"+c).html(h),$("#"+i.pre+"ov_site_"+c).html(p),$("#"+i.pre+"tt_site_"+c).html(m)}}for(let e in i.protein_chainid)r.hasOwnProperty(e)||($("#"+i.pre+"dt_cdd_"+e).html(""),$("#"+i.pre+"ov_cdd_"+e).html(""),$("#"+i.pre+"tt_cdd_"+e).html(""),$("#"+i.pre+"dt_site_"+e).html(""),$("#"+i.pre+"ov_site_"+e).html(""),$("#"+i.pre+"tt_site_"+e).html(""));i.showAnnoCls.enableHlSeq(),i.bAjaxCddSite=!0}getNoCdd(e){let t=this.icn3d;t.icn3dui,console.log("No CDD data were found for the protein "+e+"...");for(let e in t.protein_chainid)$("#"+t.pre+"dt_cdd_"+e).html(""),$("#"+t.pre+"ov_cdd_"+e).html(""),$("#"+t.pre+"tt_cdd_"+e).html(""),$("#"+t.pre+"dt_site_"+e).html(""),$("#"+t.pre+"ov_site_"+e).html(""),$("#"+t.pre+"tt_site_"+e).html("");t.showAnnoCls.enableHlSeq(),t.bAjaxCddSite=!0}getResiArrayStr(e,t){let s=this.icn3d;s.icn3dui;let i="";for(let n=0,l=e.length;n0&&(i+=","),i+=r.split("_")[2]}return i}setDomainFeature(e,t,s,i,n,l,r,o,a){let d,c,h,p=this.icn3d,m=p.icn3dui,u="domain"!=s&&"feat"!=s;"domain"==s&&(r={},d={},c={},h={}),void 0===e&&(e=[]);let g=e.length,f="domain"==s?14:19,C="domain"==s?100:120;e.sort((function(e,t){let i=e.locs,n="domain"==s||"ig"==s?i[0].segs:[i[0]],l=Math.round(n[0].from);return i=t.locs,n="domain"==s||"ig"==s?i[0].segs:[i[0]],l-Math.round(n[0].from)}));for(let b=0;bf&&(w=w.substr(0,f)+"...");let S=u?a[b]:s+": "+v;"domain"==s&&(d[g]=v);let A=e[b].locs;if(A)for(let e=0,r=A.length;e'+w+" ",I=''+u.toString()+" Res";l+=R+I+"
    ";let E='';i+=R+I+E,"domain"==s&&(n+='
    '),n+='
    '+w+"
    ",n+=I+E;let T=s+b.toString();if(p.seqStartLen&&p.seqStartLen[t]&&(i+=p.showSeqCls.insertMulGap(p.seqStartLen[t],"-")),m.bNode&&"domain"==s){let e=this.getResiArrayStr(r,t),s=this.getResiArrayStr(a,t);p.chainid2cdd[t].push(S+"_from_"+e+"_to_"+s)}for(let e=0,n=p.giSeq[t].length;e1&&(l=n[0]+"..");let r=p.ParserUtilsCls.getResi(t,e);if(i+=''+n+"",m.bNode){let e={};e[t+"_"+r]=S,"domain"==s?p.resid2cdd[t].push(e):p.resid2site[t].push(e)}}else i+="-";if(p.seqStartLen&&p.seqStartLen[t]&&(i+=p.showSeqCls.insertMulGap(p.seqEndLen[t],"-")),p.seqStartLen&&p.seqStartLen[t]&&(n+=p.showSeqCls.insertMulGapOverview(t,p.seqStartLen[t])),m.cfg.blast_rep_id!=t){let i;for(let l=0,d=r.length;l ',n+='
    '+v+"
    "}}else{let i=[],l=[];for(let e=0,t=r.length;e ',n+='
    '+v+"
    "}}E=' '+u.toString()+" Residues",E+="
    ",E+="
    ",i+=E,n+=E,"domain"==s&&(n+='')}}return{html:i,html2:n,html3:l,acc2domain:r,pssmid2name:d,pssmid2fromArray:c,pssmid2toArray:h}}getColorFromPos(e,t,s){let i,n=this.icn3d;n.icn3dui;let l=e+"_"+n.ParserUtilsCls.getResi(e,t),r=n.firstAtomObjCls.getFirstAtomObj(n.residues[l]),o=r&&void 0!==r.color&&"FFFFFF"!==r.color.getHexString()?r.color.getHexString():"DDDDDD";return i=r&&void 0!==r.color?o:"CCCCCC",i}showAnnoType(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui,a='
    ',d=a,c=a;if(0==n.length)return $("#"+r.pre+"dt_"+s+"_"+e).html(""),$("#"+r.pre+"ov_"+s+"_"+e).html(""),void $("#"+r.pre+"tt_"+s+"_"+e).html("");let h=i;i.length>17&&(i=i.substr(0,17)+"...");let p=[];for(let e=0,t=n.length;e'+i+"
    ",f=''+m.toString()+" Res";c+=g+f+"
    ";let C='';a+=g+f+C,d+=g+f+C;let b=s,y=0,v=0;r.seqStartLen&&r.seqStartLen[e]&&(d+=r.showSeqCls.insertMulGapOverview(e,r.seqStartLen[e])),r.seqStartLen&&r.seqStartLen[e]&&(a+=r.showSeqCls.insertMulGap(r.seqStartLen[e],"-"));for(let t=0,i=r.giSeq[e].length;t1&&(c=n[0]+"..");let h=i,p=e+"_"+i,m=n+i;if("ssbond"==s){m="Residue "+p+" has disulfide bond with";let t="";if(void 0!==l[p])for(let e=0,s=l[p].length;e'+c+"",d+=r.showSeqCls.insertGapOverview(e,t);let u=o.cfg.blast_rep_id==e?Math.round(r.seqAnnWidth*t/(r.maxAnnoLength+r.nTotalGap)-y-v):Math.round(r.seqAnnWidth*t/r.maxAnnoLength-y-v);u>=0&&(d+='
     
    ',d+='
     
    ',y+=u,v+=1)}else a+="-"}r.seqStartLen&&r.seqStartLen[e]&&(a+=r.showSeqCls.insertMulGap(r.seqEndLen[e],"-")),C=' '+m.toString()+" Residues",C+="",C+="
    ",a+=C,d+=C,a+="",d+="",c+="",$("#"+r.pre+"dt_"+s+"_"+e).html(a),$("#"+r.pre+"ov_"+s+"_"+e).html(d),$("#"+r.pre+"tt_"+s+"_"+e).html(c)}setToolTip(){let e=this.icn3d;e.icn3dui,$("[id^="+e.pre+"snp]").add("[id^="+e.pre+"clinvar]").add("[id^="+e.pre+"ssbond]").add("[id^="+e.pre+"crosslink]").tooltip({content:function(){return $(this).prop("title")},show:null,close:function(e,t){t.tooltip.hover((function(){$(this).stop(!0).fadeTo(400,1)}),(function(){$(this).fadeOut("400",(function(){$(this).remove()}))}))}})}}class _t{constructor(e){this.icn3d=e}showInteraction(e,t){this.icn3d.icn3dui,this.showInteraction_base(e,t)}showInteraction_base(e,t){let s=this.icn3d,i=s.icn3dui;i.bNode&&(s.resid2contact||(s.resid2contact={}),s.resid2contact[e]||(s.resid2contact[e]=[])),void 0===s.chainname2residues&&(s.chainname2residues={});let n=Object.keys(s.chains),l=e,r=Math.round(l.indexOf("_"));if(s.firstAtomObjCls.getFirstCalphaAtomObj(s.chains[l]),void 0===s.chainname2residues[l]){s.chainname2residues[l]={};let t=n.length;if(t>100&&void 0===i.cfg.mmdbid&&void 0===i.cfg.gi&&void 0===i.cfg.blast_rep_id&&void 0===i.cfg.align&&void 0===i.cfg.chainalign)return $("#"+s.pre+"dt_interaction_"+e).html(""),void $("#"+s.pre+"ov_interaction_"+e).html("");for(let e=0;e4)continue;let o,a=s.firstAtomObjCls.getFirstCalphaAtomObj(s.chains[t]);s.chemicals.hasOwnProperty(a.serial)?o="chemical":s.nucleotides.hasOwnProperty(a.serial)?o="nucleotide":s.ions.hasOwnProperty(a.serial)?o="ion":s.proteins.hasOwnProperty(a.serial)?o="protein":s.water.hasOwnProperty(a.serial)&&(o="water");let d=s.contactCls.getAtomsWithinAtom(i.hashUtilsCls.hash2Atoms(s.chains[l],s.atoms),i.hashUtilsCls.hash2Atoms(s.chains[t],s.atoms),4);if(0==Object.keys(d).length)continue;let c={};for(let e in d){let t=s.atoms[e];c[t.structure+"_"+t.chain+"_"+t.resi]=1}let h=t.substr(t.indexOf("_")+1)+"("+o+")";s.chainname2residues[l][h]=Object.keys(c)}}let o='
    ',a=o,d=o,c=0;for(let t in s.chainname2residues[e]){let n=s.chainname2residues[e][t];if(!n)continue;let l="Interact ."+t;l.length>17&&(l=l.substr(0,17)+"...");let r="Interact ."+t,h=[];for(let e=0,t=n.length;e'+l+"
    ",g=''+p.toString()+" Res";d+=u+g+"
    ";let f='';o+=u+g+f,a+=u+g+f;let C="inter"+c.toString(),b=0,y=0,v=1;s.seqStartLen&&s.seqStartLen[e]&&(a+=s.showSeqCls.insertMulGapOverview(e,s.seqStartLen[e])),s.seqStartLen&&s.seqStartLen[e]&&(o+=s.showSeqCls.insertMulGap(s.seqStartLen[e],"-"));for(let t=0,n=s.giSeq[e].length;t1&&(d=l[0]+"..");let c=n;if(o+=''+d+"",i.bNode){let t={};t[e+"_"+c]=r,s.resid2contact[e].push(t)}a+=s.showSeqCls.insertGapOverview(e,t);let h=i.cfg.blast_rep_id==e?Math.round(s.seqAnnWidth*t/(s.maxAnnoLength+s.nTotalGap)-b-y):Math.round(s.seqAnnWidth*t/s.maxAnnoLength-b-y);h>=0&&(a+='
     
    ',a+='
     
    ',b+=h,y+=v)}else o+="-"}s.seqStartLen&&s.seqStartLen[e]&&(o+=s.showSeqCls.insertMulGap(s.seqEndLen[e],"-")),f=' '+p.toString()+" Residues",f+="
    ",f+="
    ",o+=f,a+=f,++c}o+="",a+="",d+="",$("#"+s.pre+"dt_interaction_"+e).html(o),$("#"+s.pre+"ov_interaction_"+e).html(a),$("#"+s.pre+"tt_interaction_"+e).html(d),i.utilsCls.isMobile()?(s.hlSeqCls.selectSequenceMobile(),s.hlSeqCls.selectChainMobile()):s.hlSeqCls.selectSequenceNonMobile()}}class wt{constructor(e){this.icn3d=e}async showPTM(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui,o=this,a=e.substr(0,e.indexOf("_")),d=e.substr(e.indexOf("_")+1);if("afmem"==s){let t={Transmembrane:[{begin:i,end:n}]};this.setAnnoPtmTransmem("transmem",t,e)}else if(a.length>5){let t,i="https://www.ebi.ac.uk/proteins/api/features/"+a;try{t=await r.getAjaxPromise(i,"json"),o.parsePTM(t,e,s)}catch{return void o.getNoPTM(e,s)}}else{let t,i=a.substr(0,4).toLowerCase(),n="https://www.ebi.ac.uk/pdbe/api/mappings/uniprot/"+i;try{t=await r.getAjaxPromise(n,"json");let a="";l.UPResi2ResiPosPerChain||(l.UPResi2ResiPosPerChain={}),l.UPResi2ResiPosPerChain[e]={};let c=t[i].UniProt,h=!1;for(let t in c){let s=c[t].mappings;for(let i=0,n=s.length;i',o+=r,a+=r,s.substr(0,s.indexOf("_"));for(let d in t){let c=t[d],h=[],p=!1;for(let e=0,t=c.length;e5?h.push(e-1):i.UPResi2ResiPosPerChain&&i.UPResi2ResiPosPerChain[s][e]&&h.push(i.UPResi2ResiPosPerChain[s][e]),!p&&i.residues.hasOwnProperty(s+"_"+e)&&(p=!0)}if(0==h.length)continue;let m=h.length,u="ptm"==e?"PTM: "+d:"Transmembrane";u.length>17&&(u=u.substr(0,17)+"...");let g=d,f='
    '+u+"
    ",C=''+m.toString()+" Res",b='';a+=f+C+"
    ",r+=f+C+b,o+=f+C+b;let y=e+l.toString(),v=0,_=0,w=1;i.seqStartLen&&i.seqStartLen[s]&&(o+=i.showSeqCls.insertMulGapOverview(s,i.seqStartLen[s])),i.seqStartLen&&i.seqStartLen[s]&&(r+=i.showSeqCls.insertMulGap(i.seqStartLen[s],"-"));for(let e=0,t=i.giSeq[s].length;e1&&(l=t[0]+"..");let a=i.ParserUtilsCls.getResi(s,e);if(r+=''+t+"",n.bNode){let e={};e[s+"_"+a]=u,i.resid2ptm[s].push(e)}o+=i.showSeqCls.insertGapOverview(s,e);let d=n.cfg.blast_rep_id==s?Math.round(i.seqAnnWidth*e/(i.maxAnnoLength+i.nTotalGap)-v-_):Math.round(i.seqAnnWidth*e/i.maxAnnoLength-v-_);d>=0&&(o+='
     
    ',o+='
     
    ',v+=d,_+=w)}else r+="-";i.seqStartLen&&i.seqStartLen[s]&&(r+=i.showSeqCls.insertMulGap(i.seqEndLen[s],"-")),b=' '+m.toString()+" Residues",b+="
    ",b+="
    ",r+=b,o+=b,++l}r+="",o+="",a+="",$("#"+i.pre+"dt_"+e+"_"+s).html(r),$("#"+i.pre+"ov_"+e+"_"+s).html(o),$("#"+i.pre+"tt_"+e+"_"+s).html(a)}getNoPTM(e,t){let s=this.icn3d;s.icn3dui,console.log("No PTM data were found for the chain "+e+"...");let i="ptm"==t?"ptm":"transmem";$("#"+s.pre+"dt_"+i+"_"+e).html(""),$("#"+s.pre+"ov_"+i+"_"+e).html(""),$("#"+s.pre+"tt_"+i+"_"+e).html(""),s.showAnnoCls.enableHlSeq(),s.bAjaxPTM=!0}}class St{constructor(e){this.icn3d=e}async showIg(e,t){let s=this.icn3d;s.icn3dui,s.bRunRefnumAgain&&await s.refnumCls.showIgRefNum(t);let i="",n="",l="";if(s.bShowRefnum&&s.chainid2refpdbname.hasOwnProperty(e)&&s.chainid2refpdbname[e].length>0){let t=s.showSeqCls.getSeq(e),r=s.annoIgCls.showAllRefNum(t,e);i+=r.html,n+=r.html2,l+=r.html3}$("#"+s.pre+"dt_"+"ig_"+e).html(i),$("#"+s.pre+"ov_"+"ig_"+e).html(n),$("#"+s.pre+"tt_"+"ig_"+e).html(l)}showAllRefNum(e,t){let s=this.icn3d;s.icn3dui;let i="",n="",l="",r=!1;for(let i=0,n=e.length;i0){r=!0;break}}let o=!1;for(let i=0,n=e.length;i0){o=!0;break}}let a=this.showRefNum(e,t);i+=a.html,n+=a.html2,l+=a.html3;let d=1;return r&&(a=this.showRefNum(e,t,d),i+=a.html,n+=a.html2,l+=a.html3),d=2,o&&(a=this.showRefNum(e,t,d),i+=a.html,n+=a.html2,l+=a.html3),{html:i,html2:n,html3:l}}showRefNum(e,t,s,i){let n=this.icn3d;if(n.icn3dui,n.chainid2igtrack){if(!n.chainid2igtrack[t])return{html:"",html2:"",html3:""}}let l=this.getIgAnnoHtml(t,e,i,s);return n.bShowRefnum&&(n.opts.color="ig strand",n.setColorCls.setColorByOptions(n.opts,n.chains[t])),l}setChain2igArray(e,t,s){let i,n=this.icn3d;n.icn3dui;let l={};for(let r=0,o=t.length;r0&&s!=i+1&&(a.push(i),o.push(s)),i=s;a.push(s);let d={};d.domainid=t,d.startPosArray=o,d.endPosArray=a,n.chain2igArray[e].push(d)}}getIgAnnoHtml(e,t,s,i){let n=this.icn3d,l=n.icn3dui,r="",o="",a="";n.chain2igArray||(n.chain2igArray={});let d,c,h,p=!1,m="";n.chain2igArray[e]=[],this.setChain2igArray(e,t,s);let u=n.chain2igArray[e];for(let t=0,s=u.length;t=0;--t){let s=e+"_"+n.chainsSeq[e][t].resi;if(!n.residIgLoop.hasOwnProperty(s))break;delete n.resid2refnum[s],delete n.residIgLoop[s],delete n.resid2domainid[s]}}}n.chain2igArray[e]=[],this.setChain2igArray(e,t,s);let g="";for(let l=0,r=t.length;l'+h+"":' '}else g+="";else if(1==i||2==i)if(h){let e=parseInt(h).toString(),t='style="color:'+this.getRefnumColor(m,!0)+'"';g+=parseInt(e.substr(e.length-2,2))%2==0?"'+h+"":" '}else g+="";else" "!=m?(p=n.residIgLoop[t],g+=this.getRefnumHtml(t,h,c,d,m,p,o)):g+="";else g+=""}if(l.bNode)return{html:r,html2:o,html3:a};let f="icn3d-link icn3d-blue",C="IgStRAnD Ref. No.",b=n.chain2igArray[e].length,y=[],v=[],_={};n.igLabel2Pos||(n.igLabel2Pos={}),n.igLabel2Pos[e]={};for(let t=0;t",S='
    ';s&&(S='
    ');let A='
    '+C+"
    ";if(S+='
    ',s?(S+='
    Custom Ref. No.
    ',S+=''):1==i?(S+='
    Kabat Ref. No.
    ',S+=''):2==i?(S+='
    IMGT Ref. No.
    ',S+=''):(S+=A,S+=w),a+=S+"
    ",r+=S+'',n.seqStartLen&&n.seqStartLen[e]&&(r+=n.showSeqCls.insertMulGap(n.seqStartLen[e],"-")),r+=g,n.seqStartLen&&n.seqStartLen[e]&&(r+=n.showSeqCls.insertMulGap(n.seqEndLen[e],"-")),s||(r+=w),r+="",r+="
    ",r+="
    ",r+="
    ",u=n.chain2igArray[e],0==u.length)return{html:r,html2:o,html3:a};let x=[],k=[],O=[],R=[],I=e.substr(e.lastIndexOf("_")+1);for(let e=0,t=u.length;e',n.seqStartLen&&n.seqStartLen[e]&&(o+=n.showSeqCls.insertMulGapOverview(e,n.seqStartLen[e]));for(let i=0,l=y.length;i 
    ',o+='
    '+R[r]+"
    ",t=r}o+=w,o+="",a+="",S='
    ';let i=S,l=S,d=n.annoCddSiteCls.setDomainFeature(x,e,"ig",S,i,l,void 0,k,O);r+=d.html+"
    ",o+=d.html2+"",a+=d.html3+""}return{html:r,html2:o,html3:a}}getRefnumHtml(e,t,s,i,n,l,r){let o=this.icn3d,a=o.icn3dui,d=parseInt(t).toString(),c=(d-1e3*parseInt(d/1e3)).toString(),h=parseInt(d.toString().substr(0,2)),p="5"!=c.substr(0,1)&&"18"!=h,m=this.getRefnumColor(n,!0),u=l?'style="color:'+m+'"':'style="color:'+m+'; text-decoration: underline overline;"',g=d.substr(d.length-2,2),f=parseInt(g);parseInt(d.substr(d.length-3,3));let C="";return!i||50!=f||p||l?i&&f%2==0&&52!=f&&!r?(g=isNaN(t)?g+t.substr(t.length-1,1):g,C+="'+g+""):C+=" ':(o.hAtomsRefnum=a.hashUtilsCls.unionHash(o.hAtomsRefnum,o.residues[e]),C+="'+i.substr(0,1)+""+i.substr(1)+""),C}getRefnumColor(e,t){let s=this.icn3d.icn3dui,i=e?e.substr(0,1):"";return"C"==e?"#0000FF":"C'"==e?"#6495ED":"C''"==e?"#006400":"A"==i?"#9400D3":"B"==i?"#ba55d3":"D"==i?"#00FF00":"E"==i?"#FFD700":"F"==i?"#FF8C00":"G"==i?"#FF0000":s.htmlCls.GREYB}getProtodomainColor(e){let t=this.icn3d.icn3dui,s=e?e.substr(0,1):"";return"A"==s||"D"==s?"#0000FF":"B"==s||"E"==s?"#006400":"C"==e||"F"==s?"#FFD700":"C'"==e||"G"==s?"#FF8C00":"C''"==e?"#FF0000":t.htmlCls.GREYB}}class At{constructor(e){this.icn3d=e}showCrosslink(e,t){let s=this.icn3d;s.icn3dui;let i=this;void 0===s.clbondpnts?setTimeout((function(){i.showCrosslink_base(e,t)}),1e3):this.showCrosslink_base(e,t)}showCrosslink_base(e,t){let s=this.icn3d;s.icn3dui.bNode&&(s.resid2crosslink||(s.resid2crosslink={}),s.resid2crosslink[e]||(s.resid2crosslink[e]=[]));let i=t,n={},l=i.substr(0,i.indexOf("_")),r=s.clbondpnts[l];if(void 0===r)return $("#"+s.pre+"dt_crosslink_"+e).html(""),$("#"+s.pre+"ov_crosslink_"+e).html(""),void $("#"+s.pre+"tt_crosslink_"+e).html("");for(let e=0,t=r.length;e',a=o,d=o,c=e.indexOf("_"),h=e.substr(c+1);h.length>1&&"1"==h.substr(h.length-1)&&(h=h.substr(0,h.length-1)),n=e,i=t.domains[e]?t.domains[e].domains:[];for(let t=0,c=i.length;t17?c.substr(0,17)+"...":c,p=i[t].intervals,m=[],u=[],g={},f=0;for(let t=0,s=p.length;t'+h+" ",b=''+f.toString()+" Res";d+=C+b+"
    ";let y='';o+=C+b+y,a+=C+b+y;let v="domain3d"+t.toString();l.seqStartLen&&l.seqStartLen[e]&&(o+=l.showSeqCls.insertMulGap(l.seqStartLen[e],"-"));for(let t=0,s=l.giSeq[e].length;t1&&(n=i[0]+"..");let r=s;o+=''+i+""}else o+="-"}l.seqStartLen&&l.seqStartLen[e]&&(o+=l.showSeqCls.insertMulGap(l.seqEndLen[e],"-"));let _=l.firstAtomObjCls.getFirstCalphaAtomObj(l.chains[e]),w=void 0===_.color||"FFFFFF"===_.color.getHexString()?"DDDDDD":_.color.getHexString(),S=void 0!==_.color?w:"CCCCCC";if(l.seqStartLen&&l.seqStartLen[e]&&(a+=l.showSeqCls.insertMulGapOverview(e,l.seqStartLen[e])),r.cfg.blast_rep_id!=e)for(let s=0,i=m.length;s ',a+='"}else{let s=[],i=[];for(let e=0,t=m.length;e ',a+='"}}y=' '+f.toString()+" Residues",y+="",y+="
    ",o+=y,a+=y}if(s||(o+="",a+="",d+="",$("#"+l.pre+"dt_domain_"+e).html(o),$("#"+l.pre+"ov_domain_"+e).html(a),$("#"+l.pre+"tt_domain_"+e).html(d)),s&&l.chainid2clashedResidpair){l.clashedResidHash={};for(let e in l.chainid2clashedResidpair){let t=e.split("|"),s=l.chainid2clashedResidpair[e].split("|");parseInt(s[0])0){let s={};for(let i in e.clashedResidHash)s=t.hashUtilsCls.unionHash(s,e.residues[i]);e.bHideClashed?e.hAtoms=t.hashUtilsCls.exclHash(e.hAtoms,s):e.hAtoms=t.hashUtilsCls.unionHash(e.hAtoms,s),e.dAtoms=t.hashUtilsCls.cloneHash(e.hAtoms)}}getMoreResidues(e,t,s,i){let n=this.icn3d;n.icn3dui;let l={};for(let r=1;r<100;++r){let o=t+"_"+(e+s*r).toString(),a=n.firstAtomObjCls.getFirstAtomObj(n.residues[o]);if(a){let e=!1;if("not coil"==i?e="coil"!=a.ss:"ssbegin"==i?e=a.ssbegin:"ssend"==i&&(e=a.ssend),e)break;l[o]=1}}return l}}class kt{constructor(e){this.icn3d=e}async showSnp(e,t){this.icn3d.icn3dui,await this.showSnpClinvar(e,t,!0)}async showClinvar(e,t){this.icn3d.icn3dui,await this.showSnpClinvar(e,t,!1)}async showSnpClinvar(e,t,s){let i=this.icn3d.icn3dui,n=this,l=i.htmlCls.baseUrl+"vastdyn/vastdyn.cgi?chainid="+t;try{let r=await i.getAjaxPromise(l,"jsonp"),o=r.snpgi,a=r.gi;if(s)await n.showSnpPart2(e,t,o);else{let s=o;[6137708,1942289,224510717,2624886,253723219,2554905,75765331,3660278,312207882,319443632,342350956,1827805,109157826,1065265,40889086,6730307,163931185,494469,163931091,60594093,55669745,18655489,17942684,6980537,166235465,6435586,4139398,4389047,364506122,78101667,262118402,20664221,2624640,158430173,494395,28948777,34810587,13399647,3660342,261278854,342350965,384482350,378792570,15988303,213424334,4558333,2098365,10835631,3318817,374074330,332639529,122919696,4389286,319443573,2781341,67464020,194709238,210061039,364506106,28949044,40889076,161172338,17943181,4557976,62738484,365813173,6137343,350610552,17942703,576308,223674070,15826518,1310997,93279697,4139395,255311799,157837067,361132363,357380836,146387678,383280379,1127268,299856826,13786789,1311054,46015217,3402130,381353319,30750059,218766885,340707375,27065817,355333104,2624634,62738384,241913553,304446010].includes(a)&&(s=a),await n.showClinvarPart2(e,t,s)}}catch(t){return void(s?n.processNoSnp(e):n.processNoClinvar(e))}}navClinVar(e){let t=this.icn3d;t.icn3dui;let s=this;t.currClin[e]=-1,$(document).on("click","#"+t.pre+e+"_prevclin",(function(t){let i=s.icn3d;t.stopImmediatePropagation();let n=void 0!==i.resi2disease_nonempty[e]?Object.keys(i.resi2disease_nonempty[e]).length:0;--i.currClin[e],i.currClin[e]<0&&(i.currClin[e]=n-1),s.showClinVarLabelOn3D(e)})),$(document).on("click","#"+t.pre+e+"_nextclin",(function(t){let i=s.icn3d;t.stopImmediatePropagation();let n=void 0!==i.resi2disease_nonempty[e]?Object.keys(i.resi2disease_nonempty[e]).length:0;++i.currClin[e],i.currClin[e]>n-1&&(i.currClin[e]=0),s.showClinVarLabelOn3D(e)}))}showClinVarLabelOn3D(e){let t,s,i=this.icn3d,n=i.icn3dui,l=Object.keys(i.resi2disease_nonempty[e]);t=e,s=t+"_"+(parseInt(l[i.currClin[e]])+i.baseResi[e]).toString();let r="",o=i.resi2disease_nonempty[e][l[i.currClin[e]]];for(let e=0,t=o.length;e0?o[0]:"N/A");let a=i.applyCenterCls.centerAtoms(n.hashUtilsCls.hash2Atoms(i.residues[s],i.atoms));r.length>30&&(r=r.substr(0,30)+"..."),i.selectionCls.removeSelection(),null==i.labels&&(i.labels={}),i.labels.clinvar=[];let d=i.LABELSIZE,c="black"!=i.opts.background?i.colorWhitebkgd:i.colorBlackbkgd;i.analysisCls.addLabel(r,a.center.x+1,a.center.y+1,a.center.z+1,d,c,void 0,"clinvar"),i.hAtoms={};for(let e in i.residues[s])i.hAtoms[e]=1;$("#clinvar_"+i.pre+s).addClass("icn3d-highlightSeq"),void 0===$("#"+i.pre+"modeswitch")[0]||$("#"+i.pre+"modeswitch")[0].checked||i.definedSetsCls.setMode("selection"),i.drawCls.draw()}getSnpLine(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g){let f=this.icn3d,C=f.icn3dui,b="",y=m?"clinvar":"snp",v=!1;for(let e in i){for(let t=0,s=i[e].length;t(from human)",i=" (based on human sequences and mapped to this structure by sequence similarity)"),b+=m?'":'"}else if(2==e&&m){let e=C.utilsCls.isMobile()?"none":"button";b+='
    ',b+='
    '}else b+='
    ';let _=y,w=0,S=0,A={},x={},k=f.firstAtomObjCls.getResiduesFromAtoms(f.chains[h]);for(let t in k){let i=t.split("_")[2];if(void 0!==r[i]){++w;let t="";for(let n=0,r=s[i].length;n'+O+" Res":'',u)return b+"
    ";b+='';let R="",I=0,E=0;p?f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGapOverview(h,f.seqStartLen[h])):f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGap(f.seqStartLen[h],"-"));for(let t=1,a=f.giSeq[h].length;t<=a;++t){let a=f.ParserUtilsCls.getResi(h,t-1),d=a;if(p){if(void 0!==r[d]){let e=f.giSeq[h][t-1],i=e;e.length>1&&(i=e[0]+"..");let n=a+i+">";for(let e=0,t=s[d].length;e=0&&(b+='
     
    ',b+='
     
    ',I+=r,E+=1):r>0&&(b+='
     
    ',b+='
     
    ',I+=r,E+=1)}}else if(b+=f.showSeqCls.insertGap(h,t-1,"-"),void 0!==r[d])if(m||1!=e){let r=f.giSeq[h][t-1],c=r;r.length>1&&(c=r[0]+"..");let p,u="",y="
    ",v=s[d].length,w=0,S=0;if(2==e&&(w=0,S=v),m){p=1;let t=0;for(let e=w;e0?w+="; ":0!==e&&1!==e||(R='disease="'+b[t]+'"'),w+=b[t],""!=_[t]&&(w+="("+_[t]+")"),++S;t"+s[d][e],y+=": "+w,g&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(r,"snpin3d","3D with scap","SNP in 3D with scap",70,m)+"  ",y+=f.showAnnoCls.addSnpButton(r,"snpinter","Interactions","SNP Interactions in 3D",70,m)+"  ",y+=f.showAnnoCls.addSnpButton(r,"snppdb","PDB","Download SNP PDB",35,m)),y+="
    Links: ClinVar",0!=i[d][e]&&(y+=", dbSNP(rs"+i[d][e]+")"),e
    "),++t}t>p&&2==e&&(u+="..")}else{p=1;for(let e=w;e"+s[d][e],g)m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),0!=i[d][e]&&(y+="
    Link: dbSNP(rs"+i[d][e]+")"),e
    ");else{let s=l[d][e].split("; "),a=o[d][e].split("; "),c="",h=0;for(let t=0,i=s.length;t0?c+="; ":0!==e&&1!==e||(R='disease="'+s[t]+'"'),c+=s[t],""!=a[t]&&(c+="("+a[t]+")"),++h;""!=c?(y+=": "+c,m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),y+="
    Links: ClinVar, dbSNP(rs"+i[d][e]+")"):(m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),y+="
    Link: dbSNP(rs"+i[d][e]+")"),e
    ")}}v>p&&2==e&&(u+="..")}y+="
    ",b+=m?1==e?"":""==u||" "==u?"-":''+u+"":""==u||" "==u?"-":g?''+u+"":''+u+""}else b+="";else b+="-"}return p||f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGap(f.seqEndLen[h],"-")),b+=1==e?' '+O+" Residues":'',b+="
    ",b+="
    ",b}processSnpClinvar(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui,o='
    ',a=o,d=o,c='
    ',h=c,p=c,m=!i||n?e.data:e.split("\n"),u={},g={},f={};void 0===l.resi2disease_nonempty[t]&&(l.resi2disease_nonempty[t]={});let C={},b={},y={},v={},_={},w="";r.bNode&&(i?(l.resid2snp||(l.resid2snp={}),l.resid2snp[t]||(l.resid2snp[t]=[])):(l.resid2clinvar||(l.resid2clinvar={}),l.resid2clinvar[t]||(l.resid2clinvar[t]=[])));let S={};for(let e=0,s=m.length;e5&&(d=parseInt(s[5])):s.length>8&&(d=parseInt(s[8])),o==w)continue;w=o;let c=o.indexOf(">"),h=o.substr(0,c-1),p=Math.round(h),A=d?p:l.ParserUtilsCls.getResi(t,p-1),x=A+o.substr(c-1);if(S.hasOwnProperty(x))continue;S[x]=1;let k=o.substr(c-1,1),O=l.firstAtomObjCls.getFirstAtomObj(l.residues[t+"_"+A]),R=O?r.utilsCls.residueName2Abbr(O.resn.substr(0,3)):"";if(d||(R=l.chainsSeq[t][p-1].name),k!=R)continue;if(r.bNode){let e={};e[t+"_"+A]=x,i?l.resid2snp[t].push(e):l.resid2clinvar[t].push(e)}let I=x.substr(x.indexOf(">")+1),E=i?"":s[5],T=i?"":s[6],P=i?"":s[7];v[A]=1,""!=T&&(_[A]=1),g[A]=e+1,void 0===u[A]&&(u[A]=[]),u[A].push(I),void 0===b[A]&&(b[A]=[]),b[A].push(a),void 0===y[A]&&(y[A]=[]),y[A].push(E),void 0===f[A]&&(f[A]=[]),f[A].push(T),""!=T&&(void 0===l.resi2disease_nonempty[t][A]&&(l.resi2disease_nonempty[t][A]=[]),l.resi2disease_nonempty[t][A].push(T)),void 0===C[A]&&(C[A]=[]),C[A].push(P)}let A=Object.keys(v),x=Object.keys(_);if(i){let e=!1;o+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,void 0,i),o+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,void 0,i),d+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,!0,i),d+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,!0,i),a+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!0,e,void 0,i),o+="
    ",a+="
    ",d+="",$("#"+l.pre+"dt_snp_"+t).html(o),$("#"+l.pre+"ov_snp_"+t).html(a),$("#"+l.pre+"tt_snp_"+t).html(d)}else{let e=!0;c+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,void 0,i),c+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,void 0,i),p+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,!0,i),p+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,!0,i),h+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!0,e,void 0,i),c+="",h+="",p+="",$("#"+l.pre+"dt_clinvar_"+t).html(c),$("#"+l.pre+"ov_clinvar_"+t).html(h),$("#"+l.pre+"tt_clinvar_"+t).html(p),this.navClinVar(t,s)}l.showAnnoCls.enableHlSeq(),i?l.bAjaxSnp=!0:l.bAjaxClinvar=!0}async showClinvarPart2(e,t,s){let i=this.icn3d,n=i.icn3dui,l=this;i.chainid2uniport||await this.getUniprotForAllStructures();let r=n.htmlCls.baseUrl+"vastdyn/vastdyn.cgi?chainid_clinvar="+t+"&uniprot="+i.chainid2uniport[t];i.chainsGene[e]&&i.chainsGene[e].geneSymbol&&(r+="&gene="+i.chainsGene[e].geneSymbol);try{let s=await n.getAjaxPromise(r,"jsonp");if(s&&s.data&&s.data.length>0){let i=!1,n=s;l.processSnpClinvar(n,e,t,i)}else l.processNoClinvar(e)}catch(t){return void l.processNoClinvar(e)}}async getUniprotForAllStructures(){let e=this.icn3d,t=e.icn3dui;e.chainid2uniport={};for(let s in e.structures)if(s.length>5){let t=e.structures[s];for(let i=0,n=t.length;i0){let s=!0,n=!0;l.processSnpClinvar(i,e,t,s,n)}else l.processNoSnp(e)}catch(t){return void l.processNoSnp(e)}}else this.processNoSnp(e),console.log("No gi was found for the chain "+t+"...")}processNoClinvar(e){let t=this.icn3d;t.icn3dui,console.log("No ClinVar data were found for the protein "+e+"..."),$("#"+t.pre+"dt_clinvar_"+e).html(""),$("#"+t.pre+"ov_clinvar_"+e).html(""),t.showAnnoCls.enableHlSeq(),t.bAjaxClinvar=!0}processNoSnp(e){let t=this.icn3d;t.icn3dui,console.log("No SNP data were found for the protein "+e+"..."),$("#"+t.pre+"dt_snp_"+e).html(""),$("#"+t.pre+"ov_snp_"+e).html(""),t.showAnnoCls.enableHlSeq(),t.bAjaxSnp=!0}}class Ot{constructor(e){this.icn3d=e}showSsbond(e,t){let s=this.icn3d;s.icn3dui;let i=this;void 0===s.ssbondpnts?setTimeout((function(){i.showSsbond_base(e,t)}),1e3):this.showSsbond_base(e,t)}showSsbond_base(e,t){let s=this.icn3d;s.icn3dui.bNode&&(s.resid2ssbond||(s.resid2ssbond={}),s.resid2ssbond[e]||(s.resid2ssbond[e]=[]));let i=t,n={},l=i.substr(0,i.indexOf("_")),r=s.ssbondpnts[l];if(void 0===r)return $("#"+s.pre+"dt_ssbond_"+e).html(""),$("#"+s.pre+"ov_ssbond_"+e).html(""),void $("#"+s.pre+"tt_ssbond_"+e).html("");for(let e=0,t=r.length;e-s.halfBilayerSize){i[t.structure+"_"+t.chain+"_"+t.resi]=1}}let n=Object.keys(i);s.annoCddSiteCls.showAnnoType(e,t,"transmem","Transmembrane",n)}}class It{constructor(e){this.icn3d=e,this.init3ddomain()}init3ddomain(){this.icn3d.icn3dui,this.dcut=8,this.min_contacts=2,this.MAX_SSE=512,this.ctc_cnt=[];for(let e=0;e=this.curr_ratio+.01||f>this.split_ratio)return e;if(f>this.curr_ratio-.01&&Math.min(m,u)=0&&l[i]==t-e+i;i--);if(i<0)break;for(l[i]++,s=i+1;s-1;i++);for(l=Math.min(i-1,this.max_csz),this.curr_ne0=this.curr_ne1=0,this.curr_ratio=100,s=1;s<=l;s++)this.cut_size(s,i);if(this.top--,0==this.curr_ne0){for(n=this.stack[this.top],e=n;e-1;e++)this.parts[this.np++]=this.elements[e];this.parts[this.np++]=-1,this.n_doms++}else{if(this.save_ratios[this.saved++]=this.curr_ratio,this.curr_ne0>this.min_sse){for(n=this.stack[this.top],e=0;ethis.min_sse){for(n=this.stack[this.top],e=0;e0;)this.process_set()}output(e){let t,s;this.icn3d.icn3dui;let i=[];for(t=0;t<2*e;t++)i.push(0);for(t=s=0;st+n)break;let p=(t-a)*(t-a);p+=(s-c)*(s-c),p+=(i-h)*(i-h);let m=Math.sqrt(p);if(m>n)continue;let u={},g={};parseInt(e.rnum)this.MAX_SSE)return o=this.standardizeSubstruct(p,o,u),{subdomains:a,substruct:o};let f=h.length,C=f,b=this.c2b_AlphaContacts(f,i,n,l,t,r),y=[];for(let e=0;e=this.min_contacts&&(k[s]||(k[s]={}),k[i]||(k[i]={}),k[s][i]=1,k[i][s]=1)}let O=0,R={};this.groupnum2sheet={},this.visited={};for(let e in k)this.visited[e]=!1;for(let e in k)0==this.visited[e]&&(O++,this.countUtil(e,k,O));for(let e in this.groupnum2sheet){let t=this.groupnum2sheet[e].sort((function(e,t){return e-t}));for(let e=0,s=t.length;e0&&this.elt_size[s.sse-1]>=6&&0!=s.adj_strand2&&e++}for(let e=0;e0)for(let e=0;e0){let e=0;for(let t=0;t<=T;t++){let t=[];for(;e<2*g;){let s=this.parts[e++];if(0==s){P.push(t);break}t.push(s)}}}P.sort((function(e,t){return e[0]-t[0]}));let D=[];for(let e=0,t=P.length;e=this.min_sse&&D.push(P[e])}if(P=D,0==P.length){let e={},t={},s=0;for(let i=0,n=this.group_num.length;i=3&&(s=n)):e[n]=1)}if(0!=s){let e=[s].concat(t[s]);P.push(e)}}for(let e=0,t=P.length;e=o.length)return o=this.standardizeSubstruct(p,o,u),{subdomains:a,substruct:o};let n=o[i],l=n.From,r=n.To;for(let e=l;e<=r;e++)s[e]=1;if(0==i&&l>1)for(let e=1;e0){let e=o[i-1].To,t=parseInt(.5*(l-e-1));if(t>0)for(let e=l-t;e<=l-1;e++)s[e]=1}if(i0)for(let e=r+1;e<=r+t;e++)s[e]=1}}let i,n=!1,l=[];for(let e=0;ec&&(c=p),i.ssend&&(o.To=e+1,o.x2=i.coord.x,o.y2=i.coord.y,o.z2=i.coord.z,o.Sheet="sheet"==i.ss,r.push(o),o={}),i.ssbegin&&(o.From=e+1,o.x1=i.coord.x,o.y1=i.coord.y,o.z1=i.coord.z)}r=this.standardizeSubstruct(l,r,a);let h='{"data": [';h+='{"ss": [';let p=0;for(let e=0,s=r.length;e0&&(h+=", "),h+="["+s+","+i+","+n+","+r[e].x1.toFixed(2)+","+r[e].y1.toFixed(2)+",",h+=r[e].z1.toFixed(2)+","+r[e].x2.toFixed(2)+","+r[e].y2.toFixed(2)+","+r[e].z2.toFixed(2)+"]",++p)}h+="]",h+=', "domain": [';let m=0;for(let e=d;e<=c;++e){let n=l+"_"+e,r=t.ncbi2resid[n];r.split("_")[2];let o=e;if(m>0&&(h+=", "),i.hasOwnProperty(r)){let e=t.firstAtomObjCls.getFirstCalphaAtomObj(t.residues[r]);h+="["+o+","+(s.parasCls.resn2restype[e.resn]?s.parasCls.resn2restype[e.resn]:0)+","+e.coord.x.toFixed(2)+","+e.coord.y.toFixed(2)+","+e.coord.z.toFixed(2)+"]"}else h+="["+o+",0,0,0,0]";++m}return h+="]}",h+="]}",h}}class Et{constructor(e){this.icn3d=e}clickAddTrackButton(){let e=this.icn3d,t=e.icn3dui,s=this;t.myEventCls.onIds("#"+e.pre+"addtrack_button1","click",(async function(e){let i=s.icn3d;e.stopImmediatePropagation(),dialog.dialog("close");let n=$("#"+i.pre+"track_chainid").val(),l=$("#"+i.pre+"track_gi").val(),r=isNaN(l)?"Acc "+l:"gi "+l,o=t.htmlCls.baseUrl+"pwaln/pwaln.fcgi?from=track",a={targets:n,queries:l},d=await t.getAjaxPostPromise(o,a);s.alignSequenceToStructure(n,d,r)})),t.myEventCls.onIds("#"+e.pre+"addtrack_button2","click",(async function(e){let i=s.icn3d;e.stopImmediatePropagation(),dialog.dialog("close");let n=$("#"+i.pre+"track_chainid").val(),l=$("#"+i.pre+"track_fasta").val(),r=$("#"+i.pre+"fasta_title").val(),o=n.substr(0,n.indexOf("_")),a=n;if(5==o.length)a=a.substr(0,4);else if(o.length>5){a="";for(let e=0,t=i.chainsSeq[n].length;e8||d.length<6)&&(a=!1),d.length<9&&(o=!1),d[0];let c,h,p=d[1],m=d[2],u=d[3];d.length,d.length>5&&(c=d[5]),d.length,d.length,d.length>8&&(h=d[8]),d.length,d.length,d.length;let g=u,f="51,51,51";o?f=h:a&&("+"==c&&l.length>0?f=l[0]:"-"==c&&l.length>1?f=l[1]:"."==c&&l.length>2&&(f=l[2]));let C="",b=[];for(let e=0,t=m;e1&&(s=t[0]);let l=i.ParserUtilsCls.getResi(n,e);if(a.hasOwnProperty(n+"_"+l)){let e=i.firstAtomObjCls.getFirstCalphaAtomObj(i.residues[n+"_"+l]),t=void 0===e.color||"FFFFFF"===e.color.getHexString().toUpperCase()?"DDDDDD":e.color.getHexString(),o=void 0!==e.color?t:"CCCCCC";r+=s,d.push("#"+o)}else r+="-",d.push("")}s.showNewTrack(n,l,r,d,void 0,"selection",void 0),t.htmlCls.clickMenuCls.setLogCmd("add track | chainid "+n+" | title "+l+" | text "+s.simplifyText(r)+" | type selection",!0)}))}showNewTrack(e,t,s,i,n,l,r,o,a,d,c,h,p){let m=this.icn3d,u=m.icn3dui,g=!1;"cannot be aligned"==s&&(g=!0);let f=s.replace(/-/g,"").length;if(!o)if(s.length>m.giSeq[e].length)s=s.substr(0,m.giSeq[e].length);else if(s.length20&&(C=C.substr(0,20));let b=u.htmlCls.RESIDUE_WIDTH*s.length+200;$("#"+m.pre+"dt_custom_"+e).append("
    "),$("#"+m.pre+"dt_custom_"+e+"_"+C).width(b),$("#"+m.pre+"ov_custom_"+e).append("
    "),$("#"+m.pre+"ov_custom_"+e+"_"+C).width(b),$("#"+m.pre+"tt_custom_"+e).append("
    "),$("#"+m.pre+"tt_custom_"+e+"_"+C).width(b);let y='
    ',v=y,_=y,w=y,S=y,A=parseInt(10*Math.random()),x='",k='
    Exons
    ',O=''+f.toString()+" Pos";w+=x+O+"
    ",S+=k+O+"
    ";let R='';y+=x+O+R,v+=k+O+R,_+=x+O+R;let I=e.indexOf("_"),E="cst"+e.substr(I+1),T=0,P=0,D=(void 0===l||"seq"===l||"custom"===l)&&-1==s.indexOf("cannot-be-aligned")&&-1==s.indexOf("cannot be aligned"),M="identity"===l&&-1==s.indexOf("cannot-be-aligned")&&-1==s.indexOf("cannot be aligned"),F={},H=0;x="";let L={},N={},q={},U=0;if(h)for(let e=0,t=h.length;e"+d+"",h){let t='style="background-color:'+L[U]+'"';v+=' ";for(let t in m.residues[e+"_"+g]){let e=m.atoms[t];e.color=u.parasCls.thr(L[U]),m.atomPrevColors[t]=e.color}}x+=m.showSeqCls.insertGapOverview(e,t);let f=Math.round(m.seqAnnWidth*t/(m.maxAnnoLength+m.nTotalGap)-T-P);f<0&&(f=0),x+='
     
    ',s=void 0!==i&&""!=i[t]?i[t]:r?"rgb("+r+")":D?"#"+c:"#333",x+='
     
    ',T+=f,P+=1,++U}else g?y+=""+d+"":(y+="-",v+="")}if(void 0!==a){x="";let s=[],i=[],n=[];for(let e=0,t=a.length;e 
    ',h){let t,s,i=n[r];l=d[r]-a[r]+1;let o,c,p,m=g,u=g+l-1;g+=l;for(let e=0,i=h.length;e=i&&m<=n&&(t={exonIndex:e,rangeStart:i,rangeEnd:n,from:m,genomeRange:h[e].genomeRange}),u>=i&&u<=n&&(s={exonIndex:e,rangeStart:i,rangeEnd:n,to:u,genomeRange:h[e].genomeRange})}if(t&&s&&t.exonIndex==s.exonIndex)o=this.getExonColor(t.rangeStart,t.rangeEnd,m),c=this.getExonColor(t.rangeStart,t.rangeEnd,u),p=o+" 0%, #FFF 50%, "+c+" 100%",x+=this.getExonHtml(t.exonIndex,p,t.from,s.to,t.genomeRange,e,C,i);else if(t&&(o=this.getExonColor(t.rangeStart,t.rangeEnd,m),p=o+" 0%, #FFF 50%, #00F 100%",x+=this.getExonHtml(t.exonIndex,p,t.from,t.rangeEnd,t.genomeRange,e,C,i)),t&&s){for(let n=t.exonIndex+1;n'+t+""}}R=''+f.toString()+" Pos",R+="",R+="
    ",R+="",y+=R,_+=x+R,v+=R,w+="",S+="",h?($("#"+m.pre+"dt_custom_"+e+"_"+C).html(v+y),$("#"+m.pre+"ov_custom_"+e+"_"+C).html(_),$("#"+m.pre+"tt_custom_"+e+"_"+C).html(S+w)):($("#"+m.pre+"dt_custom_"+e+"_"+C).html(y),$("#"+m.pre+"ov_custom_"+e+"_"+C).html(_),$("#"+m.pre+"tt_custom_"+e+"_"+C).html(w))}getExonHtml(e,t,s,i,n,l,r,o){let a=this.icn3d;return a.icn3dui,''}getExonColor(e,t,s){this.icn3d.icn3dui;let i=.5*(e+t);if(s1e-200&&(h=parseFloat(h).toExponential()),n.scores.bit_score;let p=t.targets[l].seqdata,m=i.seqdata,u=n.segs;for(let e=0,t=u.length;e0&&(l=n+"H"+d.toString().padStart(2,"0")+")","coil"==t&&(s.selectionCls.selectResidueList(r,l,l,o,a),o||(o=!0)),r={})),n=e+"_H"+d.toString().padStart(2,"0"),r[p]=1,i.ssend&&(h=e+"_C(H"+d.toString().padStart(2,"0"),"helix"==t&&(s.selectionCls.selectResidueList(r,n,n,o,a),o||(o=!0)),r={})):"E"==m?(i.ssbegin&&(++c,Object.keys(r).length>0&&(l=n+"S"+c.toString().padStart(2,"0")+")","coil"==t&&(s.selectionCls.selectResidueList(r,l,l,o,a),o||(o=!0)),r={})),n=e+"_S"+c.toString().padStart(2,"0"),r[p]=1,i.ssend&&(h=e+"_C(S"+c.toString().padStart(2,"0"),"sheet"==t&&(s.selectionCls.selectResidueList(r,n,n,o,a),o||(o=!0)),r={})):(n=h+"-",r[p]=1)}}Object.keys(r).length>0&&(l=n+"Cterm)","coil"==t&&s.selectionCls.selectResidueList(r,l,l,o,a))}defineIgstrand(e,t){let s=this.icn3d,i=s.icn3dui;$("#"+s.pre+"dl_definedsets").hasClass("ui-dialog-content")&&$("#"+s.pre+"dl_definedsets").dialog("isOpen")||(i.htmlCls.dialogCls.openDlg("dl_definedsets","Select sets"),$("#"+s.pre+"atomsCustom").resizable());let n={},l=!1,r=!0;if(s.hAtoms={},"igdomain"==t){let t=s.chain2igArray[e];if(t&&t.length>0)for(let i=0,o=t.length;i1e3&&"50"==C.substr(C.length-2,2)&&(n[y]=1):(d=s.residIgLoop.hasOwnProperty(y)?"igloop":"igstrand",u&&d!=c&&Object.keys(n).length>0&&("igstrand"==c?(++h,i="Strand-"+a+"-"+e+"-"+h.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igstrand"==t&&(s.selectionCls.selectResidueList(n,i,i,l,r),l||(l=!0)),m=a):"igloop"==c&&(++p,i="Loop-"+m+"_"+o+"-"+e+"-"+p.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igloop"==t&&(s.selectionCls.selectResidueList(n,i,i,l,r),l||(l=!0))),n={}),n[y]=1,a=o,c=d,u=!0)))}"iganchor"==t?(i="Anchor-"+e,s.selectionCls.selectResidueList(n,i,i,l,r)):"igstrand"==c?(++h,i="Strand-"+a+"-"+e+"-"+h.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igstrand"==t&&s.selectionCls.selectResidueList(n,i,i,l,r)):"igloop"==c&&(++p,o="CT",i="Loop-"+m+"_"+o+"-"+e+"-"+p.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igloop"==t&&s.selectionCls.selectResidueList(n,i,i,l,r))}}simplifyText(e){this.icn3d.icn3dui;let t,s,i="",n=!1,l=-1;for(t=0,s=(e=e.replace(/undefined/g," ")).length;t20)return!1;if(void 0!==o.giSeq&&void 0!==o.giSeq[e]){let r=this.getFullText(s);return s=r.text,this.showNewTrack(e,t,s,void 0,void 0,i,n,l),!1}setTimeout((function(){a.checkGiSeq(e,t,s,i,n,l,r+1)}),100)}getFullText(e){this.icn3d.icn3dui;let t="",s=[],i=[],n=e.split(","),l=-1;for(let e=0,r=n.length;ep?t+=c.substr(0,p):t+=c;for(let e=0;ed&&(d=t.length,c=h),++h}o=n.htmlCls.baseUrl+"pwaln/pwaln.fcgi?from=msa";let p=e.split(","),m={};m[t]=0;for(let e=0,t=p.length;e0&&(g+=","+p.join(","));let f={targets:u,queries:g},C=await n.getAjaxPostPromise(o,f);if(!C.data)return void console.log("The protein accessions "+u+","+g+" can not be aligned...");let b=[];i.qt_start_end={};let y=[],v=[],_=Object.keys(C.targets)[0],w=C.targets[_].seqdata;p.splice(0,0,t);for(let e=0,s=p.length;eA&&(A=e)}let x=S,k=w.length-(A+1),O=[],R=[];for(let e=0,t=p.length;ea&&(a=t.length,d=c),++c}s.qt_start_end={};let m="genomeRes",u={};for(let e=0,i=h.length;ef&&(f=e)}for(let e=0,t=h.length;e0&&(d=h,o.targetGapHash[a+o.startposGiSeq]={from:a+o.startposGiSeq,to:d+m-1+o.startposGiSeq}),c=t[s],h=p,"-"!=t[s]?(++p,f=s,o.seqEndLen[e]=C-1-f,u||(g=s,o.seqStartLen[e]=g,u=!0)):++m;o.maxAnnoLength0&&(b+=" "),b+=e+"_"+o.targetGapHash[e].from+"_"+o.targetGapHash[e].to,++y;let v={};for(let a=0,d=i.length;a=o.seqStartLen[e]&&("-"==t[s]&&b--,"-"==h&&b++),c+=h,"-"!=t[s]&&(t[s]==i[a][s]&&++v[d],++d),p=h;"-"!=p&&u.push(C-1);let _=s[a].length<20?s[a]:s[a].substr(0,20)+"...",w=!0,S=r?r[s[a]]:void 0;this.showNewTrack(e,_,c,void 0,void 0,l,void 0,w,m,u,f,S,y)}o.opts.color="exon",o.legendTableCls.showColorLegend(o.opts.color),o.hlUpdateCls.updateHlAll(),o.drawCls.draw()}processAccList(e){this.icn3d.icn3dui;let t=e.split(","),s={},i="";for(let e=0,n=t.length;e5?(l.uniprot2acc&&l.uniprot2acc[y]&&(y=l.uniprot2acc[y]),f=y):f=e,y.length>5){let e="";for(let t=0,s=l.chainsSeq.length;t"),d=a[1].indexOf("\n");n=a[1].substr(d+1).replace(/\n/g,"");for(let e=2,t=a.length;e0&&($("#"+e.pre+"anno_cdd")[0].checked?(this.setAnnoTabCdd(),t.htmlCls.clickMenuCls.setLogCmd("set annotation cdd",!0)):(this.hideAnnoTabCdd(),t.htmlCls.clickMenuCls.setLogCmd("hide annotation cdd",!0)))}showAnnoSelectedChains(){let e=this.icn3d,t=e.icn3dui,s={};for(let t in e.hAtoms){let i=e.atoms[t];s[i.structure+"_"+i.chain]=1}$("#"+e.pre+"dl_annotations > .icn3d-annotation").hide();for(let i in s){$("#"+e.pre+"anno_"+i).length&&$("#"+e.pre+"anno_"+i).show();let s=e.firstAtomObjCls.getFirstCalphaAtomObj(e.chains[i]);if(s&&void 0!==s.resn){let i=t.utilsCls.residueName2Abbr(s.resn.substr(0,3));$("#"+e.pre+"anno_"+i).show()}}}showAnnoAllChains(){let e=this.icn3d;e.icn3dui,$("#"+e.pre+"dl_annotations > .icn3d-annotation").show()}setAnnoView(e){let t=this.icn3d;t.icn3dui.bNode||("detailed view"===e?(t.view="detailed view",$("#"+t.pre+"dl_anno_view_tabs").tabs("option","active",1)):(t.view="overview",$("#"+t.pre+"dl_anno_view_tabs").tabs("option","active",0)))}setAnnoDisplay(e,t){let s=this.icn3d;s.icn3dui;let i=["giseq","custom","site","ptm","snp","clinvar","cdd","domain","interaction","ssbond","crosslink","transmem","ig"];for(let n in i){let l=i[n];$("[id^="+s.pre+t+"_"+l+"]").attr("style",e)}}showFixedTitle(){this.icn3d.icn3dui;this.setAnnoDisplay("display:block;","tt")}hideFixedTitle(){this.icn3d.icn3dui;this.setAnnoDisplay("display:none!important;","tt")}setAnnoViewAndDisplay(e){let t=this.icn3d;if(t.icn3dui,"detailed view"===e){this.setAnnoView("detailed view");let e="display:block;";this.setAnnoDisplay(e,"dt"),$("#"+t.pre+"seqguide_wrapper").attr("style",e),e="display:none;",this.setAnnoDisplay(e,"ov")}else{this.setAnnoView("overview"),this.hideFixedTitle();let e="display:none;";this.setAnnoDisplay(e,"dt"),$("#"+t.pre+"seqguide_wrapper").attr("style",e),e="display:block;",this.setAnnoDisplay(e,"ov")}}async updateClinvar(){let e=this.icn3d;if(e.icn3dui,void 0===e.bClinvarShown||!e.bClinvarShown)for(let t in e.protein_chainid){let s=e.protein_chainid[t];await e.annoSnpClinVarCls.showClinvar(t,s)}e.bClinvarShown=!0}async updateSnp(){let e=this.icn3d;if(e.icn3dui,void 0===e.bSnpShown||!e.bSnpShown)for(let t in e.protein_chainid){let s=e.protein_chainid[t];await e.annoSnpClinVarCls.showSnp(t,s)}e.bSnpShown=!0}updateDomain(){let e=this.icn3d;e.icn3dui,void 0!==e.bDomainShown&&e.bDomainShown||e.annoDomainCls.showDomainAll(),e.bDomainShown=!0}updateInteraction(){let e=this.icn3d;if(e.icn3dui,void 0===e.bInteractionShown||!e.bInteractionShown)for(let t in e.interactChainbase){let s=e.interactChainbase[t];e.annoContactCls.showInteraction(t,s)}e.bInteractionShown=!0}async updatePTM(){let e=this.icn3d;if(e.icn3dui,void 0===e.bPTMShown||!e.bPTMShown)for(let t in e.PTMChainbase){let s=e.PTMChainbase[t];await e.annoPTMCls.showPTM(t,s,"ptm")}e.bPTMShown=!0}updateSsbond(){let e=this.icn3d;if(e.icn3dui,void 0===e.bSSbondShown||!e.bSSbondShown)for(let t in e.ssbondChainbase){let s=e.ssbondChainbase[t];e.annoSsbondCls.showSsbond(t,s)}e.bSSbondShown=!0}updateCrosslink(){let e=this.icn3d;if(e.icn3dui,void 0===e.bCrosslinkShown||!e.bCrosslinkShown)for(let t in e.crosslinkChainbase){let s=e.crosslinkChainbase[t];e.annoCrossLinkCls.showCrosslink(t,s)}e.bCrosslinkShown=!0}async updateTransmem(){let e=this.icn3d,t=e.icn3dui;if(void 0===e.bTranememShown||!e.bTranememShown)for(let s in e.protein_chainid){let i=e.protein_chainid[s];if(void 0!==t.cfg.opmid)e.annoTransMemCls.showTransmem(s,i);else if(e.bAfMem&&e.afmem_start_end){let t=e.afmem_start_end[0],n=e.afmem_start_end[1];await e.annoPTMCls.showPTM(s,i,"afmem",t,n)}else await e.annoPTMCls.showPTM(s,i,"transmem")}e.bTranememShown=!0}async updateIg(e,t){let s=this.icn3d,i=s.icn3dui;if(s.opts.color="ig strand",!e){s.hAtoms={};for(let e in s.protein_chainid)s.hAtoms=i.hashUtilsCls.unionHash(s.hAtoms,s.chains[e])}let n=s.firstAtomObjCls.getResiduesFromAtoms(s.hAtoms);for(let e in n)s.resid2refnum&&delete s.resid2refnum[e],s.residIgLoop&&delete s.residIgLoop[e],s.resid2domainid&&delete s.resid2domainid[e];s.bRunRefnumAgain=!0;let l=e?s.firstAtomObjCls.getChainsFromAtoms(s.hAtoms):s.protein_chainid;for(let e in l)await s.annoIgCls.showIg(e,t),s.bRunRefnumAgain=!1;s.bShowRefnum&&(s.hlUpdateCls.updateHlAll(),s.drawCls.draw())}}class Pt{constructor(e){this.icn3d=e}showAnnotations_part1(e){let t=this.icn3d,s=t.icn3dui;if(s.htmlCls.dialogCls.openDlg("dl_selectannotations","Sequences and Annotations"),(void 0===t.bAssemblyNote||!t.bAssemblyNote)&&void 0!==t.asuCnt){let e="
    Assembly Tips: Only the asymmetric unit is shown in the sequence window.
    Click \"Assembly\" in the menu \"View\" to switch between asymmetric unit and biological assembly("+t.asuCnt+" asymmetric unit).
    ";$("#"+t.pre+"dl_annotations_tabs").append(e),t.bAssemblyNote=!0}t.bResetAnno&&(t.giSeq={},t.currClin={},t.resi2disease_nonempty={},t.baseResi={},t.matchedPos={},$("#"+s.pre+"dl_annotations").empty(),t.annotationCls.setAnnoView("overview"));let i={},n={},l={};if(void 0===t.bAnnoShown||!t.bAnnoShown||t.bResetAnno){t.protein_chainid={};let r,o=Object.keys(t.chains);if(e){let s=t.resid2specCls.atoms2structureArray(e);o=[];for(let e=0,i=s.length;e1&&"1"==d.substr(d.length-1)?(d=d.substr(0,d.length-1),a=o[e].substr(0,o[e].indexOf("_"))+"_"+d):a=o[e],t.proteins.hasOwnProperty(r.serial)&&t.chainsSeq[o[e]].length>1)t.protein_chainid[o[e]]=a;else if(t.nucleotides.hasOwnProperty(r.serial)&&t.chainsSeq[o[e]].length>1)i[o[e]]=a;else if(t.chainsSeq[o[e]].length>1)n[o[e]]=a;else{let s=t.chainsSeq[o[e]][0].name,i=o[e]+"_"+t.chainsSeq[o[e]][0].resi;void 0===l[s]&&(l[s]=[]),l[s].push(i)}if((void 0!==s.cfg.pdbid||void 0!==s.cfg.opmid||void 0!==s.cfg.mmcifid||void 0!==s.cfg.mmtfid)&&(t.proteins.hasOwnProperty(r.serial)||t.nucleotides.hasOwnProperty(r.serial)))for(let s=0,i=t.chainsSeq[o[e]].length;st.maxAnnoLengthOri&&(t.protein_chainid.hasOwnProperty(e)||i.hasOwnProperty(e))&&(t.maxAnnoLengthOri=t.chainsSeq[e].length);t.maxAnnoLength=t.maxAnnoLengthOri}return{nucleotide_chainid:i,chemical_chainid:n,chemical_set:l}}async showAnnotations(e){let t=this.icn3d,s=t.icn3dui,i=this,n=this.showAnnotations_part1(e),l=n.nucleotide_chainid,r=n.chemical_chainid,o=n.chemical_set;if(!t.bAnnoShown||t.bResetAnno)if(t.bAnnoShown=!0,void 0===s.cfg.blast_rep_id){if(t.bFullUi){if(void 0!==s.cfg.mmtfid){let e=Object.keys(t.structures)[0];await t.mmcifParserCls.downloadMmcifSymmetry(e,"mmtfid")}await this.showAnnoSeqData(l,r,o)}}else if(void 0===s.cfg.blast_rep_id||t.bSmithwm||t.bLocalSmithwm){if(void 0!==s.cfg.blast_rep_id&&(t.bSmithwm||t.bLocalSmithwm)){let e,n,a=[s.cfg.blast_rep_id];if(-1!=s.cfg.query_id.indexOf(">")?n=s.cfg.query_id.substr(s.cfg.query_id.indexOf("\n")+1):!/\d/.test(s.cfg.query_id)||s.cfg.query_id.length>50?n=s.cfg.query_id:a.push(s.cfg.query_id),t.blastAcxn){let i=s.cfg.afid+"_A",n="";for(let e=0,s=t.chainsSeq[i].length;e5){let n;e.uniprot2acc&&e.uniprot2acc[i]?e.uniprot2acc[i]:e.uniprot2acc={},n="https://rest.uniprot.org/uniprotkb/search?format=json&fields=xref_geneid,gene_names&query="+i;let l=await t.getAjaxPromise(n,"json"),r=l.results[0]&&l.results[0].uniProtKBCrossReferences&&l.results[0].uniProtKBCrossReferences[0]?l.results[0].uniProtKBCrossReferences[0].id:void 0,o=l.results[0]&&l.results[0].genes&&l.results[0].genes[0]&&l.results[0].genes[0].geneName?l.results[0].genes[0].geneName.value:"ID "+r;e.chainsGene[s]={geneId:r,geneSymbol:o}}}for(let s in e.protein_chainid){let i=t.utilsCls.isMobile()?"none":"button",l=e.showSeqCls.getProteinName(s),r=l,o=0==n?"Proteins:

    ":"",a=e.chainsGene[s]&&e.chainsGene[s].geneId&&e.chainsGene[s].geneDesc?"(Gene: "+e.chainsGene[s].geneSymbol+")":"",d=s.substr(0,s.indexOf("_")),c=d.length>5?''+s+"":s,h="
    "+o+"Annotations of "+c+": "+r+""+a+"   "+this.addButton(s,"icn3d-addtrack","Add Track","Add a custom track",60,i)+"   ";h+=this.addButton(s,"icn3d-customcolor","Custom Color/Tube","Use a custom file to define the colors or tubes in 3D structure",110,i)+"   ",h+=this.addButton(s,"icn3d-helixsets","Helix Sets",'Define sets for each helix in this chain and add them to the menu of "Defined Sets"',60,i)+" "+this.addButton(s,"icn3d-sheetsets","Sheet Sets",'Define sets for each sheet in this chain and add them to the menu of "Defined Sets"',60,i)+" "+this.addButton(s,"icn3d-coilsets","Coil Sets",'Define sets for each coil in this chain and add them to the menu of "Defined Sets"',60,i),h+="   "+this.addButton(s,"icn3d-iganchorsets","Ig Anchor Set",'Define the set for all Ig anchors in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igstrandsets","Ig Strand Sets",'Define sets for each Ig strand in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igloopsets","Ig Loop Sets",'Define sets for each Ig loop in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igdomainsets","Ig Domain Sets",'Define sets for each Ig domain in this chain and add them to the menu of "Defined Sets"',80,i),$("#"+e.pre+"dl_annotations").append(h);let p=["giseq","cdd","clinvar","snp","site","ptm","ssbond","crosslink","transmem","domain","custom","interaction","ig"];for(let t in p){let i=p[t];$("#"+e.pre+"anno_"+s).append(this.getAnDiv(s,i))}$("#"+e.pre+"anno_"+s).append("


    "),++n}if(t.bNode||e.annoCddSiteCls.setToolTip(),void 0!==e.chainid_seq)await this.processSeqData(e.chainid_seq);else try{let n=[],l=[];for(let e=0,t=i.length;e=6?l.push(i[e]):n.push(i[e])}if(n.length>0){let s=t.htmlCls.baseUrl+"/vastdyn/vastdyn.cgi?chainlist="+n;e.chainid_seq=await t.getAjaxPromise(s,"jsonp")}else e.chainid_seq={};for(let t=0,s=l.length;t40&&(r=r.substr(0,40)+"...");let o="";0==i&&("protein"==s?o="Proteins:

    ":"nucleotide"==s?o="Nucleotides:

    ":"chemical"==s&&(o="Chemicals/Ions/Water:

    ")),$("#"+n.pre+"dl_annotations").append("
    "+o+""+e+": "+r+"
    "),$("#"+n.pre+"anno_"+e).append(this.getAnDiv(e,"giseq")),$("#"+n.pre+"anno_"+e).append(this.getAnDiv(e,"interaction")),$("#"+n.pre+"anno_"+e).append("


    "),n.giSeq[e]=[];for(let t=0;tChemicals/Ions/Water:

    ":"",o=t[0].lastIndexOf("_"),a=t[0].substr(0,o),d=void 0!==l.cfg.mmdbid&&void 0!==n.chainid2sid?n.chainid2sid[a]:void 0;i=void 0!==d?""+e+" ":""+e+"",$("#"+n.pre+"dl_annotations").append("
    "+r+i+"
    "),$("#"+n.pre+"anno_"+e).append("
    "),$("#"+n.pre+"anno_"+e).append("


    ");let c='
    ';c+='",c+='Count: '+t.length+"",c+='';let h=c,p=c;for(let s=0,i=t.length;s3&&(l=i.substr(0,3)),s'+l+""}let m=l.htmlCls.GREY8,u=Math.round(n.seqAnnWidth*t.length/n.maxAnnoLength);u<1&&(u=1),p+='
     
    ',c="",c+="
    ",c+="
    ",h+=c,p+=c,$("#"+n.pre+"dt_giseq_"+e).html(h),$("#"+n.pre+"ov_giseq_"+e).html(p)}async processSeqData(e){let t=this.icn3d,s=t.icn3dui;t.bAnnoShown=!0;for(let i in t.protein_chainid){let n=t.protein_chainid[i];if(e.hasOwnProperty(n)){let s=e[n];t.giSeq[i]=s;let l="";for(let e=0;e<10&&e14?"Query: "+o.substr(0,6)+"...":isNaN(s.cfg.query_id)?"Query: "+o:"Query: gi "+o;let a="cannot be aligned";t.queryStart="",t.queryEnd="",t.bRender&&alert("The sequence can NOT be aligned to the structure"),t.showSeqCls.showSeq(i,n,void 0,e,l,a,r)}else if(s.cfg.blast_rep_id==i&&(void 0!==t.seqStructAlignData||void 0!==t.seqStructAlignDataSmithwm)){let e,l,r,o,a,d=s.cfg.oriQuery_id?s.cfg.oriQuery_id:s.cfg.query_id;if(e=d.length>14?"Query: "+d.substr(0,6)+"...":isNaN(s.cfg.query_id)?"Query: "+d:"Query: gi "+d,void 0!==t.seqStructAlignData){let e,s,i=t.seqStructAlignData;if(void 0!==i.data){e=i.data[0].query;let t=Object.keys(i.data[0].targets);s=i.data[0].targets[t[0]],s=void 0!==s&&s.hsps.length>0?s.hsps[0]:void 0}if(void 0!==e&&void 0!==s){l=s.scores.e_value.toPrecision(2),l>1e-200&&(l=parseFloat(l).toExponential()),s.scores.bit_score;let t=Object.keys(i.targets);r=i.targets[t[0]].seqdata,o=e.seqdata,a=s.segs}}else{let e=t.seqStructAlignDataSmithwm;l=e.score,r=e.target.replace(/-/g,""),o=e.query.replace(/-/g,""),a=[];let s=-1,i=-1,n=!1,d={};for(let t=0,l=e.target.length;t0)if(i.orifrom-ni.from-l)for(let t=n+1;t
    "+i+"
    "}addButton(e,t,s,i,n,l){return this.icn3d.icn3dui,"
    "}addSnpButton(e,t,s,i,n,l){let r=this.icn3d;return r.icn3dui,"
    "}conservativeReplacement(e,t){let s=this.icn3d.icn3dui,i=-1!==s.parasCls.b62ResArray.indexOf(e)?s.parasCls.b62ResArray.indexOf(e):s.parasCls.b62ResArray.length-1,n=-1!==s.parasCls.b62ResArray.indexOf(t)?s.parasCls.b62ResArray.indexOf(t):s.parasCls.b62ResArray.length-1;return s.parasCls.b62Matrix[i][n]>0}getColorhexFromBlosum62(e,t){let s=this.icn3d.icn3dui,i="333333";if(!e||!t)return i;e=e.toUpperCase(),t=t.toUpperCase();let n=-1!==s.parasCls.b62ResArray.indexOf(e)?s.parasCls.b62ResArray.indexOf(e):s.parasCls.b62ResArray.length-1,l=-1!==s.parasCls.b62ResArray.indexOf(t)?s.parasCls.b62ResArray.indexOf(t):s.parasCls.b62ResArray.length-1,r=s.parasCls.b62Matrix[n][l];if(void 0===r)return"333333";if(r>0){let e=221-parseInt(r/11*221),t=e<10?"0"+e.toString(16):e.toString(16);i="DD"+t+t}else{let e=221-parseInt(-1*r/4*221),t=e<10?"0"+e.toString(16):e.toString(16);i=t+t+"DD"}return i}}class Dt{constructor(e){this.icn3d=e}getSeq(e){let t,s=this.icn3d,i=s.icn3dui;if(void 0===i.cfg.mmdbid&&void 0===i.cfg.gi&&void 0===i.cfg.blast_rep_id&&void 0===i.cfg.align&&void 0===i.cfg.chainalign&&void 0===i.cfg.mmdbafid){t=[];for(let i=0;i10){m='
    ';let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]);void 0===a.cfg.mmdbid&&void 0===a.cfg.gi&&void 0===a.cfg.blast_rep_id&&void 0===a.cfg.align&&void 0===a.cfg.chainalign&&void 0===a.cfg.mmdbafid||void 0===t.resi_ori||t.resi_ori==t.resi||-1!=e.indexOf("Misc")?m+='
    ':m+='
    NCBI Residue Numbers
    ',m+='',f+=m+"
    ",u+=m+'';let s=0,i=0,n="";o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e]," "));for(let t=0,l=d.length;t",l%10==0&&(u+=l);let r=e+"_"+l,a=l%10!=0&&l%10!=1&&l%10!=9;if(o.residues.hasOwnProperty(r)){let e=o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[r]);"H"==o.secondaries[r]&&e.ssbegin?(++s,n='H'+s+"",a&&(u+=n,n="")):"E"==o.secondaries[r]&&e.ssbegin?(++i,"green"==o.sheetcolor?n='S'+i+"":"yellow"==o.sheetcolor&&(n='S'+i+""),a&&(u+=n,n="")):e.ssend&&(n=""),""!=n&&a&&(u+=n,n="")}u+=""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e]," ")),u+='',u+="",u+="
    ",u+="
    ",f+=""}m='
    ',m+='
    ',m+='',f+=m+"
    ",u+=m+'',o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t':'',u+=" ";else if("E"==o.secondaries[s]){o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[s]).ssend?"green"==o.sheetcolor?u+='':"yellow"==o.sheetcolor&&(u+=''):"green"==o.sheetcolor?u+='':"yellow"==o.sheetcolor&&(u+=''),u+=" "}else"c"==o.secondaries[s]?u+=' ':"o"==o.secondaries[s]&&(u+=' ');else u+="-"}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),u+='',u+="",u+="
    ",u+="
    ",u+="",f+="",m=a.cfg.blast_rep_id===e?'
    ':'
    ';let C="Protein",b="Protein";void 0!==s&&("nucleotide"==s?(C="Nucl.",b="Nucleotide"):"chemical"==s&&(C="Chem.",b="Chemical")),m+='",m+=''+(o.baseResi[e]+1).toString()+"",f+=m+"
    ";let y='';u+=m+y,g+=m+y;let v,_=0;o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t1&&(i=s[0]+".."),v=o.ParserUtilsCls.getResi(e,t),o.residues.hasOwnProperty(e+"_"+v)){let n="333333";if(a.cfg.blast_rep_id==e&&void 0!==o.fullpos2ConsTargetpos&&void 0!==o.fullpos2ConsTargetpos[t+_])n=o.fullpos2ConsTargetpos[t+_].color;else{let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[e+"_"+v]),s=void 0===t.color||"FFFFFF"===t.color.getHexString().toUpperCase()||"FFF"===t.color.getHexString().toUpperCase()?"DDDDDD":t.color.getHexString();n=void 0!==t.color?s:"CCCCCC"}u+=''+i+""}else i=i.toLowerCase(),u+=''+i+""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),a.cfg.blast_rep_id==e&&(o.opts.color=o.blastAcxn?"confidence":"conservation",o.setColorCls.setColorByOptions(o.opts,o.atoms));let w=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]),S=w.color?w.color.getHexString():"CCCCCC",A=Math.round(o.seqAnnWidth*d.length/(o.maxAnnoLength+o.nTotalGap));if(A<1&&(A=1),o.seqStartLen&&o.seqStartLen[e]&&(g+=this.insertMulGapOverview(e,o.seqStartLen[e])),a.cfg.blast_rep_id!=e)g+='";else{let t=[],s=[];t.push(0);for(let e=0,i=d.length;e';for(let i=0,n=t.length;i'+e+"
    ";g+="
    "}if(m=''+v+"",m+="",m+="
    ",u+=m,g+=m,a.cfg.blast_rep_id==e){if(void 0!==r&&""!==r){m='",m+='',f+=m+"
    ";let t='';u+=m+t,g+=m+t;let s=0,i=0,l=1;o.queryStart;for(let t=0,n=r.length;t-";else if(" "==n)u+=" ";else{let r=o.fullpos2ConsTargetpos[t].pos;if(o.residues.hasOwnProperty(e+"_"+r)){let s=o.fullpos2ConsTargetpos[t].color;u+=''+n+""}else n=n.toLowerCase(),u+=''+n+"";g+=this.insertGapOverview(e,t);let a=Math.round(o.seqAnnWidth*t/(o.maxAnnoLength+o.nTotalGap)-s-i);a>=0&&(g+='
     
    ',g+='
     
    ',s+=a,i+=l)}}m='',m+="",m+="
    ",u+=m,g+=m}m='
    '+i+"
    ",m+=''+o.queryStart+"",f+=m+"
    ";let t='';u+=m+t,g+=m+t;let s=o.queryStart;for(let t=0,i=l.length;t-":(void 0===o.fullpos2ConsTargetpos||void 0===o.fullpos2ConsTargetpos[t]||o.residues.hasOwnProperty(e+"_"+o.fullpos2ConsTargetpos[t].pos)||(i=i.toLowerCase()),u+=''+i+"",++s)}let a=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]),d=void 0===a.color||"FFFFFF"===a.color.getHexString()?"DDDDDD":a.color.getHexString(),c=void 0!==a.color?d:"CCCCCC",h=[],p=[],C="-";for(let e=0,t=l.length;e ',g+='
    '+i+"
    "}m=''+o.queryEnd+"",m+="",m+="
    ",u+=m,g+=m}if(u+="",g+="",f+="",d.length>10){let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]);if((void 0!==a.cfg.mmdbid||void 0!==a.cfg.gi||void 0!==a.cfg.blast_rep_id||void 0!==a.cfg.align||void 0!==a.cfg.chainalign||void 0!==a.cfg.mmdbafid)&&void 0!==t.resi_ori&&t.resi_ori!=t.resi&&-1==e.indexOf("Misc")){m='
    ',m+='
    ',m+='
    PDB Residue Numbers
    ',m+='',f+=m+"
    ",u+=m+'',o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t",e%10==0&&(u+=e+" "),u+=""}else u+=""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),u+='',u+="",u+="
    ",u+="
    ",u+="
    ",f+=""}if(o.bShowCustomRefnum&&o.chainsMapping.hasOwnProperty(e)){let t=!0,s=o.annoIgCls.showRefNum(d,e,void 0,t);u+=s.html,f+=s.html3}}o.bShowRefnum&&o.hlUpdateCls.updateHlAll(),$("#"+o.pre+"dt_giseq_"+e).html(u),$("#"+o.pre+"ov_giseq_"+e).html(g),$("#"+o.pre+"tt_giseq_"+e).html(f)}insertGap(e,t,s,i){let n=this.icn3d;n.icn3dui;let l="";return void 0!==n.targetGapHash&&n.targetGapHash.hasOwnProperty(t)&&(l+=this.insertMulGap(n.targetGapHash[t].to-n.targetGapHash[t].from+1,s,i)),l}insertMulGap(e,t,s){this.icn3d.icn3dui;let i="";for(let n=0;n"+t+"";return i}insertGapOverview(e,t){let s=this.icn3d;s.icn3dui;let i="";return void 0!==s.targetGapHash&&s.targetGapHash.hasOwnProperty(t)&&(i+=this.insertMulGapOverview(e,s.targetGapHash[t].to-s.targetGapHash[t].from+1)),i}insertMulGapOverview(e,t){let s=this.icn3d;s.icn3dui;let i="",n=s.seqAnnWidth*t/(s.maxAnnoLength+s.nTotalGap);return n=parseInt(n),i+='
     
    ',i}setAlternativeSeq(e,t){let s=this.icn3d;s.icn3dui;let i=s.chainsSeq[e];s.giSeq[e]=[];for(let t=0,n=i.length;t1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+e,!0)}else{let o={};if(void 0!==$(e).attr("domain")||void 0!==$(e).attr("feat")||void 0!==$(e).attr("3ddomain")||void 0!==$(e).attr("custom")||void 0!==$(e).attr("ig")){t.hlUpdateCls.hlSummaryDomain3ddomain(e);let a,d,c,h=$(e).attr("from").split(","),p=$(e).attr("to").split(",");r.substr(0,r.indexOf("_"));for(let s=0,i=h.length;s1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+c,!0)}}else{t.bCtrl||t.bShift?(t.currSelectedSets.push(i),t.selectionCls.selectAChain(r,i,!0,!0)):(t.currSelectedSets=[i],t.selectionCls.selectAChain(r,i,t.bAlignSeq)),t.bAlignSeq?s.htmlCls.clickMenuCls.setLogCmd("select alignChain "+r,!0):s.htmlCls.clickMenuCls.setLogCmd("select chain "+r,!0);let e=t.currSelectedSets.join(" or ");t.currSelectedSets.length>1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+e,!0)}else t.hlObjectsCls.removeHlObjects(),t.hlUpdateCls.removeHl2D(),$("#"+t.pre+"atomsCustom").val("")}}selectResidues(e,t){let s=this.icn3d,i=s.icn3dui;if(!i.bNode&&(!1!==s.bSelectResidue||s.bShift||s.bCtrl||s.selectionCls.removeSelection(),void 0!==e&&""!==e)){e=e.substr(e.indexOf("_")+1),s.bSelectResidue=!0,$(t).toggleClass("icn3d-highlightSeq");let n=e.substr(e.indexOf("_")+1);if(s.residues.hasOwnProperty(n))if($(t).hasClass("icn3d-highlightSeq")){for(let e in s.residues[n])s.hAtoms[e]=1;if(s.selectedResidues[n]=1,s.bAnnotations&&void 0!==$(t).attr("disease")){let e=$(t).attr("disease"),l=s.applyCenterCls.centerAtoms(i.hashUtilsCls.hash2Atoms(s.residues[n],s.atoms)),r=15;e.length>r&&(e=e.substr(0,r)+"...");let o=s.LABELSIZE,a=i.htmlCls.GREYD;s.analysisCls.addLabel(e,l.center.x,l.center.y,l.center.z,o,a,void 0,"custom")}}else{for(let e in s.residues[n])delete s.hAtoms[e];delete s.selectedResidues[n],s.hlObjectsCls.removeHlObjects()}}}}class Ft{constructor(e){this.icn3d=e}update2DdgmContent(){let e=this.icn3d,t=e.icn3dui,s="";void 0!==t.cfg.mmdbid||void 0!==t.cfg.gi?(s+=e.diagram2dCls.draw2Ddgm(e.interactionData,e.inputid,void 0,!0),s+=e.diagram2dCls.set2DdgmNote(),$("#"+e.pre+"dl_2ddgm_html").html(s)):e.mmdbidArray&&(void 0!==t.cfg.align||void 0!==t.cfg.chainalign||e.bRealign)&&(s+=e.diagram2dCls.draw2Ddgm(e.interactionData1,e.mmdbidArray[0].toUpperCase(),0,!0),void 0!==e.mmdbid_q&&e.mmdbid_q===e.mmdbid_t?s+=e.diagram2dCls.draw2Ddgm(e.interactionData2,e.mmdbidArray[0].toUpperCase(),1,!0):s+=e.diagram2dCls.draw2Ddgm(e.interactionData2,e.mmdbidArray[1].toUpperCase(),1,!0),s+=e.diagram2dCls.set2DdgmNote(!0),$("#"+e.pre+"dl_2ddgm_html").html(s))}changeSeqColor(e){let t=this.icn3d,s=t.icn3dui;for(let i=0,n=e.length;i0&&($("#"+t.pre+"dl_2ddgm svg line").attr("stroke","#000000"),$("#"+t.pre+"dl_2ddgm line").attr("stroke-width",1)),e||($("#"+t.pre+"dl_linegraph circle").attr("stroke","#000000"),$("#"+t.pre+"dl_linegraph circle").attr("stroke-width",1),$("#"+t.pre+"dl_scatterplot rect").attr("stroke","#000000"),$("#"+t.pre+"dl_scatterplot circle").attr("stroke","#000000"),$("#"+t.pre+"dl_scatterplot rect").attr("stroke-width",1),$("#"+t.pre+"dl_scatterplot circle").attr("stroke-width",1))}removeHlMenus(){let e=this.icn3d;e.icn3dui,$("#"+e.pre+"atomsCustom").val(""),$("#"+e.pre+"atomsCustom")[0].blur()}updateHlAll(e,t,s,i){let n=this.icn3d,l=n.icn3dui;n.prevHighlightAtoms=l.hashUtilsCls.cloneHash(n.hAtoms),this.updateHlObjects(i),void 0!==e?this.updateHlSeqInChain(e,s):this.updateHlSeq(void 0,void 0,s),this.updateHl2D(),(void 0===t||t)&&this.updateHlMenus(e)}updateHlObjects(e){let t=this.icn3d;t.icn3dui,t.hlObjectsCls.removeHlObjects(),(t.hAtoms&&t.atoms&&Object.keys(t.hAtoms).length0&&(e=s.defNames2Residues[i]);let t={};if(void 0!==s.defNames2Atoms[i]&&s.defNames2Atoms[i].length>0){for(let e=0,n=s.defNames2Atoms[i].length;e0&&(r=t.firstAtomObjCls.getFirstCalphaAtomObj(l))}let o=void 0!==r&&void 0!==r.color?"#"+r.color.getHexString():"#FFFFFF",a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] rect[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] rect[class='icn3d-basenode']");void 0!==a&&(t.diagram2dCls.highlightNode("rect",a,d,l),$(a).attr("fill",o)),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] circle[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] circle[class='icn3d-basenode']"),void 0!==a&&(t.diagram2dCls.highlightNode("circle",a,d,l),$(a).attr("fill",o)),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] ellipse[class='icn3d-hlnode']"),void 0!==a&&t.diagram2dCls.highlightNode("ellipse",a,void 0,l),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] polygon[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] polygon[class='icn3d-basenode']"),void 0!==a&&(t.diagram2dCls.highlightNode("polygon",a,d,l),$(a).attr("fill",o))}if(void 0!==t.lineArray2d)for(let e=0,i=t.lineArray2d.length;e1){let e={},l=[],o=[],a=[],c=[],h=[],m=[],u=[],g=[],f=[],C=[],b=[],y=[],v={},_={},w={};for(let t=0,s=p.length;t4&&!isNaN(parseInt(e.substr(-4,4)))||t.length>4&&!isNaN(parseInt(t.substr(-4,4))),c=e+"_"+t+"_"+s.c,h=n.hashUtilsCls.cloneHash(s);h.source+=S+i.chainsMapping[r][d],h.target+=S+i.chainsMapping[o][C];let m=n.hashUtilsCls.cloneHash(s);m.source+=A+i.chainsMapping[r][d],m.target+=A+i.chainsMapping[o][C],v[c]!=p.length||!a&&0!=w[c]?b[f].push(m):u[f].push(h),g[f][s.source]=i.chainsMapping[r][d],g[f][s.target]=i.chainsMapping[o][C],y[f][s.source]=i.chainsMapping[r][d],y[f][s.target]=i.chainsMapping[o][C]}else{let e=n.hashUtilsCls.cloneHash(s);e.source+=i.chainsMapping[r]&&i.chainsMapping[r][d]?A+i.chainsMapping[r][d]:A+k,e.target+=i.chainsMapping[o]&&i.chainsMapping[o][C]?A+i.chainsMapping[o][C]:A+k,b[f].push(e),g[f][s.source]=i.chainsMapping[r]&&i.chainsMapping[r][d]?i.chainsMapping[r][d]:x,g[f][s.target]=i.chainsMapping[o]&&i.chainsMapping[o][C]?i.chainsMapping[o][C]:x,y[f][s.source]=i.chainsMapping[r]&&i.chainsMapping[r][d]?i.chainsMapping[r][d]:k,y[f][s.target]=i.chainsMapping[o]&&i.chainsMapping[o][C]?i.chainsMapping[o][C]:k}}}let O=[],R=[],I=0,E=[],T=1;for(let e=0,t=p.length;e0&&(T=1,t=i.getGraphCls.getNodeTopBottom(c[e],d,void 0,T,g[e]),h[e]=t.nodeArray1,m[e]=t.nodeArray2,d=n.hashUtilsCls.unionHash(d,t.name2node),T=2,t=i.getGraphCls.getNodeTopBottom(c[e],d,void 0,T,y[e]),f[e]=t.nodeArray1,C[e]=t.nodeArray2,d=n.hashUtilsCls.unionHash(d,t.name2node)),O[e]=l[e].length,R[e]=o[e].length,I=Math.max(I,R[e]),E.push(p[e])}let P,D,M,F,H,L=1,N=3*L,q=7*L,U=10,$=10,B=30,j=20;t?(M=(n.utilsCls.sumArray(O)+2*E.length)*(N+q)+4*$+2*B+j*E.length,D=(I+2)*(N+q)+2*U+B):(P=110+j,M=P*E.length,D=(I+2)*(N+q)+2*U,D+=20),Object.keys(i.chainsMapping).length>0&&(M*=3),t?(i.scatterplotWidth=2*D,H=i.scatterplotWidth,F=n.scatterplotid):(i.linegraphWidth=2*D,H=i.linegraphWidth,F=n.linegraphid),s=0==E.length?"No interactions found for each structure

    ":"2D integration graph for "+E.length+" structure(s) "+E+'. There are three sections: "Interactions", "Common interactions", and "Different interactions". Each section has '+E.length+" graphs.

    ",s+="";let z,G=0;T=0,z=this.drawGraphPerType(T,p,t,l,o,a,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html,Object.keys(i.chainsMapping).length>0&&(T=1,z=this.drawGraphPerType(T,p,t,h,m,u,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html,T=2,z=this.drawGraphPerType(T,p,t,f,C,b,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html),s+=""}else if(t){let e,t,l,c,h=p[0],m=o.length,u=a.length,g=1,f=3*g,C=7*g,b=30;t=(m+2)*(f+C)+2*10+b,e=(u+2)*(f+C)+2*10+b,i.scatterplotWidth=2*e,c=i.scatterplotWidth,l=n.scatterplotid,s=r.length>0?"":"No interactions found for these two sets

    ",s+="",s+=this.drawScatterplot_base(o,a,r,d,0),i.lineGraphStr+=i.getGraphCls.updateGraphJson(h,1,o,a,r),s+=""}else{let e=p[0],t=o.length,l=a.length,c=1,h=3*c,m=7*c,u=110,g=10,f=t>l?t*(h+m)+2*g:l*(h+m)+2*g;i.linegraphWidth=2*f,s=r.length>0?"":"No interactions found for these two sets

    ",s+="",s+=this.drawLineGraph_base(o,a,r,d,0),i.lineGraphStr+=i.getGraphCls.updateGraphJson(e,1,o,a,r),s+=""}return i.lineGraphStr+="}\n",i.scatterplotStr=i.lineGraphStr,t?$("#"+i.pre+"scatterplotDiv").html(s):$("#"+i.pre+"linegraphDiv").html(s),s}drawGraphPerType(e,t,s,i,n,l,r,o,a,d,c,h,p,m){let u=this.icn3d;u.icn3dui;let g,f,C="",b=2==t.length&&"2"==t[1].replace(t[0],"");0==e?(g="Interactions in ",f=""):1==e?(g="Common interactions in ",f="_common"):2==e&&(g="Different interactions in ",f="_diff");for(let y=0,v=t.length;y0&&(u.lineGraphStr+=", \n"):u.lineGraphStr+=", \n",u.lineGraphStr+=u.getGraphCls.updateGraphJson(t[y],y+f,i[y],n[y],l[y])}return{heightFinal:o,html:C}}getIdArrayFromNode(e){let t=this.icn3d.icn3dui,s=[];s.push(""),s.push("");let i=e.r.substr(4);return s=s.concat(t.utilsCls.getIdArray(i)),s}drawLineGraph_base(e,t,s,i,n,l,r){let o,a,d=this.icn3d,c=d.icn3dui,h="",p=e.length,m=t.length;p>m?(o=10,a=10*Math.abs(p-m)*.5+10):(a=10,o=10*Math.abs(p-m)*.5+10),l&&(h+=""+l+"");let u=30+n,g=80+n,f="",C={},b={};for(let t=0;t";let u=1==t.n?"Interaction":t.n+" interactions";t.n>1&&(h+=""+u+" of residue "+n.id+" with residue "+l.id+""),h+=""}return h+=f,h}drawScatterplot_base(e,t,s,i,n,l,r,o,a){let d=this.icn3d;d.icn3dui;let c="",h=e.length,p=t.length,m=l?3:7,u=(h+1)*(3+m)+30+40;r&&(c+=""+r+"");let g=n+u-(50+(3+m)),f=40+(3+m),C="",b={},y={};for(let t=0;t";else{d+="";let i=1==e.n?"Interaction":e.n+" interactions";e.n>1&&(d+=""+i+" of residue "+t.id+" with residue "+s.id+""),d+=l?"":"",d+=""}return d}copyStylesInline(e,t){this.icn3d.icn3dui;let s=["svg","g"];for(let i=0;i",b=e.id;return c.resid2refnum[p]&&(b+="=>"+c.resid2refnum[p]),C+=""+b+"",o?(C+="",C+=""+g+""):(C+="",C+=""+g+""),C+="",C}getNodeTopBottom(e,t,s,i,n){let l=this.icn3d.icn3dui,r=this,o=[],a=[],d={};for(let s in e){let e=t[s];if(e){if(1==i||2==i){if(e=l.hashUtilsCls.cloneHash(e),1==i){let t=n[s]?n[s]:"-";e.id+="=>"+t}else{let t=n[s]?n[s]:"--";e.id+="==>"+t}d[e.id]=e}"a"==e.s?o.push(e):"b"==e.s?a.push(e):"ab"==e.s&&(o.push(e),a.push(e))}}return o.sort((function(e,t){return r.compNode(e,t)})),a.sort((function(e,t){return r.compNode(e,t,s)})),{nodeArray1:o,nodeArray2:a,name2node:d}}updateGraphJson(e,t,s,i,n){let l=this.icn3d.icn3dui,r="";return r+='"structure'+t+'": {"id": "'+e+'", "nodes1":[',r+=l.utilsCls.getJSONFromArray(s),r+='], \n"nodes2":[',r+=l.utilsCls.getJSONFromArray(i),r+='], \n"links":[',r+=l.utilsCls.getJSONFromArray(n),r+="]}",r}updateGraphColor(){this.icn3d.icn3dui}handleForce(){let e=this.icn3d;0==e.icn3dui.htmlCls.force&&void 0!==e.simulation?(e.simulation.stop(),e.simulation.force("charge",null),e.simulation.force("x",null),e.simulation.force("y",null),e.simulation.force("r",null),e.simulation.force("link",null)):e.drawGraphCls.drawGraph(e.graphStr,e.pre+"dl_graph")}getNodesLinksForSet(e,t,s,i){let n=this.icn3d,l=n.icn3dui,r=[],o=[],a=0,d=l.htmlCls.coilValue,c="",h="",p=0,m={};for(let u in e){let e=n.atoms[u];if("DUM"!=e.chain&&(i||e.het||"CA"==e.name&&"C"==e.elem||"O3'"==e.name||"O3*"==e.name||"P"==e.name)){let i=e.structure+"_"+e.chain+"_"+e.resi;if(m.hasOwnProperty(i))continue;m[i]=1;let u=l.utilsCls.residueName2Abbr(e.resn)+e.resi;"chain"!=t&&"structure"!=t||(u+="."+e.chain),"structure"==t&&(u+="."+e.structure);let g="1_1_"+i,f=e.color?e.color.getHexString().toUpperCase():"000";r.push('{"id": "'+u+'", "r": "'+g+'", "s": "'+s+'", "x": '+e.coord.x.toFixed(0)+', "y": '+e.coord.y.toFixed(0)+', "c": "'+f+'"}'),a>0&&c==e.chain&&(n.resid2ncbi[e.resi]==n.resid2ncbi[p]+1||n.resid2ncbi[e.resi]==n.resid2ncbi[p])&&(o.push('{"source": "'+h+'", "target": "'+u+'", "v": '+d+', "c": "'+f+'"}'),e.ssbegin&&(d=l.htmlCls.ssValue),e.ssend&&(d=l.htmlCls.coilValue)),c=e.chain,h=u,p=e.resi,++a}}return{node:r,link:o}}getHbondLinksForSet(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=parseFloat($("#"+s.pre+"hbondthreshold").val()),r=e,o=r;if(Object.keys(o).length>0&&Object.keys(r).length>0){let e=!1;s.hBondCls.calculateChemicalHbonds(i.hashUtilsCls.hash2Atoms(o,s.atoms),i.hashUtilsCls.hash2Atoms(r,s.atoms),parseFloat(l),e,"graph",!0),n=i.hashUtilsCls.cloneHash(s.resid2Residhash)}return this.getGraphLinks(n,n,i.htmlCls.hbondInsideColor,t,i.htmlCls.hbondInsideValue)}getIonicLinksForSet(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=parseFloat($("#"+s.pre+"saltbridgethreshold").val()),r=e,o=r;if(Object.keys(o).length>0&&Object.keys(r).length>0){let e=!1;s.saltbridgeCls.calculateIonicInteractions(i.hashUtilsCls.hash2Atoms(o,s.atoms),i.hashUtilsCls.hash2Atoms(r,s.atoms),parseFloat(l),e,"graph",!0),n=i.hashUtilsCls.cloneHash(s.resid2Residhash)}return this.getGraphLinks(n,n,i.htmlCls.ionicInsideColor,t,i.htmlCls.ionicInsideValue)}getHalogenPiLinksForSet(e,t){let s,i=this.icn3d,n=i.icn3dui,l={},r=e,o=r,a="";return s=parseFloat($("#"+i.pre+"halogenthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","halogen",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.halogenInsideColor,t,n.htmlCls.halogenInsideValue),s=parseFloat($("#"+i.pre+"picationthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","pi-cation",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.picationInsideColor,t,n.htmlCls.picationInsideValue),s=parseFloat($("#"+i.pre+"pistackingthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","pi-stacking",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.pistackingInsideColor,t,n.htmlCls.pistackingInsideValue),a}getContactLinksForSet(e,t,s){let i=this.icn3d;i.icn3dui;let n=[],l="",r="",o={};for(let t in e){let e=i.atoms[t];e.ss==l&&e.chain==r||(Object.keys(o).length>0&&n.push(o),o={}),o[e.serial]=1,l=e.ss,r=e.chain}Object.keys(o).length>0&&n.push(o);let a=n.length,d="";for(let e=0;ed?s?-1:1:ah?1:c1&&Object.keys(n).length>1)return void alert("Please select one ligand or residue as one of the interaction sets...");Object.keys(e).length0&&Object.keys(a).length>0)){let t,s=c.hBondCls.calculateChemicalHbonds(h.hashUtilsCls.hash2Atoms(d,c.atoms),h.hashUtilsCls.hash2Atoms(a,c.atoms),parseFloat(e),n);n?(c.resid2ResidhashSaltbridge=h.hashUtilsCls.cloneHash(c.resid2Residhash),t="all atoms that have salt bridges with the selected atoms"):(c.resid2ResidhashHbond=h.hashUtilsCls.cloneHash(c.resid2Residhash),t="all atoms that are hydrogen-bonded with the selected atoms");let i={};for(let e in s){i[c.atoms[e].structure+"_"+c.atoms[e].chain+"_"+c.atoms[e].resi]=1}c.hAtoms={};for(let e in i)for(let t in c.residues[e])c.hAtoms[t]=1,c.atoms[t].style2="stick";let l=r+"_auto";c.selectionCls.addCustomSelection(Object.keys(i),l,t,o,!0),c.selectionCls.saveSelectionIfSelected(),c.drawCls.draw()}}showHydrogens(){let e=this.icn3d;if(void 0!==e.icn3dui.cfg.cid)for(let t in e.hAtoms){let s=e.atoms[t];if("H"!==s.elem.substr(0,1)){e.atoms[s.serial].bonds=e.atoms[s.serial].bonds2.concat(),e.atoms[s.serial].bondOrder=e.atoms[s.serial].bondOrder2.concat();for(let t=0,i=e.atoms[s.serial].bonds.length;t0){let i=e.atoms[t].bonds[0];e.atoms[i].bonds.push(s.serial),e.atoms[i].bondOrder&&e.atoms[i].bondOrder.push(1)}e.dAtoms[t]=1}} //!!!ic.bShowHighlight = false; }hideHydrogens(){let e=this.icn3d;e.icn3dui;for(let t in e.hAtoms){let s=e.atoms[t];if("H"===s.elem.substr(0,1)){if(e.atoms[s.serial].bonds.length>0){let t=e.atoms[s.serial].bonds[0],i=e.atoms[t].bonds?e.atoms[t].bonds.indexOf(s.serial):-1;-1!==i&&(e.atoms[t].bonds.splice(i,1),e.atoms[t].bondOrder&&e.atoms[t].bondOrder.splice(i,1))}delete e.dAtoms[s.serial],delete e.hAtoms[s.serial]}}}hideExtraBonds(){let e=this.icn3d;e.icn3dui;for(let t in e.atoms)e.atoms[t].style2="nothing";for(let t in e.sidec)e.hAtoms.hasOwnProperty(t)&&(e.atoms[t].style2=e.opts.sidec);for(let t in e.water)e.hAtoms.hasOwnProperty(t)&&(e.atoms[t].style=e.opts.water)}hideHbondsContacts(){let e=this.icn3d,t=e.icn3dui,s="set hbonds off";t.htmlCls.clickMenuCls.setLogCmd(s,!0),e.hBondCls.hideHbonds(),s="set salt bridge off",t.htmlCls.clickMenuCls.setLogCmd(s,!0),e.saltbridgeCls.hideSaltbridge(),s="set contact off",t.htmlCls.clickMenuCls.setLogCmd(s,!0),e.contactCls.hideContact(),s="set halogen pi off",t.htmlCls.clickMenuCls.setLogCmd(s,!0),e.piHalogenCls.hideHalogenPi(),this.hideExtraBonds()}showIonicInteractions(e,t,s,i,n,l){let r,o,a,d,c=this.icn3d,h=c.icn3dui;if(!i&&(r="saltbridge",o="salt bridge "+e+" | sets "+t+" "+s+" | "+i,c.opts.saltbridge="yes",a=c.definedSetsCls.getAtomsFromNameArray(t),d=c.definedSetsCls.getAtomsFromNameArray(s),c.firstAtomObjCls.getFirstAtomObj(a),Object.keys(d).length>0&&Object.keys(a).length>0)){let t,s=c.saltbridgeCls.calculateIonicInteractions(h.hashUtilsCls.hash2Atoms(d,c.atoms),h.hashUtilsCls.hash2Atoms(a,c.atoms),parseFloat(e),n);c.resid2ResidhashSaltbridge=h.hashUtilsCls.cloneHash(c.resid2Residhash),t="all atoms that have ionic interactions with the selected atoms";let i={};for(let e in s){i[c.atoms[e].structure+"_"+c.atoms[e].chain+"_"+c.atoms[e].resi]=1}c.hAtoms={};for(let e in i)for(let t in c.residues[e])c.hAtoms[t]=1,c.atoms[t].style2="stick",c.ions.hasOwnProperty(t)&&(c.atoms[t].style2="sphere");let l="saltbridge_auto";c.selectionCls.addCustomSelection(Object.keys(i),l,t,o,!0),c.selectionCls.saveSelectionIfSelected(),c.drawCls.draw()}}showHalogenPi(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(i)return;let a,d,c=l+" "+e+" | sets "+t+" "+s+" | "+i;if(r.opts[l]="yes",a=r.definedSetsCls.getAtomsFromNameArray(t),d=r.definedSetsCls.getAtomsFromNameArray(s),r.firstAtomObjCls.getFirstAtomObj(a),Object.keys(d).length>0&&Object.keys(a).length>0){let t,s=r.piHalogenCls.calculateHalogenPiInteractions(o.hashUtilsCls.hash2Atoms(a,r.atoms),o.hashUtilsCls.hash2Atoms(d,r.atoms),parseFloat(e),n,l);"halogen"==l?(r.resid2ResidhashHalogen=o.hashUtilsCls.cloneHash(r.resid2Residhash),t="all atoms that have halogen bonds with the selected atoms"):"pi-cation"==l?(r.resid2ResidhashPication=o.hashUtilsCls.cloneHash(r.resid2Residhash),t="all atoms that have pi-cation interactions with the selected atoms"):"pi-stacking"==l&&(r.resid2ResidhashPistacking=o.hashUtilsCls.cloneHash(r.resid2Residhash),t="all atoms that have pi-stacking with the selected atoms");let i={};for(let e in s){i[r.atoms[e].structure+"_"+r.atoms[e].chain+"_"+r.atoms[e].resi]=1}r.hAtoms={};for(let e in i)for(let t in r.residues[e])r.hAtoms[t]=1,r.atoms[t].style2="stick",r.ions.hasOwnProperty(t)&&(r.atoms[t].style2="sphere");let h=l+"_auto";r.selectionCls.addCustomSelection(Object.keys(i),h,t,c,!0),r.selectionCls.saveSelectionIfSelected(),r.drawCls.draw()}}showClbonds(){let e=this.icn3d,t=e.icn3dui;e.opts.clbonds="yes";let s=e.applyClbondsCls.applyClbondsOptions();for(let i in s)e.hAtoms=t.hashUtilsCls.unionHash(e.hAtoms,e.residues[i]);if(Object.keys(s).length>0){let t="clbonds",i="all atoms that have cross-linkages";e.selectionCls.addCustomSelection(Object.keys(s),t,i,"cross linkage",!0),e.selectionCls.saveSelectionIfSelected(),e.drawCls.draw()}}showSsbonds(){let e=this.icn3d,t=e.icn3dui;e.opts.ssbonds="yes";let s={},i=Object.keys(e.structures);for(let n=0,l=i.length;n0){let t="ssbonds",i="all atoms that have disulfide bonds";e.selectionCls.addCustomSelection(Object.keys(s),t,i,"disulfide bonds",!0),e.selectionCls.saveSelectionIfSelected(),e.drawCls.draw()}}pickCustomSphere(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(i)return;let a,d,c="select zone cutoff "+e+" | sets "+t+" "+s+" | "+i;n&&(c="interactions "+e+" | sets "+t+" "+s+" | "+i,r.opts.contact="yes"),a=r.definedSetsCls.getAtomsFromNameArray(t),d=r.definedSetsCls.getAtomsFromNameArray(s);let h,p,m=this.pickCustomSphere_base(e,a,d,i,n,l,c,!0),u=Object.keys(m.residues);r.hAtoms={};for(let e=0,t=u.length;e1?"structure":v>1?"chain":"residue";let w=[];if(n&&w.push("hbonds"),l&&w.push("salt bridge"),r&&w.push("interactions"),o&&w.push("halogen"),a&&w.push("pi-cation"),d&&w.push("pi-stacking"),s||(p.resids2inter={},p.resids2interAll={}),l){let n=parseFloat($("#"+p.pre+"saltbridgethreshold").val());n&&!isNaN(n)||(n=p.tsIonic),s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.showIonicInteractions(n,e,t,s,!0,i)),g=m.hashUtilsCls.unionHash(g,p.hAtoms)}if(n){let n=parseFloat($("#"+p.pre+"hbondthreshold").val());n&&!isNaN(n)||(n=p.tsHbond),s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.showHbonds(n,e,t,s,void 0,i)),g=m.hashUtilsCls.unionHash(g,p.hAtoms)}let S,A,x,k,O="";if(n&&(O+=this.exportHbondPairs(i,u)),l&&(O+=this.exportSaltbridgePairs(i,u)),o){let n=parseFloat($("#"+p.pre+"halogenthreshold").val());n&&!isNaN(n)||(n=p.tsHalogen),s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.showHalogenPi(n,e,t,s,i,"halogen")),g=m.hashUtilsCls.unionHash(g,p.hAtoms),O+=this.exportHalogenPiPairs(i,u,"halogen")}if(a){let n=parseFloat($("#"+p.pre+"picationthreshold").val());n&&!isNaN(n)||(n=p.tsPication),s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.showHalogenPi(n,e,t,s,i,"pi-cation")),g=m.hashUtilsCls.unionHash(g,p.hAtoms),O+=this.exportHalogenPiPairs(i,u,"pi-cation")}if(d){let n=parseFloat($("#"+p.pre+"pistackingthreshold").val());n&&!isNaN(n)||(n=p.tsPistacking),s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.showHalogenPi(n,e,t,s,i,"pi-stacking")),g=m.hashUtilsCls.unionHash(g,p.hAtoms),O+=this.exportHalogenPiPairs(i,u,"pi-stacking")}if(r){let n=C?c:parseFloat($("#"+p.pre+"contactthreshold").val());if(n&&!isNaN(n)||(n=p.tsContact),1!=e.length||1!=t.length||e[0]!=t[0])s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.pickCustomSphere(n,e,t,s,!0,i)),g=m.hashUtilsCls.unionHash(g,p.hAtoms),O+=this.exportSpherePairs(!0,i,u);else{if(!s){let l={},o={};if(C){let e=!0,t=p.showInterCls.pickCustomSphere_base(n,b,y,s,!0,void 0,void 0,!0,e);l=m.hashUtilsCls.unionHash(l,t.residues);for(let e in t.resid2Residhash)o[e]=m.hashUtilsCls.unionHash(o[e],t.resid2Residhash[e])}else{let r=[],a="",d="",c={};for(let e in b){let t=p.atoms[e];t.ss==a&&t.chain==d||(Object.keys(c).length>0&&r.push(c),c={}),c[t.serial]=1,a=t.ss,d=t.chain}Object.keys(c).length>0&&r.push(c);let h=r.length,u="interactions "+n+" | sets "+e+" "+t+" | true";p.opts.contact="yes";for(let e=0;e
    ",T=p.resid2specCls.atoms2residues(Object.keys(b)),P=p.resid2specCls.atoms2residues(Object.keys(y)),D="select "+p.resid2specCls.residueids2spec(T),M="select "+p.resid2specCls.residueids2spec(P);E+="Set 1: "+e+'
    ',E+="Set 2: "+t+'

    ',E+='
    The interfaces are:
    ';let F=p.resid2specCls.atoms2residues(Object.keys(R)),H=p.resid2specCls.atoms2residues(Object.keys(I)),L="select "+p.resid2specCls.residueids2spec(F),N="select "+p.resid2specCls.residueids2spec(H);E+='interface_1
    ',E+='interface_2

    ',E+='
    Note: Each checkbox below selects the corresponding residue. You can click "Save Selection" in the "Select" menu to save the selection and click on "Highlight" button to clear the checkboxes.

    ';let q=E;if(("graph"==i||"linegraph"==i||"scatterplot"==i||C)&&(E=""),E+=O,"save1"==i||"save2"==i){E=q;let e="";"save1"==i?e="Set 1":"save2"==i&&(e="Set 2"),E+='

    Interactions Sorted on '+e+':
    ';let t=this.getAllInteractionTable(i);E+=t.html,h=t.bondCnt,$("#"+p.pre+"dl_interactionsorted_html").html(E),m.htmlCls.dialogCls.openDlg("dl_interactionsorted","Show sorted interactions")}else if("view"==i)$("#"+p.pre+"dl_allinteraction_html").html(E),m.htmlCls.dialogCls.openDlg("dl_allinteraction","Show interactions");else if("linegraph"==i){m.htmlCls.dialogCls.openDlg("dl_linegraph","Show interactions between two lines of residue nodes"),p.graphStr=p.getGraphCls.getGraphData(b,y,e,t,E,u),p.bLinegraph=!0;let s=p.lineGraphCls.drawLineGraph(p.graphStr);$("#"+p.pre+"linegraphDiv").html(s)}else if("scatterplot"==i){m.htmlCls.dialogCls.openDlg("dl_scatterplot","Show interactions as scatterplot"),p.graphStr=p.getGraphCls.getGraphData(b,y,e,t,E,u),p.bScatterplot=!0;let s=p.lineGraphCls.drawLineGraph(p.graphStr,!0);$("#"+p.pre+"scatterplotDiv").html(s)}else if("ligplot"==i)await p.ligplotCls.drawLigplot(b);else if(C){m.htmlCls.dialogCls.openDlg("dl_contactmap","Show contact map");let s=!0,i=p.getGraphCls.getGraphData(b,y,e,t,E,u,s);p.bContactMap=!0;let n=p.contactMapCls.drawContactMap(i);$("#"+p.pre+"contactmapDiv").html(n)}else if("graph"==i){if(p.graphStr=p.getGraphCls.getGraphData(b,y,e,t,E,u),p.bGraph=!0,Object.keys(y).length+Object.keys(b).length>Object.keys(p.dAtoms).length&&(p.graphStr=p.selectionCls.getGraphDataForDisplayed()),void 0===p.bD3){let e="./script/d3v4-force-all.min.js";await m.getAjaxPromise(e,"script"),p.bD3=!0}$("#"+m.svgid).empty(),m.htmlCls.dialogCls.openDlg("dl_graph","Force-directed graph"),p.drawGraphCls.drawGraph(p.graphStr,p.pre+"dl_graph")}return{interactionTypes:w.toString(),bondCnt:h}}clearInteractions(){let e=this.icn3d;e.icn3dui,e.lines.hbond=[],e.hbondpnts=[],e.lines.saltbridge=[],e.saltbridgepnts=[],e.lines.contact=[],e.contactpnts=[],e.lines.halogen=[],e.lines["pi-cation"]=[],e.lines["pi-stacking"]=[],e.halogenpnts=[],e.picationpnts=[],e.pistackingpnts=[]}resetInteractionPairs(){let e=this.icn3d;e.icn3dui,e.bHbondCalc=!1,e.showInterCls.hideHbondsContacts(),e.hlUpdateCls.clearHighlight(),e.resids2inter={},e.resids2interAll={}}async retrieveInteractionData(){let e=this.icn3d,t=e.icn3dui;if(!e.b2DShown)if(void 0!==t.cfg.align){let s=Object.keys(e.structures);if(2==t.cfg.atype){let t=!0;await e.alignParserCls.downloadAlignment(s[0]+","+s[1],t)}await e.ParserUtilsCls.set2DDiagramsForAlign(s[0].toUpperCase(),s[1].toUpperCase())}else void 0!==t.cfg.chainalign?(Object.keys(e.structures),await e.ParserUtilsCls.set2DDiagramsForChainalign(e.chainidArray)):e.ParserUtilsCls.download2Ddgm(e.inputid.toUpperCase())}getAllInteractionTable(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui,a="",d="",c=[],h=Object.keys(r.resids2inter);("save1"==e||"save2"==e)&&h.sort((function(t,s){return o.utilsCls.compResid(t,s,e)}));let p,m,u="",g="",f="",C="",b="",y="",v="",_="",w="",S=0,A=0,x=0,k=0,O=0,R=0,I="";for(let o=0,E=h.length;o0&&p!=g&&(c.push({res1:g,res2:I,cntHbond:S,cntIonic:A,cntContact:x,cntHalegen:k,cntPication:O,cntPistacking:R}),u+=this.getInteractionPerResidue(f,C,b,y,v,_,w,S,A,x,k,O,R),C="",b="",y="",v="",_="",w="",S=0,A=0,x=0,k=0,O=0,R=0,I=""),P=r.resids2inter[E].hbond,D=this.getInteractionPairDetails(P,e,"hbond",t,s,i,n,l),C+=D.html,S+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":hbond_"+D.cnt+" "),P=r.resids2inter[E].ionic,D=this.getInteractionPairDetails(P,e,"ionic",t,s,i,n,l),b+=D.html,A+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":ionic_"+D.cnt+" "),P=r.resids2inter[E].halogen,D=this.getInteractionPairDetails(P,e,"halogen",t,s,i,n,l),v+=D.html,k+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":halogen_"+D.cnt+" "),P=r.resids2inter[E]["pi-cation"],D=this.getInteractionPairDetails(P,e,"pi-cation",t,s,i,n,l),_+=D.html,O+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":pi-cation_"+D.cnt+" "),P=r.resids2inter[E]["pi-stacking"],D=this.getInteractionPairDetails(P,e,"pi-stacking",t,s,i,n,l),w+=D.html,R+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":pi-stacking_"+D.cnt+" "),P=r.resids2inter[E].contact,D=this.getContactPairDetails(P,e,"contact",t,s,i,n,l),y+=D.html,x+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":contact_"+D.cnt+" "),g=p,f=M}c.push({res1:g,res2:I,cntHbond:S,cntIonic:A,cntContact:x,cntHalegen:k,cntPication:O,cntPistacking:R}),u+=this.getInteractionPerResidue(f,C,b,y,v,_,w,S,A,x,k,O,R);let E="";if(h.length>0){E+='
    ',E+="",E+="",E+="",E+="",E+="";let e='';E+=e,E+=e,E+='',E+=e,E+=e,E+=e,E+="",E+="",E+=u,E+="
    Residue# Hydrogen
    Bond
    # Salt Bridge
    /Ionic Interaction
    # Contact# Halogen
    Bond
    # π-Cation# π-StackingHydrogen Bond (backbone atoms: @CA, @N, @C, @O)Salt Bridge/Ionic InteractionContactHalogen Bondπ-Cationπ-Stacking
    Atom1Atom2Distance(Å)Highlight in 3D
    Atom1Atom2# ContactsMin Distance(Å)C-alpha Distance(Å)Highlight in 3D

    "}return{html:E,bondCnt:c,svgHtmlNode:a,svgHtmlLine:d}}getInteractionPerResidue(e,t,s,i,n,l,r,o,a,d,c,h,p){this.icn3d.icn3dui;let m="";m+=''+e[3]+e[2]+""+o+""+a+""+d+""+c+""+h+""+p+"";let u=[t,s,i,n,l,r];for(let e in u){m+=''+u[e]+"
    "}return m+="",m}getInteractionPairDetails(e,t,s,i,n,l,r,o){let a=this.icn3d;a.icn3dui;let d="",c="",h="",p=0,m='    ';if(void 0!==e){a.resid2cnt||(a.resid2cnt={}),a.resid2ToXy||(a.resid2ToXy={}),a.nodeid2lineid||(a.nodeid2lineid={});for(let g in e){let f=g.split("|"),C="save1"==t?f[0]:f[1],b="save1"==t?f[1]:f[0],y=C.lastIndexOf(" "),v=b.lastIndexOf(" "),_=C.substr(0,y),w=b.substr(0,v),S=a.getGraphCls.convertLabel2Resid(_),A=a.firstAtomObjCls.getFirstAtomObj(a.residues[S]),x=A.color?A.color.getHexString():"",k=a.getGraphCls.convertLabel2Resid(w),O=a.firstAtomObjCls.getFirstAtomObj(a.residues[k]),R=O.color?O.color.getHexString():"",I=Math.sqrt(e[g]).toFixed(1);if(h+=' '+_+m+x+u+' '+w+m+R+u+''+I+"",h+='',h+="",++p,i){let e=C.substr(y+1).split(","),t=a.ligplotCls.getSvgPerPair(e,_,w,s,i,n,l,r,o,I);d+=t.node,c+=t.line}}}return{html:h,cnt:p,svgHtmlNode:d,svgHtmlLine:c}}getContactPairDetails(e,t,s,i,n,l,r,o){let a=this.icn3d;a.icn3dui;let d="",c="",h="",p=0,m='    ';if(void 0!==e){let g={};a.resid2cnt||(a.resid2cnt={}),a.resid2ToXy||(a.resid2ToXy={}),a.nodeid2lineid||(a.nodeid2lineid={});for(let s in e){let n=s.split("|"),l="save1"==t?n[0]:n[1],r="save1"==t?n[1]:n[0],o=l.lastIndexOf(" "),d=r.lastIndexOf(" "),c=l.substr(o+1).split(","),h=l.substr(0,o);i&&(h+="@"+a.atoms[c[0]].name);let p=r.substr(0,d),m=h+"|"+p,u=a.getGraphCls.convertLabel2Resid(h);a.firstAtomObjCls.getFirstAtomObj(a.residues[u]);let f=a.getGraphCls.convertLabel2Resid(p);a.firstAtomObjCls.getFirstAtomObj(a.residues[f]);let C=e[s].split("_"),b=parseFloat(C[0]),y=parseInt(C[4]);g.hasOwnProperty(m)?(g[m].cnt+=y,b '+s+"@"+v+m+r+u+' '+i+"@"+_+m+c+u+''+w+''+b+''+y+"",h+='',h+="",p+=parseInt(w)}if(i)for(let e in f){let t,h,p=f[e];for(let m=0,u=p.length;m"+n+""}s+="
    ";let i=Object.keys(t.utilsCls.getHlStructures()).join(",");e.saveFileCls.saveFile(i+"_interactions.html","html",s)}exportSsbondPairs(){var e=this.icn3d,t=e.icn3dui;let s="",i=0;for(let t in e.structures){let n=e.ssbondpnts[t];if(void 0===n)break;for(let e=0,t=n.length;e"+n[e]+" Cys"+n[e+1]+" Cys",++i}}let n='

    '+i+" disulfide pairs:

    ";n+=s,n+="
    Residue ID 1Residue ID 2

    ";let l=Object.keys(t.utilsCls.getHlStructures()).join(",");e.saveFileCls.saveFile(l+"_disulfide_pairs.html","html",n)}exportClbondPairs(){var e=this.icn3d,t=e.icn3dui;let s="",i=0,n={};for(let t in e.structures){let l=e.clbondpnts[t];if(void 0===l)break;for(let t=0,r=l.length;t"+r+" "+t.resn+""+o+" "+n.resn+"",++i}n[r+"_"+o]=1,n[o+"_"+r]=1}}let l='

    '+i+" cross-linkage pairs:

    ";l+=s,l+="
    Residue ID 1Residue ID 2

    ";let r=Object.keys(t.utilsCls.getHlStructures()).join(",");e.saveFileCls.saveFile(r+"_crosslinkage_pairs.html","html",l)}exportHbondPairs(e,t){var s=this.icn3d,i=s.icn3dui;let n="",l=0,r='    ';for(let t in s.resid2ResidhashHbond){let i=s.getGraphCls.convertLabel2Resid(t),a=s.firstAtomObjCls.getFirstAtomObj(s.residues[i]),d=a.color?a.color.getHexString():"";for(let i in s.resid2ResidhashHbond[t]){let a=s.getGraphCls.convertLabel2Resid(i),c=s.firstAtomObjCls.getFirstAtomObj(s.residues[a]),h=c.color?c.color.getHexString():"",p=Math.sqrt(s.resid2ResidhashHbond[t][i]).toFixed(1);n+=' '+t+r+d+o+' '+i+r+h+o+''+p+"","view"==e&&(n+=''),n+="",++l}}let a='

    '+l+" hydrogen bond pairs (backbone atoms: @CA, @N, @C, @O):

    ";if(l>0&&(a+="
    ","view"==e&&(a+=''),a+="",a+=n,a+="
    Atom 1Atom 2Distance(Å)Highlight in 3D

    "),"graph"==e||"linegraph"==e||"scatterplot"==e){return s.getGraphCls.getGraphLinks(s.resid2ResidhashHbond,s.resid2ResidhashHbond,i.htmlCls.hbondColor,t,i.htmlCls.hbondValue)}return a}exportSaltbridgePairs(e,t){var s=this.icn3d,i=s.icn3dui;let n="",l=0,r='    ';for(let t in s.resid2ResidhashSaltbridge){let i=s.getGraphCls.convertLabel2Resid(t),a=s.firstAtomObjCls.getFirstAtomObj(s.residues[i]),d=a.color?a.color.getHexString():"";for(let i in s.resid2ResidhashSaltbridge[t]){let a=s.getGraphCls.convertLabel2Resid(i),c=s.firstAtomObjCls.getFirstAtomObj(s.residues[a]),h=c.color?c.color.getHexString():"",p=Math.sqrt(s.resid2ResidhashSaltbridge[t][i]).toFixed(1);n+=' '+t+r+d+o+' '+i+r+h+o+''+p+"","view"==e&&(n+=''),n+="",++l}}let a='

    '+l+" salt bridge/ionic interaction pairs:

    ";if(l>0&&(a+="
    ","view"==e&&(a+=''),a+="",a+=n,a+="
    Atom 1Atom 2Distance(Å)Highlight in 3D

    "),"graph"==e||"linegraph"==e||"scatterplot"==e){return s.getGraphCls.getGraphLinks(s.resid2ResidhashSaltbridge,s.resid2ResidhashSaltbridge,i.htmlCls.ionicColor,t,i.htmlCls.ionicValue)}return a}exportHalogenPiPairs(e,t,s){var i=this.icn3d,n=i.icn3dui;let l,r,o,a="",d=0,c='    ';"halogen"==s?(l=i.resid2ResidhashHalogen,r=n.htmlCls.halogenColor,o=n.htmlCls.halogenValue):"pi-cation"==s?(l=i.resid2ResidhashPication,r=n.htmlCls.picationColor,o=n.htmlCls.picationValue):"pi-stacking"==s&&(l=i.resid2ResidhashPistacking,r=n.htmlCls.pistackingColor,o=n.htmlCls.pistackingValue);for(let t in l){let n=i.getGraphCls.convertLabel2Resid(t),r=i.firstAtomObjCls.getFirstAtomObj(i.residues[n]),o=r.color?r.color.getHexString():"";for(let n in l[t]){let r=i.getGraphCls.convertLabel2Resid(n),p=i.firstAtomObjCls.getFirstAtomObj(i.residues[r]),m=p.color?p.color.getHexString():"",u=Math.sqrt(l[t][n]).toFixed(1);a+=' '+t+c+o+h+' '+n+c+m+h+''+u+"","view"==e&&(a+=''),a+="",++d}}let p='

    '+d+" "+s+" pairs:

    ";if(d>0&&(p+="
    ","view"==e&&(p+=''),p+="",p+=a,p+="
    Atom 1Atom 2Distance(Å)Highlight in 3D

    "),"graph"==e||"linegraph"==e||"scatterplot"==e){return i.getGraphCls.getGraphLinks(l,l,r,t,o)}return p}exportSpherePairs(e,t,s){var i=this.icn3d,n=i.icn3dui;let l="",r=0,o=e?i.resid2ResidhashInteractions:i.resid2ResidhashSphere,a='    ';for(let s in o){let n=i.getGraphCls.convertLabel2Resid(s),c=i.firstAtomObjCls.getFirstAtomObj(i.residues[n]),h=c.color?c.color.getHexString():"";for(let n in o[s]){let p=i.getGraphCls.convertLabel2Resid(n),m=i.firstAtomObjCls.getFirstAtomObj(i.residues[p]),u=m.color?m.color.getHexString():"",g=o[s][n].split("_"),f=g[0],C=g[1];c=g[2],m=g[3];let b=g[4];e?(l+=' '+s+"@"+c+a+h+d+' '+n+"@"+m+a+u+d+''+b+''+f+''+C+"","view"==t&&(l+=''),l+=""):l+=""+s+""+n+''+b+''+f+''+C+"",++r}}let c='

    '+r+" residue pairs in "+(e?"the contacts":"sphere")+":

    ";if(r>0&&(e?(c+='
    ',"view"==t&&(c+=''),c+=""):c+='
    Residue 1Residue 2Num ContactsMin Distance(Å)C-alpha Distance(Å)Highlight in 3D
    ',c+=l,c+="
    Residue 1Residue 2Num ContactsMin Distance(Å)C-alpha Distance(Å)

    "),"graph"==t||"linegraph"==t||"scatterplot"==t||"calpha"==t||"cbeta"==t||"heavyatoms"==t){return i.getGraphCls.getGraphLinks(o,o,n.htmlCls.contactColor,s,n.htmlCls.contactValue)}return c}}class $t{constructor(e){this.icn3d=e}drawGraph(e,t){var s=this.icn3d,i=s.icn3dui;if(void 0===n)var n=d3;var l=JSON.parse(e),r=$("#"+t).width(),o=$("#"+t).height(),a=isNaN(r)?300:1*r,d=isNaN(o)?300:1*o,c=r,h=o,p=d3.select("#"+i.svgid).attr("width",r).attr("height",o).attr("viewBox","0,0,"+a+","+d);p.selectAll(".g-main").remove();var m=p.append("g").classed("g-main",!0),u=m.append("rect").attr("width",c).attr("height",h).style("fill","#FFF"),g=m.append("g"),f=n.zoom().on("zoom",(function(){g.attr("transform",n.event.transform)}));if(m.call(f),l.links){for(var C=[],b={},y=0,v=l.nodes.length;y0?n.structures[0]:n.defaultPdbId;p=10*(a.length+2)+20+30,h=10*(d.length+2)+20+30,t?(n.alignerrormapWidth=2*h,u=n.alignerrormapWidth,m=l.alignerrormapid):(n.contactmapWidth=2*h,u=n.contactmapWidth,m=l.contactmapid),i=o.length>0?"":"No interactions found for these two sets

    ",i+="";if(t){n.hex2id={};let e=29/s;n.hex2skip={};let t=1e3;for(let s=0;se&&(n.hex2skip[d]=c)}}if(i+=n.lineGraphCls.drawScatterplot_base(a,d,o,c,0,!0,void 0,void 0,t),g+=n.getGraphCls.updateGraphJson(f,1,a,d,o),i+="",g+="}\n",t){n.alignerrormapStr=g,$("#"+n.pre+"alignerrormapDiv").html(i);let e=$("#"+l.alignerrormapid+"_scale").val();$("#"+l.alignerrormapid).attr("width",(n.alignerrormapWidth*parseFloat(e)).toString()+"px")}else n.contactmapStr=g,$("#"+n.pre+"contactmapDiv").html(i);return i}}class jt{constructor(e){this.icn3d=e}async downloadAlignment(e,t){let s=this.icn3d,i=s.icn3dui,n=this;s.opts.proteins="c alpha trace";let l=e.split(","),r="ids="+e,o=i.htmlCls.baseUrl+"vastplus/vastplus.cgi?v=3&cmd=c&b=1&s=1&w3d&"+r;void 0!==i.cfg.inpara&&(o+=i.cfg.inpara),s.pdbid_chain2title={},void 0===s.chainids2resids&&(s.chainids2resids={});let a={},d="These two MMDB IDs "+l+' do not have 3D alignment data in the VAST+ database. You can try the VAST alignment by visiting the VAST+ page https://www.ncbi.nlm.nih.gov/Structure/vastplus/vastplus.cgi?uid=[PDB ID] (e.g., uid=1KQ2), and clicking "Original VAST"',c=await i.getAjaxPromise(o,"jsonp",!0,d);if(a=c.seqalign,void 0===a)return alert(d),!1;s.pdbid_molid2chain={},s.chainsColor={};for(let e=0,t=2;e5){let t=!1,s=!0;d=await r.pdbParserCls.loadPdbData(e,n,!1,t,"target",h,s)}else{let t=!0;d=await r.mmdbParserCls.parseMmdbData(e,"target",i[0],0,h,t)}for(let e=0,s=t.length;e5){let s=!0,i=!0;c=await r.pdbParserCls.loadPdbData(t[e],l,!1,s,"query",h,i)}else{let s=!0;c=await r.mmdbParserCls.parseMmdbData(t[e],"query",i[e+1],e,h,s)}d=o.hashUtilsCls.unionHash(d,c)}if(o.cfg.resnum)await r.realignParserCls.realignChainOnSeqAlign(s,i);else if(o.cfg.resdef)await r.realignParserCls.realignChainOnSeqAlign(s,i,void 0,!0);else{await r.pdbParserCls.applyCommandDssp(!0); //!!! diff --git a/build/icn3d.module.js b/build/icn3d.module.js index 44f5303..49ac6d3 100644 --- a/build/icn3d.module.js +++ b/build/icn3d.module.js @@ -16511,8 +16511,8 @@ class Events { saveHtml(id) { let me = this.icn3dui, ic = me.icn3d; let html = ''; - html += '\n'; - html += '\n'; + html += '\n'; + html += '\n'; html += $("#" + id).html(); let idArray = id.split('_'); let idStr =(idArray.length > 2) ? idArray[2] : id; diff --git a/dist/icn3d-3.39.0.zip b/dist/icn3d-3.39.0.zip index a0949e355c15218b3520ca81ce303b7c493b0060..1eabcd23ffe740414ca1872c582151657b1a6be8 100644 GIT binary patch delta 1508554 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
    T^}hF2yv2YLHyY`exxHU)TC4C-4uwGWj*ln%g_ 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

    24^eJRAJ1P1Gxo+aJ0-avZJF9({UYD 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

    biB2_S0vFw`&JfsLmp$k20(W%}gq4@B` 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%0Dn8zk^tTQd_44>X+86M69`*A>7 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�N?7&7mat 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

    FXCcqT0^baaxVCc~yg9UC)1tJYW-S~m=lHxl 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%0DnW{02t_PHG3`KfG2(PBtkYKmQx{g$x-0F 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

    q!B#bb8 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

    47#pb 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


    xym*?SKGI_ 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�Uy-J`8i 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

    %_5Bs8xBWO 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 delta 1508659 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%0Dr%Yr%|$$f>v)CTMHy_Wo<-1 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�HsOZ&KwrkNo{HE|he?46;u#o_=2}g4>>~tI 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

    O)b2Z z>cSeVSA*CD>j`LvYB;2#s7;S+nak{}Ukq%5dQ=NuHOPQ8)&Oxpj=$a}povij9Uf4B z%vl#jQu`kG8K0qB!m^6tirkyKT;=qDE3J2TgG|0|w%$<0!+{B&?USts1U}OFg#+uh zyJ^;_+^{Qjt9eJ5GP*A-n4M0LUg_p{wn4BWc~u&8Pb`U zD-kFH(2KY~r~7^r8giQD3)$PM^SagfOn98fW%WuV9%m!}`0&}AJYSSUJ@MW%R)+g} z^E5^x`^zCk=Joxj2Ds0d&Vc7n2X^C?!)ikcu!l&_B5yzxn0SziXXkP8n9<6ALy}wFkShqX+mRpn)i=B*JE^eFej~v&9fW2=(s%o`8{PjZe4>~| z52CL@*Ez%EQN!VgTX94G@4_z(VCIM4XiUqetUuo4;2=y)0A!H#6;2yauyiu%Lc>_6 z4HfffJ{{;-kS~M?5hM*?S0E36$shCdBQLTUjklp~A8h#S>>#)EM?MP zdYaAzd+l?E$OmQworD-Mij9EUhO?3z>rN-6y+~dcod!pVjazTMB)iRJa1Pnau5%Vf zGl+^Ov9=#-o2}D%1iaahRy(@36OwL|f4e+f1eIKlKds;Xm>vxSv5r2pTackx;d;zo zzV-S~2HI)%r8V0?S!siRcAC6u$H-T&*`IFCr&h;c@mV4i*1({l_)T3c0Q#-EgrjzcCt#WbLhd;N-4~Xt`5`)WmW=FG3serjEFOwP#?g8>Z(yh#&P6 zp&r|;pP!T0HIhJEj%N;c6T>5#?ZWnS6<9}p=W5S>8-k3E*CrgRdCT{=5a2xWrrT~q zd4p+czmI&GH16?!M7;c_EgE9YUJsFL%Rt=bsAH?2bJhE2;Fbg&y}|DC%{7*LgGT*# zDcxL`Rdn94TgWwk8!;C+zFQdG=@Q1G4pr2NO~F>(>miSjKeiirMN>Dutn2f4QZT`r z@8&Ht#$el@UnsghliWlmYQrf>R{1Q&;Os3!putC#gsP3Qko>4Y9 zwOqdIV6@YQSV7p~;9Ed^^FT}TV^d6HH>O6&%Z3hwUkiwT(2-8FeVVE~lsJ1b^07Z3 z*C{rk-ty?nzgWL#F}HHlhmF6{AgLQSez*1-4g7`)H%NkHS-MfY-HxW5bfPnt6=Wsc zB#RrAd%TFtI%bwpWOUaYmAlcydA!1C8AZOt02k%{XmplV=j$nkwkT%hbhKPnr@M7X z3meAtDtfqoNG{_HVjsWG%Ov_XmcNGu`~8=TBrWD(oiLmy4+hcm!#B|n=`6`gcA|Wo zuda&p?7YHos*}C(mlphy)di;y+-@R@+2Qkja<$7(pQ|`6O7P!{nJ}^flcGF|vnWRc zV;jO>R&fz8qv$8GN&gZlE1TL8(1Pv2kU@;N4f8L50e@>IacLUDFZ4 zrKF&gqg~$cWQ11Mzk<7~Yg|gyX_5Eh%D((c5`s zl#Ql5StLs)mz0crSf3IPBsuYQ2#k92sT!W?XV^ARKVu_rAS7PAV(dOxsFb5tb zv5eTrP2=g}ij`&KB!kgY;Kj608TCTyhipE7fXiw&>a!T@!b?FTQ9PS5S{LreW%4m8 zn0QvDOIEBzCp@YFhO)?+1BY*GW9@ z>nmnpER6soyonX$$c-l_Fi2(NkwLSTr6R3TBsboh+z&7i=>vZtbYnx1L>~*A9x~*n z*K6b#Coyy#fkzHGS9)24?CGc+5-~V`G+*Tod;Febz^bgX_c%D>yGU#J#dsnfgaTz4 z!zXb}vbp-Dc2qvJXlB_U)Zt#z;AzS>qL*31i>k#!mINhEAItqI+PnN}Z(GDv+Y6db zVaJcP?sG3H9Mxlh)+ywHvUsTxNfaWp%@NVy?VWB%-+mi?3HF>wGRHeRj7H&q)xFd0 z>tcJVuuV3>mRct+?&AqVK6vEryFHVg-lX0hrMvDnE?>!UIlYZ>`7e57Yr=4#cPr`cf>@P{be8n@49314z||hV z2YxqL-#~P2(kqSuaJm{H9e`5N7Vvd3#Ll{?gq;B?ov`iZRbHl5`Z0-~rI&|Rk~w4w z*kqeMM#qElS&&Li1}}Jy7y&BJEme()O3k;wB2f|I=Ru@u?45??w*bO_t}>_@{fEx6 z!`FeYZ@&Z7p{BVDj0pugQ1A0`%MOe;?|>`UH=zF_Ig8s7b?<)(eQcT;`3H}UrA%Z>VUZ?b8hzPO1#p^JW~S25iyKMxZ@1#YKTo;XLUBVXS4 zc4WFyN4~tjX-B@^up<})-P?;<=ORqCHbU7p8}-j*#Lhf`J`o^_$^&vraT+suQXH5$6}*jf!XrxmcP<$weA;K z^d;Us))77Mg(K;2Fs?*=pRJB(v@oz#SsP1R)Mt_Od)p=e-e@n08Jo-nR zokibXuz%mBSAWT7({z|EmcuMPAD-nOA4DU{undZg(2h+29r0FXXuZZQ>VAYU7MkK= zmS>D9tRY)NAFJA0iP}t#4JtR6)B2*m#*6eUdz|ORyzI|^@Xxa%UqZ4u`2HpzL}kL- z0vlA;*dUtzza&{5B_BZT8mC!0KdIDL@#Qd^Czq_`WBBn9;Ct-%1`(#arj7V`Xb-UM zuhAkR^ojt!eWws6Z{&SY4qD&2u%dmtn4!Q0@aGS!d|9H6*&r&G<=iNdp7t}=*8OcZ zlu1$bw_YuO5+L<5StPS6iXpUqTvpL(zAhl}VLD$YXhfBO$r7K#b&(8*!!3jM5blEm z0Boz9*ef<>(}$j4bRYPGmx%e*SmOT1LZ zVUO92l7p(_H7xQ9?ef<$couy{!BehQoRVz-6!&3Gu{Sac7e;oaiD#J?Ni)rOP?{wW zCJ#o9z^r0~QIc_w>Z)&YUqw==gksbf*b7D<1@_K=S;mOsyjm`RAZCkn_WpU2t>Fh_ z>_6mxXOEZj{#KD7;iJ*n>*q&L_VE%Azz(bYRguin5@G}1-yU#1ruWti*Ews9bztk; zY4PCO>4Vo6>~BZY2VVH>=~nco|M=?u*W+(^{o=uvCs(q$fFa__9oE&^>Ddt3XDm3T zr!G)6tACMZ^Za5sPvb>?1~7~V!}FM1EA@MS>vWet+lA=1tTVmsZL2W<(~q`hi@Z#> zqQKoEj?oS-SQS`_tyb2LCrLS@^1bno&u0HW`&<73L&}C@#b}+4;(T#}^aCwzZ6gKr z;U6z(HW+gJrbp>KnO?E=l5Feb!#fDy@>P;OS)BEIqM6e&-b->ni6G?Zyfnmx&X zGoKYQ+OjzLURa0KIxdg(J@&1W1}2zBL!pq)IWG-B4umC!6H&fQIH)qZNZ4$w*5x@^ z#9pMc1h@|`!1$9d0}PuAH5x#IFE6rJ1sn3By6V?BGWx3nEqfrzA$teyvL11?j%y%q zo5D^3i|3;O-^$}q`Z_2v#GOTq-?}(|jb{lE4DvgM&61Hg>r1~b3hqT9`zSU$P<%76 z3_LH?u<2clJi+fsD8NtzB`YsNn(N*%B{LEu1}$Gz<#BJ8FY=;?nUUG5VzX9Vc@iYU zxMAk+ybxR(zdyQqxx$2?eF1X-CAmx$T4=U^27ZwB-H|frwrG=m#mX zEGLrNlhe_zs>ESOjL}e*D8KiAZ6S?-FVcB+-q(iu_0yxnCqF(t`N!dtH{Y`pplE6t zU&8of^s~v{9z9Tvo08g!U}rkwVxTSo;(M^ll^v72)m_&qfD6DSIkP;Pw41k@K zzjwkUzHcJ3<_DtY2dAb{6)f(o1UHqWB_@PS|Ke%1|pm*_u?4lRMD{XwW^>$JbvbkP==Yw8{lP?<)q9J#K z_-X3{f3&qJEkCJU@+|KY#K_i5U*(^Cb;pw8%|lnc&x3F6Yy9 z-op%h>LF5hk6P`26tj^d(&bRhaFEs5ssTOQor7?i9n~AF-Y#St^4~SUr&F-bUqW;< z8sP#hl8>)Bi?@c>dQ15(-oyxs6UK{pnG7V+(-%EByZh1c*51}&>oxoD;p@L{y&W8H zeX%!Tzy1#YJ^W$o?KiCGEIq}tW45BO*f(61b*eMS@&%NCHQrI2&!IN29XaolHOW3Z zAJK8zfZm;0;lg2HgI&HMbn4Q&=1m+7;LYUWbXxR9F>l)XYxc>%bi4Pc0U3(mPSZ=S zgIaR7DGx?b7NcwN8Z`T*dio`tm%eyBetzP-^sGgvdY6Ra!xLARp}^1CLM$Y= zY|z;JSSGK3=F=DJr9Y#efHahHpDVL*MC>PlP|&DG*_cgp2o!P#+Z7WGmmE=VuLnv1 z#2vh$IlJADsPZ(qj7GEyc{FMWdEFI9CE-X`yNyU+7gv&^Z)yA}(OR5+a39r$!6kVqbh1LpPwy34Ru%#1ge{~ zF_LkB1WK?!@o$=9;l2_2$E-0?H6~UKNAy`2i?ONmoH7diu>fr!PVNZ)VKR3C(JqFw zv-G=<2a`XoiX2Ao0LS1@Yc|kZI|9d@tv|7UIc7aO7;m|v7He;EqwP)1_H40P++i^? zii^1U-Wi93-^A6`Tz-VT2p1#t8mnSiiophD^1Jx*Rgtq@H|ayOj3nNbdA71oi?Zg# zS97A*bgIUSg(%DFi*G~r@F=OOMKbRnBUS_6gq@m8dgJqCcLz~?5vMvxv$TEufi+Tp z6FG!If!@QEOkd=1nfP4|9L@#%#?K*P3ra(5Q45F-S00EQJ?FJxM3XtL+akW0JYi+~ zM01iourGVt&LK_ELwTNGOy(^vOa08Cc`PUXu^gLYIc_MDfxA9`^i` zvLg%x#Fc^30&;6s=tW*7eYkf_)Ef$oG(5m`h|>cIY#bKkCh37)N$h+ZMH?V2;+7GyO?Y#X3R>m58E?a z9jy7SmdJvfT>g+`JZOUIX?@JbqTi}=c;Lo6L6@5g&71}57>mC(^zjad#{_(TNV}fe z^|s1d*k;n*kC5PI4Up^o?Pn12z;%tU=0k~2)gfLz{fu02$a}i)+3&4 zL(~PKjraq%5!J@4Pprg9UO^v!L%~Ck(&eUuKSJD|Z^8Bs_Y_SCi?cPF3_%1sVe=hb zq^v!V^-uG~BEJA3U!6eqqvME&+yR5*b@?W_tOn7$5C8oBb@bNLE!gKiPMEOJjvFmn z@uEeD6G8v9$VQ%Ro3j>U>lWOGZ^WaKgEM^e1f!iRwq$Zm43s*L`b7nQ5f~hscIBvF zZctEY+~)Q7n@JKz3pXhOn)LIz1dur!okbqc`Ao?(GBS@PF9 zXp0#$$U+}QP~F|p-ck#@iLr??tz~ApEIbQpgOxz2t*=k$?i%&3EPeJ_fgc!cK@_0Q zb{RNVF6OY6Z*6ZAed2F_a3#8fK*E~E*~hq~p~-i{^K?!ODh+QrXN2j2C*C>mwDE#h z8;=*NqhVqm=gVcB%>j^yzO@phU&IEZ-er{9jCz+@Y%}TjD?k75kFq z-q_jAcgGR{DeZ%m!R8udqWkh~Z^)*ZjGo|GYBaUXdm_&*SQR z7*9(Lv*D-h=-Y#TXz~Tn3pV;d4XE#?O&f5i(R}kqctOEE4UT}6p5dL}j-)r!$V2qBlEY$2)v zi@Tn!77W2az0rthFU#^1*+WlVomk0>+j<}!6L@mVb2b5WOC~6QqW3{Gh3m%?M%$Zg zkJ8P>g4%|E;S=@7yd5~nyn6CT*zcnnm6z$OTh@W%mRbh{sk>B-eg!YH1VKdyhT%Vj z#*lcpt?N)g2x|Z`X#@g#1Xv=`zMNocl$66~B;p4PuTMfVTW>qqG;BSsdq=Wd&+JkF zNFS%|245}c%9v)vB$oVQ-Rr%iU{1WuJpj`K6vhC5@zkb{HzFS}T2RClPN-u{rsjV= z%d=TriFSe+bF|r4zS?^2Nq2uM*+Ih<{6X{u1lHshePUP063ht!`4KRy%4`=0kpSCb zA8zH*4xd~0Y8NBm^DoEOx~#jogEj%Vi&M5hG%Q-X!Z&y#e;e%$14-Z8OW%5pu2Q&L zx2-gPZs6&9R{Pzm;nTu%8XR3Qv4e7bWkmk+)$@%#s40nn^5s?T)gA=8yIBWNy1s9) z2TSS-Nt?0IDM@}>pO$pMtxiqy^V!^5Z|f8#KR0)plAp#?mHhY|*Zn)oW@jy}dbbmo z{4|`rwcP%Ha3w#R9kTqj+Z?w1wc8!K>JD#q_>v!r zrh`_rfkT-OX3J18jj&C>%=(-9%4nI%p-0V!8ZLT(d z$^V}uRh(kBReL6@W{Tv)IxV=*` z5Yxy)j$RR8ME9OBW*x8W9!`y^r3W9XKiXvyOa;c>>!}R`vXccUEHs_xSMwr&KTEP` znmfMn@TlBJHG~b)?ISyuW<2Z{+gojVU{E0WawA^2oAJOckj$`-=HdXHCTBnx$T0YU^2KU+1}ZII{~Ks)~Y|Y+K@pQ%xWiNs-oST;I&N!=MRZ~*m#_K z3TdT;18QA_w%^o*z&R5dl-S3Gy^hytaMBXjZ@hVD>&jMnnpFq)_fWNhKQN+25zo_g zX%#N31Y#LY>@AZawqiggcR943u?38s=9Y<>u?tfpX9oaL)WSMKNXG|%I;z6>3daEU zW-JhmqRDU%Vtp_uM$b4k9LTH3@Aw1L$}-v)MlSJsQN5Z^59jvGYXO_EzHp*3DRldr zHe?*xfe3=M>-wh|K0Pk%Ndme99;YNqhY-Ox});trGJz7}OGjTK9e%yxLsWkbL~l3+)BRCVub}Wd zqwqWLJu0W{boZ3V4UcyKyudqe0Y>Ww^-(Xr8}Cf-PRX22a1LZxDFzYJb{*^jQ`y}c z-uEA4qSq*WF-jT;`S1mk{|3{6Ercq_`gF;otSkQaUi1J?G#x~LGeh$Co*`!kfbC94 zY+v3CwlBTd+7PW%Rpa5POsePc<&*9vIcSi+#3PM+I*Gn!pMmx-G`hwQ&Vf%p>QOnD3J z?6BdW-Hj15c0iv5?8kRsP*AILP+5 z9beyq5mi!usG;)l>?X?u(5D?{X~h*?7BP=T|2a%9E7p<`jS;?37K>6h_oqKeb3Gnk z@{Vnr>BO(KY#~IHY8)l0p{1lT84F3=SD;ojnZL56R%+SWTwRI0_$3f6v@MqxQ-vI) zxiUJ9V)+HC?{te!`Q8=;IJAygW`d8gsac2+qD4&ArWwof8xeM=x39Fk(rAJIoWNRpv}CY3F}c; zOxu{W8Dv<-ACn{b;PCWFa5=(eJVbMPvxfQtg#Jh_Q1%_{D^DSiJXn|=&5CrT(|35s zsMr58pQdm-maQpr*6!2Mpc@PhO5sBqm*+o!%78_ z8#K}t%4*)QcR)LnBZW|3zzKRkf^_H3q6k}Yt$s3Lfa;_RI@kxdwu!%I{s3Jd29gy|QVycYcI1#l+ln@^yUcx=O->Yp|3?w8 zI@vr!Z4t23Teoq8Xor+<18aknTUQ`|Wv*a$s$4DNE9)RrU`%pG#8*SyL%0clR`P?7 zj6)qQVpH$VxXqh%ndIxL&ks2A1k~RqoD&-kEw7%CR zeE(?zc8|+dEP`oPdA^v&g{LeYSHw|=&s| zl|$+Kk!u(4zIBxQ)?hb}c274*sq3g`xTo1dNK(Bj^6JHUw)i1EJ46A9rd(6b0b8hm z0U+vYm$2}*Ab?2}*HgOX9lK_KlUfFn+^w~b5(EHCpd=}3=~QJ$7nWld>^5fZS>>zs zN@HK?GCoTnT%CU~gr?+E@)+G$h3r};PtYpX5&tAE;oqSH`T2tD(V(R@e*1p$a6u$} zAkNdo$qe)xkJlypv!$Iv_b7*2qb$VVnl9D_dFWC*%z?*8MGIL|4>3%CD?3~~V{(o> z<-zy9w*Gso?5r1-?tU?&Oz6>6ETMEWzuq>Y6Zg}hFGO&|@`E6wcUXe=f%SkoHC$G=FyFBl5ZnB5KEMh`62_l->i-r+2>n5(X50t+}Z( zH!-LcTXO?V*odQLP9N#S4RlU#%XW(g%=xB^)B@8HDc1Zd!q|Np@6sU-V9A_ z@N!KvO_zFC-`$zC055X3cyM5cY)~1YYEOlc`8IGsyYLlV_{zZN-;< z#9Fk)s(VqT3VRXrv3$JnPs>VrA?Y_sk`(UxvPOdi0MvbeQy;Q_u@|HPrD;$dW238d zt@>q-6O3+lp1{rw9t~if`7oPvL-Wm|%bib=2XWA}3W+^C`C;(tbw! z@)yKefhUxMyp$-kEU~zWo4E85zO6-|qih%4HXjt?3nu%Q(J8n)J?FPJxnq{A?}iYn zt(NuKuR8M5Qq}K&!R4{{?s#LxxTPBZ8rbyst39;ZQW|oasy9@UyChqG3lk=vj*XJy zYFZ|qKJp;?&*2mCq+cJgZMBv++FU5uACm|xb}Ac*zZmKdP@k~bJOJs6QzZpfg!$t1 z**O{?avFfZs0scKWn>Rx0x==cIw|pTmC5vP*id3nwg_T>#4nQFk{x`}-nBnXt9+Ht zwk=l?Y0MqZW@sjUCLZ-irTwi#H_nL8f}99MXA4(^EZo8)1`a z736GZ2^4jI5cTrY(@^a9c^P5kkbu5G3kkg?b9l3}M8V|$;aQ$DLW@^y4MRTfn%C_zX_OsiM~r+= zKmp3WaUv;4uzYILhSdh&{0C66YcN7;URn@mxk@g7tALjx-?AhNp|4d`N$y1{NJ*Zo z;6^*(IaRx5VZe`U9c@8)Hzqs0!QygBBwKzIxvOv@v}v!NJPHnuFvZnIRSOHKJ+z_$ zhCpiWXMxmk-%H#~*ZmARi#-4MYEYiy$?TPx5pvBK`I6`dIGmu-+y)VbR z(Y-%^9rdGoUwqBJeszC)i>Di4ypM_Mtg*9y1h&J9?HzUV_;?V~j`}~N5pF=}*rCBc z7f``44t_NEkQYCYJym*uQ8YSB2XHwzELV%P>i7CR)GV;3p~I}dA+ClSfsvpP8*!T~I(vsBQm1|WEL~sWFo8QDL3u`h zAYeCCfBY*-z-qKXl5pCLpylEVl2t8eLC!M&DMfyC2LqMs#ibfXZrfCCK4NBUkj~GLB#P z#P?zGQv+`Se~w4<0CZkpQ}EXmo8?DJ|J1v77c?EyOWo2i-S7bUj_>ekpk|tiA&a6- z!t8Mi0=^}}y``DBaYCgCRG*L0=ofR-hTK`G5p>35C5}N}jW`5OlX2ozg2N4eV%92a zWj8=P2Cs5lO&&Et(H3%kgYBO(%t(L6=`5v48ubt(`IC!Z>2v4umYWZmqPa4Ls8==w|VY zJW}!>cJ^G%6&mfk!L-}4L73a}En3NxVd%^yF zmtOq^x;xAk%VCzD56|+C528^d^)_ehz_y;Et_F&Ya3BTH5pQLNDQCcc(hvkPIJIk} z4cs4P>m0mcSY6VJ5Z~Yoz=Tn=&Q4NSt7KoxO}8b|hQe3mA6r^seDH?XV29A+3Q93i zlo8Js>g#zF5(qL?5y!UZ>xjV!boH|kQ2=>J56};oV)uqa= z#~J_&ili7aJQ!YEa1a!KJ%G>{yjw%9=`GeZd0G@H@_50=htD7jpH>tGF)9_BkXY~K z8;npY@;m1&$pZ}a5)!Jn z)TBORqaHxIl8D8N$s(PqBGs7GSB9#M?wT`oy2(J2*OiRYYGvtqx=iMW)CHs5uNl5F zE<2?b(TbI_QvvCJ+H-giXiZ$aTu_oxH+IPyKet1U*xJ-#6AJd%3!@$lhYVzq_i4t< zC=N7{USm$ZR_T~WBbzv_0`*vJITsG>-7;Ui5nU(V+v&RM3t#@A)~};&=fSua@)kCm z>m6nvV}^QGMUTN{MOm*z50$pH5B8zkpzU#tWJyD`&InI`x*$wq_~!Yp*dJPBxmiQ) zhk}d_ErFB1cvLQV&herBWPVh~EZKY8Ho3fv?ou;NFGyc(OIUqK|AFYP=yC=6=|doL z)g0W&FqR;lq%<`)=f!Z#I-g^fEJ*B?S%&anyv8M~Wk$snBvo(fX6nsyMd0G8!M6yz z3Opsbv=%yl#Hhge0HziC7%$kM4x)F9P>Jzd3_Nncig}}s@Q=-6j^BZXSN2ppTKN=H z`Yw2^`l|zJdlTF+9D7cu*}6(*>qSy3vV~wPja}9Q{Sm;}2ynLV>#?khf9uj`e|33P z7Q%qZwEIy)L z5GMS8WN$16XGOwdHNlz%B~u3fWV(p6_y4{1pjFLpNAUxnu}i(gUV88*l6qXZ*HspYR%TbV7COgoHy*quR|W>jbBUg>;W!wV>;bn-~ssj2!&7 zEtd3}#e86EB6%a8+fhB>iaXrm%R3}mqjfod4~H_OWZtyLn#tOo`)TP{)f%wh(w(5n-8QqY{6w7cB>>^p_9}`$PDisKS z6-`!^$BrqrrZ^aYU&=PRknTSeByj`o>QFw6CY^=mPc!&q>Rbw!!<$igE%~u=No;bc^$_7!_Lr5c%ji;O>cz zc6KBR?M~A{FPye=mAI3ZA{)=OWj*jKlJ!!@d>FN-A$gO$slZd6(CFJOqWD)NAC=ITpZycpHLDiS&}359K}i^wKPI|b)J{2^SoG> zFSErJw}VqsQ(E#ADNqPrb5BK7i43Bxm-l*G_~-7{w(xImsL4vdvMp_Y5ZknzJ*Fat z!pp}py8+I<{P9wM`cmFNx&2G?Rlc}dGVYA_4ZZ_GJNL+)oswz@J_b#5yGn0az6OBK z{DJM*`=NE^<$>f?KT>=F=1G5ur#{aqj01*s&Xu$0Ns-8hX(^Pm^6coQmhhUVwYn`a z5OB1bB3h^yEdmvC?7$9xU#w}`r(6c);oxEK272Q^w~=RH(n>KpwNx+&QRs2k?M$gj}|N>AdChh}L*ng_NM` zM=4Anb>fN45F+`DY(GcUq!z z$3myE$v^!`%}4EjbZ=Xq8{>IB{&x4SH-(LYE&nh9k?)C3cK*TFvImfnR;+#3l+RZQ zWPvs~XgoBS5R89+U}a#+&X{p+$qdDv9$)DtkF_*_#AREs*tWo9ZM~SI*O@nNQ;oc2 z7;@2emd@op#6~KFfC3>j?W0kR`i|lG%UD}=nqK;Ed}!WAKkc>w!>8-U!OxEdr{+Sr(xy4!bNd#+EM4=p@lMP0wc3l)JUI zQ0T+=El6StCy%H_AOdzZm^3&q3NE3#>MHLvcAy!&)ffCWv|0F=KSNcmPx+7=F|mSY z7$F%P;AHa1Y`vU9qET2cRUS=Yc~r?+;uo`J{G}g%%jDI3$_BA%OVjonDMS`RL5f2u zTn8jZjQ=MEj_)jYvUk=Wzl(E=Gd-}0_`Ps;Foy!&NYb)WAq3pf>e5>|Mc3~z$J?}W z&QDLlWRem39p`B+ni#iC_Dc)TXjhx0j)U*n`@t*FS~qHtcFjSe0o2+gCB-QPQsh%0 z!S2R?>Tr``+_mr**gn*PS>%d^P|kOW$2Zsn$pjs-TF?bX)8$0o(nIsviVyI)llNOBoc0R6wOhRo?0Nc!_@b(rS~c4_>KiB*aoTK}sU_ zSf!IwTa$n3X!jM(6#|F&wkSQOymR~ry$lt9rzGcA8(>iS^XA)DZ_z}${xvp!O?+_| zB(wZ*Qi#|zr1((r1nnpBe6Gc+MV>0;USJUGrS*gXQO8rfxDEv7;ysOOKU*u%g9>zq z2?$wH)6Y!_G2V_|Gc-WUX&7E=<37C7e|#bx`N=z%JWGDSAZlzmTKA3e4wfBQCJ(27 z(}Fm)NB6cpk?GosT_QyVw=wpf$AvS35GU~t6)%}5@DmvW{PeMshH8YJM!2}wz@ee0 ztr=5FJm*RAR-I2=$-KqJLNNmFIElFv6{S!aOhxuQNTJwNP9|#%mE-r?D%@u)otFp7 z3#DLc0HiC$Jg|+ZhgP z3w{VgwJt+A)C@A^KFF>*22g>PFVe*V&J1M&E?X$rf~7;PYCVTgL;F1GH-Lck|(upl@@K)#==Nb+a3bPifJG~wI~GH5O@I6 zVqYfY7HuyDbU;$t zdm@h3u=hEzuycg*<8S3qr^Jh?&doQ(rZH2f3+!iHCj@HH% z6liNTW$95ny5k>g%Fmr%wrGkvn&E-=$H$Y z7!_GqYeD4e(UZs+#a2$mK*{%X9r-w9^kYcp2?RftDZ#&nS?623ou_TfAy$ z@v5Q4tL7FznJs>QYH0COLyMp47X6}%U)g#&8L%-JFs#}wJWTtro-Pue%_PJtB4viu zR+drytcx*Vq-IV8ln(BcsfuA8Zk7k!U}vmF@-bPE+K<{n(zLN4j0#-nw`fzqJ!M;& z6lgcOrRHNty9eqef}y_Zg3W_0Z!i7BEK2B}s4aBCyk{zZP__a>^^Pp%>mgCNp_hhN zSKywMTvzGoX;Og7RzRUTsx_crGxA5FTrCQ?>kFoV-{?+~^ds|@#`RFvyHD^C2e<0B zXC9rho2Z%UNePc_I23h+i<3S#Mw?*>+=v)(R$p~Mo5zAQOc!aNV&NwMI4Pr&n^QuSua^TZR(kZ9&<=Vm~nG8JuJ6^PYV z-l;8JeA9(kK06^cZ)ipLF`DrqR9)eorn zZJTO5r=g31c!*b-)-CO}5w2!jtygHTR`XEd?plI>)Lqc`vif#w1mr$wBXMgRtXVn0 zgDf`e(M);N2i!=q)JgfGy*7eoix7vD%`>lEVuWN8$#RM8O|fk z$jm>grsKb9z33^c>s5$O5}^)sLuneU76d`ch<;p^1YAq29z0~Q0A#3kPzU2D#>=*2 zK>K{vYtMvNyRRZtQo~h0nAYBV_SYYcvUZMtC8dV-B`n6k=tjO`k93qP&2oLUnOi#Z z2M5vpfY>g20X7P}7ic0JXLu70P|1pV+)KAf#v&lp#TZ_TvmEum!Iq;M}Z-6i(3(m$(`t0 zQF^RxP{j|GVV;BODfwRWLE>&!Y>W+|Q1(TJqME$)BRTvpA0IV}5f zFl0s=(LL@!$9+kS!^}pj4?bN3F^oopv?DL(8P=_cgV)kS4*Dy?$0852qS{n$ZOm_o zwSgT!HugMTtuQUoDWq`Mrx7#LOHW~8gB(vm(g(hNR>Z4wo6Tt4vgF>H625a5W;m=@ z=sYb?KBu|OB#;j7G%fd<3K}zi(6)Q{bW_a(V}EU-?Nt(?kJnf z-%NI8Qw;Hqs&mFJ{5WfWGAc(qzo%jB%GZNP7BFx%uxV83un~PC;_QG^j%h;z{yY|6 z=ERpksuEERd~}xUMU}1=S4Zsd6&L;Sa4#B(*>lsJ>9yVM;;%{m7z;=Q1`;_JQjNR| zN2%D3(oc!vRfEWeI;c^y8M!bVfJVNJzS!1U{K75?afH+73LPka=I#n2haVf`_2LvJ z5*Z7*HE1FN-iWExchXEWUd+}&ra@=|wX%d)tE}?oNq085BdlV_$qfX0^@OvqQ@_>H zx)!0HzJnH4PrP%6$f}-tZl0`Kt!^90L`w#o_Suzc{5iWEJFwU;3;CL6aah_GfiTJH zV_v;cbvSl4MB@g3A>YwB3OquhpAtI9Vox21)9`3DCZfi~8y7^cg2&9d5%=0sU{T*$ zLb33biGo|B;(^&6jHE>Tdtx8XMAPO^b^-r%-VQ%fi-%%IE!PLdihNanTN0UmJJ^Ld&3b-%^j+`F z^3_%21}X#0jEr8$7PULXep3j5rGv( zW0n|#(A)B|_FRlg8|Th@r=)T9a4|9M1gV7r%FcLU3$r>jje^rUxUrcZUEg17Sao>g z22j4S)t1A5ZC~1vJlk_9v&3^10OL*maEHojhF+~rH@W4SZ^|Iwg{4{QBRx=iwQ)t8C6``cz; zfzr6`H6`&=hYU83G95R4LJz34XLw>rK44B%d4LdqKl^o(Z#v1SJ=h{tA(q>e284dt ziv7WVdBejv{c0H!=8l<*oD?aV!^Q*$5wG@)bV7Q>n2<-u^mXzvDN1jC*}5c~C$^zQ zhBZ6(i6J45)DOi^PM;66ObldcU#`asj&iv@s0Y~iipUsGB&Hs=C3yGu3^Rt~fA+Wj z1F{u=;-xXL(5?C6M6R64);9LQYow%BhVoGG6l~XwL~BQkVSS|nk3Icq1bvattMk4# z8Lyun9X|Q->B&D1pS<}#x+@!7#+NWdS;b&X_Gtet`-w;isC`^I*$W8_1R3 zgo?WWd_aT0H{DS&Lgv#Lf`qX4NF@3+7K9E}-a0vqf24Weu~WvkXr)O{(WK{xk7h6B zH3ZQB+7lFflmc|DYwf6#w0_T1l6OVG z`U)rCnDV#*H+3x6vMk9D=CeC7?YsEvbyu-!)c=?u>#JUm8O(sOQa!2Z|B z?I@LZf5S}j5|1?{wV=(}BG256Z?JL4ACqV4BEenzJiovcSx!L^e<*3JNSGXyMK)LC z{Sf$%?%w4u?nZx!*VTDmM1M=K;yn6CoSjAAUa)`PrB{D}@Q%Z5u^eXU`S2|N_#hfZ z=T)^T_eZ0%v^rl;*{WNPpcos7?4C%Rb9cmBf0-@fvW$*uxkDp52$PC3TMmkOR@J7+ z>O3un_yz}!{nh)TzS5$hD;2VR1KHdRtbY~gL4@|qY|QcJ+R^FNY1>gnNM*F&drN1M zt*cIaRmZBTRTqs(Ag=4jWDXub(6~ec6o&B9@yr0jpFDdUs+ajIa%s#{jSKaSXiikU ze@Q1a?RqWIbgG5X1XH##X(11gn@b>cy@@LYrRbp5gqpRAO~$o0--`xo z5zz)43$HT;SChp>Wpq*wq?m(2lwdN|e_e9-<01V74DU&b(p-5PY^l0p6Ti2QQMwBV z=8e7?;QTb+humlN@5w%VXT0>@zGPk)qAaI^+i<{mrs5%`58N=*(%@(O7SnM1Uq|~? zkY2qJ?z@7f09qLF?})KEeg~uqIx&vdzPF68#ZY_XMKRd&$g}l$;KvDEdp5@>f0Nc4 zPSuGp)BXQ=LW$j;w~>jr5z#;$wkN`qMg5z@{wKiZZYjR$5^+IXN5^31a7l2!KHftb z8Y88kX`QFkJ}eud8(?z*Za*O#V%chg7c&-y#m1Qc>TGZ=H)m&&Y~x*69UIlm0bP}( zl8{$N&xV}l+4AF$Z!fTa0Q_lNe=sR8I)1ZdjZt#Lr=PZ9nQS3Jq=N{4Wm}SoY>Bbm zQp|+ptUg~x?i?E0t9<*Ef0N+*%SQXuB)m^e%zcVpX4*bw%Q5xsFo_1xyV8|KJS#K! zYogXSF5#HLMt~8>;)Ei~S1+I`_!%wN{yy&7%;cwdKBf3Wyw4R!0z z@#a06bZcm`aYOgIHFR&|hVFN3=>EnHebKFdIxLidu+9NUFTeHU&Ln)?nfy;W?o58C$DL~)Q{F6BpYx<*9FS~5 zTwaKSMWMnDTiyeDo`is649Nli!=@6|w^<-RqH$z8h$h08SUd|Ke?V-s)zLB>uT_3z zD9qk}JbSjsKAy1LS_Rn|sD#SiU7=)bsHiIs6)RO@I?;_Z=x|AZohV+Qz_tPtI^wlR zVx|uw4B@k9n+#&sdK9x;8piDU;~02}f(34R14uD}hb&Z_*2X%e>3LHd=7d&&cav^E zIOGzdiwA?WcsFCW&n&R7`>@oaGkL;08n6GFNlsHD&%0h zSq)n0-6S5?lzQ9UINP-rt5_PG{Pp$Ie|;6|AjMuhS33H~f4rNyA?9M<#B9J>0_ow! zC4_%h)ejL`$Rk^yVV+>Ef+3sO_A#UC&`%rwr@)aRRd2}z_y`R{(k!mXgSmr)P<$Imp~@T6$xitSPPdJl8hFB(^j!iE&kAsIkZp$$j^Tclgo-7tUax4vaLmd z{iT6RPC9c*TN&%+l9L85c})&E>Bu2llouTGcf}D&e-8Ku$0OSN{c*fWCyr!|>n1d>vt_`Ic$;>C$EdUY?Hw^Fa9V18foB#CM4t^d(tL&Il-{_hPF)J! z;Wanac#Y?j-ngm8i#(@vxT$vtu530!Xu7}9$~9lxwCii*U7}OEAu@a0%bs@VHQqov zrJK=fe>KEmv>NX#ozh`1Nc(Ea8g$Ocl~DtiNN`}ai;RW?vwzH*p^rC)E^pO(es@VP zCpMB)jH83vaxf&%Hr<^dv`G!k+%ZD6%Tky?>e19|1cSFEWjP7d^VC&zD}Q!My{6A94=yeL$9)5-sHpiA)|KJmG8E$T*v&bYya%89olWhkRuo#P>+A#kA6l0YP<(Vw|DXT7w~n6U)c(% zLPL_Rm(!#;s_-IYgMR7t>mo*E^Uj@>HWdoC+28TrAe!u9Zs&p6YMOewvs2?n8s6cq zf0fO(oA&zie;UfBcB{(s*Ob3C(mYG5S9u9qef|CzmH4U0SK}M6n}*`MFCITS5X4MfFNmyn!7*4j$$YrH3f3l zRysQY;Rqfh+`YL$K`KHZ%E2Y zcOaC6M8Ef)eKDg)q@dOvxo$JTdF{4RJ7ZUiWGe!khc+1Uelo?kJPhP3N5a&fB1Qy^j|(6&KCx&%=R}NaW99{r`D|E?1@179uBAJ zoae?4)@JuYCabzwsjWN3T(VO{B=$H(UG;jqw;Qk#2gLgYZCJ{0N-K z;_pQDVXVGQkSC4tU)Re+<1f%-YMtaodX{GKVsTY#8B#`K7@=UG)EMj$I{Z^0%8Rs` zodZ=aqcUfIW6g6i<>boYe>t^Pu>)gzNN*d3o>g{_(pJ?IZx<({MZy?rTAPO0Suoa` zR>msr6tDfh75sVwhL*Q&Q&Ad%(WU`m;y|DWgu(&4PM;Sz)e)^~b(~6&heCF^c1L2n zo5Vm~QwHOJLx~@f%;qJucN2ZuPzcS2AF2~nX`isu=5b9LpzDl&f7<%MUvBNQWyF54 zGF$r!1NNxW-&fXq;#$bo*x0|lo7Ts;Fld#FfFKg!Q|_4!>5r;@Z$J^I5Xqh8wD-1w zqD4h*uG=fq*6r?w@Hl_s^8Z$>B6zT|uwq26`0t3q@K_c7v? zN0r69+5y~$AUGJYPPjoB6fdZ5cp)fPUE>RwN;JCZ*rKkG>cys`>jk*U_=bRW9$^lQ z2r)~gn`^OkFD$7=4es#EW<$;?Suj zM^Js`kw#QW&a{G4#Y7D(w2}R3Dvz%^Q|!Y2e8{|}trC_Q3)*k&ZWTr&z1`**Kbw#w zf7aWKEaCHO?2e4$!yL}%`LVG_h)XTuJ;+BbV@WNOKd9xi@t_+e7xx)a$esQJe$3ug zC&q@5iPt^Cb(LWxor!}3ANh>`l5r76cb#f}W~^J!!4(~sAoeALPn5O_?vBod2lgV* zSKfI7JB4m$zUBwJ7uM=&I+*Yxz%goufAygWmOp@8i|}!>Lm)&7vTB92D({VV5sb)& zgwgK&*=(_-1D&)J>{?hc$&Zlh#zL@@0rV$?pywL~`1kIpnaxIuv!=ZB<6R0juZXJa@Kit+wBfV`B50&@BJE8B^jNMZ|Lw$gFzkUO!z-aPC zDqi@A;%96Ei39@GyIsj=e=P;jK%FnS zddFv!Cx5SS?P|Ih?^In&%^=Ra!+M;AcEO932dnlGASg(NO(G~2C{Tu>B4uY%A3?&K z#8iE>od9Z8`GQcWAXiL+g0-to@fxme0)w%QDgYa7}p z-3evn?mI4Qmc+SOIROVjVi60x>+OSfRRPQi^e@JzO@Q;7ER|t#&B}!#H{0VurMAmPi{l845)FnxpfJC zf7{h>BkMQoG(br1LTpE@qD3Ah@%R=ob$SlE4Iy!Ef1`XVGkWiIMK0|fu?I=QT)yY7 zo5%duz!_JFW)6i~_z%hzYQwm+Ltg3?A{E|CC!1TIJZ?u^T^H~{iF_F=JbrP~zXH^O zsS(PPTN*yHBYes+d5;Ic*0scTpCw;7zGP4M*vdLIyPz_jR#TyQwp0EP43Q7zhxd4b zgEyEYe}0dn&8HokWqW{ZSK*3p#02ytL-4R=YZ?c9g1kcvPc`{TahYgbBbv-FkxnSp zrnVa0_AS7n5xk#~`wd1cq$QI-Kc;b zg$Tmd@iioYF_aNrjY{ntpp^=q`9M>(lEpkOe>n8QA>wilEIEs;^I?Ai#}&+)#91`AbE-3K!#u=P14*|(QqY|YeH@n zZoVf~(};H!tcz8Ms;u4<%C4bkmIJD=(l$jMf+u-H;2JJrnvubsJ;(|orIQ!4@U>rI zf9GiO15zdn44R!jsbQX`!pYEdAI$}mG!;&ICVz|EhJY_;2wLp%T5HO_8zr!l(a#-x zXi4U7+2qV=@6EMzk2VN;b3|)(=f8Q8->|xnVRpJ==oIWcAuR_=aac&Ro9Md8XVENY zC%ZD8rPH{8Q^z!ks~4UliZyi3`9v(Re?xJyOviAc>Eu_JdtD4Wyi`#$wpD$fN}aX3 zJypA&R_Uc)1NOn{t9L_8b&a@!ep%HNK@VNxyL}URWjxpM)qO2yXy+HbI3^cgaz;G= zm2sD7t82=4UAc#eD+=v$nOHR~W~jp0KDY8e7HE5#?5aB`5P?3&MH-K$i6c|_f2GJZ zFItWK6}9)QPU*U9R=7P9X>C@O!A)7$4Sxq}1YYkQiX|PAQgEA-o*7Y{1Q$*bt9uV_ z2Q{UEA;>`Igjc6pf*FqpMynocl%=L59O`C3foSAcsz$A$`jO{Iiu@^(LfNx`wKKxt zqSEi#7kS;ir~Y8tAv4Zpooc(qf1s5i_3fQ}J=)HkmRPh`vzoffh-3qX*W8Y7Bo$b@ z+Tl*C|5C5~gJDYL4dfNfw6tc9rFF9_g~soG^C~sTsC2Knl!8;UvP)SblTvsFx)BGP z8M^S<`#CAtqRWd(QjjD>=zNws8S{jK(|Hea#p##qU6Hec+hP^4j^W2Ye{U*2x5j&R zxY*ceMSRH*5c2)lNQ z#3EkZgrk=Ts3rU=iJ(TptBnXLBOFCU2PlN6(M_J%IsM^o`Iu``#+dpI^fcB>G|kgv zsYz5PwxJiDjvR0;gSDv;e<_@_*3KlSThuflvQboZFqpDY?=VS?2UG;r*&`iIB13dX ziH35j{vp~BYKje5)52?EW2=EagwlmHMWnS6xmsKeH7A7Dgv8BMkyJVp(u2IpU&3Jr z*oKz7L|&z@nZ-_t`8JO(lVgQrD&~0e_tvzc>D?KG=RTH z8ZCeRHtU6lvl!87jhhjeiR3SrVraZ7G!K1UJUx`P;DnLrQPGGSC$uwNXjF#KT|}Ecqs$mu&xI zk|DPpJLiTVoeUU%f0tVY14COxn;4ZJ6k!n3MSTJB3kq){D2H9ZPmvo7TF4GOuSb=V zik(&C$pj!#srKm85H%-Ts6xDVW#k0y_XU2EW;|gQx;8QT-9RV!Of zyP_&ChCOr`M}mfJi-<&#^6}iThe$8gJ`FTGPoBU`Xlla*e^1S!znWOhKsHGO_V*1& z!i_yn$ZoWev4Lh^p(#2?ESn7MxBcmKU(&}?)lxcIdntF>YVf)H80#5Yr1sX`j zN@LA%w>d&T(C^D0e&jv;2t8!o5uEi0_WmV%3ElY^;&xW`+IsMK);7cUJ=$80la5#o z46@$a_BT&rk!c;HmK5J@-iiz`thq{T6&5Me25xe}e|=DFXjz_ZQ(hvNjSgmL?JPth zH<)Vxeb~g>Rod#&0hy%uZ9C$(t39C3q_O}%h_Di#yKP%1;GOW56X-sVT~HVvq=-n3 zuFSZvaBh9|TE9{giD4xjG;f|LP)_-%VUoZ# z69ifl+q3nNIoBvlB|3W$&zjjb(;(JbE7PE;xkjcz8_y-1Wf^pEY?xzEQPY<} zkaxenL^#Kw9xI3dk=EoFOsVXGdI2+am!7uEo!P;4+aO_=S3(?+2O|4WWeFQ5h#?6A ze>I|GOmt`^$SEn*84p)QOJ-)wGVE3B{tdhV2@e6*lWM5rPT_}DZyaTZfijeM< z|4!Qz{WGNPA>0|@k--o2bAmWGS;vk$kyAD^3^y~ZZ6-`+9=zus`r;=)Z{i;M!JF{4 zG3eQkl z@@n?c!9U#TBT|*1qwOnGLqJEvIss4^mZ+PeNuHFb6X!DlP3@KLL8;b-l^*|$?n9_v|44ZMPiMuv{GDA%pLZMLIM|j3s=n<-No&eq+T7m5=f1jT} zRxbM(T#Je2+z@!iJmwa5_^NYBmHq=x)_@20Ns1UM{TJ=*oKT%N3>9WzJV zea$HSDARD(-uH}h`YeXlr_Lek4JECH2CYc_PDSqZt~2Drm6^Ufm!W<(d@|^2xQ3lc z;9+Y-Bgv1iw926gu3s){JB;cEf8HCmT4tuLff8?&(4TXQG5MZbJ<+|J4uxWF{u2!MGx#r>Z;d+R=sc+f8 z=Arj}4L0pz5EEq_fKi$1kgm587_Mm~AfK9f@3R)rAGUUv^9j1ep#irQB(!bQeA!AP zc*`6;ly&97;;-LJ1a_Yqe}Gfa;$r>`TY+0EFZiHy{*ZRgclr~U0KZkxez1V_8eZ1F zakuFDDCcgBa|_O|k>9K@=9?L-W)!*8+01o9H_)vSOzMOZ{T768-*CSncW>v0qq4d) zD!lU7fT!J7>l;8Wtdb_E0q-y1Rq_stor8?f#E#X$dCJBm=`fzpe+KEzq-&TP1WjUW z8yGxzfjJ4(T+2F2yMCAWcnfJ4v8FAIdx5FUPrA)6Gn-tKrN8S9ne)OMmNBgl$*T0y z{<_}ud!FFJsi|@%>(#Xg^{D-%wMrQeVfUm^ZggeRMB{90oBxS)!GgaE&_Q*V>S+u0 z>F=%)ot3d^HuJ<|f9EQn2T^|tDpw4t0il0Cl_FLDLDY=kj{b0(#-P%#xt>o8bYg6J zl7Hz4f|0c++$21n`Di+y>5t$0=3h#O+J2FG-v0|IOy!#RO?0LqEbhmRhyW^lv@{2! zZoPAn{#f2fqMu%$LA!dR_3`iyO!{;G&P+DF#4vHkrp|{*f95JvQutmocc)-Ol*^H4 z@-=cpG6%%hI6Q(#0M@7F@RGU)e;{hb9|F7jI&zbJoY$X!3Ef)F(V<#^_UY}n(tP<=fRC1>Tb`B_@u$2H zg1wY2fU%2@UCrBRJ@+f<>F2nJ6zr&SWg)X3%J?2!ts??BQpqDAN{kBdNQLJxAZY#% zR|{=}sov=hPk4o6w(i76b=#m_l;oQ__yZ!Fqd3u5e|>nRwYH_V{N$A$PlrvS#dZ4C zS*!s!l&gi$za!`sqF178`Ft=)4-2=1nP|@k#|Z!Bf#uxuhOS2N=bE=fXMs~oj@_KMydlL+%?_6OxFl?Vve<#vV{h(UU zsw9rXq~=g7S_N|BH}-Yp9s0>zL)@X>vEh2eevH^+>b>fnio?6ic z#MRgIr9JN6)M0e3p;606Np5H0{>VcxYwg?N0$7r_Mvc(@+If z#Q&qA5-%Bt7FR1>%xwmuHpXF-DjP^n#)JDkRzGUB)sDOQolMZ{oG zw{neCxk$JnL!M3Dye1EjxjjfYR8)bge|5J;(^`|j{X@G1?jL*!sr)2ukw|_0P6ko- zWMB`V9kO(-ISV<%*amvo2#pG}Kr`b;xoBwVqN$bQkY$))6YK^D8a9dgJQE=}m zn~vN+Ns`{#DA3$7J%rbE2n`VR2y?okp#dsB;m+iwBCqqBY*Y_Y-XaN#cl9|If1r9j zdp-r42ra?;;L}EM_F6XWly1YN>(eU;gPq2C6;%1A2^E5&>38lor9!i$3Pcz5Drqo@ zLa;mcltRIqp>LeeW^p!wxWmx5d66%YG`kWfKu;(=QE8Ht<3g(yg=>|`l1mh)t+#hOkhCBEu7nT^Hqf6qN2Su)A*T)y>#>*}QF8eQxP z)SZwlj_&_mQkXFhE5icQok1oss8SoC{3-rGlrjjU&QTd*Ty2~k^2-^5F!G?Raf{%W zEt-lJBwPEJNv`0YVDFS#!GOevm!UF{}>Dp!Ng-x*Q!wVViA`U8;@f5F$GN})q% zIk=~OiL({mF;8*=e%M_n0Ydv`hHK|DP$S}ovuYUB(_VQN@{a`awaMNZEm2#cZNm&o znY57EG%MtnT*jKJ{E4@L<{+q7jEA~3;C57Zr{Xi znaUGPVBBpxQ2B(w}!qHTLw16`@yCTnGi0axu#|O^4Y(KW`ZrkAC;9mWf%LD1Us(Sl2RMZP1|KUi*$t zS8ztj*>SmTlhbx zt2mGT8fQ1r%P;KTe-G*EkJ)&X_Oj`$m!-G8oBZ>SQ9rs}Eav52zkic1ZkHo=TATHu zSRYTZ0%)JN!cSMfS!)mAlqV8oRmB=eCkW;bf9f-Y=pa0T)vY|Bul??* zXC@I3uFZxtUQQS9CZjhK&=4rh;frCjX)jYIaEOSrs?J`-R=&uV3}#)EbnF~~;nA_| zXoSPvXn@_EUlD1h!4^LKoF-qQ4$Lw($x^V)?v2Z& zH(uU;>?M<4 zxK5`@H)7)2QM`zI3T9lcvT-!!bGK6#V=RM7OHb!8xBimA{52=p{(O!ZITouqDE5xa z*>yf$BMY0HN8uCIiCGH%IE$mN8_hl`U zWd@9sf6u84@(Wd^SnbbEEzxZ*)5v5Jyx2g0jWzR3Mc%7=Dwo z#~xg))tF;y88B^=ld+~A6K)~zNox}g20W95K}mG$6K}WNDtu|Tt21d-hYAZz03&KwZ2v@U|%?EQU9#IpY2BF zZIUcXLc@eS7k-qhUX@0tSN+8?a((y;u)pdR@P%FhU&so+Z42c*u^r)OHdtrsD{(O; zf34j4=t{%)s*3jVR0k!_@(w`O-Z|2L_%``+E=Ph$W};9&Nz0N+PXe?g!QX#%VRQKt z#SR!z{J?|4>GGo6Nruy#i4Z+&WmA$w0>?vfyJl-KpxEKL*k+NW^2@3IR(vt*x?;@h zB%UONlm_G-DDXPkLYeRJHxL>KS~-W0e{R5>NbDo511JjlqTs-ftQ{;vT8eXlXPg%k zQB1pd&=8%4&thP$D1|=dEojM^ zT%7+`=h`59ZM*?&Kec=HeAtbiZuOXiKclS~#JR|<6RzN$kQK?qS%|(P(~1Qoe>Dfi z;6l+Kzk_p)>Hr=zB6@^k;(WPC`Bk0x+y)7Sc1No(&Yk>Qb&=lRM7#Ixfjo?g0@chM z>}(ONf_tcg@C=uoTJfiA1luNG>+D4aWN39r_sx)Tk5#)sg}l#5hc7)8f~Rnr3ny9k zK=*nv1-o4_FTDyetRsQyuv2M@`r3=k?(SYEnaaV7SlQ@ zX9#4=8eQ!tKficnjoDUk*noZ0>KeCGQsT-+Kjsf8UK1Q;(G81<{0Fu%;!EAXH`Z(BTXRz<-1S5UK>D zWc}S;QJ(~$8(}I`MBD}exW*<^sXZdin^+~+(+DYFc~hBJlCQENNxf-waH@a6IaZ}N z)nsK8L=6O))>Mhs^|djSN7F@c{`&a%!oLV`?+Gmf5AqKn_Jk)t%*C3O#fz-7vf$3G z(aJIk-eqMC|F^8H>JYm2%73bkt?R8UdCG0Lvc%JPmpM3ndlcAZ?zUDMB5{5WScJE_ za>N>WSLC15iRNcY74P>sJoa%A9sc)ubj&_I{T_aj-<}Pqiu@Tqd-lvbvGKS)aJIH* z_50?t@amQh(MFx`YR^q-rVp&C&hK{xx<<6@fC&w^EpgaOy;Lx)k$(!LN3y{L2F-gn z^!Lt+IvqF-j(a6eqItF`4f)Kmiu9E8+aLMrXlpiLVN+L?vaa#0q_g9b{j>k_pLjV% zXL0fIVl_{E{F%+WT`zkET4G^!bR6`Dpm`jn(|DDDaxoo$%#yO)V|Y9gXG*+JJbib< z)@_`Xvt%}6f0Ib~0e^%}QMd8*`hbHzProUgf12j8iM5FoG!8!QVuJY?uIHSt5w{}N zt7tgznj}cln2dqV@m+IkKK|Rg$8Rs9i~oLiyotsTdYz}wjPmRN8&qJxBd+bj znFs_q`6cr!u0RQt_7J8Wy>_4N*xehjz5f~S+QFOClZ#;I@PGJe&(h1m_wToOu6JKO z9_wfpIvEVTQ$n;`SDVKplqo#m}11Gqe?5G!bnRP!VD-Q??Ebih_;^<8)925emHNH5@7q7Z zQNsTtKkYmM(XMuVbJrF}SlSH^p^{eYngKyXHb~a1*Ev)T7d1+UXLYPa0C4Lm1Zp_j zxVmrhh(!%ZAZ{ZkcEymcT;B2$H%^xlC?!!fspPdY*MG?7brI8_25wn&aiQs)CB3DL zn=dZ{A==vhXjF7ChKK1&6%Hs2!Ezy_?ldhIdYEv~)`Hm@rphE{`u_icvBE3FK*&2Ep6?Fy?+hDW@gIdr)PiKfBWYAxye&5w@9Z;wunehF!U2phWK{g-WB#~07vH`SK4 zxmRsp-Dp!4+}w+twk~xe8ZZO;)oVUYzJBt=YrLmWCNEbX>Q0gZ+wbcJGQKiivl-P9 zuzyD6=E>givCM1yEXgvvsVP`l*Z7KAW;!(mn>1{h^-x7>?^wCnD8FO{?Y||z7^V!>9qM)+XU_7X0=QZD*yz%QtvF^AxpE*_(gBM}W*_d(e zU!0yW%wdl;?p}wohC(>$#~a` z?GMWmzfXD|kkKTGr`-CQ2}vT}`Nd=9sxkl`F@G9jzW3@L9*1@JTDe8+wRz~ zLKxO+haYb7bUN_)>6UMy5U7H5P=hMH7vRL^`-m%TG`Ws*bZ6gjZJlR+`F~VyA$tc@ zQpmHsxObE=HupW2dftZWtsczQ?8ZDOf+9}XhTAPRqou!cohDFIA_^eDI@Jmi@4Uo? z{>sK5arGE?5d^=vm57;v4iu=1dhuc(vwXdH;e!|Hb!#r?1KHis)PSpv#84dl*)Ltf zBNhhCXa7c|2J__jB#?(i5PvjqtyB$|r%<44+_{hH9dc*f`at%LvLu-RpSVeQW|Yso zVty^0wu+mi6ce3p&7&OVmM#JPQ*JpYC^)jNoN9ElMX;_n(z3xKuEZFO4eOjhU8wmr zaMi??{`Vn6rB$Hr_ce9D1umhU*VM(xSjN>JpC7xOuia?XjlP9e{(tDF7^j4{`RAc- zYeutM3e;mZrFYz13{{)3!j6(foKDesG;kJQ?1>|y40^Qrdb10&JD-Dq0iGO~xtUGz zNwP?a8F)*KZyKoHUe42qIJvI^E~N6oF9^yauydLNV+E?Bi0f` z!4ym?dUF)IAj!(HW#5Eif7jnZ7{NXM$LgRq73Js@@t0`#h<}~s;<=w@qdmDen+!OB zJlMYGi+Qme`QgHjxrhI@nn<^+Ns-?qSp=p^ex%utouoFuLf-;^d{Bx4Q z+Z^ZVbh81z5TKtr3x&Xsk{g(u!c(jsJnX_)Cxgp&`s@{IFUe#koo3w;+0k0H@#xa38A?14vN zDU~sNr++#Rbv1>s&|NpkJR+#l!$@442*G=JZPY%hcWc`xF~I$<#=_KRx`0|l5aCLNzwWd_2tE~7 zJ;kbPf&b0(M&5V)*7GKyG*?0SqCnnd5x&Qn7JskQ#0cJInvJ|}pWHdrKIdmG+COg9 ze!pLf0iG!Wv4LF_#vT;<{V)+8IXDRMQO_tPCLHDzb3?M(016@}T?=CRda_oqLko89 zh3yj;h!~T?B2@duFBweIYs_7zf{6LA6f_;>BVi<1sXRmU^Q|vaXDVSDVO|>8Kchs_ z#DDHIXmc*AyqOH4mPJYNEo|LeRtJ)SJf&FOgUgXri}h|6(OQB?ZsFF}9t?P#cyZp+ z-u=azJYjW{ydl!Dl~I4{aMe$O+EK6GcJ!306s!fI@rCw$oG+&nNX<|tz+}Mo7=ng> z$zfGtva}#1&vZD{i4YF0qCu*HgXu85hJWHtvETr!cD%J`7+L%F&vJ1sGuC|w)8Ip_ zTSYLeG4Tz|E_kd!h~dK0#8SmPQy;YenWVpBZIxP^4zW$uLF%R1c)FY{SJ~cNyzfEY?y z<3qm>D9jU7?yO-Rqyn~SY4V=d1db578**QJm*@-tMnd2N`W$lM)wp}1-zPfTEb^^d z3ou@z689++C!ojs_qNu!L6sif&VTT!OqE*X@7FgIt{f3|g~{^8F*q)p0G*hSQ9PMc z!Dyu@Tv}?j)J)>*6EJdr90>?NYY|y2=Ld6iZnpE?eSkYA@Mr3+wO`X#~L;R_qv_cTyEe!9dle@FIVlre&TO49ga*_xv+sR0AF(~ZihZm(n#rDT*UF%Yvi=B92%eK|p@ zD&PhiWX=y5Kg0nI34I#f34a=SV7t+WDZdyrK`A1_{`XSksHv68WCiR zkR=pL)}%%-L%SCVDmBKYDon=j&z4hLKu6xVEJVss_KD{UC~UkP}lF? zR7Nk@)7Ad9y22~RU&+ebSWWwvs$8NB>Q*MojBI!s%{DRZ9hEYMLNr8yX9c4AkA(^S|K zTox!0f9-VS`L_S{!{$MdC@GBi4ZGgx_3NED~ALet(=79uG(CY! z0~&2s;y-&Ljh06M`6jF|g%;ZzcYgH~0YV9Facz?h^*~%K`UBKVbF1&HN zySV|T=+5iM8#UK%8n&mq1irxyL%V?BHJzXu)od_d!LYv<*B%({A#7#oHxRc6>qMob zko%{i2|r-@$4*jYF^bEi;m}cf3+i1crGgyJ%00$E_VAc&ab3!{G{qnH1T$|ssfj6l zxX*7v*#19fXMe!806nTK#jKaFsh6xtswnyPka~H_QHD)z+z8>uX~mCHQaXic+xNs_+!mew4}BcYfLd(6vbyPOqX&`WwP0UVjQX0#k$=w16M@P5Gsw03nlj zcGFI^%fHh1c^G`Pt7~*jy%fajHV`|79;&PKS>naERB3?-&*Vy2ex)dI!;TJxI4_tF z*%lrLm|)K!-X1`ujwYRVZ7Jh&=e_TgWXmIv%4?ipg#WD{tb+s(I5fu69v$`rNKE}c zEBYoY$A7XYSmcLbA`N8J6DKzoJnsC}Yw98yHDzr6zv;>-o2R?~C#5{xkeVHSoX2b_`bO_l;Q%?r`N&cD5{nyJ5jWIn zrYeVS66|A)U`d{3BKNeQ@m6a-M;p9&BuKJ;m46+J6lB^7F@KEK11mFi~VCRzL`$q%uBY`rTnbFLqB)LlR- zLVpLu;#C(_-N**pt#EQLIM9Y3TX_kwV5=sdxya;2dZO@wVouLli9@aPywToxnrCio zJ}~v3gutD~L-n6Z!)4wURUxmb{Wm2qY98fVV(ReA**zzFf$8PAy z&L~H!(001)e_`EY<=!mZ##{R_+bD@duYWQu3X>n zf#F99{bSwsJFr^#ShL6M^e_gC5XJ}ijT_D?OG&nA9p;~7Mui0soLA${x`Tk=4u37& z84NreP3>--W6HOqz=a1dX4TsX*Q3tl&Z~a^8fe6&R(t76;#Lz;#sB1A9Wj^uNeH`8 zm7{HVzX{=Z$I=2e8#rx=_{i>%T*EO)KdoGI!h18ISER2luLHNr?J|Xg;zJ)aAmJ&o@JPLc9izfdw)Z>qCWFG?BFb6EdJt4elGEE(0JDalO0Uq3GG7i zx(orI#Phk8Ph2bRVz%Fn4s43aAn^O@3biiCw&czSdJW~Of+6eh&cZoKvF;`XSm;jj z8JwldCEHcvGJ1FRUxQ~mXt&Gu%rjxx%eGLsTYUc4zYd+|;W!8s*w;;%_J1$AMTcz+ zU{^ZOD;->BjVeWuE=0BZN*{gmaE*}qt@WEAJ5I4jXkRy@8{mYjxY$LeI zA)<0GOBVfo_N8Fdot6C)7~1}M4%EDg0a$560a}z0T#V6i-~KVvemt;$ls_Cs2sxU; z@*E`*n?~#u$~MNEA^~M28-J}hi?9>cn$Z$bi(C7Tl)eI^e7wO)0WrDgtmaYlAULb?>Gn6ayIuZrzEN$fMW*Cs`v>9oHo)Q z*dJDy{dw{vOms!^d9c3(juKPryL}H3pt*tb2aa>r9Or|3!`Y^`IAhv&7Vvwss8lw}%IBl+AOtoQ;^|fNsnp zqQQW7B^xuTqGST3ki_$4IbC_Tc!YNI}eMW!rlkmt^AX3X4Cdwy3wsDY@K6pAYr?vW81cE+Y{Tit%*9e zZD-<%Z6}k7Z9AE8l8HCpo;_Q8s+P!U|K0C%-`7=1Ns;K}{;G5yFvSvM2`xhO z`y@qIzQ1On(hSc55teRWyG4!z?)epJ*4K;~&%Fe3R?Pm=fxywb1ohTO)j$RNMW&7L z=jbvA?6T6VN7#@G@HZsQ=GAE~FYt7Gd$|P;^6`i(h-FxJ{x&g==VkR=*i1c5rB`2K zXnUG{bl*|i>n^LwZ+G+%!pSIqkk{u4`a2lI)9%ku#^2ilz2AHmI9^wQMQt&DXlQb)F_+UkMic4X`#WBLm#JV($$Y*nQEAGUE&ckLc6^w%C? z-$2iKf8LQ@iE)8#I;?cF5^BZ$BVh4E3N9VOEv*0tVzWDJisW4GG$WF`rLa4((m%gG3 zq7fxV##nYRC!2zi-*G9WIhgqo21P%=`Af(sOQcmkhw{ddXLIMq!ZR>8?8m(r_$eW} zz!5tspigDX&PXRNU!hj%6?Zn00&=N@jj9ChjFP_7e&nv6#R^YvZj=9P)(np=K0UKE zko4Yr@{Z0W4A=8T~*mxOux8fOEZ^Iq4{jbV{LkT;V}8umZXuL0yA{u=ebpB^6i!DcuwgV zOhUdksTYr;H>fNm~`u?=e#S^^;cpLn9PyG1-!*^-OWzps4v(Ysn{E4HHU6bSP z(nY|k$a5ji`g09UgPZ5w#J$18j+klhqH@=W?|nSPGd%7jN++Jw}-W*0~A_d-9B;g>U4^aOd~* z$z8EgAFzO>St9Elie4qr7NmmMtN-9vLDQw%b9vWrlj)f;Gcp9k8tT(HI6;^#G8OTO zV9XEOqc)AWeW}|PBTnV@{lyc=SDwa2PKQ%MZBd)TkHCBD5ruIBso@Qol$CR&9n@2! zWpKgDrlsxjT%Y)vrQ2v%o^ZKNOV;IyC*#9t3UWkeskVZIVX4(fmf_&&x%JQdu8c6m zegVln?l;`cg>yKR`AI=>PqxI&aetjW)NS!v20kx=mmdrJM47b{qSFlKiYser~)H3g*Aq}M(q z_JHV;>ypFlHKiTbh;~5g?w1JKvebkYKBa*}qJ4`>@{-hq#?_L9hk;@sUF!wS6v-ej z3n^Ea3@^&mGu0@ES0Gr6+PY6G<0CIcxNXnOm=FU- zC@ye9GfF_hYndw2AlRrZU}5z%Jql^oM1bDUkWE6m&*01-}6}IJ$Z+ueF<6m6*2d zc`b*NA}kKIJ-hQx^5LI_0@yt}u;#5$^&UZfpeB94_ejp1A&k!Wbuw;m+-PooXT+r1 zEsdOT$-tj#Y3x)r$pYvEm#lZA#1CL;=eG4tlJ<=H@TpT95h90q9JS|6N2*&ab=6}`P&_1#SZG^c269~LqGLUCi? z%KPT7rSNm`K@VtAotLZHJ}0|YUWM~MTru);dj$n~gqq?uOi4wo@o@>L^2F}6h z%3?2=ucYZB87iypSw`F&I!&QRt8*yeoi%s_H-~j}r{6A@0!wEoAIS!cR?qy?t+cGI z)wx@ijgac+0@2)MV>@e-2HG_w5Q0`0+(RUSg%BNdQ%sLooiZtJ1MLDqhZDeTrR98me? z>JkHff&+A*B}#w(PTN{fhUE>U=q{xOw{f#V445bemjWj{cCQ{iZjWDHC1&RZv9ht5`F%U+m{fB$A#WL!toU zmn38e9hH+gUOco+l)yb_*o;8#3?%yaLRV5i1eLEvzl3SMF#_5VH$zcji*EqTSz?of zxWFR+mZ7XV2!2%5Cw7dBq0Cdu(Du`xb#p63dci+d(me-`=WE|`{$%tWZNpsDNqw3g zmV1M2$ziPv(tju;;hh>b>Tby`Yd!(V&mPQKWxf-CG@eXF3YZ&BXRYCrv5}`p?rNbk zZ++IWna9&#X5dM&?hO?c=!rysu4C``1o81M}qU%K~5hkaH$R1H&`Y`Y~>lz#k{KRCiS zFfx6?qcO<()h!rwS&(o(zX-G7)MxN%@CWZCWloD0EckN;69S=INh1*q56$ABQQopd zWS9sVM^GYvyE&2h;a9wVwa9w7c|ejiS3RXT+Bk!y#Jdl#_sj<|l+`4l#km{Kx$C(R zv{4KC)C|i*bhN&pCVXRpFNY&ZaWrcThGbzWmn+pE=LDsj*P62_A6}--}{}lW$vNbK!fB zTwj1}4^p&I^0&3ZaQ7kc&b>W6#OwM0K3bi;%jrL^Q{?e~B|MB)I~1%hmpkaKrmE;+iN${OG(PyFXORR&t17iNt-b^W>AEb6!K`kBMXRRoe zR5<|^2%=Rh2w&UxjMCKK-Wy`5G#BpS&-o|aQM(6z{ydj$)nZ(WKZ5E@MAhJ7={z|1 zl6^}A2~92f1vL!svc?C-{2>E@H*lU%GNAZSG9C%;M5?0t04-!wEI31(60QLsp3RjY zMMf9ozmc1k8oS7F9vWdo$eH8?K~udfP4T$z$8F z%EC+XuWhxp`owzsC6NRZArbr#W3%P$IVT*^TSG0AMK#Nia6d>0UYCcZGnzrUKI{-- z51V0zDp{5K2lAP+Q7k)QJghMwT%6O=pEV5iDGSoite6w)L`fp-^R2Xu{I|3@E4uGA zK9&pbxS6+O$G^W1qqslpl<$$UTloTDDe1w9&iH24f8gYdEGBWIvSIQN^iYr?a|}+* zOBNoE1)fUbd`Slyk&14J~NWDnHA-wo;as29?I7oPpMtyvMouNqFaSB zz|S=m{f0~$#S)hcaetZ?v=KGUF3_$gs?CNHH%5ke* zz?3@!VXreT6|mLUe;RW>aAlBpRvheG zD`is%_*fFaMEVCJ)0%Uzg~aQK<;Qm5yIEQ*WTj@gaDFe=G3JN(c8Aii01>+e_Ffqm;>8xZ(x-? zs#nt6Jl@6a)b(Jmko!QJRGSOzuM}?~rF}9yN_#NMxzRHzX1*{17^C@QdV}FPY*Xn8 zh8_A^FAW^phwd`z!vQdrfv>Q_w=jzNb;|=PuU%=fNE-7S(|Hx29<+|~s`h$j!<&k) z3j}m=6=C*;9Oq5@7V_(0LqoJuXK*;az_% z&NwYwqN0NMKxS0-i-vp0{o#Zu*BEHc6lkgF%{8egKV>G#-k0NIbd?2bOffnHk>JQ2 zZT;&U6DZ>ua!e7bNg)owhm%oxGZ4f8n$v(;`%eLkT|)j)J3)=-a8~XEG9chOV8Q8=h_jp>Xkz9+Wm(v;QZ5q>PIVx4H{jHC^ z%6RTE>imT`8d|79vlvD=jTZ=@!`bRH7>h$4_zr?e14MLmHc?~+=F+s}ZazRk^3=P8 zqf67Wb0i{Gxo@XhX^<>>IgSjfJDYFS_p3o%V0}ajpj4tZt?LAmjzA4pzg1yS39}9W zsOpP>P(Dk=Z`_(6dNFr6N!#`7duDwb&+BoTTjM!$Qs*mQafaWTJeMKce?4;;9?7JQ zzS4`Pz~{cXSv7nUZ9&K(vWY|nWr3;&7+1Tj+}I_@LR_y%=NS{xV3$fGj&IJP*k^vU z6a#Vhx6fvIc$ub_-}6dx0h+O@Kr6nnrGSIzinmk07>V*ce0Uz;({91fzuTw&S?r^g z#O5x6^9YU=;%ot}5uctm6-){v--tNy5Z%Ao0ycj%h`V~F+8b8>R!J>^ATtr7N*Yni z;V|XhNRmrM56k4u!S$zhP;C=Hnoo1kkNJ8R(2ENp6ofRS`c_x-!IZR(eQFaf{wN~I zBl|$RB9c6E5O`X!Z>DZ(Lwt!KL2hlqzYAVePA{BUg8NNwyup_h!UTPNTeI-0#Hlv@L=o7&6U{?lP_hn_ zspz4|iCoV1fL;$#zI4!S9GaVio~Fg)zGmfO)bP1W8*f(2VN{0*k2hZ~{*fM9JI8}q z?6Qu6Sb!7SsxEzUa$P(`Esr)KxY>X?3OL=8luFKUq1#RnD^(KPiGR8%!KLXd+ew<^ zT#6>~;8SCNAEWWK#enBsEP-IhAgjG3hW@~0TMW~UIP?m#Bqb+0F1W|ho;=oazpw5* z*5aJ1%jW!ybNtXVxZknO{?z2W#wL0Aj)k%rF7Img>3{zm@$62aX(-!N^3mUs0{B;_ zpDYeUZ*wuorrk3xzBkG{u_Z%lLM7pJtOEN{rj#J1rvt+z!O)hy?MKI@6?c+Nid23~ zv0^T`kzPZBh@5|WQ?8{;VJl)yEar(#^s&2Vo7tn%Ng|xcYWf*<_)BMx|2oR-{lr-e z8A6}c6Se$B5c_Bhoyyw&m1BUJ1lWpTEiI49!!XG@o8GuvzsU(1!&sFc)pJTFmGr@;w5UM0;6Wc2P5XJE*U)ywq5~d3+yX?b=Xgh)$(YXZ{uEpUKD@^E0gG+ zdeX3LqO78DYB~U_dF5@_l=iDNazl7>sq?q?)86@Xgm&96V{P9Y0Q+rCHdGru^Jx8d ziq?qcTn+lTGE0lbIr{p2TpN-q^VI0V5e4m%?W%1kXdi)w2Oeth!XJUJ4T_(6ESi-s zBs{@s_m==7RVLlW+k8hA+0VR-@7$jGmnm@mhkR)FRG+kHmAS0P z%M$?qub{q|ON7r7kkY!tIV-GlhHoKkJ*#LsW^4ASRi7fH`%EE@NJ|VQE_Tn|qJ;az z?J*KZjqY+{q}izVtzyL8B?6SbR}NmBw06TZ^zoaN78Q zR(oMOS;w&bHVGy}Y3sY1*TA9yEn*w@R`r~-A_eq&+Mn+gz#DWLa^c-cwcouxH-GYb z2{`o6Xt%l`eVWiEfr6j2W@vfV-~+$sLZ%o9AcMd0I)nc}0XJ-eIXZaNp*<44VHZ##{U{j-0QOs zN|#&SJF!IGges+?!DQfm^n!}FkunN%v2br0f^QAffx`J_qYQ1fVmh(EY$C6Ae;;qy zRz5|T-dEv^aB1&}Nqryv-q5Zf2Xi#6d})0wzS;6a57^sTvKOosb(s%pQhV~ly!9?X z2?j-!k7d&kVO-9>3=-DpT+5FoK&~1h3_n+IQ#w==qsn9o>M}MwOV;Ip!b3`(OkNk! zxM8XR`{)xDE`vs}IuBH&zRp>rJZ*Twg%p5$yIcZcrM zKGF@mqq5102OGLg!5oERA{5}E-Z#Qwacef@@i8$f#*ub zn@nIp$@Ye9|An5w`7Kv<^9Q)!*`-QaExeb%M|CQiolcuhxay|gC?mAll9|omfY5#LVXa+wgNgpCl0OVL}T0mrB3~p)2mI<_~pqpizBq6RW8@z zV6+*B$_V6GuNej&Ls@2%#``~N4X|xVQ|dRd9I-w!$L(uc=rUkhG$p~kEH`uYn`(Ve zG?Kc)xD~y)=fEevzw;1?^!GoyXY_NA11~M`l7-R)`onA~bE`;?g!(6<(l-Rd|YfMpy*C-tw*OOh-M0cT;w_e``oB zB54r=9xBSkq(AOYahbT|9>Vc+$oe;^G|&mEigY8whuJ~BBkFjB3i5x}H{Oq?eRl?iun>OnO88veu=H($o2AF#WUrtIg9Y=| z&*xXCLZcYG_-j5WXvSNpI5)!%NZ?iQ2$5KB9BoF`tSnlP+x}UN^{a9(~lpRikYfJ+%mPW!gNi%rj9*Ae_>`NbG36P zNliP%=?6{8rqqvS34{FWQRII$86GmBb0peNJzJ-+CCE!J7qC2zDc%ds73XQIfR>cT z0GboUgX@?qw%E(SD!iCA+HOLVc4#rk$J?&@VTA9~!x$13j>K2~Q;ADJG+U8-Hob+d zVV)<*yl9prSI=tlj4V${>;H*T{OqdH(0F_%q?lw_ygE{7{HK;oYzn&Oqh)GYX9wKJ5niAgr1g%?r?rgp`L`q$^E`SOGKQPav@C&b-bvi!=z@S8 zAH<5OAK*U#?pMFo46@?BGOsmiUFpzEH=aXy%EKcGv>3^_)Qg=iu+eH7`Y9vQtN75W ztlyE~4ZGtEFVe`;b^Rw$F-<^)k*GleiYij+F$@CMMrPv1;$~)9B<~toQ`1?>{pSE5 zF{&#f5~|~o4n*<-*r-O5B2-Te`WNCwdB(E=xEQqNWmUcUBOAkcvOCW1>a7pF!9QOW7YVgjApD_P5T;kXJui?_T_Un}?EA!LK``3sG=ptw+nXN${ zdEt5aPbrek^3DkNJq$MJ{;Y8kCdA~z#NEyKZ%w|Sz|wCqC=mA8?C$pu=9=qvoX8<;{kS``j>(+?f1>d(X?#{5@<2RKL>cF143lDO!nDjgZUbG| zOv;=!H(nkkOvT^mTrzgKHACDIb__qywVT2Sh@sW*(dkIJ|HNyKN>P?2&me4H{+KNJ z7X`4xKD~(B#tq6(l*8s6aOWWkjrOO?ap*`%e{&G|$#xs|!sjs%YT)% zo^#jrTYcMNy|q2$Tnyb_alUe8Q)0+`7gEYFFp{3{I|PZo>rV@W@r60)2L6xIo<@gN z9H{HIP?R3b=sp`|K(UG46J6({6YFpIg|gErYxOek@|RJ|1G6>NxMO3Nz&I7JzP%Y z`#qllYr%Y8MWXSgkw!D$1~#ic)#Yyn&(cPr!gz$BCzLU?jVB-Uug+czS){8d*Clu5 z+74BV6{{!`$~o0QhEY`vU_ zTnUx+7RZT>*9NB1WH6UN6&T~pjI5QYCOlLzCM4t^L(=#pbRO-C8VmEn+Z%r7rF=LL zFpstoLIvse+@?n1<;B6vNQ4c5vmD~5$Ve@iYZl7_`0K-$7AVH}VTfV~pDiz^Dq=NL z(5DB;n`*8$lV61{tc8(Sc>K)_Q`Ve8@1U^$f*9I=MUgwN`%X@NDUNR4 zn5uwtH~YLjX&$`OQySkqs$+@Zc}t97^YfX|I>EdHl7nU#l~&3erj``kH?EJ|w^T)R zQeQCu{W>0rPbR^UQvu%(BSaCmv4KlvM|!koo$~l{C|;JUiN8tu-!P`HEJ%R4DWU1x|=mk$nP&?}8akk-}x~ zh~M^3Y|veiT@5LQ+m*gZQ38~AjM{_~vz`H9V4x|DEQ3zG{F!2E-mK3-!!hvJdhzUv#xBnK=kjtTUuSGw0pq`CXBGlP+73{3>L4;62 z0w_D)cQ{KQ-4Wuxmww)zX}N0dRJ(5h-s~>v;D7R@*I5VoKf{h;mO=a$GyOdz)Gk2b z`!Fb74Em{O7+7yWK%-d;=Jb}$Pzo`0m{5m(sc_foaN4q%Sf_4};>V8lppDeFDxH!e zl_>ry%4dI=$!cl0oI{+yJ--X3xyQAl&T^TVTkM0&2Rza`J18 zQ;5Sn{JV`un&l>}{^q%tpooKK@kDW3Ikt0j}SOq(dL*DzWGCd#?+h7T~S9#ndEW%8P3}HoVg?BT-%hFB_HJG`oA40Hh zg~T*$%#x9x*sA9mj3>$YbCMgwgGdg_?N0XN+rY zeS*uRIEEy^?RD8QgysHI1E#z`;63WkZ0&YqTpJ*Qj(YB4q+0SZ{sU;Lq@oayxMgx2 zIOQr(NEN@x_|{wB@2*5b3-vRgq&t z53;=Zsl6w+;QAv_rra1pOjiO4zSjYc!p8fgMOkxj1zxOeg-M2poykM0*-4!Eq@IX( zv22NS?n@=_q0VkUe>J3b-VcV^MU>o$lv!ZF%BkgjDgL747*TLS?@z=LWQq3JVL*f&q?(H_lOrl$ba@Nb%gyV1 z*F&Jzxzd}MjgW>-FQJhJ|NRnmCxuqawNiN!bu>W5_sIei(~JghqbB8j=q?sRpR1Tc zD-otkwZ?6mOcu%XP$Cc&| zHXcktA>#CYtc5G1U7+`Cq~{q;<7<`OqMg$6OIdw@3oj`1sC$i>^Hq-A-{s+$9vol$zuBWdYU zjhK%b4|hak+2Aj;Al02{a0SeE^Or}ieiaiNiPF}Ez{4169l09bL_ro|tmU{piUBnX zP3P68afvWE+-y|IPCc}*j0O4AgT-2hF`ktZg@g26>>#5~x6mpV_mF1h-fGFB;pp?N ze5*`erXlY!)3v^s)Z1=nA zTDTocq0o!gc#;cnR78ukoq69%lPPo#alJHTcBVm)_};g(bCrRSCF888j3NH|iL ziIl>Skd^hvWt8lXWt0%l)QlQEN(=j-f*8+zz5>0#i|Gw`ozdHAm*xEFs|=2G>@=C!;KazFo815w1UWHCrSOrKD6JF?dZe_GRwmzgsvfk*fIaxoV`k9^K z6Vlf=k8$B^G2Gi{+Emnn0?{mkk7wSmRbL3({{7RnIIDmG7>v022;n)s-EgA+MocTE z@2O~&`8)ri!g3z~FZCG;L^Li3!IQ@#+>G0Gnh7rp3Tt-kri%{_wD*44bKz!nEj}$)1C^z~@4aW^ zR{O;3RQmaj6A!xIVqrx+eRhO_ZHsHRkN4N@Y2+k+m_R6Pkp76h^yX-E7|6v|{ld7p zEUj&bD#PgMqT49I;Y0)!_azVkA57;`Zf9%cLpgv?`5K9a*-#T28KWCNgLxM(EKaC! zTMwbPGYnc|Z(#bBxOtGi?M9hifCUa{f=Bk?fD-SynH4p&E^M&F@SMfLvlifl+ps3E zUc@1tjYi-3cXhXPK~WW=oD4jtHF{#C{} zNxx`^Pm^7&&mq}Ss6vEBgHO487Z4b(-IEtdh*<>n2_{-{f9pNL75{)Y#2H!7%ig+` zkfD|ohou0qpH(?)(!FC`#U>E?KuzL#Sh0|W)Lt}eYz5C1hcqM^@DwFcLAnmO1of4fB;35h1m zzQ^EyX>GXwXfTFWqUbttf?CQU1;klX3H`O!Jd6du4)}q2uDlbZnri~>od{#lkOltl zyY6@WXNRJNDH}e_$hn3@JUtI!__qD|{QbRdf&NP1;tNxL4dS#+4uRt=&)wwDSg&Ew0j|7bajR_PJR2cr<-kQ3j!yb~ zAB1Wy2B}>Jd58mha6l9>icnt(w{wpJYt{vy<%XMW;{@^FD(h_Rl3Jk=ss6et0r6)C z#RVBze4O}|W?w3_Dt+&$9)DnSr-nd!{72laXp;fhbhb>Y$1238eH-M44Nq_BeBnz^ z)rFx)j{H^qBP~MW$Vq|zTGbjEUo$|qXsh{-9q#H!T7jDNHCN3WVVLK_uN^h(70n+H zF<0@zcyP=Va4(#*D|{FnAR&ZsgH?#3ppbid_%J*UZM>A#)%BWNtCXV6=VNMU5)RV3 zyzGy_YpHa1*e`hKl)vFipmPEGgeX_g=`43Elb2jH_ls&j8ZKg1&3FX-om7a&N{%pj z6g`S(@p=A!^Ko~NvKe_4v*+tw$yu?d!8s+! z^+o5nEoL{IPFMSrDu~j%mJ|}=T>LMVb*K;w$hJq?F3AYLprnXFj@uVEa=~l9*pV7K zJhF#Ou%Rasv_wSVI=l&xsd9o?s^t}_u=aE4vENvHENo?TGH_ZlB0uncsYR%hlaG=l2V@q(Gm-n1z7S-(oGhc)^A(ZvRZdury`^cjmX(WIT}zYj4;hn97l! z1;k`n;DGP@2gj69V*!aJOX9g3+}_N+j!~!e(}~Uc4z9rGpVxtyffy@$5vZLWmkcQV zAXb(Iifq?5R?!;UEAPBt#zc*3g$D|)fTuG-?oqn@DF&awzx$=Nvopwg#nynmi;>&4 ziJZ3AzW!>`y-Sd!{Z8XMY86c?KSdQT9Os1fFmGk2o1KDzQpdB<*9^t>%x8R|?wAF! zr(PmH#Q^8q8VgDyAxpVH1@i)AaHIQ5=7^5BtiO~WxsjVu6&9i;ZqBG7$oUqgfLoo; zTM{FPO=I z?5#g*d&VLiNtiS6KH#})>Pz_4pT>q{#Vgjo77QYw2pM#XM%1$*(jyCk6jq5ww&HG%6O-XIG_O3J4^jzQDSw%2Chh zD^boZ>yh|!7)UZ z#>$h69N`#J*`{vO^t4uF33Kh3oR)GN+CwTs{(Y##CModz&hdO&}sHCecmC#gk*Dsf>I-U_eAkump6%hRmj@5__JgG!AiU`f6`c8TN)y>g#Gh z*fq9})inODiw+%gd=;j%;6#~blC8l-9XBJ)YdBDjp=Oi>J$$=W<#^J7pLGbhjgaJ~ ztFX5j3(+zCo!cku0885pkrw_U3JeJGw$_6qL?9A0>7n^gv~f1akKf`RekSGa6K8+S zAV|!?jJz;$on@DEH6runRHT+*IsP?m?ao|q{&SlOiZ(Z2shBgzEGT~C*bMkZGd7*Y z9?3Y|qx1Spam~Vr#iMzI5d!+CkGfDeeS_+UPc4?4f(y{;2}o<+5-9JH8YPn^`w`k; zIBP}NLdf0yZA%mFnzbD42E>bhmE=EriNTN0P*@7c==Qu~;54wata)ZltICw)XOe1a z*bPP&n#qPO1tQ&emuWOAac;AqL`j{g76VW)!)b6g6w7F#f#Ug zhj(NThsqsqia%LU7wl98?5f5)%Nxiyl5N!agG_LsS%zx4!O2SkbDbwP`8%u2RvkQv zkiZX5)pGOG-2+DX;L)7gXAUCjOfG?`49bM&5LY%LKs1GUj)B&ZMX?9pxL<|rwM5a{ zCj^TR3IrdecPjY20to@^=ni-zhr@p6tuS&PrKy2up)KY-T4*0wkO=}|r9C*yjLFMT6YqG<1`u{ zq#$Kb52V(JAQd?y;^y0eTKwL^~dvQuy5A+wYG96Gk6!O@e+A?$kj!ajNVh;$5=2E+}qc2dTr7s=RI=eUq{%b`f;8xG(6fewop zKLM(1xgnO zDEvdbj-ofd)L9C9{^3DKFkax)$7B5>RCmDx2KkdKt4A-_+NJIs}-zA7tQCiEHWv&T=5iB){kb@(Ckx>tw0UYl` z6ogPiD^+ka_(*jrON{^|bm+Q2`f$iRhg1wRyKZnRQP5pD}{`UkYJhpaDC={0ew-x&=ruswZQNl5pF)XBqgQ=Dp>J@^q ztm>V6AMnPB%ZzP&%za$@P|Ur5O0BCP$MPNmQC*YRsC8OJb4I-x?@7L_9QIa=pB6-? zlvRO!3Ui8LZHc&`9Es2*oCRZSAt4!m+@M_F9~O&F2^^GY)XMGc5`X@Spe6FIMy`H2 zM#cfn6#x2547r_(57WuHckn~AAZ92SK}&UPWfg!_AVA!&i^Z;Q~OsG-X1 z{Mo0{b15+7Ic@D$J=VIYGq%zOM-Vc_wQF?8{LKX?BXd?Whx%)Sk|@UdA4+h84@dj^ z#}_;KC$M1S%E_F3af*qvP`dU-{iE*puX2h-bckIW{Bp95wi|k37}ga}-C-4D2O{46 z5FF5m7h?bqAIE7@4q$z)W{32cDsD;f%M+*g=L&j`B2vKl6w;@Nc`C0?Ft&EmzFF!- z_siU6;0vSl1%n~fXJ(JZT_la|OpMfo(tPev15h8oHGdDA+=pAX5HL;d7w8Jo4!wyu zF0QBr#YQ7Sm3x$gaK*n=MK8m{30FM|2tFo+!%%icSA%F!(cp@_^Act&@mia*;WGGM zxEF1S(lfVr{v!}(g-wAh!}Wihbb_UMd2NoJ?K+F4||fg0uWo z9Z*!hW~k0GLJ&l^kW^NZT+T@|M%>nBU2Ee7cdDV1~VySHUlrg2wuZ}3gpw@ zqLRK|t+XUf$tj@!_c3CrVKy(*xY}o#V)bN=#EicZOO4*t^QZQ+C8CnIL0xSayWO+?v4c6$fT+M2!NZy_Q2(Vl) z({`#mdP>LHIyS=FACl!;<+xI@ljGqzCnUJHuXI+)R%)O<#hgG*!>sd4zewT zVE00DQ8(ufE8QQ}cC?k9F8P-e56C}k;_<*Ov;SwKFjV}4hghPywDG4Y+w;qqIh8)S zk9UdMTN+!0b;}UtiUzrzPB)UHPg%wFz9QoIrw;5ERM#aT|2ZV(eNrhNb5j4+od)`*IE4TP8IQ_V}1 zJt(`nkN30R_IX#ssgfQOyHeWG%!g9AP&ftXGsb5a_3p5fUcy z9^1E5h3mNA@~)rht=(vvU99btQqYdiXGc)T?wxiD=CJ64*1YGOVH^Z`Pu*$eOU#4` z?fl77=o5eple*xIK>>=P4FI|>H$_OAH?>4u*?bmRzoiz^63Q1&63{Api;06e`E#M0)W-q?JcS$Y&PXXqzK&Z*pien8Lz#~0@3Ge? z(QmQcfG=(DKOHjH@xG5~o*gm8a*CMa$|szh-eZeJ`8}hZGUR9<#6PM_l8y~fST{#4 z4E~=FDTzJzU%v98UAFw=OG@+Tg04=iO8e(@f_=(77Bc1(a{05C_(ZMBTETb6vY6g` z7WsKs-X2Q_3DNinAm>m@$FvA>m72TJ@1S>0Bq^f|4o}h~IJ`+nZCLSB&UFAiM<-z2F=G$h^Kk(sth;tMu=GUSQ0Pph0}U&5yPr!x zR1NFa8a4YIUY+*{75>8>OMwj_cZqD054FdnxopA)Ov*es7+CCzk^#l&E)x||YsO3Z znpZ?E>BYf7!WT# zHE#DEX{*WDovA-NH|_GN1FDSiPLBF&;AlQ}e?@!%a;HkcPDCZ>->xfp(iP>#tHC$v z4rj+&&)D8|Kjk&B3BNdoxS@}gL<%uz9`5Z5PLAc5!Z!pjx$-5mHlkhG@5xM~ZFLq~ zMuq1ECs&rqTX&&zPFt-B+FPTwTE}qCP;-_|W9mux48QMHo3t`VkM`pr&^wlC1JI!Z z?N=!yETj}JJ0GW;p84L%+cwvG*Ipe3WwxEf z_rD0qpvA+?+9EjGd1u%Csh^(246l(>-`~NT;t4l4q`$cc%XpSpP$_ngN+-CxtRU%A zOM(r605MDg?oOHgt4N>R+{i+b{X(^rnt|gX2WieBJ-#AWK~U(mKfq2$bOa32Du)q( z5_$oir7yp>9O;3PSvOO?)JtKe2^Z-od5Yb-rJH;2_=#0F%2oL!Twb1`K4A}Uh@CaW zVY+g@k@ZmIE)uEY=(o4DC7<3VvvQcipZ^P9K%u`dSiN(wP{lH7&cx<}pd9zThTz$I4N#{ORv|1$>N(@PJJ?1KG%^ytwec`dEfZKPAV z;HikC5Zl+$$$rb3I2-J#F%6(NL?#jC@0aQcoaV#GaL@fjnsV?e4}%VR=LC^)Ty#8$ z)N5sfSEhDLXvMK!OZjp!UoJw|v&35Cm4DW3agpBu6AfPo8{OkI?$(^rbJI(=T8q5A zT4^n3h%%*Vz_G$^nQr-ckzlOY+{fY2@?rhyZ5it{vf$!+ua=fdh9yp;W)7!oG&73F zf!GYT00^bq!Dk%sOI*0xLT?kI!a6(8U3?U4$DM0zz^Bm498s z9$7>oxkuWx#@*<_SXqDQQvQg>nWRsQo$YW_s( zR#_L`K{Sd&MUQ1&9UdK}@l6rWNRqjq&U3tPZ5@`#X7@vsyQZ}Jb_2SU9 zuJ!mcMCzI5#2u4kILFE!LeZ8A8-LjRBd9!S+7kCuff{SHhg~Yc!mnAExG~_`U251; z)ulDs6F$Lk1r?ea1fw}&h3SdWs73HGYT4pB*k`ZbBKC2OW}&0&HeDo`{lVjCjlXe5 zz|R5rVvRd=Q4>O2OOE98`|tOY-c7F?5mg4SU!Pv>cb}eo_x5T(8g!p^2Y)-;&vv4J zRG;^vVfT4=FxY-J&|e!Zh#Y27)qMl6ADqG>IA(dpcFYOHX42z6i5q+NpNQtR4^?sNh8mN!nPVEPr}G#F`bP({Jo>))hZMhqE+>o#9bC($UO z$^L_f>^{MRo>(}6PuXGZ6Mu#=?P#|(IyJbu-wowk%eq)Io_(cKn5)>{`>b?JQ67Rx z@oid!*Uqykp{e@M&IS+6wmr&=3B;Vl6Vm#PajQ>)Ul1+9uG!j{D@R_A&cbX5z6Ix^ z`u(MHOk(xG&RkVpuXXNdyH5L9^Bypm-=^!Lz^mR54$4(_Jv>D9wSRFDx~A1^0{_gC zMM2DQK!KHTBQZDXEy{(IBP`1B`|KAH{LB^L)fZq|5CxYfPmTI%m{Gc{s(9$k1o~m`nteO1^;3lN3=KU_^>J`|9brf ztT*a*InHN82+JDj`kFmoqvK@1pN@I_7Ngq|>kYfk;r^?2U4I6{*{JK2s+#|+bsTVB zuiN6lWt;Max^2kdp44x=agBYsJROqD8DbJHXk%up$%InGV0db-&v_&fF=FLjFalCB z_NB@B{)sR+_w_k&jSK-$_fJOSX_vRrUsm7E=Q4(^Z+y&ETU-aUKhg(K)2LA+*;5Gb zxk>zNB~iOUlMz6#3R+K$I+ia>CRHDTOZNK$qT|U-On5vg zMi;_u5~4bbKQF{53$Dh-o;B)p<-o&u!wx{t9~1KSioFRB`tE%C%+YU>HzmF&+bebS zeL8zy%vQ87MO<&{IRfILH(%t`$}#u_9xc&64SWvkY=4TEhwP9!WHazyUCiooS-vlb z6y$tpAL&M{5Y9awz?p4h9u@U*eDC+zJTb4b9hbJL(@Q|!w;==3cE~*Hf}XsfaTs^T zz~`wPAMV>J0r`F>iaIjTJi~H-*Qu>Z2>CuZ3J>|v>|l|8zrW+MXm1{gD14XlZC4=G zGh5q)S%1q2XuvM%XpviE)XuUac{QT}!)P|JVku1p7~`2A|tSabh_AK9Wq}NIj1%liyt6$`Ea%5Ug#mIWl@+ZvCd=` z+!t&WB4V}C1aY@(U2)D!CX1mT&*}WSSQK3bynn9}>w>Cw*`GZLbRkVet|aX#oQl zOyr(VR)j}a$R|v=c{#1}uuKxUH=Ik?A`dIJ;MYlrc1G+EJmUP`{rjJDuxur;2V7m; ziGPCkUBGI0XG)TMe*>EPa>p+ek5C*<#ChU^2&dQz`LL-|XsL;EZRbmS%=h*Qh9&}? z379axSbLo@U865U#tj$wT@M29qiBolVlu*TEE+GW6?&U}1f-4j48+~lBN_zbnF(b* zgEt=k*@5kM2=++qkIu4OPKwTMe^}Su4u4+4cY0>D?mxYL{I?VD%oBhEMnNrM*{*I# z^fi(0V5j{IWi4=}K_m(z6myYQ4FOJ$g|N&9(#+5_}u4Ip643|>?tWiQN ziv(PSlIsQrHUJkdtxn+rr^WEkR)51uQ7y|+5d)2-%Hh$l97SMnDX5jlo1}g3miW@Y z3CCeH+uITR1^!N(4_J2JsJGvu-hol?;N#Ab`nsHzP5W0vkP-hZFJRh(5C}Q4Ex%B& zYval7FppidwC&gBpAcewoG+FY<|b69tB>6`BT~WEdiPww{5ktIoQ`hT3x5oVyp@h& z^19P}{z|UUct&_?G?d6D^3E(|mb)opZejHwZ#d(jI8F1aXbq z7%Mb9SZw>^ytsX3jP)wD^A-I2kOZYE}Q403{%7%NI zMe+TrTtI5nDx2o-SpSyUO|^Ijmz48jF}dAr1xP#ZzzPtTS+^5H7l2EESOcQCaPa~< zL`LA!bS(6fiU)_-XyhO^!WR5}0)F!-v?VZvauB^fX?Lm!SUvc%!_&E=Cr>2L!+e0f2mbf$8sLf54M@c1Stv8^P8z(1%1r50f!p z$U~Zc(fW1v8%V^eq5g(w={KP+9l8m?pf#bJ4m9^$ySd*I&HXmq++N=eLQr~fM4qwf z+NFi~9wpo#1l~V%-+%81;OqzB>>F@!GWNtA>fr!eh4~QK00bdj(PBG`y2g`sU|HjJ z9QajU=kvl4y1-&l)bntvp)3<-p0F;S>nd-2R=B=@rQL<$>T-<^@LE4J`ocCD+6*ft zO_UfK|NQB$@Bjv%T^7q5CYr>|kV+N5T&k&LL~y>jv#MLd(0>x}aSs9oZM#j#Gve{t zZ1KUf%@N$lYE^PCBGM(;1<8Wh8NmB7`;a}j-+%BhyUq3=^dJ1@;eGu($bQHk9`qml zjuiu^R#r0mQS4OzdBuMB;aOiYWdAwDAA5;=0uOKLb>u_uw)aC1Au3j*fpB)?cmMKL z1$Ijn8FF@udVd=x;f)$KH*Q5X7gRkqE~xaNBE#^X*_B{2@$7@GSkUl2!$0}E4b?aZ z)%YP);~`bU6A9Hq@H!8J8|**MC6~JHzFH;;3@y}Np{ zmSqq*PX^p3TCQ5~s{5H*Lcxf^a)E`SgC2`^{$#d2oIjuvt_OM5F*k`td zz~$?oPhY<1vq@CW#^u#549PNIjEm);@;S&EyVTI9?5*^axwu+X(~D)*c;0iWyJ!*O z4{b5$wttzrPk9&cYMdeX7Dfm7UsWtx5X*0eMTtj2_fKNLxzkp# z>bT&dbq5?(C8Kr4})ITcEx$k$<00a>yz7!#&|dz7G8fk3Gtr=3(e`J^_Kn zk%*0rhLCgc8f6MGkOH+H(B=}PcfvQzn^#DME+W$7kT*5_%SUe+BURVk|E3h?RFL=c zTP3gv2iRaw;3C9pDTLM%Jt6Q(cDY)V5ZI~F^t!cPFzk&MxKAvW%2%bu0f%2M8h>@0 z+LG;Q|CQ{K)wtnq>v{2#0Nna}Z^Euk#(=s(XuiRr5Z32i)4fLhouH1O|BkwZmu!Lm zTaNsu1Mkh8HAa3~7+2_*;s5!E|9L*UZ8iSzGt8q# zn4}rQ;m(WM$z;sNcXFYJxR>pmh<|Lkb(T-7**IHX7vh@gE@l@775`;=eFD?#2u9*= z=9e+ZY=U7!A7^%rc=A~@rbl)lotK>U0`Vf;D61KqVd_>OAc(-;7GUge2m^1P$BTS^ zy(u!oe97w1C)ILel*VnK+!=HD`cZc9$uWnYMd-x4YV^x?wWd1vr3|&reSiMLh+LlL zljY^29F08{tTC}CtRR+2foMdP34(NDB1@Q&?gG;)!T_)N_Z0kImBT!W+`POul({Mr zps~Gp_^xD(G6GMQN$ab0xu=^AERF}E2@5|BGkatmwligfw;Q#>lRw|4GKLeW0x-I& zViEW&_d&zT)eYM~QYn&ADt~NTHVR&6xBot$IPk-^5kaW6T4D{L_gjM=Rx>uUmJM(Z zNbN`p6(8Y^LX?UDO7ivCfY^hE4%4vbVgWY*Ck;#zfXlVo0RA@(;C;J?=!d|<3f*4u z-#Ri?Y&gZu7g$|~mOu42Cf`McvlLtaz}B#d%Xum2AcU>r6P6iM@qgLh8a@f~X9`jP z2BB<^PzmyE61g;-EfOs*A&2qO^cqJoB3~?ztF*LEm*x;`7Y9Er{3U%>Xsj}BJ~R%05RZs>VHfvDdI6I*YC&N%<2Ns z5^|janNkyp)!7yH3CB>?9r9Q;NH>gi%tl)hb|~DYKRwc3443OuS5#huz)sC=(AbcJ zn!<3kC37u;d9)_65~{=;MnHnf_;*@eMxZ5YuY>V6I=!xNV!^LGxW?z^9Xp4-+h10v zXe8U+#Z%IUPJer%nljucLsbK*HRx*9CMauszgyZ$8T6B(t3W71Q?nwE+5r`aSai*k zdmJ19@$GJjFSIa_W8{;ezs6~eX>C>}h^jx|EnRs;?Zu*6d{U&f&{~7KPJM#FR*Ac% zG2i5_szuyvs0D3}yG8_?7A&M$WteNpPP4g#b2!-WHVL?_{ivoo~PWmQZ7u;6b_2 zwo+Nm%3))rgpiF1JvcczY2SmRZ;#sd;CDn1+<}3a4AU6$ci5>xfBkDb$?{0M@Z>ED zzxTpYSAQ)G^II>b&YD`@R*M3pRXK-*pW%p;)KI%WFu*#IOi6jbef zr++q~c2%PxK!_OH`l)Lm*)tp3bV~r`E;v0$s1Ki|JK^SQ4AvI-TMM6U@V7qaEfC49 z06R9lWX9@O{IM%xti_6J6^5yv7els!V|~AKlge4cB?f&bz^#S^`a$KnA2tpDK0@B* znlCDF>&+;S#K2cZD<)I_Thsa*&rEdNbbsdLUF7BLG9GF2UxT^$gBYN%xjTf)2f8C>j0la?frFth zlF-8oLIBo!&0!$zK{J6tGH?qv1rtIPks&A;5=@#701VxA)1}WDEIYv=kim`Vsegp$ z0EFgXLxl3cqAO20AE#9SLrfnT-I`w!(w}8-HIw1~q)o4@7Xu4^PERmVhTkSXAo}`OM&l!2uZt z|IenUTIvxNOVVdiWHl0dC0pAmfmk<+91J!Q6 zH4%r3NQyJ7D4PI0^PRX_79k~W@;Vzq>;c9xIT^(^<5YH(+Po$Hh_Q&*I)9RgxD=CO zTm*9l8H#41o8ZMeyQnN)({Gv2?PWMj95Og!sYF^w_iO*5cH@?M-l(_Cs=5BE{EVyiNmo~)j(^s$_27ATGGRfw^;r|1Hn(UyL641>4T#E8Z$1Ss_DNXV7;3O1 zg-i!>qy303~Up~?PEYK_{ed$ z0fp@#pTjGE=w1y`8xX$Y=Ji$dDTP*c;mg2sxkK)1Qz zchL9(bHu-#ofh98!DCmM-Sph9^i=Csv&7k-o51MMv$b2mw*kP&9I8B=w_(C`T#YlU z3kwoL*n-3tV1Im23c`Kv{O69PKmoB4j}k^xJG(+y>t;J;{gO#*JK3%~s0<+d+Cv;p zs=8nRJ^WfP-g3;ydNo^3g{1*C_l&`YlG4WQ>G*YV^v8PE^6KluD~@4#YFWL7|IfE}7}P*iKj zRkawIVc-o55Y`lg==9#X>2~1Vz8A`K^N^eiSh!8}n0mG`f+Y8Su1(j)PGo)rQ|iWH z+Ty0cfPZd8GUX(j%4-IfYQA>Z8aGZ7Z_tdUwmu4Y(yQxvR@b3}s#^7IsPsO@GZJuc zCk%iqCUMhI5%)YJQ)6@MQ@yKD0=#M*m;;oQlG>5x{6y4dCEgK1*w6AyFAlpa)~N?D z2%8r}wz2et`qMB3`;RmVV=WOg0d;3f6{f}C@qg5~^Gir8wFBGMW(CB#2fB^qZGqG4 zwAx_(dMdS|AxPnC2byk;;dd9+JlOU1!op)MOlG*W4F>dmxYc?jwGg_{E~;rSTUMKy zFc>Kf2m=N(mjP6P-9@D=Ag<9WqkwyL<#QH1P42_w)xm#X2}*S($$F~CYY%FX53l9X zHGep`UMymEHhIh{!XfJ^lY-ZuRDx;2eV|tY>^U}`Zc_*2)Dn7rD5N3^w7++5~NB+R2~lBi1&u zbM{7^xU=+strUlM9c2vss z^nt;~4ISgbfDK7GoE?n51mO7Bs();jIRg<7H;Z(*PK3klMmD^Ih=vgtvqsZ80B2a06B<%59%uj(u0$GCF#cx%l<61ffC}bg4bmx$R&cV1(0>9~XByPQ zU?kGuptDK#`&eYZ5SjTprqPJT?hF8wikYT?nRsG7DKS8;f`hHYb8H zs0eVivCjs!z+N^LezxR37~08CizVKn)kmZEkgH$>A3ROq`bs6m>TQS-p)Na;5?aZp#y-?|&h>PPutnD@- zAp^0s_mg95J9sUMpQ4Jk!NmjRL=aL>=dsywq1@F%W^W zFTQ{hy^yk#(Zw8_^MCRUJ7$B=O2iv1>frOnMA-qon|&_&j-$@b7VnD%*ZafZgR1`i zJw}tpebgCT<%KyL7oIM`^#Y<#XUeS9bMJZ(52p&}bfEaLvPqRdNIx0w1Va?wrwg-j zBnlr;+GywkcK`wNC2^A#I?bzcRAkh_Am&;Em2^8g1FQ?hhkpSU-B|GgfDo{JAk8M? z+(U+OQ%a;ON2Am0d|pUdtC!XAxDGevhCW#RcsjzA+5#vn2P;p7@n_p; zHdwwnVX0jKXN_yO5>V7Nn#=*fYMu{E=hpCmfOn7xPsJg&RWB~M2SIQKJfpMR_DQ}l z%yj+}t#kr}B7a<1B?!AE5nIeo7y{yn%HoP*#)rKfp|31w^A%Pp;k07SPJqK2o)tIQ z*^}3gANT)K0FOK{Z6l04ua=pKe18yl|Ijg}@GcGvv_;n_)Jk1rUp zt%9$(h^34-=if56uTDJLiJSn(2!x*mJfV{kupWO{7JqE3kxe?)!?cw!*~Dj~)yu3G zd+rNI2k?_K?6~x~X)s1~_O?%84?MOtaN|XhFAE-?`Wx__1}s%7Yhx7o+F&DV*g4XF z8kNKXO&Rx{A$ZQYh+bA7G?w2~A1*F6judhN?=9kJpO0bRg2{sV=jo`mPMFmJ?m8Xy zmy2>r9)EW0;(N5G;jH7Y=&@EaS>Z2`CgW6kZDqgC4EvcKf1-*IbV~u}NaTuRfS#Iu zRfI$cE;hWD2?IQa*>Ub9w?Xd;ynhWdwSB#(A?NTLS4L09m_Bs zx(e+ph|k##8^o(cF5R5qT1#Spo;M7I$3U_LBiRXFUEZd)UQ8R>#{x+hJeO@}&l$+X z_J8NsrAJkBL>bkyR~0aACeX1L-@Sg;J%0K6bT@l-T@H?cBPF&pDkcq$ofH!WR5zCh zxk4)iD+HNKo7dbyJDn~9ra3x6sEqJF;K85)G@}It+aQMk--;ZVDabMyx8ZBnnK)`1 zR+djDVQ|3x4zteDWYWoo*TwK1+m}*jhJVopJNnGt=ZnU6j#;_C?Dt zyxORZgV6|mZyFn7%#eHO)a}}HQ$u+p?(UCle>y4iG2~{bCw} z^Ox7p*%pI7z3FJx%lxvOls^=UIEL9@2id7A>k4-}t-cF<7WD*$_ExcLr&7;D6}}+gv-1ZGi8I-GUGq@t<#3lS!u1=A_{}tfuox zfs2qp`zfdl>t;|)40)G{D3*#r3c-|76%L?jFtmv-0j6;gn~-X7S{TuQPVw7-(Y%cC zXcL;+1PEw~^QVDA{Vfd%?+O#3)T_l+&KRf?DtRbdSG+kD#r~>_eVzTSXn$HWfdcoqbcXjeA@U**RCfZPkK>I^D#Pkf+OG_T8*ZnWOA1 zFa?w@nXCtj5)sURXy%xe?6Xera>+B-ZQz;*^iOCYaXRxf>PQ~6D1SGHTqi{*zsu<2 z@Xfhwa!LwIrEFf>I3p0H3V)Q7JVoND7}0E@d_yT;0#(jvG-$<4*J%LN4x?h3v*|X%CsQPK zbQ>pFuI@k#v@mQ7G^5?30qW_B2|bJ32B?}(8%id0<&S_q7I8_N6)_ZeI|D|j4fBp+ z-InIdSTA0kJzp2_a5RdMhoQ`dhYfrSl@--YT`r4AJKu`ffPZX5K4m4>ZwBphV-wWo zUTaegm=v(G80{=Zwr)%4Q9or;1^YKf!85bm+VgoFo5thTli-?(_7imXniTIDvs}#$ z2KC>??PZlOM%mF~QQc(UMHKcVuu*k03xhj>uL=4z44k1!(4@VU9T!_o9OHbXqF{;L zMB}UO)fm`0+ke~BR2C*g9_b?$aQ5r$1rH6<+yWbEuEuBtuI5AnRCEDs0+^rx0$8XT zX#|#{B>`xRJx@#EJu!eU?lBS`-^gaerrSBAPw-U2gd&)5gl^Ra20Mech{ zU<;W1B(&G?MS**p2F_fJ2CVPq3Q%Gv?S*K7f;FgsHGd7O0QSL!v=5N}=N=rp(;(cE z5dPKz!Ve^bzb8Q`csvZ}T#H8$uH8)mz-U$$GsTetz+M`KnlvsPtn!#>K1M+CGgUl} z^Keq+3sMMG`r%_Nq6Ezry+PqYcA zed{!vc#=&3dzla4`78dr*{Df-dsQuNnDj$&i^jTq{RS?i+RYCcMG$Nj4QTpi`a~1} ztHVZElVT~CLn=%>gkrr@Sr1-!vdh(S*@!-M$A2EUU5{9f(YJBhR0Ah5iZBLz|I`b$ zK#{{8!xDRd;W=fLV~IL9!4~(z_|PO3K{%`oV2y&njSFr-tF3!sj;d5WfbXh~%$Zz=rfAgdSd8x*WmR zhJPIaqTTZ~!=}n=w!{bvLA@+YY$jUl$>}U7`Y~38%`$PKo9%M-RNcB!rLJmf(TtV@ zye7Mb8)3Zxj5IMAw5mjDPA)HZ5kW7Wl{;eHk$&q-2o&<;PqMo718d z9g){>$|duW$bg}2sW)!@2T08`TrJH2vmTqeyj2SMR8u>7Uo1@2gQl92b-fhj62aq9 zA96hysb?If$QAylSfm}&jmW~~b}Gyv8<0gFLh_h@O@syF=6JzauWxWIQT#?1Nq+=t zo-#@EG+U}aO*?7YZD?hnoza0fFUf)pGD--(osB30zd_P4b0LiIwkl?6Xj7;Ua)moEn0CiBQe$%5O|)?+jV}t zrG~-W3^?7hatyY<;=Zg6E_@8g?N&Ju@}`9d$@pm}`Ru@StyYU{RxN#i z`VjRuDD#4qsk1@GUuS3KGEESiGoe@5!rSnlK%l0h$ufIa+-49%Q=Q2eH?EuQ_Cv|K zZ53YX=uxRhA;YT7C9IhOS6F*tiJ@@^nN+9iir~a#uA5(CH@#AoeYeI7s}Q0 z+Pck4;z20GRFqOgxrSj8h~&=X-eTTh&+NlSl}8KUF$)qp^`b`}aZ1Phi0zKJPDaEa zZ+|>yfQT0``22JJ;q&Z|`D%I1VEwtg&8zIMIXi27b;JJuw!Ho0 zYl$jcm){C0^$}JeNlfhy0P`Ue6bo%n18tNbjG9fwGDhQ7%%~( z1V`V=Z4ctzWHOy&FPkyYMYUvG6nl^s+mKMZg0D9@sJq!lTEUD!_Lp@8e^#rZwj(T; z7-CDd09@qdV4D^oa;1{5Kkur_Dctn2}h=- zi-Wpi!U6^-VSn#McoA6<0#G0_R+G^-PaxpE)1ZEe)f6$4-MW&&1z`B0VHr$goQWYZ zzOFGUMs13kCh)YeX#kiyJZ8fwBjh$~y+|4-4}u)3FeGxc)Iuc2N_|^nq*PsstQxS_ zSDtF<<$OwqgPR!M9&98a@D+x?GP&Um3#~G%LPP>!q@yZ!g>W&L!cRnWSLn8VFY(hzI(nCi;SBY z#5q@3d4a;rpC4J4|8Q4~wd4%W2F?9M#Rq1cH|LVmT6~@=7$heMPgu8+;K2Cn+y-hq zrod2Z-G6~1S9%;;3i;V}B{s)=h~&ljv>Kk_4w}I~2#`5IZ$V z_Y`qtf^>ZO=VZiv^O9h?e#>MQSOrn<3zt| z7`s-D?)xp!ubf8LYjtM#b;gSN-6h^`qsKG5%Wf;dx7+DBPB63QOJSR4_S<>4m0qic z_lZUV@0z;ImL)LZT-u=YG7*u9TiZ!pyrtoTdmb;%J^V1sxlDsgo!KP|)rNn9fq&)` z{upGSqfmC;)r_Hn*>y)EZL>g4qk`|O3FG$GI% zl`!)q)RN;OYU5DEbWKivLY?#O3qMt@I@;Ix$~sw^6xpTckvoU;(TLxpDUXaW#GWNf z3Oa_f(=B99=pJU@NLWzqkXg4~GJpQ?U~tN>MYs~Yy2?y}i|>ay8%Ye2ZG7c9C_4r& zxN&v*rg#aILUGG2)>74vv4?rk|4zq?Q?8)yWskblslb&5{@|Vsyc)aNp_6ULYG~hS zh_C+SR`>)GO@!Jwo6aGyx9S`0lf!(e1BvhN_Ume~bVOM{iI8_^lKrX=*?*b4W>bs@ zi_ihxvX>Q;T{i)_oVi!sU-iowk7-^^j08oys2#j#ruym6SB&u$Zr%d`_LKF_#H7!- zFkJ4jdc`z*^tBsk+(w|7rlC+w?NHnfN-lmpD~!;eN>bX&rv6Iu_%UX82M<{6hHplob-6Ztbq-Xf(zvKA1%D@P&HY{P)o)U9e=hT2SK_DOuY$aVCu;Qs+)(|&VBstcnbwAO&p;~nVsOo zggjPs;(L^ozF?x#S0Zrw`+Tx09_@fwjr`?{th2-YF&=TlwnI#0#IfZch0pIJodfS{ zv-(#94*Kg((z3h@9M{0dnsd@tk|7e(j@tUkw$>?fN03SAqA2tc3M4e)K*37|MRiWzF&N#` zhKCGOxL`M8iyCF1q9l17O>c&qAp= zr|J;1PHw3Qmp>L5^$on2x*HEA9I9gjuq<| zuA(ur8EdeY6(7K5vY1R(lYG$w>s0+n@K)MvZQ{Z;jMl6MjQ3Vc!6i@Hv*rFt*u*4g z#}+;odViK?5Yo7ut>~$6N0x6Amtj>cM*Sa{qy(cLUg#cW6D-lFbuO8^)%aI9*&=th z?(l8Wc&HI?POZ@hdFDgX@iU)XP3%mz567_`@>pbUWgb?|mSwcrh#el3O%I8dD<=3Y zCfZ6xTL^zmwxo)~m!>Ak?RaD5P~MyI>r&nV6n~?<-(n)=qb-ELCR08RUs67~ohHhA z%Y9wSTYzGe_ghS)e6)q|*JR4a;VXN#)OHfYfx$pJafhzV`WS0W9OB^uRDM+MB}?|6 z?M;)ihNx<6OOl}aMl%2evbvhJZc6s@vM}85$jWd<4t_gp8gsGf_Sv-PUxM>1HJut$ zR)32QV<@1W@;u{_f&8JBX|&6skwzN|L#H~;>9^f_puFYb;f%^@wS~eB5_gxQBC#F{ zHX{7_E(#PsfK$DTva_mrg3sdplaS%Sa8mL81#SG~)jb8`Bnbq4`!6KPQ>p8c&VeB4 z`Wn{H!e!Z4_=p=g%spb_Xk$Fr=Fq2e1b->K+m2hON`ggcqN(rDRS~PP`Uy=_*8JqV z`6ypvGUOHh^<)Cr*XFD+utv9JK8Lt!YrT~_;X#8Krr^QHE4l{{)}!g|}8Y350CLL5MgKOew!*t-bRLf_Kg-%CQu(fPQ=(xF7 zWm(Dl2xZ~nHw7fQ{LY+otgC2XMQp2@zI+_aIjGw0Iq<06e>)v~Ta~l!4!%SandM8# z%rTC^&Ti16CTr0=Y^CeA>o?3lIvsb9qq!TCnTQCqrtAVTRL6`BXqXZ4=(REkZA`8S>RWs+(cC#_bS!Nr z*K7K>`;?Yb8@M6z4R`xsOYGm=lN)jT>fUH_7tDw0YwaJ%*1=e-RAWe+53u!AD{#SKlhf+X8WPB0pn^p4ae@;H=qOk7 z>@u$l2!3X4a{4$U>;Sa^pj_9e`g2b;XV(xYVZo&2dBu~W<*Kz=QDQU-6*5qtZ)%yq zm>)Q@S+$U#%s?(iLv;zoXMYvuhgGRQ5GUR<-V2ReoBeMc;mj0DLAUw~bNSa`F3pBc z_JZ{x$kBbvFUsCdgqqqO-nVSf-{MW#+n}ab%^|}w>g}75`t_$ziQ~BjQ{1{WfdPg` zB<6fi(cEdi73Gcg!WRCrP%mhn#hQfyqvTi0fjV}O)y=9>+8)qtV1L7n<7hI8o(4=1 z(v42<6I>I9-T*2=)(uAZa+=oPQE+EaFaVPP#B~9#T*jK?Sr&i(Uuifs6c z{P)Soe|I4OGE`w|aGM5<5f_j$wkIiKv#q2>_z^|{#4Bl|pnv<6W7zuuDk4O5F*+C;Sn!B3?~~5 z`7dX%f4wtUD)ZjjVU1(ry=uvJKPkR-r%TFwXcXZ1kxSkvi(^Bo6c@Z;XnU69avR1I zsnBsAB~>IQihr$P>2TeHpE_g#HxZ*2p3lFWnOdBg^gw>HC!`39F)BANC)VyI+oSL# zR4v2`Vu*;pAl?W6%kX8}iu&C6B<)I^gPB4HXSqEVu0@@)urcE9Q0j;@%M#Pt#v*M3 z)|z&ly?>cfNt2ngVNcOie3%!rx_niAlnzUF&J4erb_}Rc3~xv z)?_Y}Lb6S)70nCiKr8$~##tdECXr^Nd3`$@N)WtZ@FQ7Xl^@oPxM!0&Oj`E0Y$-%! zKmJbx*?&EleT>{cEV_d)2jd=iSQxMVQGX#{lImaHiGc8!-{j>|4B|JpFky8BD*nu{ z>dNs5jTr6Xm2NYHenk9F5YT?)j>qUhX|_lkCy_IPoBRo)Vlv)4Gx|$0EE<}apwS=T z$Nu0m*ETR}vMVY8DztY}T;;2Y8=}S-SHu3yT7MfmuBGr=)>2ld_V1!s?K-s|?Ukiw zh6=}AxZ*ZX^>P9Krbtp@zcVa6lA25bQp9HgGdG9EP+aUp=&z_nJMk#D4Z@pIO5r?H z6F+M>;HiU+9sjV=fs}3Ig3V-m$0xtLIJ(&5j`RF!&#Qo|Wja^N+>sQ8B^5|VQaI^~ zN`HogcmQXq&&v8m{z82|-+vPb8Il=|!Enh6_unX&H1%%pjrp`scu*3m3OM5#Er|0S zT4p=1K{lY?$IkHPSn7JTYEA3xeYD*-5vMaYxYPVy0U|2oSG~y>kVJhtXQCb?T!FxV z-1^83S_bWd2fQ#Zk{*kfw_>uu2X0n`?|*T^?BuIuwUdPqsh9a;nO!l7J1dW82PfG< ze}AukAFQJOoX@iT`}+rvj2{Wc3(d8IiMr|w@RF$W$?|ehj>ZK(UW3Y@nBm{^^4<`| zTlvJ08NOqkxY!8{0Hu2KRR)QgRm}O4q4P92q`WT1k3Y=2JO68+``_X;{>MK?Uw{0H ztsvBhuz_VSb^>bF%$c$MX}%nSCv$N9sA}dqaxuVR3#MG@ zI-2x^>?e3Cciq;#3HYJY$Vm;H({fZN$bOQ6-$mO|6(IY`-D2&w8)LtZT!Vew6xUKx zg#9$0LsCG-GuUMPIVHBKLcHIw8P7b%Pd^!0)$M;8tE%t2#17e5l_$Ho>W0YA!e(F^1?s^C7GQc7MpS|DB*K zhI`QG4}_{o6do<|8+2l1|N7o~=94|aB4o42!kWg^h>S(#RW%@-f}~_e4oE^+_!de_ zzkwFZFVu8+NPNiNt2T2(H58s94eCg`oBleFt?uyItM$T`K|+cTOYa-al3{tYahOFm zuE-YgdTqaNP##2qT|@gzrGK@HLE!+~oOAQ;4$}Lc)tepChe=lD`Qu}?$ul6O6`NFx z^>C3@*TDrdA`soCf(DA%QZz)yxfJvxTL!7B)ByDe7!zF*V{8oPWaW+=iLGO1~KM zD~BUt$iK!sx;tJ%zQn^-*U?O-3BTA^ARIu;${Lq$K3Np`$V#+ABtCHNfiZ=Pp#@^F z!2gRou{qaSq|uX=jkH0s;*y>Uv=O)g%Iql8>)US(2JgjPrM{!FO?{mTK5G?$M^(r? zYqVt2Vv?acWDgrRnSTX&Y8MfnQ#ZAVVMlo6%m&ho=d3D8(U(c3S}N#tGe$cgVk7+X zw{O1WhdYdBYi4Rd7_o-dA6MJ3E~LPr#y0qpvgd9wu73IL3~CT=n-S%!ml{(ad}Khm zx;oy_M;KH18F2vbv_mGAGI(Ibq&IcKIUL%06nL5~e@X0rL_}f+Y*{#sHEM$LI(Tw2>FGE?Vr*TPFx{w2C4j$QwmUy{k;9*|{;FcDs30c^mb z5AputRM;9!#F?a4RlZL^BQh%7;Rca|Sv6RVY6>gMXPJN^} zu9II%zHXBN25zG_Vab8yFBsR{F10L|698sFnZK{to>vSrf|WeEf>U_kPdi0rl7U=2 z_JnVAxQiDj6Ra3jT#mI~k{Ljo&M#9oCYJe0GS*1XgI+p~HP-3>nptL`2gwO$)=VrT z2_1?VUbapk6Xt)m*5v@Ev?6V^o6?HNzHqA>I?+is%9r^)WBKsv=6X{3NBCL{Bp~^T z+UC*{pKJ{U>KcQ{e4@TCAb?}Hk(rv@G^e84pel@OQyf{4eKAr(`X5y$PyZ9{PTpId zhTL!8$UQ+cl9QOJTq*u1xh#m5T#stED&ZULV_SnQ(0qTkq&{ArURO8jYL0f!EY0wn znH?rm4ezMLJw9LDo|IQt#R7sVb>Zb+55Mi(3yPcmj8stH6;m$7bL`)#=xAi;Hi9Kz$XkQzYDPc`v1vZB?#o(bYs*}~6 zEfDZ$q{8j$aTmLVr<=&SoO9rY#w2@EO4oROhM1{b%aaqf`;q)Xe+FfJ@g5ZQ*`H5e zzUa^MMO}39&l+Q-mRGl3vpC$izaeu28(WxHf&BxYC_76EjqK?= zHAwJ0INbbOv?3QYf_2&FKy|kJvyxiiAV63}8o<1c(!edXLxluzHVtqm)cfmvbV+ab z%DV?S$#FHiDv4~1h%Mt2K`?@G9nI&(Y(#(ZEE7yPi&%sEr}*i1LSdD&kmaoEFYC%H zU|9>00DxGpMwdYJF8`+0G3Wlq!*`H3B5LtJW)PlO353?40#lNp0~}^_x5{ zEl>1uq|7a7NcJ(2gR|cSQ1H%=PF;Wbnp$6>1Zr}UOKCJP$5Fe$o10dXGk6LhDOZD* z4#~r&FTyDq%TUEPFQqk_(ehW%T#2E^?4`IydzQS`a~5-`RdY43(WW8d^(<}>YEQ6( zHJaiwVNY_BPy>>ctkHsyAA5=oh1#(A&>9VyQfAL)WV`EgvULzKq}86y3PXQ=H+bP1 z4Qlz;G6HDVYsE{~ny|TElEOwQffKLY63Wy)i<9qeft9a;j{}1vJjLV_~G_g|z z)H{}v!2@avtv+OPYoM{UG!Q;?Ez45S4Sr8UH`EgzY%TcukTqiuO@%x#gM~CqPJ%o# zdrg%_04R#hA-KqyY0%yUiwED4qlrdbcH7X>>j>SwLechKH;hC=vN3-p7n1PizBu^=#h?WoY2 za_RN^{SKS_b)AnfA}90|*k*Qf&Cm;n;shQmc0L#^%IA~wYPQ=isOu^Cdb+IUuYto+ zm-}`fuF6FL$=|ZkEnD4;N{saHY87#-!~R1f-p&`Des)^HWO-jKmNHtyon5wDM!vcM2mj&vQi}Lv$69=|Bb32lifJHx2;}6m$&Z82mISUc11u8cAE562nRfT@K+--H9ZRJldK30V5{N$Kp71OLh(JMQnGLB~%YEXX@`pm|OmEP-FkOPd+nS?fNlIeMR zc69dm#dpuYdHmWQG--+bA3^#XL(X2$hWWB<6xa@micyRzd+x@NrXdER8v)aspqbi;6sc@D(GL(s-GxE=YO%9Fj(Z_le zMvI0GB2kbZOaJ*|IkqVCSLu<-UDng+Ty6L#2wKL zc=5xV`5a^W--5js?3C-opKA(Di12@02Y_z*2oXW=wnu)$%Rh$h>mKDYtI>ev4BJj@B0+a5|T*2 z;-IU9caXyv_Yt8uLW%FVHTrU4c!ZhII3w#YM%M8-zrilEM+ydr^qgdrBCUU#7RwU+ zF~58LEMprqcx*mB$;#P$#b(}8rjB5ejn+7o`lRnc*n163Y_-hh{v=D z;|RY`bOfZW1vv}>U?GzGDy>+JhT-{Cmd$E5ss@W*q^RGkgXBig5+aWMaXg+`E+v|OP%S;!^ zZdk{!7VH3{_u{bY0!{wsIjli*bFjmxsPU}DJdG$#Bmo&e zM3r*PWTC6sYMMdVR!t8dgyq!;HKa+$)A8%#>cxsaXeSR3Lu6S@=aYO{MDP%*98u6z zOY^;2J~Co1pGweh>-q(8ohN$~F$;M*J`-(qWuu#IJH`w=7>%lFUd}!RCZ7f7pu~}! zh#4u#Z)<__Sn_`xQ|6Q5=Ud}|YmF7bGyCemR@m1}-JxX9hIg&0H4@fwFjCoC;hb z=B8{I(&lZ06=J(V8)e%YIj{HDioczjhQ4>%t6@HmbVg&z%6V9_cR_RHWDFJsU)dmz z7T;(15Wz@Bxb$zagG8oR_-o$ob~~W-`TW(i&LdrMFU4DR&E$&9s=|De@0n!dW}LJ} zQJ|{h8i;=vFK1j^c?1v7>pWs;yjS3-QoCe zt@qoR127%ulU3c&WzL<(GRu8}8e4TnwqW(+FXH6}oft3j`L!vMW%ImT#5xjVwtoU> zraZMV*B#~yHs-Tzf0VgLC2~s+S|hll5V6z=@s)qT8GvKBA9LA>+b*{v2po~F^T`z( zr^3+tw;idYtLZj&b-?CoHJNM^n}G9FGET*Zd9_$(^Y0gp*ciut){`gVPY&SK_lphI zl`(J8M@JrXe*DqD-Z0A6#ju)<@~GtL8B2Sr4u1mT0pfN}oF4#^eO&nH>k8PQTtrgV z-9LX3ueyNt-7cwoG=kk5te}SPB7`3dtdiM}d}zxNIwHxxzhF;4aw80&EqqcB{2LAg z2DpVk_`54Mg!wbDpoI_mi5~rAqfD~8#MHH`|9_jbZ0h3aY}ut2!|y2#9l3xWSPSUiaUDEnQ_fuod~n|6i8rMo5K&3I*>{nM;8Eeq3!;MBEac#E%G>+l# zKV}kjYy<@kzi)sU5%kDrN>JT~*`_G0{lP=AdX)GZ<`gq8bP=j*H!z=4grg#swQcOnMO#wdRw(dMiA z+Jq3a5gQC*O9tJozs|&Ggp3hWJO7xmx1jzPfA#C(qMA(3syVSID0t}khy|Y%5QRU2 zl|z8f1OdX9kEEwaAb}SCNdFH$?+izgi*}&5IE@L6jI+?y=u|WC;Tb>M46poc-&oQ8g@=DV{&oH7l4Q;pC4y(O zc(*fr$j)J{Q4JX`-YKdrjT+6LdwXRq&R~EY_tz$%4u!#5L3TVOwitBB{l%9{is9!+ zn*hnykLK@}X^=P#qMzGX$(p}}`SZ;!w-)?p^QhT+()|50f40CzTFBM$(<+(MlCiz$|YR59~c#~mVxW#t(A&o z|MW@*V~-6t0*U(t>7qYjn6@k8JAPsP31rb*A4>u|qSPmKzwM2fZBF9bRhXHc$Z)8p zv*NPy0*OIT@Ulkh9*B-A^SLiGNa>B0*@RmAkBr)=Ls_~CO3Kb80x|%G@xrp&?72s!cp1I1)h!PDthhDidc9Y#G z+I=ZwAs_}@wAaPrKlt~7o{9yd?4lU$gEdY6L_BqsnUQ06<;AY@^qsNDoSK+c*v(KZ z?U##ES8{)XWwJS|gM-)qs8x7yKcJl*{7%CLla~IndRE;Oi(?3?Xd{vmZVpJz6C%t< zm)SY{UpacSV=V==%V8xhU}K&ZjOm-E>G4>xBGE0#6*dGn06C8NsLE#5GQ;$1QYC;_j*JnGQRwFo1+Tnv|HA553h?qv)T!n<6{7+(>WWg zS7_NmAggE}}Dy&b|SFPa074Xd19 zjL}So?T-d{NvGgJK%!-4}LwWgC+`xVN&EpRiQyH(+!0@@DpGQ8BVEZ@Z;3xZ9=V zVICVkrMk`0HV0;mJCzJ_HzVV%;#6Yf-4%aS{(_OYM@)Y8Rks;8Nw%NF^kgvnnasAT zrx0wE&8oka%WFtw#bd^f$W4>yGUU-o5vT`|+zr@jTwX;?H3SEMQY2jO^rHmzOSahk z)a&02k+jZqwy6?yT|k5ZZZpDA>Jvej@xEq!aqAW6h7e?BeEeRGE;mCjPoQS5Xc>Pd zUj#eS<*yBn)qL8FBr6mcafKr*;^X*oKHZFhxUZ$Gq41nk7-AtG$LG_Hry*>+nYNXq zJQY>By)30W#*`&XT&{T5jc{M7Df4`~>5K-r_oL=#&0VlNp%RsNr9Mh$@~gen?&P5v z=8Z~IhwupIxY(QBI@-c~%&(HiDY1WJei-wQ*rjpY=uzM~E(85&m`i^uH^XjGT-C+* zDH!sSL3%gf`5J3)xM%VRUMa|mqU+)MidP0b@MZ|J9$#>Y^r9TqG4=_P#_5zvbT`wG zy%iLBRt@t>L%D{|eFJBvi$yVKC~dQM7qvhuIy`niY2T%vs{<1tZhAMIvG{+P`@&An z&AaokNzkZAgqU%>F`cLE4r&D1PmG#1K zxdva=NBgm$*7|;f-ky#m&Rr9;b^TvKJs|I+j)VvDKDx-AP46M(jW$se#hz9O_v|(s zkZ-jl6iyApIv5b;v-5KFCi{O8G>>3ee9r$BZy4_QhW!g~^gZ#p`V-z8+R<}9{G$E> zebdh6UvFHA3x;B~n9yGC;3e;8Lt$i)H5_%Oe0^>z9(i|=C=qWAwe=$n9$BD-DlQKF zi_G_tcc&wX`M!nuz73m^Jsooxt49_n7jqK&+L#|$m>(Fh)!ax#-ZXzdFaf&whuZie zBVyPm_2Hq_hle(OaLUHIplQDlKA0vb7yAJ8FET&6h-VQb_cgV0`tndzFSPVYRTV9f{_{g`#&wqsawULxU;xO zn!~V^cZ`uMMjL|2C1_qx!ZBr9^4kXjwZY&BZf@OsWy}VTxABW=mW_&8T`q6ISu=L; z``n29m6Davpik4yt0-gLyt3xPgh`I@Fc@^CAL{;9bv4ZDay);{v%UU9*IA#nUoEmw zX|`dWvl;cK-|WCo0h3e@K&EP={m3zne6dICfHZv6431GGv2?f3IV&{0*%DOC!!kJ)v zFc`#TPSB9;;jVvK-3-+eN&@5VvoUKpOfHC5J*T4Y;e=WYw8ljCBy7uN`o2L?gNv#s z%*SYmb~4ly4n!~8fgP@AA{aDBG8}o4Q5{>FZ0Fs!nx(C=F; zTtEE`C{LF^q+ra7X@u3o&w%e@SYLizoCDz`!)-_i6avNR+4no0XUqd;zEM0O8&Y!JqdmZJxl>zZKj@Dg?ibIn1L7&C7edL=&8vt%Y}BMj3%5%QW>22Ie@Q3<(7|HC-Rj`^3`kn}6WX;PtVpEjhR2g{$Zou)9nmJ-yBsMfR+m zy#pnZv_WQsUve|zU2q_|X0Rqqf~n`luw;Kt-GTs(9lNS{j$@650pD{WDbRgI8adC3 z56ZJ3CVJB$q1GK$txAXW*KtE{b?8vk`nDC$4N%^W0D-2lPKoA}RqcZC3ufb&n6F8_hXiqNo6~ z82wINIl&D}&r`vyJL1JGznl~V;jYV3@r=tx_UI4$mxjA*MrUedkO2Vr4D;@T2cZim z+#=yIR{C+-{l1_AiY-G$V|U_mM_#tdQI_%J6YmButUb@4C^j*lRx8T^B6NRm?+u)X zsP~rJD?2QmyBARM)u4g0g+Mu&aL$@mqw=aOM(%RH>Z*N0olR_4cClFDH8{_> zf#U24=vXY~`@RbxN;~+v$`$g)_oELMb$uUqj5zIViN>p%A>A7h-t{8!Dh`H3aV7%W zc{N=G9=ZH`L*mg*{Y%mEpT^FNJM2{jaTZ{6!o(xPoG}XYgJ2ut6pw%TsBK{K^t-xO z^vC^PcD-EA>%+m|=H{k98(xt zE{G=8f;WQx^Qb-e{LO#uOAaVJ)`lQNfjtJq1X%n#0c20d6(XTi$*Qj$aE6Lfibo_h z@$m4Dqr~N;z+{`h3tETh`aHm9G`uF5*1a>`+w5Qb-rsHsCU{a?giT`GwwTOaj#lx= zp|ZLC&6}%X`wGWMFk3qawf2dxcI-oN#oOgXf6euTCx@4datwdR0DRjGF2z8oKUigx z?=ZO}K;&sApG-sy;Slo?bgL_Nu#m*NDcMr9Y0StNVmQC*7ax`dPxb|?truQ)0c(!v zU8wA{`zB&=vIZquqd-_VV=Nf7jbsuKlk$hG)e#6#5NM^$8-=JfP;Wrnl?By7e>kb? zVqVQxbJOPr0&jm*v&k*BPT6EVE2l-ZS{nEMLGlBC`Jp(@XYX^FQKv50sU0F!k+kh) zd-v(2l|C@@xoae-{p-_{vnM?>W$ly4Pyh7fEZ{ru3cUF&V-tCiivu~_4=jpl^}fhp z_~6LHgOz|J&PEixUh36?y)RrM!(sAF7dz#pg!ChhnY(}H*zp#<5jOmz^w0p~$ln*= zmO7~q{M|Ktgm&h$@s8y+Lo_FIhX16q~gY5`;MVl}-iS_Ja4CnLmzV~t<)$YIV$oT=rkTpnGq zvl)gC^Jag#AKngQHPOo(3j-r%I5nrJqWw6qb8u%R^&e;*Xc42AIgh24_K7wK7)~Li z5D(8~syQrBp2^c-@IGG%?QXc15%7r$oT(MWDIk9I0VwYbbk0cYiPS0I??Kx%O{Vz= zo&j**lLj@(vPWIjqIMzTRWUuE`lwr!U%$w9`u%_Y4rJ()rD#No*@}D15SQ%ZV)>kX zhbW%M(~(AoUq0*rFJTD17E#@^%iHYfNiRF1qq+Jq1^K$WU|>7D$cMW-teL|MqDb<# zyzvMEfqp0`fHVgqy5|pq!TE=5`+Wyh#9`%GHMV+7v&2+wXo^0xtwuB^vJI`%vKrw!55kLpLl_92^<*`V=kvzbl)R2Fj+ws&>f!!#p?vhbY6eNXZnrofNPT|fn z;|Ys1wZG|ugbX~`VY>_4&wyI$9XxbU?E#-gMLk@U{Ol-8z`KrnZBpCa>hkAaWr&!i<3=S3F0U^HO8TkUc8aIS5#hQZsgjvFCp( zugWNNDc^PlT#HT#;aEnK+ zF@PJee0VKNE5Y}e*QZRnZ9d5y5Fd`QUiI@$nF zCQr)o^#q~?OI`^{YpL>7G{yC^9Mi#Eom|CcWY{lcVAzn;6=8BsVbqtx+lhc25P3Q;hK&+rFS|S` zYdD#*zg|>aOM4V_p@~bDV);n1qJ>Nm7AT0w=g~b1jSZ!&js!39Pl&r;PRmJ-O3>r$ za?0e4L+kovIG*%Z!}_XUj8=moFEJQZ!+P)?JMh+jTCtPvU|NpydVqh)qG3v2fbBJ& z&>bYst_ybVzbPk^?6P1&nUGy%XlSgKJzeh9jEjKz)vY1vlr!%nuuFm;R;vj_jFtkW z1>LMch)1qWYX}uFL05`W{P9b-5pfB}bMfKeI0b-c##i_AC13G!Wl>54PxN}UhTt_A z{A#ba-#h3Z^}gvHA3lG)w|Bqy>~E*N;dL=Bhm3vv@%X5B?AOY8wZlwZtr2AeP;RM6 zeCN&mw{GlE(hbira!f@C!+M92f3_M*^@POVxJw75gU_;|c$k67ZxVqTe ze|WzKf8?_vJD=D1H^0c_e^07vj@V#giXof0s4A>8teNp@3fX_G%kLof*~i_UeqCZ- zG;Tgu8h>^TjCpoc%Kc^57L8I1F>9!?rcQ9%yDk=Shh5 z9-oFOHL50zLA)}>W+j9x@%dMT)GeH3%WBk6xgV$u))BLYx`z#Q_oJ0zc!f3g6^@}Z z#1!Ow*?`g?siS`cs%tAYDys?DW%c+vz`w+75Px5>WsZO5XwAVjYh)Lf1zdS7d{q3_ znd~9Z4o507+k@@D^LfYL_LKDm4m5$Q+{-vJAV|maR_QJ}0ASq#3`(OxbY9OS9?|*N zzcwcbe@7BUj}60tQ6!NdMw9!opk`{g{T}N2bd;z#aa4b8TKEEipqdsCRsjB8vTeOK zkkRZ6o|u%d@Y01S(tf6@?Sh_hSF=!-9Mu|ksT!Vpz zm#*X`t>$PPjzcYt1}C&%cQ6nFQr0=T*z0hWaOcRqE3sRVe`?|C0tG8t850{zgB{hHq( z>;@*e{(OhbFhU5x{IX6TY^0*S8E11N?y0{na3<(76l7Je&p@SWsQT zG7cQsp;0Lo8HJnyPJ1opfaoSxe;PJD!5@D=uV3HJuM2S$cG_hVN3)!Jk(;~*7?$(x zz1U@GH7lMK%Vn{6Z3^b55#sfth!zRrczHCLc)NTP36<$edg(L3&=MmMXDG;!R{EKc z9$%9(9{HCG2{gU+{-L0SE<6gn01d-X0KTBlK>DG_bp3&}6fvZ~l+JHm#s<@6*|mY%a0A7(WUQMIlW5SjEQSigTCXFh%H~ zPZ=V=GNKNwIfRP6gKQNU929i{K`&ii$h?^dGKWZgeU%X_g?AjW0`$d4Li>N>DkKVA z+-5|};N`}SGdVaFJJ_$E@Jrx!8aH)b7Xlc^Ha545586XQc?49c$lZUm0%;FmPeLe-}YZ z@=?K@IUqKH9MEuKA7z}Jxe6%Iun7a754naZP~YqpZ;5vX>NIr0I5ep%pWtx8j}I9? zPeq_QV7aYm7ky@+?!NwX{?1T)$T%7er9>c&aO-NuiwUnzY7!eg(_w$2^LZZckafI# zI&uM?PooHB#%A)=v}n`stfLobjX+E4XgL}%%nY3Psa=7OT5ClN$>QH4pJE3F{JG?G zn2A&~1U$F-&z`snT5Ko+?zH%m(`Le_&BUHIYR*j9oSER9nXEr&&L_e#+dsp; z#Gpjjfn5G#L!U5={D*(eeR#+yK9tLBz9`<8)vBJ{_OcFR+MNs{M96@UD8HerC74ga zPMHATxIlw0x}hiZMBfclBCdL{el40C6>OA?K&wr(kABu{tei>LSP*Fq_|0=e0-5ni zJ%dS2+{t{&3Vg-B!n96cH1Lx~OI)l19 zD44jY4U}LxNVMFwFx6|ozdyAVB=iJMRRs&t+s5bXVJ=7m5@(S3seWq*XB0e5bv<~ z;j~nK8RaY-Ajq!I^2=h<6A#j;i~SkJCsnx4GP4yv*w~MK{+jO(O-m3ZQUxVNwiJDl z4Z=uZHm1-*$KEaZKUq2dzFHPwx-{P=$k3j{Y*MNOP&FyP@c8npt* z_FWA?6Z9W{4C=ltb(53^5_{yU*0Az_K}-}(o_7Ck+B8*lpGl7Kbo{KU=A?MLdpBrsZJ-E` zvN;Zod<%b~^gw8+(MkmAX;|hh#WqjuPm$Rggqc+NEai|AIiNIc5Dll3yE|Dl94wjv z+|9wFVWSCuas^CeFu5UGHR;<7r7+up{Clwms)|9fA%UuGFFOo{U^A-fm5h2k9}K1I zKBVve;-jYo+0)|t4DP`qFWgiogP18~rcUeEc;=G#U#+K_{NWXjo&enM(v_P) zWZDPeDTy9&Z(EYg1_owMR=njgkhA7$f1ZyX&qm#Y9vlIhl?{!wR5O^XWShDQ#pA8U z`Lchpe&nC-k*H}2*2VX)i?Mb020C+Pp8a7kX8f|#57?ZUpypMbcCjE^&KJXL-uSGz z$=F|yKg_!vAvh++9P}lSWxf~}(kVueAO%s_Eo9X`$E2$eYVK;insU1;05!;F(F!-$ z5XG%IZMgB1q~z0xx7Iv8O=1|mGacCj){}ou+Z#{^eu6q*DDr?^`UcaSV)lwcE@MyQ z>v|eUKx{oWGaZS^l4G)*cne3c9+(rX)K{zs+iR9Ui*$J?;i^P2n)BrV-m+e#sNve` zDYNzO8t|8(@Jm)uW_-!oNM-J$yWqDX@R1yEwGNiDSeeJ&e59_UbU0N6?2I7!M zBYQ@$o;Ah6CwUkIK4TQ=PpWaZ^P2ImSo zKe=ehND+RDHTh+?MXX4jth>#j@-@}4>Tig0BsCkjA(Wo z6gmt_LiiIGnUp9fF7;?n?Qk3vUCu)oEQ+mYAsa+DA%mDCGP~@bSz`#uEc~D#?y}&CBwk*fjxxwSL&$j||FWc++ZlsKWx;DR()sBKt?Q4v+E<+z+}6cX&S3dEy)T6H)c&Yp2cY#YE9%c%Mn zmz1UhcVNCz2`v;DAw7|=+{=GrXTz4I_fHZFLOkM{Lc-pCXrCor3}Z2SWt$N=1)T}j z`sUr(3rCt9Y%rIy!Pu5c)gqUyIAj`b z>4AXEI3Kiyrd8)${YkJ?GKi=FtW6Nn*qKAeAXKG#hUtvi4^B3$RgRl-@$0Ew>Zqh$RqQ~ z3PY}{5>$69Tk>~y})i|%AK0g^-vWUy5E01_6APD#yJkxu81k6 zo;~TBQ;A3huE^&LWf9IHzFTJ{XF(?jkK0(KbZ$#bIbvYvWgCfO?k*!$nrq=j)Bet* z20>xRg;js*T;olUnmS@X$|rno;4P5?acExx%J;;CdjKF3J_XM_@C${EYd`#HXsPX1;1*i%NvQhH z-^4c2>XyfmQU8zc)9DvOi`dPOO*85|W$zrs9iV?xB6=6tusvD`MfSqyOrGTjh&8oE zc#41k(e1PjL5-8lFd^FMgSE|y*0D5<~IR0E}%qG>>JrW6^FO_QrBAdeeA zTJxk#)fHE4@C1NbJ>jY#PFcmDouXW&3EmmcjbL!+o#VZoPA_Bse2)L@^QV3Obikhu z_|ty_{`7!9J>*Xh@#!Tm`I47>$xFWEC13KAFL}vV`1h+l{AW)*?c+cDuR5+JM@$;A z_Elr-X@R3__`SHCqLdlubFugLb&8D_o$$9O9m=OGSo}Bw>LnFR2;42YUin7|>&OFE zKuTu*u@mXglcNsh8u8of)%<_543SLN?oef4C3LoS3C$DIiU?iE|K7P+O1VFBuJss8EbN7~~Hc@{8 z-sgOu&h{_tGH+NR>;)^WVy(hGxJIY%+@*@&V9=cI6cN%JSSOVA)MyN9Xo<<6CmS?s z&5g)_K4EM3=NV9Hysk}bI%^M?{tf^)q%fwQU5~UQUBuNuRtc!1 zX@#`vZXc@F>9>xuH6I44j<#LVp|xXQd}@}3$&sZ_rR7PV}Lo!;1%_5 z|9w8`;(I8`G4u2VaX^^r*Z_Y7&o;D{SnY2Ot^JMg!prRt$v_3y5<3r`NjVPB$B~$f zgTV>vQz&x;Fs&J76}M){aVM#+w6QptI-&9lGR*n4%Q_RP8l$nxTRR_i%;W(LCg4*z zCwBJqD(gs>%nmdOl0eUBa2Y^N^-XrCpS=VF_nWdVdRb#F-f`8=9a(>2w`B-PX7Cxs z9V}~Z?XE>z+b7?6*_@?q8{X+jLKBG&U3i>|z8ROS226J0Rx-vRejbx5Np8ewfeC8b z;2^*)fqWI3ea=`*$j2n3VJo$Dy+aaxQcP*IVc{q zn{jcd=F9qg$1bx2>ttsn9D2k%rxk8(oWIv%&C{z>b%Z6XR$FL7Xj9zA3eqsyp+;tt zgWC>a_z7ig%QmIisJd~R`2Xy^YkM0vk}??n6&r2$%D3O1XY*`a$R+eO2Gro02B&^LS3o?Tt9O}-tb;> zZJXI3MJMSFsSs+JMP0IKO`dpfh=bk%ogoLnWUEx zC_v$E3H9Sq&7FU@zp-?TFX$(g_e68CYGO(}6xLpa*M8eM$ z(69Il?R;*5bUsKS_Q7;i%xl21Y9hYbwrvlZ8f0YyW@jRGmHF6t_S2Hf7hEGN2)5P5J1l=$K^StLyJ%Rkc$|)=*Qt4R zBf~at_#e2O)o={p!px(PP&tcR8(~pgSk!9Fh^GMuUJOqOt((QDBibYigoxx9N;Xi74xMG!=8rwL0X_2qUz!vMgSvjrv+=Z&hum@X z?xSZldr`|N)J=l=x~M^nm7x27gdly!a5fh6zk^t7_j)Blwp)PFef(^~G)K#e+iTrq z72v=5C~M<&nnE0_GC!M;k*j|aD@_wSQE3 zK}Yy+2(NCG;cY(M7ReQwIiAl(Jmzoz{5rp!*J(}jAzwR|KI%8hxjg61l8W(_<#Qko zfUSQrNOraCfIOu9|o~KpXKA`CePvguZcF(HiHu#TAalRGsCXx zS|EYtEXQPS#*wW+sC7T=81_N5=)l&}hmOP2DTrF-`!h%1pTtCw#l!5V5UM=WmMVV^ zR5S=xj12&9ZP(gcDQsy6^dok|FdD*hV8a$QYgDXkx7&K<^d`;cj2k?=gElK}K!1ZU zJuq-VR5U3<16@ztbu2uGx>ImvD}l|uDCRc>4Q!AN zr3gP3KQaDIWNFXUcp`t%6=m{AGyQ)b1U<~!gUc%-B9J|&e}{V&5qi{yBn5xhCCm=< zFIB`6840Ryg&@J$&NV#p*rE*4a2wwmfcpM>CeOEO3WNvNNdi5g#T;T$VVru^-A7_6-=TBu% z2oO?lZ3lX-Aeq{63`?(x^>)S96~|o-gn+>~3idvF+_TL?#4o={Ckr{)mPwS-b{21n zw<){XKE%D&5>}oDb5Zs7@kV+EI52J%UPiXSn(lu1O!wmY0=)_K#AncF0MxZ$ymt>+ z@63C>rt?VeJx96<+GDWU5OjYLFY16KrR#Dllbq<;Hb)LrS-&V;xqYGJpPG&TY{-KS z<^=3qMC6XLu?cG%y%d^_MZQJjHf;^)?PX&VU34RW(0a|Jk(Y0$*`$%UZJ{MGh}J@9 z3{vT2bk)=$6XIgdo3tT^MY@HyfG<%4#f?o=75<#|N3LXWhKkjA;l6($vFRzI5b_2QugpbcF07nN$?PBN@a7&n@Y^uM1BuCu{swEC&Rz$uqRAh1%zX$A%R zi+{dP{sb-(?PrJkkN)fJ%a-`Lx04*5zf%BFM9zq~v(eW*H z(6*9}0d}B_PzCasrE{R*U}&~vxF#Ur5EeL4lS9G2Z&mQ@K!);>LnzyS&GZs-U4PIi zOOz8D%BEWQ7M{bx?Fu>h!zbhHqO)fwcb0+JZW&}izp5nUL$gBBc@bfUYmb`j1f!$; zt4>5?m^88m$<!EX(m^&3$`_35cK2X;m+Zp!8j+!l=jE+M1 zNJc06bvEwL(n;3rgVjI(wbZ1qOC6*DwW%Pis-U16BA}RY1s6m~u5x%4yisMcuTNk1 zIt>R1ajWaR29S#Z6P@;n9{zGo(&0@CXlpl#Ad5I?5({wiHnn+fqwqD1& z*nDFPk2FZ)s>{YhoSf_v&j?xiVv2FXN~Bo&<_0O|LSTi#CdCz;N7t5$$@TYy_Qv)$ zkhw{1pq%G}&ra}vu5KwTC*(umXj)v$)Jvr(swJ+ed*JPc0KcT!rg*haDTrLHZB5#b151cu(xpi~4 zUSeM`h-VYHL2}YTivf>jk41(}k0|1kk#Rf;2lpGCleJ zbwl2qT@^Tgy?)2WglEeUAHHRy;oDUB5s>jn{TxW)DThIhtf{2LCpIg#Zy8C~z)V@a z@pEsAgob|JbTWCwW(z?`08kyBDA6y~vJO+R*f6pv_8Uv&H^}AkUYJSVLoyfL>XN%O zv&+C*%bg0=fG6nib>XuLq)Sf(>Mm~~WH}Zl)HpAHX5cvURC(Dh$=jxg$VL)&bTJao3>c0 z`ixZV*Qg4EA{lRR1U3oF?wjwQVZKcqk}XeOP_au}A%7QuyfomaPhF7xxhz4!C?=Q# z5L5Ag5Ho^(E6uuANd_^#(H(cA_BCL6`>TyQQ9nG(zHr4e zq>abjs)euLQzhvR%_UE#`h+laf@6!GX~i$#l4v1A4w4K8{OM@3oRe?w?Ry{!cdr+t zc|ILgmN(?UX_%^4iVQvBJ8mkFoZRj!Rh=Dwv2&kB8n>e?Q0O^65wiS*dX7&{8rRbz znBbh}O?gKCS5}B`BR&shg}E3#MQ6_62)#L4-I0Dc z)B*6g69PvhvKEM~ii7i$`w-!+2^)amsvrs>Zr*VwRX({~L~XDsYkvB)Vx>{3q?e-r z@hn9O0>g;85YL)Zorg%}K5z_tjz#}}H=nXCcq3@;-((K&3u(`1&!-Btr^bz97=jQg zD@iSir+~?JL5}}w>Lp&(5meSF)++z(tcZ;12NMsSU@6Zf|?DzKmz6BE2+!^>l;@ z*tlEQ1OGJgujO+(cHIG4I=DO9w=_Vu3OIN1t-^9- zUh=@ThQn6fgO&lHKEqsM#jUo=mJkSHa9LlomRCM3zWM+fEB-ec(G~E}Ug?KRrV9j2 zoL3Cp8Q9RG*s|2s0&20)3|CEmJ7*T+Ehx7IHLeQkY5aBNrGbymb!EMq?iR|Gp6^ko zY4S*yc5n&R;LMKEC)d!zgPH&$7Vg09i4b5T1Vo%T8Y#WvaE?pHs%Su#4sU0_y1U}t zihgy^sBbrl=%v4RYEeptSi^2UQbkaLKbehD?L{SB*Xf^7!|pNcbLOXirnD@kALo#kU<+7a8uit4c`yG7l(_RVo>5#!pZm8}C=Iwghyj?$3Zr9<>e~CAaB*V%e ze^6U-+`Culse@Pk4hVeK!T?O00b4F?cpg49R+sWqi&Mu@&@N7#W+T+wq4BSOIcDQu z{|e5B#o~mn3HV1i$4#<-o8*0Vb$UB((q>zYtH!1!cf7?kSnH#hsC(<=SMQQSuIuR5 z+IwJQu1<-C@>Xu(i~MzYgNW4Sdu`j!MN`pte3Su-dSnZ?t!|BvQKu`_9;#l@DXXKf zX=D`!>H){5$({VvId!TC=lPe+YUWwxCBPfc$mGulyuUINNf&6310oN zyS^KepVvh{AH)oQ-%abXb=MlT^46d={w)U*dOk%Ou~g41G@&SJ*y zs`aH+w&tz0HEB&-Km9R!FnayuG6i!>=K!WL{BD4Is7;;ds$MOo)V7e`?yd-HaGi~F zg4U`yVa&tTK-{GBOwVSZPqU5MBKP5>##WqE=Gc8O#1g++EBY_Y{RvSWI! zTvkc@y3Cnuo8g%TlW+L?Qwhw#&tgEG+6gRE!{< zXOa#ESy|@&QI@c;CJV}0PK4L#6az}b-{-V24O?iqKbUygV;<<#rhm7ERi&Y9Qv!CA z#wo@Zhm}Ns*TXsL!E5->#7Ujg%GNH@&W_)$VR@@|uDHoy1pM?4dSTd%toRD%g^2#7E5ukUHU8akXk8dm|WpWEOA+giYCE>c|9c z706Vg*xONv0_aVU1^oDfD!w{ZoRDE(3thncg(<_4FMfOb$Lnm8EXeqk2@Fz_(nC@! zNx8Nb{w%?@dANO@jq+Rg&8z_-M{Xs?Vq)35WRN02#&3|~r1s_o**U>^fRun8UGGkR zALGj+XaIuLNvRg%LS(_3kghi`r3N`ywQer3HU&PV53F~OLNIIJrFcMpjNvaL`a^jC zO}e%EW7;c#ENeh^v4k}lyMnFB^477&w4h9D$43PC@H8q*L3I9~vYRSopP(Js`p#i+ zW~pm(i6tVvn4P!qUniw_LuG|#Nt{c6Kdx|HibiMn55;;Qum9q5$elH zJze?OzsP`qC_jy$pWT0N`hj-y$yKH0J;#o}gnfix@Kuq5bg#R6Ba!u?6;B1b_V~iU zQg9F1vrGyL{yH8H`}t6HiU*F(K40ZVR2=l8z&-)B4T~|MamPIB6ldVUFKnV~r%b{jW-N_eUhTh^bU#^RcV??wg?Q5!K}wTg9Q%TdHW3)XM>^oS9E3zgoeL`9K`pqEF#IlcHVEdzNzEHh!;Qm!i}#|i}F z&BWmh#;cuc)8Wu{sI7msaL>99sU@MYxF21I)RL_ANW8iZs&NuIWTJLPA3ePrw4O9Ivg&L|3 zUmqU*C$EfNEPK5CRn?iuU+hNnMtDGI(Q?75-BFw7|NQ<@r+Dkc26b`wcEqTE!1z6A zXU%7huZsV=4kCZ3>tgg`%j9bKYD&AM&mdo0Z6{7Ne`xJ~cUrsu#ddjnDdSEB zV>fyA2H}@7*Z8z2RT}}ViSRZQpmf?Y4z&RLZ={jrsiR5Li4X^W70ut7V=UCipczV0 zhKe|$R@FW_CN7ykb{QCQ>R4Dzxa~2|+okGL$XvY6hr>~3Ohzl2{NI_6F^&PBkmdwf z?IihDfMQ5O=shu8laI+^^{Wc1qE;cxySo{hSE+gX#PTImxhel|SU43qJM&?M@(j_< zUFdH_+LYrXXWkTlW$iga1@&iH`Z;_&*T?ih1v{7sE|@;a(Y1}YyNwN|aJ7B>#+pC5 zPUk%XU=BiXSQu3_rIxjG<6o={4kC#ICC4NVv#bQL4a8>eu8ztmnKHeOU>-|NvUL5yGc9`WKfDWA z&wOz2cOPZM<%ey8Zn((5h#%HIZc1oX#RD ziHfW4M2YLndY`Qgnr|}M2>RdH=fW>Ev8gzQgnVm%n-7UXxm53+Z>xY5&YnvBp9$h{ zil>wezq+P8DSteaepw<4a0;fMmmFTH_}A1Fo@8V{&F?`+n3i{wK>`6M-d*S4&qmFw zGXEKpX{IB{MO94Z#bVY<`YdimD_NkkHAFT|ji^wYcRqJ+;)eOBN{w~{ib{(_IK z9<1Q9DYfJX>A(rkwwI(MG6&6#3sfD?v&kGzzc=}4gt^N5SyEnufoDG(qzh)&Nmw?M zpvojAA_Q4sWlmTaJ6{XgqTOz9nD=NMbN%id{E z`;47iddY$S$N+iBdW0JmMB=vRWrSBEMJW;n)?=-{n-LBjDHxct)~HB_1jq^b-ej#< z0O(c04&dlhdP`~w>eFRrQP+MmUuJU}PKpuMua2sDg>C_2a z`3XyvN(_Wdve_&fGLcr3=#2t!bc2{{dXx$i;5#q0cXm(`nzgB5DKVJ5XOsemCSYbm z>?aQ&XHYB=b(y5cLUQy8=OvOlob+kcZTe4paFttPfr zF&Sz~7|g{ios`pJHaF`0sSV$ob}a^>zC-v=%ldVGH_Z;o!RzfgIfz+*OCYm7gq2p$@+Fw7^H*ijAk;n7wBhXc(U_sGCZu}UIpS~ zYT4;PSbaqnv}KL(=T`@I7zAyeE!{NPWU}R&E*BWSQfis)Sbk*|<(|A~triInCWI(8 zczaFO4V>K1=jnVw4yssx;^KM+vVT~o7Oh9~WWzC}58(bd#8kfk)NR|s*QoxGOVEh- zd@=l4-#_7F{}@%il4eRP#1%{BJRN*4zGSmYBEX}5>8C|jV$9L)-Q6cU-R_eo+Y2~D zZG9qNW_Me_1GeVH7P$Yx2DO!L(Z#rRNn}6K%=R}ri-%Fddz9{fWpO#+S1Bme;2Ve3 zLL>(emD+50yWkm0|Fk%=xMdJ3fB+6r0m%fi2Cng_eg#Y`G`Jd2e%OtY;DuJtAJJ2? zTnRNd-~vl~*LB*~$k0i5HzZcOVYXJwTSo^CEWirW+U@$U{c1y&kKwXx%WML(@)@cBb^3SO*$GE zC5>QP!qrt;CNJI}oxhWmZcsA29c0saWmz*K`wHmQRDgPaa|zzOUglr2gzPZsoL;b& zcKV(;DgDrf9f+<$I+vDfgFfW;#0hFsJ_Wp8{+Un6 zo;Vp~#btug0G{D%I10(7sHFO5i7;^6y_;u0|wQ%$(T5QGU?@Fy+p>8L+)7U=9GliN8d(W>4( z+DYbxrPeG@fQ@0~0-i zw!t9am;i@}qBNX(bFvr_Ue6~8B4p!U1u?QaJC9_4-^ay-1P&a=X<>89olm?1A@D=srV0D%eSYu za~imuy|~j~{H(vw%~WV=t85BaeC?fWd8EyMalKAQmp#~AV921-H_fIPge~yR2lIXF z-crnRHcS^U-=Chgf5_lYeYZ)bYO8{alcfIsS^jOI?r}<%)9qn0`3C-PkCQrC_2zQj z@5a(M0em(|+ORFdt_ae|Y(`KX-4RKpm?pOv5@wRzv44Ly#tQdqX*Y8$jZSCBx_s^LZ{N~oGZS`lQM%%b$`PWh$IsP0%P4FN@o zjsX4Js``jJJp7gtE{L1m_6|PeXQ%UjIO%rVkGp&Dd#~H>>>c2jgZ7h0_!mfEC|OiO zC+QR24#>!o;rv+w{vutJWu8uw0T~2Pmy)qc=-EL#A9Ub9Tb)k(VE@UJF8)fod+me0 zN1e_S{I>g;eA|2SWKXFH7~`|kezLcB@MxF+5`B_>xoWCqZE)gh+Thsw8LAn7!hNgT zK6tYG=pcJYN|7H=I-UJJ@uT}>zaxI^J>K6HKOXHr>WUu+yN~zr2LXs;b4l}UAcdke z0Q8fxq82j1GWl8KfVZoiH-IW^2M!S6L63*0hjKc~=gr2yCWcl4FB^zB%wwp1koRy+ znZ}Zi@}k%R5hED%?SGXIx3$%OuEbZPanv{f5nRm?R1K=p0~$+*gZn^}SN~v*Yl42v z<(u?P6RU1+R(+#6qv>mxe(RfU<%3pN!b0l1NO{xQA)8O4!L9)U_OnMTf_St#8r?O( z*p*@U1X2OhEsa)1x?B{kUhQ%@w0gC-gb-TQHXKO)5Ev_@D*5KaNB25^f6U@2B2mPK zP!y|OWiGjoxyTL634kj&(HVdfC%>tHefZ=`Hf3@hHd1b$15e1ylLKL=)CU!1CEwWo zwDnA}p@O3kDyZ>rjB-Z;rubSz56R16KAbdA{3M&2q8`Hod*)Z?ykj%*t^GdSBBWju^ zsMNs(J8jnNgldveFl%)~wQxMldb^=|Fl1)6J++!+SYS2s(IFUmhC$ty<*^~-;Ti?7 zMPOrrqMf7Dq*&E|c}GE{kf&8=O;M5StC>NY$7;=xcA=_3w>`_IBeGDN+Yh#{S_~X| zS(@VrsXT>TUWF?=uuD1E56T713ETJ0Gq259gjxGhOl`qI%=(YLl9O!faH$Y2uQ7cb4hBe*xTkGomr6^9_W zVrl>@rptl4ximoCTv`G|T2@CT#YqMVKh4k>!D^wPyyTl_1Fk!P_ktl7O)PBEy9Qqa z&)T%pzr)!o)~(DO3H7(r2taQ)(vHjB9`0$sQdM_08G&vqY1BWk7lpzg97DMLCe!2COa$#)~j?DG3?NC%)7dk{dCzRlr zw-^o4MGs8{w8E|pu!DHAz3+-?zapywdaNe=X=3Pqs@Yw>(QdF&hgkS{39)c*C9yC{ zsPu@1kG_UjsL6sF0sbK=-n*p8EiQxN-*Vpaijh@vKY|l;28)rM@Mal{gV!RC!qQIq zoCjB9$yfxAWfboLFU}~=xM{S`xOdIQCGNFC+tp51uX%3IAAtcYTA`rhAnC5{NB}Wg zY1wpt?hMng-uf^ntTDZ#hU)hA#mXYRL<4^nir-MWp411Tn~V{a>eea+|2B$D<&sz_>tPhrgnBW^a7?%z;=uWu)wGFHOr=d1HNy7h7GMGjCh3R zY-(s(bqB6SH%JBe)?L0ux>Relc%84-A`EPQy(XbXxJ@U6USig5?Av6>R@QA{@j4Yg zfF2kFz@lNW$PqM7M3T}`VK(x(xFN1b1Kb)L8#Nh)9F%2noee(2GCX>BW;jPu2P$R* zgf@_*;Cm4xLMc0A*L`TP2ChdaV+h&BT;V=-hvdSPwdd*VDw~5-`eHOkiKzg5ScB|; zwISHbQprw>iwHYLQ+{sXSchI^V_?gr4@b?(KipCWeOQN_^=0YCQhiPFp4elLrlRo| zW69MWTB|f;RA14zEZi034F3GN; zFGhYs?#893d5qYEj2m7DLNQcS(Av;Ya7}{(^CG*Qhk?oBJ^!oHFEAM&Znjnu^B1#`Plk6mAX{(uY@QrQv)J=H8|tV|>r%mQ5em92r}q{J8tqP? z1vv^WS%yc`Y38&&@rpS?WhQQagxFSrv31q>w|_|*9n`MxG<35Su;GU2qc_FuGln@M zLorC_*(8Pdqs;s}OWvJ4!|kZl+JsT#7ou)cLIYKZlVo+~l8qvpH~C~(+&~Np`WHFn z4$#uv@~VAZlye9*-_9X(%G=9kLnjongFJYeY;|BfHnz_>dfVgiAiu@TJFBhU5*W!H#Dm?G_1q=NDJiH7?Q=`IBZ}* z^=er*4y83pBO1b*qA?AB2|o7O0a$cU06Eaj6k3ob*0KdJvCgQI4}emJ$CmeKG-AL> zqwKFXd3m1A=c8=c6d<*6hA75%mnlGx(-xIksx~azPhI(liwU@?&}|{GR<&9x)@qNl z^ni>V3o%WBn^6E!)BQRdzoVIHjwZwR#hkD}UEotU?*VuoHM7}&Ea=sAa(?~}CV#M? zzB0*mI!w}JIxG64Y)qp*LzkueyC8~Ii*M&+QaLO+#tfv7VW0L4I)!KKVIRirJsBM$ z9aiIH@078X)fxQy?(IBOAES<@&i_FEM|S-IN_`Z8g)}h9DR?!fv#Z4zoEsr*(}cN? zv4I7bbcn(YhbJ+A!iUKR7A&>I=!u}xARO$cf4qF3d~{$65%#`x4bynR%vts?VCeAY zhBk_B8kO;rcu~a*ad`#d6q50PX|5Rk4dh zEYGG z0TNlRW%kn|n+!5`RP@vnjP7Vs@wpG3k2E=sG+LfjPg*C^YJN3g8BT!iLwCN=Dgu*twnaYWv>vJhkJ?i=K2>?zRhQv_^thKS zJQc^NiLp7&-59iaHzN?I71rEOWqK&L15uTKcb~Fe$YZJ$q_5?Iv}$ngfoFT$94kkX zQTbVMfWIOgt+XjnEbfOaJbMXVgJ=VcXVL#5^Hqy0d6DHZ^LrQT7xFV{7V|=4TpedZ z5&fyOb6N&Z(Wo(X&Rm@h!iU|z^}IzcBHP4;r`$Jx zZ$25M%;=r>U@@D45{LEJS;aX*{@k?o&Y`g6@0Wcj*;Gu^XkZOnwPM93~+#3V4|PdR3)Nvt^I(gs5uTPvvKQRjQ^c zG;?ab9uNEJr6;WxEfAli>s$!kZkVEfj6GqO)bp=%@5(M--)EN-!Y9{s^(ww!yuP?5 z{k$$l!?P=v6=SD;u;DVmfnrt^}}%c!9GF<>bT zqY&8?j-d#%dBDG)-BBZ7ykiC^QWjVfsq4}As1m?yMEvXJh+t(wXgEu6pcMRT>t6po z2o5j;)_o9;|D1C`HY+H|Gg}>hiGeJQhH+i@p#;po5gw1lg;I3dY{#3@tEwKm|8&%Z zN4n#EmX^%QK&wvm9v_WP$+JNaJkNgOy&`{76=h2X4%eC#vTkh!G+sD1iX}%F z9#Kyv=^39 z=@Jl=OIEmd+~r^1q{r#$Eg`MRRW|E&FK-q{y24xTX##FuA(7q3W1(wi>F?Tk!5 zetDIS^U2XM8Q#m8GIA%oSG`A{Zf94bH@uSvz0TdI;W2N6z3x2eJxWLW3NIJwQPpk;noxcJ}Jg`+l#}|7r0|{&Iv($&Ig~#Ox|4b&d~3Vv91#| z4$m=!p(Z=Wq|@tvW?5IM|HRXFxAD>6=^D#|jzPV3bawpqy!YsK@9Id*Y5*b6!lMZI zSLVgL-MwD7cr>U`3ASjgW!8{wjXxtS2lCsIiP-z}Q-0K&rE~V_{j+y}?LC^_9dHW% ze)5@-tGD?Groj-3V=ot{M<<=$?&rHwRQF?GvLo7_l}*`yd)cL9zxTM;DIV{~kG+-W z(biq;@Wspby-s?Yb2^6)IQ~Ce9KY%G{{HyCAD`?>->}lN?(2LoE3QUGAC_6~@$`E3 zN)&<;8t)S|U%xy)OR@aRs(ffltqhw@qKlcI=T}4?-0kgu+UY-2@DH@+*#u~l{$1kj z`{$3-UgtJ{{e0B>lFt?;ygWTlhu35RCxq?KI~>;-T;g{ej$DlzVPev^uZor|8=FRA z{PhoSjtGg(AANb#!*=ObbaDJX#f@vMZGu0XonIXF9u@iMNZz`RPY%ei4u%KH+jl3h zlm7JiSu8)a@4d8J&V5-YGXDP6(Tm;Qc{=A6;ZJs|9bSAF#SpYCl#o^OYW9W9v^EZ0{yf}EVP#nS%!!* zL!^jd4bEUnKb$XEogq$_ zHTrFT5#w0XVF6ErMo6nC4hFuxD$Mmg+qsjpt#W~_8+0LB2G+R;xYn(W(i{^(U)xB@ z&XD}#R8Z~=EIB9yyg^=Y`Nw!+%_`@rD5J zbaPz$rU4)9Y|$z)dDw|xJgIqxwMsMQri(9s9h+xp>vGBYe&IND0CbCg-d(^cm6)dh z$LYu+xQF*>humYAo}9wD`ZzBgvAxaq`BT7mui<(ucdBgcuxC4{n5kQeZO z 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

    o_h|D)B=PPNpVNZI3(l<#yo90fzZ-nya_TC1 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

    VbY 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

    ~uFh9t``(KlYD*(1Q%5 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

    o%@|POj&}J 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�zc-LBy1>_@KQ3Nr(YSEs6c=)iy3G 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 UNu+SKQhE`t%C_UP}ijPD$u97D&TxZQ?so}OY^ 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 2) ? idArray[2] : id; diff --git a/dist/icn3d.min.js b/dist/icn3d.min.js index 865177b..c3f3a48 100644 --- a/dist/icn3d.min.js +++ b/dist/icn3d.min.js @@ -1,5 +1,5 @@ var CIFTools,$NGL_shaderTextHash={};$NGL_shaderTextHash["SphereImpostor.frag"]=["#define STANDARD","#define IMPOSTOR","","uniform vec3 diffuse;","uniform vec3 emissive;","uniform float roughness;","uniform float metalness;","uniform float opacity;","uniform float nearClip;","uniform mat4 projectionMatrix;","uniform float ortho;","","varying float vRadius;","varying float vRadiusSq;","varying vec3 vPoint;","varying vec3 vPointViewPosition;","","#ifdef PICKING"," uniform float objectId;"," varying vec3 vPickingColor;","#else"," #include common"," #include color_pars_fragment"," #include fog_pars_fragment"," #include bsdfs"," #include lights_pars_begin"," #include lights_physical_pars_fragment","#endif","","bool flag2 = false;","bool interior = false;","vec3 cameraPos;","vec3 cameraNormal;","","// Calculate depth based on the given camera position.","float calcDepth( in vec3 cameraPos ){"," vec2 clipZW = cameraPos.z * projectionMatrix[2].zw + projectionMatrix[3].zw;"," return 0.5 + 0.5 * clipZW.x / clipZW.y;","}","","float calcClip( vec3 cameraPos ){"," return dot( vec4( cameraPos, 1.0 ), vec4( 0.0, 0.0, 1.0, nearClip - 0.5 ) );","}","","bool Impostor( out vec3 cameraPos, out vec3 cameraNormal ){",""," vec3 cameraSpherePos = -vPointViewPosition;"," cameraSpherePos.z += vRadius;",""," vec3 rayOrigin = mix( vec3( 0.0, 0.0, 0.0 ), vPoint, ortho );"," vec3 rayDirection = mix( normalize( vPoint ), vec3( 0.0, 0.0, 1.0 ), ortho );"," vec3 cameraSphereDir = mix( cameraSpherePos, rayOrigin - cameraSpherePos, ortho );",""," float B = dot( rayDirection, cameraSphereDir );"," float det = B * B + vRadiusSq - dot( cameraSphereDir, cameraSphereDir );",""," if( det < 0.0 ){"," discard;"," return false;"," }"," float sqrtDet = sqrt( det );"," float posT = mix( B + sqrtDet, B + sqrtDet, ortho );"," float negT = mix( B - sqrtDet, sqrtDet - B, ortho );",""," cameraPos = rayDirection * negT + rayOrigin;",""," #ifdef NEAR_CLIP","if( calcDepth( cameraPos ) <= 0.0 ){"," cameraPos = rayDirection * posT + rayOrigin;"," interior = true;"," return false;","}else if( calcClip( cameraPos ) > 0.0 ){"," cameraPos = rayDirection * posT + rayOrigin;"," interior = true;"," flag2 = true;"," return false;","}else{"," cameraNormal = normalize( cameraPos - cameraSpherePos );","}"," #else","if( calcDepth( cameraPos ) <= 0.0 ){"," cameraPos = rayDirection * posT + rayOrigin;"," interior = true;"," return false;","}else{"," cameraNormal = normalize( cameraPos - cameraSpherePos );","}"," #endif",""," cameraNormal = normalize( cameraPos - cameraSpherePos );"," cameraNormal *= float(!interior) * 2.0 - 1.0;"," return !interior;","","}","","void main(void){",""," bool flag = Impostor( cameraPos, cameraNormal );",""," #ifdef NEAR_CLIP"," if( calcClip( cameraPos ) > 0.0 )"," discard;"," #endif",""," // FIXME not compatible with custom clipping plane"," //Set the depth based on the new cameraPos."," gl_FragDepthEXT = calcDepth( cameraPos );"," if( !flag ){",""," // clamp to near clipping plane and add a tiny value to"," // make spheres with a greater radius occlude smaller ones"," #ifdef NEAR_CLIP","if( flag2 ){"," gl_FragDepthEXT = max( 0.0, calcDepth( vec3( - ( nearClip - 0.5 ) ) ) + ( 0.0000001 / vRadius ) );","}else if( gl_FragDepthEXT >= 0.0 ){"," gl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );","}"," #else","if( gl_FragDepthEXT >= 0.0 ){"," gl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );","}"," #endif",""," }",""," // bugfix (mac only?)"," if (gl_FragDepthEXT < 0.0)"," discard;"," if (gl_FragDepthEXT > 1.0)"," discard;",""," #ifdef PICKING",""," gl_FragColor = vec4( vPickingColor, objectId );",""," #else",""," vec3 vNormal = cameraNormal;"," vec3 vViewPosition = -cameraPos;",""," vec4 diffuseColor = vec4( diffuse, opacity );"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"," vec3 totalEmissiveLight = emissive;",""," #include color_fragment"," #include roughnessmap_fragment"," #include metalnessmap_fragment",""," // don't use include normal_fragment"," vec3 normal = normalize( vNormal );",""," #include lights_physical_fragment"," //include lights_template"," #include lights_fragment_begin"," #include lights_fragment_end",""," vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveLight;",""," gl_FragColor = vec4( outgoingLight, diffuseColor.a );"," //gl_FragColor = vec4( reflectedLight.directSpecular, diffuseColor.a );",""," #include premultiplied_alpha_fragment"," #include tonemapping_fragment"," #include encodings_fragment"," //include fog_fragment"," #ifdef USE_FOG"," #ifdef USE_LOGDEPTHBUF_EXT"," float depth = gl_FragDepthEXT / gl_FragCoord.w;"," #else"," float depth = gl_FragCoord.z / gl_FragCoord.w;"," #endif"," #ifdef FOG_EXP2"," float fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * depth * depth * LOG2 ) );"," #else"," float fogFactor = smoothstep( fogNear, fogFar, depth );"," #endif"," gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );"," #endif",""," #endif","","}"].join("\n"),$NGL_shaderTextHash["SphereImpostor.vert"]=["uniform mat4 projectionMatrixInverse;","uniform float nearClip;","","varying float vRadius;","varying float vRadiusSq;","varying vec3 vPoint;","varying vec3 vPointViewPosition;","varying float fogDepth;","varying float fogNear;","varying float fogFar;","","attribute vec2 mapping;","//attribute vec3 position;","attribute float radius;","","#ifdef PICKING"," #include unpack_clr"," attribute float primitiveId;"," varying vec3 vPickingColor;","#else"," #include color_pars_vertex","#endif","","//include matrix_scale","float matrixScale( in mat4 m ){"," vec4 r = m[ 0 ];"," return sqrt( r[ 0 ] * r[ 0 ] + r[ 1 ] * r[ 1 ] + r[ 2 ] * r[ 2 ] );","}","","const mat4 D = mat4("," 1.0, 0.0, 0.0, 0.0,"," 0.0, 1.0, 0.0, 0.0,"," 0.0, 0.0, 1.0, 0.0,"," 0.0, 0.0, 0.0, -1.0",");","","mat4 transposeTmp( in mat4 inMatrix ) {"," vec4 i0 = inMatrix[0];"," vec4 i1 = inMatrix[1];"," vec4 i2 = inMatrix[2];"," vec4 i3 = inMatrix[3];",""," mat4 outMatrix = mat4("," vec4(i0.x, i1.x, i2.x, i3.x),"," vec4(i0.y, i1.y, i2.y, i3.y),"," vec4(i0.z, i1.z, i2.z, i3.z),"," vec4(i0.w, i1.w, i2.w, i3.w)"," );"," return outMatrix;","}","","//------------------------------------------------------------------------------","// Compute point size and center using the technique described in:","// 'GPU-Based Ray-Casting of Quadratic Surfaces'","// by Christian Sigg, Tim Weyrich, Mario Botsch, Markus Gross.","//","// Code based on","/*=========================================================================",""," Program: Visualization Toolkit"," Module: Quadrics_fs.glsl and Quadrics_vs.glsl",""," Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen"," All rights reserved."," See Copyright.txt or http://www.kitware.com/Copyright.htm for details.",""," This software is distributed WITHOUT ANY WARRANTY; without even"," the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR"," PURPOSE. See the above copyright notice for more information.",""," =========================================================================*/","","// .NAME Quadrics_fs.glsl and Quadrics_vs.glsl","// .SECTION Thanks","// ","//","// This file is part of the PointSprites plugin developed and contributed by","//","// Copyright (c) CSCS - Swiss National Supercomputing Centre","// EDF - Electricite de France","//","// John Biddiscombe, Ugo Varetto (CSCS)","// Stephane Ploix (EDF)","//","// ","//","// Contributions by Alexander Rose","// - ported to WebGL","// - adapted to work with quads","void ComputePointSizeAndPositionInClipCoordSphere(){",""," vec2 xbc;"," vec2 ybc;",""," mat4 T = mat4("," radius, 0.0, 0.0, 0.0,"," 0.0, radius, 0.0, 0.0,"," 0.0, 0.0, radius, 0.0,"," position.x, position.y, position.z, 1.0"," );",""," mat4 R = transposeTmp( projectionMatrix * modelViewMatrix * T );"," float A = dot( R[ 3 ], D * R[ 3 ] );"," float B = -2.0 * dot( R[ 0 ], D * R[ 3 ] );"," float C = dot( R[ 0 ], D * R[ 0 ] );"," xbc[ 0 ] = ( -B - sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," xbc[ 1 ] = ( -B + sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," float sx = abs( xbc[ 0 ] - xbc[ 1 ] ) * 0.5;",""," A = dot( R[ 3 ], D * R[ 3 ] );"," B = -2.0 * dot( R[ 1 ], D * R[ 3 ] );"," C = dot( R[ 1 ], D * R[ 1 ] );"," ybc[ 0 ] = ( -B - sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," ybc[ 1 ] = ( -B + sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," float sy = abs( ybc[ 0 ] - ybc[ 1 ] ) * 0.5;",""," gl_Position.xy = vec2( 0.5 * ( xbc.x + xbc.y ), 0.5 * ( ybc.x + ybc.y ) );"," gl_Position.xy -= mapping * vec2( sx, sy );"," gl_Position.xy *= gl_Position.w;","","}","","void main(void){",""," #ifdef PICKING"," vPickingColor = unpackColor( primitiveId );"," #else"," #include color_vertex"," #endif",""," vRadius = radius * matrixScale( modelViewMatrix );",""," vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );"," // avoid clipping, added again in fragment shader"," mvPosition.z -= vRadius;",""," gl_Position = projectionMatrix * vec4( mvPosition.xyz, 1.0 );"," ComputePointSizeAndPositionInClipCoordSphere();","",""," vRadiusSq = vRadius * vRadius;"," vec4 vPoint4 = projectionMatrixInverse * gl_Position;"," vPoint = vPoint4.xyz / vPoint4.w;"," vPointViewPosition = -mvPosition.xyz / mvPosition.w;","","}"].join("\n"),$NGL_shaderTextHash["CylinderImpostor.frag"]=["#define STANDARD","#define IMPOSTOR","","// Open-Source PyMOL is Copyright (C) Schrodinger, LLC.","//","// All Rights Reserved","//","// Permission to use, copy, modify, distribute, and distribute modified","// versions of this software and its built-in documentation for any","// purpose and without fee is hereby granted, provided that the above","// copyright notice appears in all copies and that both the copyright","// notice and this permission notice appear in supporting documentation,","// and that the name of Schrodinger, LLC not be used in advertising or","// publicity pertaining to distribution of the software without specific,","// written prior permission.","//","// SCHRODINGER, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,","// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN","// NO EVENT SHALL SCHRODINGER, LLC BE LIABLE FOR ANY SPECIAL, INDIRECT OR","// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS","// OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE","// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE","// USE OR PERFORMANCE OF THIS SOFTWARE.","","// Contributions by Alexander Rose","// - ported to WebGL","// - dual color","// - pk color","// - custom clipping","// - three.js lighting","","uniform vec3 diffuse;","uniform vec3 emissive;","uniform float roughness;","uniform float metalness;","uniform float opacity;","uniform float nearClip;","uniform mat4 projectionMatrix;","uniform float ortho;","","varying vec3 axis;","varying vec4 base_radius;","varying vec4 end_b;","varying vec3 U;","varying vec3 V;","varying vec4 w;","","#ifdef PICKING"," uniform float objectId;"," varying vec3 vPickingColor;","#else"," varying vec3 vColor1;"," varying vec3 vColor2;"," #include common"," #include fog_pars_fragment"," #include bsdfs"," #include lights_pars_begin"," #include lights_physical_pars_fragment","#endif","","bool interior = false;","","float distSq3( vec3 v3a, vec3 v3b ){"," return ("," ( v3a.x - v3b.x ) * ( v3a.x - v3b.x ) +"," ( v3a.y - v3b.y ) * ( v3a.y - v3b.y ) +"," ( v3a.z - v3b.z ) * ( v3a.z - v3b.z )"," );","}","","// Calculate depth based on the given camera position.","float calcDepth( in vec3 cameraPos ){"," vec2 clipZW = cameraPos.z * projectionMatrix[2].zw + projectionMatrix[3].zw;"," return 0.5 + 0.5 * clipZW.x / clipZW.y;","}","","float calcClip( vec3 cameraPos ){"," return dot( vec4( cameraPos, 1.0 ), vec4( 0.0, 0.0, 1.0, nearClip - 0.5 ) );","}","","void main(){",""," vec3 point = w.xyz / w.w;",""," // unpacking"," vec3 base = base_radius.xyz;"," float vRadius = base_radius.w;"," vec3 end = end_b.xyz;"," float b = end_b.w;",""," vec3 end_cyl = end;"," vec3 surface_point = point;",""," vec3 ray_target = surface_point;"," vec3 ray_origin = vec3(0.0);"," vec3 ray_direction = mix(normalize(ray_origin - ray_target), vec3(0.0, 0.0, 1.0), ortho);"," mat3 basis = mat3( U, V, axis );",""," vec3 diff = ray_target - 0.5 * (base + end_cyl);"," vec3 P = diff * basis;",""," // angle (cos) between cylinder cylinder_axis and ray direction"," float dz = dot( axis, ray_direction );",""," float radius2 = vRadius*vRadius;",""," // calculate distance to the cylinder from ray origin"," vec3 D = vec3(dot(U, ray_direction),"," dot(V, ray_direction),"," dz);"," float a0 = P.x*P.x + P.y*P.y - radius2;"," float a1 = P.x*D.x + P.y*D.y;"," float a2 = D.x*D.x + D.y*D.y;",""," // calculate a dicriminant of the above quadratic equation"," float d = a1*a1 - a0*a2;"," if (d < 0.0)"," // outside of the cylinder"," discard;",""," float dist = (-a1 + sqrt(d)) / a2;",""," // point of intersection on cylinder surface"," vec3 new_point = ray_target + dist * ray_direction;",""," vec3 tmp_point = new_point - base;"," vec3 _normal = normalize( tmp_point - axis * dot(tmp_point, axis) );",""," ray_origin = mix( ray_origin, surface_point, ortho );",""," // test caps"," float front_cap_test = dot( tmp_point, axis );"," float end_cap_test = dot((new_point - end_cyl), axis);",""," // to calculate caps, simply check the angle between"," // the point of intersection - cylinder end vector"," // and a cap plane normal (which is the cylinder cylinder_axis)"," // if the angle < 0, the point is outside of cylinder"," // test front cap",""," #ifndef CAP"," vec3 new_point2 = ray_target + ( (-a1 - sqrt(d)) / a2 ) * ray_direction;"," vec3 tmp_point2 = new_point2 - base;"," #endif",""," // flat"," if (front_cap_test < 0.0)"," {"," // ray-plane intersection"," float dNV = dot(-axis, ray_direction);"," if (dNV < 0.0)"," discard;"," float near = dot(-axis, (base)) / dNV;"," vec3 front_point = ray_direction * near + ray_origin;"," // within the cap radius?"," if (dot(front_point - base, front_point-base) > radius2)"," discard;",""," #ifdef CAP"," new_point = front_point;"," _normal = axis;"," #else"," new_point = ray_target + ( (-a1 - sqrt(d)) / a2 ) * ray_direction;"," dNV = dot(-axis, ray_direction);"," near = dot(axis, end_cyl) / dNV;"," new_point2 = ray_direction * near + ray_origin;"," if (dot(new_point2 - end_cyl, new_point2-base) < radius2)"," discard;"," interior = true;"," #endif"," }",""," // test end cap","",""," // flat"," if( end_cap_test > 0.0 )"," {"," // ray-plane intersection"," float dNV = dot(axis, ray_direction);"," if (dNV < 0.0)"," discard;"," float near = dot(axis, end_cyl) / dNV;"," vec3 end_point = ray_direction * near + ray_origin;"," // within the cap radius?"," if( dot(end_point - end_cyl, end_point-base) > radius2 )"," discard;",""," #ifdef CAP"," new_point = end_point;"," _normal = axis;"," #else"," new_point = ray_target + ( (-a1 - sqrt(d)) / a2 ) * ray_direction;"," dNV = dot(-axis, ray_direction);"," near = dot(-axis, (base)) / dNV;"," new_point2 = ray_direction * near + ray_origin;"," if (dot(new_point2 - base, new_point2-base) < radius2)"," discard;"," interior = true;"," #endif"," }",""," gl_FragDepthEXT = calcDepth( new_point );",""," #ifdef NEAR_CLIP"," if( calcClip( new_point ) > 0.0 ){"," dist = (-a1 - sqrt(d)) / a2;"," new_point = ray_target + dist * ray_direction;"," if( calcClip( new_point ) > 0.0 )"," discard;"," interior = true;"," gl_FragDepthEXT = calcDepth( new_point );"," if( gl_FragDepthEXT >= 0.0 ){"," gl_FragDepthEXT = max( 0.0, calcDepth( vec3( - ( nearClip - 0.5 ) ) ) + ( 0.0000001 / vRadius ) );"," }"," }else if( gl_FragDepthEXT <= 0.0 ){"," dist = (-a1 - sqrt(d)) / a2;"," new_point = ray_target + dist * ray_direction;"," interior = true;"," gl_FragDepthEXT = calcDepth( new_point );"," if( gl_FragDepthEXT >= 0.0 ){"," gl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );"," }"," }"," #else"," if( gl_FragDepthEXT <= 0.0 ){"," dist = (-a1 - sqrt(d)) / a2;"," new_point = ray_target + dist * ray_direction;"," interior = true;"," gl_FragDepthEXT = calcDepth( new_point );"," if( gl_FragDepthEXT >= 0.0 ){"," gl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );"," }"," }"," #endif",""," // this is a workaround necessary for Mac"," // otherwise the modified fragment won't clip properly"," if (gl_FragDepthEXT < 0.0)"," discard;"," if (gl_FragDepthEXT > 1.0)"," discard;",""," #ifdef PICKING",""," gl_FragColor = vec4( vPickingColor, objectId );",""," #else",""," vec3 vViewPosition = -new_point;"," vec3 vNormal = _normal;"," vec3 vColor;",""," if( distSq3( new_point, end_cyl ) < distSq3( new_point, base ) ){"," if( b < 0.0 ){"," vColor = vColor1;"," }else{"," vColor = vColor2;"," }"," }else{"," if( b > 0.0 ){"," vColor = vColor1;"," }else{"," vColor = vColor2;"," }"," }",""," vec4 diffuseColor = vec4( diffuse, opacity );"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"," vec3 totalEmissiveLight = emissive;",""," #include color_fragment"," //ifdef USE_COLOR"," //diffuseColor.r *= vColor[0];"," //diffuseColor.g *= vColor[1];"," //diffuseColor.b *= vColor[2];"," //endif"," #include roughnessmap_fragment"," #include metalnessmap_fragment",""," // don't use include normal_fragment"," vec3 normal = normalize( vNormal );",""," #include lights_physical_fragment"," //include lights_template"," #include lights_fragment_begin"," #include lights_fragment_end",""," vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveLight;",""," gl_FragColor = vec4( outgoingLight, diffuseColor.a );"," //gl_FragColor = vec4( reflectedLight.directSpecular, diffuseColor.a );",""," #include premultiplied_alpha_fragment"," #include tonemapping_fragment"," #include encodings_fragment"," //include fog_fragment"," #ifdef USE_FOG"," #ifdef USE_LOGDEPTHBUF_EXT"," float depth = gl_FragDepthEXT / gl_FragCoord.w;"," #else"," float depth = gl_FragCoord.z / gl_FragCoord.w;"," #endif"," #ifdef FOG_EXP2"," float fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * depth * depth * LOG2 ) );"," #else"," float fogFactor = smoothstep( fogNear, fogFar, depth );"," #endif"," gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );"," #endif",""," #endif","","}"].join("\n"),$NGL_shaderTextHash["CylinderImpostor.vert"]=["// Open-Source PyMOL is Copyright (C) Schrodinger, LLC.","//","// All Rights Reserved","//","// Permission to use, copy, modify, distribute, and distribute modified","// versions of this software and its built-in documentation for any","// purpose and without fee is hereby granted, provided that the above","// copyright notice appears in all copies and that both the copyright","// notice and this permission notice appear in supporting documentation,","// and that the name of Schrodinger, LLC not be used in advertising or","// publicity pertaining to distribution of the software without specific,","// written prior permission.","//","// SCHRODINGER, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,","// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN","// NO EVENT SHALL SCHRODINGER, LLC BE LIABLE FOR ANY SPECIAL, INDIRECT OR","// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS","// OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE","// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE","// USE OR PERFORMANCE OF THIS SOFTWARE.","","// Contributions by Alexander Rose","// - ported to WebGL","// - dual color","// - pk color","// - shift","","attribute vec3 mapping;","attribute vec3 position1;","attribute vec3 position2;","attribute float radius;","","varying vec3 axis;","varying vec4 base_radius;","varying vec4 end_b;","varying vec3 U;","varying vec3 V;","varying vec4 w;","varying float fogDepth;","varying float fogNear;","varying float fogFar;","","#ifdef PICKING"," #include unpack_clr"," attribute float primitiveId;"," varying vec3 vPickingColor;","#else"," //attribute vec3 color;"," attribute vec3 color2;"," varying vec3 vColor1;"," varying vec3 vColor2;","#endif","","uniform mat4 modelViewMatrixInverse;","uniform float ortho;","","//include matrix_scale","float matrixScale( in mat4 m ){"," vec4 r = m[ 0 ];"," return sqrt( r[ 0 ] * r[ 0 ] + r[ 1 ] * r[ 1 ] + r[ 2 ] * r[ 2 ] );","}","","void main(){",""," #ifdef PICKING"," vPickingColor = unpackColor( primitiveId );"," #else"," vColor1 = color;"," vColor2 = color2;"," #endif",""," // vRadius = radius;"," base_radius.w = radius * matrixScale( modelViewMatrix );",""," //vec3 center = position;"," vec3 center = ( position2 + position1 ) / 2.0;"," vec3 dir = normalize( position2 - position1 );"," float ext = length( position2 - position1 ) / 2.0;",""," // using cameraPosition fails on some machines, not sure why"," // vec3 cam_dir = normalize( cameraPosition - mix( center, vec3( 0.0 ), ortho ) );"," vec3 cam_dir;"," if( ortho == 0.0 ){"," cam_dir = ( modelViewMatrixInverse * vec4( 0, 0, 0, 1 ) ).xyz - center;"," }else{"," cam_dir = ( modelViewMatrixInverse * vec4( 0, 0, 1, 0 ) ).xyz;"," }"," cam_dir = normalize( cam_dir );",""," vec3 ldir;",""," float b = dot( cam_dir, dir );"," end_b.w = b;"," // direction vector looks away, so flip"," if( b < 0.0 )"," ldir = -ext * dir;"," // direction vector already looks in my direction"," else"," ldir = ext * dir;",""," vec3 left = normalize( cross( cam_dir, ldir ) );"," left = radius * left;"," vec3 up = radius * normalize( cross( left, ldir ) );",""," // transform to modelview coordinates"," axis = normalize( normalMatrix * ldir );"," U = normalize( normalMatrix * up );"," V = normalize( normalMatrix * left );",""," vec4 base4 = modelViewMatrix * vec4( center - ldir, 1.0 );"," base_radius.xyz = base4.xyz / base4.w;",""," vec4 top_position = modelViewMatrix * vec4( center + ldir, 1.0 );"," vec4 end4 = top_position;"," end_b.xyz = end4.xyz / end4.w;",""," w = modelViewMatrix * vec4("," center + mapping.x*ldir + mapping.y*left + mapping.z*up, 1.0"," );",""," gl_Position = projectionMatrix * w;",""," // avoid clipping (1.0 seems to induce flickering with some drivers)"," gl_Position.z = 0.99;","","}"].join("\n"),$NGL_shaderTextHash["SphereInstancing.frag"]=$NGL_shaderTextHash["SphereImpostor.frag"],$NGL_shaderTextHash["SphereInstancing.vert"]=["uniform mat4 projectionMatrixInverse;","uniform float nearClip;","","varying float vRadius;","varying float vRadiusSq;","varying vec3 vPoint;","varying vec3 vPointViewPosition;","varying float fogDepth;","varying float fogNear;","varying float fogFar;","","attribute vec2 mapping;","//attribute vec3 position;","attribute float radius;","attribute vec4 matrix1;","attribute vec4 matrix2;","attribute vec4 matrix3;","attribute vec4 matrix4;","","#ifdef PICKING"," #include unpack_clr"," attribute float primitiveId;"," varying vec3 vPickingColor;","#else"," #include color_pars_vertex","#endif","","//include matrix_scale","float matrixScale( in mat4 m ){"," vec4 r = m[ 0 ];"," return sqrt( r[ 0 ] * r[ 0 ] + r[ 1 ] * r[ 1 ] + r[ 2 ] * r[ 2 ] );","}","","const mat4 D = mat4("," 1.0, 0.0, 0.0, 0.0,"," 0.0, 1.0, 0.0, 0.0,"," 0.0, 0.0, 1.0, 0.0,"," 0.0, 0.0, 0.0, -1.0",");","","mat4 transposeTmp( in mat4 inMatrix ) {"," vec4 i0 = inMatrix[0];"," vec4 i1 = inMatrix[1];"," vec4 i2 = inMatrix[2];"," vec4 i3 = inMatrix[3];",""," mat4 outMatrix = mat4("," vec4(i0.x, i1.x, i2.x, i3.x),"," vec4(i0.y, i1.y, i2.y, i3.y),"," vec4(i0.z, i1.z, i2.z, i3.z),"," vec4(i0.w, i1.w, i2.w, i3.w)"," );"," return outMatrix;","}","","//------------------------------------------------------------------------------","// Compute point size and center using the technique described in:","// 'GPU-Based Ray-Casting of Quadratic Surfaces'","// by Christian Sigg, Tim Weyrich, Mario Botsch, Markus Gross.","//","// Code based on","/*=========================================================================",""," Program: Visualization Toolkit"," Module: Quadrics_fs.glsl and Quadrics_vs.glsl",""," Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen"," All rights reserved."," See Copyright.txt or http://www.kitware.com/Copyright.htm for details.",""," This software is distributed WITHOUT ANY WARRANTY; without even"," the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR"," PURPOSE. See the above copyright notice for more information.",""," =========================================================================*/","","// .NAME Quadrics_fs.glsl and Quadrics_vs.glsl","// .SECTION Thanks","// ","//","// This file is part of the PointSprites plugin developed and contributed by","//","// Copyright (c) CSCS - Swiss National Supercomputing Centre","// EDF - Electricite de France","//","// John Biddiscombe, Ugo Varetto (CSCS)","// Stephane Ploix (EDF)","//","// ","//","// Contributions by Alexander Rose","// - ported to WebGL","// - adapted to work with quads","void ComputePointSizeAndPositionInClipCoordSphere(vec4 updatePosition){",""," vec2 xbc;"," vec2 ybc;",""," mat4 T = mat4("," radius, 0.0, 0.0, 0.0,"," 0.0, radius, 0.0, 0.0,"," 0.0, 0.0, radius, 0.0,"," updatePosition.x, updatePosition.y, updatePosition.z, 1.0"," );",""," mat4 R = transposeTmp( projectionMatrix * modelViewMatrix * T );"," float A = dot( R[ 3 ], D * R[ 3 ] );"," float B = -2.0 * dot( R[ 0 ], D * R[ 3 ] );"," float C = dot( R[ 0 ], D * R[ 0 ] );"," xbc[ 0 ] = ( -B - sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," xbc[ 1 ] = ( -B + sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," float sx = abs( xbc[ 0 ] - xbc[ 1 ] ) * 0.5;",""," A = dot( R[ 3 ], D * R[ 3 ] );"," B = -2.0 * dot( R[ 1 ], D * R[ 3 ] );"," C = dot( R[ 1 ], D * R[ 1 ] );"," ybc[ 0 ] = ( -B - sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," ybc[ 1 ] = ( -B + sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," float sy = abs( ybc[ 0 ] - ybc[ 1 ] ) * 0.5;",""," gl_Position.xy = vec2( 0.5 * ( xbc.x + xbc.y ), 0.5 * ( ybc.x + ybc.y ) );"," gl_Position.xy -= mapping * vec2( sx, sy );"," gl_Position.xy *= gl_Position.w;","","}",""," mat4 computeMat(vec4 v1, vec4 v2, vec4 v3, vec4 v4) {"," return mat4("," v1.x, v1.y, v1.z, v1.w,"," v2.x, v2.y, v2.z, v2.w,"," v3.x, v3.y, v3.z, v3.w,"," v4.x, v4.y, v4.z, v4.w"," );"," }","","void main(void){",""," #ifdef PICKING"," vPickingColor = unpackColor( primitiveId );"," #else"," #include color_vertex"," #endif",""," vRadius = radius * matrixScale( modelViewMatrix );",""," mat4 matrix = computeMat(matrix1, matrix2, matrix3, matrix4);"," vec4 updatePosition = matrix * vec4(position, 1.0);","","// vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );"," vec4 mvPosition = modelViewMatrix * vec4( updatePosition.xyz, 1.0 );"," // avoid clipping, added again in fragment shader"," mvPosition.z -= vRadius;","","// gl_Position = projectionMatrix * vec4( mvPosition.xyz, 1.0 );"," gl_Position = projectionMatrix * vec4( mvPosition.xyz, 1.0 );"," ComputePointSizeAndPositionInClipCoordSphere(updatePosition);","",""," vRadiusSq = vRadius * vRadius;"," vec4 vPoint4 = projectionMatrixInverse * gl_Position;"," vPoint = vPoint4.xyz / vPoint4.w;"," vPointViewPosition = -mvPosition.xyz / mvPosition.w;","","}"].join("\n"),$NGL_shaderTextHash["CylinderInstancing.frag"]=$NGL_shaderTextHash["CylinderImpostor.frag"],$NGL_shaderTextHash["CylinderInstancing.vert"]=["// Open-Source PyMOL is Copyright (C) Schrodinger, LLC.","//","// All Rights Reserved","//","// Permission to use, copy, modify, distribute, and distribute modified","// versions of this software and its built-in documentation for any","// purpose and without fee is hereby granted, provided that the above","// copyright notice appears in all copies and that both the copyright","// notice and this permission notice appear in supporting documentation,","// and that the name of Schrodinger, LLC not be used in advertising or","// publicity pertaining to distribution of the software without specific,","// written prior permission.","//","// SCHRODINGER, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,","// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN","// NO EVENT SHALL SCHRODINGER, LLC BE LIABLE FOR ANY SPECIAL, INDIRECT OR","// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS","// OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE","// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE","// USE OR PERFORMANCE OF THIS SOFTWARE.","","// Contributions by Alexander Rose","// - ported to WebGL","// - dual color","// - pk color","// - shift","","attribute vec3 mapping;","attribute vec3 position1;","attribute vec3 position2;","attribute float radius;","attribute vec4 matrix1;","attribute vec4 matrix2;","attribute vec4 matrix3;","attribute vec4 matrix4;","","varying vec3 axis;","varying vec4 base_radius;","varying vec4 end_b;","varying vec3 U;","varying vec3 V;","varying vec4 w;","varying float fogDepth;","varying float fogNear;","varying float fogFar;","","#ifdef PICKING"," #include unpack_clr"," attribute float primitiveId;"," varying vec3 vPickingColor;","#else"," //attribute vec3 color;"," attribute vec3 color2;"," varying vec3 vColor1;"," varying vec3 vColor2;","#endif","","uniform mat4 modelViewMatrixInverse;","uniform float ortho;","","//include matrix_scale","float matrixScale( in mat4 m ){"," vec4 r = m[ 0 ];"," return sqrt( r[ 0 ] * r[ 0 ] + r[ 1 ] * r[ 1 ] + r[ 2 ] * r[ 2 ] );","}",""," mat4 computeMat(vec4 v1, vec4 v2, vec4 v3, vec4 v4) {"," return mat4("," v1.x, v1.y, v1.z, v1.w,"," v2.x, v2.y, v2.z, v2.w,"," v3.x, v3.y, v3.z, v3.w,"," v4.x, v4.y, v4.z, v4.w"," );"," }","","void main(){",""," #ifdef PICKING"," vPickingColor = unpackColor( primitiveId );"," #else"," vColor1 = color;"," vColor2 = color2;"," #endif",""," // vRadius = radius;"," base_radius.w = radius * matrixScale( modelViewMatrix );",""," //vec3 center = ( position2 + position1 ) / 2.0;",""," mat4 matrix = computeMat(matrix1, matrix2, matrix3, matrix4);"," vec4 updatePosition1 = matrix * vec4(position1, 1.0);"," vec4 updatePosition2 = matrix * vec4(position2, 1.0);"," vec3 center = ( updatePosition2.xyz + updatePosition1.xyz ) / 2.0;",""," //vec3 dir = normalize( position2 - position1 );"," vec3 dir = normalize( updatePosition2.xyz - updatePosition1.xyz );"," float ext = length( position2 - position1 ) / 2.0;",""," // using cameraPosition fails on some machines, not sure why"," // vec3 cam_dir = normalize( cameraPosition - mix( center, vec3( 0.0 ), ortho ) );"," vec3 cam_dir;"," if( ortho == 0.0 ){"," cam_dir = ( modelViewMatrixInverse * vec4( 0, 0, 0, 1 ) ).xyz - center;"," }else{"," cam_dir = ( modelViewMatrixInverse * vec4( 0, 0, 1, 0 ) ).xyz;"," }"," cam_dir = normalize( cam_dir );",""," vec3 ldir;",""," float b = dot( cam_dir, dir );"," end_b.w = b;"," // direction vector looks away, so flip"," if( b < 0.0 )"," ldir = -ext * dir;"," // direction vector already looks in my direction"," else"," ldir = ext * dir;",""," vec3 left = normalize( cross( cam_dir, ldir ) );"," left = radius * left;"," vec3 up = radius * normalize( cross( left, ldir ) );",""," // transform to modelview coordinates"," axis = normalize( normalMatrix * ldir );"," U = normalize( normalMatrix * up );"," V = normalize( normalMatrix * left );",""," vec4 base4 = modelViewMatrix * vec4( center - ldir, 1.0 );"," base_radius.xyz = base4.xyz / base4.w;",""," vec4 top_position = modelViewMatrix * vec4( center + ldir, 1.0 );"," vec4 end4 = top_position;"," end_b.xyz = end4.xyz / end4.w;",""," w = modelViewMatrix * vec4("," center + mapping.x*ldir + mapping.y*left + mapping.z*up, 1.0"," );",""," gl_Position = projectionMatrix * w;",""," // avoid clipping (1.0 seems to induce flickering with some drivers)"," gl_Position.z = 0.99;","","}"].join("\n"),$NGL_shaderTextHash["Instancing.frag"]=["#define STANDARD","uniform vec3 diffuse;","uniform vec3 emissive;","uniform float roughness;","uniform float metalness;","uniform float opacity;","uniform float nearClip;","uniform float clipRadius;","uniform mat4 projectionMatrix;","uniform float ortho;","varying float bCylinder;","","#if defined( NEAR_CLIP ) || defined( RADIUS_CLIP ) || ( !defined( PICKING ) && !defined( NOLIGHT ) )"," varying vec3 vViewPosition;","#endif","","#if defined( RADIUS_CLIP )"," varying vec3 vClipCenter;","#endif","","#if defined( PICKING )"," uniform float objectId;"," varying vec3 vPickingColor;","#elif defined( NOLIGHT )"," varying vec3 vColor;","#else"," #ifndef FLAT_SHADED"," varying vec3 vNormal;"," #endif"," #include common"," #include color_pars_fragment"," #include fog_pars_fragment"," #include bsdfs"," #include lights_pars_begin"," #include lights_physical_pars_fragment","#endif","","void main(){"," #include nearclip_fragment"," #include radiusclip_fragment",""," #if defined( PICKING )",""," gl_FragColor = vec4( vPickingColor, objectId );",""," #elif defined( NOLIGHT )",""," gl_FragColor = vec4( vColor, opacity );",""," #else",""," vec4 diffuseColor = vec4( diffuse, opacity );"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"," vec3 totalEmissiveLight = emissive;",""," #include color_fragment"," #include roughnessmap_fragment"," #include metalnessmap_fragment"," #include normal_flip"," #include normal_fragment_begin",""," //include dull_interior_fragment",""," #include lights_physical_fragment"," //include lights_template"," #include lights_fragment_begin"," #include lights_fragment_end",""," vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveLight;",""," #include interior_fragment",""," gl_FragColor = vec4( outgoingLight, diffuseColor.a );",""," #include premultiplied_alpha_fragment"," #include tonemapping_fragment"," #include encodings_fragment"," #include fog_fragment",""," #include opaque_back_fragment",""," #endif","","}"].join("\n"),$NGL_shaderTextHash["Instancing.vert"]=["#define STANDARD","","uniform mat4 projectionMatrixInverse;","uniform float nearClip;","uniform vec3 clipCenter;","attribute vec4 matrix1;","attribute vec4 matrix2;","attribute vec4 matrix3;","attribute vec4 matrix4;","attribute float cylinder;","varying float bCylinder;","","#if defined( NEAR_CLIP ) || defined( RADIUS_CLIP ) || ( !defined( PICKING ) && !defined( NOLIGHT ) )"," varying vec3 vViewPosition;","#endif","","#if defined( RADIUS_CLIP )"," varying vec3 vClipCenter;","#endif","","#if defined( PICKING )"," #include unpack_color"," attribute float primitiveId;"," varying vec3 vPickingColor;","#elif defined( NOLIGHT )"," varying vec3 vColor;","#else"," #include color_pars_vertex"," #ifndef FLAT_SHADED"," varying vec3 vNormal;"," #endif","#endif","","#include common",""," mat4 computeMat(vec4 v1, vec4 v2, vec4 v3, vec4 v4) {"," return mat4("," v1.x, v1.y, v1.z, v1.w,"," v2.x, v2.y, v2.z, v2.w,"," v3.x, v3.y, v3.z, v3.w,"," v4.x, v4.y, v4.z, v4.w"," );"," }","","void main(){"," bCylinder = cylinder;",""," mat4 matrix = computeMat(matrix1, matrix2, matrix3, matrix4);"," vec4 updatePosition = matrix * vec4(position, 1.0);",""," #if defined( PICKING )"," vPickingColor = unpackColor( primitiveId );"," #elif defined( NOLIGHT )"," vColor = color;"," #else"," #include color_vertex"," //include beginnormal_vertex"," //vec3 objectNormal = vec3( normal );"," vec3 objectNormal = vec3(matrix * vec4(normal,0.0));"," #include defaultnormal_vertex"," // Normal computed with derivatives when FLAT_SHADED"," #ifndef FLAT_SHADED"," vNormal = normalize( transformedNormal );"," #endif"," #endif",""," //include begin_vertex"," vec3 transformed = updatePosition.xyz;"," //include project_vertex"," vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );"," gl_Position = projectionMatrix * mvPosition;",""," #if defined( NEAR_CLIP ) || defined( RADIUS_CLIP ) || ( !defined( PICKING ) && !defined( NOLIGHT ) )"," vViewPosition = -mvPosition.xyz;"," #endif",""," #if defined( RADIUS_CLIP )"," vClipCenter = -( modelViewMatrix * vec4( clipCenter, 1.0 ) ).xyz;"," #endif",""," #include nearclip_vertex","","}"].join("\n"),THREE.RenderableObject=function(){"use strict";this.id=0,this.object=null,this.z=0},THREE.RenderableFace=function(){"use strict";this.id=0,this.v1=new THREE.RenderableVertex,this.v2=new THREE.RenderableVertex,this.v3=new THREE.RenderableVertex,this.normalModel=new THREE.Vector3,this.vertexNormalsModel=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3],this.vertexNormalsLength=0,this.color=new THREE.Color,this.material=null,this.uvs=[new THREE.Vector2,new THREE.Vector2,new THREE.Vector2],this.z=0},THREE.RenderableVertex=function(){"use strict";this.position=new THREE.Vector3,this.positionWorld=new THREE.Vector3,this.positionScreen=new THREE.Vector4,this.visible=!0},THREE.RenderableVertex.prototype.copy=function(e){"use strict";this.positionWorld.copy(e.positionWorld),this.positionScreen.copy(e.positionScreen)},THREE.RenderableLine=function(){"use strict";this.id=0,this.v1=new THREE.RenderableVertex,this.v2=new THREE.RenderableVertex,this.vertexColors=[new THREE.Color,new THREE.Color],this.material=null,this.z=0},THREE.RenderableSprite=function(){"use strict";this.id=0,this.object=null,this.x=0,this.y=0,this.z=0,this.rotation=0,this.scale=new THREE.Vector2,this.material=null},THREE.Projector=function(){"use strict";var e,t,n,r,i,o,a,s,c,u,d,l=[],f=0,p=[],h=0,g=[],v=0,m=[],y=0,E=[],w=0,b={objects:[],lights:[],elements:[]},_=(new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3),T=new THREE.Vector4,S=new THREE.Box3(new THREE.Vector3(-1,-1,-1),new THREE.Vector3(1,1,1)),C=new THREE.Box3,x=new Array(3),R=(new Array(4),new THREE.Matrix4),A=new THREE.Matrix4,k=(new THREE.Matrix4,new THREE.Matrix3,new THREE.Frustum);new THREE.Vector4,new THREE.Vector4;this.projectVector=function(e,t){console.warn("THREE.Projector: .projectVector() is now vector.project()."),e.project(t)},this.unprojectVector=function(e,t){console.warn("THREE.Projector: .unprojectVector() is now vector.unproject()."),e.unproject(t)},this.pkRay=function(e,t){console.error("THREE.Projector: .pkRay() is now raycaster.setFromCamera().")};var I=new function(){var e=[],t=[],c=null,u=null,l=new THREE.Matrix3,f=function(e){var t=e.position,n=e.positionWorld,r=e.positionScreen;n.copy(t).applyMatrix4(d),r.copy(n).applyMatrix4(A);var i=1/r.w;r.x*=i,r.y*=i,r.z*=i,e.visible=r.x>=-1&&r.x<=1&&r.y>=-1&&r.y<=1&&r.z>=-1&&r.z<=1},E=function(e,t,n){return!0===e.visible||!0===t.visible||!0===n.visible||(x[0]=e.positionScreen,x[1]=t.positionScreen,x[2]=n.positionScreen,S.isIntersectionBox(C.setFromPoints(x)))},w=function(e,t,n){return(n.positionScreen.x-e.positionScreen.x)*(t.positionScreen.y-e.positionScreen.y)-(n.positionScreen.y-e.positionScreen.y)*(t.positionScreen.x-e.positionScreen.x)<0};return{setObject:function(n){u=(c=n).material,l.getNormalMatrix(c.matrixWorld),e.length=0,t.length=0},projectVertex:f,checkTriangleVisibility:E,checkBackfaceCulling:w,pushVertex:function(e,t,i){(n=function(){if(r===h){var e=new THREE.RenderableVertex;return p.push(e),h++,r++,e}return p[r++]}()).position.set(e,t,i),f(n)},pushNormal:function(t,n,r){e.push(t,n,r)},pushUv:function(e,n){t.push(e,n)},pushLine:function(e,t){var n=p[e],r=p[t];(a=function(){if(s===y){var e=new THREE.RenderableLine;return m.push(e),y++,s++,e}return m[s++]}()).id=c.id,a.v1.copy(n),a.v2.copy(r),a.z=(n.positionScreen.z+r.positionScreen.z)/2,a.material=c.material,b.elements.push(a)},pushTriangle:function(n,r,a){var s=p[n],d=p[r],f=p[a];if(!1!==E(s,d,f)&&(u.side===THREE.DoubleSide||!0===w(s,d,f))){(i=function(){if(o===v){var e=new THREE.RenderableFace;return g.push(e),v++,o++,e}return g[o++]}()).id=c.id,i.v1.copy(s),i.v2.copy(d),i.v3.copy(f),i.z=(s.positionScreen.z+d.positionScreen.z+f.positionScreen.z)/3;for(var h=0;h<3;h++){var m=3*arguments[h],y=i.vertexNormalsModel[h];y.set(e[m],e[m+1],e[m+2]),y.applyMatrix3(l).normalize();var _=2*arguments[h];i.uvs[h].set(t[_],t[_+1])}i.vertexNormalsLength=3,i.material=c.material,b.elements.push(i)}}}};function P(){if(u===w){var e=new THREE.RenderableSprite;return E.push(e),w++,u++,e}return E[u++]}function N(e,t){return e.z!==t.z?t.z-e.z:e.id!==t.id?e.id-t.id:0}this.projectScene=function(n,i,a,p){o=0,s=0,u=0,b.elements.length=0,!0===n.autoUpdate&&n.updateMatrixWorld(),void 0===i.parent&&i.updateMatrixWorld(),R.copy(i.matrixWorldInverse.copy(i.matrixWorld).invert()),A.multiplyMatrices(i.projectionMatrix,R),k.setFromMatrix(A),t=0,b.objects.length=0,b.lights.length=0,n.traverseVisible(function(n){if(n instanceof THREE.Light)b.lights.push(n);else if(n instanceof THREE.Mesh||n instanceof THREE.Line||n instanceof THREE.Sprite){if(!1===n.material.visible)return;!1!==n.frustumCulled&&!0!==k.intersectsObject(n)||((e=function(){if(t===f){var e=new THREE.RenderableObject;return l.push(e),f++,t++,e}return l[t++]}()).id=n.id,e.object=n,_.setFromMatrixPosition(n.matrixWorld),_.applyProjection(A),e.z=_.z,b.objects.push(e))}}),!0===a&&b.objects.sort(N);for(var h=0,g=b.objects.length;h0)for(h=0;h=-1&&T.z<=1&&((c=P()).id=v.id,c.x=T.x*H,c.y=T.y*H,c.z=T.z,c.object=v,c.rotation=v.rotation,c.scale.x=v.scale.x*Math.abs(c.x-(T.x+i.projectionMatrix.elements[0])/(T.w+i.projectionMatrix.elements[12])),c.scale.y=v.scale.y*Math.abs(c.y-(T.y+i.projectionMatrix.elements[5])/(T.w+i.projectionMatrix.elements[13])),c.material=v.material,b.elements.push(c))}}return!0===p&&b.elements.sort(N),b}},THREE.TrackballControls=function(e,t,n){"use strict";var r=this;this.STATE={NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN:4},this.object=e,this.domElement=void 0!==t?t:document,this.enabled=!0,this.screen={left:0,top:0,width:0,height:0},this.rotateSpeed=1,this.zoomSpeed=1.2,this.panSpeed=.3,this.noRotate=!1,this.noZoom=!1,this.noPan=!1,this.noRoll=!1,this.staticMoving=!1,this.dynamicDampingFactor=.2,this.minDistance=0,this.maxDistance=1/0,this.keys=[65,83,68],this.target=new THREE.Vector3;var i=new THREE.Vector3;this._state=this.STATE.NONE;var o=this.STATE.NONE,a=new THREE.Vector3;this._rotateStart=new THREE.Vector3,this._rotateEnd=new THREE.Vector3,this._zoomStart=new THREE.Vector2,this._zoomEnd=new THREE.Vector2;var s=0,c=0;this._panStart=new THREE.Vector2,this._panEnd=new THREE.Vector2,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone();var u={type:"change"},d={type:"start"},l={type:"end"};this.handleResize=function(){if(this.domElement===document)this.screen.left=0,this.screen.top=0,this.screen.width=window.innerWidth,this.screen.height=window.innerHeight;else if(this.domElement){var e=this.domElement.getBoundingClientRect(),t=this.domElement.ownerDocument.documentElement;this.screen.left=e.left+window.pageXOffset-t.clientLeft,this.screen.top=e.top+window.pageYOffset-t.clientTop,this.screen.width=e.width,this.screen.height=e.height}},this.handleEvent=function(e){"function"==typeof this[e.type]&&this[e.type](e)};var f,p,h,g,v,m,y,E,w,b=(f=new THREE.Vector2,function(e,t){return f.set((e-r.screen.left)/r.screen.width,(t-r.screen.top)/r.screen.height),f}),_=(p=new THREE.Vector3,h=new THREE.Vector3,g=new THREE.Vector3,function(e,t){g.set((e-.5*r.screen.width-r.screen.left)/(.5*r.screen.width),(.5*r.screen.height+r.screen.top-t)/(.5*r.screen.height),0);var n=g.length();return r.noRoll?n1?g.normalize():g.z=Math.sqrt(1-n*n),a.copy(r.object.position).sub(r.target),p.copy(r.object.up).setLength(g.y),p.add(h.copy(r.object.up).cross(a).setLength(g.x)),p.add(a.setLength(g.z)),p});function T(e){!1===r.enabled||Object.keys(window).length<2||(window.removeEventListener("keydown",T),o=r._state,r._state===r.STATE.NONE&&(e.keyCode!==r.keys[r.STATE.ROTATE]||r.noRotate?e.keyCode!==r.keys[r.STATE.ZOOM]||r.noZoom?e.keyCode!==r.keys[r.STATE.PAN]||r.noPan||(r._state=r.STATE.PAN):r._state=r.STATE.ZOOM:r._state=r.STATE.ROTATE))}function S(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state!==r.STATE.ROTATE||r.noRotate?r._state!==r.STATE.ZOOM||r.noZoom?r._state!==r.STATE.PAN||r.noPan||r._panEnd.copy(b(e.pageX,e.pageY)):r._zoomEnd.copy(b(e.pageX,e.pageY)):r._rotateEnd.copy(_(e.pageX,e.pageY)))}function C(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state=r.STATE.NONE,document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",C),r.dispatchEvent(l))}function x(e){if(!(!1===r.enabled||Object.keys(window).length<2)){e.stopPropagation();var t=0;e.wheelDelta?t=e.wheelDelta/40:e.detail&&(t=-e.detail/3),r._zoomStart.y=.005*t,r.dispatchEvent(d),r.dispatchEvent(l)}}this.rotateCamera=(v=new THREE.Vector3,m=new THREE.Quaternion,function(e,t){var i;void 0===e&&(i=Math.acos(r._rotateStart.dot(r._rotateEnd)/r._rotateStart.length()/r._rotateEnd.length())),(i||void 0!==e)&&(void 0===e?(v.crossVectors(r._rotateStart,r._rotateEnd).normalize(),i*=r.rotateSpeed,m.setFromAxisAngle(v,-i)):m.copy(e),void 0===n||void 0===n.quaternion||void 0!==t&&!0!==t||n.quaternion.multiplyQuaternions(m,n.quaternion),a.applyQuaternion(m),r.object.up.applyQuaternion(m),r._rotateEnd.applyQuaternion(m),r.staticMoving?r._rotateStart.copy(r._rotateEnd):(m.setFromAxisAngle(v,i*(r.dynamicDampingFactor-1)),r._rotateStart.applyQuaternion(m)))}),this.zoomCamera=function(e,t){var i;r._state===r.STATE.TOUCH_ZOOM_PAN?(void 0!==e?i=e:(i=s/c,s=c),a.multiplyScalar(i),void 0===n||void 0===n._zoomFactor||void 0!==t&&!0!==t||(n._zoomFactor*=i,n.fogCls.setFog())):(i=void 0!==e?e:1+(r._zoomEnd.y-r._zoomStart.y)*r.zoomSpeed,void 0===n||void 0===n._zoomFactor||void 0!==t&&!0!==t||(n._zoomFactor*=i,n.fogCls.setFog()),1!==i&&(a.multiplyScalar(i),r.staticMoving?r._zoomStart.copy(r._zoomEnd):r._zoomStart.y+=(r._zoomEnd.y-r._zoomStart.y)*this.dynamicDampingFactor))},this.panCamera=(y=new THREE.Vector2,E=new THREE.Vector3,w=new THREE.Vector3,function(e,t){void 0!==e?(y=e,void 0===n||void 0===n.mouseChange||void 0!==t&&!0!==t||n.mouseChange.add(e)):(y.copy(r._panEnd).sub(r._panStart),void 0===n||void 0===n.mouseChange||void 0!==t&&!0!==t||n.mouseChange.add(r._panEnd).sub(r._panStart)),y.lengthSq()&&(y.multiplyScalar(a.length()*r.panSpeed),w.copy(a).cross(r.object.up).setLength(y.x),w.add(E.copy(r.object.up).setLength(y.y)),r.object.position.add(w),r.target.add(w),r.staticMoving?r._panStart.copy(r._panEnd):r._panStart.add(y.subVectors(r._panEnd,r._panStart).multiplyScalar(r.dynamicDampingFactor)))}),this.checkDistances=function(){r.noZoom&&r.noPan||(a.lengthSq()>r.maxDistance*r.maxDistance&&r.object.position.addVectors(r.target,a.setLength(r.maxDistance)),a.lengthSq()1e-6&&(r.dispatchEvent(u),i.copy(r.object.position))},this.reset=function(){r._state=r.STATE.NONE,o=r.STATE.NONE,r.target.copy(r.target0),r.object.position.copy(r.position0),r.object.up.copy(r.up0),a.subVectors(r.object.position,r.target),r.object.lookAt(r.target),r.dispatchEvent(u),i.copy(r.object.position)},Object.keys(window).length>=2&&this.domElement&&(this.domElement.addEventListener("contextmn",function(e){},!1),this.domElement.addEventListener("mousedown",function(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state===r.STATE.NONE&&(r._state=e.button),r._state!==r.STATE.ROTATE||r.noRotate?r._state!==r.STATE.ZOOM||r.noZoom?r._state!==r.STATE.PAN||r.noPan||(r._panStart.copy(b(e.pageX,e.pageY)),r._panEnd.copy(r._panStart)):(r._zoomStart.copy(b(e.pageX,e.pageY)),r._zoomEnd.copy(r._zoomStart)):(r._rotateStart.copy(_(e.pageX,e.pageY)),r._rotateEnd.copy(r._rotateStart)),document.addEventListener("mousemove",S,!1),document.addEventListener("mouseup",C,!1),r.dispatchEvent(d))},!1),this.domElement.addEventListener("mousewheel",x,!1),this.domElement.addEventListener("DOMMouseScroll",x,!1),this.domElement.addEventListener("touchstart",function(e){if(!(!1===r.enabled||Object.keys(window).length<2)){switch(e.touches.length){case 1:r._state=r.STATE.TOUCH_ROTATE,r._rotateStart.copy(_(e.touches[0].pageX,e.touches[0].pageY)),r._rotateEnd.copy(r._rotateStart);break;case 2:r._state=r.STATE.TOUCH_ZOOM_PAN;var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;c=s=Math.sqrt(t*t+n*n);var i=(e.touches[0].pageX+e.touches[1].pageX)/2,o=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panStart.copy(b(i,o)),r._panEnd.copy(r._panStart);break;default:r._state=r.STATE.NONE}r.dispatchEvent(d)}},!1),this.domElement.addEventListener("touchend",function(e){if(!(!1===r.enabled||Object.keys(window).length<2)){switch(e.touches.length){case 1:r._rotateEnd.copy(_(e.touches[0].pageX,e.touches[0].pageY)),r._rotateStart.copy(r._rotateEnd);break;case 2:s=c=0;var t=(e.touches[0].pageX+e.touches[1].pageX)/2,n=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panEnd.copy(b(t,n)),r._panStart.copy(r._panEnd)}r._state=r.STATE.NONE,r.dispatchEvent(l)}},!1),this.domElement.addEventListener("touchmove",function(e){if(!(!1===r.enabled||Object.keys(window).length<2))switch(e.stopPropagation(),e.touches.length){case 1:r._rotateEnd.copy(_(e.touches[0].pageX,e.touches[0].pageY));break;case 2:var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;c=Math.sqrt(t*t+n*n);var i=(e.touches[0].pageX+e.touches[1].pageX)/2,o=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panEnd.copy(b(i,o));break;default:r._state=r.STATE.NONE}},!1),Object.keys(window).length>=2&&window.addEventListener("keydown",T,!1),Object.keys(window).length>=2&&window.addEventListener("keyup",function(e){!1===r.enabled||Object.keys(window).length<2||(r._state=o,window.addEventListener("keydown",T,!1))},!1)),this.handleResize(),this.update()},THREE.TrackballControls.prototype=Object.create(THREE.EventDispatcher.prototype),THREE.TrackballControls.prototype.constructor=THREE.TrackballControls,THREE.OrthographicTrackballControls=function(e,t,n){this.icn3d;var r=this,i={NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN:4};this.object=e,this.domElement=void 0!==t?t:document,this.enabled=!0,this.screen={left:0,top:0,width:0,height:0},this.rotateSpeed=.5,this.zoomSpeed=1.2;this.zoomSpeed*=.01,this.panSpeed=.03,this.noRotate=!1,this.noZoom=!1,this.noPan=!1,this.noRoll=!1,this.staticMoving=!1,this.dynamicDampingFactor=.2,this.keys=[65,83,68],this.target=new THREE.Vector3;var o=new THREE.Vector3;this._state=i.NONE;var a=i.NONE,s=new THREE.Vector3;this._rotateStart=new THREE.Vector3,this._rotateEnd=new THREE.Vector3,this._zoomStart=new THREE.Vector2,this._zoomEnd=new THREE.Vector2;var c=1,u=0,d=0;this._panStart=new THREE.Vector2,this._panEnd=new THREE.Vector2,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone(),this.left0=this.object.left,this.right0=this.object.right,this.top0=this.object.top,this.bottom0=this.object.bottom,this.center0=new THREE.Vector2((this.left0+this.right0)/2,(this.top0+this.bottom0)/2);var l={type:"change"},f={type:"start"},p={type:"end"};this.handleResize=function(){if(this.domElement===document)this.screen.left=0,this.screen.top=0,this.screen.width=window.innerWidth,this.screen.height=window.innerHeight;else if(this.domElement){var e=this.domElement.getBoundingClientRect(),t=this.domElement.ownerDocument.documentElement;this.screen.left=e.left+window.pageXOffset-t.clientLeft,this.screen.top=e.top+window.pageYOffset-t.clientTop,this.screen.width=e.width,this.screen.height=e.height}this.left0=this.object.left,this.right0=this.object.right,this.top0=this.object.top,this.bottom0=this.object.bottom,this.center0.set((this.left0+this.right0)/2,(this.top0+this.bottom0)/2)},this.handleEvent=function(e){"function"==typeof this[e.type]&&this[e.type](e)};var h,g,v,m,y,E,w,b,_,T=(h=new THREE.Vector2,function(e,t){return h.set((e-r.screen.left)/r.screen.width,(t-r.screen.top)/r.screen.height),h}),S=(g=new THREE.Vector3,v=new THREE.Vector3,m=new THREE.Vector3,function(e,t){m.set((e-.5*r.screen.width-r.screen.left)/(.5*r.screen.width),(.5*r.screen.height+r.screen.top-t)/(.5*r.screen.height),0);var n=m.length();return r.noRoll?n1?m.normalize():m.z=Math.sqrt(1-n*n),s.copy(r.object.position).sub(r.target),g.copy(r.object.up).setLength(m.y),g.add(v.copy(r.object.up).cross(s).setLength(m.x)),g.add(s.setLength(m.z)),g});function C(e){!1===r.enabled||Object.keys(window).length<2||(window.removeEventListener("keydown",C),a=r._state,r._state===i.NONE&&(e.keyCode!==r.keys[i.ROTATE]||r.noRotate?e.keyCode!==r.keys[i.ZOOM]||r.noZoom?e.keyCode!==r.keys[i.PAN]||r.noPan||(r._state=i.PAN):r._state=i.ZOOM:r._state=i.ROTATE))}function x(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state!==i.ROTATE||r.noRotate?r._state!==i.ZOOM||r.noZoom?r._state!==i.PAN||r.noPan||r._panEnd.copy(T(e.pageX,e.pageY)):r._zoomEnd.copy(T(e.pageX,e.pageY)):r._rotateEnd.copy(S(e.pageX,e.pageY)))}function R(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state=i.NONE,document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",R),r.dispatchEvent(p))}function A(e){if(!(!1===r.enabled||Object.keys(window).length<2)){e.stopPropagation();var t=0;e.wheelDelta?t=e.wheelDelta/40:e.detail&&(t=-e.detail/3),r._zoomStart.y=.01*t,r.dispatchEvent(f),r.dispatchEvent(p)}}this.rotateCamera=(y=new THREE.Vector3,E=new THREE.Quaternion,function(e,t){var i;void 0===e&&(i=Math.acos(r._rotateStart.dot(r._rotateEnd)/r._rotateStart.length()/r._rotateEnd.length())),(i||void 0!==e)&&(void 0===e?(y.crossVectors(r._rotateStart,r._rotateEnd).normalize(),i*=r.rotateSpeed,E.setFromAxisAngle(y,-i)):E.copy(e),void 0===n||void 0===n.quaternion||void 0!==t&&!0!==t||n.quaternion.multiplyQuaternions(E,n.quaternion),s.applyQuaternion(E),r.object.up.applyQuaternion(E),r._rotateEnd.applyQuaternion(E),r.staticMoving?r._rotateStart.copy(r._rotateEnd):(E.setFromAxisAngle(y,i*(r.dynamicDampingFactor-1)),r._rotateStart.applyQuaternion(E)))}),this.zoomCamera=function(e,t){var o;r._state===i.TOUCH_ZOOM_PAN?void 0!==e?o=e:(o=u/d,u=d):o=void 0!==e?e:1+(r._zoomEnd.y-r._zoomStart.y)*r.zoomSpeed/.01,void 0===n||void 0===n._zoomFactor||void 0!==t&&!0!==t||(n._zoomFactor*=o),1!==o&&(c=o,r.object.left=c*r.left0+(1-c)*r.center0.x,r.object.right=c*r.right0+(1-c)*r.center0.x,r.object.top=c*r.top0+(1-c)*r.center0.y,r.object.bottom=c*r.bottom0+(1-c)*r.center0.y,r.staticMoving?r._zoomStart.copy(r._zoomEnd):r._zoomStart.y+=(r._zoomEnd.y-r._zoomStart.y)*this.dynamicDampingFactor)},this.panCamera=(w=new THREE.Vector2,b=new THREE.Vector3,_=new THREE.Vector3,function(e,t){void 0!==e?(w=e,void 0===n||void 0===n.mouseChange||void 0!==t&&!0!==t||n.mouseChange.add(e)):(w.copy(r._panEnd).sub(r._panStart),void 0===n||void 0===n.mouseChange||void 0!==t&&!0!==t||n.mouseChange.add(r._panEnd).sub(r._panStart)),w.lengthSq()&&(w.multiplyScalar(s.length()*r.panSpeed),_.copy(s).cross(r.object.up).setLength(w.x),_.add(b.copy(r.object.up).setLength(w.y)),r.object.position.add(_),r.target.add(_),r.staticMoving?r._panStart.copy(r._panEnd):r._panStart.add(w.subVectors(r._panEnd,r._panStart).multiplyScalar(r.dynamicDampingFactor)))}),this.update=function(e){s.subVectors(r.object.position,r.target),r.noRotate||(void 0!==e&&void 0!==e.quaternion?r.rotateCamera(e.quaternion,e.update):r.rotateCamera()),r.noZoom||(void 0!==e&&void 0!==e._zoomFactor?r.zoomCamera(e._zoomFactor,e.update):r.zoomCamera(),r.object.updateProjectionMatrix()),r.noPan||(void 0!==e&&void 0!==e.mouseChange?r.panCamera(e.mouseChange,e.update):r.panCamera()),r.object.position.addVectors(r.target,s),r.object.lookAt(r.target),o.distanceToSquared(r.object.position)>1e-6&&(r.dispatchEvent(l),o.copy(r.object.position))},this.reset=function(){r._state=i.NONE,a=i.NONE,r.target.copy(r.target0),r.object.position.copy(r.position0),r.object.up.copy(r.up0),s.subVectors(r.object.position,r.target),r.object.left=r.left0,r.object.right=r.right0,r.object.top=r.top0,r.object.bottom=r.bottom0,r.object.lookAt(r.target),r.dispatchEvent(l),o.copy(r.object.position)},Object.keys(window).length>=2&&this.domElement&&(this.domElement.addEventListener("contextmn",function(e){},!1),this.domElement.addEventListener("mousedown",function(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state===i.NONE&&(r._state=e.button),r._state!==i.ROTATE||r.noRotate?r._state!==i.ZOOM||r.noZoom?r._state!==i.PAN||r.noPan||(r._panStart.copy(T(e.pageX,e.pageY)),r._panEnd.copy(r._panStart)):(r._zoomStart.copy(T(e.pageX,e.pageY)),r._zoomEnd.copy(r._zoomStart)):(r._rotateStart.copy(S(e.pageX,e.pageY)),r._rotateEnd.copy(r._rotateStart)),document.addEventListener("mousemove",x,!1),document.addEventListener("mouseup",R,!1),r.dispatchEvent(f))},!1),this.domElement.addEventListener("mousewheel",A,!1),this.domElement.addEventListener("DOMMouseScroll",A,!1),this.domElement.addEventListener("touchstart",function(e){if(!(!1===r.enabled||Object.keys(window).length<2)){switch(e.touches.length){case 1:r._state=i.TOUCH_ROTATE,r._rotateStart.copy(S(e.touches[0].pageX,e.touches[0].pageY)),r._rotateEnd.copy(r._rotateStart);break;case 2:r._state=i.TOUCH_ZOOM_PAN;var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;d=u=Math.sqrt(t*t+n*n);var o=(e.touches[0].pageX+e.touches[1].pageX)/2,a=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panStart.copy(T(o,a)),r._panEnd.copy(r._panStart);break;default:r._state=i.NONE}r.dispatchEvent(f)}},!1),this.domElement.addEventListener("touchend",function(e){if(!(!1===r.enabled||Object.keys(window).length<2)){switch(e.touches.length){case 1:r._rotateEnd.copy(S(e.touches[0].pageX,e.touches[0].pageY)),r._rotateStart.copy(r._rotateEnd);break;case 2:u=d=0;var t=(e.touches[0].pageX+e.touches[1].pageX)/2,n=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panEnd.copy(T(t,n)),r._panStart.copy(r._panEnd)}r._state=i.NONE,r.dispatchEvent(p)}},!1),this.domElement.addEventListener("touchmove",function(e){if(!(!1===r.enabled||Object.keys(window).length<2))switch(e.stopPropagation(),e.touches.length){case 1:r._rotateEnd.copy(S(e.touches[0].pageX,e.touches[0].pageY));break;case 2:var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;d=Math.sqrt(t*t+n*n);var o=(e.touches[0].pageX+e.touches[1].pageX)/2,a=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panEnd.copy(T(o,a));break;default:r._state=i.NONE}},!1),window.addEventListener("keydown",C,!1),window.addEventListener("keyup",function(e){!1===r.enabled||Object.keys(window).length<2||(r._state=a,window.addEventListener("keydown",C,!1))},!1)),this.handleResize(),this.update()},THREE.OrthographicTrackballControls.prototype=Object.create(THREE.EventDispatcher.prototype),THREE.OrthographicTrackballControls.prototype.constructor=THREE.OrthographicTrackballControls,function(e){var t,n,r,i;e.VERSION={number:"1.1.7",date:"Oct 30 2018"},function(e){function t(e,t,n){(t|=0)<=0&&(t=1);var r=t*n,i=e(r);return{elementSize:n,chunkSize:r,creator:e,current:i,parts:[i],currentIndex:0,elementCount:0}}e.is=function(e){return e.creator&&e.chunkSize},e.add4=function(e,t,n,r,i){return e.currentIndex>=e.chunkSize&&(e.currentIndex=0,e.current=e.creator(e.chunkSize),e.parts[e.parts.length]=e.current),e.current[e.currentIndex++]=t,e.current[e.currentIndex++]=n,e.current[e.currentIndex++]=r,e.current[e.currentIndex++]=i,e.elementCount++},e.add3=function(e,t,n,r){return e.currentIndex>=e.chunkSize&&(e.currentIndex=0,e.current=e.creator(e.chunkSize),e.parts[e.parts.length]=e.current),e.current[e.currentIndex++]=t,e.current[e.currentIndex++]=n,e.current[e.currentIndex++]=r,e.elementCount++},e.add2=function(e,t,n){return e.currentIndex>=e.chunkSize&&(e.currentIndex=0,e.current=e.creator(e.chunkSize),e.parts[e.parts.length]=e.current),e.current[e.currentIndex++]=t,e.current[e.currentIndex++]=n,e.elementCount++},e.add=function(e,t){return e.currentIndex>=e.chunkSize&&(e.currentIndex=0,e.current=e.creator(e.chunkSize),e.parts[e.parts.length]=e.current),e.current[e.currentIndex++]=t,e.elementCount++},e.compact=function(e){var t,n=e.creator(e.elementSize*e.elementCount),r=(e.parts.length-1)*e.chunkSize,i=0;if(e.parts.length>1)if(e.parts[0].buffer)for(var o=0;o=e.chunkSize)n.set(e.current,e.chunkSize*(e.parts.length-1));else for(o=0;o9||o<0)return i*r|0;r=10*r+o|0}return i*r}function n(e,n,r,i){return 43===n.charCodeAt(r)&&r++,e*Math.pow(10,t(n,r,i))}function r(e,t,r){var i=1,o=0,a=0,s=1;for(45===e.charCodeAt(t)&&(i=-1,++t);t=0&&c<10)){if(-2===c){for(++t;t=0&&c<10))return 53===c||21===c?n(i*(o+a/s),e,t+1,r):i*(o+a/s);a=10*a+c,s*=10,++t}return i*(o+a/s)}if(53===c||21===c)return n(i*o,e,t+1,r);break}o=10*o+c,++t}return i*o}e.parseIntSkipTrailingWhitespace=function(e,n,r){for(;n0&&(e.data[e.data.length]=e.chunkData.splice(0,e.chunkOffset).join("")),e.data.join("")):e.chunkData.length===e.chunkOffset?e.chunkData.join(""):e.chunkData.splice(0,e.chunkOffset).join("")},e.writeTo=function(e,t){var n;(n=e).chunkOffset>0&&(n.chunkData.length===n.chunkOffset?n.data[n.data.length]=n.chunkData.join(""):n.data[n.data.length]=n.chunkData.splice(0,n.chunkOffset).join(""),n.chunkOffset=0);for(var r=0,i=e.data;r0&&t(e,i[o]),t(e,n)},e.writePadRight=function(e,n,r){void 0!==n&&null!==n||t(e,i[r]);var o=r-n.length;t(e,n),o>0&&t(e,i[o])},e.writeInteger=function(e,n){t(e,""+n)},e.writeIntegerPadLeft=function(e,n,r){var o=""+n,a=r-o.length;a>0&&t(e,i[a]),t(e,o)},e.writeIntegerPadRight=function(e,n,r){var o=""+n,a=r-o.length;t(e,o),a>0&&t(e,i[a])},e.writeFloat=function(e,n,r){t(e,""+Math.round(r*n)/r)},e.writeFloatPadLeft=function(e,n,r,o){var a=""+Math.round(r*n)/r,s=o-a.length;s>0&&t(e,i[s]),t(e,a)},e.writeFloatPadRight=function(e,n,r,o){var a=""+Math.round(r*n)/r,s=o-a.length;t(e,a),s>0&&t(e,i[s])}}(r.StringWriter||(r.StringWriter={}));var o=function(){function e(){this.isDefined=!1}return e.prototype.getString=function(e){return null},e.prototype.getInteger=function(e){return 0},e.prototype.getFloat=function(e){return 0},e.prototype.getValuePresence=function(e){return 1},e.prototype.areValuesEqual=function(e,t){return!0},e.prototype.stringEquals=function(e,t){return null===t},e}();e.UndefinedColumn=new o,function(e){e.getMatrix=function(e,t,n,r,i){for(var o=[],a=1;a<=n;a++){for(var s=[],c=1;c<=r;c++)s[c-1]=e.getColumn(t+"["+a+"]["+c+"]").getFloat(i);o[a-1]=s}return o},e.getVector=function(e,t,n,r,i){for(var o=[],a=1;a<=n;a++)o[a-1]=e.getColumn(t+"["+a+"]").getFloat(i);return o}}(e.Category||(e.Category={})),function(e){e.error=function(e,t){return void 0===t&&(t=-1),new a(e,t)},e.success=function(e,t){return void 0===t&&(t=[]),new l(e,t)}}(e.ParserResult||(e.ParserResult={}));var a=function(){function e(e,t){this.message=e,this.line=t,this.isError=!0}return e.prototype.toString=function(){return this.line>=0?"[Line "+this.line+"] "+this.message:this.message},e}();e.ParserError=a;var s,c,u,d,l=function(){return function(e,t){this.result=e,this.warnings=t,this.isError=!1}}();e.ParserSuccess=l,function(t){"use strict";var n;!function(e){e.create=function(){return Object.create(null)},e.get=function(e,t){if(t.length>6)return t;var n=e[t];return void 0!==n?n:(e[t]=t,t)}}(n||(n={}));var r=function(){function e(e){this.dataBlocks=[],this.data=e}return e.prototype.toJSON=function(){return this.dataBlocks.map(function(e){return e.toJSON()})},e}();t.File=r;var i=function(){function e(e,t){this.header=t,this.data=e,this.categoryList=[],this.additionalData={},this.categoryMap=new Map}return Object.defineProperty(e.prototype,"categories",{get:function(){return this.categoryList},enumerable:!0,configurable:!0}),e.prototype.getCategory=function(e){return this.categoryMap.get(e)},e.prototype.addCategory=function(e){this.categoryList[this.categoryList.length]=e,this.categoryMap.set(e.name,e)},e.prototype.toJSON=function(){return{id:this.header,categories:this.categoryList.map(function(e){return e.toJSON()}),additionalData:this.additionalData}},e}();t.DataBlock=i;var o=function(){function t(e,t,n,r,i,o,a){this.name=t,this.tokens=o,this.data=e,this.startIndex=n,this.endIndex=r,this.columnCount=i.length,this.rowCount=a/i.length|0,this.columnIndices=new Map,this.columnNameList=[];for(var s=0;s=e.length)e.currentTokenType=6;else{e.currentTokenStart=e.position,e.currentTokenEnd=e.position,e.isEscaped=!1;var n,i,o,a,s=e.data.charCodeAt(e.position);switch(s){case 35:!function(e){for(;e.position=5&&95===e.data.charCodeAt(e.currentTokenStart+4)?68!==(a=(o=e).data.charCodeAt(o.currentTokenStart))&&100!==a||65!==(a=o.data.charCodeAt(o.currentTokenStart+1))&&97!==a||84!==(a=o.data.charCodeAt(o.currentTokenStart+2))&&116!==a||65!==(a=o.data.charCodeAt(o.currentTokenStart+3))&&97!==a?83!==(i=(n=e).data.charCodeAt(n.currentTokenStart))&&115!==i||65!==(i=n.data.charCodeAt(n.currentTokenStart+1))&&97!==i||86!==(i=n.data.charCodeAt(n.currentTokenStart+2))&&118!==i||69!==(i=n.data.charCodeAt(n.currentTokenStart+3))&&101!==i?!function(e){if(e.currentTokenEnd-e.currentTokenStart!=5)return!1;var t=e.data.charCodeAt(e.currentTokenStart);return!(76!==t&&108!==t||79!==(t=e.data.charCodeAt(e.currentTokenStart+1))&&111!==t||79!==(t=e.data.charCodeAt(e.currentTokenStart+2))&&111!==t||80!==(t=e.data.charCodeAt(e.currentTokenStart+3))&&112!==t)}(e)?e.currentTokenType=3:e.currentTokenType=2:e.currentTokenType=1:e.currentTokenType=0:e.currentTokenType=3}}}function u(e){for(c(e);5===e.currentTokenType;)c(e)}function d(e,r){for(var c,d=e.currentTokenStart,l=o(e),f=a(e,l),p=[],h=n.create(512),g=0,v=!0;v;){if(4!==e.currentTokenType||!i(e,d,l)){v=!1;break}if(c=s(e),u(e),3!==e.currentTokenType)return{hasError:!0,errorLine:e.currentLineNumber,errorMessage:"Expected value."};p[p.length]=c,n.addToken(h,e.currentTokenStart,e.currentTokenEnd),g++,u(e)}return r.addCategory(new t.Category(r.data,f,d,e.currentTokenStart,p,h.tokens,g)),{hasError:!1,errorLine:0,errorMessage:""}}function l(e,r){var i=e.currentTokenStart,c=e.currentLineNumber;u(e);for(var d=a(e,o(e)),l=[],f=n.create("_atom_site"===d?r.data.length/1.85|0:1024),p=0;4===e.currentTokenType;)l[l.length]=s(e),u(e);for(;3===e.currentTokenType;)n.addToken(f,e.currentTokenStart,e.currentTokenEnd),p++,u(e);return p%l.length!=0?{hasError:!0,errorLine:e.currentLineNumber,errorMessage:"The number of values for loop starting at line "+c+" is not a multiple of the number of columns."}:(r.addCategory(new t.Category(r.data,d,i,e.currentTokenStart,l,f.tokens,p)),{hasError:!1,errorLine:0,errorMessage:""})}function f(t,n){return e.ParserResult.error(n,t)}function p(n){var r,i,o,a,s,c={data:a=n,length:a.length,position:0,currentTokenStart:0,currentTokenEnd:0,currentTokenType:6,currentLineNumber:1,isEscaped:!1},p=new t.File(n),h=new t.DataBlock(n,"default"),g=new t.DataBlock(n,"empty"),v=!1;for(u(c);6!==c.currentTokenType;){var m=c.currentTokenType;if(0===m){if(v)return f(c.currentLineNumber,"Unexpected data block inside a save frame.");h.categories.length>0&&p.dataBlocks.push(h),h=new t.DataBlock(n,n.substring(c.currentTokenStart+5,c.currentTokenEnd)),u(c)}else if(1===m){if(0===(i=n.substring(c.currentTokenStart+5,c.currentTokenEnd)).length)g.categories.length>0&&((o=h.additionalData.saveFrames)||(o=[],h.additionalData.saveFrames=o),o[o.length]=g),v=!1;else{if(v)return f(c.currentLineNumber,"Save frames cannot be nested.");v=!0,g=new t.DataBlock(n,i)}u(c)}else if(2===m){if((r=l(c,v?g:h)).hasError)return f(r.errorLine,r.errorMessage)}else{if(4!==m)return f(c.currentLineNumber,"Unexpected token. Expected data_, loop_, or data name.");if((r=d(c,v?g:h)).hasError)return f(r.errorLine,r.errorMessage)}}return v?f(c.currentLineNumber,"Unfinished save frame (`"+g.header+"`)."):(h.categories.length>0&&p.dataBlocks.push(h),s=p,e.ParserResult.success(s))}!function(e){e.addToken=function(e,t,n){var r,i;e.count>=e.tokensLenMinus2&&(r=e,(i=new Int32Array(1.61*r.tokens.length|0)).set(r.tokens),r.tokens=i,r.tokensLenMinus2=i.length-2|0),e.tokens[e.count++]=t,e.tokens[e.count++]=n},e.create=function(e){return{tokensLenMinus2:e-2|0,count:0,tokens:new Int32Array(e)}}}(n||(n={})),t.parse=function(e){return p(e)}}(e.Text||(e.Text={})),function(t){"use strict";var n=e.Utils.StringWriter,r=function(){function e(){this.writer=n.create(),this.encoded=!1,this.dataBlockCreated=!1}return e.prototype.startDataBlock=function(e){this.dataBlockCreated=!0,n.write(this.writer,"data_"+(e||"").replace(/[ \n\t]/g,"").toUpperCase()+"\n#\n")},e.prototype.writeCategory=function(e,t){if(this.encoded)throw new Error("The writer contents have already been encoded, no more writing.");if(!this.dataBlockCreated)throw new Error("No data block created.");var r=(t&&t.length?t.map(function(t){return e(t)}):[e(void 0)]).filter(function(e){return e&&e.count>0});if(r.length){var d=r.reduce(function(e,t){return e+(void 0===t.count?1:t.count)},0);d&&(1===d?function(e,t){for(var r=e.desc.fields,o=e.data,d=r.reduce(function(e,t){return Math.max(e,t.name.length)},0)+e.desc.name.length+5,l=0,f=r;l=0}function o(e,t){n.write(e,t),n.newline(e)}function a(e){n.writeSafe(e,". ")}function s(e){n.writeSafe(e,"? ")}function c(e,t){if(t){for(var r=!1,i="'",o="' ",a=!1,s=!1,c=!1,u=0,d=t.length-1;u=0){if(t<128)return 1;if(t<256)return 2;if(t<65536)return 3;if(t<4294967296)return 5;throw new Error("Number too big 0x"+t.toString(16))}if(t>=-32)return 1;if(t>=-128)return 2;if(t>=-32768)return 3;if(t>=-2147483648)return 5;throw new Error("Number too small -0x"+t.toString(16).substr(1))}if("boolean"===n||null===t||void 0===t)return 1;if("object"===n){var o,a=0;if(Array.isArray(t)){o=t.length;for(var s=0;s=0){if(t<128)return n.setUint8(i,t),1;if(t<256)return n.setUint8(i,204),n.setUint8(i+1,t),2;if(t<65536)return n.setUint8(i,205),n.setUint16(i+1,t),3;if(t<4294967296)return n.setUint8(i,206),n.setUint32(i+1,t),5;throw new Error("Number too big 0x"+t.toString(16))}if(t>=-32)return n.setInt8(i,t),1;if(t>=-128)return n.setUint8(i,208),n.setInt8(i+1,t),2;if(t>=-32768)return n.setUint8(i,209),n.setInt16(i+1,t),3;if(t>=-2147483648)return n.setUint8(i,210),n.setInt32(i+1,t),5;throw new Error("Number too small -0x"+(-t).toString(16).substr(1))}if(null===t||void 0===t)return n.setUint8(i,192),1;if("boolean"===o)return n.setUint8(i,t?195:194),1;if("object"===o){var d,l=0,f=Array.isArray(t),p=void 0;if(f?d=t.length:(p=Object.keys(t),d=p.length),d<16?(n.setUint8(i,d|(f?144:128)),l=1):d<65536?(n.setUint8(i,f?220:222),n.setUint16(i+1,d),l=3):d<4294967296&&(n.setUint8(i,f?221:223),n.setUint32(i+1,d),l=5),f)for(var h=0;h>>0&127|0;else if(o<2048)e[t++]=o>>>6&31|192,e[t++]=o>>>0&63|128;else if(o<65536)e[t++]=o>>>12&15|224,e[t++]=o>>>6&63|128,e[t++]=o>>>0&63|128;else{if(!(o<1114112))throw new Error("bad codepoint "+o);e[t++]=o>>>18&7|240,e[t++]=o>>>12&63|128,e[t++]=o>>>6&63|128,e[t++]=o>>>0&63|128}}};var t=function(){for(var e=[],t=0;t<1024;t++)e[t]=String.fromCharCode(t);return e}();function n(e){throw new Error(e)}e.utf8Read=function(e,r,i){for(var o=t,a=void 0,s=[],c=0,u=r,d=r+i;u0&&(a[a.length]=s.slice(0,c).join("")),a.join("")):s.slice(0,c).join("")},e.utf8ByteCount=function(e){for(var t=0,r=0,i=e.length;r=0;r--)t=n.decodeStep(t,e.encoding[r]);return t}var n;e.decode=t,function(e){function r(e,t){switch(e){case 1:return new Int8Array(t);case 2:return new Int16Array(t);case 3:return new Int32Array(t);case 4:return new Uint8Array(t);case 5:return new Uint16Array(t);case 6:return new Uint32Array(t);default:throw new Error("Unsupported integer data type.")}}function i(e,t){switch(e){case 32:return new Float32Array(t);case 33:return new Float64Array(t);default:throw new Error("Unsupported floating data type.")}}(n||(n={})).decodeStep=function(e,n){switch(n.kind){case"ByteArray":switch(n.type){case 4:return e;case 1:return s=e,new Int8Array(s.buffer,s.byteOffset);case 2:return u(e,2,Int16Array);case 5:return u(e,2,Uint16Array);case 3:return u(e,4,Int32Array);case 6:return u(e,4,Uint32Array);case 32:return u(e,4,Float32Array);case 33:return u(e,8,Float64Array);default:throw new Error("Unsupported ByteArray type.")}case"FixedPoint":return function(e,t){for(var n=e.length,r=i(t.srcType,n),o=1/t.factor,a=0;a0?(r+=Math.ceil(a/t),a%t==0&&(r+=1)):(r+=Math.ceil(a/n),a%n==0&&(r+=1))}return r}function l(e){if(!(e instanceof Int32Array))throw new Error("Integer packing can only be applied to Int32 data.");var t,n,r,i,o=(n=function(e){for(var t=0,n=e.length;t=0)for(;u>=n;)o[a]=n,++a,u-=n;else for(;u<=r;)o[a]=r,++a,u-=r;o[a]=u,++a}var d=s(o);return{encodings:[{kind:"IntegerPacking",byteCount:t.bytesPerElement,isUnsigned:!t.isSigned,srcSize:i},d.encodings[0]],data:d.data}}(e,o)}n.byteArray=s,n.fixedPoint=function(e){return function(n){return function(e,n){for(var r=t.Encoding.getDataType(e),i=new Int32Array(e.length),o=0,a=e.length;o=r?i:0|Math.round((f-n)/c)}return{encodings:[{kind:"IntervalQuantization",min:n,max:r,numSteps:i,srcType:a}],data:u}}(o,e,n,r,i)}},n.runLength=c,n.delta=u,n.integerPacking=l,n.stringArray=function(t){var r=Object.create(null),i=[],o=0,a=e.Utils.ChunkedArray.create(function(e){return new Int32Array(e)},1024,1),s=new Int32Array(t.length);e.Utils.ChunkedArray.add(a,0);for(var d=0,f=0,p=t;ft[n])return!1;return!0}(r,o.version.match(/(\d)\.(\d)\.\d/).slice(1)))return e.ParserResult.error("Unsupported format version. Current "+o.version+", required "+r.join(".")+".");var a=new t.File(o);return e.ParserResult.success(a)}catch(t){return e.ParserResult.error(""+t)}}}(e.Binary||(e.Binary={})),function(e){"use strict";function t(t,n,r){var i,o=!1;t.typedArray?i=new t.typedArray(r):(o=!0,i=new Array(r));for(var a=new Uint8Array(r),s=t.presence,c=t.number?t.number:t.string,u=!0,d=0,l=0,f=n;l0});if(r.length){var i=r.reduce(function(e,t){return e+t.count},0);if(i){for(var o=r[0],a={name:o.desc.name,columns:[],rowCount:i},s=r.map(function(e){return{data:e.data,count:e.count}}),c=0,u=o.desc.fields;cn?n:e}function l(e,t){return parseInt(e,t||10)}function f(e){return Math.round(e)}function p(e){var t,n,r,i,o,a,s,c,u=+e[0],d=+e[1],l=+e[2];switch(a=l*(1-d),s=l*(1-(o=6*u-(i=Math.floor(6*u)))*d),c=l*(1-(1-o)*d),i=i||0,s=s||0,c=c||0,i%6){case 0:t=l,n=c,r=a;break;case 1:t=s,n=l,r=a;break;case 2:t=a,n=l,r=c;break;case 3:t=a,n=s,r=l;break;case 4:t=c,n=a,r=l;break;case 5:t=l,n=a,r=s}return[f(255*t),f(255*n),f(255*r)]}function h(e){return v(p(e))}function g(e){var t,n=+e[0],r=+e[1],i=+e[2],o=Math.max(n,r,i),a=Math.min(n,r,i),s=o-a,c=0===o?0:s/o,u=o/255;switch(o){case a:t=0;break;case n:t=r-i+s*(r';var z,D=w[o].children,M=N([0,1,1]),H=D[0],F=D[1],V=H[o],j=F[o],U=0,B=0,G=0,q=0,X=0,W=0,Y=0,Z=0,Q=h(M);function K(e,t){e&&"h"!==e||L("change:h",t),e&&"sv"!==e||L("change:sv",t),L("change",t)}function $(){return w.parentNode}function J(i,o){i||((l||o||f).appendChild(w),v.visible=!0),Y=P(w).w,Z=P(w).h;var a=P(F),s=P(j),c=P(H).h,u=a.w,g=a.h,m=P(V).h,y=s.w,E=s.h;if(i){function A(e){var t=e.target,r=t===n||k(t,n)===n;r?J():v.exit(),L(r?"enter":"exit",[v])}w.style.left=w.style.top="-9999px",!1!==r&&C(r,n,A),v.create=function(){return J(1),L("create",[v]),v},v.destroy=function(){return!1!==r&&x(r,n,A),v.exit(),O(!1),L("destroy",[v]),v}}else ee();function D(e){p(M);var t=p([M[0],1,1]);F.style.backgroundColor="rgb("+t.join(",")+")",O(M),I(e)}function X(e){var t,n,r,i,o,a;G&&(n=d(R(H,t=e).y,0,c),M[0]=(c-n)/c,V.style.top=n-m/2+"px",D(t),Q=h(M),U||(L("drag:h",[Q,v]),L("drag",[Q,v]),K("h",[Q,v]))),q&&(i=R(F,r=e),o=d(i.x,0,u),a=d(i.y,0,g),M[1]=1-(u-o)/u,M[2]=(g-a)/g,j.style.right=u-o-y/2+"px",j.style.top=a-E/2+"px",D(r),Q=h(M),B||(L("drag:sv",[Q,v]),L("drag",[Q,v]),K("sv",[Q,v]))),U=0,B=0}function W(e){var t=e.target,i=G?"h":"sv",o=[h(M),v],a=t===n||k(t,n)===n,s=t===w||k(t,w)===w;a||s?s&&(L("stop:"+i,o),L("stop",o),K(i,o)):$()&&!1!==r&&(v.exit(),L("exit",[v]),K(0,o)),G=0,q=0}function te(e){U=1,G=1,X(e),I(e),L("start:h",[Q,v]),L("start",[Q,v]),K("h",[Q,v])}function ne(e){B=1,q=1,X(e),I(e),L("start:sv",[Q,v]),L("start",[Q,v]),K("sv",[Q,v])}z=function(){M=N(M),D(),V.style.top=c-m/2-c*+M[0]+"px",j.style.right=u-y/2-u*+M[1]+"px",j.style.top=g-E/2-g*+M[2]+"px"},v.exit=function(n){return $()&&($().removeChild(w),v.visible=!1),x(b,H,te),x(b,F,ne),x(_,t,X),x(T,t,W),x(S,e,ee),v},z(),i||(C(b,H,te),C(b,F,ne),C(_,t,X),C(T,t,W),C(S,e,ee))}function ee(){return v.fit()}return J(1),a(function(){var e=[h(M),v];L("create",e),K(0,e)},0),v.fit=function(t){var r=P(e),i=P(g),o=r.w-i.w,a=r.h-g.clientHeight,u=A(e),l=A(n);if(X=l.l+u.l,W=l.t+u.t+P(n).h,c(t))s(t[0])&&(X=t[0]),s(t[1])&&(W=t[1]);else{var f=u.l,p=u.t,h=u.l+r.w-Y-o,m=u.t+r.h-Z-a;X=d(X,f,h)>>0,W=d(W,p,m)>>0}return w.style.left=X+"px",w.style.top=W+"px",L("fit",[v]),v},v.set=function(e){return s(e)?("string"==typeof e&&(e=m.parse(e)),O(e),z(),v):N()},v.get=function(e){return N(e)},v.target=n,v.picker=w,v.visible=!1,v.on=function(e,t,n){return s(e)?s(t)?(s(E[e])||(E[e]={}),s(n)||(n=u(E[e])),E[e][n]=t,v):E[e]:E},v.off=function(e,t){return s(e)?s(t)?(delete E[e][t],v):(E[e]={},v):(E={},v)},v.fire=L,v.hooks=E,v.enter=function(e){return J(0,e)},v}).version="1.3.9",r[i]={},r.each=function(e,t){return a(function(){var t,n=r[i];for(t in n)e(n[t],t,n)},0===t?0:t||1),r},r.parse=b,r._HSV2RGB=p,r._HSV2HEX=h,r._RGB2HSV=g,r._HEX2HSV=m,r._HEX2RGB=function(e){return[+(t=y(e))[0]/255,+t[1]/255,+t[2]/255];var t},r.HSV2RGB=function(e){return p(E(e))},r.HSV2HEX=function(e){return h(E(e))},r.RGB2HSV=function(e){return w(g(e))},r.RGB2HEX=v,r.HEX2HSV=function(e){return w(m(e))},r.HEX2RGB=y}(window,document);var saveAs=function(e){"use strict";if(!(void 0===e||"undefined"!=typeof navigator&&/MSIE [1-9]\./.test(navigator.userAgent))){var t=function(){return e.URL||e.webkitURL||e},n=e.document.createElementNS("http://www.w3.org/1999/xhtml","a"),r="download"in n,i=/constructor/i.test(e.HTMLElement)||e.safari,o=/CriOS\/[\d]+/.test(navigator.userAgent),a=e.setImmediate||e.setTimeout,s=function(e){a(function(){throw e},0)},c=function(e){setTimeout(function(){"string"==typeof e?t().revokeObjectURL(e):e.remove()},4e4)},u=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e},d=function(d,l,f){f||(d=u(d));var p,h=this,g="application/octet-stream"===(d?d.type:void 0),v=function(){!function(e,t,n){for(var r=(t=[].concat(t)).length;r--;){var i=e["on"+t[r]];if("function"==typeof i)try{i.call(e,n||e)}catch(e){s(e)}}}(h,"writestart progress write writeend".split(" "))};if(h.readyState=h.INIT,r)return p||(p=t().createObjectURL(d)),void a(function(){var e,t;n.href=p,n.download=l,e=n,t=new MouseEvent("click"),e.dispatchEvent(t),v(),c(p),h.readyState=h.DONE},0);!function(){if((o||g&&i)&&e.FileReader){var n=new FileReader;return n.onloadend=function(){var t=o?n.result:n.result.replace(/^data:[^;]*;/,"data:attachment/file;");e.open(t,"_blank")||(e.location.href=t),t=void 0,h.readyState=h.DONE,v()},n.readAsDataURL(d),void(h.readyState=h.INIT)}p||(p=t().createObjectURL(d)),g?e.location.href=p:e.open(p,"_blank")||(e.location.href=p);h.readyState=h.DONE,v(),c(p)}()},l=d.prototype;return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t,n){return t=t||e.name||"download",n||(e=u(e)),navigator.msSaveOrOpenBlob(e,t)}:(l.abort=function(){},l.readyState=l.INIT=0,l.WRITING=1,l.DONE=2,l.error=l.onwritestart=l.onprogress=l.onwrite=l.onabort=l.onerror=l.onwriteend=null,function(e,t,n){return new d(e,t||e.name||"download",n)})}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this);!function(e){"use strict";var t=e.HTMLCanvasElement&&e.HTMLCanvasElement.prototype,n=e.Blob&&function(){try{return Boolean(new Blob)}catch(e){return!1}}(),r=n&&e.Uint8Array&&function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(e){return!1}}(),i=e.BlobBuilder||e.WebKitBlobBuilder||e.MozBlobBuilder||e.MSBlobBuilder,o=/^data:((.*?)(;charset=.*?)?)(;base64)?,/,a=(n||i)&&e.atob&&e.ArrayBuffer&&e.Uint8Array&&function(e){var t,a,s,c,u,d,l,f,p;if(!(t=e.match(o)))throw new Error("invalid data URI");for(a=t[2]?t[1]:"text/plain"+(t[3]||";charset=US-ASCII"),s=!!t[4],c=e.slice(t[0].length),u=s?atob(c):decodeURIComponent(c),d=new ArrayBuffer(u.length),l=new Uint8Array(d),f=0;f0||window.navigator.userAgent.match(/Trident.*rv\:11\./))}isMobile(){return this.icn3dui,/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent)}isMac(){return this.icn3dui,/Mac/i.test(window.navigator.userAgent)}isAndroid(){return this.icn3dui,/android/i.test(window.navigator.userAgent.toLowerCase())}isChrome(){return this.icn3dui,navigator.userAgent.includes("Chrome")&&navigator.vendor.includes("Google Inc")}isSessionStorageSupported(){return this.icn3dui,window.sessionStorage}isLocalStorageSupported(){return this.icn3dui,window.localStorage}hexToRgb(e,t){this.icn3dui;let s=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return s?{r:parseInt(s[1],16),g:parseInt(s[2],16),b:parseInt(s[3],16),a:t}:null}isCalphaPhosOnly(e){this.icn3dui;let t=!1,s=0,i=0;for(let t in e){if(!(s<100))break;{let s=e[t].name;if(!s)continue;s=s.trim(),"CA"!==s&&"P"!==s&&"O3'"!==s&&"O3*"!==s&&++i}++s}return i<.5*s&&(t=!0),t}hasCovalentBond(e,t){let s=this.icn3dui,i=s.parasCls.covalentRadii[e.elem.toUpperCase()]+s.parasCls.covalentRadii[t.elem.toUpperCase()],n=e.coord.x-t.coord.x,l=e.coord.y-t.coord.y,r=e.coord.z-t.coord.z;return n*n+l*l+r*r<("N"==e.elem&&"H"==t.elem.substr(0,1)||"N"==t.elem&&"H"==e.elem.substr(0,1)?2.2:1.3)*i*i}residueName2Abbr(e){this.icn3dui;let t=e.indexOf(" ");switch(t>0&&(e=e.substr(0,t)),e){case" A":case" DA":case"DA":case"ALA":return"A";case" C":case" DC":case"DC":case"CYS":return"C";case" G":case" DG":case"DG":case"GLY":return"G";case" T":case" DT":case"DT":case"THR":return"T";case" U":case" DU":case"DU":case"SEC":return"U";case" I":case" DI":case"DI":case"ILE":return"I";case"ARG":return"R";case"ASN":return"N";case"ASP":return"D";case"GLU":return"E";case"GLN":return"Q";case"HIS":return"H";case"LEU":return"L";case"LYS":return"K";case"MET":return"M";case"PHE":return"F";case"PRO":return"P";case"SER":return"S";case"TRP":return"W";case"TYR":return"Y";case"VAL":return"V";case"HOH":case"WAT":return"O";default:return e.trim()}}residueAbbr2Name(e){if(this.icn3dui,(e=e.toUpperCase()).length>1)return e;switch(e){case"A":return"ALA";case"R":return"ARG";case"N":return"ASN";case"D":return"ASP";case"C":return"CYS";case"E":return"GLU";case"Q":return"GLN";case"G":return"GLY";case"H":return"HIS";case"I":return"ILE";case"L":return"LEU";case"K":return"LYS";case"M":return"MET";case"F":return"PHE";case"P":return"PRO";case"S":return"SER";case"T":return"THR";case"W":return"TRP";case"Y":return"TYR";case"V":return"VAL";case"O":return"HOH";default:return e.trim()}}getJSONFromArray(e){this.icn3dui;let t="";for(let s=0,i=e.length;sd?1:ah?1:cs&&(e.htmlCls.WIDTH=s),i&&e.htmlCls.HEIGHT>i&&(e.htmlCls.HEIGHT=i)}sumArray(e){let t=0;for(let s=0,i=e.length;sRed and blue membranes indicate extracellular and intracellular membranes, respectively.

    "}getStructures(e){let t=this.icn3dui,s={};for(let i in e){s[t.icn3d.atoms[i].structure]=1}return s}getHlStructures(e){let t=this.icn3dui;return e||(e=t.icn3d.hAtoms),this.getStructures(e)}getDisplayedStructures(e){let t=this.icn3dui;return e||(e=t.icn3d.dAtoms),this.getStructures(e)}getDateDigitStr(){this.icn3dui;let e=new Date,t=(e.getMonth()+1).toString();e.getMonth()+1<10&&(t="0"+t);let s=e.getDate().toString();return e.getDate()<10&&(s="0"+s),e.getFullYear().toString()+t+s}}class i{constructor(e){this.icn3dui=e,this.glycanHash={GLC:{c:"1E90FF",s:"sphere"},BGC:{c:"1E90FF",s:"sphere"},NAG:{c:"1E90FF",s:"cube"},NDG:{c:"1E90FF",s:"cube"},GCS:{c:"1E90FF",s:"cube"},PA1:{c:"1E90FF",s:"cube"},GCU:{c:"1E90FF",s:"cone"},BDP:{c:"1E90FF",s:"cone"},G6D:{c:"1E90FF",s:"cone"},DDA:{c:"1E90FF",s:"cylinder"},B6D:{c:"1E90FF",s:"cylinder"},XXM:{c:"1E90FF",s:"cylinder"},MAN:{c:"00FF00",s:"sphere"},BMA:{c:"00FF00",s:"sphere"},BM3:{c:"00FF00",s:"cube"},"95Z":{c:"00FF00",s:"cube"},MAV:{c:"00FF00",s:"cone"},BEM:{c:"00FF00",s:"cone"},RAM:{c:"00FF00",s:"cone"},RM4:{c:"00FF00",s:"cone"},TYV:{c:"00FF00",s:"cylinder"},ARA:{c:"00FF00",s:"cylinder"},ARB:{c:"00FF00",s:"cylinder"},KDN:{c:"00FF00",s:"cylinder"},KDM:{c:"00FF00",s:"cylinder"},"6PZ":{c:"00FF00",s:"cylinder"},GMH:{c:"00FF00",s:"cylinder"},BDF:{c:"00FF00",s:"cylinder"},GAL:{c:"FFFF00",s:"sphere"},GLA:{c:"FFFF00",s:"sphere"},NGA:{c:"FFFF00",s:"cube"},A2G:{c:"FFFF00",s:"cube"},X6X:{c:"FFFF00",s:"cube"},"1GN":{c:"FFFF00",s:"cube"},ADA:{c:"FFFF00",s:"cone"},GTR:{c:"FFFF00",s:"cone"},LDY:{c:"FFFF00",s:"cylinder"},KDO:{c:"FFFF00",s:"cylinder"},T6T:{c:"FFFF00",s:"cylinder"},GUP:{c:"A52A2A",s:"sphere"},GL0:{c:"A52A2A",s:"sphere"},LGU:{c:"A52A2A",s:"cone"},ABE:{c:"A52A2A",s:"cylinder"},XYS:{c:"A52A2A",s:"cylinder"},XYP:{c:"A52A2A",s:"cylinder"},SOE:{c:"A52A2A",s:"cylinder"},PZU:{c:"FF69B4",s:"cylinder"},RIP:{c:"FF69B4",s:"cylinder"},"0MK":{c:"FF69B4",s:"cylinder"},ALL:{c:"8A2BE2",s:"sphere"},AFD:{c:"8A2BE2",s:"sphere"},NAA:{c:"8A2BE2",s:"cube"},SIA:{c:"8A2BE2",s:"cylinder"},SIB:{c:"8A2BE2",s:"cylinder"},AMU:{c:"8A2BE2",s:"cylinder"},X0X:{c:"1E90FF",s:"cone"},X1X:{c:"1E90FF",s:"cone"},NGC:{c:"1E90FF",s:"cylinder"},NGE:{c:"1E90FF",s:"cylinder"},"4N2":{c:"A0522D",s:"sphere"},HSQ:{c:"A0522D",s:"cube"},IDR:{c:"A0522D",s:"cone"},MUR:{c:"A0522D",s:"cylinder"},FUC:{c:"FF0000",s:"cone"},FUL:{c:"FF0000",s:"cone"}},this.nucleotidesArray=[" G"," A"," T"," C"," U"," DG"," DA"," DT"," DC"," DU","G","A","T","C","U","DG","DA","DT","DC","DU"],this.ionsArray=[" K"," NA"," MG"," AL"," CA"," TI"," MN"," FE"," NI"," CU"," ZN"," AG"," BA"," F"," CL"," BR"," I","K","NA","MG","AL","CA","TI","MN","FE","NI","CU","ZN","AG","BA","F","CL","BR","I"],this.cationsTrimArray=["K","NA","MG","AL","CA","TI","MN","FE","NI","CU","ZN","AG","BA"],this.anionsTrimArray=["F","CL","BR","I"],this.ionCharges={K:1,NA:1,MG:2,AL:3,CA:2,TI:3,MN:2,FE:3,NI:2,CU:2,ZN:2,AG:1,BA:2},this.vdwRadii={H:1.08,HE:1.34,LI:1.75,BE:2.05,B:1.47,C:1.49,N:1.41,O:1.4,F:1.39,NE:1.68,NA:1.84,MG:2.05,AL:2.11,SI:2.07,P:1.92,S:1.82,CL:1.83,AR:1.93,K:2.05,CA:2.21,SC:2.16,TI:1.87,V:1.79,CR:1.89,MN:1.97,FE:1.94,CO:1.92,NI:1.84,CU:1.86,ZN:2.1,GA:2.08,GE:2.15,AS:2.06,SE:1.93,BR:1.98,KR:2.12,RB:2.16,SR:2.24,Y:2.19,ZR:1.86,NB:2.07,MO:2.09,TC:2.09,RU:2.07,RH:1.95,PD:2.02,AG:2.03,CD:2.3,IN:2.36,SN:2.33,SB:2.25,TE:2.23,I:2.23,XE:2.21,CS:2.22,BA:2.51,LA:2.4,CE:2.35,PR:2.39,ND:2.29,PM:2.36,SM:2.29,EU:2.33,GD:2.37,TB:2.21,DY:2.29,HO:2.16,ER:2.35,TM:2.27,YB:2.42,LU:2.21,HF:2.12,TA:2.17,W:2.1,RE:2.17,OS:2.16,IR:2.02,PT:2.09,AU:2.17,HG:2.09,TL:2.35,PB:2.32,BI:2.43,PO:2.29,AT:2.36,RN:2.43,FR:2.56,RA:2.43,AC:2.6,TH:2.37,PA:2.43,U:2.4,NP:2.21,PU:2.56,AM:2.56,CM:2.56,BK:2.56,CF:2.56,ES:2.56,FM:2.56},this.covalentRadii={H:.31,HE:.28,LI:1.28,BE:.96,B:.84,C:.76,N:.71,O:.66,F:.57,NE:.58,NA:1.66,MG:1.41,AL:1.21,SI:1.11,P:1.07,S:1.05,CL:1.02,AR:1.06,K:2.03,CA:1.76,SC:1.7,TI:1.6,V:1.53,CR:1.39,MN:1.39,FE:1.32,CO:1.26,NI:1.24,CU:1.32,ZN:1.22,GA:1.22,GE:1.2,AS:1.19,SE:1.2,BR:1.2,KR:1.16,RB:2.2,SR:1.95,Y:1.9,ZR:1.75,NB:1.64,MO:1.54,TC:1.47,RU:1.46,RH:1.42,PD:1.39,AG:1.45,CD:1.44,IN:1.42,SN:1.39,SB:1.39,TE:1.38,I:1.39,XE:1.4,CS:2.44,BA:2.15,LA:2.07,CE:2.04,PR:2.03,ND:2.01,PM:1.99,SM:1.98,EU:1.98,GD:1.96,TB:1.94,DY:1.92,HO:1.92,ER:1.89,TM:1.9,YB:1.87,LU:1.87,HF:1.75,TA:1.7,W:1.62,RE:1.51,OS:1.44,IR:1.41,PT:1.36,AU:1.36,HG:1.32,TL:1.45,PB:1.46,BI:1.48,PO:1.4,AT:1.5,RN:1.5,FR:2.6,RA:2.21,AC:2.15,TH:2.06,PA:2,U:1.96,NP:1.9,PU:1.87,AM:1.8,CM:1.69},this.atomColors={H:this.thr(16777215),He:this.thr(16761035),HE:this.thr(16761035),Li:this.thr(11674146),LI:this.thr(11674146),B:this.thr(65280),C:this.thr(11184810),N:this.thr(255),O:this.thr(15728640),F:this.thr(14329120),Na:this.thr(255),NA:this.thr(255),Mg:this.thr(2263842),MG:this.thr(2263842),Al:this.thr(8421520),AL:this.thr(8421520),Si:this.thr(14329120),SI:this.thr(14329120),P:this.thr(16753920),S:this.thr(16762930),Cl:this.thr(65280),CL:this.thr(65280),Ca:this.thr(8421520),CA:this.thr(8421520),Ti:this.thr(8421520),TI:this.thr(8421520),Cr:this.thr(8421520),CR:this.thr(8421520),Mn:this.thr(8421520),MN:this.thr(8421520),Fe:this.thr(16753920),FE:this.thr(16753920),Ni:this.thr(10824234),NI:this.thr(10824234),Cu:this.thr(10824234),CU:this.thr(10824234),Zn:this.thr(10824234),ZN:this.thr(10824234),Br:this.thr(10824234),BR:this.thr(10824234),Ag:this.thr(8421520),AG:this.thr(8421520),I:this.thr(10494192),Ba:this.thr(16753920),BA:this.thr(16753920),Au:this.thr(14329120),AU:this.thr(14329120)},this.atomnames={H:"Hydrogen",HE:"Helium",LI:"Lithium",B:"Boron",C:"Carbon",N:"Nitrogen",O:"Oxygen",F:"Fluorine",NA:"Sodium",MG:"Magnesium",AL:"Aluminum",SI:"Silicon",P:"Phosphorus",S:"Sulfur",CL:"Chlorine",CA:"Calcium",TI:"Titanium",CR:"Chromium",MN:"Manganese",FE:"Iron",NI:"Nickel",CU:"Copper",ZN:"Zinc",BR:"Bromine",AG:"Silver",I:"Iodine",BA:"Barium",AU:"Gold"},this.defaultAtomColor=this.thr(13421772),this.stdChainColors=[this.thr(16711935),this.thr(255),this.thr(10053171),this.thr(65433),this.thr(16750848),this.thr(16737894),this.thr(3329330),this.thr(2003199),this.thr(16416882),this.thr(16753920),this.thr(52945),this.thr(16738740),this.thr(65280),this.thr(255),this.thr(16711680),this.thr(16776960),this.thr(65535),this.thr(16711935),this.thr(3978097),this.thr(4620980),this.thr(13458524),this.thr(16770229),this.thr(11529966),this.thr(15631086),this.thr(25600),this.thr(139),this.thr(9109504),this.thr(13468991),this.thr(35723),this.thr(9699539)],this.backgroundColors={black:this.thr(0),grey:this.thr(13421772),white:this.thr(16777215),transparent:this.thr(16777215)},this.residueColors={ALA:this.thr(13158600),ARG:this.thr(1334015),ASN:this.thr(56540),ASP:this.thr(15075850),CYS:this.thr(15132160),GLN:this.thr(56540),GLU:this.thr(15075850),GLY:this.thr(15461355),HIS:this.thr(8553170),ILE:this.thr(1016335),LEU:this.thr(1016335),LYS:this.thr(1334015),MET:this.thr(15132160),PHE:this.thr(3289770),PRO:this.thr(14456450),SER:this.thr(16422400),THR:this.thr(16422400),TRP:this.thr(11819700),TYR:this.thr(3289770),VAL:this.thr(1016335),ASX:this.thr(16738740),GLX:this.thr(16738740),G:this.thr(32768),A:this.thr(6324479),T:this.thr(16744448),C:this.thr(16711680),U:this.thr(16744448),DG:this.thr(32768),DA:this.thr(6324479),DT:this.thr(16744448),DC:this.thr(16711680),DU:this.thr(16744448)},this.residueArea={ALA:247,ARG:366,ASN:290,ASP:285,CYS:271,GLN:336,GLU:325,GLY:217,HIS:340,ILE:324,LEU:328,LYS:373,MET:346,PHE:366,PRO:285,SER:265,THR:288,TRP:414,TYR:387,VAL:293,ASX:290,GLX:336,G:520,A:507,T:515,C:467,U:482,DG:520,DA:507,DT:515,DC:467,DU:482},this.defaultResidueColor=this.thr(12492910),this.chargeColors={" G":this.thr(16711680)," A":this.thr(16711680)," T":this.thr(16711680)," C":this.thr(16711680)," U":this.thr(16711680)," DG":this.thr(16711680)," DA":this.thr(16711680)," DT":this.thr(16711680)," DC":this.thr(16711680)," DU":this.thr(16711680),G:this.thr(16711680),A:this.thr(16711680),T:this.thr(16711680),C:this.thr(16711680),U:this.thr(16711680),DG:this.thr(16711680),DA:this.thr(16711680),DT:this.thr(16711680),DC:this.thr(16711680),DU:this.thr(16711680),ARG:this.thr(255),LYS:this.thr(255),ASP:this.thr(16711680),GLU:this.thr(16711680),HIS:this.thr(8421631),GLY:this.thr(8947848),PRO:this.thr(8947848),ALA:this.thr(8947848),VAL:this.thr(8947848),LEU:this.thr(8947848),ILE:this.thr(8947848),PHE:this.thr(8947848),SER:this.thr(8947848),THR:this.thr(8947848),ASN:this.thr(8947848),GLN:this.thr(8947848),TYR:this.thr(8947848),MET:this.thr(8947848),CYS:this.thr(8947848),TRP:this.thr(8947848)},this.hydrophobicColors={" G":this.thr(16711680)," A":this.thr(16711680)," T":this.thr(16711680)," C":this.thr(16711680)," U":this.thr(16711680)," DG":this.thr(16711680)," DA":this.thr(16711680)," DT":this.thr(16711680)," DC":this.thr(16711680)," DU":this.thr(16711680),G:this.thr(16711680),A:this.thr(16711680),T:this.thr(16711680),C:this.thr(16711680),U:this.thr(16711680),DG:this.thr(16711680),DA:this.thr(16711680),DT:this.thr(16711680),DC:this.thr(16711680),DU:this.thr(16711680),ARG:this.thr(255),LYS:this.thr(255),ASP:this.thr(16711680),GLU:this.thr(16711680),HIS:this.thr(8421631),TRP:this.thr().setHSL(1/3,1,.5),PHE:this.thr().setHSL(1/3,1,.5909090909090908),LEU:this.thr().setHSL(1/3,1,.700956937799043),ILE:this.thr().setHSL(1/3,1,.7320574162679425),TYR:this.thr().setHSL(1/3,1,.5+.69/2.09),MET:this.thr().setHSL(1/3,1,.5+.71/2.09),VAL:this.thr().setHSL(1/3,1,.5+.815/2.09),CYS:this.thr().setHSL(1/3,1,.5+1.035/2.09),PRO:this.thr().setHSL(1/6,1,.9391304347826086),THR:this.thr().setHSL(1/6,1,.8913043478260869),SER:this.thr().setHSL(1/6,1,.8),ALA:this.thr().setHSL(1/6,1,.7826086956521738),GLN:this.thr().setHSL(1/6,1,.6652173913043478),ASN:this.thr().setHSL(1/6,1,.6304347826086956),GLY:this.thr().setHSL(1/6,1,.5)},this.normalizedHPColors={" G":this.thr(16777215)," A":this.thr(16777215)," T":this.thr(16777215)," C":this.thr(16777215)," U":this.thr(16777215)," DG":this.thr(16777215)," DA":this.thr(16777215)," DT":this.thr(16777215)," DC":this.thr(16777215)," DU":this.thr(16777215),G:this.thr(16777215),A:this.thr(16777215),T:this.thr(16777215),C:this.thr(16777215),U:this.thr(16777215),DG:this.thr(16777215),DA:this.thr(16777215),DT:this.thr(16777215),DC:this.thr(16777215),DU:this.thr(16777215),ARG:this.thr(16777215),LYS:this.thr(16777215),ASP:this.thr(16777215),GLU:this.thr(16777215),HIS:this.thr(16777215),TRP:this.thr().setHSL(1/3,1,.5),PHE:this.thr().setHSL(1/3,1,.558641975308642),LEU:this.thr().setHSL(1/3,1,.6296296296296295),ILE:this.thr().setHSL(1/3,1,.6496913580246912),TYR:this.thr().setHSL(1/3,1,.5+.69/3.24),MET:this.thr().setHSL(1/3,1,.5+.71/3.24),VAL:this.thr().setHSL(1/3,1,.5+.815/3.24),CYS:this.thr().setHSL(1/3,1,.5+1.035/3.24),PRO:this.thr().setHSL(1/3,1,.5+1.115/3.24),THR:this.thr().setHSL(1/3,1,.5+1.17/3.24),SER:this.thr().setHSL(1/3,1,.5+1.275/3.24),ALA:this.thr().setHSL(1/3,1,.5+1.295/3.24),GLN:this.thr().setHSL(1/3,1,.5+1.43/3.24),ASN:this.thr().setHSL(1/3,1,.5+1.47/3.24),GLY:this.thr().setHSL(1/3,1,1)},this.hydrophobicValues={" G":3," A":3," T":3," C":3," U":3," DG":3," DA":3," DT":3," DC":3," DU":3,G:3,A:3,T:3,C:3,U:3,DG:3,DA:3,DT:3,DC:3,DU:3,ARG:1.5,LYS:1.5,ASP:3,GLU:3,HIS:2,TRP:-2.09,PHE:-1.71,LEU:-1.25,ILE:-1.12,TYR:-.71,MET:-.67,VAL:-.46,CYS:-.02,PRO:.14,THR:.25,SER:.46,ALA:.5,GLN:.77,ASN:.85,GLY:1.15},this.residueAbbrev={ALA:"A (Ala)",ARG:"R (Arg)",ASN:"N (Asn)",ASP:"D (Asp)",CYS:"C (Cys)",GLN:"Q (Gln)",GLU:"E (Glu)",GLY:"G (Gly)",HIS:"H (His)",ILE:"I (Ile)",LEU:"L (Leu)",LYS:"K (Lys)",MET:"M (Met)",PHE:"F (Phe)",PRO:"P (Pro)",SER:"S (Ser)",THR:"T (Thr)",TRP:"W (Trp)",TYR:"Y (Tyr)",VAL:"V (Val)",ASX:"X (Asx)",GLX:"X (Glx)",G:"Guanine",A:"Adenine",T:"Thymine",C:"Cytosine",U:"Uracil",DG:"deoxy-Guanine",DA:"deoxy-Adenine",DT:"deoxy-Thymine",DC:"deoxy-Cytosine",DU:"deoxy-Uracil"},this.ssColors={helix:this.thr(16711680),sheet:this.thr(32768),coil:this.thr(6324479)},this.ssColors2={helix:this.thr(16711680),sheet:this.thr(16762880),coil:this.thr(6324479)},this.resn2restype={ALA:1,ARG:4,ASN:7,ASP:10,CYS:13,GLN:16,GLU:19,GLY:22,HIS:25,ILE:28,LEU:31,LYS:34,MET:37,PHE:40,PRO:43,SER:46,THR:49,TRP:52,TYR:55,VAL:58},this.nuclMainArray=["C1'","C1*","C2'","C2*","C3'","C3*","C4'","C4*","C5'","C5*","O3'","O3*","O4'","O4*","O5'","O5*","P","OP1","O1P","OP2","O2P"],this.b62ResArray=["A","R","N","D","C","Q","E","G","H","I","L","K","M","F","P","S","T","W","Y","V","B","Z","X","*"],this.b62Matrix=[[4,-1,-2,-2,0,-1,-1,0,-2,-1,-1,-1,-1,-2,-1,1,0,-3,-2,0,-2,-1,0,-4],[-1,5,0,-2,-3,1,0,-2,0,-3,-2,2,-1,-3,-2,-1,-1,-3,-2,-3,-1,0,-1,-4],[-2,0,6,1,-3,0,0,0,1,-3,-3,0,-2,-3,-2,1,0,-4,-2,-3,3,0,-1,-4],[-2,-2,1,6,-3,0,2,-1,-1,-3,-4,-1,-3,-3,-1,0,-1,-4,-3,-3,4,1,-1,-4],[0,-3,-3,-3,9,-3,-4,-3,-3,-1,-1,-3,-1,-2,-3,-1,-1,-2,-2,-1,-3,-3,-2,-4],[-1,1,0,0,-3,5,2,-2,0,-3,-2,1,0,-3,-1,0,-1,-2,-1,-2,0,3,-1,-4],[-1,0,0,2,-4,2,5,-2,0,-3,-3,1,-2,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-2,0,-1,-3,-2,-2,6,-2,-4,-4,-2,-3,-3,-2,0,-2,-2,-3,-3,-1,-2,-1,-4],[-2,0,1,-1,-3,0,0,-2,8,-3,-3,-1,-2,-1,-2,-1,-2,-2,2,-3,0,0,-1,-4],[-1,-3,-3,-3,-1,-3,-3,-4,-3,4,2,-3,1,0,-3,-2,-1,-3,-1,3,-3,-3,-1,-4],[-1,-2,-3,-4,-1,-2,-3,-4,-3,2,4,-2,2,0,-3,-2,-1,-2,-1,1,-4,-3,-1,-4],[-1,2,0,-1,-3,1,1,-2,-1,-3,-2,5,-1,-3,-1,0,-1,-3,-2,-2,0,1,-1,-4],[-1,-1,-2,-3,-1,0,-2,-3,-2,1,2,-1,5,0,-2,-1,-1,-1,-1,1,-3,-1,-1,-4],[-2,-3,-3,-3,-2,-3,-3,-3,-1,0,0,-3,0,6,-4,-2,-2,1,3,-1,-3,-3,-1,-4],[-1,-2,-2,-1,-3,-1,-1,-2,-2,-3,-3,-1,-2,-4,7,-1,-1,-4,-3,-2,-2,-1,-2,-4],[1,-1,1,0,-1,0,0,0,-1,-2,-2,0,-1,-2,-1,4,1,-3,-2,-2,0,0,0,-4],[0,-1,0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1,1,5,-2,-2,0,-1,-1,0,-4],[-3,-3,-4,-4,-2,-2,-3,-2,-2,-3,-2,-3,-1,1,-4,-3,-2,11,2,-3,-4,-3,-2,-4],[-2,-2,-2,-3,-2,-1,-2,-3,2,-1,-1,-2,-1,3,-3,-2,-2,2,7,-1,-3,-2,-1,-4],[0,-3,-3,-3,-1,-2,-2,-3,-3,3,1,-2,1,-1,-2,-2,0,-3,-1,4,-3,-2,-1,-4],[-2,-1,3,4,-3,0,1,-1,0,-3,-4,0,-3,-3,-2,0,-1,-4,-3,-3,4,1,-1,-4],[-1,0,0,1,-3,3,4,-2,0,-3,-3,1,-1,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,0,0,-2,-1,-1,-1,-1,-1,-4],[-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1]]}thr(e){return this.icn3dui,"#0"==e&&(e="#000"),new THREE.Color(e)}}class n{constructor(e){this.icn3dui=e}onId(e,t,s){if(this.icn3dui,!(Object.keys(window).length<2)&&("#"==e.substr(0,1)&&(e=e.substr(1)),document.getElementById(e))){t.split(" ").forEach((t=>{document.getElementById(e).addEventListener(t,s)}))}}onIds(e,t,s){let i=this.icn3dui;Array.isArray(e)?e.forEach((e=>{i.myEventCls.onId(e,t,s)})):i.myEventCls.onId(e,t,s)}}class l{constructor(e){this.icn3dui=e}getRmsdSuprCls(e,t,s){let i,n,l,r,o,a,d,c,h,p,m,u,g,f=this.icn3dui,C=new Array(9),b=new THREE.Vector3,y=new THREE.Vector3,v=[],_=[],w=new Array(3),S=new Array(3),A=new Array(3),x=new Array(3),k=new Array(3),O=new Array(3);if(i=0,s<=1)return{rot:void 0,trans1:void 0,trans2:void 0,rmsd:999};let R=s;for(n=0;n0?(C[0]=x[0]*w[0]+k[0]*S[0]+O[0]*A[0],C[1]=x[0]*w[1]+k[0]*S[1]+O[0]*A[1],C[2]=x[0]*w[2]+k[0]*S[2]+O[0]*A[2],C[3]=x[1]*w[0]+k[1]*S[0]+O[1]*A[0],C[4]=x[1]*w[1]+k[1]*S[1]+O[1]*A[1],C[5]=x[1]*w[2]+k[1]*S[2]+O[1]*A[2],C[6]=x[2]*w[0]+k[2]*S[0]+O[2]*A[0],C[7]=x[2]*w[1]+k[2]*S[1]+O[2]*A[1],C[8]=x[2]*w[2]+k[2]*S[2]+O[2]*A[2]):(C[0]=x[0]*w[0]+k[0]*S[0]-O[0]*A[0],C[1]=x[0]*w[1]+k[0]*S[1]-O[0]*A[1],C[2]=x[0]*w[2]+k[0]*S[2]-O[0]*A[2],C[3]=x[1]*w[0]+k[1]*S[0]-O[1]*A[0],C[4]=x[1]*w[1]+k[1]*S[1]-O[1]*A[1],C[5]=x[1]*w[2]+k[1]*S[2]-O[1]*A[2],C[6]=x[2]*w[0]+k[2]*S[0]-O[2]*A[0],C[7]=x[2]*w[1]+k[2]*S[1]-O[2]*A[1],C[8]=x[2]*w[2]+k[2]*S[2]-O[2]*A[2]),c=Math.sqrt(c),h=Math.sqrt(h),p=Math.sqrt(p),g=c+h+u*p,m=a+d-2*g,i=m>0?Math.sqrt(m):void 0,{rot:C,trans1:I,trans2:E,rmsd:i})}eigen_values(e){let t,s,i,n,l,r,o,a,d,c,h,p,m,u,g,f,C,b,y,v;if(this.icn3dui,t=e[0],s=e[1],i=e[2],n=e[3],l=e[4],r=e[5],o=e[6],a=e[7],d=e[8],c=-(t+l+d),h=t*l+(t+l)*d-r*a-s*n-i*o,p=-t*l*d+t*r*a+s*n*d-s*r*o-i*n*a+i*l*o,m=-c*c/3+h,u=c*c*c/13.5-c*h/3+p,g=.25*u*u+m*m*m/27,g<0){let e,t;e=Math.sqrt(.25*u*u-g),t=Math.acos(-.5*u/e),b=2*Math.cbrt(e)*Math.cos(t/3)}else f=Math.cbrt(-.5*u+Math.sqrt(g)),C=Math.cbrt(-.5*u-Math.sqrt(g)),b=f+C;return b-=c/3,c+=b,p/=-b,y=.5*(-c+Math.sqrt(c*c-4*p)),v=.5*(-c-Math.sqrt(c*c-4*p)),yw&&(w=Math.abs(d)),Math.abs(c)>w&&(w=Math.abs(c)),Math.abs(h)>w&&(w=Math.abs(h)),Math.abs(p)>w&&(w=Math.abs(p)),Math.abs(m)>w&&(w=Math.abs(m)),Math.abs(u)>w&&(w=Math.abs(u)),Math.abs(g)>w&&(w=Math.abs(g)),Math.abs(f)>w&&(w=Math.abs(f)),w<1e-10)return r=3,{k:r,v1:t,v2:s,v3:i};if(o=0,a/=w,d/=w,c/=w,h/=w,p/=w,m/=w,u/=w,g/=w,f/=w,Math.abs(a)w&&(_=a,a=h,h=_,_=d,d=p,p=_,_=c,c=m,m=_,w=Math.abs(d)),Math.abs(g)>w&&(_=a,a=u,u=_,_=d,d=g,g=_,_=c,c=f,f=_),y=m-p*c/d,v=f-g*c/d,Math.abs(y)w&&(_=a,a=h,h=_,_=d,d=p,p=_,_=c,c=m,m=_,w=Math.abs(a)),Math.abs(c)>w&&(_=a,a=u,u=_,_=d,d=g,g=_,_=c,c=f,f=_),C=p-h*d/a,b=m-h*c/a,y=g-u*d/a,v=f-u*c/a,Math.abs(C)0&&(1==o?(a=s[0],d=s[1],c=s[2],_=Math.sqrt(a*a+d*d+c*c),s[0]=a/_,s[1]=d/_,s[2]=c/_):2==o?(a=t[0],d=t[1],c=t[2],h=s[0],p=s[1],m=s[2],_=a*h+d*p+c*m,Math.abs(_)>=n&&(s[0]=a+_*h,s[1]=d+_*p,s[2]=c+_*m,h=s[0],p=s[1],m=s[2]),_=Math.sqrt(a*a+d*d+c*c),t[0]=a/_,t[1]=d/_,t[2]=c/_,_=Math.sqrt(h*h+p*p+m*m),s[0]=h/_,s[1]=p/_,s[2]=m/_):(a=t[0],d=t[1],c=t[2],_=Math.sqrt(a*a+d*d+c*c),t[0]=a/_,t[1]=d/_,t[2]=c/_)),{k:r,v1:t,v2:s,v3:i}}getEigenForSelection(e,t){let s,i=this.icn3dui,n=new THREE.Vector3,l=[];for(s=0;s0&&Math.abs(l[0].x-e[0].x)<=6&&Math.abs(l[0].y-e[0].y)<=6&&Math.abs(l[0].z-e[0].z)<=6?(p.push(l[0]),m=1):m=0,p.push(e[0]);for(let t=1,s=e.length-1;t0&&Math.abs(r[0].x-e[e.length-1].x)<=6&&Math.abs(r[0].y-e[e.length-1].y)<=6&&Math.abs(r[0].z-e[e.length-1].z)<=6&&(p.push(r[0]),++g),u>1&&Math.abs(r[0].x-r[1].x)<=6&&Math.abs(r[0].y-r[1].y)<=6&&Math.abs(r[0].z-r[1].z)<=6&&(p.push(r[1]),++g);let f=[],C=[],b=[];o&&(g=u>0?u-1:0);let y;for(let e=-1,n=p.length,l=1/s;e<=n-3;++e){y=e-m;let r=p[-1===e?0:e],o=p[e+1],u=p[e+2],v=p[e===n-3?n-1:e+3],_=0,w=a.subdivideCls.getKnot(1,_,r,o),S=a.subdivideCls.getKnot(1,w,o,u),A=a.subdivideCls.getKnot(1,S,u,v);w-_<1e-4&&(w=_+1),S-w<1e-4&&(S=w+1),A-S<1e-4&&(A=S+1),e>-1&&(void 0===i||i[y+1])&&e>=-1+m&&e<=n-3-g+1&&(d=d.concat(f),c=c.concat(C),h=h.concat(b)),f=[],C=[],b=[];let x=(S-w)*l;for(let l=0;l=-1+m&&e<=n-3-g&&i[y+1]&&l<=parseInt(s/2)&&(d.push(new THREE.Vector3(k,O,R)),c.push(i[y+1]),h.push(t[y+1])),e>=-1+m&&e<=n-3-g+1&&i[y+2]&&l>parseInt(s/2)&&(f.push(new THREE.Vector3(k,O,R)),C.push(i[y+2]),b.push(t[y+2]))):e>=-1+m&&e<=n-3-g&&(d.push(new THREE.Vector3(k,O,R)),c.push(y+1),h.push(t[y+1]))}}i&&!i[y+1]||(d=d.concat(f),c=c.concat(C),h=h.concat(b),d.push(p[p.length-1-g]),c.push(p.length-1-g),h.push(t[p.length-1-g])),f=[],C=[],b=[],p=[];let v=[];return v.push(d),v.push(c),v.push(h),v}getKnot(e,t,s,i){return this.icn3dui,s.distanceTo(i)+t}getValueFromKnot(e,t,s,i,n,l,r,o,a){this.icn3dui;let d,c,h=(r-l)/(s-t),p=(o-r)/(i-s),m=(a-o)/(n-i),u=(s+i)*(s+i)-4*(t*s+i*n-t*n);return 0==u?(d=9999,c=9999):(d=6*(3*p*s+2*h*n+m*s-2*h*s-2*p*n-p*i-m*s)/u,c=6*(3*p*i+2*m*t+h*s-2*p*t-2*m*i-h*i-p*s)/u),p*(e-s)+r+((2*d+c)/6/(s-i)*(e-s)*(e-i)*(e-i)+(2*c+d)/6/(i-s)*(e-s)*(e-s)*(e-i))}}class o{constructor(e){this.icn3dui=e}passFloat32(e,t){let s=this.icn3dui,i=e.length;t||(t=new Uint8Array(4*i));let n=s.convertTypeCls.getDataView(t);for(let t=0;t  Very high (pLDDT > 90)
      Confident (90 > pLDDT > 70)
      Low (70 > pLDDT > 50)
      Very low (pLDDT < 50)
    '}setLegendHtml(e){let t=this.icn3dui.icn3d,s="
    ";if(e)s+=this.setAlphaFoldLegend();else{s+="

    "+t.startValue+""+t.midValue+""+t.endValue+"
    "}return s}SetChainsAdvancedMenu(){let e=this.icn3dui,t=e.icn3d;if(void 0===t.bSetChainsAdvancedMenu||!t.bSetChainsAdvancedMenu){let s=e.hashUtilsCls.cloneHash(t.hAtoms);t.definedSetsCls.setPredefinedInMenu(),t.bSetChainsAdvancedMenu=!0,t.hAtoms=e.hashUtilsCls.cloneHash(s)}}setSetsMenus(e,t){let s=this.icn3dui,i=s.icn3d;this.SetChainsAdvancedMenu();let n=e,l=e+"2",r=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+s.pre+n).length&&$("#"+s.pre+n).html(" "+r),!t&&$("#"+s.pre+l).length&&$("#"+s.pre+l).html(" "+r),$("#"+s.pre+n).resizable(),t||$("#"+s.pre+l).resizable()}applyShownMenus(e){let t=this.icn3dui;t.icn3d;let s=[];for(let e in t.htmlCls.allMenus)t.htmlCls.shownMenus.hasOwnProperty(e)?$("#"+t.pre+e).parent().show():($("#"+t.pre+e).parent().hide(),s.push(e));Object.keys(t.htmlCls.shownMenus).length==Object.keys(t.htmlCls.allMenus).length?$(".icn3d-menusep").show():$(".icn3d-menusep").hide(),localStorage&&!e&&localStorage.setItem("hiddenmenus",JSON.stringify(s))}getHiddenMenusFromCache(){let e=this.icn3dui;e.icn3d,e.htmlCls.shownMenus={};let t=localStorage?localStorage.getItem("hiddenmenus"):"";if(t&&"[]"!=t){let s=JSON.parse(t);for(let t in e.htmlCls.allMenus)-1==s.indexOf(t)&&(e.htmlCls.shownMenus[t]=1)}else e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus)}displayShownMenus(){let e=this.icn3dui;e.icn3d;let t="
    ";t+="",t+="";for(let s in e.htmlCls.allMenusSel){if("uniclr"==s.substr(0,6)||"mn5_opacity"==s.substr(0,11)||"mn6_labelscale"==s.substr(0,14)||"faq_"==s.substr(0,4)||"dev_"==s.substr(0,4))continue;"mn1_searchgrooup"==s?t+="
    FileSelectViewStyleColorAnalysisHelp
    ":("mn2_definedsets"==s||"mn2_show_selected"==s||"mn3_proteinwrap"==s||e.cfg.cid&&"mn3_ligwrap"==s||"mn4_clrwrap"==s||"mn6_selectannotations"==s||"abouticn3d"==s)&&(t+="");let i=e.htmlCls.shownMenus.hasOwnProperty(s)?"checked":"",n=e.htmlCls.allMenusSel[s];t+=""+e.htmlCls.allMenus[s]+"
    "}t+="
    ",$("#"+e.pre+"menulist").html(t)}async setIgTemplate(e){let t=this.icn3dui.icn3d;t.bRunRefnumAgain=!0;let s=t.resid2specCls.atoms2residues(Object.keys(t.hAtoms));for(let e=0,i=s.length;e0?"_blank":"_self";window.open(n,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_mmciffile","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmciffile","Please append mmCIF File")})),e.myEventCls.onIds("#"+e.pre+"mn1_mmcifid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmcifid","Please input mmCIF ID")})),e.myEventCls.onIds("#"+e.pre+"mn1_mmdbid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmdbid","Please input MMDB or PDB ID")})),e.myEventCls.onIds(["#"+e.pre+"mn1_mmdbafid",,"#"+e.pre+"tool_mmdbafid"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmdbafid","Please input PDB/MMDB/AlphaFold UniProt IDs")})),e.myEventCls.onIds("#"+e.pre+"mn1_blast_rep_id","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_blast_rep_id","Align sequence to structure")})),e.myEventCls.onIds("#"+e.pre+"mn1_esmfold","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_esmfold","Sequence to structure prediction with ESMFold")})),e.myEventCls.onIds("#"+e.pre+"mn1_proteinname","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_proteinname","Please input protein or gene name")})),e.myEventCls.onIds("#"+e.pre+"mn1_cid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_cid","Please input PubChem Compound")})),e.myEventCls.onIds("#"+e.pre+"mn1_smiles","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_smiles","Please input a chemical SMILES")})),e.myEventCls.onIds("#"+e.pre+"mn1_pngimage","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_pngimage","Please append PNG images")})),e.myEventCls.onIds("#"+e.pre+"mn1_state","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_state","Please input the state file")})),e.myEventCls.onIds("#"+e.pre+"mn1_selection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_selection","Please input the selection file")})),e.myEventCls.onIds("#"+e.pre+"mn1_collection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_selectCollections","Select Collections")})),e.myEventCls.onIds("#"+e.pre+"mn1_dsn6","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_dsn6","Please input the map file to display electron density map")})),e.myEventCls.onIds(["#"+e.pre+"mn1_delphi","#"+e.pre+"mn1_delphi2","#"+e.pre+"tool_delphi"],"click",(function(t){e.icn3d.loadPhiFrom="delphi",$("#"+e.pre+"dl_delphi_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_delphi","Please set parameters to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_phi","click",(function(t){e.icn3d.loadPhiFrom="phi",$("#"+e.pre+"dl_phi_tabs").tabs(),$("#"+e.pre+"phitab1_tabs").tabs(),$("#"+e.pre+"phitab2_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_phi","Please input local phi or cube file to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_phiurl","click",(function(t){e.icn3d.loadPhiFrom="phiurl",$("#"+e.pre+"dl_phiurl_tabs").tabs(),$("#"+e.pre+"phiurltab1_tabs").tabs(),$("#"+e.pre+"phiurltab2_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_phiurl","Please input URL phi or cube file to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_dsn6url","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_dsn6url","Please input the map file to display electron density map")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportState","click",(function(s){let i=e.icn3d;t.setLogCmd("export state file",!1);let n=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(n+"_statefile.txt","command")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportPdbRes","click",(function(s){e.icn3d,e.htmlCls.setHtmlCls.exportPdb(),t.setLogCmd("export pdb",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSecondary","click",(function(s){e.icn3d,e.htmlCls.setHtmlCls.exportSecondary(),t.setLogCmd("export secondary structure",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphipdb","#"+e.pre+"phipdb"],"click",(function(s){let i=e.icn3d,n=i.saveFileCls.getSelectedResiduePDB();t.setLogCmd("export PDB of selected residues",!1);let l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_icn3d_residues.pdb","text",[n])})),e.myEventCls.onIds(["#"+e.pre+"delphipqr","#"+e.pre+"phipqr","#"+e.pre+"phiurlpqr"],"click",(async function(s){e.icn3d,await e.htmlCls.setHtmlCls.exportPqr(),t.setLogCmd("export pqr",!0)})),e.myEventCls.onIds("#"+e.pre+"profixpdb","click",(async function(s){let i=e.icn3d;await i.scapCls.exportPdbProfix(!1),t.setLogCmd("export pdb missing atoms",!0)})),e.myEventCls.onIds("#"+e.pre+"profixpdbh","click",(async function(s){let i=e.icn3d;await i.scapCls.exportPdbProfix(!0),t.setLogCmd("export pdb hydrogen",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportIgstrand","click",(async function(s){e.icn3d.refnumCls.exportRefnum("igstrand"),t.setLogCmd("export refnum igstrand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportKabat","click",(async function(s){e.icn3d.refnumCls.exportRefnum("kabat"),t.setLogCmd("export refnum kabat",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportImgt","click",(async function(s){e.icn3d.refnumCls.exportRefnum("imgt"),t.setLogCmd("export refnum imgt",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportStl","click",(function(s){let i=e.icn3d;t.setLogCmd("export stl file",!1),i.export3DCls.exportStlFile("")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportVrml","click",(function(s){let i=e.icn3d;t.setLogCmd("export vrml file",!1),i.export3DCls.exportVrmlFile("")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportStlStab","click",(function(s){let i=e.icn3d;t.setLogCmd("export stl stabilizer file",!1),i.threeDPrintCls.hideStabilizer(),i.threeDPrintCls.resetAfter3Dprint(),i.threeDPrintCls.addStabilizer(),i.export3DCls.exportStlFile("_stab")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportVrmlStab","click",(function(s){let i=e.icn3d;t.setLogCmd("export vrml stabilizer file",!1),i.threeDPrintCls.hideStabilizer(),i.threeDPrintCls.resetAfter3Dprint(),i.threeDPrintCls.addStabilizer(),i.export3DCls.exportVrmlFile("_stab")})),e.myEventCls.onIds("#"+e.pre+"mn6_exportInteraction","click",(async function(s){let i=e.icn3d;t.setLogCmd("export interactions",!1),void 0!==e.cfg.mmdbid&&await i.viewInterPairsCls.retrieveInteractionData(),i.viewInterPairsCls.exportInteractions()})),e.myEventCls.onIds(["#"+e.pre+"mn1_exportCanvas","#"+e.pre+"saveimage"],"click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas",!1);await i.shareLinkCls.shareLink(!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas1","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 1",!0),i.scaleFactor=1,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas2","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 2",!0),i.scaleFactor=2,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas4","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 4",!0),i.scaleFactor=4,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas8","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 8",!0),i.scaleFactor=8,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCounts","click",(function(s){let i=e.icn3d;t.setLogCmd("export counts",!1);let n='

    Total Count for atoms with coordinates:
    ';n+="",n+="
    Structure CountChain CountResidue CountAtom Count
    "+Object.keys(i.structures).length+""+Object.keys(i.chains).length+""+Object.keys(i.residues).length+""+Object.keys(i.atoms).length+"

    ",n+="Counts by Chain for atoms with coordinates:
    ";let l=Object.keys(i.chains);for(let e=0,t=l.length;e"}n+="
    StructureChainResidue CountAtom Count
    "+r+""+o+""+Object.keys(a).length+""+Object.keys(i.chains[t]).length+"

    ";let r=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(r+"_counts.html","html",n)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSelections","click",(function(s){let i=e.icn3d;t.setLogCmd("export all selections",!1),t.SetChainsAdvancedMenu();let n=i.saveFileCls.exportCustomAtoms(),l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_selections.txt","text",[n])})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSelDetails","click",(function(s){let i=e.icn3d;t.setLogCmd("export all selections with details",!1),t.SetChainsAdvancedMenu();let n=i.saveFileCls.exportCustomAtoms(!0),l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_sel_details.txt","text",[n])})),e.myEventCls.onIds(["#"+e.pre+"mn1_sharelink","#"+e.pre+"tool_sharelink"],"click",(async function(t){let s=e.icn3d;await s.shareLinkCls.shareLink()})),e.myEventCls.onIds("#"+e.pre+"mn1_replayon","click",(async function(s){let i=e.icn3d;await i.resizeCanvasCls.replayon(),t.setLogCmd("replay on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_replayoff","click",(async function(s){let i=e.icn3d;await i.resizeCanvasCls.replayoff(),t.setLogCmd("replay off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_menuall","click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus),t.applyShownMenus()})),e.myEventCls.onIds("#"+e.pre+"mn1_menusimple","click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.simpleMenus),t.applyShownMenus()})),e.myEventCls.onIds("#"+e.pre+"mn1_menupref","click",(function(s){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_menupref","Select Menus"),t.getHiddenMenusFromCache(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"apply_menupref","#"+e.pre+"apply_menupref2"],"click",(function(s){e.icn3d;var i=document.querySelectorAll('form[name="'+e.pre+'selmenu"] input:checked');for(var n of(e.htmlCls.shownMenus={},i))e.htmlCls.shownMenus[n.value]=1;t.applyShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"reset_menupref","#"+e.pre+"reset_menupref2"],"click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.simpleMenus),t.applyShownMenus(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"reset_menupref_all","#"+e.pre+"reset_menupref_all2"],"click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus),t.applyShownMenus(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"savepref","#"+e.pre+"savepref2"],"click",(function(t){let s=e.icn3d,i="[";var n=document.querySelectorAll('form[name="'+e.pre+'selmenu"] input:not(:checked)');let l=0;for(var r of n)l>0&&(i+=", "),i+='"'+r.value+'"',++l;i+="]",s.saveFileCls.saveFile("icn3d_menus_pref.txt","text",[i])})),e.myEventCls.onIds("#"+e.pre+"reload_menupreffile","click",(function(s){e.icn3d,s.preventDefault(),e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"menupreffile")[0].files[0];if(i){e.htmlCls.setHtmlCls.fileSupport();let s=new FileReader;s.onload=function(s){let i=s.target.result,n=JSON.parse(i);e.htmlCls.shownMenus={};for(let t in e.htmlCls.allMenus)-1==n.indexOf(t)&&(e.htmlCls.shownMenus[t]=1);t.applyShownMenus(),t.displayShownMenus()},s.readAsText(i)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"mn1_menuloadpref","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_menuloadpref","Please input the menu preference file")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_structure","click",(function(t){let s=e.icn3d,i=s.saveFileCls.getLinkToStructureSummary(!0),n=s.structures&&Object.keys(s.structures).length>0?"_blank":"_self";window.open(i,n)})),e.myEventCls.onIds("#"+e.pre+"mn1_alphafold","click",(function(t){e.icn3d;window.open("https://github.com/sokrypton/ColabFold","_blank")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_bind","click",(function(s){let i=e.icn3d,n="https://www.ncbi.nlm.nih.gov/pccompound?LinkName=pccompound_structure&from_uid="+i.inputid;t.setLogCmd("link to 3D protein structures bound to CID "+i.inputid+": "+n,!1);let l=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(n,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_link_vast","click",(function(s){let i,n=e.icn3d;if(void 0===n.inputid)i="https://www.ncbi.nlm.nih.gov/pccompound?term="+n.molTitle,t.setLogCmd("link to compounds "+n.molTitle+": "+i,!1);else if(void 0!==e.cfg.cid)i="https://www.ncbi.nlm.nih.gov/pccompound?LinkName=pccompound_pccompound_3d&from_uid="+n.inputid,t.setLogCmd("link to compounds with structure similar to CID "+n.inputid+": "+i,!1);else{let s=n.inputid.split("_");1===s.length?(i=e.htmlCls.baseUrl+"vastplus/vastplus.cgi?uid="+n.inputid,t.setLogCmd("link to structures similar to "+n.inputid+": "+i,!1)):2===s.length&&(i=e.htmlCls.baseUrl+"vastplus/vastplus.cgi?uid="+s[0],t.setLogCmd("link to structures similar to "+s[0]+": "+i,!1))}let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_link_pubmed","click",(function(s){let i,n=e.icn3d;if(void 0===n.inputid){i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+n.molTitle,t.setLogCmd("link to literature about "+n.molTitle+": "+i,!1);let e=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,e)}else if(n.pmid){let e=n.pmid.toString().split("_");1===e.length?(i="https://www.ncbi.nlm.nih.gov/pubmed/"+n.pmid,t.setLogCmd("link to PubMed ID "+n.pmid+": "+i,!1)):2===e.length&&(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+e[0]+" OR "+e[1],t.setLogCmd("link to PubMed IDs "+e[0]+", "+e[1]+": "+i,!1));let s=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,s)}else if(isNaN(n.inputid)){let e=n.inputid.toString().split("_");1===e.length?(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+n.inputid,t.setLogCmd("link to literature about PDB "+n.inputid+": "+i,!1)):2===e.length&&(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+e[0]+" OR "+e[1],t.setLogCmd("link to literature about PDB "+e[0]+" OR "+e[1]+": "+i,!1));let s=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,s)}else void 0!==e.cfg.cid?alert("No literature information is available for this compound in the SDF file."):alert("No literature information is available for this structure.")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_protein","click",(function(s){let i=e.icn3d,n=Object.keys(i.structures),l=Object.keys(i.chains),r="";for(let e=0,t=l.length;e0&&(r=r.substr(0,r.length-4));let o="https://www.ncbi.nlm.nih.gov/protein/?term="+r;t.setLogCmd("link to Entrez protein about PDB "+n+": "+o,!1);let a=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(o,a)}))}clickMenu2(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds(["#"+e.pre+"mn6_selectannotations","#"+e.pre+"tool_selectannotations"],"click",(async function(s){let i=e.icn3d;await i.showAnnoCls.showAnnotations(),t.setLogCmd("view annotations",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_selectall","click",(function(s){let i=e.icn3d;t.setLogCmd("select all",!0),i.selectionCls.selectAll(),i.hlUpdateCls.removeHlAll(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearall","click",(function(s){let i=e.icn3d;t.setLogCmd("clear all",!0),i.bSelectResidue=!1,i.selectionCls.selectAll(),i.hlUpdateCls.removeHlAll(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_selectdisplayed","click",(function(s){let i=e.icn3d;t.setLogCmd("select displayed set",!0),i.hAtoms=e.hashUtilsCls.cloneHash(i.viewSelectionAtoms),i.hlUpdateCls.updateHlAll()})),e.myEventCls.onIds("#"+e.pre+"mn2_clashedYes","click",(function(s){let i=e.icn3d;i.bHideClashed=!1,i.annoDomainCls.showHideClashedResidues(),i.drawCls.draw(),t.setLogCmd("clashed residues show",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_clashedNo","click",(function(s){let i=e.icn3d;i.bHideClashed=!0,t.setClashedResidues(),i.annoDomainCls.showHideClashedResidues(),i.drawCls.draw(),t.setLogCmd("clashed residues hide",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_fullstru","click",(function(s){let i=e.icn3d;t.setLogCmd("show all",!0),i.selectionCls.showAll()})),e.myEventCls.onIds("#"+e.pre+"mn2_selectcomplement","click",(function(s){let i=e.icn3d;Object.keys(i.hAtoms).lengthnon-selected"+n),$("#"+e.pre+"atomsCustomSphere2").length&&$("#"+e.pre+"atomsCustomSphere2").html(" "+n),e.htmlCls.dialogCls.openDlg("dl_aroundsphere","Select a sphere around a set of residues"),i.bSphereCalc=!1,$("#"+e.pre+"atomsCustomSphere").resizable(),$("#"+e.pre+"atomsCustomSphere2").resizable()})),e.myEventCls.onIds(["#"+e.pre+"mn2_select_chain","#"+e.pre+"definedSets"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_select_chain","Select Structure/Chain/Custom Selection")}))}clickMenu3(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsRibbon","#"+e.pre+"tool_proteinsRibbon"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","ribbon"),t.setLogCmd("style proteins ribbon",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsStrand","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","strand"),t.setLogCmd("style proteins strand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsCylinder","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","cylinder and plate"),t.setLogCmd("style proteins cylinder and plate",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","schematic"),t.setLogCmd("style proteins schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsCalpha","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","c alpha trace"),t.setLogCmd("style proteins c alpha trace",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsBackbone","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","backbone"),t.setLogCmd("style proteins backbone",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsBfactor","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","b factor tube"),t.setLogCmd("style proteins b factor tube",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsLines","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","lines"),t.setLogCmd("style proteins lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsStick","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","stick"),t.setLogCmd("style proteins stick",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsBallstick","#"+e.pre+"tool_proteinsBallstick"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","ball and stick"),t.setLogCmd("style proteins ball and stick",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsSphere","#"+e.pre+"tool_proteinsSphere"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","sphere"),t.setLogCmd("style proteins sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsNo","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","nothing"),t.setLogCmd("style proteins nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecLines","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","lines2"),t.setLogCmd("style sidec lines2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecStick","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","stick2"),t.setLogCmd("style sidec stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","ball and stick2"),t.setLogCmd("style sidec ball and stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","sphere2"),t.setLogCmd("style sidec sphere2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecNo","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","nothing"),t.setLogCmd("style sidec nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseLines","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","lines2"),t.setLogCmd("style ntbase lines2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseStick","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","stick2"),t.setLogCmd("style ntbase stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","ball and stick2"),t.setLogCmd("style ntbase ball and stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","sphere2"),t.setLogCmd("style ntbase sphere2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseNo","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","nothing"),t.setLogCmd("style ntbase nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclCartoon","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","nucleotide cartoon"),t.setLogCmd("style nucleotides nucleotide cartoon",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclBackbone","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","backbone"),t.setLogCmd("style nucleotides backbone",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","schematic"),t.setLogCmd("style nucleotides schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclPhos","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","o3 trace"),t.setLogCmd("style nucleotides o3 trace",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclLines","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","lines"),t.setLogCmd("style nucleotides lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclStick","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","stick"),t.setLogCmd("style nucleotides stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","ball and stick"),t.setLogCmd("style nucleotides ball and stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","sphere"),t.setLogCmd("style nucleotides sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclNo","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","nothing"),t.setLogCmd("style nucleotides nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligLines","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","lines"),t.setLogCmd("style chemicals lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligStick","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","stick"),t.setLogCmd("style chemicals stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","ball and stick"),t.setLogCmd("style chemicals ball and stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","schematic"),t.setLogCmd("style chemicals schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","sphere"),t.setLogCmd("style chemicals sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligNo","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","nothing"),t.setLogCmd("style chemicals nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_glycansCartYes","click",(function(s){let i=e.icn3d;i.bGlycansCartoon=!0,i.drawCls.draw(),t.setLogCmd("glycans cartoon yes",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_glycansCartNo","click",(function(s){let i=e.icn3d;i.bGlycansCartoon=!1,i.drawCls.draw(),t.setLogCmd("glycans cartoon no",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_hydrogensYes","click",(function(s){let i=e.icn3d;i.showInterCls.showHydrogens(),i.drawCls.draw(),t.setLogCmd("hydrogens",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_hydrogensNo","click",(function(s){let i=e.icn3d;i.showInterCls.hideHydrogens(),i.drawCls.draw(),t.setLogCmd("set hydrogens off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","sphere"),t.setLogCmd("style ions sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsDot","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","dot"),t.setLogCmd("style ions dot",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsNo","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","nothing"),t.setLogCmd("style ions nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("water","sphere"),t.setLogCmd("style water sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterDot","click",(function(s){e.icn3d.setOptionCls.setStyle("water","dot"),t.setLogCmd("style water dot",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterNo","click",(function(s){e.icn3d.setOptionCls.setStyle("water","nothing"),t.setLogCmd("style water nothing",!0)}))}clickMenu4(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrum","click",(function(s){e.icn3d.setOptionCls.setOption("color","spectrum"),t.setLogCmd("color spectrum",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumChain","click",(function(s){e.icn3d.setOptionCls.setOption("color","spectrum for chains"),t.setLogCmd("color spectrum for chains",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumAcrossSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorSpectrumAcross").length&&$("#"+e.pre+"atomsCustomColorSpectrumAcross").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorspectrumacrosssets","Please select sets to apply spectrum color for sets"),$("#"+e.pre+"atomsCustomColorSpectrumAcross").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorSpectrum").length&&$("#"+e.pre+"atomsCustomColorSpectrum").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorspectrumbysets","Please select sets to apply spectrum color for residues"),$("#"+e.pre+"atomsCustomColorSpectrum").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbowAcrossSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorRainbowAcross").length&&$("#"+e.pre+"atomsCustomColorRainbowAcross").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorrainbowacrosssets","Please select sets to apply rainbow color for sets"),$("#"+e.pre+"atomsCustomColorRainbowAcross").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbowSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorRainbow").length&&$("#"+e.pre+"atomsCustomColorRainbow").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorrainbowbysets","Please select sets to apply rainbow color for residues"),$("#"+e.pre+"atomsCustomColorRainbow").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbow","click",(function(s){e.icn3d.setOptionCls.setOption("color","rainbow"),t.setLogCmd("color rainbow",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrRainbowChain","#"+e.pre+"tool_clrRainbowChain"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","rainbow for chains"),t.setLogCmd("color rainbow for chains",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrChain","#"+e.pre+"tool_clrChain"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","chain"),t.setLogCmd("color chain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrStructure","click",(function(s){e.icn3d.setOptionCls.setOption("color","structure"),t.setLogCmd("color structure",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrdomain","click",(function(s){e.icn3d.setOptionCls.setOption("color","domain"),t.setLogCmd("color domain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrsets","click",(function(s){e.icn3d.setOptionCls.setOption("color","defined sets"),t.setLogCmd("color defined sets",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrSSGreen","#"+e.pre+"tool_clrSSGreen"],"click",(function(s){let i=e.icn3d;i.sheetcolor="green",i.setOptionCls.setOption("color","secondary structure green"),t.setLogCmd("color secondary structure green",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSSYellow","click",(function(s){let i=e.icn3d;i.sheetcolor="yellow",i.setOptionCls.setOption("color","secondary structure yellow"),t.setLogCmd("color secondary structure yellow",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSSSpectrum","click",(function(s){e.icn3d.setOptionCls.setOption("color","secondary structure spectrum"),t.setLogCmd("color secondary structure spectrum",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrResidue","click",(function(s){e.icn3d.setOptionCls.setOption("color","residue"),t.setLogCmd("color residue",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrResidueCustom","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_rescolorfile","Please input the file on residue colors")})),e.myEventCls.onIds("#"+e.pre+"reload_rescolorfile","click",(function(s){let i=e.icn3d;s.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"rescolorfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let s=new FileReader;s.onload=function(s){let n=s.target.result.replace(/#/g,"");i.customResidueColors=JSON.parse(n);for(let t in i.customResidueColors)i.customResidueColors[t.toUpperCase()]=e.parasCls.thr("#"+i.customResidueColors[t]);i.setOptionCls.setOption("color","residue custom"),t.setLogCmd("color residue custom | "+n,!0)},s.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_customcolorfile","click",(function(s){let i=e.icn3d;s.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.startColor=$("#"+e.pre+"startColor").val(),i.midColor=$("#"+e.pre+"midColor").val(),i.endColor=$("#"+e.pre+"endColor").val();let n=t.setLegendHtml();$("#"+e.pre+"dl_legend_html").html(n),e.htmlCls.dialogCls.openDlg("dl_legend","Color range"),i.addTrackCls.setCustomFile("color",i.startColor,i.midColor,i.endColor)})),e.myEventCls.onIds("#"+e.pre+"mn6_customref","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_customref","Set custom reference numbers")})),e.myEventCls.onIds("#"+e.pre+"reload_customreffile","click",(function(s){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=$("#"+i.pre+"cstreffile")[0].files[0];if(n){e.utilsCls.checkFileAPI();let s=new FileReader;s.onload=async function(e){let s=e.target.result;await i.refnumCls.parseCustomRefFile(s),s=s.replace(/\r/g,"").replace(/\n/g,"\\n"),t.setLogCmd("custom refnum | "+s,!0)},s.readAsText(n)}else alert("Please select a file before clicking 'Apply'")})),e.myEventCls.onIds("#"+e.pre+"remove_legend","click",(function(s){e.icn3d,s.preventDefault(),$("#"+e.pre+"legend").hide(),t.setLogCmd("remove legend",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_customtubefile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.addTrackCls.setCustomFile("tube")})),e.myEventCls.onIds("#"+e.pre+"mn4_clrCharge","click",(function(s){e.icn3d.setOptionCls.setOption("color","charge"),t.setLogCmd("color charge",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrHydrophobic","click",(function(s){e.icn3d.setOptionCls.setOption("color","hydrophobic"),t.setLogCmd("color hydrophobic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrNormalizedHP","click",(function(s){e.icn3d.setOptionCls.setOption("color","normalized hydrophobic"),t.setLogCmd("color normalized hydrophobic",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrAtom","#"+e.pre+"tool_clrAtom"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","atom"),t.setLogCmd("color atom",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrBfactor","click",(function(s){e.icn3d.setOptionCls.setOption("color","b factor"),t.setLogCmd("color b factor",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrConfidence","click",(function(s){e.icn3d.setOptionCls.setOption("color","confidence"),t.setLogCmd("color confidence",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIgstrand","click",(function(s){e.icn3d.setOptionCls.setOption("color","ig strand"),t.setLogCmd("color ig strand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIgproto","click",(function(s){e.icn3d.setOptionCls.setOption("color","ig protodomain"),t.setLogCmd("color ig protodomain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrArea","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_colorbyarea","Color based on residue's solvent accessibility")})),e.myEventCls.onIds("#"+e.pre+"applycolorbyarea","click",(function(s){let i=e.icn3d;i.midpercent=$("#"+e.pre+"midpercent").val(),i.setOptionCls.setOption("color","area"),t.setLogCmd("color area | "+i.midpercent,!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrBfactorNorm","click",(function(s){e.icn3d.setOptionCls.setOption("color","b factor percentile"),t.setLogCmd("color b factor percentile",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIdentity","click",(function(s){e.icn3d.setOptionCls.setOption("color","identity"),t.setLogCmd("color identity",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrConserved","click",(function(s){e.icn3d.setOptionCls.setOption("color","conservation"),t.setLogCmd("color conservation",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrCustom","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_clr","Color picker")})),$(document).on("click",".icn3d-color-rad-text",(function(s){let i=e.icn3d;s.stopImmediatePropagation();let n=$(this).attr("color");i.setOptionCls.setOption("color",n),t.setLogCmd("color "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSave","click",(function(s){e.icn3d.setOptionCls.saveColor(),t.setLogCmd("save color",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrApplySave","click",(function(s){e.icn3d.setOptionCls.applySavedColor(),t.setLogCmd("apply saved color",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_styleSave","click",(function(s){e.icn3d.setOptionCls.saveStyle(),t.setLogCmd("save style",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_styleApplySave","click",(function(s){e.icn3d.setOptionCls.applySavedStyle(),t.setLogCmd("apply saved style",!0)}))}clickMenu5(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds("#"+e.pre+"mn5_neighborsYes","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.applyMapCls.removeLastSurface(),i.applyMapCls.applySurfaceOptions(),i.bRender&&i.drawCls.render(),t.setLogCmd("set surface neighbors on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_neighborsNo","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.applyMapCls.removeLastSurface(),i.applyMapCls.applySurfaceOptions(),i.bRender&&i.drawCls.render(),t.setLogCmd("set surface neighbors off",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn5_surfaceVDW","#"+e.pre+"tool_surfaceVDW"],"click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","Van der Waals surface"),t.setLogCmd("set surface Van der Waals surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceSAS","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","solvent accessible surface"),t.setLogCmd("set surface solvent accessible surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceMolecular","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","molecular surface"),t.setLogCmd("set surface molecular surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceVDWContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","Van der Waals surface with context"),t.setLogCmd("set surface Van der Waals surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceSASContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","solvent accessible surface with context"),t.setLogCmd("set surface solvent accessible surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceMolecularContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","molecular surface with context"),t.setLogCmd("set surface molecular surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceNo","click",(function(s){e.icn3d.setOptionCls.setOption("surface","nothing"),t.setLogCmd("set surface nothing",!0)})),$(document).on("click","."+e.pre+"mn5_opacity",(function(s){let i=e.icn3d;i.transparentRenderOrder=!1;let n=$(this).attr("v");i.setOptionCls.setOption("opacity",n),t.setLogCmd("set surface opacity "+n,!0)})),$(document).on("click","."+e.pre+"mn5_opacityslow",(function(s){let i=e.icn3d;i.transparentRenderOrder=!0;let n=$(this).attr("v");i.setOptionCls.setOption("opacity",n),t.setLogCmd("set surface2 opacity "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_wireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("wireframe","yes"),t.setLogCmd("set surface wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_wireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("wireframe","no"),t.setLogCmd("set surface wireframe off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_elecmap2fofc","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_elecmap2fofc","2Fo-Fc Electron Density Map")})),e.myEventCls.onIds("#"+e.pre+"mn5_elecmapfofc","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_elecmapfofc","Fo-Fc Electron Density Map")})),e.myEventCls.onIds(["#"+e.pre+"mn5_elecmapNo","#"+e.pre+"elecmapNo2","#"+e.pre+"elecmapNo3","#"+e.pre+"elecmapNo4","#"+e.pre+"elecmapNo5"],"click",(function(s){e.icn3d.setOptionCls.setOption("map","nothing"),t.setLogCmd("setoption map nothing",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphimapNo","#"+e.pre+"phimapNo","#"+e.pre+"phiurlmapNo","#"+e.pre+"mn1_phimapNo"],"click",(function(s){e.icn3d.setOptionCls.setOption("phimap","nothing"),t.setLogCmd("setoption phimap nothing",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphimapNo2","#"+e.pre+"phimapNo2","#"+e.pre+"phiurlmapNo2"],"click",(function(s){e.icn3d.setOptionCls.setOption("phisurface","nothing"),t.setLogCmd("setoption phisurface nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"applymap2fofc","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"sigma2fofc").val());await i.densityCifParserCls.densityCifParser(i.inputid,"2fofc",n),t.setLogCmd("set map 2fofc sigma "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applymapfofc","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"sigmafofc").val());await i.densityCifParserCls.densityCifParser(i.inputid,"fofc",sigma2fofc),t.setLogCmd("set map fofc sigma "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_mapwireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("mapwireframe","yes"),t.setLogCmd("set map wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_mapwireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("mapwireframe","no"),t.setLogCmd("set map wireframe off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmap","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_emmap","EM Density Map")})),e.myEventCls.onIds(["#"+e.pre+"mn5_emmapNo","#"+e.pre+"emmapNo2"],"click",(function(s){e.icn3d.setOptionCls.setOption("emmap","nothing"),t.setLogCmd("setoption emmap nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"applyemmap","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"empercentage").val());await i.densityCifParserCls.densityCifParser(i.inputid,"em",n,i.emd),t.setLogCmd("set emmap percentage "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmapwireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("emmapwireframe","yes"),t.setLogCmd("set emmap wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmapwireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("emmapwireframe","no"),t.setLogCmd("set emmap wireframe off",!0)}))}clickMenu6(){let e=this.icn3dui,t=e.icn3d;if(e.bNode)return;let s=this;e.myEventCls.onIds("#"+e.pre+"mn6_assemblyYes","click",(function(t){let i=e.icn3d;i.bAssembly=!0,s.setLogCmd("set assembly on",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_assemblyNo","click",(function(t){let i=e.icn3d;i.bAssembly=!1,s.setLogCmd("set assembly off",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefYes","click",(async function(t){let i=e.icn3d;i.bRunRefnumAgain=!0,s.setLogCmd("ig refnum on",!0),i.bAnnoShown||await i.showAnnoCls.showAnnotations();await i.annotationCls.setAnnoTabIg(!0),i.bRunRefnumAgain=!1})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefTpl","click",(async function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_igrefTpl","Choose an Ig template")})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefTpl_apply","click",(async function(t){e.icn3d,e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"refTpl").val();await s.setIgTemplate(i),s.setLogCmd("ig template "+i,!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_alignrefTpl","click",(async function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_alignrefTpl","Align with an Ig template")})),e.myEventCls.onIds("#"+e.pre+"mn6_alignrefTpl_apply","click",(async function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"refTpl2").val(),l=e.hashUtilsCls.cloneHash(i.hAtoms),r=e.htmlCls.baseUrl+"icn3d/refpdb/"+n+".pdb";await i.pdbParserCls.downloadUrl(r,"pdb",void 0,n),s.setLogCmd("load url "+r+" | type pdb",!0);let o=n.replace(/_/g,"").substr(0,4),a=i.structures[o][0];i.hAtoms=e.hashUtilsCls.unionHash(l,i.chains[a]),e.cfg.aligntool="tmalign",await i.realignParserCls.realignOnStructAlign(),s.setLogCmd("realign on tmalign",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefNo","click",(async function(t){let i=e.icn3d;s.setLogCmd("ig refnum off",!0),await i.refnumCls.hideIgRefNum()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelAtoms","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addAtomLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add atom labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelElements","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addAtomLabels(i.hAtoms,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add element labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelResidues","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add residue labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelResnum","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms,void 0,void 0,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add residue number labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelRefnum","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms,void 0,void 0,void 0,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add reference number labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelIg","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addIgLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add ig labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelChains","click",(function(t){let i=e.icn3d;i.analysisCls.addChainLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add chain labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelTermini","click",(function(t){let i=e.icn3d;i.analysisCls.addTerminiLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add terminal labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelYes","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_addlabel","Add custom labels by selection"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelSelection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_addlabelselection","Add custom labels by the selected")})),e.myEventCls.onIds("#"+e.pre+"mn6_labelColor","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_labelColor","Change color for all labels")})),e.myEventCls.onIds(["#"+e.pre+"mn2_saveselection","#"+e.pre+"tool_saveselection"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_saveselection","Save the selected")})),e.myEventCls.onIds(["#"+e.pre+"mn6_addlabelNo","#"+e.pre+"removeLabels"],"click",(function(t){let i=e.icn3d;i.labelcolor=void 0,i.pickpair=!1;s.setLogCmd("set labels off",!0);for(let e in i.labels)i.labels[e]=[];i.drawCls.draw()})),$(document).on("click","."+e.pre+"mn6_labelscale",(function(t){let i=e.icn3d,n=$(this).attr("v");i.labelScale=n,i.drawCls.draw(),s.setLogCmd("set label scale "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_distanceYes","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_distance","Measure the distance of atoms"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0,s.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distTwoSets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_disttwosets","Measure the distance between two sets"),s.setSetsMenus("atomsCustomDist"),i.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distManySets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_distmanysets","Measure the pairwise distances among many sets"),s.setSetsMenus("atomsCustomDistTable"),i.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_angleManySets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_anglemanysets","Measure the pairwise angles among many sets"),s.setSetsMenus("atomsCustomAngleTable"),i.bMeasureAngle=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distanceNo","click",(function(t){let i=e.icn3d;i.pickpair=!1;s.setLogCmd("set lines off",!0),i.labels.distance=[],i.lines.distance=[],i.distPnts=[],i.pk=2,i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn5_cartoonshape","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_cartoonshape","Draw cartoon for a set");s.setSetsMenus("cartoonshape",!0),i.bCartoonshape=!0})),e.myEventCls.onIds("#"+e.pre+"mn5_linebtwsets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_linebtwsets","Draw a line between two sets"),s.setSetsMenus("linebtwsets"),i.bLinebtwsets=!0})),e.myEventCls.onIds(["#"+e.pre+"mn2_selectedcenter","#"+e.pre+"zoomin_selection","#"+e.pre+"tool_selectedcenter"],"click",(function(t){let i=e.icn3d;i.transformCls.zoominSelection(),i.drawCls.draw(),s.setLogCmd("zoom selection",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_center","click",(function(t){let i=e.icn3d;i.applyCenterCls.centerSelection(),i.drawCls.draw(),s.setLogCmd("center selection",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_resetOrientation","#"+e.pre+"resetOrientation","#"+e.pre+"tool_resetOrientation"],"click",(function(t){let i=e.icn3d;i.transformCls.resetOrientation(),i.drawCls.draw(),s.setLogCmd("reset orientation",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_chemicalbindingshow","#"+e.pre+"chemicalbindingshow"],"click",(function(t){e.icn3d.setOptionCls.setOption("chemicalbinding","show"),s.setLogCmd("set chemicalbinding show",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_chemicalbindinghide","#"+e.pre+"chemicalbindinghide"],"click",(function(t){e.icn3d.setOptionCls.setOption("chemicalbinding","hide"),s.setLogCmd("set chemicalbinding hide",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_sidebyside","click",(function(t){let i=e.icn3d;if(i.bInputfile)return void alert("Side-by-Side does NOT work when the input is from a local file.");let n=i.shareLinkCls.shareLinkUrl(void 0);n=n.replace("icn3d/full.html?","icn3d/full2.html?"),n=n.replace("icn3d/?","icn3d/full2.html?"),n+="&closepopup=1";let l=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(n,l),s.setLogCmd("side by side | "+n,!0)})),$(document).on("click","#"+e.pre+"mn2_translate",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_translate","Translate the X,Y,Z coordinates of the structure")})),$(document).on("click","#"+e.pre+"mn6_angleTwoSets",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_angle","Measure the angle between two vectors")})),$(document).on("click","#"+e.pre+"mn2_matrix",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_matrix","Apply matrix to the X,Y,Z coordinates of the structure")})),$(document).on("click","."+e.pre+"mn6_rotate",(function(t){let i=e.icn3d,n=$(this).attr("v").toLowerCase(),l=n.split(" ")[1];s.setLogCmd(n,!0),i.bStopRotate=!1,i.transformCls.rotateCount=0,i.transformCls.rotateCountMax=6e3,i.ROT_DIR=l,i.resizeCanvasCls.rotStruc(l)})),$(document).on("click","."+e.pre+"mn6_rotate90",(function(t){let i,n=e.icn3d,l=$(this).attr("v").toLowerCase(),r=l.split(" ")[1];s.setLogCmd(l,!0),"x"==r?i=new THREE.Vector3(1,0,0):"y"==r?i=new THREE.Vector3(0,1,0):"z"==r&&(i=new THREE.Vector3(0,0,1));let o=.5*Math.PI;n.transformCls.setRotation(i,o)})),e.myEventCls.onIds("#"+e.pre+"mn6_cameraPers","click",(function(t){e.icn3d.setOptionCls.setOption("camera","perspective"),s.setLogCmd("set camera perspective",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_cameraOrth","click",(function(t){e.icn3d.setOptionCls.setOption("camera","orthographic"),s.setLogCmd("set camera orthographic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdBlack","click",(function(t){e.icn3d.setStyleCls.setBackground("black")})),e.myEventCls.onIds("#"+e.pre+"tool_bkgd","click",(function(t){let s=e.icn3d;"black"==s.opts.background?s.setStyleCls.setBackground("white"):s.setStyleCls.setBackground("black")})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdGrey","click",(function(t){e.icn3d.setStyleCls.setBackground("grey")})),e.myEventCls.onIds(["#"+e.pre+"mn6_bkgdWhite","#"+e.pre+"tool_bkgdWhite"],"click",(function(t){e.icn3d.setStyleCls.setBackground("white")})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdTransparent","click",(function(t){e.icn3d.setStyleCls.setBackground("transparent")})),e.myEventCls.onIds("#"+e.pre+"mn6_showfogYes","click",(function(t){let i=e.icn3d;i.opts.fog="yes",i.fogCls.setFog(!0),i.drawCls.draw(),s.setLogCmd("set fog on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showfogNo","click",(function(t){let i=e.icn3d;i.opts.fog="no",i.fogCls.setFog(!0),i.drawCls.draw(),s.setLogCmd("set fog off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showslabYes","click",(function(t){e.icn3d.setOptionCls.setOption("slab","yes"),s.setLogCmd("set slab on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showslabNo","click",(function(t){e.icn3d.setOptionCls.setOption("slab","no"),s.setLogCmd("set slab off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisYes","click",(function(t){e.icn3d.setOptionCls.setOption("axis","yes"),s.setLogCmd("set axis on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisSel","click",(function(t){let i=e.icn3d;i.pc1=!0,i.axesCls.setPc1Axes(),s.setLogCmd("set pc1 axis",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisNo","click",(function(t){let i=e.icn3d;i.pc1=!1,i.axes=[],i.setOptionCls.setOption("axis","no"),s.setLogCmd("set axis off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_symmetry","click",(async function(t){let s=e.icn3d;s.bAxisOnly=!1,await s.symdCls.retrieveSymmetry(Object.keys(s.structures)[0])})),e.myEventCls.onIds("#"+e.pre+"mn6_symd","click",(async function(t){let i=e.icn3d;i.bAxisOnly=!1,await i.symdCls.retrieveSymd(),i.bSymd=!0,s.setLogCmd("symd symmetry",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_clear_sym","click",(function(t){let i=e.icn3d;i.symdArray=[],i.drawCls.draw(),s.setLogCmd("clear symd symmetry",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_axes_only","click",(function(t){let i=e.icn3d;i.bAxisOnly=!0,i.drawCls.draw(),s.setLogCmd("show axis",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_area","click",(function(t){e.icn3d.analysisCls.calculateArea(),s.setLogCmd("area",!0)})),e.myEventCls.onIds("#"+e.pre+"applysymmetry","click",(function(t){let i=e.icn3d;i.bAxisOnly=!1;let n=$("#"+e.pre+"selectSymmetry").val();i.symmetrytitle="none"===n?void 0:n,i.drawCls.draw(),s.setLogCmd("symmetry "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"clearsymmetry","click",(function(t){let i=e.icn3d;i.symmetrytitle=void 0,i.drawCls.draw(),s.setLogCmd("symmetry none",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_hbondsYes","#"+e.pre+"hbondsYes"],"click",(function(t){let i=e.icn3d;s.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomHbond").length&&$("#"+e.pre+"atomsCustomHbond").html(" "+n),$("#"+e.pre+"atomsCustomHbond2").length&&$("#"+e.pre+"atomsCustomHbond2").html(" "+n),e.htmlCls.dialogCls.openDlg("dl_hbonds","Hydrogen bonds/interactions between two sets of atoms"),i.bHbondCalc=!1,$("#"+e.pre+"atomsCustomHbond").resizable(),$("#"+e.pre+"atomsCustomHbond2").resizable()})),e.myEventCls.onIds(["#"+e.pre+"mn6_contactmap"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_contact","Set contact map")})),e.myEventCls.onIds(["#"+e.pre+"mn6_DSSP"],"click",(async function(t){let i=e.icn3d;s.setLogCmd("set dssp sse",!0),await i.pdbParserCls.applyCommandDssp(),i.bResetAnno=!0,i.bAnnoShown&&(await i.showAnnoCls.showAnnotations(),i.annotationCls.resetAnnoTabAll())})),e.myEventCls.onIds("#"+e.pre+"mn6_hbondsNo","click",(function(t){let s=e.icn3d;s.showInterCls.hideHbondsContacts(),s.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerYes","click",(function(t){let i=e.icn3d;i.threeDPrintCls.addStabilizer(),i.threeDPrintCls.prepareFor3Dprint(),s.setLogCmd("stabilizer",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerNo","click",(function(t){let i=e.icn3d;s.setLogCmd("set stabilizer off",!0),i.threeDPrintCls.hideStabilizer(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerOne","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_stabilizer","Add One Stabilizer"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerRmOne","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_stabilizer_rm","Remove One Stabilizer"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn1_thicknessSet","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_thickness","Set Thickness for 3D Printing")})),e.myEventCls.onIds("#"+e.pre+"mn3_setThickness","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_thickness2","Style Preferences")})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsYes","click",(function(t){let i=e.icn3d;s.setLogCmd("disulfide bonds",!0),i.showInterCls.showSsbonds()})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsExport","click",(function(t){e.icn3d.viewInterPairsCls.exportSsbondPairs(),s.setLogCmd("export disulfide bond pairs",!1)})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsNo","click",(function(t){let i=e.icn3d;i.opts.ssbonds="no";s.setLogCmd("set disulfide bonds off",!0),i.lines.ssbond=[],i.setOptionCls.setStyle("sidec","nothing")})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsYes","click",(function(t){let i=e.icn3d;s.setLogCmd("cross linkage",!0),i.showInterCls.showClbonds()})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsExport","click",(function(t){e.icn3d.viewInterPairsCls.exportClbondPairs(),s.setLogCmd("export cross linkage pairs",!1)})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsNo","click",(function(t){let i=e.icn3d;i.opts.clbonds="no";s.setLogCmd("set cross linkage off",!0),i.lines.clbond=[],i.setOptionCls.setStyle("sidec","nothing")})),$("#"+e.pre+"newvs2").on("submit",(function(){let s=t.saveFileCls.getAtomPDB(t.hAtoms,void 0,void 0,void 0,void 0,void 0,void 0,!0);return $("#"+e.pre+"pdbstr").val(s),!0})),$("#"+e.pre+"fssubmit").on("click",(function(){let e=t.saveFileCls.getAtomPDB(t.hAtoms),s=window.open("","_blank");s.document.body.innerHTML="\n\nLoading Foldseek\n\n\n\n
    Foldseek is loading...
    \n",$.ajax({url:"https://search.foldseek.com/api/ticket",type:"POST",data:{q:e,database:["afdb50","afdb-swissprot","gmgcl_id","pdb100","afdb-proteome","mgnify_esm30"],mode:"3diaa"},dataType:"text",success:function(e){s.location="https://search.foldseek.com/queue/"+JSON.parse(e).id},error:function(e,t,s){console.log("Error in submitting data to Foldseek...")}})})),e.myEventCls.onIds("#"+e.pre+"jn_copy","click",(function(t){e.icn3d;let s=$("#"+e.pre+"jn_commands").val();navigator.clipboard.writeText(s)}))}setLogCmd(e,t,s){var i=this.icn3dui,n=i.icn3d;if(""===e.trim())return!1;let l=e.indexOf("|||");-1!==l&&(e=e.substr(0,l));let r={};if(n.quaternion||(n._zoomFactor=1,n.mouseChange=new THREE.Vector2(0,0),n.quaternion=new THREE.Quaternion(0,0,0,1)),r.factor=n._zoomFactor,r.mouseChange=n.mouseChange,r.quaternion={},r.quaternion._x=parseFloat(n.quaternion._x).toPrecision(5),r.quaternion._y=parseFloat(n.quaternion._y).toPrecision(5),r.quaternion._z=parseFloat(n.quaternion._z).toPrecision(5),r.quaternion._w=parseFloat(n.quaternion._w).toPrecision(5),t&&n.bAddCommands)if(n.STATENUMBER "+n.logs.join("\n> ")+"\n> "),$("#"+i.pre+"logtext")[0]&&$("#"+i.pre+"logtext").scrollTop($("#"+i.pre+"logtext")[0].scrollHeight)}n.setStyleCls.adjustIcon()}}class d{constructor(e){this.icn3dui=e}getLink(e,t,s,i){return this.icn3dui.htmlCls.setHtmlCls.getLink(e,t,s,i)}getMenuText(e,t,s,i,n){return this.icn3dui.htmlCls.setHtmlCls.getMenuText(e,t,s,i,n)}getMenuUrl(e,t,s,i,n){return this.icn3dui.htmlCls.setHtmlCls.getMenuUrl(e,t,s,i,n)}getMenuSep(){return this.icn3dui.htmlCls.setHtmlCls.getMenuSep()}getLinkWrapper(e,t,s,i,n,l){let r=this.icn3dui;return r.icn3d,r.htmlCls.setHtmlCls.getLinkWrapper(e,t,s,i,n,l)}getLinkWrapper2(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.setHtmlCls.getLinkWrapper2(e,t,s,i,n)}getRadio(e,t,s,i,n,l){return this.icn3dui.htmlCls.setHtmlCls.getRadio(e,t,s,i,n,l)}getRadClr(e,t,s,i,n,l,r){return this.icn3dui.htmlCls.setHtmlCls.getRadioColor(e,t,s,i,n,l,r)}setTopMenusHtml(e,t,s){let i=this.icn3dui;if(i.bNode)return"";let n="black"==i.htmlCls.opts.background?i.htmlCls.GREYD:"black",l="";l+="
    ",l+=i.htmlCls.divStr+"popup' class='icn3d-text icn3d-popup'>
    ",l+=this.setReplayHtml(),l+="\x3c!--https://forum.jquery.com/topic/looking-for-a-jquery-horizontal-menu-bar--\x3e",l+=i.htmlCls.divStr+"mnlist' style='position:absolute; z-index:999; float:left; display:table-row; margin-top: -2px;'>",l+="";let r='",l+=r+this.setMenu2()+"",l+=r+this.setMenu2b()+"",l+=r+this.setMenu3()+"",l+=r+this.setMenu4()+"",l+=r+this.setMenu5()+"",l+=r+this.setMenu6()+"",i.htmlCls.shownMenus=i.hashUtilsCls.cloneHash(i.htmlCls.simpleMenus),l+=r+"
    "+t,l+="
    "+s,l+=r+'
    '+i.htmlCls.space2+'Toolbar '+i.htmlCls.space2+'
    ",l+=r+'
    '+i.htmlCls.space2+' ?
    ',l+="
    ",l+="
    ';if(l+=r+this.setMenu1()+"
    ",l+="",l+=this.setTools(),l+=i.htmlCls.divStr+"title' class='icn3d-commandTitle' style='font-size:1.2em; font-weight:normal; position:absolute; z-index:1; float:left; display:table-row; margin: 85px 0px 0px 5px; color:"+n+"; width:"+i.htmlCls.WIDTH+"px'>",l+=i.htmlCls.divStr+"viewer' style='position:relative; width:100%; height:100%; background-color: "+i.htmlCls.GREYD+";'>",l+=i.htmlCls.divStr+"mnLogSection'>",l+="
    ",l+=" ",void 0===i.cfg.mmtfid){let e="top:180px; font-size: 1.8em;";l+=i.htmlCls.divStr+"wait' style='position:absolute; left:50px; "+e+" color: #444444;'>Loading data..."}l+="Your browser does not support WebGL.",(void 0===i.cfg.showcommand||i.cfg.showcommand)&&(l+=this.setLogWindow()),l+="",l+="",l+=i.htmlCls.setDialogCls.setDialogs(),l+=i.htmlCls.setDialogCls.setCustomDialogs(),$("#"+e).html(l),$("accordion").accordion({collapsible:!0,active:!1,heightStyle:"content"}),$("accordion div").removeClass("ui-accordion-content ui-corner-all ui-corner-bottom ui-widget-content"),$(".icn3d-mn-item").menu({position:{my:"left top",at:"right top"}}),$(".icn3d-mn-item").hover((function(){}),(function(){$("accordion").accordion("option","active","none")})),$("#"+i.pre+"accordion1").hover((function(){$("#"+i.pre+"accordion1 div").css("display","block")}),(function(){$("#"+i.pre+"accordion1 div").css("display","none")})),$("#"+i.pre+"accordion2").hover((function(){$("#"+i.pre+"accordion2 div").css("display","block")}),(function(){$("#"+i.pre+"accordion2 div").css("display","none")})),$("#"+i.pre+"accordion2b").hover((function(){$("#"+i.pre+"accordion2b div").css("display","block")}),(function(){$("#"+i.pre+"accordion2b div").css("display","none")})),$("#"+i.pre+"accordion3").hover((function(){$("#"+i.pre+"accordion3 div").css("display","block")}),(function(){$("#"+i.pre+"accordion3 div").css("display","none")})),$("#"+i.pre+"accordion4").hover((function(){$("#"+i.pre+"accordion4 div").css("display","block")}),(function(){$("#"+i.pre+"accordion4 div").css("display","none")})),$("#"+i.pre+"accordion5").hover((function(){$("#"+i.pre+"accordion5 div").css("display","block")}),(function(){$("#"+i.pre+"accordion5 div").css("display","none")})),$("#"+i.pre+"accordion6").hover((function(){$("#"+i.pre+"accordion6 div").css("display","block")}),(function(){$("#"+i.pre+"accordion6 div").css("display","none")}))}setTopMenusHtmlMobile(e,t,s){let i=this.icn3dui;if(i.bNode)return"";let n="black"==i.htmlCls.opts.background?i.htmlCls.GREYD:"black",l="";if(l+="
    ",l+=i.htmlCls.divStr+"popup' class='icn3d-text icn3d-popup'>
    ",l+=this.setReplayHtml(),!i.utilsCls.isMobile()){let e=i.htmlCls.WIDTH-40+5;l+=i.htmlCls.buttonStr+"fullscreen' style='position:absolute; z-index:1999; display:block; padding:0px; margin: 12px 0px 0px "+e+"px; width:30px; height:34px; border-radius:4px; border:none; background-color:#f6f6f6;' title='Full screen'>",l+="",l+="",l+="",l+="",l+=""}l+="\x3c!--https://forum.jquery.com/topic/looking-for-a-jquery-horizontal-menu-bar--\x3e",l+=i.htmlCls.divStr+"mnlist' style='position:absolute; z-index:999; float:left; display:block; margin: 5px 0px 0px 5px;'>",l+="
    ",l+="",i.cfg.notebook?l+="

    ":l+="

    ",l+="
    ";let r="
  • File",l+=this.setMenu1_base(),l+=r+">Select",l+=this.setMenu2_base(),l+=r+">View",l+=this.setMenu2b_base(),l+=r+" id='"+i.pre+"style'>Style",l+=this.setMenu3_base(),l+=r+" id='"+i.pre+"color'>Color",l+=this.setMenu4_base(),l+=r+">Analysis",l+=this.setMenu5_base(),l+=r+">Help",l+=this.setMenu6_base(),i.htmlCls.shownMenus=i.hashUtilsCls.cloneHash(i.htmlCls.simpleMenus),l+="
  • "+t,l+="
    "+s,l+="
  • Alternate",l+="",l+="
  • ",l+="
    ",l+="
    ",l+="",l+=i.htmlCls.divStr+"title' class='icn3d-commandTitle' style='font-size:1.2em; font-weight:normal; position:absolute; z-index:1; float:left; display:block; margin: 12px 0px 0px 40px; color:"+n+"; width:"+(i.htmlCls.WIDTH-40).toString()+"px'>",l+=i.htmlCls.divStr+"viewer' style='position:relative; width:100%; height:100%; background-color: "+i.htmlCls.GREYD+";'>",l+=i.htmlCls.divStr+"mnLogSection'>",l+="
    ",l+="",void 0===i.cfg.mmtfid){let e="top:180px; font-size: 1.8em;";l+=i.htmlCls.divStr+"wait' style='position:absolute; left:50px; "+e+" color: #444444;'>Loading data..."}l+="Your browser does not support WebGL.",(void 0===i.cfg.showcommand||i.cfg.showcommand)&&(l+=this.setLogWindow()),l+="",l+="",l+=i.htmlCls.setDialogCls.setDialogs(),l+=i.htmlCls.setDialogCls.setCustomDialogs(),$("#"+e).html(l),$("accordion").accordion({collapsible:!0,active:!1,heightStyle:"content"}),$("accordion div").removeClass("ui-accordion-content ui-corner-all ui-corner-bottom ui-widget-content"),$(".icn3d-mn-item").menu({position:{my:"left top",at:"right top"}}),$(".icn3d-mn-item").hover((function(){}),(function(){$("accordion").accordion("option","active","none")})),$("#"+i.pre+"accordion0").hover((function(){$("#"+i.pre+"accordion0 div").css("display","block")}),(function(){$("#"+i.pre+"accordion0 div").css("display","none")}))}setReplayHtml(e){let t=this.icn3dui;if(t.bNode)return"";let s="";return s+=t.htmlCls.divStr+"replay' style='display:none; position:absolute; z-index:9999; top:"+parseInt(t.htmlCls.HEIGHT-100).toString()+"px; left:20px;'>",s+="
    ",s+='',s+="",s+='',s+='',s+="",s+="
    ",s+=t.htmlCls.divStr+"replay_menu' style='background-color:#DDDDDD; padding:3px; font-weight:bold;'>",s+=t.htmlCls.divStr+"replay_cmd' style='background-color:#DDDDDD; padding:3px; max-width:250px'>",s+="",s}setTools(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+=e.htmlCls.divStr+"selection' style='display:none;'>
    ",t+="",t+=this.setTools_base(),t+="
    ",t+="
    ",t}setButton(e,t,s,i,n){let l=this.icn3dui;return l.bNode?"":(n=void 0!==n?"color:"+n:"","
    ")}setIcon(e,t,s,i,n,l,r){let o=this.icn3dui;if(o.bNode)return"";let a,d=r?"color:#f8b84e; ":"color:#1c94c4; ",c=" background-color:#EEE; ",h="text"==e?"":"cursor:pointer;";return a=l?'
    '+i+"
    ":'',"link"==e?''+a+"":a}setTools_base(){if(this.icn3dui.bNode)return"";let e="",t="regular",s="",i="";return e+=s+this.setIcon(t,"tool_mmdbafid","Input PDB/MMDB/AlphaFold IDs","id",void 0,!0)+"",e+=s+this.setIcon(t,"tool_pdbfile","Input PDB Files (appendable)","file-alt")+"",e+=s+this.setIcon(t,"tool_sharelink","Get Share Link","link")+"",e+=s+this.setIcon(t,"saveimage","Save iCn3D PNG Image","camera")+"",e+=i+this.setIcon(t,"tool_definedsets","Defined Sets","object-group")+"",e+=s+this.setIcon(t,"tool_aroundsphere","Select by Distance","dot-circle")+"",e+=s+this.setIcon(t,"tool_saveselection","Save Selection as a Set","save")+"",e+=s+this.setIcon(t,"toggleHighlight","Toggle Highlight","highlighter")+"",e+=i+this.setIcon(t,"show_selected","View Selection","eye")+"",e+=s+this.setIcon(t,"tool_selectedcenter","Zoom in Selection","search-plus")+"",e+=s+this.setIcon(t,"alternate","Alternate the Structures by keying the letter 'a'","a",void 0,!0,!0)+"",e+=s+this.setIcon(t,"tool_resetOrientation","Reset Orientation","undo-alt")+"",e+=i+this.setIcon(t,"tool_proteinsRibbon","Style Ribbon for proteins","dna")+"",e+=s+this.setIcon(t,"tool_proteinsSphere","Style Sphere for proteins","volleyball-ball")+"",e+=s+this.setIcon(t,"tool_surfaceVDW","Show Van der Waals Surface","cloud")+"",e+=s+this.setIcon(t,"tool_bkgd","Toggle Background Color","adjust")+"",e+=i+this.setIcon(t,"tool_clrRainbowChain","Color Rainbow for Chains","rainbow")+"",e+=s+this.setIcon(t,"tool_clrSSGreen","Color by Secondary Structures","ring")+"",e+=s+this.setIcon(t,"tool_clrChain","Color by Chains","layer-group")+"",e+=s+this.setIcon(t,"tool_clrAtom","Color by Atoms","atom")+"",e+=i+this.setIcon(t,"tool_selectannotations","Sequences & Annotations","grip-lines")+"",e+=s+this.setIcon(t,"hbondsYes","Interactions","users")+"",e+=s+this.setIcon(t,"tool_delphi","Delphi Potentials","cloud-meatball")+"",e+=s+this.setIcon(t,"removeLabels","Remove Labels","remove-format")+"",e+=i+this.setIcon("link","tool-gallery","Gallery","image","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#gallery")+"",e+=s+this.setIcon("link","tool-video","Videos","file-video","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#videos")+"",e+=s+this.setIcon("link","tool-github","iCn3D GitHub","code","https://github.com/ncbi/icn3d")+"",e+=s+this.setIcon("link","tool-hints","Transform Hints","info-circle","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#useicn3d")+"",e+="",e}setTheme(e){let t,s,i,n,l,r=this.icn3dui;if(r.bNode)return"";r.htmlCls.themecolor=e,"orange"==e?(t="#e78f08",s="#f6a828",i="ui-bg_gloss-wave_35_f6a828_500x100.png",n="ui-icons_ef8c08_256x240.png",l="#eb8f00"):"black"==e?(t="#333333",s="#333333",i="ui-bg_gloss-wave_25_333333_500x100.png",n="ui-icons_222222_256x240.png",l="#222222"):"blue"==e&&(t="#4297d7",s="#5c9ccc",i="ui-bg_gloss-wave_55_5c9ccc_500x100.png",n="ui-icons_228ef1_256x240.png",l="#444"),$(".ui-widget-header").css({border:"1px solid "+t,background:s+' url("https://www.ncbi.nlm.nih.gov/Structure/icn3d/lib/images/'+i+'") 50% 50% repeat-x',color:"#fff","font-weight":"bold"}),$(".ui-button .ui-icon").css({"background-image":"url(https://www.ncbi.nlm.nih.gov/Structure/icn3d/lib/images/"+n+")"}),$(".ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited").css({color:l,"text-decoration":"none"})}setLogWindow(e,t){let s=this.icn3dui;if(s.bNode)return"";let i,n="",l=s.htmlCls.setHtmlCls.getCookie("cmdwindow");return""!=l?(i=void 0!==t?t:parseInt(l),1==i?(s.htmlCls.LOG_HEIGHT=180,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+=""):(s.htmlCls.LOG_HEIGHT=65,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+="")):(i=0,s.htmlCls.LOG_HEIGHT=65,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+=""),e||(n+=""),e&&(s.htmlCls.clickMenuCls.setLogCmd("set cmdwindow "+i,!0),$("#"+s.pre+"cmdlog").html(n)),n}setMenu1(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    File

    ",t+="
    ",t+=this.setMenu1_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu1_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuText("mn1_searchgrooup","Search Structure "+e.htmlCls.wifiStr,void 0,1,1),t+="
        ",t+=this.getMenuUrl("mn1_searchstru","https://www.ncbi.nlm.nih.gov/structure","PDB Structures "+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_proteinname","AlphaFold Structures "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("mn1_afdatabase","https://alphafold.ebi.ac.uk","AlphaFold UniProt Database "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_searchsimilar","Search Similar"+e.htmlCls.wifiStr,void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_vastplus","NCBI VAST+ (PDB Complex)"+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_vast","NCBI VAST (PDB Chain)"+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_foldseek","Foldseek (PDB & AlphaFold)"+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_retrievebyid","Retrieve by ID",void 0,1,1),t+="
        ",t+=this.getLink("mn1_mmdbafid","PDB/MMDB/AlphaFold IDs"+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_mmdbid","NCBI MMDB ID (annotation) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_mmtfid","RCSB BCIF/MMTF ID (fast) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_pdbid","RCSB PDB ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getMenuText("mn1_afwrap","AlphaFold Structures",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_afid","UniProt ID "+e.htmlCls.wifiStr,void 0,3),t+=this.getLink("mn1_refseqid","NCBI Protein Accession "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+=this.getLink("mn1_opmid","OPM PDB ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_mmcifid","RCSB mmCIF ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_cid","PubChem CID/Name/InchI "+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_smiles","Chemical SMILES ",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_openfile","Open File",void 0,1,1),t+="
        ",t+=this.getLink("mn1_pdbfile_app","PDB Files (appendable)",1,2),t+=this.getLink("mn1_mmciffile","mmCIF Files (appendable)",void 0,2),t+=this.getLink("mn1_mol2file","Mol2 File",void 0,2),t+=this.getLink("mn1_sdffile","SDF File",void 0,2),t+=this.getLink("mn1_xyzfile","XYZ File",void 0,2),t+=this.getLink("mn1_afmapfile","AlphaFold PAE File",void 0,2),t+=this.getLink("mn1_urlfile","URL(CORS) "+e.htmlCls.wifiStr,void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_pngimage","iCn3D PNG (appendable)",1,2),t+=this.getLink("mn1_state","State/Script File",void 0,2),t+=this.getLink("mn1_fixedversion","Share Link in Archived Ver. "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_selection","Selection File",void 0,2),t+=this.getLink("mn1_collection","Collection File",void 0,2),t+=this.getMenuSep(),t+=this.getMenuText("mn1_dsn6wrap","Electron Density",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_dsn6","Local File",void 0,3),t+=this.getLink("mn1_dsn6url","URL(CORS) "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+="

      • ",t+="
      ",t+="",t+=this.getMenuText("mn1_fold","Predict by Seq.",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_esmfold","ESMFold",void 0,2),t+=this.getLink("mn1_alphafold","AlphaFold2 via ColabFold"+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=this.getMenuText("mn1_alignwrap","Align",void 0,1,1),t+="
        ",t+=this.getMenuText("mn1_chainalignwrap","Multiple Chains",void 0,1,2),t+="
          ",t+=this.getRadio("mn1_chainalignRad","mn1_chainalign","by Structure Alignment "+e.htmlCls.wifiStr,void 0,1,3),t+=this.getRadio("mn1_chainalignRad","mn1_chainalign2","by Sequence Alignment "+e.htmlCls.wifiStr,void 0,1,3),t+=this.getRadio("mn1_chainalignRad","mn1_chainalign3","Residue by Residue",void 0,void 0,3),t+="
        ",t+="",t+=this.getMenuText("mn1_aligntwostru","Protein Complexes",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_align","Two PDB Structures "+e.htmlCls.wifiStr,void 0,3),t+=this.getLink("mn1_alignaf","Two AlphaFold Structures "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+=this.getLink("mn1_blast_rep_id","Sequence to Structure",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_realignWrap","Realign Selection",void 0,void 0,1),t+="
        ",t+=this.getMenuText("mn2_chainrealignwrap","Multiple Chains",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn2_realign","mn2_realignonstruct","by Structure Alignment "+e.htmlCls.wifiStr,void 0,void 0,3),t+=this.getRadio("mn2_realign","mn2_realignonseqalign","by Sequence Alignment "+e.htmlCls.wifiStr,void 0,void 0,3),t+=this.getRadio("mn2_realign","mn2_realignresbyres","Residue by Residue",void 0,void 0,3),t+="
        ",t+=this.getLink("mn2_realigntwostru","Protein Complexes",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_3dpprint","3D Printing",void 0,1,1),t+="
        ",void 0===e.cfg.cid?(t+=this.getLink("mn1_exportVrmlStab","WRL/VRML(Color, W/ Stab.)",1,2),t+=this.getLink("mn1_exportStlStab","STL(W/ Stabilizers)",1,2),t+=this.getMenuSep(),t+=this.getLink("mn1_exportVrml","WRL/VRML(Color)",void 0,2),t+=this.getLink("mn1_exportStl","STL",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_stabilizerYes","Add All Stabilizers",void 0,2),t+=this.getLink("mn1_stabilizerNo","Remove All Stabilizers",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_stabilizerOne","Add One Stabilizer",void 0,2),t+=this.getLink("mn1_stabilizerRmOne","Remove One Stabilizer",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_thicknessSet","Set Thickness",void 0,2)):(t+=this.getLink("mn1_exportVrml","VRML(Color)",1,2),t+=this.getLink("mn1_exportStl","STL",1,2)),t+="
      ",t+="",t+=this.getMenuText("mn1_savefile","Save File",void 0,1,1),t+="
        ",t+=this.getMenuText("mn1_savepngimage","iCn3D PNG Image",void 0,1,2),t+="
          ",t+=this.getLink("mn1_exportCanvas","Original Size & HTML",1,3),t+=this.getLink("mn1_exportCanvas1","Original Size",void 0,3),t+=this.getLink("mn1_exportCanvas2","2X Large",void 0,3),t+=this.getLink("mn1_exportCanvas4","4X Large",void 0,3),t+=this.getLink("mn1_exportCanvas8","8X Large",void 0,3),t+="
        ",t+="",t+=this.getLink("mn1_exportState","State File",void 0,2),t+=this.getLink("mn1_exportSelections","Selection File",void 0,2),t+=this.getLink("mn1_exportSelDetails","Selection Details",void 0,2),t+=this.getLink("mn1_exportCounts","Residue Counts",void 0,2),t+=this.getLink("mn1_exportPdbRes","PDB",1,2),t+=this.getLink("profixpdb","PDB with Missing Atoms",void 0,2),void 0===e.cfg.cid&&(t+=this.getLink("mn1_exportSecondary","Secondary Structure",void 0,2)),t+=this.getMenuText("m1_exportrefnum","Reference Numbers",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_exportIgstrand","Ig Strand",void 0,3),t+=this.getLink("mn1_exportKabat","Kabat",void 0,3),t+=this.getLink("mn1_exportImgt","IMGT",void 0,3),t+="
        ",t+="

      • ",t+="
      ",t+="",t+=this.getLink("mn1_sharelink","Share Link "+e.htmlCls.wifiStr,1,1),t+=this.getLink("mn1_replayon","Replay Each Step",void 0,1),t+=this.getMenuSep(),t+=this.getMenuText("mn1_menuwrap","Customize Menus",void 0,1,1),t+="
        ",t+=this.getLink("mn1_menuall","All Menus",1,2),t+=this.getLink("mn1_menusimple","Simple Menus",1,2),t+=this.getMenuSep(),t+=this.getLink("mn1_menupref","Preferences",1,2),t+=this.getLink("mn1_menuloadpref","Load Preferences",1,2),t+="
      ",t+="",t+="

    • ",t+="
    ",t}setMenu2(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Select

    ",t+="
    ",t+=this.setMenu2_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu2_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getLink("mn2_definedsets","Defined Sets",1,1),t+=this.getLink("mn2_selectall","All",void 0,1),t+=this.getLink("mn2_selectdisplayed","Displayed Set",void 0,1),t+=this.getLink("mn2_aroundsphere","by Distance",1,1),t+=this.getMenuText("mn2_selbyprop","by Property",void 0,void 0,1),t+="
        ",t+=this.getLink("mn2_propPos","Positive",void 0,2),t+=this.getLink("mn2_propNeg","Negative",void 0,2),t+=this.getLink("mn2_propHydro","Hydrophobic",void 0,2),t+=this.getLink("mn2_propPolar","Polar",void 0,2),t+=this.getLink("mn2_propBfactor","B-factor/pLDDT",void 0,2),t+=this.getLink("mn2_propSolAcc","Solvent Accessibility",void 0,2),t+="
      ",t+="",t+=this.getLink("mn2_selectcomplement","Inverse",void 0,1),t+=this.getLink("mn2_selectmainchains","Main Chains",void 0,1),t+=this.getLink("mn2_selectsidechains","Side Chains",void 0,1),t+=this.getLink("mn2_selectmainsidechains","Main & Side Chains",void 0,1),t+=this.getLink("mn2_command","Advanced",void 0,1),void 0===e.cfg.cid?(t+=this.getMenuText("mn2_selon3d","Select on 3D",void 0,1,1),t+="
        ",t+='
      • "Alt"+Click: start selection
      • ',t+='
      • "Ctrl"+Click: union selection
      • ',t+='
      • "Shift"+Click: range Selection
      • ',t+=this.getMenuSep(),t+=this.getRadio("mn2_pk","mn2_pkChain","Chain",void 0,1,2),void 0===e.cfg.mmdbid&&void 0===e.cfg.gi||(t+=this.getRadio("mn2_pk","mn2_pkDomain","3D Domain",void 0,void 0,2)),t+=this.getRadio("mn2_pk","mn2_pkStrand","Strand/Helix",void 0,void 0,2),t+=this.getRadio("mn2_pk","mn2_pkResidue","Residue",!0,1,2),t+=this.getRadio("mn2_pk","mn2_pkYes","Atom",void 0,1,2),t+=this.getRadio("mn2_pk","mn2_pkNo","None",void 0,void 0,2),t+="
      ",t+=""):e.utilsCls.isMobile()?t+="
    • Touch to pick
    • ":t+='
    • Picking with
      "Alt" + Click
    • ',t+=this.getMenuSep(),t+=this.getLink("mn2_saveselection","Save Selection",1,1),t+=this.getLink("clearall","Clear Selection",void 0,1),t+=this.getLink("mn2_saveresidue","Save Res. in Sel.",1,1),t+=this.getMenuSep(),t+=this.getMenuText("mn2_hlcolor","Highlight Color",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_hl_clr","mn2_hl_clrYellow","Yellow",!0,void 0,2),t+=this.getRadio("mn2_hl_clr","mn2_hl_clrGreen","Green",void 0,void 0,2),t+=this.getRadio("mn2_hl_clr","mn2_hl_clrRed","Red",void 0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_hlstyle","Highlight Style",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_hl_style","mn2_hl_styleOutline","Outline",!0,void 0,2),t+=this.getRadio("mn2_hl_style","mn2_hl_styleObject","3D Objects",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("toggleHighlight2","Toggle Highlight",1,1),t+="

    • ",t+="
    ",t}setMenu2b(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    View

    ",t+="
    ",t+=this.setMenu2b_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu2b_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getLink("mn2_show_selected","View Selection",1,1),t+=this.getLink("mn2_hide_selected","Hide Selection",1,1),t+=this.getLink("mn2_selectedcenter","Zoom in Selection",1,1),t+=this.getLink("mn6_center","Center Selection",1,1),t+=this.getLink("mn2_fullstru","View Full Structure"),t+=this.getLinkWrapper("mn2_alternate",'Alternate(Key "a")',"mn2_alternateWrap",void 0,1),void 0!==e.cfg.opmid?t+=this.getLinkWrapper("togglemem","Toggle Membrane","togglememli",void 0,1):void 0===e.cfg.cid&&(t+=this.getLinkWrapper("togglemem","Toggle Membrane","togglememli",void 0,1,!0)),void 0!==e.cfg.opmid&&(t+=this.getLinkWrapper("adjustmem","Adjust Membrane","adjustmemli",void 0,1),t+=this.getLinkWrapper("selectplane","Select between
      Two X-Y Planes","selectplaneli",void 0,1)),t+=this.getMenuSep(),t+=this.getMenuText("mn2_vrarhints","VR & AR Hints",void 0,1,1),t+="
        ",t+=this.getMenuUrl("vrhint",e.htmlCls.baseUrl+"icn3d/icn3d.html#vr","VR: VR Headsets",1,2),t+=this.getMenuUrl("arhint",e.htmlCls.baseUrl+"icn3d/icn3d.html#ar","AR: Chrome in Android",1,2),t+="
      ",t+="",t+=this.getLink("mn6_sidebyside","Side by Side",1,1),t+=this.getMenuText("mn2_rotate","Rotate",void 0,1,1),t+="
        ",t+=this.getMenuText("mn2_rotate90","Rotate 90°",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn6_rotate90","mn6_rotatex","rotate x",void 0,void 0,2),t+=this.getRadio("mn6_rotate90","mn6_rotatey","rotate y",void 0,void 0,2),t+=this.getRadio("mn6_rotate90","mn6_rotatez","rotate z",void 0,void 0,2),t+="
        ",t+="",t+=this.getMenuText("mn2_rotateauto","Auto Rotation",void 0,1,2),t+="
          ",t+=this.getRadio("mn6_rotate","mn6_rotateleft","Rotate Left",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotateright","Rotate Right",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotateup","Rotate Up",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotatedown","Rotate Down",void 0,1,3),t+="
        ",t+="",t+="
      ",t+="",t+=this.getLink("mn2_translate","Translate XYZ",void 0,1),t+=this.getLink("mn2_matrix","Rotate with Matrix",void 0,1),t+=this.getMenuText("mn2_camera","Camera",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_camera","mn6_cameraPers","Perspective",!0,void 0,2),t+=this.getRadio("mn6_camera","mn6_cameraOrth","Orthographic",void 0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_fog","Fog for Selection",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showfog","mn6_showfogYes","On",void 0,void 0,2),t+=this.getRadio("mn6_showfog","mn6_showfogNo","Off",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_slab","Slab for Selection",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showslab","mn6_showslabYes","On",void 0,void 0,2),t+=this.getRadio("mn6_showslab","mn6_showslabNo","Off",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_axes","XYZ-axes",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showaxis","mn6_showaxisYes","Original",void 0,void 0,2),t+=this.getRadio("mn6_showaxis","mn6_showaxisSel","Prin. Axes on Sel.",void 0,void 0,2),t+=this.getRadio("mn6_showaxis","mn6_showaxisNo","Hide",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuSep(),t+=this.getMenuText("mn2_resetwrap","Reset",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_reset","reset","All",void 0,1,2),t+=this.getRadio("mn6_reset","mn6_resetOrientation","Orientation",void 0,1,2),t+="
      ",t+="",t+=this.getLink("mn6_back","Undo",void 0,1),t+=this.getLink("mn6_forward","Redo",void 0,1),t+=this.getLink("mn6_fullscreen","Full Screen",void 0,1),t+="

    • ",t+="
    ",t}setMenu3(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Style

    ",t+="
    ",t+=this.setMenu3_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu3_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";t+="
      ",void 0===e.cfg.cid&&(t+=this.getMenuText("mn3_proteinwrap","Proteins",void 0,1,1),t+="
        ",void 0!==e.cfg.align||void 0!==e.cfg.chainalign?t+=this.getRadio("mn3_proteins","mn3_proteinsRibbon","Ribbon",void 0,1,2):t+=this.getRadio("mn3_proteins","mn3_proteinsRibbon","Ribbon",!0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsStrand","Strand",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsCylinder","Cylinder and Plate",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsSchematic","Schematic",void 0,1,2),void 0!==e.cfg.align||void 0!==e.cfg.chainalign?t+=this.getRadio("mn3_proteins","mn3_proteinsCalpha","C Alpha Trace",!0,1,2):t+=this.getRadio("mn3_proteins","mn3_proteinsCalpha","C Alpha Trace",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBackbone","Backbone",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBfactor","B-factor Tube",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsLines","Lines",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsStick","Stick",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_sidecwrap","Side Chains",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_sidec","mn3_sidecLines","Lines",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecStick","Stick",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecNo","Hide",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_nuclwrap","Nucleotides",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_nucl","mn3_nuclCartoon","Cartoon",!0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclPhos","O3' Trace",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclBackbone","Backbone",void 0,void 0,2),t+=this.getRadio("mn3_nucl","mn3_nuclSchematic","Schematic",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclLines","Lines",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclStick","Stick",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_ntbasewrap","Nucl. Bases",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_ntbase","mn3_ntbaseLines","Lines",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseStick","Stick",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseNo","Hide",!0,1,2),t+="
      ",t+=""),t+=this.getMenuText("mn3_ligwrap","Chemicals",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_lig","mn3_ligLines","Lines",void 0,1,2),void 0===e.cfg.cid?(t+=this.getRadio("mn3_lig","mn3_ligStick","Stick",!0,1,2),t+=this.getRadio("mn3_lig","mn3_ligBallstick","Ball and Stick",void 0,1,2)):(t+=this.getRadio("mn3_lig","mn3_ligStick","Stick",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligBallstick","BalHydrogensl and Stick",!0,1,2)),t+=this.getRadio("mn3_lig","mn3_ligSchematic","Schematic",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_hydrogenswrap","Hydrogens",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_hydrogens","mn3_hydrogensYes","Show",!0,1,2),t+=this.getRadio("mn3_hydrogens","mn3_hydrogensNo","Hide",void 0,1,2),t+="
      ",t+="",void 0===e.cfg.cid&&(t+=this.getMenuText("mn3_glycanwrap","Glycans",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn3_glycansCart","mn3_glycansCartYes","Show Cartoon",void 0,void 0,2),t+=this.getRadio("mn3_glycansCart","mn3_glycansCartNo","Hide Cartoon",!0,void 0,2),t+="
      ",t+=""),t+=this.getMenuText("mn3_ionswrap","Ions",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_ions","mn3_ionsSphere","Sphere",!0,1,2),t+=this.getRadio("mn3_ions","mn3_ionsDot","Dot",void 0,1,2),t+=this.getRadio("mn3_ions","mn3_ionsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_waterwrap","Water",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_water","mn3_waterSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_water","mn3_waterDot","Dot",void 0,1,2),t+=this.getRadio("mn3_water","mn3_waterNo","Hide",!0,1,2),t+="
      ",t+="",void 0===e.cfg.cid&&(t+=this.getMenuText("mn2_clashedwrap","Clashed Residues",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_clashed","mn2_clashedYes","Show",!0,void 0,2),t+=this.getRadio("mn2_clashed","mn2_clashedNo","Hide",void 0,void 0,2),t+="
      ",t+=""),t+=this.getLink("mn3_setThickness","Preferences",void 0,1),t+=this.getMenuSep(),t+=this.getLink("mn3_styleSave","Save Style",void 0,2),t+=this.getLink("mn3_styleApplySave","Apply Saved Style",void 0,2),t+=this.getMenuSep(),t+=this.getMenuText("mn5_surfacewrap","Surface Type",void 0,1,1),t+="
        ",t+=this.getRadio("mn5_surface","mn5_surfaceVDW","Van der Waals",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceVDWContext","VDW with Context",void 0,void 0,2),t+=this.getRadio("mn5_surface","mn5_surfaceMolecular","Molecular Surface",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceMolecularContext","MS with Context",void 0,void 0,2),t+=this.getRadio("mn5_surface","mn5_surfaceSAS","Solvent Accessible",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceSASContext","SA with Context",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn5_surfaceNo","Remove Surface",1,1),t+=this.getMenuText("mn5_surfaceop","Surface Opacity",void 0,1,1),t+="
        ",t+=this.getMenuText("mn5_surfaceopfast","Fast Transparency",void 0,1,2),t+="
          ",t+=this.getRadio("mn5_opacity","mn5_opacity10","1.0",!0,1,3);for(let e=9;e>0;--e)t+=this.getRadio("mn5_opacity","mn5_opacity0"+e,"0."+e,1,3);t+="
        ",t+="",t+=this.getMenuText("mn5_surfaceopslow","Slow Transparency",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn5_opacityslow","mn5_opacityslow10","1.0",!0,void 0,3);for(let e=9;e>0;--e)t+=this.getRadio("mn5_opacityslow","mn5_opacityslow0"+e,"0."+e,void 0,void 0,3);return t+="
        ",t+="",t+="
      ",t+=this.getMenuText("mn5_wireframewrap","Surface Wireframe",void 0,1,1),t+="
        ",t+=this.getRadio("mn5_wireframe","mn5_wireframeYes","Yes",void 0,1,2),t+=this.getRadio("mn5_wireframe","mn5_wireframeNo","No",!0,1,2),t+="
      ",t+="",t+=this.getMenuSep(),t+=this.getLink("mn5_cartoonshape","Cartoon for a Set",void 0,1),t+=this.getLink("mn5_linebtwsets","Line btw. Two Sets",void 0,1),void 0===e.cfg.cid&&void 0===e.cfg.align&&void 0===e.cfg.chainalign&&void 0===e.cfg.mmdbaf&&(t+=this.getMenuSep(),t+=this.getLinkWrapper2("mn5_map","Electron Density","mapWrapper1",void 0,1),t+="
        ",t+=this.getLink("mn5_elecmap2fofc","2Fo-Fc Map",void 0,2),t+=this.getLink("mn5_elecmapfofc","Fo-Fc Map",void 0,2),t+=this.getLinkWrapper("mn5_elecmapNo","Remove Map","mapWrapper2",void 0,2),t+="
      ",t+="",t+=this.getLinkWrapper2("mn5_map3","Map Wireframe","mapWrapper3",void 0,1),t+="
        ",t+=this.getRadio("mn5_mapwireframe","mn5_mapwireframeYes","Yes",!0,void 0,2),t+=this.getRadio("mn5_mapwireframe","mn5_mapwireframeNo","No",void 0,void 0,2),t+="
      ",t+="",void 0===e.cfg.mmtfid&&(t+=this.getLinkWrapper("mn5_emmap","EM Density Map","emmapWrapper1",void 0,1),t+=this.getLinkWrapper("mn5_emmapNo","Remove EM Map","emmapWrapper2",void 0,1),t+=this.getLinkWrapper2("mn5_emmap3","EM Map Wireframe","emmapWrapper3",void 0,1),t+="
        ",t+=this.getRadio("mn5_emmapwireframe","mn5_emmapwireframeYes","Yes",!0,void 0,2),t+=this.getRadio("mn5_emmapwireframe","mn5_emmapwireframeNo","No",void 0,void 0,2),t+="
      ",t+="")),t+=this.getMenuSep(),t+=this.getMenuText("mn6_bkgdwrap","Background",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_bkgd","mn6_bkgdTransparent","Transparent",void 0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdBlack","Black",!0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdGrey","Gray",void 0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdWhite","White",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_themewrap","Dialog Color",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_theme","mn6_themeBlue","Blue",!0,void 0,2),t+=this.getRadio("mn6_theme","mn6_themeOrange","Orange",void 0,void 0,2),t+=this.getRadio("mn6_theme","mn6_themeBlack","Black",void 0,void 0,2),t+="
      ",t+="",t+="

    • ",t+="
    ",t}setMenu4(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Color

    ",t+="
    ",t+=this.setMenu4_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu4_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuText("mn4_clrwrap","Unicolor","icn3d-menupd",1,1),t+="
        ",t+=this.getMenuText("uniclrRedwrap","Red",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrRed1","Red","F00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed2","Indian Red","CD5C5C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed3","Light Coral","F08080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed4","Salmon","FA8072",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed5","Dark Salmon","E9967A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed6","Light Salmon","FFA07A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed7","Crimson","DC143C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed8","Fire Brick","B22222",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed9","Dark Red","8B0000",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrPinkwrap","Pink",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrPink1","Pink","FFC0CB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink2","Light Pink","FFB6C1",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink3","Hot Pink","FF69B4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink4","Deep Pink","FF1493",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink5","Medium Violet Red","C71585",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink6","Pale Violet Red","DB7093",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrOrangewrap","Orange",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrOran1","Orange","FFA500",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran2","Dark Orange","FF8C00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran3","Orange Red","FF4500",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran4","Tomato","FF6347",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran5","Coral","FF7F50",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran6","Light Salmon","FFA07A",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrYellowwrap","Yellow",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrYllw1","Yellow","FF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw2","Gold","FFD700",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw3","Light Yellow","FFFFE0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw4","Lemon Chiffon","FFFACD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw5","Light Golden Rod","FAFAD2",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw6","Papaya Whip","FFEFD5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw7","Moccasin","FFE4B5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw8","Peach Puff","FFDAB9",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw9","Pale Golden Rod","EEE8AA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw10","Khaki","F0E68C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw11","Dark Khaki","BDB76B",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrMagentawrap","Magenta",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrMgnt1","Magenta","F0F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt2","Orchid","DA70D6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt3","Violet","EE82EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt4","Plum","DDA0DD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt5","Thistle","D8BFD8",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt6","Lavender","E6E6FA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt7","Medium Orchid","BA55D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt8","Medium Purple","9370DB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt9","Rebecca Purple","663399",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt10","Blue Violet","8A2BE2",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt11","Dark Violet","9400D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt12","Dark Orchid","9932CC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt13","Dark Magenta","8B008B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt14","Purple","800080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt15","Indigo","4B0082",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt16","Slat Blue","6A5ACD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt17","Dark Slate Blue","483D8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt18","Medium Slat Blue","6A5ACD",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrGreenwrap","Green",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrGrn1","Green","0F0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn2","Dark Green","006400",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn3","Yellow Green","9ACD32",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn4","Olive Drab","6B8E23",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn5","Olive","808000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn6","Dark Olive Green","556B2F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn7","Medium Aquamarine","66CDAA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn8","Dark Sea Green","8FBC8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn9","Lignt Sea Green","20B2AA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn10","Dark Cyan","008B8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn11","Teal","008080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn12","Forest Green","228B22",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn13","Sea Green","2E8B57",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn14","Medium Sea Green","3CB371",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn15","Spring Green","00FF7F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn16","Medium Spring","00FA9A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn17","Light Green","90EE90",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn18","Pale Green","98FB98",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn19","Lime Green","32CD32",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn20","Lawn Green","7CFC00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn21","Chartreuse","7FFF00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn22","Green Yellow","ADFF2F",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrCyanwrap","Cyan",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrCyan1","Cyan","0FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan2","Light Cyan","E0FFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan3","Pale Turquoise","AFEEEE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan4","Aquamarine","7FFFD4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan5","Turquoise","40E0D0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan6","Medium Turquoise","48D1CC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan7","Dark Turquoise","00CED1",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrBluewrap","Blue",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrBlue1","Blue","00F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue2","Medium Blue","0000CD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue3","Dark Blue","00008B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue4","Navy","000080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue5","Midnight Blue","191970",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue6","Royal Blue","4169E1",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue7","Medium Slate Blue","7B68EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue8","Corn Flower Blue","6495ED",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue9","Dodger Blue","1E90FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue10","Deep Sky Blue","00BFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue11","Light Sky Blue","87CEFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue12","Sky Blue","87CEEB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue13","Light Blue","ADD8E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue14","Powder Blue","B0E0E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue15","Light Steel Blue","B0C4DE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue16","Steel Blue","4682B4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue17","Cadet Blue","5F9EA0",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrBrownwrap","Brown",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrBrown1","Brown","A52A2A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown2","Maroon","800000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown3","Sienna","A0522D",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown4","Saddle Brown","8B4513",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown5","Chocolate","D2691E",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown6","Peru","CD853F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown7","Dark Golden Rod","B8860B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown8","Golden Rod","DAA520",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown9","Sandy Brown","F4A460",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown10","Rosy Brown","BC8F8F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown11","Tan","D2B48C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown12","Burlywood","DEB887",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown13","Wheat","F5DEB3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown14","Navajo White","FFDEAD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown15","Bisque","FFE4C4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown16","Blanched Almond","FFEBCD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown17","Corn Silk","FFF8DC",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrWhitewrap","White",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrWhite1","White","FFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite2","Snow","FFFAFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite3","Honey Dew","F0FFF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite4","Mint Cream","F5FFFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite5","Azure","F0FFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite6","Alice Blue","F0F8FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite7","Ghost White","F8F8FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite8","White Smoke","F5F5F5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite9","Sea Shell","FFF5EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite10","Beige","F5F5DC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite11","Old Lace","FDF5E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite12","Floral White","FFFAF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite13","Ivory","FFFFF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite14","Antique White","FAEBD7",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite15","Linen","FAF0E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite16","Lavenderblush","FFF0F5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite17","Misty Rose","FFE4E1",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrGraywrap","Gray",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrGray1","Gray","808080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray2","Dim Gray","696969",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray3","Light Slate Gray","778899",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray4","Slate Gray","708090",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray5","Dark Slate Gray","2F4F4F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray6","Black","000000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray7","Dark Gray","A9A9A9",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray8","Silver","C0C0C0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray9","Light Gray","D3D3D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray10","Gainsboro","DCDCDC",void 0,1,3),t+="
        ",t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrCustom","Color Picker",void 0,void 0,1),t+=this.getMenuSep(),void 0===e.cfg.cid?(t+=this.getMenuText("mn4_clrRainbowwrap","Rainbow (R-V)","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrRainbow","for Selection",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowChain","for Chains",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowSets","for Sets",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowAcrossSets","across Sets",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrSpectrumwrap","Spectrum (V-R)","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrSpectrum","for Selection",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumChain","for Chains",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumSets","for Sets",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumAcrossSets","across Sets",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrSSwrap","Secondary","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrSSGreen","Sheet in Green",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSSYellow","Sheet in Yellow",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSSSpectrum","Spectrum",void 0,void 0,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrCharge","Charge",void 0,1,1),t+=this.getMenuText("mn4_hydrophobicwrap","Hydrophobicity","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrNormalizedHP","Normalized",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrHydrophobic","Wimley-White",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrBfactorwrap","B-factor","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrBfactor","Original",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrBfactorNorm","Percentile",void 0,1,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrArea",'Solvent
      Accessibility',void 0,void 0,1),t+=this.getRadio("mn4_clr","mn4_clrStructure","Structure",void 0,1,1),void 0!==e.cfg.align||void 0!==e.cfg.chainalign||void 0!==e.cfg.blast_rep_id?t+=this.getRadio("mn4_clr","mn4_clrChain","Chain",void 0,1,1):t+=this.getRadio("mn4_clr","mn4_clrChain","Chain",!0,1,1),t+=this.getRadio("mn4_clr","mn4_clrdomain","3D Domain",void 0,void 0,1),void 0===e.cfg.cid&&(t+=this.getMenuText("mn4_clrsetswrap","Defined Sets","icn3d-menupd",void 0,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrsets",'Rainbow for Selected Sets
        in "Analysis > Defined Sets"',void 0,void 0,2),t+="
      ",t+=""),t+=this.getMenuText("mn4_clrResiduewrap","Residue","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrResidue","Default",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrResidueCustom","Custom",void 0,void 0,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrAtom","Atom",void 0,1,1),void 0!==e.cfg.align||void 0!==e.cfg.chainalign?(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",!0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",void 0,void 0,2)):void 0!==e.cfg.blast_rep_id?(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",!0,void 0,2)):(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",void 0,void 0,2)),t+=this.getRadio("mn4_clr","mn4_clrConfidence","pLDDT",void 0,1,1),t+=this.getRadio("mn4_clr","mn4_clrIgstrand","Ig Strand",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrIgproto","Ig Protodomain",void 0,void 0,2)):t+=this.getRadio("mn4_clr","mn4_clrAtom","Atom",!0,1,1),t+=this.getMenuSep(),t+=this.getLink("mn4_clrSave","Save Color",void 0,1),t+=this.getLink("mn4_clrApplySave","Apply Saved Color",void 0,1),t+="

    • ",t+="
    ",t}setMenu5(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

     Analysis

    ",t+="
    ",t+=this.setMenu5_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu5_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";t+="
      ",void 0===e.cfg.cid&&(t+=this.getLink("mn6_selectannotations","Seq. & Annotations "+e.htmlCls.wifiStr,1,1),t+=this.getLink("mn2_alignment","Aligned Seq. "+e.htmlCls.wifiStr,void 0,1),void 0===e.cfg.mmdbid&&void 0===e.cfg.gi&&void 0===e.cfg.blast_rep_id&&void 0===e.cfg.align&&void 0===e.cfg.chainalign||(t+=this.getLink("mn2_2ddgm","2D Diagram "+e.htmlCls.wifiStr,1,1)),t+=this.getMenuText("2dctnwrap","2D Cartoon",void 0,void 0,1),t+="
        ",t+=this.getLink("2dctn_chain","Chain Level",void 0,2),t+=this.getLink("2dctn_domain","Domain Level",void 0,2),t+=this.getLink("2dctn_secondary","Helix/Sheet Level",void 0,2),t+="
      ",t+="",t+=this.getLink("definedsets2","Defined Sets",1,1),t+=this.getMenuSep(),t+=this.getLink("mn6_hbondsYes","Interactions",1,1),t+=this.getMenuText("mn1_window","Bring to Front",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_window_table","Interaction Table",void 0,2),t+=this.getLink("mn1_window_linegraph","2D Interaction Network",void 0,2),t+=this.getLink("mn1_window_scatterplot","2D Interaction Map",void 0,2),t+=this.getLink("mn1_window_graph","2D Graph(Force-Directed)",void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_contactmap","Contact Map",void 0,1),t+=this.getLink("mn1_mutation","Mutation "+e.htmlCls.wifiStr,1,1)),e.cfg.hidelicense||(t+=this.getMenuText("mn1_delphiwrap","DelPhi Potential",void 0,1,1),t+="
        ",t+=this.getLink("mn1_delphi","DelPhi Potential "+e.htmlCls.licenseStr,1,2),t+=this.getMenuText("mn1_phiwrap","Load PQR/Phi",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_phi","Local PQR/Phi/Cube File",void 0,3),t+=this.getLink("mn1_phiurl","URL PQR/Phi/Cube File",void 0,3),t+="
        ",t+="",t+=this.getLink("delphipqr","Download PQR",void 0,2),t+="
      ",t+=""),t+=this.getMenuSep(),t+=this.getMenuText("mn6_distancewrap","Distance",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_distance","mn6_distanceYes","between Two Atoms",void 0,1,2),t+=this.getRadio("mn6_distance","mn6_distTwoSets","between Two Sets",void 0,void 0,2),t+=this.getRadio("mn6_distance","mn6_distManySets","among Many Sets",void 0,void 0,2),t+=this.getRadio("mn6_distance","mn6_distanceNo","Hide",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_anglewrap","Angle",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_angle","mn6_angleManySets","among Many Sets",void 0,1,2),t+=this.getRadio("mn6_angle","mn6_angleTwoSets","b/w Two Vectors",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_area","Surface Area",1,1),t+=this.getMenuText("mn6_addlabelwrap","Label",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_addlabel","mn6_addlabelYes","by Picking Atoms",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelSelection","per Selection",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelAtoms","per Atom",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelElements","per Atom Element",void 0,1,2),void 0===e.cfg.cid&&(t+=this.getRadio("mn6_addlabel","mn6_addlabelResidues","per Residue",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelResnum","per Residue & Number",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelRefnum","per Reference Number",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelIg","per Ig Domain",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelChains","per Chain",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelTermini","N- & C-Termini",void 0,1,2)),t+=this.getMenuSep(),t+=this.getRadio("mn6_addlabel","mn6_labelColor","Change Label Color",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelNo","Remove",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("labelscalewrap","Label Scale",void 0,1,1),t+="
        ";for(let e=1;e<=4;++e){let s=2*e;t+=this.getRadio("mn6_labelscale","mn6_labelscale0"+s,"0."+s,void 0,1,2)}for(let e=2;e<=10;++e){let s=(e/2).toFixed(1);t+=2==e?this.getRadio("mn6_labelscale","mn6_labelscale"+e+"0",s,!0,1,2):this.getRadio("mn6_labelscale","mn6_labelscale"+e+"0",s,void 0,1,2)}if(t+="
      ",t+="",t+=this.getMenuSep(),void 0===e.cfg.cid){t+=this.getMenuText("mn6_chemicalbindingwrap","Chem. Binding",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_chemicalbinding","mn6_chemicalbindingshow","Show",void 0,void 0,2),t+=this.getRadio("mn6_chemicalbinding","mn6_chemicalbindinghide","Hide",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn6_ssbondswrap","Disulfide Bonds",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_ssbonds","mn6_ssbondsYes","Show",!0,1,2),t+=this.getRadio("mn6_ssbonds","mn6_ssbondsExport","Export Pairs",void 0,void 0,2),t+=this.getRadio("mn6_ssbonds","mn6_ssbondsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_clbondswrap","Cross-Linkages",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_clbonds","mn6_clbondsYes","Show",!0,void 0,2),t+=this.getRadio("mn6_clbonds","mn6_clbondsExport","Export Pairs",void 0,void 0,2),t+=this.getRadio("mn6_clbonds","mn6_clbondsNo","Hide",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_DSSP","DSSP Secondary",void 0,1);let s=void 0!==e.cfg.mmtfid||void 0!==e.cfg.pdbid||void 0!==e.cfg.opmid||void 0!==e.cfg.mmcifid||void 0!==e.cfg.mmdbid||void 0!==e.cfg.mmdbafid||void 0!==e.cfg.gi||void 0!==e.cfg.blast_rep_id;s&&(t+=this.getMenuText("assemblyWrapper","Assembly",void 0,1,1),t+="
        ",e.cfg.bu?(t+=this.getRadio("mn6_assembly","mn6_assemblyYes","Biological Assembly",!0,1,2),t+=this.getRadio("mn6_assembly","mn6_assemblyNo","Asymmetric Unit",void 0,1,2)):(t+=this.getRadio("mn6_assembly","mn6_assemblyYes","Biological Assembly",void 0,1,2),t+=this.getRadio("mn6_assembly","mn6_assemblyNo","Asymmetric Unit",!0,1,2)),t+="
      ",t+=""),t+=this.getMenuText("mn6_symmetrywrap","Symmetry",void 0,void 0,1),t+="
        ",s&&(t+=this.getLink("mn6_symmetry","from PDB(precalculated) "+e.htmlCls.wifiStr,void 0,2)),t+=this.getLink("mn6_symd","from SymD(Dynamic) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn6_clear_sym","Clear SymD Symmetry",void 0,2),t+=this.getLink("mn6_axes_only","Show Axes Only",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn6_igrefwrap","Ref. Number",void 0,void 0,1),t+="
        ",t+=this.getLink("mn6_igrefYes","Show Ig for Selection",void 0,2),t+=this.getLink("mn6_igrefTpl","Ig w/ Specified Template",void 0,2),t+=this.getLink("mn6_alignrefTpl","Align w/ Specified Template",void 0,2),t+=this.getLink("mn6_igrefNo","Reset Ig Ref. Number",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn6_customref","Custom Ref. Number",void 0,2),t+="
      ",t+="",t+=this.getMenuSep()}return t+=this.getLink("mn6_yournote","Window Title",void 0,1),void 0!==e.cfg.cid?(t+=this.getMenuText("mn1_linkwrap","Links",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_link_structure","Compound Summary "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_vast","Similar Compounds "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_bind","Structures Bound "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=""):(t+=this.getMenuText("mn1_linkwrap","Links",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_link_structure","Structure Summary "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_vast","Similar Structures "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_pubmed","Literature "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_protein","Protein "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=""),t+="

    • ",t+="
    ",t}setMenu6(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Help

    ",t+="
    ",t+=this.setMenu6_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu6_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuUrl("abouticn3d",e.htmlCls.baseUrl+"icn3d/icn3d.html#about","About iCn3D "+e.REVISION+"",1,1),t+=this.getMenuUrl("gallery",e.htmlCls.baseUrl+"icn3d/icn3d.html#gallery","Live Gallery "+e.htmlCls.wifiStr,1,1),t+=this.getMenuUrl("video",e.htmlCls.baseUrl+"icn3d/icn3d.html#videos","Videos & Tutorials",1,1),t+=this.getMenuText("mn6_faq","FAQ",void 0,1,1),t+="
        ",t+=this.getMenuUrl("faq_viewstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#viewstru","View structure",1,2),t+=this.getMenuUrl("faq_tfstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#tfstru","Transform Structure",1,2),t+=this.getMenuUrl("faq_selsubset",e.htmlCls.baseUrl+"icn3d/icn3d.html#selsubset","Select Subsets",1,2),t+=this.getMenuUrl("faq_stylecolor",e.htmlCls.baseUrl+"icn3d/icn3d.html#changestylecolor","Change Style/Color",1,2),t+=this.getMenuUrl("faq_savework",e.htmlCls.baseUrl+"icn3d/icn3d.html#saveview","Save Work",1,2),t+=this.getMenuUrl("faq_showanno",e.htmlCls.baseUrl+"icn3d/icn3d.html#showanno","Show Annotations",1,2),t+=this.getMenuUrl("faq_exportanno",e.htmlCls.baseUrl+"icn3d/icn3d.html#exportanno","Export Annotations",1,2),t+=this.getMenuUrl("faq_interanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#interanalysis","Interaction Analysis",1,2),t+=this.getMenuUrl("faq_mutanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#mutationanalysis","Mutation Analysis",1,2),t+=this.getMenuUrl("faq_elecpot",e.htmlCls.baseUrl+"icn3d/icn3d.html#elecpot","Electrostatic Pot.",1,2),t+=this.getMenuUrl("faq_simipdb",e.htmlCls.baseUrl+"icn3d/icn3d.html#simivast","Similar PDB",1,2),t+=this.getMenuUrl("faq_simialphapdb",e.htmlCls.baseUrl+"icn3d/icn3d.html#simifoldseek","Similar AlphaFold/PDB",1,2),t+=this.getMenuUrl("faq_alnstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#alignmul","Align Multiple Structures",1,2),t+=this.getMenuUrl("faq_batchanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#batchanalysis","Batch Analysis",1,2),t+=this.getMenuUrl("faq_batchanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#igrefnum","Assign Ig Ref. Numbers",1,2),t+=this.getMenuUrl("faq_embedicn3d",e.htmlCls.baseUrl+"icn3d/icn3d.html#embedicn3d","Embed iCn3D",1,2),t+="
      ",t+="",t+=this.getMenuUrl("citing",e.htmlCls.baseUrl+"icn3d/icn3d.html#citing","Citing iCn3D",void 0,1),t+=this.getMenuText("mn6_source","Source Code",void 0,1,1),t+="
        ",t+=this.getMenuUrl("github","https://github.com/ncbi/icn3d","GitHub (browser) "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("npm","https://www.npmjs.com/package/icn3d","npm (Node.js) "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("notebook","https://pypi.org/project/icn3dpy","Jupyter Notebook "+e.htmlCls.wifiStr,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_develop","Develop",void 0,void 0,1),t+="
        ",t+=this.getMenuUrl("dev_embedicn3d2",e.htmlCls.baseUrl+"icn3d/icn3d.html#HowToUse","Embed iCn3D",void 0,2),t+=this.getMenuUrl("dev_urlpara",e.htmlCls.baseUrl+"icn3d/icn3d.html#parameters","URL Parameters",void 0,2),t+=this.getMenuUrl("dev_command",e.htmlCls.baseUrl+"icn3d/icn3d.html#commands","Commands",void 0,2),t+=this.getMenuUrl("dev_datastru",e.htmlCls.baseUrl+"icn3d/icn3d.html#datastructure","Data Structure",void 0,2),t+=this.getMenuUrl("dev_classstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#classstructure","Class Structure",void 0,2),t+=this.getMenuUrl("dev_addclass",e.htmlCls.baseUrl+"icn3d/icn3d.html#addclass","Add New Classes",void 0,2),t+=this.getMenuUrl("dev_modfunc",e.htmlCls.baseUrl+"icn3d/icn3d.html#modifyfunction","Modify Functions",void 0,2),t+=this.getMenuUrl("dev_restful",e.htmlCls.baseUrl+"icn3d/icn3d.html#restfulapi","RESTful APIs",void 0,2),t+=this.getMenuUrl("dev_contributor",e.htmlCls.baseUrl+"icn3d/icn3d.html#contributors","iCn3D Contributors",void 0,2),t+="
      ",t+="",t+=this.getMenuUrl("helpdoc",e.htmlCls.baseUrl+"icn3d/docs/icn3d_help.html","Help Doc "+e.htmlCls.wifiStr,1,1),t+=this.getMenuSep(),t+=this.getMenuText("mn6_tfhint","Transform Hints",void 0,1,1),t+="
        ",t+=this.getMenuText("mn6_rotate","Rotate",void 0,1,2),t+="
          ",t+="
        • Left Mouse (Click & Drag)
        • ",t+="
        • Key l: Left
        • ",t+="
        • Key j: Right
        • ",t+="
        • Key i: Up
        • ",t+="
        • Key m: Down
        • ",t+="
        • Shift + Key l: Left 90°
        • ",t+="
        • Shift + Key j: Right 90°
        • ",t+="
        • Shift + Key i: Up 90°
        • ",t+="
        • Shift + Key m: Down 90°
        • ",t+="
        ",t+="",t+=this.getMenuText("mn6_zoom","Zoom",void 0,1,2),t+="
          ",t+="
        • Middle Mouse
          (Pinch & Spread)
        • ",t+="
        • Key z: Zoom in
        • ",t+="
        • Key x: Zoom out
        • ",t+="
        ",t+="",t+=this.getMenuText("mn6_translate","Translate",void 0,1,2),t+="
          ",t+="
        • Right Mouse
          (Two Finger Click & Drag)
        • ",t+="
        ",t+="",t+="
      ",t+="",t+=this.getMenuUrl("selhints",e.htmlCls.baseUrl+"icn3d/icn3d.html#selsubset","Selection Hints",void 0,1),t+=this.getMenuUrl("helpdesk","https://support.nlm.nih.gov/support/create-case/","Write to Help Desk",1,1),t+="

    • ",t+="
    ",t}hideMenu(){let e=this.icn3dui;e.bNode||(void 0!==$("#"+e.pre+"mnlist")[0]&&($("#"+e.pre+"mnlist")[0].style.display="none"),void 0!==$("#"+e.pre+"mnLogSection")[0]&&($("#"+e.pre+"mnLogSection")[0].style.display="none"),void 0!==$("#"+e.pre+"cmdlog")[0]&&($("#"+e.pre+"cmdlog")[0].style.display="none"),$("#"+e.pre+"title")[0].style.margin="10px 0 0 10px")}showMenu(){let e=this.icn3dui;e.bNode||(void 0!==$("#"+e.pre+"mnlist")[0]&&($("#"+e.pre+"mnlist")[0].style.display="block"),void 0!==$("#"+e.pre+"mnLogSection")[0]&&($("#"+e.pre+"mnLogSection")[0].style.display="block"),void 0!==$("#"+e.pre+"cmdlog")[0]&&($("#"+e.pre+"cmdlog")[0].style.display="block"))}}class c{constructor(e){this.icn3dui=e}openDlg(e,t){let s=this.icn3dui;s.icn3d,s.bNode||(e=s.pre+e,s.cfg.notebook?this.openDlgNotebook(e,t):this.openDlgRegular(e,t),s.htmlCls.themecolor||(s.htmlCls.themecolor="blue"),s.htmlCls.setMenuCls.setTheme(s.htmlCls.themecolor))}addSaveButton(e){let t=this.icn3dui;t.icn3d,t.bNode||void 0!==this.dialogHashSave&&this.dialogHashSave.hasOwnProperty(e)||($("#"+e).parent().children(".ui-dialog-titlebar").append("
    "),void 0===this.dialogHashSave&&(this.dialogHashSave={}),this.dialogHashSave[e]=1)}addHideButton(e){let t=this.icn3dui;t.icn3d,t.bNode||void 0!==this.dialogHashHide&&this.dialogHashHide.hasOwnProperty(e)||($("#"+e).parent().children(".ui-dialog-titlebar").append("
    "),void 0===this.dialogHashHide&&(this.dialogHashHide={}),this.dialogHashHide[e]=1)}getDialogStatus(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t={},s={},i=$("#"+e.pre+"dl_selectannotations").hasClass("ui-dialog-content"),n=$("#"+e.pre+"dl_graph").hasClass("ui-dialog-content"),l=$("#"+e.pre+"dl_linegraph").hasClass("ui-dialog-content"),r=$("#"+e.pre+"dl_scatterplot").hasClass("ui-dialog-content"),o=$("#"+e.pre+"dl_ligplot").hasClass("ui-dialog-content"),a=$("#"+e.pre+"dl_contactmap").hasClass("ui-dialog-content"),d=$("#"+e.pre+"dl_alignerrormap").hasClass("ui-dialog-content"),c=$("#"+e.pre+"dl_interactionsorted").hasClass("ui-dialog-content"),h=$("#"+e.pre+"dl_alignment").hasClass("ui-dialog-content"),p=$("#"+e.pre+"dl_2ddgm").hasClass("ui-dialog-content"),m=$("#"+e.pre+"dl_2dctn").hasClass("ui-dialog-content"),u=$("#"+e.pre+"dl_definedsets").hasClass("ui-dialog-content");return t.bSelectannotationsInit2=!1,t.bGraph2=!1,t.bLineGraph2=!1,t.bScatterplot2=!1,t.bLigplot2=!1,t.bTable2=!1,t.bAlignmentInit2=!1,t.bTwoddgmInit2=!1,t.bTwodctnInit2=!1,t.bSetsInit2=!1,s.dl_selectannotations="bSelectannotationsInit2",s.dl_graph="bGraph2",s.dl_linegraph="bLineGraph2",s.dl_scatterplot="bScatterplot2",s.dl_ligplot="bLigplot2",s.dl_contactmap="bContactmap2",s.dl_alignerrormap="bAlignerrormap2",s.dl_interactionsorted="bTable2",s.dl_alignment="bAlignmentInit2",s.dl_2ddgm="bTwoddgmInit2",s.dl_2dctn="bTwodctnInit2",s.dl_definedsets="bSetsInit2",i&&(t.bSelectannotationsInit2=$("#"+e.pre+"dl_selectannotations").dialog("isOpen")),n&&(t.bGraph2=$("#"+e.pre+"dl_graph").dialog("isOpen")),l&&(t.bLineGraph2=$("#"+e.pre+"dl_linegraph").dialog("isOpen")),r&&(t.bScatterplot2=$("#"+e.pre+"dl_scatterplot").dialog("isOpen")),o&&(t.bLigplot2=$("#"+e.pre+"dl_ligplot").dialog("isOpen")),a&&(t.bContactmap2=$("#"+e.pre+"dl_contactmap").dialog("isOpen")),d&&(t.bAlignerror2=$("#"+e.pre+"dl_alignerrormap").dialog("isOpen")),c&&(t.bTable2=$("#"+e.pre+"dl_interactionsorted").dialog("isOpen")),h&&(t.bAlignmentInit2=$("#"+e.pre+"dl_alignment").dialog("isOpen")),p&&(t.bTwoddgmInit2=$("#"+e.pre+"dl_2ddgm").dialog("isOpen")),m&&(t.bTwodctnInit2=$("#"+e.pre+"dl_2dctn").dialog("isOpen")),u&&(t.bSetsInit2=$("#"+e.pre+"dl_definedsets").dialog("isOpen")),{status:t,id2flag:s}}openDlgHalfWindow(e,t,s,i){let n=this.icn3dui,l=n.icn3d;if(n.bNode)return;let r=this,o=n.htmlCls.width2d+20;l.resizeCanvasCls.resizeCanvas(n.htmlCls.WIDTH-s,n.htmlCls.HEIGHT,i);let a,d=n.htmlCls.HEIGHT,c=s;a=!n.cfg.showmenu||n.utilsCls.isMobile()||n.cfg.mobilemenu?{my:"left top",at:"right top",of:"#"+n.pre+"viewer",collision:"none"}:{my:"left top",at:"right top+40",of:"#"+n.pre+"viewer",collision:"none"},n.cfg.resize=!1,window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:d,width:c,modal:!1,position:a,close:function(t){let s=r.getDialogStatus(),i=s.status,a=s.id2flag,d=!1;for(let t in a){let s=e===n.pre+t;for(let e in i)i.hasOwnProperty(e)||(s=s&&!i[e]);d=d||s}if(d)if(i.bTwoddgmInit2||i.bTwodctnInit2||i.bSetsInit2){let e=n.utilsCls.isMobile()?n.htmlCls.WIDTH:n.htmlCls.WIDTH-o;l.resizeCanvasCls.resizeCanvas(e,n.htmlCls.HEIGHT,!0),i.bTwoddgmInit2&&r.openDlg2Ddgm(n.pre+"dl_2ddgm",void 0,i.bSetsInit2),i.bTwodctnInit2&&r.openDlg2Ddgm(n.pre+"dl_2dctn",void 0,i.bSetsInit2),i.bSetsInit2&&r.openDlg2Ddgm(n.pre+"dl_definedsets")}else l.resizeCanvasCls.resizeCanvas(n.htmlCls.WIDTH,n.htmlCls.HEIGHT,!0)},resize:function(t){if(e==n.pre+"dl_selectannotations")l.annotationCls.hideFixedTitle();else if(e==n.pre+"dl_graph"){let t=$("#"+e).width(),s=$("#"+e).height();d3.select("#"+n.svgid).attr("width",t).attr("height",s)}else if(e==n.pre+"dl_linegraph"||e==n.pre+"dl_scatterplot"||e==n.pre+"dl_ligplot"||e==n.pre+"dl_contactmap"||e==n.pre+"dl_alignerrormap"){let t=status.bTwoddgmInit2||status.bSetsInit2?(n.htmlCls.WIDTH-o)/2:n.htmlCls.WIDTH/2,s=$("#"+e).width()/t;if(e==n.pre+"dl_linegraph"){let e=l.linegraphWidth*s;$("#"+n.linegraphid).attr("width",e)}else if(e==n.pre+"dl_scatterplot"){let e=l.scatterplotWidth*s;$("#"+n.scatterplotid).attr("width",e)}else if(e==n.pre+"dl_ligplot"){let e=l.ligplotWidth*s;$("#"+n.ligplotid).attr("width",e)}else if(e==n.pre+"dl_ligplot"){let e=l.ligplotWidth*s;$("#"+n.ligplotid).attr("width",e)}else if(e==n.pre+"dl_contactmap"){let e=l.contactmapWidth*s;$("#"+n.contactmapid).attr("width",e)}else if(e==n.pre+"dl_alignerrormap"){let e=l.alignerrormapWidth*s;$("#"+n.alignerrormapid).attr("width",e)}}}}),this.addSaveButton(e),this.addHideButton(e)}openDlg2Ddgm(e,t,s){let i=this.icn3dui,n=i.icn3d;if(i.bNode)return;let l,r,o=this,a=i.htmlCls.width2d+20;e===i.pre+"dl_definedsets"?(l="right top",r="Select sets"):e!==i.pre+"dl_2ddgm"&&e!==i.pre+"dl_2dctn"||(l=s?"right top+240":"right top",r=e===i.pre+"dl_2ddgm"?"2D Diagram":"2D Cartoon");let d={my:"left top+"+i.htmlCls.MENU_HEIGHT,at:l,of:"#"+i.pre+"viewer",collision:"none"};window.dialog=$("#"+e).dialog({autoOpen:!0,title:r,height:"auto",width:a,modal:!1,position:d,close:function(e){let t=o.getDialogStatus().status;t.bSelectannotationsInit2||t.bGraph2||t.bLineGraph2||t.bScatterplot2||t.bLigplot2||t.bTable2||t.bAlignmentInit2||n.resizeCanvasCls.resizeCanvas(i.htmlCls.WIDTH,i.htmlCls.HEIGHT,!0)},resize:function(t,s){e==i.pre+"dl_2dctn"&&(n.resizeRatioX=s.size.width/i.htmlCls.width2d,n.resizeRatioY=s.size.height/(i.htmlCls.width2d+70))},resizeStop:function(e,t){n.resizeRatioX=t.size.width/i.htmlCls.width2d,n.resizeRatioY=t.size.height/(i.htmlCls.width2d+70)}}),this.addSaveButton(e),this.addHideButton(e)}openDlgRegular(e,t){let s=this.icn3dui,i=s.icn3d;if(s.bNode)return;let n=400,l=150,r=s.htmlCls.width2d+20,o=this.getDialogStatus().status;if(e===s.pre+"dl_selectannotations"||e===s.pre+"dl_graph"||e===s.pre+"dl_linegraph"||e===s.pre+"dl_scatterplot"||e===s.pre+"dl_ligplot"||e===s.pre+"dl_contactmap"||e===s.pre+"dl_alignerrormap"||e===s.pre+"dl_interactionsorted"||e===s.pre+"dl_alignment"){let a=.5*s.htmlCls.WIDTH-.5*r;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)this.openDlgHalfWindow(e,t,a,!0),(o.bTwoddgmInit2||o.bTwodctnInit2||o.bSetsInit2)&&(i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-a-r,s.htmlCls.HEIGHT,!0),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,o.bSetsInit2),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,o.bSetsInit2),o.bSetsInit2&&this.openDlg2Ddgm(s.pre+"dl_definedsets"));else{i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH,.5*s.htmlCls.HEIGHT,!0),l=.5*s.htmlCls.HEIGHT,n=s.htmlCls.WIDTH;let a={my:"left top",at:"left bottom+32",of:"#"+s.pre+"canvas",collision:"none"};window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:l,width:n,modal:!1,position:a,close:function(t){if(!((e!==s.pre+"dl_selectannotations"||o.bAlignmentInit2||o.bGraph2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_graph"||o.bSelectannotationsInit2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_alignment"||o.bSelectannotationsInit2||o.bGraph2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_interactionsorted"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_linegraph"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_scatterplot"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_ligplot"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_contactmap"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bAlignerrormap2)&&(e!==s.pre+"dl_alignerrormap"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2)))if(o.bTwoddgmInit2||o.bTwodctnInit2||o.bSetsInit2){let e=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(e,s.htmlCls.HEIGHT,!0),o.bTwoddgmInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,o.bSetsInit2),o.bTwodctnInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,o.bSetsInit2),o.bSetsInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_definedsets")}else i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH,s.htmlCls.HEIGHT,!0)},resize:function(t){if(e==s.pre+"dl_selectannotations")i.annotationCls.hideFixedTitle();else if(e==s.pre+"dl_graph"){let t=$("#"+e).width(),i=$("#"+e).height();d3.select("#"+s.svgid).attr("width",t).attr("height",i)}else if(e==s.pre+"dl_linegraph"||e==s.pre+"dl_scatterplot"||e==s.pre+"dl_ligplot"||e==s.pre+"dl_contactmap"||e==s.pre+"dl_alignerrormap"){let t=o.bTwoddgmInit2||o.bSetsInit2?(s.htmlCls.WIDTH-r)/2:s.htmlCls.WIDTH/2,n=$("#"+e).width()/t;if(e==s.pre+"dl_linegraph"){let e=i.linegraphWidth*n;$("#"+s.linegraphid).attr("width",e)}else if(e==s.pre+"dl_scatterplot"){let e=i.scatterplotWidth*n;$("#"+s.scatterplotid).attr("width",e)}else if(e==s.pre+"dl_ligplot"){let e=i.ligplotWidth*n;$("#"+s.ligplotid).attr("width",e)}else if(e==s.pre+"dl_contactmap"){let e=i.contactmapWidth*n;$("#"+s.contactmapid).attr("width",e)}else if(e==s.pre+"dl_alignerrormap"){let e=i.alignerrormapWidth*n;$("#"+s.alignerrormapid).attr("width",e)}}}}),this.addSaveButton(e),this.addHideButton(e)}}else if(e===s.pre+"dl_2ddgm"||e===s.pre+"dl_2dctn"){let t=0;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)(o.bSelectannotationsInit2||o.bGraph2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bTable2||o.bAlignmentInit2)&&(t=.5*s.htmlCls.WIDTH-.5*r),i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-t-r,s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,void 0,o.bSetsInit2);else{let t=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(t,.5*s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT,o.bSetsInit2)}}else{let a;if(l="auto",n="auto",e===s.pre+"dl_addtrack"?n="50%":e===s.pre+"dl_menupref"&&(n=600,l=500),e===s.pre+"dl_definedsets"){let t=0;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)(o.bSelectannotationsInit2||o.bGraph2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bTable2||o.bAlignmentInit2)&&(t=.5*s.htmlCls.WIDTH-.5*r),i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-t-r,s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,!0),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,!0);else{let t=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(t,.5*s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",.5*s.htmlCls.HEIGHT,!0),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",.5*s.htmlCls.HEIGHT,!0)}}else s.utilsCls.isMobile()?a={my:"left top",at:"left bottom-50",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_allinteraction"||e===s.pre+"dl_buriedarea"?(a={my:"right top",at:"right top+50",of:"#"+i.divid,collision:"none"},n=700,l=500):a=e===s.pre+"dl_rmsd"||e===s.pre+"dl_legend"?{my:"left bottom",at:"left+20 bottom-20",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_symd"?{my:"left top",at:"right-200 bottom-200",of:"#"+s.pre+"canvas",collision:"none"}:s.cfg.align?{my:"left top",at:"left top+90",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_mmdbafid"?{my:"left top",at:"left top+130",of:"#"+s.pre+"canvas",collision:"none"}:{my:"left top",at:"left top+50",of:"#"+s.pre+"canvas",collision:"none"},window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:l,width:n,modal:!1,position:a}),this.addSaveButton(e),this.addHideButton(e)}$(".ui-dialog .ui-button span").removeClass("ui-icon-closethick").addClass("ui-icon-close")}openDlgNotebook(e,t){let s=this.icn3dui,i=s.icn3d;if(s.bNode)return;let n=400,l=150,r=s.htmlCls.width2d+20;e===s.pre+"dl_selectannotations"||e===s.pre+"dl_graph"||e===s.pre+"dl_linegraph"||e===s.pre+"dl_scatterplot"||e===s.pre+"dl_ligplot"||e===s.pre+"dl_contactmap"||e===s.pre+"dl_alignerrormap"||e===s.pre+"dl_interactionsorted"||e===s.pre+"dl_alignment"?($("#"+e).show(),$("#"+e+"_nb").show(),$("#"+e+"_title").html(t),l=.5*s.htmlCls.HEIGHT,n=s.htmlCls.WIDTH,$("#"+e).width(n),$("#"+e).height(l),$("#"+e).resize((function(t){let n=s.htmlCls.WIDTH/2,l=$("#"+e).width()/n;if(e==s.pre+"dl_selectannotations")i.annotationCls.hideFixedTitle();else if(e==s.pre+"dl_graph"){let t=$("#"+e).width(),i=$("#"+e).height();d3.select("#"+s.svgid).attr("width",t).attr("height",i)}else if(e==s.pre+"dl_linegraph"){let e=i.linegraphWidth*l;$("#"+s.linegraphid).attr("width",e)}else if(e==s.pre+"dl_scatterplot"){let e=i.scatterplotWidth*l;$("#"+s.scatterplotid).attr("width",e)}else if(e==s.pre+"dl_ligplot"){let e=i.ligplotWidth*l;$("#"+s.ligplotid).attr("width",e)}else if(e==s.pre+"dl_contactmap"){let e=i.contactmapWidth*l;$("#"+s.contactmapid).attr("width",e)}else if(e==s.pre+"dl_alignerrormap"){let e=i.alignerrormapWidth*l;$("#"+s.alignerrormapid).attr("width",e)}}))):(i.bRender&&($("#"+e).show(),$("#"+e+"_nb").show(),$("#"+e+"_title").html(t)),l="auto",n="auto",e===s.pre+"dl_addtrack"?n="50%":e===s.pre+"dl_2ddgm"||e===s.pre+"dl_2dctn"||e===s.pre+"dl_definedsets"?n=r:e!==s.pre+"dl_allinteraction"&&e!==s.pre+"dl_buriedarea"||(n=700,l=500),$("#"+e).width(n),$("#"+e).height(l))}}class h{constructor(e){this.icn3dui=e}setCustomDialogs(){let e=this.icn3dui;if(e.icn3d,e.bNode)return"";return""}getHtmlAlignResidueByResidue(e,t,s){let i=this.icn3dui;i.icn3d;let n="";return n+="All chains will be aligned to the first chain in the comma-separated chain IDs. Each chain ID has the form of PDBID_chain (e.g., 1HHO_A, case sensitive) or UniprotID (e.g., P69905 for AlphaFold structures).

    ",n+="Chain IDs: "+i.htmlCls.inputTextStr+"id='"+i.pre+e+"' value='P69905,P01942,1HHO_A' size=50>

    ",n+='Each alignment is defined as " | "-separated residue lists in one line. "10-50" means a range of residues from 10 to 50.

    ",n+=i.htmlCls.buttonStr+s+"'>Align Residue by Residue
    ",n}addNotebookTitle(e,t,s){let i=this.icn3dui;i.icn3d;let n='';return s&&(n+='
    '),n}setDialogs(){let e=this.icn3dui,t=e.icn3d;if(e.bNode)return"";let s="";e.htmlCls.optionStr="";for(let l=0,r=t[n].length;l"+r+", Strands: "+s[r]+""}i+=""}return i}getAnnoHeader(){let e=this.icn3dui;e.icn3d;let t="";t+="
    Annotations: 
    ",t+="
    ";let s="",t+=i+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_cdd' checked>Conserved Domains"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_clinvar'>ClinVar"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_binding'>Functional Sites"+e.htmlCls.space2+"",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_custom'>Custom"+e.htmlCls.space2+"",t+=i+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_3dd'>3D Domains"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_snp'>SNPs"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ptm'>PTM (UniProt)"+e.htmlCls.space2+"",t+="",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ssbond'>Disulfide Bonds"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_interact'>Interactions"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_crosslink'>Cross-Linkages"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_transmem'>Transmembrane"+e.htmlCls.space2+"",t+="",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ig'>Ig Domains"+e.htmlCls.space2+"",t+="",t+="
    ",i="";return t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_all'>All"+e.htmlCls.space2+"
    ",t}}class p{constructor(e){this.icn3dui=e}setLogCmd(e,t,s){var i=this.icn3dui;i.icn3d,i.htmlCls.clickMenuCls.setLogCmd(e,t,s)}fullScreenChange(){let e=this.icn3dui,t=e.icn3d,s=this;e.bNode||document.fullscreenElement||document.webkitFullscreenElement||document.mozFullscreenElement||document.msFullscreenElement||(s.setLogCmd("exit full screen",!1),t.bFullscreen=!1,e.utilsCls.setViewerWidthHeight(e,!0),t.applyCenterCls.setWidthHeight(e.htmlCls.WIDTH,e.htmlCls.HEIGHT),t.drawCls.draw())}convertUniProtInChains(e){this.icn3dui.icn3d;let t=e.split(","),s="";for(let e=0,i=t.length;e0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(l)),s.cfg.aligntool=e;let r="vast"==e?"structure align":"tmalign";if(r+=t?" msa":"",l.length>0?n.setLogCmd("realign on "+r+" | "+l,!0):n.setLogCmd("realign on "+r,!0),t){if(0==l.length){l=[];let e={};for(let t in i.chains){let s=i.firstAtomObjCls.getFirstAtomObj(i.chains[t]);e.hasOwnProperty(s.structure)||!i.proteins.hasOwnProperty(s.serial)&&!i.nucleotides.hasOwnProperty(s.serial)||(l.push(t),e[s.structure]=1)}}await i.realignParserCls.realignOnStructAlignMsa(l)}else await i.realignParserCls.realignOnStructAlign()}async readFile(e,t,s,i,n,l){let r=this.icn3dui,o=r.icn3d,a=this,d=t[s],c=e?"append":"load";c+=n?" mmcif file ":l?" png file ":" pdb file ";let h=new FileReader;h.onload=async function(h){let p=h.target.result;if(a.setLogCmd(c+d.name,!1),e?(o.resetConfig(),o.bResetAnno=!0,o.bResetSets=!0):o.init(),o.bInputfile=!0,o.InputfileType=n?"mmcif":l?"png":"pdb",l){let e=await r.htmlCls.setHtmlCls.loadPng(p);if(p=e.pdb,!p)return;o.statefileArray||(o.statefileArray=[]),o.statefileArray.push(e.statefile)}o.InputfileData=o.InputfileData?o.InputfileData+"\nENDMDL\n"+p:p,i=s>0?i+"\nENDMDL\n"+p:p,Object.keys(t).length==s+1?(e&&(o.hAtoms={},o.dAtoms={}),n?await o.mmcifParserCls.loadMultipleMmcifData(i,void 0,e):await o.pdbParserCls.loadPdbData(i,void 0,void 0,e)):await a.readFile(e,t,s+1,i,n,l),e&&(o.bSetChainsAdvancedMenu&&o.definedSetsCls.showSets(),o.bResetAnno=!0,o.bAnnoShown&&(await o.showAnnoCls.showAnnotations(),o.annotationCls.resetAnnoTabAll()))},"object"==typeof d&&h.readAsText(d)}async loadPdbFile(e,t,s){let i=this.icn3dui,n=i.icn3d;n.bInitial=!0,i.cfg.notebook||dialog.dialog("close"),i.cfg.notebook?n.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let l=$("#"+i.pre+t)[0].files;l[0]?(i.htmlCls.setHtmlCls.fileSupport(),n.molTitle="",n.dataStrAll="",await this.readFile(e,l,0,"",s)):alert("Please select a file before clicking 'Load'")}saveHtml(e){let t=this.icn3dui.icn3d,s="";s+='\n',s+='\n',s+=$("#"+e).html();let i=e.split("_"),n=i.length>2?i[2]:e,l=Object.keys(t.structures)[0];Object.keys(t.structures).length>1&&(l+="-"+Object.keys(t.structures)[1]),t.saveFileCls.saveFile(l+"-"+n+".html","html",encodeURIComponent(s))}setPredefinedMenu(e){let t=this.icn3dui,s=t.icn3d;if(Object.keys(s.chains).length<2)return void alert("At least two chains are required for alignment...");t.htmlCls.clickMenuCls.SetChainsAdvancedMenu();let i=s.definedSetsCls.setAtomMenu(["protein"]);$("#"+t.pre+e).length&&$("#"+t.pre+e).html(i),$("#"+t.pre+e).resizable()}async launchMmdb(e,t,s,i){let n=this.icn3dui,l=n.icn3d,r=this;n.cfg.notebook||dialog.dialog("close");let o=t?1:0;if(!(e=e.replace(/,/g," ").replace(/\s+/g,",").trim()))return void alert("Please enter a list of PDB IDs or AlphaFold UniProt IDs...");let a=e.split(",");if(i)if(l.structures||1!=a.length||4!=a[0].length&&isNaN(a[0])){n.cfg.mmdbafid=e,n.cfg.bu=o,l.bMmdbafid=!0,l.inputid=l.inputid?l.inputid+n.cfg.mmdbafid:n.cfg.mmdbafid,1==n.cfg.bu?l.loadCmd="load mmdbaf1 "+n.cfg.mmdbafid:l.loadCmd="load mmdbaf0 "+n.cfg.mmdbafid,n.htmlCls.clickMenuCls.setLogCmd(l.loadCmd,!0);let t=!!(l.structures&&Object.keys(l.structures).length>0);await l.chainalignParserCls.downloadMmdbAf(n.cfg.mmdbafid),t&&(l.bSetChainsAdvancedMenu&&l.definedSetsCls.showSets(),l.bAnnoShown&&(await l.showAnnoCls.showAnnotations(),l.annotationCls.resetAnnoTabAll()))}else{r.setLogCmd("load mmdb"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbid="+e+"&bu="+o,t)}else if(1!=a.length||4!=a[0].length&&isNaN(a[0])){r.setLogCmd("load mmdbaf"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbafid="+e+"&bu="+o,t)}else{r.setLogCmd("load mmdb"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbid="+e+"&bu="+o,t)}}allEventFunctions(){let e=this.icn3dui,t=e.icn3d,s=this;if(e.bNode)return;let i=document.URL,n=i.indexOf("?");i=-1==n?i:i.substr(0,n),i.indexOf("/vast/icn3d/")&&(i=i.replace(/\/vast\/icn3d\//g,"/icn3d/")),t.definedSetsCls.clickCustomAtoms(),t.definedSetsCls.clickCommand_apply(),t.definedSetsCls.clickModeswitch(),t.selectionCls.clickShow_selected(),t.selectionCls.clickHide_selected(),t.diagram2dCls.click2Ddgm(),t.cartoon2dCls.click2Dcartoon(),t.ligplotCls.clickLigplot(),t.addTrackCls.clickAddTrackButton(),t.resizeCanvasCls.windowResize(),t.annotationCls.setTabs(),t.resid2specCls.switchHighlightLevel(),e.utilsCls.isMobile()?(t.hlSeqCls.selectSequenceMobile(),t.hlSeqCls.selectChainMobile()):t.hlSeqCls.selectSequenceNonMobile(),e.htmlCls.clickMenuCls.clickMenu1(),e.htmlCls.clickMenuCls.clickMenu2(),e.htmlCls.clickMenuCls.clickMenu3(),e.htmlCls.clickMenuCls.clickMenu4(),e.htmlCls.clickMenuCls.clickMenu5(),e.htmlCls.clickMenuCls.clickMenu6(),e.myEventCls.onIds(["#"+e.pre+"back","#"+e.pre+"mn6_back"],"click",(async function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("back",!1),await i.resizeCanvasCls.back()})),e.myEventCls.onIds(["#"+e.pre+"forward","#"+e.pre+"mn6_forward"],"click",(async function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("forward",!1),await i.resizeCanvasCls.forward()})),e.myEventCls.onIds(["#"+e.pre+"fullscreen","#"+e.pre+"mn6_fullscreen"],"click",(function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("enter full screen",!1),i.bFullscreen=!0,e.htmlCls.WIDTH=$(window).width(),e.htmlCls.HEIGHT=$(window).height(),i.applyCenterCls.setWidthHeight(e.htmlCls.WIDTH,e.htmlCls.HEIGHT),i.drawCls.draw(),i.resizeCanvasCls.openFullscreen($("#"+e.pre+"canvas")[0])})),document.addEventListener("fullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("webkitfullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("mozfullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("msfullscreenchange",this.fullScreenChange.bind(this)),e.myEventCls.onIds(["#"+e.pre+"toggle","#"+e.pre+"mn2_toggle"],"click",(function(t){e.icn3d.selectionCls.toggleSelection(),s.setLogCmd("toggle selection",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrYellow","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color yellow",!0),i.hColor=e.parasCls.thr(16776960),i.matShader=i.setColorCls.setOutlineColor("yellow"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrGreen","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color green",!0),i.hColor=e.parasCls.thr(65280),i.matShader=i.setColorCls.setOutlineColor("green"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrRed","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color red",!0),i.hColor=e.parasCls.thr(16711680),i.matShader=i.setColorCls.setOutlineColor("red"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleOutline","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight style outline",!0),i.bHighlight=1,i.hlUpdateCls.showHighlight()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleObject","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight style 3d",!0),i.bHighlight=2,i.hlUpdateCls.showHighlight()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleNone","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds(["#"+e.pre+"alternate","#"+e.pre+"mn2_alternate","#"+e.pre+"alternate2"],"click",(async function(t){let i=e.icn3d;i.bAlternate=!0,await i.alternateCls.alternateStructures(),i.bAlternate=!1,s.setLogCmd("alternate structures",!1)})),e.myEventCls.onIds("#"+e.pre+"mn2_realignresbyres","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_realignresbyres","Align multiple chains residue by residue")})),e.myEventCls.onIds("#"+e.pre+"realignSelection","click",(function(t){let i=e.icn3d;Object.keys(i.chains).length<2?alert("At least two chains are required for alignment..."):(i.realignParserCls.realign(),s.setLogCmd("realign",!0))})),e.myEventCls.onIds("#"+e.pre+"mn2_realignonseqalign","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realign","Please select chains to realign"),s.setPredefinedMenu("atomsCustomRealign")})),e.myEventCls.onIds("#"+e.pre+"mn2_realignonstruct","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realignbystruct","Please select chains to realign"),s.setPredefinedMenu("atomsCustomRealignByStruct")})),e.myEventCls.onIds("#"+e.pre+"mn2_realigntwostru","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realigntwostru","Please select structures to realign"),s.setPredefinedMenu("atomsCustomRealignByStruct2")})),e.myEventCls.onIds("#"+e.pre+"applyRealign","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomRealign").val();n.length>0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(n)),await i.realignParserCls.realignOnSeqAlign(),n.length>0?s.setLogCmd("realign on seq align | "+n,!0):s.setLogCmd("realign on seq align",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("vast",!1)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct_tmalign","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("tmalign",!1)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStructMsa","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("vast",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStructMsa_tmalign","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("tmalign",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct_vastplus","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomRealignByStruct2").val();n.length>0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(n)),await i.vastplusCls.realignOnVastplus(),n.length>0?s.setLogCmd("realign on vastplus | "+n,!0):s.setLogCmd("realign on vastplus",!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorSpectrumAcrossSets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorSpectrumAcross").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorAcrossSets(n,!0),s.setLogCmd("set color spectrum | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorSpectrumBySets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorSpectrum").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorBySets(n,!0),s.setLogCmd("set residues color spectrum | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorRainbowAcrossSets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorRainbowAcross").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorAcrossSets(n,!1),s.setLogCmd("set color rainbow | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorRainbowBySets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorRainbow").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorBySets(n,!1),s.setLogCmd("set residues color rainbow | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"anno_summary","click",(function(t){let i=e.icn3d;t.preventDefault(),i.annotationCls.setAnnoViewAndDisplay("overview"),s.setLogCmd("set view overview",!0)})),e.myEventCls.onIds("#"+e.pre+"anno_details","click",(function(t){let i=e.icn3d;t.preventDefault(),i.annotationCls.setAnnoViewAndDisplay("detailed view"),s.setLogCmd("set view detailed view",!0)})),e.myEventCls.onIds("#"+e.pre+"show_annotations","click",(async function(t){let i=e.icn3d;await i.showAnnoCls.showAnnotations(),s.setLogCmd("view annotations",!0)})),e.myEventCls.onIds("#"+e.pre+"showallchains","click",(function(t){e.icn3d.annotationCls.showAnnoAllChains(),s.setLogCmd("show annotations all chains",!0)})),e.myEventCls.onIds("#"+e.pre+"show_alignsequences","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_alignment","Select residues in aligned sequences")})),e.myEventCls.onIds(["#"+e.pre+"show_2ddgm","#"+e.pre+"mn2_2ddgm"],"click",(async function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_2ddgm","2D Diagram"),await i.viewInterPairsCls.retrieveInteractionData(),s.setLogCmd("view interactions",!0)})),e.myEventCls.onIds("#"+e.pre+"search_seq_button","click",(async function(t){e.icn3d,t.stopImmediatePropagation(),await s.searchSeq()})),e.myEventCls.onIds("#"+e.pre+"search_seq","keyup",(async function(t){e.icn3d,13===t.keyCode&&(t.preventDefault(),await s.searchSeq())})),e.myEventCls.onIds("#"+e.pre+"reload_vastplus","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("vast+ search "+$("#"+e.pre+"vastpluspdbid").val(),!1);let n=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open("https://www.ncbi.nlm.nih.gov/Structure/vastplus/vastplus.cgi?uid="+$("#"+e.pre+"vastpluspdbid").val(),n)})),e.myEventCls.onIds("#"+e.pre+"reload_vast","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("vast search "+$("#"+e.pre+"vastpdbid").val()+"_"+$("#"+e.pre+"vastchainid").val(),!1);let n=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open("https://www.ncbi.nlm.nih.gov/Structure/vast/vastsrv.cgi?pdbid="+$("#"+e.pre+"vastpdbid").val()+"&chain="+$("#"+e.pre+"vastchainid").val(),n)})),e.myEventCls.onIds("#"+e.pre+"reload_foldseek","click",(function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"foldseekchainids").val(),l=s.convertUniProtInChains(n);s.setLogCmd("load chainalignment "+l,!0),window.open(i+"?chainalign="+l+"&aligntool=tmalign&showalignseq=1&bu=0","_self")})),e.myEventCls.onIds("#"+e.pre+"reload_mmtf","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load bcif "+$("#"+e.pre+"mmtfid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?bcifid="+$("#"+e.pre+"mmtfid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"mmtfid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmtf "+$("#"+e.pre+"mmtfid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmtfid="+$("#"+e.pre+"mmtfid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_pdb","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load pdb "+$("#"+e.pre+"pdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?pdbid="+$("#"+e.pre+"pdbid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"translate_pdb","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"translateX").val(),l=$("#"+e.pre+"translateY").val(),r=$("#"+e.pre+"translateZ").val();i.transformCls.translateCoord(i.hAtoms,parseFloat(n),parseFloat(l),parseFloat(r)),i.drawCls.draw(),s.setLogCmd("translate pdb "+n+" "+l+" "+r,!0)})),e.myEventCls.onIds("#"+e.pre+"measure_angle","click",(function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"v1X").val(),n=$("#"+e.pre+"v1Y").val(),l=$("#"+e.pre+"v1Z").val(),r=$("#"+e.pre+"v2X").val(),o=$("#"+e.pre+"v2Y").val(),a=$("#"+e.pre+"v2Z").val(),d=new THREE.Vector3(parseFloat(i),parseFloat(n),parseFloat(l)).angleTo(new THREE.Vector3(parseFloat(r),parseFloat(o),parseFloat(a)))/3.1416*180;d=Math.abs(d).toFixed(0),d>180&&(d-=180),d>90&&(d=180-d),s.setLogCmd("The angle is "+d+" degree",!1),$("#"+e.pre+"angle_value").val(d)})),e.myEventCls.onIds("#"+e.pre+"matrix_pdb","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=[];for(let t=0;t<16;++t)n.push(parseFloat($("#"+e.pre+"matrix"+t).val()));i.transformCls.rotateCoord(i.hAtoms,n),i.drawCls.draw(),s.setLogCmd("rotate pdb "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"pdbid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load pdb "+$("#"+e.pre+"pdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?pdbid="+$("#"+e.pre+"pdbid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_af","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load af "+$("#"+e.pre+"afid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?afid="+$("#"+e.pre+"afid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_afmap","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=e.cfg.afid?e.cfg.afid:$("#"+e.pre+"afid").val();s.setLogCmd("set half pae map "+n,!0),await i.contactMapCls.afErrorMap(n)})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfull","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=e.cfg.afid?e.cfg.afid:$("#"+e.pre+"afid").val();s.setLogCmd("set full pae map "+n,!0),await i.contactMapCls.afErrorMap(n,!0)})),e.myEventCls.onIds("#"+e.pre+"afid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load af "+$("#"+e.pre+"afid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?afid="+$("#"+e.pre+"afid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_opm","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load opm "+$("#"+e.pre+"opmid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?opmid="+$("#"+e.pre+"opmid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"opmid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load opm "+$("#"+e.pre+"opmid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?opmid="+$("#"+e.pre+"opmid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_align_refined","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=1&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=1&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_align_ori","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=0&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=0&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_align_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=2&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=2&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_alignaf","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignafid1").val()+"_A,"+$("#"+e.pre+"alignafid2").val()+"_A";s.setLogCmd("load chains "+l+" | residues | resdef ",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+l+"&resnum=&resdef=&showalignseq=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_alignaf_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignafid1").val()+"_A,"+$("#"+e.pre+"alignafid2").val()+"_A";s.setLogCmd("load chains "+l+" | residues | resdef | align tmalign",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+l+"&aligntool=tmalign&resnum=&resdef=&showalignseq=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids").val(),r=s.convertUniProtInChains(l);s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef ",!1);let o=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum=&resdef=&showalignseq=1&bu=0",o)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym2","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids2").val(),r=s.convertUniProtInChains(l),o=$("#"+e.pre+"resalignids").val();s.setLogCmd("load chains "+r+" on asymmetric unit | residues "+o+" | resdef ",!1);let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum="+o+"&resdef=&showalignseq=1&bu=0",a)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym3","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids3").val(),r=s.convertUniProtInChains(l),o=$("#"+e.pre+"predefinedres").val().trim().replace(/\n/g,": ");if(o&&r.split(",").length-1!=o.split(": ").length)return void alert("Please make sure the number of chains and the lines of predefined residues are the same...");s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef "+o,!1);let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum=&resdef="+o+"&showalignseq=1&bu=0",a)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym4","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"chainalignids4").val(),l=s.convertUniProtInChains(n),r=$("#"+e.pre+"predefinedres2").val().trim().replace(/\n/g,": ");if(r&&l.split(",").length-1!=r.split(": ").length)return void alert("Please make sure the number of chains and the lines of predefined residues are the same...");e.cfg.resdef=r.replace(/:/gi,";");let o=l.split(",");await i.realignParserCls.realignChainOnSeqAlign(void 0,o,!0,!0),s.setLogCmd("realign predefined "+l+" "+r,!0)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids").val(),r=s.convertUniProtInChains(l);s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef | align tmalign",!1);let o=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&aligntool=tmalign&resnum=&resdef=&showalignseq=1&bu=0",o)})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_3d","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o;await n.scapCls.retrieveScap(e),s.setLogCmd("scap 3d "+e,!0),s.setLogCmd("select displayed set",!0)}else{let e=o.substr(0,o.indexOf("_"));s.setLogCmd("3d of mutation "+o,!1);let t=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?"+l+"="+e+"&command=scap 3d "+o+"; select displayed set",t)}})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_pdb","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o,t=!0;await n.scapCls.retrieveScap(e,void 0,t),s.setLogCmd("scap pdb "+e,!0)}else{let e=o.substr(0,o.indexOf("_"));s.setLogCmd("pdb of mutation "+o,!1);let t=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?"+l+"="+e+"&command=scap pdb "+o+"; select displayed set",t)}})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_inter","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o,t=!0;await n.scapCls.retrieveScap(e,t),s.setLogCmd("scap interaction "+e,!0);let i=e.split("_"),l="."+i[1]+":"+i[2],r="snp_"+i[1]+"_"+i[2];s.setLogCmd("select "+l+" | name "+r,!0),s.setLogCmd("line graph interaction pairs | selected non-selected | hbonds,salt bridge,interactions,halogen,pi-cation,pi-stacking | false | threshold 3.8 6 4 3.8 6 5.5",!0),s.setLogCmd("adjust dialog dl_linegraph",!0),s.setLogCmd("select displayed set",!0)}else{let e=o.split(","),t=[];for(let s=0,i=e.length;s0?"_blank":"_self";window.open(i+"?"+l+"="+r+"&command=scap interaction "+o,a)}})),e.myEventCls.onIds("#"+e.pre+"reload_mmcif","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmcif "+$("#"+e.pre+"mmcifid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmcifid="+$("#"+e.pre+"mmcifid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"mmcifid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmcif "+$("#"+e.pre+"mmcifid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmcifid="+$("#"+e.pre+"mmcifid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_mmdb","click",(function(t){let n=e.icn3d;t.preventDefault(),s.setLogCmd("load mmdb1 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=1",l)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdb_asym","click",(function(t){let n=e.icn3d;t.preventDefault(),s.setLogCmd("load mmdb0 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=0",l)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_asym","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,0,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_append","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i,!0)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_asym_append","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,0,i,!0)})),e.myEventCls.onIds("#"+e.pre+"mmdbid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),s.setLogCmd("load mmdb1 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=1",l)}})),e.myEventCls.onIds("#"+e.pre+"mmdbafid","keyup",(function(t){if(e.icn3d,13===t.keyCode){t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i)}})),e.myEventCls.onIds("#"+e.pre+"reload_blast_rep_id","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=blast&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"run_esmfold","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),$("#"+e.pre+"dl_mmdbafid").hasClass("ui-dialog-content")&&$("#"+e.pre+"dl_mmdbafid").dialog("close");let n=$("#"+e.pre+"esmfold_fasta").val(),l="stru--";if(-1!=n.indexOf(">")){let e=n.indexOf("\n");if(i.esmTitle=n.substr(1,e-1).trim(),-1!=i.esmTitle.indexOf("|")){let e=i.esmTitle.split("|");l=e.length>2?e[1]:i.esmTitle}else l=-1!=i.esmTitle.indexOf(" ")?i.esmTitle.substr(0,i.esmTitle.indexOf(" ")):i.esmTitle;l.length<6&&(l=l.padEnd(6,"-")),n=n.substr(e+1)}if(n=n.replace(/\s/g,""),n.length>400)return void alert("Your sequence is larger than 400 characters. Please consider to split it as described at https://github.com/facebookresearch/esm/issues/21.");s.setLogCmd("Run ESMFold with the sequence "+n,!1);let r=await e.getAjaxPostPromise("https://api.esmatlas.com/foldSequence/v1/pdb/",n,!0,"Problem in returning PDB from ESMFold server...",void 0,!0,"text");i.bResetAnno=!0,i.bInputfile=!0,i.InputfileType="pdb",i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+r:r,i.bEsmfold=!0;await i.pdbParserCls.loadPdbData(r,l,void 0,!0,void 0,void 0,void 0,i.bEsmfold)})),e.myEventCls.onIds("#"+e.pre+"reload_alignsw","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids_smithwm "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=smithwm&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"reload_alignswlocal","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids_local_smithwm "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=local_smithwm&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"reload_proteinname","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load protein "+$("#"+e.pre+"proteinname").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?protein="+$("#"+e.pre+"proteinname").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_refseq","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load refseq "+$("#"+e.pre+"refseqid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?refseqid="+$("#"+e.pre+"refseqid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"gi","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load gi "+$("#"+e.pre+"gi").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?gi="+$("#"+e.pre+"gi").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_uniprotid","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load uniprotid "+$("#"+e.pre+"uniprotid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?uniprotid="+$("#"+e.pre+"uniprotid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"uniprotid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load uniprotid "+$("#"+e.pre+"uniprotid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?uniprotid="+$("#"+e.pre+"uniprotid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_cid","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load cid "+$("#"+e.pre+"cid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?cid="+$("#"+e.pre+"cid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_smiles","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=s.structures&&Object.keys(s.structures).length>0?"_blank":"_self";n="_blank",window.open(i+"?smiles="+encodeURIComponent($("#"+e.pre+"smiles").val()),"_blank")})),e.myEventCls.onIds("#"+e.pre+"cid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load cid "+$("#"+e.pre+"cid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?cid="+$("#"+e.pre+"cid").val(),l)}})),e.htmlCls.setHtmlCls.clickReload_pngimage(),e.myEventCls.onIds("#"+e.pre+"reload_state","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close"),i.bInputfile||i.init();let n=$("#"+e.pre+"state")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){i.bStatefile=!0;let n=t.target.result;s.setLogCmd("load state file "+$("#"+e.pre+"state").val(),!1),i.commands=[],i.optsHistory=[],await i.loadScriptCls.loadScript(n,!0)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_selectionfile","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"selectionfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;await i.selectionCls.loadSelection(n),s.setLogCmd("load selection file "+$("#"+e.pre+"selectionfile").val(),!1)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_collectionfile","click",(function(t){let s=e.icn3d;t.preventDefault();let i=$("#"+e.pre+"collectionfile")[0].files[0];if(i){e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?s.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close"),s.bInputfile=!1,s.pdbCollection=[],s.allData={},s.allData.all={atoms:{},proteins:{},nucleotides:{},chemicals:{},ions:{},water:{},structures:{},ssbondpnts:{},residues:{},chains:{},chainsSeq:{},defNames2Atoms:{},defNames2Residues:{}},s.allData.prev={},s.selectCollectionsCls.reset(),s.dAtoms=e.hashUtilsCls.cloneHash(s.atoms),s.hAtoms=e.hashUtilsCls.cloneHash(s.atoms),e.htmlCls.setHtmlCls.fileSupport();let t=i.name.split(".").pop().toLowerCase();function n(e){return JSON.parse(e).structures.map((({id:e,title:t,description:s,commands:i})=>(e&&e.includes(".pdb")&&(e=e.split(".pdb")[0]),[e,t,s,i,!1])))}function l(e,t="",i=[]){let n=e.split("\n"),l=[],r=[];n.forEach((e=>{e.startsWith("HEADER")&&(r=[],l.push(r)),r.push(e)}));let o=[],a=[];return l.forEach((e=>{let t=e[0];t=t.replace(/[\n\r]/g,"").trim();let s=t.split(" ").filter(Boolean),i=s[s.length-1];o.push(i),a.push(e[1].startsWith("TITLE")?e[1].split("TITLE").pop().trim():i)})),l.length>0&&s.pdbCollection.push(...l),o.map(((e,t,s,i)=>[e,a[t],s,i,!0]))}$("#"+s.pre+"collections_menu").empty(),$("#"+s.pre+"collections_menu").off("change");let r=[];if("json"===t||"pdb"===t){let o=new FileReader;o.onload=async function(i){"json"===t?r=n(i.target.result):"pdb"===t&&(s.bInputfile=!0,r=l(i.target.result));let o=await s.selectCollectionsCls.setAtomMenu(r);$("#"+s.pre+"collections_menu").html(o),await s.selectCollectionsCls.clickStructure(r),$("#"+s.pre+"collections_menu").trigger("change"),e.htmlCls.clickMenuCls.setLogCmd("load collection file "+$("#"+e.pre+"collectionfile").val(),!1)},o.readAsText(i)}else{if("zip"!==t&&"gz"!==t)throw new Error("Invalid file type");{s.bInputfile=!0;let o=new FileReader;o.onload=async function(i){if("zip"===t){let t="./script/jszip.js";await e.getAjaxPromise(t,"script");let s=new JSZip;try{let t=await s.loadAsync(i.target.result),o=!1,a=!1,d=!1,c=[],h=[],p=[];for(let e in t.files){let s=t.files[e];s.dir||(e.endsWith(".json")?(o=!0,c.push(s)):e.endsWith(".pdb")?(a=!0,h.push(s)):e.endsWith(".gz")&&(d=!0,p.push(s)))}if(o&&a){let e=[];for(const t of c){n(await t.async("text")).forEach((t=>{e.push(t)}))}for(const[t,s,i,n,o]of e){let e=h.find((e=>e.name.toLowerCase().includes(t.toLowerCase())));if(e){l(await e.async("text"),i,n).forEach((e=>{r.push(e)}))}}}else if(o)c.forEach((async e=>{n(await e.async("text")).forEach((e=>{r.push(e)}))}));else if(a)h.forEach((async e=>{l(await e.async("text")).forEach((e=>{r.push(e)}))}));else if(d){let t="./script/pako.js";await e.getAjaxPromise(t,"script");try{for(const e of p){let t=await e.async("uint8array");l(pako.inflate(t,{to:"string"})).forEach((e=>{r.push(e)}))}}catch(e){console.error("Error loading GZ file",e)}}}catch(e){console.error("Error loading ZIP file",e)}}else if("gz"===t){let t="./script/pako.js";await e.getAjaxPromise(t,"script");try{const e=new Uint8Array(i.target.result),t=pako.inflate(e,{to:"string"});r=l(t)}catch(e){console.error("Error loading GZ file",e)}}let o=await s.selectCollectionsCls.setAtomMenu(r);$("#"+s.pre+"collections_menu").html(o),await s.selectCollectionsCls.clickStructure(r),$("#"+s.pre+"collections_menu").trigger("change"),e.htmlCls.clickMenuCls.setLogCmd("load collection file "+$("#"+e.pre+"collectionfile").val(),!1)},o.onerror=function(e){console.error("Error reading file",e)},o.readAsArrayBuffer(i)}}Object.keys(e.utilsCls.getStructures(s.dAtoms))?($("#"+e.pre+"dl_collection_file").hide(),$("#"+e.pre+"dl_collection_structures").show(),$("#"+e.pre+"dl_collection_file_expand").show(),$("#"+e.pre+"dl_collection_file_shrink").hide(),$("#"+e.pre+"dl_collection_structures_expand").hide(),$("#"+e.pre+"dl_collection_structures_shrink").show()):($("#"+e.pre+"dl_collection_file").show(),$("#"+e.pre+"dl_collection_structures").hide(),$("#"+e.pre+"dl_collection_file_expand").hide(),$("#"+e.pre+"dl_collection_file_shrink").hide(),$("#"+e.pre+"dl_collection_structures_expand").show(),$("#"+e.pre+"dl_collection_structures_shrink").hide()),e.htmlCls.dialogCls.openDlg("dl_selectCollections","Select Collections")}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"opendl_export_collections","click",(function(t){e.htmlCls.dialogCls.openDlg("dl_export_collections","Export Collections")})),e.myEventCls.onIds("#"+e.pre+"export_collections","click",(function(t){let s=e.icn3d;const i=document.getElementById(e.pre+"collections_menu"),n=[],l=document.getElementById("dl_collectionExportSelected"),r=document.getElementById("dl_collectionExportAll");l.checked?Array.from(i.options).filter((e=>e.selected)).forEach((e=>{const t=e.value,i=e.textContent.trim(),l=e.getAttribute("data-description");n.push({id:t,title:i,description:l||"",commands:s.allData[t]&&s.allData[t].commands?s.allData[t].commands:[]})})):r.checked&&Array.from(i.options).forEach((e=>{const t=e.value,i=e.textContent.trim(),l=e.getAttribute("data-description");n.push({name:t,title:i,description:l||"",commands:s.allData[t]&&s.allData[t].commands?s.allData[t].commands:[]})}));const o=new Date,a=`${o.getMonth()+1}_${o.getDate()}_${o.getFullYear()}`,d={collectionTitle:document.getElementById("dl_collectionTitle").value,collectionDescription:document.getElementById("dl_collectionDescription").value,structures:n},c=`${d.collectionTitle.replace(/\s+/g,"_")}_${a}.json`,h=JSON.stringify(d,null,2),p=new Blob([h],{type:"application/json"}),m=URL.createObjectURL(p),u=document.createElement("a");u.href=m,u.download=c,document.body.appendChild(u),u.click(),document.body.removeChild(u),URL.revokeObjectURL(m)})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6file2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6File("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6filefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6File("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4file2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4File("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4filefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4File("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfile2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfilefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfile2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("2fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfilefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_delphifile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadDelphiFile("delphi")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrfile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("pqr")})),e.myEventCls.onIds("#"+e.pre+"reload_phifile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("phi")})),e.myEventCls.onIds("#"+e.pre+"reload_cubefile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("cube")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("pqrurl")})),e.myEventCls.onIds("#"+e.pre+"reload_phiurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("phiurl")})),e.myEventCls.onIds("#"+e.pre+"reload_cubeurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("cubeurl")})),e.myEventCls.onIds("#"+e.pre+"reload_delphifile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("delphi"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadDelphiFile("delphi2")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrfile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("pqr2")})),e.myEventCls.onIds("#"+e.pre+"reload_phifile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("phi2")})),e.myEventCls.onIds("#"+e.pre+"reload_cubefile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("cube2")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("pqrurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_phiurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("phiurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_cubeurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("cubeurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6fileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6FileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6fileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6FileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4fileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4FileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4fileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4FileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfileurl2fofc","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.mtzParserCls.loadMtzFileUrl("2fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfileurlfofc","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.mtzParserCls.loadMtzFileUrl("fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_pdbfile","click",(async function(t){e.icn3d,t.preventDefault();await s.loadPdbFile(!1,"pdbfile")})),e.myEventCls.onIds("#"+e.pre+"reload_pdbfile_app","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bAppend=!0,await s.loadPdbFile(i.bAppend,"pdbfile_app")})),e.myEventCls.onIds("#"+e.pre+"reload_mol2file","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"mol2file")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load mol2 file "+$("#"+e.pre+"mol2file").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="mol2",await i.mol2ParserCls.loadMol2Data(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_sdffile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"sdffile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load sdf file "+$("#"+e.pre+"sdffile").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="sdf",await i.sdfParserCls.loadSdfData(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_xyzfile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"xyzfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load xyz file "+$("#"+e.pre+"xyzfile").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="xyz",await i.xyzParserCls.loadXyzData(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"afmapfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=function(t){let n=t.target.result;s.setLogCmd("load AlphaFold PAE file "+$("#"+e.pre+"afmapfile").val(),!1),e.htmlCls.dialogCls.openDlg("dl_alignerrormap","Show Predicted Aligned Error (PAE) map"),i.contactMapCls.processAfErrorMap(JSON.parse(n))},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfilefull","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"afmapfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=function(t){let n=t.target.result;s.setLogCmd("load AlphaFold PAE file "+$("#"+e.pre+"afmapfile").val(),!1),e.htmlCls.dialogCls.openDlg("dl_alignerrormap","Show Predicted Aligned Error (PAE) map"),i.contactMapCls.processAfErrorMap(JSON.parse(n),!0)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_urlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),s.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?s.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let i=$("#"+e.pre+"filetype").val(),n=$("#"+e.pre+"urlfile").val();s.inputurl="type="+i+"&url="+encodeURIComponent(n),s.init(),s.bInputfile=!0,s.bInputUrlfile=!0,await s.pdbParserCls.downloadUrl(n,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmciffile","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bAppend=!0;await s.loadPdbFile(i.bAppend,"mmciffile",!0)})),e.myEventCls.onIds("#"+e.pre+"applycustomcolor","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.setOptionCls.setOption("color",$("#"+e.pre+"colorcustom").val()),s.setLogCmd("color "+$("#"+e.pre+"colorcustom").val(),!0)})),e.myEventCls.onIds(["#"+e.pre+"atomsCustomSphere2","#"+e.pre+"atomsCustomSphere","#"+e.pre+"radius_aroundsphere"],"change",(function(t){e.icn3d.bSphereCalc=!1})),e.myEventCls.onIds("#"+e.pre+"applypick_aroundsphere","click",(function(t){let i=e.icn3d,n=parseFloat($("#"+e.pre+"radius_aroundsphere").val()),l=$("#"+e.pre+"atomsCustomSphere").val(),r=$("#"+e.pre+"atomsCustomSphere2").val();if(0==r.length)alert("Please select the first set at step #1");else{let e="select zone cutoff "+n+" | sets "+r+" "+l+" | "+i.bSphereCalc;i.bSphereCalc||i.showInterCls.pickCustomSphere(n,r,l,i.bSphereCalc),i.bSphereCalc=!0,i.hlUpdateCls.updateHlAll(),s.setLogCmd(e,!0)}})),e.myEventCls.onIds("#"+e.pre+"sphereExport","click",(function(t){let i=e.icn3d;t.preventDefault();let n=parseFloat($("#"+e.pre+"radius_aroundsphere").val()),l=$("#"+e.pre+"atomsCustomSphere").val(),r=$("#"+e.pre+"atomsCustomSphere2").val();if(0==r.length)alert("Please select the first set at step #1");else{i.showInterCls.pickCustomSphere(n,r,l,i.bSphereCalc),i.bSphereCalc=!0;let t=i.viewInterPairsCls.exportSpherePairs(),o=Object.keys(e.utilsCls.getHlStructures()).join(",");i.saveFileCls.saveFile(o+"_sphere_pairs.html","html",t),s.setLogCmd("export pairs | "+r+" "+l+" | dist "+n,!0)}})),e.myEventCls.onIds("#"+e.pre+"apply_adjustmem","click",(function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+e.pre+"extra_mem_z").val()),l=parseFloat($("#"+e.pre+"intra_mem_z").val());i.selectionCls.adjustMembrane(n,l);let r="adjust membrane z-axis "+n+" "+l;s.setLogCmd(r,!0)})),e.myEventCls.onIds("#"+e.pre+"apply_selectplane","click",(function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+e.pre+"selectplane_z1").val()),l=parseFloat($("#"+e.pre+"selectplane_z2").val());i.selectionCls.selectBtwPlanes(n,l);let r="select planes z-axis "+n+" "+l;s.setLogCmd(r,!0)})),e.myEventCls.onIds(["#"+e.pre+"atomsCustomHbond2","#"+e.pre+"atomsCustomHbond","#"+e.pre+"analysis_hbond","#"+e.pre+"analysis_saltbridge","#"+e.pre+"analysis_contact","#"+e.pre+"hbondthreshold","#"+e.pre+"saltbridgethreshold","#"+e.pre+"contactthreshold"],"change",(function(t){e.icn3d.bHbondCalc=!1})),e.myEventCls.onIds("#"+e.pre+"crossstrucinter","change",(function(t){let i=e.icn3d;t.preventDefault(),i.crossstrucinter=parseInt($("#"+e.pre+"crossstrucinter").val()),s.setLogCmd("cross structure interaction "+i.crossstrucinter,!0)})),e.myEventCls.onIds("#"+e.pre+"applyhbonds","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("3d")})),e.myEventCls.onIds("#"+e.pre+"applycontactmap","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+i.pre+"contactdist").val()),l=$("#"+i.pre+"contacttype").val();await i.contactMapCls.contactMap(n,l),s.setLogCmd("contact map | dist "+n+" | type "+l,!0)})),e.myEventCls.onIds("#"+e.pre+"hbondWindow","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("view")})),e.myEventCls.onIds("#"+e.pre+"areaWindow","click",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.pre+"atomsCustomHbond").val(),l=$("#"+e.pre+"atomsCustomHbond2").val();i.analysisCls.calcBuriedSurface(l,n),s.setLogCmd("calc buried surface | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"sortSet1","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("save1")})),$(document).on("click","."+e.pre+"showintercntonly",(function(t){e.icn3d,t.stopImmediatePropagation(),$(".icn3d-border").hide(),s.setLogCmd("table inter count only",!0)})),$(document).on("click","."+e.pre+"showinterdetails",(function(t){e.icn3d,t.stopImmediatePropagation(),$(".icn3d-border").show(),s.setLogCmd("table inter details",!0)})),e.myEventCls.onIds("#"+e.pre+"sortSet2","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("save2")})),e.myEventCls.onIds("#"+e.pre+"hbondGraph","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("graph")})),e.myEventCls.onIds("#"+e.pre+"hbondLineGraph","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("linegraph")})),e.myEventCls.onIds("#"+e.pre+"hbondLineGraph2","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!0,s.setLogCmd("show ref number",!0),await i.showInterCls.showInteractions("linegraph")})),e.myEventCls.onIds("#"+e.pre+"hbondScatterplot","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("scatterplot")})),e.myEventCls.onIds("#"+e.pre+"hbondScatterplot2","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!0,s.setLogCmd("show ref number",!0),await i.showInterCls.showInteractions("scatterplot")})),e.myEventCls.onIds("#"+e.pre+"hbondLigplot","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("ligplot")})),$(document).on("click","#"+e.svgid+" circle.selected",(function(t){let s=e.icn3d;t.stopImmediatePropagation();let i=$(this).attr("res");!1!==s.bSelectResidue||s.bShift||s.bCtrl||s.selectionCls.removeSelection(),void 0!==i&&(s.hlSeqCls.selectResidues(i,this),s.hlObjectsCls.addHlObjects())})),e.myEventCls.onIds("#"+e.svgid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.svgid,s.inputid+"_force_directed_graph.svg")})),e.myEventCls.onIds("#"+e.svgid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.svgid,s.inputid+"_force_directed_graph.png")})),e.myEventCls.onIds("#"+e.svgid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.graphStr.substr(0,s.graphStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_force_directed_graph.json","text",[i])})),$(document).on("click","#"+e.svgid_ct+"_svg",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.svgid_ct,s.inputid+"_cartoon.svg")})),$(document).on("click","#"+e.svgid_ct+"_png",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.svgid_ct,s.inputid+"_cartoon.png")})),$(document).on("click","#"+e.svgid_ct+"_json",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveFile(s.inputid+"_cartoon.json","text",[s.graphStr])})),$(document).on("change","#"+e.svgid_ct+"_label",(function(t){e.icn3d,t.preventDefault();let i=$("#"+e.svgid_ct+"_label").val();$("#"+e.svgid_ct+" text").removeClass(),$("#"+e.svgid_ct+" text").addClass(i),s.setLogCmd("cartoon label "+i,!0)})),e.myEventCls.onIds("#"+e.linegraphid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.linegraphid,s.inputid+"_line_graph.svg")})),e.myEventCls.onIds("#"+e.linegraphid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.linegraphid,s.inputid+"_line_graph.png")})),e.myEventCls.onIds("#"+e.linegraphid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.lineGraphStr.substr(0,s.lineGraphStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_line_graph.json","text",[i])})),e.myEventCls.onIds("#"+e.linegraphid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.linegraphid+"_scale").val();$("#"+e.linegraphid).attr("width",(i.linegraphWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("line graph scale "+n,!0)})),e.myEventCls.onIds("#"+e.scatterplotid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.scatterplotid,s.inputid+"_scatterplot.svg")})),e.myEventCls.onIds("#"+e.scatterplotid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.scatterplotid,s.inputid+"_scatterplot.png")})),e.myEventCls.onIds("#"+e.scatterplotid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.scatterplotStr.substr(0,s.scatterplotStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_scatterplot.json","text",[i])})),e.myEventCls.onIds("#"+e.scatterplotid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.scatterplotid+"_scale").val();$("#"+e.scatterplotid).attr("width",(i.scatterplotWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("scatterplot scale "+n,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.ligplotid,s.inputid+"_ligplot.svg",void 0,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.ligplotid,s.inputid+"_ligplot.png",void 0,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.ligplotid+"_scale").val();$("#"+e.ligplotid).attr("width",(i.ligplotWidth*parseFloat(n)).toString()+"px"),i.ligplotScale=parseFloat(n),s.setLogCmd("ligplot scale "+n,!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.contactmapid,s.inputid+"_contactmap.svg",!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.contactmapid,s.inputid+"_contactmap.png",!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.contactmapStr.substr(0,s.contactmapStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_contactmap.json","text",[i])})),e.myEventCls.onIds("#"+e.contactmapid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.contactmapid+"_scale").val();$("#"+e.contactmapid).attr("width",(i.contactmapWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("contactmap scale "+n,!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault();$("#"+e.alignerrormapid+"_scale").val(1),$("#"+e.alignerrormapid).attr("width",(s.alignerrormapWidth*parseFloat(1)).toString()+"px"),s.saveFileCls.saveSvg(e.alignerrormapid,s.inputid+"_alignerrormap.svg",!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault();$("#"+e.alignerrormapid+"_scale").val(1),$("#"+e.alignerrormapid).attr("width",(s.alignerrormapWidth*parseFloat(1)).toString()+"px"),s.saveFileCls.savePng(e.alignerrormapid,s.inputid+"_alignerrormap.png",!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_full","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.contactMapCls.afErrorMap(afid,!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.alignerrormapStr.substr(0,s.alignerrormapStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_alignerrormap.json","text",[i])})),e.myEventCls.onIds("#"+e.alignerrormapid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.alignerrormapid+"_scale").val();$("#"+e.alignerrormapid).attr("width",(i.alignerrormapWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("alignerrormap scale "+n,!0)})),e.myEventCls.onIds("#"+e.svgid+"_label","change",(function(t){e.icn3d,t.preventDefault();let i=$("#"+e.svgid+"_label").val();$("#"+e.svgid+" text").removeClass(),$("#"+e.svgid+" text").addClass(i),s.setLogCmd("graph label "+i,!0)})),e.myEventCls.onIds("#"+e.svgid+"_hideedges","change",(function(t){let i=e.icn3d;t.preventDefault(),e.htmlCls.hideedges=parseInt($("#"+e.svgid+"_hideedges").val()),e.htmlCls.hideedges?(e.htmlCls.contactInsideColor="FFF",e.htmlCls.hbondInsideColor="FFF",e.htmlCls.ionicInsideColor="FFF"):(e.htmlCls.contactInsideColor="DDD",e.htmlCls.hbondInsideColor="AFA",e.htmlCls.ionicInsideColor="8FF"),void 0!==i.graphStr&&(i.bRender&&e.htmlCls.force&&e.drawGraph(i.graphStr,e.pre+"dl_graph"),s.setLogCmd("hide edges "+e.htmlCls.hideedges,!0))})),e.myEventCls.onIds("#"+e.svgid+"_force","change",(function(t){let i=e.icn3d;t.preventDefault(),e.htmlCls.force=parseInt($("#"+e.svgid+"_force").val()),void 0!==i.graphStr&&(s.setLogCmd("graph force "+e.htmlCls.force,!0),i.getGraphCls.handleForce())})),e.myEventCls.onIds("#"+e.pre+"hbondReset","click",(function(t){let i=e.icn3d;t.preventDefault(),i.viewInterPairsCls.resetInteractionPairs(),s.setLogCmd("reset interaction pairs",!0)})),e.myEventCls.onIds("#"+e.pre+"applypick_labels","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"labeltext").val(),l=$("#"+e.pre+"labelsize").val(),r=$("#"+e.pre+"labelcolor").val(),o=$("#"+e.pre+"labelbkgd").val();if("0"!==l&&""!==l&&"undefined"!==l||(l=0),"0"!==r&&""!==r&&"undefined"!==r||(r=0),"0"!==o&&""!==o&&"undefined"!==o||(o=0),void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{let e=(i.pAtom.coord.x+i.pAtom2.coord.x)/2,t=(i.pAtom.coord.y+i.pAtom2.coord.y)/2,a=(i.pAtom.coord.z+i.pAtom2.coord.z)/2;i.analysisCls.addLabel(n,e,t,a,l,r,o,"custom"),i.pickpair=!1;let d="",c="",h="";0!=l&&(d=" | size "+l),0!=r&&(c=" | color "+r),0!=o&&(h=" | background "+o),s.setLogCmd("add label "+n+" | x "+e.toPrecision(4)+" y "+t.toPrecision(4)+" z "+a.toPrecision(4)+d+c+h+" | type custom",!0),i.drawCls.draw()}})),e.myEventCls.onIds("#"+e.pre+"applyselection_labels","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"labeltext2").val(),l=$("#"+e.pre+"labelsize2").val(),r=$("#"+e.pre+"labelcolor2").val(),o=$("#"+e.pre+"labelbkgd2").val();"0"!==l&&""!==l&&"undefined"!==l||(l=0),"0"!==r&&""!==r&&"undefined"!==r||(r=0),"0"!==o&&""!==o&&"undefined"!==o||(o=0);let a=i.applyCenterCls.centerAtoms(e.hashUtilsCls.hash2Atoms(i.hAtoms,i.atoms)),d=a.center.x,c=a.center.y,h=a.center.z;i.analysisCls.addLabel(n,d,c,h,l,r,o,"custom");let p="",m="",u="";0!=l&&(p=" | size "+l),0!=r&&(m=" | color "+r),0!=o&&(u=" | background "+o),s.setLogCmd("add label "+n+" | x "+d.toPrecision(4)+" y "+c.toPrecision(4)+" z "+h.toPrecision(4)+p+m+u+" | type custom",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applylabelcolor","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.labelcolor=$("#"+e.pre+"labelcolorall").val(),s.setLogCmd("set label color "+i.labelcolor,!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applypick_stabilizer","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),void 0===i.pAtom||void 0===i.pAtom2?alert("Please pick another atom"):(i.pickpair=!1,s.setLogCmd("add one stabilizer | "+i.pAtom.serial+" "+i.pAtom2.serial,!0),void 0===i.pairArray&&(i.pairArray=[]),i.pairArray.push(i.pAtom.serial),i.pairArray.push(i.pAtom2.serial),i.threeDPrintCls.setThichknessFor3Dprint(),i.drawCls.draw())}));let l=new CP(document.querySelector("#"+e.pre+"colorcustom"));l.on("change",(function(e){this.target.value=e})),e.myEventCls.onIds("#"+e.pre+"colorcustom","input",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","keyup",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","paste",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","cut",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()}));let r=new CP(document.querySelector("#"+e.pre+"labelcolorall"));r.on("change",(function(e){this.target.value=e})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","input",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","keyup",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","paste",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","cut",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"applypick_stabilizer_rm","click",(function(t){let i=e.icn3d;if(t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{i.pickpair=!1,s.setLogCmd("remove one stabilizer | "+i.pAtom.serial+" "+i.pAtom2.serial,!0);let e=[];e.push(i.pAtom.serial),e.push(i.pAtom2.serial),i.threeDPrintCls.removeOneStabilizer(e),i.drawCls.draw()}})),e.myEventCls.onIds("#"+e.pre+"applypick_measuredistance","click",(function(t){let i=e.icn3d;if(t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1,void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{let t=0,n=0,l=$("#"+e.pre+"linecolor").val(),r=(i.pAtom.coord.x+i.pAtom2.coord.x)/2,o=(i.pAtom.coord.y+i.pAtom2.coord.y)/2,a=(i.pAtom.coord.z+i.pAtom2.coord.z)/2;i.analysisCls.addLineFromPicking("distance");let d=(parseInt(10*i.pAtom.coord.distanceTo(i.pAtom2.coord))/10).toString()+" A";i.analysisCls.addLabel(d,r,o,a,t,l,n,"distance");let c="",h="",p="";0!=l&&(h=" | color "+l),s.setLogCmd("add label "+d+" | x "+r.toPrecision(4)+" y "+o.toPrecision(4)+" z "+a.toPrecision(4)+c+h+p+" | type distance",!0),i.drawCls.draw(),i.pk=2}})),e.myEventCls.onIds("#"+e.pre+"applydist2","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1;let n=$("#"+e.pre+"atomsCustomDist").val(),l=$("#"+e.pre+"atomsCustomDist2").val();i.analysisCls.measureDistTwoSets(n,l),s.setLogCmd("dist | "+l+" "+n,!0)})),$(document).on("click",".icn3d-distance",(function(t){let i=e.icn3d;t.preventDefault(),i.bMeasureDistance=!1,i.distPnts=[],i.labels.distance=[],i.lines.distance=[];let n=$(this).attr("sets").split("|"),l=[n[0]],r=[n[1]];i.analysisCls.measureDistTwoSets(l,r),s.setLogCmd("dist | "+r+" "+l,!0)})),e.myEventCls.onIds("#"+e.pre+"applydisttable","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1;let n=$("#"+e.pre+"atomsCustomDistTable").val(),l=$("#"+e.pre+"atomsCustomDistTable2").val();i.analysisCls.measureDistManySets(n,l),e.htmlCls.dialogCls.openDlg("dl_disttable","Distance among the sets"),s.setLogCmd("disttable | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyangletable","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureAngle=!1;let n=$("#"+e.pre+"atomsCustomAngleTable").val(),l=$("#"+e.pre+"atomsCustomAngleTable2").val();i.analysisCls.measureAngleManySets(n,l),e.htmlCls.dialogCls.openDlg("dl_angletable","Angles among the sets"),s.setLogCmd("angletable | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applylinebtwsets","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bLinebtwsets=!1;let n=$("#"+e.pre+"linebtwsets").val(),l=$("#"+e.pre+"linebtwsets2").val(),r=i.definedSetsCls.getAtomsFromNameArray(n),o=i.definedSetsCls.getAtomsFromNameArray(l),a=i.contactCls.getExtent(r),d=i.contactCls.getExtent(o),c=new THREE.Vector3(a[2][0],a[2][1],a[2][2]),h=new THREE.Vector3(d[2][0],d[2][1],d[2][2]),p=$("#"+e.pre+"linebtwsets_radius").val(),m=$("#"+e.pre+"linebtwsets_customcolor").val(),u=$("#"+e.pre+"linebtwsets_opacity").val(),g="Solid"!=$("#"+e.pre+"linebtwsets_style").val(),f="cylinder",C="add line | x1 "+c.x.toPrecision(4)+" y1 "+c.y.toPrecision(4)+" z1 "+c.z.toPrecision(4)+" | x2 "+h.x.toPrecision(4)+" y2 "+h.y.toPrecision(4)+" z2 "+h.z.toPrecision(4)+" | color "+m+" | dashed "+g+" | type "+f+" | radius "+p+" | opacity "+u;s.setLogCmd(C,!0),i.analysisCls.addLine(c.x,c.y,c.z,h.x,h.y,h.z,m,g,f,p,u),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applycartoonshape","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bCartoonshape=!1;let n=$("#"+e.pre+"cartoonshape").val(),l=i.definedSetsCls.getAtomsFromNameArray(n),r=i.contactCls.getExtent(l),o=new THREE.Vector3(r[2][0],r[2][1],r[2][2]),a=$("#"+e.pre+"cartoonshape_shape").val(),d=$("#"+e.pre+"cartoonshape_radius").val(),c=$("#"+e.pre+"cartoonshape_customcolor").val(),h=$("#"+e.pre+"cartoonshape_opacity").val();c="#"+c.replace(/\#/g,"");let p,m=e.parasCls.thr(c);"Sphere"==a?(i.sphereCls.createSphereBase(o,m,d,void 0,void 0,void 0,h),p="add sphere | "+n+" | color "+c+" | opacity "+h+" | radius "+d):(i.boxCls.createBox_base(o,d,m,void 0,void 0,void 0,h),p="add cube | "+n+" | color "+c+" | opacity "+h+" | radius "+d),s.setLogCmd(p,!0),i.shapeCmdHash[p]=1,i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearlinebtwsets","click",(function(t){let i=e.icn3d;t.preventDefault(),i.lines.cylinder=[],s.setLogCmd("clear line between sets",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearcartoonshape","click",(function(t){let i=e.icn3d;t.preventDefault(),i.shapeCmdHash={},s.setLogCmd("clear shape",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"apply_thickness_3dprint","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("3dprint")})),e.myEventCls.onIds("#"+e.pre+"apply_thickness_style","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("style"),e.htmlCls.setMenuCls.setLogWindow(!0)})),e.myEventCls.onIds("#"+e.pre+"reset_thickness_3dprint","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("3dprint",!0)})),e.myEventCls.onIds("#"+e.pre+"reset_thickness_style","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("style",!0),e.htmlCls.setMenuCls.setLogWindow(!0)})),e.myEventCls.onIds("#"+e.pre+"reset","click",(function(t){let s=e.icn3d;s.selectionCls.resetAll(),s.bRender&&s.drawCls.draw()})),e.myEventCls.onIds(["#"+e.pre+"toggleHighlight","#"+e.pre+"toggleHighlight2"],"click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.toggleHighlight(),s.setLogCmd("toggle highlight",!0)})),e.myEventCls.onIds("#"+e.pre+"seq_clearselection","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"seq_clearselection2","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),t.preventDefault(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"alignseq_clearselection","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"replay","click",(async function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.CURRENTNUMBER++;let n=e.cfg.replay?i.STATENUMBER:i.STATENUMBER-1;if(i.CURRENTNUMBER==n)i.bReplay=0,$("#"+e.pre+"replay").hide();else if(i.commands.length>0&&i.commands[i.CURRENTNUMBER]){await i.loadScriptCls.execCommandsBase(i.CURRENTNUMBER,i.CURRENTNUMBER,i.STATENUMBER);let t=i.commands[i.CURRENTNUMBER].indexOf("|||"),n=-1!=t?i.commands[i.CURRENTNUMBER].substr(0,t):i.commands[i.CURRENTNUMBER],l=30,r=n.length>l?n.substr(0,l)+"...":n,o=i.applyCommandCls.getMenuFromCmd(r);$("#"+e.pre+"replay_cmd").html("Cmd: "+r),$("#"+e.pre+"replay_menu").html("Menu: "+o),s.setLogCmd(n,!0),i.drawCls.draw()}})),t.loadScriptCls.pressCommandtext(),e.myEventCls.onIds("#"+e.pre+"seq_saveselection","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"seq_command_name").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),e.myEventCls.onIds("#"+e.pre+"seq_saveselection2","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"seq_command_name2").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),e.myEventCls.onIds("#"+e.pre+"mn2_saveresidue","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),i.selectionCls.saveEachResiInSel(),s.setLogCmd("select each residue",!0)})),e.myEventCls.onIds("#"+e.pre+"alignseq_saveselection","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"alignseq_command_name").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),$(document).on("click","."+e.pre+"outputselection",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelectResidue=!1,i.bSelectAlignResidue=!1,s.setLogCmd("output selection",!0),i.threeDPrintCls.outputSelection()})),$(document).on("click",".icn3d-saveicon",(function(t){e.icn3d,t.stopImmediatePropagation();let i=$(this).attr("pid");s.saveHtml(i),s.setLogCmd("save html "+i,!0)})),$(document).on("click",".icn3d-hideicon",(function(t){let s=e.icn3d;t.stopImmediatePropagation();let i=$(this).attr("pid");if(!e.cfg.notebook)if(void 0===s.dialogHashHideDone&&(s.dialogHashHideDone={}),void 0===s.dialogHashPosToRight&&(s.dialogHashPosToRight={}),s.dialogHashHideDone.hasOwnProperty(i)){let e=s.dialogHashHideDone[i].width,t=s.dialogHashHideDone[i].height,n=s.dialogHashHideDone[i].position;$("#"+i).dialog("option","width",e),$("#"+i).dialog("option","height",t),$("#"+i).dialog("option","position",n),delete s.dialogHashHideDone[i]}else{s.dialogHashHideDone[i]={width:$("#"+i).dialog("option","width"),height:$("#"+i).dialog("option","height"),position:$("#"+i).dialog("option","position")};let e,t=160,n=80;$("#"+i).dialog("option","width",t),$("#"+i).dialog("option","height",n),s.dialogHashPosToRight.hasOwnProperty(i)?e=s.dialogHashPosToRight[i]:(e=Object.keys(s.dialogHashPosToRight).length*(t+10),s.dialogHashPosToRight[i]=e);let l={my:"right bottom",at:"right-"+e+" bottom+60",of:"#"+s.divid,collision:"none"};$("#"+i).dialog("option","position",l)}})),$(document).on("click","."+e.pre+"selres",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelOneRes=!1;let n=$("."+e.pre+"seloneres");for(let e=0,t=n.length;e0&&(r+=" or "),r+=i.selectionCls.selectOneResid(t)}i.hlUpdateCls.updateHlAll(),s.setLogCmd(r,!0)})),$(document).on("click","."+e.pre+"seloneres",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.bSelOneRes||(s.hAtoms={},s.selectedResidues={},s.bSelOneRes=!0);let i=$(this).attr("resid"),n=$(this).attr("id");$("#"+n).length&&$("#"+n)[0].checked?s.selectionCls.selectOneResid(i):$("#"+n).length&&!$("#"+n)[0].checked&&s.selectionCls.selectOneResid(i,!0),s.hlUpdateCls.updateHlAll()})),$(document).on("click","."+e.pre+"selset",(async function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelOneRes=!1;let n=$("."+e.pre+"seloneres");for(let e=0,t=n.length;e0))return{sequencesHtml:a,maxSeqCnt:d};c[s]=1}let h,p=void 0===t||t;p&&(o.hAtoms={});let m,u,g=0,f=0;for(let t=0,l=e.length;t0?m:l,p&&(o.hAtoms=r.hashUtilsCls.unionHash(o.hAtoms,o.alnChains[l]));let C=[],b="",y=void 0!==o.alnChainsSeq[l]?o.alnChainsSeq[l].length:0;y>d&&(d=y);let v,_,w=u.indexOf("_"),S=u.substr(0,w),A=u.substr(w+1);for(let e=0,t=y;e=0;--e)if("-"!=o.alnChainsSeq[l][e].resn){_=o.alnChainsSeq[l][e].resi;break}b+=""+v+"",h=!(void 0===e||!c.hasOwnProperty(u));for(let e=0,t=y;e"}""!==a?-1!=o.alnChainsSeq[l][e].resi?b+=""+o.alnChainsSeq[l][e].resn+"":b+=""+o.alnChainsSeq[l][e].resn+"":b+=""+o.alnChainsSeq[l][e].resn+""}b+=""+_+"";let x=e.length,k=void 0!==o.alnChainsAnno[l]?o.alnChainsAnno[l].length:0;for(let t=0,s=k;t";for(let e=0,i=o.alnChainsAnno[l][t].length;e ':' ';else if("E"==i)if(void 0!==o.alnChainsSeq[s][e]){let i=s+"_"+o.alnChainsSeq[s][e].resi;if(o.residues.hasOwnProperty(i)){o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[i]).ssend?C[t]+=' ':C[t]+=' '}else C[t]+=' '}else C[t]+=' ';else C[t]+="c"==i?' ':"o"==i?' ':"";else C[t]+=""+i+""}C[t]+=""}let O=l,R=void 0!==o.pdbid_chain2title?o.pdbid_chain2title[u]:"";for(let e=k-1;e>=0;--e){let t=o.alnChainsAnTtl[l][e][0];"SS"==t&&(t=""),a+="
    "+t+"
    "+C[e]+"
    "}a+=''+b+"
    ",g>0&&(f+=y),++g}return{sequencesHtml:a,maxSeqCnt:d}}}class u{constructor(e){this.icn3dui=e}getLink(e,t,s,i){let n=this.icn3dui;return n.icn3d,n.htmlCls.allMenus[e]=t,i&&(n.htmlCls.allMenusSel[e]=i),s&&(n.htmlCls.simpleMenus[e]=1),"
  • "+t+"
  • "}getMenuText(e,t,s,i,n){let l=this.icn3dui;l.icn3d,l.htmlCls.allMenus[e]=t,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1);let r="icn3d-menupd"==s?" style='padding-left:1.5em!important;'":"";return"
  • "+t+""}getMenuUrl(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.allMenus[e]=s,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1),"
  • "+s+"
  • "}getMenuSep(){return this.icn3dui.icn3d,"
  • -
  • "}getLinkWrapper(e,t,s,i,n,l){let r=this.icn3dui;r.icn3d,r.htmlCls.allMenus[e]=t,n&&(r.htmlCls.allMenusSel[e]=n),i&&(r.htmlCls.simpleMenus[e]=1);let o=l?' style="display:none"':"";return"
  • "+t+"
  • "}getLinkWrapper2(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.allMenus[e]=t,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1),"
  • "+t+""}getRadio(e,t,s,i,n,l){let r=this.icn3dui;r.icn3d,r.htmlCls.allMenus[t]=s,l&&(r.htmlCls.allMenusSel[t]=l),n&&(r.htmlCls.simpleMenus[t]=1);let o=i?" checked":"";return"
  • "}getRadioColor(e,t,s,i,n,l,r){let o=this.icn3dui;o.icn3d,o.htmlCls.allMenus[t]=s,r&&(o.htmlCls.allMenusSel[t]=r),l&&(o.htmlCls.simpleMenus[t]=1);let a=n?" checked":"";return"
  • "}setAdvanced(e){let t=this.icn3dui;t.icn3d;let s=void 0===e?"":e,i=t.cfg.notebook?"icn3d-hidden":"",n=t.htmlCls.divStr+"dl_advanced"+s+"' class='"+i+"'>";return n+="",n+="",n+="
    ",n+="",n+="",n+="",n+="
    Select:"+t.htmlCls.inputTextStr+"id='"+t.pre+"command"+s+"' placeholder='$[structures].[chains]:[residues]@[atoms]' size='60'>
    Name:"+t.htmlCls.inputTextStr+"id='"+t.pre+"command_name"+s+"' placeholder='my_selection' size='60'>
    "+t.htmlCls.space3+t.htmlCls.buttonStr+"command_apply"+s+"'>Save Selection to Defined Sets
    ",n+='Specification Tips:

    ',n+=t.htmlCls.divStr+"specguide"+s+"' style='display:none; width:500px' class='icn3d-box'>",n+='Specification: In the selection "$1HHO,4N7N.A,B,C:5-10,LV,3AlaVal,chemicals@CA,C,C*":',n+='
    • "$1HHO,4N7N" uses "$" to indicate structure selection.
      ',n+='
    • ".A,B,C" uses "." to indicate chain selection.
      ',n+='
    • ":5-10,LV,3LeuVal,chemicals" uses the colon ":" to indicate residue selection. Residue selection could be residue number(5-10), one-letter IUPAC residue name abbreviations(LV), three-letter residue names(AlaVal, "3" indicates each residue name has three letters), or predefined names: "proteins", "nucleotides", "chemicals", "ions", and "water". IUPAC abbreviations can be written either as a contiguous string(e.g., ":LV"), in order to find all instances of that sequence in the structure, or they can be separated by commas(e.g., ":L,V") to select all residues of a given type in the structure(in the latter case, select all Leucine and Valine in the structure).
      ',n+='
    • "@CA,C,C*" uses "@" to indicate atom name selection. "C*" selects any atom names starting with "C".
      ',n+='
    • Partial definition is allowed, e.g., ":1-10" selects all residue IDs 1-10 in all chains.
      ',n+='
    • Different selections can be unioned(with "or", default), intersected(with "and"), or negated(with "not"). For example, ":1-10 or :K" selects all residues 1-10 and all Lys residues. ":1-10 and :K" selects all Lys residues in the range of residue number 1-10. ":1-10 or not :K" selects all residues 1-10, which are not Lys residues.
      ',n+='
    • The wild card character "X" or "x" can be used to represent any character.',n+="
    ",n+="Set Operation:",n+='
    • Users can select multiple sets in the menu "Select > Defined Sets".
      ',n+='
    • Different sets can be unioned(with "or", default), intersected(with "and"), or negated(with "not"). For example, if the "Defined Sets" menu has four sets ":1-10", ":11-20", ":5-15", and ":7-8", the command "saved atoms :1-10 or :11-20 and :5-15 not :7-8" unions all residues 1-10 and 11-20 to get the residues 1-20, then intersects with the residues 5-15 to get the residues 5-15, then exclude the residues 7-8 to get the final residues 5-6 and 9-15.
    ',n+="Full commands in url or command window:",n+="
    • Select without saving the set: select $1HHO,4N7N.A,B,C:5-10,LV,chemicals@CA,C,C*
      ",n+="
    • Select and save: select $1HHO,4N7N.A,B,C:5-10,LV,chemicals@CA,C,C* | name my_name
    ",n+="",n+="
    ",n+="",n}getOptionHtml(e,t){let s=this.icn3dui;s.icn3d;let i="";for(let n=0,l=e.length;n"+l+"":s.htmlCls.optionStr+"'"+l+"'>"+l+""}return i}setColorHints(){let e=this.icn3dui;e.icn3d;let t="";return t+=e.htmlCls.divNowrapStr+'Green: H-Bonds; ',t+='Cyan: Salt Bridge/Ionic; ',t+='Grey: Contacts',t+=e.htmlCls.divNowrapStr+'Magenta: Halogen Bonds; ',t+='Red: π-Cation; ',t+='Blue: π-Stacking',t}setThicknessHtml(e){let t=this.icn3dui,s=t.icn3d,i="",n="3dprint"==e?"1":"0.1",l="3dprint"==e?"1.2":"0.3",r="3dprint"==e?"0.8":"0.4",o="3dprint"==e?"0.8":"0.4",a="3dprint"==e?"1":"0.4",d="3dprint"==e?"0.6":"0.3",c="3dprint"==e?"1":"0.2",h="3dprint"==e?"2":"1.3",p="3dprint"==e?"1.4":"0.8",m=40,u=.8,g=.4,f=.2,C=0,b=1,y=0;if("style"==e){if(""!=this.getCookie("shininess")&&(m=parseFloat(this.getCookie("shininess"))),""!=this.getCookie("light1")&&(u=parseFloat(this.getCookie("light1")),g=parseFloat(this.getCookie("light2")),f=parseFloat(this.getCookie("light3"))),""!=this.getCookie("lineRadius")){n=parseFloat(this.getCookie("lineRadius")),l=parseFloat(this.getCookie("coilWidth")),r=parseFloat(this.getCookie("cylinderRadius"));let e=this.getCookie("crosslinkRadius");o=isNaN(e)?s.crosslinkRadius:parseFloat(e),a=parseFloat(this.getCookie("traceRadius")),d=parseFloat(this.getCookie("dotSphereScale")),c=parseFloat(this.getCookie("ribbonthickness")),h=parseFloat(this.getCookie("helixSheetWidth")),p=parseFloat(this.getCookie("nucleicAcidWidth"))}""!=this.getCookie("glycan")&&(C=parseFloat(this.getCookie("glycan"))),""!=this.getCookie("membrane")&&(b=parseFloat(this.getCookie("membrane"))),""!=this.getCookie("cmdwindow")&&(y=parseFloat(this.getCookie("cmdwindow"))),i+="Note: The following parameters will be saved in cache. You just need to set them once.

    ",i+="1. Shininess: "+t.htmlCls.inputTextStr+"id='"+t.pre+"shininess' value='"+m+"' size=4>"+t.htmlCls.space3+"(for the shininess of the 3D objects, default 40)

    ",i+="2. Three directional lights:
    ",i+="Key Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light1' value='"+u+"' size=4>"+t.htmlCls.space3+"(for the light strength of the key light, default 0.8)
    ",i+="Fill Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light2' value='"+g+"' size=4>"+t.htmlCls.space3+"(for the light strength of the fill light, default 0.4)
    ",i+="Back Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light3' value='"+f+"' size=4>"+t.htmlCls.space3+"(for the light strength of the back light, default 0.2)

    ",i+="3. Thickness:
    "}return i+="Line Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"linerad_"+e+"' value='"+n+"' size=4>"+t.htmlCls.space3+"(for stabilizers, hydrogen bonds, distance lines, default 0.1)
    ",i+="Coil Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"coilrad_"+e+"' value='"+l+"' size=4>"+t.htmlCls.space3+"(for coils, default 0.3)
    ",i+="Stick Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"stickrad_"+e+"' value='"+r+"' size=4>"+t.htmlCls.space3+"(for sticks, default 0.4)
    ",i+="Cross-Linkage Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"crosslinkrad_"+e+"' value='"+o+"' size=4>"+t.htmlCls.space3+"(for cross-linkages, default 0.4)
    ",i+="Trace Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"tracerad_"+e+"' value='"+a+"' size=4>"+t.htmlCls.space3+"(for C alpha trace, O3' trace, default 0.4)
    ",i+="Ribbon Thickness: "+t.htmlCls.inputTextStr+"id='"+t.pre+"ribbonthick_"+e+"' value='"+c+"' size=4>"+t.htmlCls.space3+"(for helix and sheet ribbons, nucleotide ribbons, default 0.2)
    ",i+="Protein Ribbon Width: "+t.htmlCls.inputTextStr+"id='"+t.pre+"prtribbonwidth_"+e+"' value='"+h+"' size=4>"+t.htmlCls.space3+"(for helix and sheet ribbons, default 1.3)
    ",i+="Nucleotide Ribbon Width: "+t.htmlCls.inputTextStr+"id='"+t.pre+"nucleotideribbonwidth_"+e+"' value='"+p+"' size=4>"+t.htmlCls.space3+"(for nucleotide ribbons, default 0.8)
    ",i+="Ball Scale: "+t.htmlCls.inputTextStr+"id='"+t.pre+"ballscale_"+e+"' value='"+d+"' size=4>"+t.htmlCls.space3+"(for styles 'Ball and Stick' and 'Dot', default 0.3)
    ","style"==e&&(i+="
    4. Show Glycan Cartoon: "+t.htmlCls.inputTextStr+"id='"+t.pre+"glycan' value='"+C+"' size=4>"+t.htmlCls.space3+"(0: hide, 1: show, default 0)
    ",i+="
    5. Show Membrane: "+t.htmlCls.inputTextStr+"id='"+t.pre+"membrane' value='"+b+"' size=4>"+t.htmlCls.space3+"(0: hide, 1: show, default 1)
    ",i+="
    6. Enlarge Command Window: "+t.htmlCls.inputTextStr+"id='"+t.pre+"cmdwindow' value='"+y+"' size=4>"+t.htmlCls.space3+"(0: Regular, 1: Large, default 0)

    "),i+=t.htmlCls.spanNowrapStr+""+t.htmlCls.buttonStr+"apply_thickness_"+e+"'>Apply   ",i+=t.htmlCls.spanNowrapStr+""+t.htmlCls.buttonStr+"reset_thickness_"+e+"'>Reset",i}getCookie(e){let t=e+"=",s=decodeURIComponent(document.cookie).split(";");for(let e=0;e":(n+='
    ',n+="
    Selection: Name: "+s.htmlCls.inputTextStr+"id='"+s.pre+"seq_command_name"+e+"' value='seq_"+l+"' size='5'> "+s.htmlCls.space2+"

    ",n+=s.htmlCls.divStr+"seqguide"+e+"' style='display:none; white-space:normal;' class='icn3d-box'>"),n+=this.getSelectionHints();return n+="Residue labeling: standard residue with coordinates: UPPER case letter; nonstandard residue with coordinates: the first UPPER case letter plus a period except that water residue uses the letter 'O'; residue missing coordinates: lower case letter."+(s.utilsCls.isMac()&&!s.utilsCls.isMobile()?"

    Turn on scroll bar: System preferences -> General -> show scroll bars -> check Always":"")+"
    ",n}setAlignSequenceGuide(e,t){let s=this.icn3dui,i=s.icn3d,n="";let l=i&&i.defNames2Atoms?Object.keys(i.defNames2Atoms).length:1;n+='
    ',n+="
    Selection: Name: "+s.htmlCls.inputTextStr+"id='"+s.pre+"alignseq_command_name' value='alseq_"+l+"' size='10'> "+s.htmlCls.space2+"

    ",n+=s.htmlCls.divStr+"alignseqguide' style='display:none; white-space:normal;' class='icn3d-box'>",n+=this.getSelectionHints();return n+="Residue labeling: aligned residue with coordinates: UPPER case letter; non-aligned residue with coordinates: lower case letter which can be highlighted; residue missing coordinates: lower case letter which can NOT be highlighted."+(s.utilsCls.isMac()&&!s.utilsCls.isMobile()?"

    Turn on scroll bar: System preferences -> General -> show scroll bars -> check Always":"")+"
    ",n}getSelectionHints(){let e=this.icn3dui;e.icn3d;let t="";if(e.utilsCls.isMobile())t+='Select Aligned Sequences: touch to select, touch again to deselect, multiple selection is allowed without Ctrl key, click "Save Selection" to save the current selection.
    ';else{t+='Select on 1D sequences: drag to select, drag again to deselect, multiple selection is allowed without Ctrl key, click "Save Selection" to save the current selection.

    ',t+="Select on 2D interaction diagram: click on the nodes or lines. The nodes are chains and can be united with the Ctrl key. The lines are interactions and can NOT be united. Each click on the lines selects half of the lines, i.e., select the interacting residues in one of the two chains.

    ",t+="Select on 3D structures: "+(e.utilsCls.isMobile()?"use finger to pick":'hold "Alt" and use mouse to pick')+', click the second time to deselect, hold "Ctrl" to union selection, hold "Shift" to select a range, press the up/down arrow to switch among atom/residue/strand/chain/structure, click "Save Selection" to save the current selection.

    ',t+='Save the current selection(either on 3D structure, 2D interactions, or 1D sequence): open the menu "Select -> Save Selection", specify the name and description for the selection, and click "Save".

    '}return t}addGsizeSalt(e){let t=this.icn3dui;t.icn3d;let s="";s+="Grid Size: ",s+="Salt Concentration: M
    ",s}getFootHtml(e,t){let s=this.icn3dui;s.icn3d;let i="
    ";return"delphi"==e?s.cfg.cid?i+="Note: Partial charges(MMFF94) are from PubChem Compound SDF files.

    ":(i+="Note: Only the selected residues are used for DelPhi potential calculation by solving linear Poisson-Boltzmann equation.",i+='

    ',i+=s.htmlCls.divStr+t+"' style='display:none;'>",i+="
    The hydrogens and partial charges of proteins and nucleotides are added using DelPhiPKa with the Amber charge and size files. The hydrogens of ligands are added using Open Babel. The partial charges of ligands are calculated using Antechamber with the Gasteiger charge method. All partial charges are calculated at pH 7.

    ",i+='Lipids are treated as ligands. Please use "HETATM" instead of "ATOM " for each lipid atom in your PDB file. Each phosphate in lipids is assigned with a charge of -1. You can download PQR and modify it, or prepare your PQR file using other tools. Then load the PQR file at the menu "Analysis > Load PQR/Potential".

    ',i+="
    "):(i+="Note: Always load a PDB file before loading a PQR or DelPhi potential file.",i+='

    ',i+=s.htmlCls.divStr+t+"' style='display:none;'>",i+='The PDB file can be loaded in the URL with "pdbid=" or at "File > Open File". The PQR file can be prepared at the menu "Analysis > Download PQR" with your modification or using other tools. The DelPhi potential file can be calculated at DelPhi Web Server and be exported as a Cube file. ',"url"==e&&(i+="The PQR or potential file can be accessed in a URL if it is located in the same host as iCn3D."),i+="

    ",i+=""),i+="",i}getPotentialHtml(e,t){let s=this.icn3dui;s.icn3d;let i,n,l,r,o,a="";r="Equipotential Map",o="Surface with Potential","delphi"==e?n="delphi":"local"==e?(i="pqr",n="phi",l="cube"):"url"==e&&(i="pqrurl",n="phiurl",l="cubeurl"),a+=s.htmlCls.divStr+"dl_"+n+"' class='"+t+"'>",a+=s.htmlCls.setDialogCls.addNotebookTitle("dl_"+n,"DelPhi Potential"),a+=s.htmlCls.divStr+"dl_"+n+"_tabs' style='border:0px;'>",a+="",a+=s.htmlCls.divStr+n+"tab1'>","delphi"==e&&(a+=this.addGsizeSalt(n+"1")+"
    "),a+="Potential contour at: kT/e(25.6mV at 298K)

    ","delphi"==e?(a+=s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map",a+=s.htmlCls.buttonStr+n+"mapNo' style='margin-left:30px;'>Remove Map
    "):"local"==e?(a+=s.htmlCls.divStr+n+"tab1_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo'>Remove Map",a+=s.htmlCls.divStr+n+"tab1_"+i+"'>",a+=this.addGsizeSalt(i)+"
    ",a+="PQR File: "+s.htmlCls.inputFileStr+"id='"+s.pre+i+"file'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+n+"'>",a+="Phi File: "+s.htmlCls.inputFileStr+"id='"+s.pre+n+"file'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+l+"'>",a+="Cube File: "+s.htmlCls.inputFileStr+"id='"+s.pre+l+"file'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=""):"url"==e&&(a+=s.htmlCls.divStr+n+"tab1_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo'>Remove Map",a+=s.htmlCls.divStr+n+"tab1_"+i+"2'>",a+=this.addGsizeSalt(i)+"
    ",a+="PQR URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+i+"file'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+n+"2'>",a+="Phi URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+n+"file'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+l+"2'>",a+="Cube URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+l+"file'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=""),a+="
    "+this.getFootHtml(e,n+"tab1_foot"),a+="",a+=s.htmlCls.divStr+n+"tab2'>","delphi"==e&&(a+=this.addGsizeSalt(n+"2")+"
    "),a+="Surface with max potential at: kT/e(25.6mV at 298K)

    ",a+="Surface: ",a+="Opacity: ",a+="Wireframe:
    ",a+="
    ","delphi"==e?(a+=s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential",a+=s.htmlCls.buttonStr+n+"mapNo2' style='margin-left:30px;'>Remove Surface
    "):"local"==e?(a+=s.htmlCls.divStr+n+"tab2_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo2'>Remove Surface",a+=s.htmlCls.divStr+n+"tab2_"+i+"'>",a+=this.addGsizeSalt(i+"2")+"
    ",a+="PQR File: "+s.htmlCls.inputFileStr+"id='"+s.pre+i+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+n+"'>",a+="Phi File: "+s.htmlCls.inputFileStr+"id='"+s.pre+n+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+l+"'>",a+="Cube File: "+s.htmlCls.inputFileStr+"id='"+s.pre+l+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=""):"url"==e&&(a+=s.htmlCls.divStr+n+"tab2_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo2'>Remove Surface",a+=s.htmlCls.divStr+n+"tab2_"+i+"2'>",a+=this.addGsizeSalt(i+"2")+"
    ",a+="PQR URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+i+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+n+"2'>",a+="Phi URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+n+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+l+"2'>",a+="Cube URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+l+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=""),a+="
    "+this.getFootHtml(e,n+"tab2_foot"),a+="",a+="",a+="",a}async exportPqr(e){let t=this.icn3dui,s=t.icn3d,i={},n={},l=t.hashUtilsCls.intHash(s.dAtoms,s.hAtoms);for(let e in l)s.atoms[e],s.ions.hasOwnProperty(e)?i[e]=1:n[e]=1;let r=e?"pdb":"pqr";if(t.cfg.cid){let l="",o=!e;l+=s.saveFileCls.getAtomPDB(n,o)+s.saveFileCls.getAtomPDB(i,o);let a=Object.keys(t.utilsCls.getHlStructures()).join(",");s.saveFileCls.saveFile(a+"_icn3d."+r,"text",[l])}else{if(t.utilsCls.isCalphaPhosOnly(t.hashUtilsCls.hash2Atoms(n,s.atoms)))return void alert("The potential will not be shown because the side chains are missing in the structure...");let l="",o=!0;l+=s.saveFileCls.getAtomPDB(n,void 0,void 0,void 0,void 0,void 0,o),l+=s.saveFileCls.getAtomPDB(i,!0,void 0,!0);let a=t.htmlCls.baseUrl+"delphi/delphi.cgi",d={pdb2pqr:l,pdbid:t.cfg.cid?t.cfg.cid:Object.keys(s.structures).toString()},c=await t.getAjaxPostPromise(a,d,!0,void 0,void 0,!0,"text");if(e){let e=c.split("\n"),s="";for(let i=0,n=e.length;i Save File > iCn3D PNG Image"...');else if(-1!=r){let t=e.substr(r+l.length);i.htmlCls.clickMenuCls.setLogCmd("load iCn3D PNG image "+$("#"+i.pre+"pngimage").val(),!1),window.open(t,"_self")}else if(-1!=a){let i="Start of data file======\n",l=e.indexOf(i);n.bInputfile=-1!=l,n.bInputPNGWithData=n.bInputfile;let r=t?t.replace(/;/g,"\n"):"",h=e.indexOf("End of data file======\n");d=e.substr(l+i.length,h-l-i.length);let p="Start of type file======\n",m=e.indexOf(p),u=e.indexOf("End of type file======\n"),g=e.substr(m+p.length,u-m-p.length-1);n.InputfileType=g;let f=e.indexOf("End of state file======\n");c=e.substr(a+o.length,f-a-o.length),c=decodeURIComponent(c+"\n"+r),s&&("pdb"===g?(await n.pdbParserCls.loadPdbData(d),n.commands=[],n.optsHistory=[]):("mol2"===g?await n.mol2ParserCls.loadMol2Data(d):"sdf"===g?await n.sdfParserCls.loadSdfData(d):"xyz"===g?await n.xyzParserCls.loadXyzData(d):"mmcif"===g&&await n.mmcifParserCls.loadMmcifData(d),n.commands=[],n.optsHistory=[]),await n.loadScriptCls.loadScript(c,!0))}return{pdb:d,statefile:c}}fileSupport(){window.File&&window.FileReader&&window.FileList&&window.Blob||alert("The File APIs are not fully supported in this browser.")}getLinkColor(){let e="";return e+=", linkmap: {\n",e+='3: {"type": "peptidebond", "c":""},\n',e+='4: {"type": "ssbond", "c":"FFA500"},\n',e+='5: {"type": "ionic", "c":"0FF"},\n',e+='6: {"type": "ionicInside", "c":"FFF"},\n',e+='11: {"type": "contact", "c":"888"},\n',e+='12: {"type": "contactInside", "c":"FFF"},\n',e+='13: {"type": "hbond", "c":"0F0"},\n',e+='14: {"type": "hbondInside", "c":"FFF"},\n',e+='15: {"type": "clbond", "c":"006400"},\n',e+='17: {"type": "halogen", "c":"F0F"},\n',e+='18: {"type": "halogenInside", "c":"FFF"},\n',e+='19: {"type": "pication", "c":"F00"},\n',e+='20: {"type": "picationInside", "c":"FFF"},\n',e+='21: {"type": "pistacking", "c":"00F"},\n',e+='22: {"type": "pistackingInside", "c":"FFF"}\n',e+="}}\n",', linkmap: {\n3: {"type": "peptidebond", "c":""},\n4: {"type": "ssbond", "c":"FFA500"},\n5: {"type": "ionic", "c":"0FF"},\n6: {"type": "ionicInside", "c":"FFF"},\n11: {"type": "contact", "c":"888"},\n12: {"type": "contactInside", "c":"FFF"},\n13: {"type": "hbond", "c":"0F0"},\n14: {"type": "hbondInside", "c":"FFF"},\n15: {"type": "clbond", "c":"006400"},\n17: {"type": "halogen", "c":"F0F"},\n18: {"type": "halogenInside", "c":"FFF"},\n19: {"type": "pication", "c":"F00"},\n20: {"type": "picationInside", "c":"FFF"},\n21: {"type": "pistacking", "c":"00F"},\n22: {"type": "pistackingInside", "c":"FFF"}\n}}\n'}setCookieForThickness(){let e=this.icn3dui,t=e.icn3d;if(!e.bNode){let e=3650;this.setCookie("lineRadius",t.lineRadius,e),this.setCookie("coilWidth",t.coilWidth,e),this.setCookie("cylinderRadius",t.cylinderRadius,e),this.setCookie("crosslinkRadius",t.crosslinkRadius,e),this.setCookie("traceRadius",t.traceRadius,e),this.setCookie("dotSphereScale",t.dotSphereScale,e),this.setCookie("ribbonthickness",t.ribbonthickness,e),this.setCookie("helixSheetWidth",t.helixSheetWidth,e),this.setCookie("nucleicAcidWidth",t.nucleicAcidWidth,e)}}setLineThickness(e,t){let s=this.icn3dui,i=s.icn3d;if(i.bSetThickness=!0,"style"==e&&(t&&($("#"+s.pre+"shininess").val("40"),$("#"+s.pre+"light1").val("0.8"),$("#"+s.pre+"light2").val("0.4"),$("#"+s.pre+"light3").val("0.2"),$("#"+s.pre+"glycan").val("0"),$("#"+s.pre+"membrane").val("1"),$("#"+s.pre+"cmdwindow").val("0")),i.shininess=parseFloat($("#"+s.pre+"shininess").val()),i.light1=parseFloat($("#"+s.pre+"light1").val()),i.light2=parseFloat($("#"+s.pre+"light2").val()),i.light3=parseFloat($("#"+s.pre+"light3").val()),i.bGlycansCartoon=parseInt($("#"+s.pre+"glycan").val()),i.bMembrane=parseInt($("#"+s.pre+"membrane").val()),i.bCmdWindow=parseInt($("#"+s.pre+"cmdwindow").val())),t&&($("#"+s.pre+"linerad_"+e).val(.1),$("#"+s.pre+"coilrad_"+e).val(.3),$("#"+s.pre+"stickrad_"+e).val(.4),$("#"+s.pre+"crosslinkrad_"+e).val(.4),$("#"+s.pre+"tracerad_"+e).val(.4),$("#"+s.pre+"ballscale_"+e).val(.3),$("#"+s.pre+"ribbonthick_"+e).val(.2),$("#"+s.pre+"prtribbonwidth_"+e).val(1.3),$("#"+s.pre+"nucleotideribbonwidth_"+e).val(.8)),i.lineRadius=parseFloat($("#"+s.pre+"linerad_"+e).val()),i.coilWidth=parseFloat($("#"+s.pre+"coilrad_"+e).val()),i.cylinderRadius=parseFloat($("#"+s.pre+"stickrad_"+e).val()),i.crosslinkRadius=parseFloat($("#"+s.pre+"crosslinkrad_"+e).val()),i.traceRadius=parseFloat($("#"+s.pre+"tracerad_"+e).val()),i.dotSphereScale=parseFloat($("#"+s.pre+"ballscale_"+e).val()),i.ribbonthickness=parseFloat($("#"+s.pre+"ribbonthick_"+e).val()),i.helixSheetWidth=parseFloat($("#"+s.pre+"prtribbonwidth_"+e).val()),i.nucleicAcidWidth=parseFloat($("#"+s.pre+"nucleotideribbonwidth_"+e).val()),!s.bNode){let e=3650;this.setCookie("shininess",i.shininess,e),this.setCookie("light1",i.light1,e),this.setCookie("light2",i.light2,e),this.setCookie("light3",i.light3,e),this.setCookie("glycan",i.bGlycansCartoon,e),this.setCookie("membrane",i.bMembrane,e),this.setCookie("cmdwindow",i.bCmdWindow,e)}if(this.setCookieForThickness(),e=t){let e="reset thickness";s.htmlCls.clickMenuCls.setLogCmd(e,!0),i.bSetThickness=!1,i.threeDPrintCls.resetAfter3Dprint()}else s.htmlCls.clickMenuCls.setLogCmd("set thickness | linerad "+i.lineRadius+" | coilrad "+i.coilWidth+" | stickrad "+i.cylinderRadius+" | crosslinkrad "+i.crosslinkRadius+" | tracerad "+i.traceRadius+" | ribbonthick "+i.ribbonthickness+" | proteinwidth "+i.helixSheetWidth+" | nucleotidewidth "+i.nucleicAcidWidth+" | ballscale "+i.dotSphereScale,!0),s.htmlCls.clickMenuCls.setLogCmd("set glycan "+i.bGlycansCartoon,!0),s.htmlCls.clickMenuCls.setLogCmd("set membrane "+i.bMembrane,!0),s.htmlCls.clickMenuCls.setLogCmd("set cmdwindow "+i.bCmdWindow,!0);i.drawCls.draw()}setCookie(e,t,s){let i=new Date;i.setTime(i.getTime()+24*s*60*60*1e3);let n="expires="+i.toUTCString();document.cookie=e+"="+t+";"+n+";path=/"}updateSurfPara(e){let t=this.icn3dui,s=t.icn3d;s.phisurftype=$("#"+t.pre+e+"surftype").val(),s.phisurfop=$("#"+t.pre+e+"surfop").val(),s.phisurfwf=$("#"+t.pre+e+"surfwf").val()}exportPdb(){let e=this.icn3dui,t=e.icn3d,s="",i=e.hashUtilsCls.intHash(t.dAtoms,t.hAtoms);if(s+=t.saveFileCls.getAtomPDB(i),!e.bNode){let i=Object.keys(e.utilsCls.getHlStructures()).join(",");t.saveFileCls.saveFile(i+"_icn3d.pdb","text",[s])}return s}exportSecondary(){let e=this.icn3dui,t=e.icn3d,s="",i=e.hashUtilsCls.intHash(t.dAtoms,t.hAtoms);if(s+=t.saveFileCls.getSecondary(i),!e.bNode){let i=Object.keys(e.utilsCls.getHlStructures()).join(",");t.saveFileCls.saveFile(i+"_icn3d_ss.txt","text",[s])}return s}}class g{constructor(e){let t=e;this.icn3dui=e,this.cfg=this.icn3dui.cfg,this.opts={},this.opts.background="black",this.allMenus={},this.allMenusSel={},this.simpleMenus={},this.shownMenus={},this.WIDTH=400,this.HEIGHT=400,this.RESIDUE_WIDTH=10,t.utilsCls.isMobile()||this.cfg.mobilemenu?this.MENU_HEIGHT=0:this.MENU_HEIGHT=40,this.LOG_HEIGHT=65,this.MENU_WIDTH=750,this.LESSWIDTH=20,this.LESSWIDTH_RESIZE=20,this.LESSHEIGHT=20,this.width2d=200,this.CMD_HEIGHT=.8*this.LOG_HEIGHT,this.EXTRAHEIGHT=this.MENU_HEIGHT+this.CMD_HEIGHT,null!=this.cfg.showmenu&&0==this.cfg.showmenu&&(this.EXTRAHEIGHT-=this.MENU_HEIGHT),null!=this.cfg.showcommand&&0==this.cfg.showcommand&&(this.EXTRAHEIGHT-=this.CMD_HEIGHT),this.GREY8="#AAAAAA",this.GREYB="#CCCCCC",this.GREYC="#DDDDDD",this.GREYD="#EEEEEE",this.ORANGE="#FFA500",this.themecolor="blue",this.defaultValue=1,this.ssValue=3,this.coilValue=3,this.contactValue=11,this.contactInsideValue=12,this.hbondValue=13,this.hbondInsideValue=14,this.ssbondValue=4,this.ionicValue=5,this.ionicInsideValue=6,this.clbondValue=15,this.halogenValue=17,this.halogenInsideValue=18,this.picationValue=19,this.picationInsideValue=20,this.pistackingValue=21,this.pistackingInsideValue=22,this.contactColor="888",this.contactInsideColor="FFF",this.hbondColor="0F0",this.hbondInsideColor="FFF",this.ssbondColor="FFA500",this.ionicColor="0FF",this.ionicInsideColor="FFF",this.clbondColor="006400",this.halogenColor="F0F",this.halogenInsideColor="FFF",this.picationColor="F00",this.picationInsideColor="FFF",this.pistackingColor="00F",this.pistackingInsideColor="FFF",this.hideedges=1,this.force=4,this.simulation=void 0,this.baseUrl=window&&window.location&&"structure.ncbi.nlm.nih.gov"==window.location.hostname?"https://structure.ncbi.nlm.nih.gov/Structure/":"https://www.ncbi.nlm.nih.gov/Structure/",this.tmalignUrl=this.baseUrl+"tmalign/tmalign.cgi",this.divStr="
    ",this.spanNowrapStr="",this.inputTextStr="=2.0 are supported.")));const a=new pe(o,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});a.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e=0&&void 0===r[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}a.setExtensions(l),a.setPlugins(r),a.parse(s,i)}parseAsync(e,t){const s=this;return new Promise((function(i,n){s.parse(e,t,i,n)}))}}function C(){let e={};return{get:function(t){return e[t]},add:function(t,s){e[t]=s},remove:function(t){delete e[t]},removeAll:function(){e={}}}}const b={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression"};class y{constructor(e){this.parser=e,this.name=b.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let s=0,i=t.length;s=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,n.source,l)}}class R{constructor(e){this.parser=e,this.name=b.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,s=this.parser,i=s.json,n=i.textures[e];if(!n.extensions||!n.extensions[t])return null;const l=n.extensions[t],r=i.images[l.source];let o=s.textureLoader;if(r.uri){const e=s.options.manager.getHandler(r.uri);null!==e&&(o=e)}return this.detectSupport().then((function(n){if(n)return s.loadTextureImage(e,l.source,o);if(i.extensionsRequired&&i.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return s.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}}class I{constructor(e){this.name=b.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,s=t.bufferViews[e];if(s.extensions&&s.extensions[this.name]){const e=s.extensions[this.name],i=this.parser.getDependency("buffer",e.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return Promise.all([i,n.ready]).then((function(t){const s=e.byteOffset||0,i=e.byteLength||0,l=e.count,r=e.byteStride,o=new ArrayBuffer(l*r),a=new Uint8Array(t[0],s,i);return n.decodeGltfBuffer(new Uint8Array(o),l,r,a,e.mode,e.filter),o}))}return null}}const E="glTF",T=1313821514,P=5130562;class D{constructor(e){this.name=b.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,12);if(this.header={magic:THREE.LoaderUtils.decodeText(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==E)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const s=this.header.length-12,i=new DataView(e,12);let n=0;for(;n",t).replace("#include ",s).replace("#include ",i).replace("#include ",n).replace("#include ",l)},Object.defineProperties(this,{specular:{get:function(){return r.specular.value},set:function(e){r.specular.value=e}},specularMap:{get:function(){return r.specularMap.value},set:function(e){r.specularMap.value=e,e?this.defines.USE_SPECULARMAP="":delete this.defines.USE_SPECULARMAP}},glossiness:{get:function(){return r.glossiness.value},set:function(e){r.glossiness.value=e}},glossinessMap:{get:function(){return r.glossinessMap.value},set:function(e){r.glossinessMap.value=e,e?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_UV=""):(delete this.defines.USE_GLOSSINESSMAP,delete this.defines.USE_UV)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(e)}copy(e){return super.copy(e),this.specularMap=e.specularMap,this.specular.copy(e.specular),this.glossinessMap=e.glossinessMap,this.glossiness=e.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this}}class L{constructor(){this.name=b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,this.specularGlossinessParams=["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity"]}getMaterialType(){return H}extendParams(e,t,s){const i=t.extensions[this.name];e.color=new Color(1,1,1),e.opacity=1;const n=[];if(Array.isArray(i.diffuseFactor)){const t=i.diffuseFactor;e.color.fromArray(t),e.opacity=t[3]}if(void 0!==i.diffuseTexture&&n.push(s.assignTexture(e,"map",i.diffuseTexture,sRGBEncoding)),e.emissive=new Color(0,0,0),e.glossiness=void 0!==i.glossinessFactor?i.glossinessFactor:1,e.specular=new Color(1,1,1),Array.isArray(i.specularFactor)&&e.specular.fromArray(i.specularFactor),void 0!==i.specularGlossinessTexture){const t=i.specularGlossinessTexture;n.push(s.assignTexture(e,"glossinessMap",t)),n.push(s.assignTexture(e,"specularMap",t,sRGBEncoding))}return Promise.all(n)}createMaterial(e){const t=new H(e);return t.fog=!0,t.color=e.color,t.map=void 0===e.map?null:e.map,t.lightMap=null,t.lightMapIntensity=1,t.aoMap=void 0===e.aoMap?null:e.aoMap,t.aoMapIntensity=1,t.emissive=e.emissive,t.emissiveIntensity=1,t.emissiveMap=void 0===e.emissiveMap?null:e.emissiveMap,t.bumpMap=void 0===e.bumpMap?null:e.bumpMap,t.bumpScale=1,t.normalMap=void 0===e.normalMap?null:e.normalMap,t.normalMapType=TangentSpaceNormalMap,e.normalScale&&(t.normalScale=e.normalScale),t.displacementMap=null,t.displacementScale=1,t.displacementBias=0,t.specularMap=void 0===e.specularMap?null:e.specularMap,t.specular=e.specular,t.glossinessMap=void 0===e.glossinessMap?null:e.glossinessMap,t.glossiness=e.glossiness,t.alphaMap=null,t.envMap=void 0===e.envMap?null:e.envMap,t.envMapIntensity=1,t}}class N{constructor(){this.name=b.KHR_MESH_QUANTIZATION}}class q extends THREE.Interpolant{constructor(e,t,s,i){super(e,t,s,i)}copySampleValue_(e){const t=this.resultBuffer,s=this.sampleValues,i=this.valueSize,n=e*i*3+i;for(let e=0;e!==i;e++)t[e]=s[n+e];return t}}q.prototype.beforeStart_=q.prototype.copySampleValue_,q.prototype.afterEnd_=q.prototype.copySampleValue_,q.prototype.interpolate_=function(e,t,s,i){const n=this.resultBuffer,l=this.sampleValues,r=this.valueSize,o=2*r,a=3*r,d=i-t,c=(s-t)/d,h=c*c,p=h*c,m=e*a,u=m-a,g=-2*p+3*h,f=p-h,C=1-g,b=f-h+c;for(let e=0;e!==r;e++){const t=l[u+e+r],s=l[u+e+o]*d,i=l[m+e+r],a=l[m+e]*d;n[e]=C*t+b*s+g*i+f*a}return n};const U=new THREE.Quaternion;class B extends q{interpolate_(e,t,s,i){const n=super.interpolate_(e,t,s,i);return U.fromArray(n).normalize().toArray(n),n}}const j=0,z=1,G=2,V=3,W=4,Y=5,X=6,K={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},J={9728:THREE.NearestFilter,9729:THREE.LinearFilter,9984:THREE.NearestMipmapNearestFilter,9985:THREE.LinearMipmapNearestFilter,9986:THREE.NearestMipmapLinearFilter,9987:THREE.LinearMipmapLinearFilter},Z={33071:THREE.ClampToEdgeWrapping,33648:THREE.MirroredRepeatWrapping,10497:THREE.RepeatWrapping},Q={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},ee={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},te={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},se={CUBICSPLINE:void 0,LINEAR:THREE.InterpolateLinear,STEP:THREE.InterpolateDiscrete},ie="OPAQUE",ne="MASK",le="BLEND";function re(e,t,s){for(const i in s.extensions)void 0===e[i]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[i]=s.extensions[i])}function oe(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function ae(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let s=0,i=t.weights.length;s{const s=this.associations.get(e);null!=s&&this.associations.set(t,s);for(const[s,i]of e.children.entries())n(i,t.children[s])};return n(s,i),i.name+="_instance_"+e.uses[t]++,i}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let s=0;s=2&&m.setY(t,c[e*l+1]),l>=3&&m.setZ(t,c[e*l+2]),l>=4&&m.setW(t,c[e*l+3]),l>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return m}))}loadTexture(e){const t=this.json,s=this.options,i=t.textures[e].source,n=t.images[i];let l=this.textureLoader;if(n.uri){const e=s.manager.getHandler(n.uri);null!==e&&(l=e)}return this.loadTextureImage(e,i,l)}loadTextureImage(e,t,s){const i=this,n=this.json,l=n.textures[e],r=n.images[t],o=(r.uri||r.bufferView)+":"+l.sampler;if(this.textureCache[o])return this.textureCache[o];const a=this.loadImageSource(t,s).then((function(t){t.flipY=!1,l.name&&(t.name=l.name);const s=(n.samplers||{})[l.sampler]||{};return t.magFilter=J[s.magFilter]||LinearFilter,t.minFilter=J[s.minFilter]||LinearMipmapLinearFilter,t.wrapS=Z[s.wrapS]||RepeatWrapping,t.wrapT=Z[s.wrapT]||RepeatWrapping,i.associations.set(t,{textures:e}),t})).catch((function(){return null}));return this.textureCache[o]=a,a}loadImageSource(e,t){const s=this,i=this.json,n=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then((e=>e.clone()));const l=i.images[e],r=self.URL||self.webkitURL;let o=l.uri||"",a=!1;if(void 0!==l.bufferView)o=s.getDependency("bufferView",l.bufferView).then((function(e){a=!0;const t=new Blob([e],{type:l.mimeType});return o=r.createObjectURL(t),o}));else if(void 0===l.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const d=Promise.resolve(o).then((function(e){return new Promise((function(s,i){let l=s;!0===t.isImageBitmapLoader&&(l=function(e){const t=new Texture(e);t.needsUpdate=!0,s(t)}),t.load(THREE.LoaderUtils.resolveURL(e,n.path),l,void 0,i)}))})).then((function(e){var t;return!0===a&&r.revokeObjectURL(o),e.userData.mimeType=l.mimeType||((t=l.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e})).catch((function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),e}));return this.sourceCache[e]=d,d}assignTexture(e,t,s,i){const n=this;return this.getDependency("texture",s.index).then((function(l){if(void 0===s.texCoord||0==s.texCoord||"aoMap"===t&&1==s.texCoord||console.warn("THREE.GLTFLoader: Custom UV set "+s.texCoord+" for texture "+t+" not yet supported."),n.extensions[b.KHR_TEXTURE_TRANSFORM]){const e=void 0!==s.extensions?s.extensions[b.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=n.associations.get(l);l=n.extensions[b.KHR_TEXTURE_TRANSFORM].extendTexture(l,e),n.associations.set(l,t)}}return void 0!==i&&(l.encoding=i),e[t]=l,l}))}assignFinalMaterial(e){const t=e.geometry;let s=e.material;const i=void 0===t.attributes.tangent,n=void 0!==t.attributes.color,l=void 0===t.attributes.normal;if(e.isPoints){const e="PointsMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new PointsMaterial,Material.prototype.copy.call(t,s),t.color.copy(s.color),t.map=s.map,t.sizeAttenuation=!1,this.cache.add(e,t)),s=t}else if(e.isLine){const e="LineBasicMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new LineBasicMaterial,Material.prototype.copy.call(t,s),t.color.copy(s.color),this.cache.add(e,t)),s=t}if(i||n||l){let e="ClonedMaterial:"+s.uuid+":";s.isGLTFSpecularGlossinessMaterial&&(e+="specular-glossiness:"),i&&(e+="derivative-tangents:"),n&&(e+="vertex-colors:"),l&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=s.clone(),n&&(t.vertexColors=!0),l&&(t.flatShading=!0),i&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(s))),s=t}s.aoMap&&void 0===t.attributes.uv2&&void 0!==t.attributes.uv&&t.setAttribute("uv2",t.attributes.uv),e.material=s}getMaterialType(){return MeshStandardMaterial}loadMaterial(e){const t=this,s=this.json,i=this.extensions,n=s.materials[e];let l;const r={},o=n.extensions||{},a=[];if(o[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){const e=i[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];l=e.getMaterialType(),a.push(e.extendParams(r,n,t))}else if(o[b.KHR_MATERIALS_UNLIT]){const e=i[b.KHR_MATERIALS_UNLIT];l=e.getMaterialType(),a.push(e.extendParams(r,n,t))}else{const s=n.pbrMetallicRoughness||{};if(r.color=new Color(1,1,1),r.opacity=1,Array.isArray(s.baseColorFactor)){const e=s.baseColorFactor;r.color.fromArray(e),r.opacity=e[3]}void 0!==s.baseColorTexture&&a.push(t.assignTexture(r,"map",s.baseColorTexture,sRGBEncoding)),r.metalness=void 0!==s.metallicFactor?s.metallicFactor:1,r.roughness=void 0!==s.roughnessFactor?s.roughnessFactor:1,void 0!==s.metallicRoughnessTexture&&(a.push(t.assignTexture(r,"metalnessMap",s.metallicRoughnessTexture)),a.push(t.assignTexture(r,"roughnessMap",s.metallicRoughnessTexture))),l=this._invokeOne((function(t){return t.getMaterialType&&t.getMaterialType(e)})),a.push(Promise.all(this._invokeAll((function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,r)}))))}!0===n.doubleSided&&(r.side=DoubleSide);const d=n.alphaMode||ie;if(d===le?(r.transparent=!0,r.depthWrite=!1):(r.transparent=!1,d===ne&&(r.alphaTest=void 0!==n.alphaCutoff?n.alphaCutoff:.5)),void 0!==n.normalTexture&&l!==MeshBasicMaterial&&(a.push(t.assignTexture(r,"normalMap",n.normalTexture)),r.normalScale=new Vector2(1,1),void 0!==n.normalTexture.scale)){const e=n.normalTexture.scale;r.normalScale.set(e,e)}return void 0!==n.occlusionTexture&&l!==MeshBasicMaterial&&(a.push(t.assignTexture(r,"aoMap",n.occlusionTexture)),void 0!==n.occlusionTexture.strength&&(r.aoMapIntensity=n.occlusionTexture.strength)),void 0!==n.emissiveFactor&&l!==MeshBasicMaterial&&(r.emissive=(new Color).fromArray(n.emissiveFactor)),void 0!==n.emissiveTexture&&l!==MeshBasicMaterial&&a.push(t.assignTexture(r,"emissiveMap",n.emissiveTexture,sRGBEncoding)),Promise.all(a).then((function(){let s;return s=l===H?i[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(r):new l(r),n.name&&(s.name=n.name),oe(s,n),t.associations.set(s,{materials:e}),n.extensions&&re(i,s,n),s}))}createUniqueName(e){const t=PropertyBinding.sanitizeNodeName(e||"");let s=t;for(let e=1;this.nodeNamesUsed[s];++e)s=t+"_"+e;return this.nodeNamesUsed[s]=!0,s}loadGeometries(e){const t=this,s=this.extensions,i=this.primitiveCache;function n(e){return s[b.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then((function(s){return ue(s,e,t)}))}const l=[];for(let s=0,r=e.length;s0&&ae(h,n),h.name=t.createUniqueName(n.name||"mesh_"+e),oe(h,n),c.extensions&&re(i,h,c),t.assignFinalMaterial(h),a.push(h)}for(let s=0,i=a.length;s1?new Group:1===t.length?t[0]:new Object3D,r!==t[0])for(let e=0,s=t.length;e{const t=new Map;for(const[e,s]of n.associations)(e instanceof Material||e instanceof Texture)&&t.set(e,s);return e.traverse((e=>{const s=n.associations.get(e);null!=s&&t.set(e,s)})),t})(l),l}))}}function me(e,t,s,i){const n=s.nodes[e];return i.getDependency("node",e).then((function(e){if(void 0===n.skin)return e;let t;return i.getDependency("skin",n.skin).then((function(e){t=e;const s=[];for(let e=0,n=t.joints.length;e{const s=n[e];return s&&(l={profileId:e,profilePath:`${t}/${s.path}`,deprecated:!!s.deprecated}),!!l})),!l){if(!s)throw new Error("No matching profile name found");const e=n[s];if(!e)throw new Error(`No matching profile name found and default profile "${s}" missing.`);l={profileId:s,profilePath:`${t}/${e.path}`,deprecated:!!e.deprecated}}const r=await Ce(l.profilePath);let o;if(i){let t;if(t="any"===e.handedness?r.layouts[Object.keys(r.layouts)[0]]:r.layouts[e.handedness],!t)throw new Error(`No matching handedness, ${e.handedness}, in profile ${l.profileId}`);t.assetPath&&(o=l.profilePath.replace("profile.json",t.assetPath))}return{profile:r,assetPath:o}}const ye={xAxis:0,yAxis:0,button:0,state:fe.ComponentState.DEFAULT};class ve{constructor(e){this.componentProperty=e.componentProperty,this.states=e.states,this.valueNodeName=e.valueNodeName,this.valueNodeProperty=e.valueNodeProperty,this.valueNodeProperty===fe.VisualResponseProperty.TRANSFORM&&(this.minNodeName=e.minNodeName,this.maxNodeName=e.maxNodeName),this.value=0,this.updateFromComponent(ye)}updateFromComponent({xAxis:e,yAxis:t,button:s,state:i}){const{normalizedXAxis:n,normalizedYAxis:l}=function(e=0,t=0){let s=e,i=t;if(Math.sqrt(e*e+t*t)>1){const n=Math.atan2(t,e);s=Math.cos(n),i=Math.sin(n)}return{normalizedXAxis:.5*s+.5,normalizedYAxis:.5*i+.5}}(e,t);switch(this.componentProperty){case fe.ComponentProperty.X_AXIS:this.value=this.states.includes(i)?n:.5;break;case fe.ComponentProperty.Y_AXIS:this.value=this.states.includes(i)?l:.5;break;case fe.ComponentProperty.BUTTON:this.value=this.states.includes(i)?s:0;break;case fe.ComponentProperty.STATE:this.valueNodeProperty===fe.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(i):this.value=this.states.includes(i)?1:0;break;default:throw new Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`)}}}class _e{constructor(e,t){if(!(e&&t&&t.visualResponses&&t.gamepadIndices&&0!==Object.keys(t.gamepadIndices).length))throw new Error("Invalid arguments supplied");this.id=e,this.type=t.type,this.rootNodeName=t.rootNodeName,this.touchPointNodeName=t.touchPointNodeName,this.visualResponses={},Object.keys(t.visualResponses).forEach((e=>{const s=new ve(t.visualResponses[e]);this.visualResponses[e]=s})),this.gamepadIndices=Object.assign({},t.gamepadIndices),this.values={state:fe.ComponentState.DEFAULT,button:void 0!==this.gamepadIndices.button?0:void 0,xAxis:void 0!==this.gamepadIndices.xAxis?0:void 0,yAxis:void 0!==this.gamepadIndices.yAxis?0:void 0}}get data(){return{id:this.id,...this.values}}updateFromGamepad(e){if(this.values.state=fe.ComponentState.DEFAULT,void 0!==this.gamepadIndices.button&&e.buttons.length>this.gamepadIndices.button){const t=e.buttons[this.gamepadIndices.button];this.values.button=t.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,t.pressed||1===this.values.button?this.values.state=fe.ComponentState.PRESSED:(t.touched||this.values.button>fe.ButtonTouchThreshold)&&(this.values.state=fe.ComponentState.TOUCHED)}void 0!==this.gamepadIndices.xAxis&&e.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=e.axes[this.gamepadIndices.xAxis],this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis,this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis,this.values.state===fe.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>fe.AxisTouchThreshold&&(this.values.state=fe.ComponentState.TOUCHED)),void 0!==this.gamepadIndices.yAxis&&e.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=e.axes[this.gamepadIndices.yAxis],this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis,this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis,this.values.state===fe.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>fe.AxisTouchThreshold&&(this.values.state=fe.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach((e=>{e.updateFromComponent(this.values)}))}}class we{constructor(e,t,s){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No profile supplied");this.xrInputSource=e,this.assetUrl=s,this.id=t.profileId,this.layoutDescription=t.layouts[e.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach((e=>{const t=this.layoutDescription.components[e];this.components[e]=new _e(e,t)})),this.updateFromGamepad()}get gripSpace(){return this.xrInputSource.gripSpace}get targetRaySpace(){return this.xrInputSource.targetRaySpace}get data(){const e=[];return Object.values(this.components).forEach((t=>{e.push(t.data)})),e}updateFromGamepad(){Object.values(this.components).forEach((e=>{e.updateFromGamepad(this.xrInputSource.gamepad)}))}}class Se extends THREE.Object3D{constructor(){super(),this.motionController=null,this.envMap=null}setEnvironmentMap(e){return this.envMap==e||(this.envMap=e,this.traverse((e=>{e.isMesh&&(e.material.envMap=this.envMap,e.material.needsUpdate=!0)}))),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach((e=>{Object.values(e.visualResponses).forEach((e=>{const{valueNode:t,minNode:s,maxNode:i,value:n,valueNodeProperty:l}=e;t&&(l===fe.VisualResponseProperty.VISIBILITY?t.visible=n:l===fe.VisualResponseProperty.TRANSFORM&&(t.quaternion.slerpQuaternions(s.quaternion,i.quaternion,n),t.position.lerpVectors(s.position,i.position,n)))}))})))}}function Ae(e,t){!function(e,t){Object.values(e.components).forEach((e=>{const{type:s,touchPointNodeName:i,visualResponses:n}=e;if(s===fe.ComponentType.TOUCHPAD)if(e.touchPointNode=t.getObjectByName(i),e.touchPointNode){const t=new SphereGeometry(.001),s=new MeshBasicMaterial({color:255}),i=new Mesh(t,s);e.touchPointNode.add(i)}else console.warn(`Could not find touch dot, ${e.touchPointNodeName}, in touchpad component ${e.id}`);Object.values(n).forEach((e=>{const{valueNodeName:s,minNodeName:i,maxNodeName:n,valueNodeProperty:l}=e;if(l===fe.VisualResponseProperty.TRANSFORM){if(e.minNode=t.getObjectByName(i),e.maxNode=t.getObjectByName(n),!e.minNode)return void console.warn(`Could not find ${i} in the model`);if(!e.maxNode)return void console.warn(`Could not find ${n} in the model`)}e.valueNode=t.getObjectByName(s),e.valueNode||console.warn(`Could not find ${s} in the model`)}))}))}(e.motionController,t),e.envMap&&t.traverse((t=>{t.isMesh&&(t.material.envMap=e.envMap,t.material.needsUpdate=!0)})),e.add(t)}class xe{constructor(e=null){this.gltfLoader=e,this.path="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",this._assetCache={},this.gltfLoader||(this.gltfLoader=new f)}createControllerModel(e){const t=new Se;let s=null;return e.addEventListener("connected",(e=>{const i=e.data;"tracked-pointer"===i.targetRayMode&&i.gamepad&&be(i,this.path,"generic-trigger").then((({profile:e,assetPath:n})=>{t.motionController=new we(i,e,n);const l=this._assetCache[t.motionController.assetUrl];if(l)s=l.scene.clone(),Ae(t,s);else{if(!this.gltfLoader)throw new Error("GLTFLoader not set.");this.gltfLoader.setPath(""),this.gltfLoader.load(t.motionController.assetUrl,(e=>{this._assetCache[t.motionController.assetUrl]=e,s=e.scene.clone(),Ae(t,s)}),null,(()=>{throw new Error(`Asset ${t.motionController.assetUrl} missing or malformed.`)}))}})).catch((e=>{console.warn(e)}))})),e.addEventListener("disconnected",(()=>{t.motionController=null,t.remove(s),s=null})),t}}class ke extends THREE.EventDispatcher{constructor(e){if(super(),void 0===e)return void console.error("ControllerGestures must be passed a renderer");const t=new THREE.Clock;this.controller1=e.xr.getController(0),this.controller1.userData.gestures={index:0},this.controller1.userData.selectPressed=!1,this.controller1.addEventListener("selectstart",i),this.controller1.addEventListener("selectend",n),this.controller2=e.xr.getController(1),this.controller2.userData.gestures={index:1},this.controller2.userData.selectPressed=!1,this.controller2.addEventListener("selectstart",i),this.controller2.addEventListener("selectend",n),this.doubleClickLimit=.2,this.pressMinimum=.4,this.right=new THREE.Vector3(1,0,0),this.up=new THREE.Vector3(0,1,0),this.type="unknown",this.prevTap="none",this.clock=t;const s=this;function i(){const e=this.userData.gestures;e.startPosition=void 0,e.startTime=t.getElapsedTime(),-1==s.type.indexOf("tap")&&(e.taps=0),s.type="unknown",this.userData.selectPressed=!0}function n(){const e=this.userData.gestures;e.endTime=t.getElapsedTime();e.endTime-e.startTime.05&&(e.startPosition=this.controller1.position.clone())),this.controller2.userData.selectPressed&&void 0===t.startPosition&&(i=s-t.startTime,i>.05&&(t.startPosition=this.controller2.position.clone())),!this.controller1.userData.selectPressed&&"tap"===this.type&&(i=this.clock.getElapsedTime()-e.endTime,i>this.doubleClickLimit)){switch(e.taps){case 1:self.prevTap="tap";break;case 2:this.dispatchEvent({type:"doubletap",position:this.controller1.position,matrixWorld:this.controller1.matrixWorld}),self.prevTap="doubletap"}this.type="unknown",e.taps=0}if("unknown"===this.type&&this.touch)"doubletap"==self.prevTap?(this.type="pinch",this.startDistance=this.controller1.position.distanceTo(this.controller2.position),this.dispatchEvent({type:"pinch",delta:new THREE.Vector3(0,0,0),scale:1,initialise:!0})):(this.type="pan",this.startPosition=this.controller1.position.clone(),this.dispatchEvent({type:"pan",delta:new THREE.Vector3(0,0,0),initialise:!0}));else if(("pinch"===this.type||"pan"===this.type)&&"doubletap"==self.prevTap&&this.controller2.position){const e=this.controller1.position.distanceTo(this.controller2.position)/this.startDistance,t=this.controller1.position.clone().sub(this.startPosition);this.dispatchEvent({type:"pinch",delta:t,scale:e})}}}class Oe{constructor(e,t){this.config=void 0===t?{panelSize:{width:1,height:1},width:512,height:512,opacity:.7,body:{fontFamily:"Arial",fontSize:30,padding:2,backgroundColor:"#000",fontColor:"#fff",borderRadius:6}}:t,void 0===this.config.width&&(this.config.width=512),void 0===this.config.height&&(this.config.height=512),void 0===this.config.body&&(this.config.body={fontFamily:"Arial",size:30,padding:2,backgroundColor:"#000",fontColor:"#fff",borderRadius:6});const s=this.config.body;void 0===s.borderRadius&&(s.borderRadius=6),void 0===s.fontFamily&&(s.fontFamily="Arial"),void 0===s.padding&&(s.padding=2),void 0===s.fontSize&&(s.fontSize=30),void 0===s.backgroundColor&&(s.backgroundColor="#000"),void 0===s.fontColor&&(s.fontColor="#fff"),Object.entries(this.config).forEach((([e,t])=>{if(!("object"!=typeof t||"panelSize"===e||t instanceof THREE.WebGLRenderer||t instanceof THREE.Scene)){const e=void 0!==t.position?t.position:{x:0,y:0};void 0!==e.left&&void 0===e.x&&(e.x=e.left),void 0!==e.top&&void 0===e.y&&(e.y=e.top);const s=void 0!==t.width?t.width:this.config.width,i=void 0!==t.height?t.height:this.config.height;void 0!==e.right&&void 0===e.x&&(e.x=this.config.width-e.right-s),void 0!==e.bottom&&void 0===e.y&&(e.y=this.config.height-e.bottom-i),void 0===e.x&&(e.x=0),void 0===e.y&&(e.y=0),t.position=e,void 0===t.type&&(t.type="text")}}));const i=this.createOffscreenCanvas(this.config.width,this.config.height);this.context=i.getContext("2d"),this.context.save();const n=void 0!==this.config.opacity?this.config.opacity:.7,l=new THREE.MeshBasicMaterial({transparent:!0,opacity:n});this.panelSize=void 0!==this.config.panelSize?this.config.panelSize:{width:1,height:1};const r=new THREE.PlaneGeometry(this.panelSize.width,this.panelSize.height);this.mesh=new THREE.Mesh(r,l),this.texture=new THREE.CanvasTexture(i),this.mesh.material.map=this.texture,this.scene=this.config.scene;if(Object.values(this.config).filter((e=>"input-text"===e.type)).length>0){this.keyboard=new Re(this.panelSize.width,this.config.renderer);this.keyboard.mesh.position.set(0,-.3,.2),this.mesh.add(this.keyboard.mesh)}if(void 0===e)this.content={body:""},this.config.body.type="text";else{this.content=e;Object.values(t).filter((e=>"button"===e.type||"scroll"===e.overflow||"input-text"===e.type)).length>0&&(void 0===t||void 0===t.renderer?console.warn("CanvasUI: button, scroll or input-text in the config but no renderer"):(this.renderer=t.renderer,this.initControllers()))}this.selectedElements=[void 0,void 0],this.selectPressed=[!1,!1],this.scrollData=[void 0,void 0],this.intersects=[void 0,void 0],this.needsUpdate=!0,this.update()}getIntersectY(e){const t=this.config.height||512,s=this.intersects[e];return void 0===s||void 0===s.uv?0:(1-s.uv.y)*t}initControllers(){this.vec3=new THREE.Vector3,this.mat4=new THREE.Matrix4,this.raycaster=new THREE.Raycaster;const e=this;function t(t){const s=t.target===e.controller?0:1,i=e.selectedElements[s];if(void 0!==i)if("button"==i.type)e.select(s);else if("input-text"==i.type&&e.keyboard)if(e.keyboard.visible)e.keyboard.linkedUI=void 0,e.keyboard.linkedText=void 0,e.keyboard.linkedElement=void 0,e.keyboard.visible=!1;else{let t;e.keyboard.linkedUI=e,Object.entries(e.config).forEach((([e,s])=>{s==i&&(t=e)}));const s=(.5-(i.position.y+i.height+e.config.body.padding)/e.config.height)*e.panelSize.height,n=Math.max(e.panelSize.width,e.panelSize.height)/2;e.keyboard.position.set(0,-n/1.5-s,.1),e.keyboard.linkedText=e.content[t],e.keyboard.linkedName=t,e.keyboard.linkedElement=i,e.keyboard.visible=!0}}function s(t){const s=t.target===e.controller?0:1;if(e.selectPressed[s]=!0,void 0!==e.selectedElements[s]&&"scroll"==e.selectedElements[s].overflow){const t=e.selectedElements[s];e.scrollData[s]={scrollY:t.scrollY,rayY:e.getIntersectY(s)}}}function i(t){const s=t.target===e.controller?0:1;e.selectPressed[s]=!1,void 0!==e.selectedElements[s]&&"scroll"==e.selectedElements[s].overflow&&(e.scrollData[s]=void 0)}if(this.controller=this.renderer.xr.getController(0),this.controller.addEventListener("select",t),this.controller.addEventListener("selectstart",s),this.controller.addEventListener("selectend",i),this.controller1=this.renderer.xr.getController(1),this.controller1.addEventListener("select",t),this.controller1.addEventListener("selectstart",s),this.controller1.addEventListener("selectend",i),this.scene){const e=.015,t=new THREE.IcosahedronBufferGeometry(e),s=new THREE.MeshBasicMaterial({color:170}),i=new THREE.Mesh(t,s);i.visible=!1,this.scene.add(i);const n=new THREE.Mesh(t,s);n.visible=!1,this.scene.add(n),this.intersectMesh=[i,n]}}setClip(e){const t=this.context;if(t.restore(),t.save(),void 0!==e.clipPath){const s=new Path2D(e.clipPath);t.clip(s)}else{const s=void 0!==e.position?e.position:{x:0,y:0},i=e.borderRadius||0,n=e.width||this.config.width,l=e.height||this.config.height;if(t.beginPath(),0!==i){const e=Math.PI/2;t.moveTo(s.x+i,s.y),t.arc(s.x+i,s.y+i,i,e,2*e,!0),t.lineTo(s.x,s.y+l-i),t.arc(s.x+i,s.y+l-i,i,0,e,!0),t.lineTo(s.x+n-i,s.y+l),t.arc(s.x+n-i,s.y+l-i,i,3*e,4*e,!0),t.lineTo(s.x+n,s.y+i),t.arc(s.x+n-i,s.y+i,i,2*e,3*e,!0),t.closePath(),t.clip()}else t.rect(s.x,s.y,n,l),t.clip()}}setPosition(e,t,s){void 0!==this.mesh&&this.mesh.position.set(e,t,s)}setRotation(e,t,s){void 0!==this.mesh&&this.mesh.rotation.set(e,t,s)}updateElement(e,t){let s=this.content[e];void 0!==s?("object"==typeof s?s.content=t:s=t,this.content[e]=s,this.needsUpdate=!0):console.warn(`CanvasGUI.updateElement: No ${e} found`)}get panel(){return this.mesh}getElementAtLocation(e,t){const s=this,i=Object.entries(this.config).filter((([i,n])=>{if(!("object"!=typeof n||"panelSize"===i||"body"===i||n instanceof THREE.WebGLRenderer||n instanceof THREE.Scene)){const i=n.position,l=void 0!==n.width?n.width:s.config.width,r=void 0!==n.height?n.height:s.config.height;return e>=i.x&&e=i.y&&t0?(this.hover(t,s[0].uv),this.intersects[t]=s[0],this.scroll(t)):(this.hover(t),this.intersects[t]=void 0,this.scroll(t))}update(){if(void 0===this.mesh)return;if(this.controller&&this.handleController(this.controller,0),this.controller1&&this.handleController(this.controller1,1),this.keyboard&&this.keyboard.visible&&this.keyboard.update(),!this.needsUpdate)return;let e=this.context;e.clearRect(0,0,this.config.width,this.config.height);const t=this.config.body.backgroundColor?this.config.body.backgroundColor:"#000";!this.config.body.fontFamily||this.config.body.fontFamily;const s=this.config.body.fontColor?this.config.body.fontColor:"#fff";!this.config.body.fontSize||this.config.body.fontSize,this.setClip(this.config.body),e.fillStyle=t,e.fillRect(0,0,this.config.width,this.config.height);const i=this;Object.entries(this.content).forEach((([t,n])=>{const l=void 0!==i.config[t]?i.config[t]:i.config.body;if("none"!==(void 0!==l.display?l.display:"block")){const r=void 0!==l.position?l.position:{x:0,y:0},o=void 0!==l.width?l.width:i.config.width,a=void 0!==l.height?l.height:i.config.height;"button"!=l.type||n.toLowerCase().startsWith("")||(void 0===l.borderRadius&&(l.borderRadius=6),void 0===l.textAlign&&(l.textAlign="center")),i.setClip(l);const d=n.toLowerCase().startsWith(""),c=void 0!==i.selectedElements[0]&&this.selectedElements[0]===l||void 0!==i.selectedElements[1]&&this.selectedElements[1]===l;if(void 0!==l.backgroundColor&&(c&&"button"==l.type&&void 0!==l.hover?e.fillStyle=l.hover:e.fillStyle=l.backgroundColor,e.fillRect(r.x,r.y,o,a)),"text"==l.type||"button"==l.type||"input-text"==l.type){let h=!1;if(c?(d||"button"!=l.type?e.fillStyle=void 0!==l.hover?l.hover:void 0!==l.fontColor?l.fontColor:s:e.fillStyle=void 0!==l.fontColor?l.fontColor:s,h=void 0===l.hover):e.fillStyle=void 0!==l.fontColor?l.fontColor:s,d){const t=n.toUpperCase().substring(6,n.length-7);e.save(),e.translate(r.x,r.y);const s=new Path2D(t);e.fill(s),e.restore()}else i.wrapText(t,n);h&&(e.beginPath(),e.strokeStyle="#fff",e.lineWidth=2,e.rect(r.x,r.y,o,a),e.stroke())}else if("img"==l.type)if(void 0===l.img)this.loadImage(n).then((e=>{console.log(`w: ${e.width} | h: ${e.height}`),l.img=e,i.needsUpdate=!0,i.update()})).catch((e=>console.error(e)));else{const t=o/(l.img.width/l.img.height);e.drawImage(l.img,r.x,r.y,o,t)}}})),this.needsUpdate=!1,this.texture.needsUpdate=!0}loadImage(e){return new Promise(((t,s)=>{const i=new THREE.Image;i.addEventListener("load",(()=>t(i))),i.addEventListener("error",(e=>s(e))),i.src=e}))}createOffscreenCanvas(e,t){const s=document.createElement("canvas");return s.width=e,s.height=t,s}fillRoundedRect(e,t,s,i,n){const l=this.context;l.beginPath(),l.moveTo(e+n,t),l.lineTo(e+s-n,t),l.quadraticCurveTo(e+s,t,e+s,t+n),l.lineTo(e+s,t+i-n),l.quadraticCurveTo(e+s,t+i,e+s-n,t+i),l.lineTo(e+n,t+i),l.quadraticCurveTo(e,t+i,e,t+i-n),l.lineTo(e,t+n),l.quadraticCurveTo(e,t,e+n,t),l.closePath(),l.fill()}lookAt(e){void 0!==this.mesh&&(e instanceof Vector3?this.mesh.lookAt(e):console.error("CanvasUI lookAt called parameter not a THREE.Vector3"))}get visible(){return void 0!==this.mesh&&this.mesh.visible}set visible(e){this.mesh&&(this.mesh.visible=e)}get position(){if(void 0!==this.mesh)return this.mesh.position}set position(e){void 0!==this.mesh&&(e instanceof Vector3?this.mesh.position.copy(e):console.error("CanvasUI trying to set the mesh position using a parameter that is not a THREE.Vector3"))}get quaternion(){if(void 0!==this.mesh)return this.mesh.quaternion}set quaternion(e){void 0!==this.mesh&&(e instanceof QUaternion?this.mesh.quaternion.copy(e):console.error("CanvasUI trying to set the mesh quaternion using a parameter that is not a THREE.Quaternion"))}wrapText(e,t){const s=t.split(" ");let i="";const n=[],l=void 0!==this.config[e]?this.config[e]:this.config.body,r=void 0!==l.width?l.width:this.config.width,o=void 0!==l.height?l.height:this.config.height,a=void 0!==l.position?l.position:{x:0,y:0},d=void 0!==l.padding?l.padding:void 0!==this.config.body.padding?this.config.body.padding:10,c=void 0!==l.paddingTop?l.paddingTop:d,h=void 0!==l.paddingLeft?l.paddingLeft:d,p=void 0!==l.paddingBottom?l.paddingBottom:d,m=void 0!==l.paddingRight?l.paddingRight:d,u={x:a.x+h,y:a.y+c,width:r-h-m,height:o-c-p},g=void 0!==l.textAlign?l.textAlign:void 0!==this.config.body.textAlign?this.config.body.textAlign:"left",f=void 0!==l.fontSize?l.fontSize:void 0!==this.config.body.fontSize?this.config.body.fontSize:30,C=void 0!==l.fontFamily?l.fontFamily:void 0!==this.config.body.fontFamily?this.config.body.fontFamily:"Arial",b=f+(void 0!==l.leading?l.leading:void 0!==this.config.body.leading?this.config.body.leading:8),y=this.context;y.textAlign=g,y.font=`${f}px '${C}'`,s.forEach((function(e){let t=s.length>1?`${i}${e} `:e,l=y.measureText(t);if(l.width>u.width&&e.length>1)if(0==i.length&&l.width>u.width){for(;l.width>u.width;){let s=0;do{s++,t=e.substr(0,s),l=y.measureText(t)}while(l.widthu.height&&"scroll"===l.overflow){void 0===l.scrollY&&(l.scrollY=0);const e=void 0!==l.fontColor?l.fontColor:this.config.body.fontColor;y.fillStyle="#aaa",this.fillRoundedRect(a.x+r-12,a.y,12,o,6),y.fillStyle="#666";const t=u.height/v,s=t*o,i=-l.scrollY*t;this.fillRoundedRect(a.x+r-12,a.y+i,12,s,6),y.fillStyle=e,_=l.scrollY,l.minScrollY=u.height-v}let w,S=_+u.y+f/2;switch(g){case"center":w=u.x+u.width/2;break;case"right":w=u.x+u.width;break;default:w=u.x}n.forEach((e=>{S+b>0&&y.fillText(e,w,S),S+=b}))}}class Re{constructor(e,t,s="EN"){const i=this.getConfig(s);i.panelSize={width:e,height:.5*e},i.height=256,i.body={backgroundColor:"#555"},i.renderer=t;const n=this.getContent(s);this.keyboard=new Oe(n,i),this.keyboard.mesh.visible=!1,this.shift=!1}get mesh(){return this.keyboard.mesh}getConfig(e){const t={};let s=10;const i=39.2,n=49,l="#333",r="#000";let o=s,a=s;for(let e=0;e<10;e++){const d={type:"button",position:{x:a,y:o},width:i,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e)};t[`btn${e}`]=d,a+=49.2}o+=59,a=s;for(let e=0;e<10;e++){const d={type:"button",position:{x:a,y:o},width:i,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+10)};t[`btn${e+10}`]=d,a+=49.2}o+=59,a=s;for(let e=0;e<9;e++){const d=0==e||8==e?1.5*i+5:i,c={type:"button",position:{x:a,y:o},width:d,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+20)};t[`btn${e+20}`]=c,a+=d+s}o+=59,a=s;for(let e=0;e<5;e++){const d=0==e||4==e?88.4:2==e?186.8:i,c={type:"button",position:{x:a,y:o},width:d,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+30)};0==e&&(c.fontSize=20),t[`btn${e+30}`]=c,a+=d+s}return t}getContent(e,t=0){let s,i={};switch(this.language=e,this.keyboardIndex=t,t){case 0:s=["q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","@","⇧","z","x","c","v","b","n","m","⇦","","?123",","," ",".","↲"];for(let e=0;e","_","`","~",":",";","⇦","","abc",","," ",".","↲"];for(let e=0;e=0;e--){let s=t.scene.children[e];t.scene.remove(s)}else t.scene=new THREE.Scene;if(void 0!==t.scene_ghost)for(let e=t.scene_ghost.children.length-1;e>=0;e--){let s=t.scene_ghost.children[e];t.scene_ghost.remove(s)}else t.scene_ghost=new THREE.Scene;if(""!=s.htmlCls.setHtmlCls.getCookie("shininess")){let e=parseFloat(s.htmlCls.setHtmlCls.getCookie("shininess"));t.shininess!=e&&s.htmlCls.clickMenuCls.setLogCmd("set shininess "+e,!0),t.shininess=e}if(!s.bNode&&""!=s.htmlCls.setHtmlCls.getCookie("light1")){let e=parseFloat(s.htmlCls.setHtmlCls.getCookie("light1")),i=parseFloat(s.htmlCls.setHtmlCls.getCookie("light2")),n=parseFloat(s.htmlCls.setHtmlCls.getCookie("light3"));t.light1==e&&t.light2==i&&t.light3==n||s.htmlCls.clickMenuCls.setLogCmd("set light | light1 "+e+" | light2 "+i+" | light3 "+n,!0),t.light1=e,t.light2=i,t.light3=n}t.directionalLight=new THREE.DirectionalLight(16777215,t.light1),t.directionalLight2=new THREE.DirectionalLight(16777215,t.light2),t.directionalLight3=new THREE.DirectionalLight(16777215,t.light3),t.cam_z>0?(t.directionalLight.position.set(-1,1,1),t.directionalLight2.position.set(1,1,1),t.directionalLight3.position.set(1,1,-1),t.lightPos=new THREE.Vector3(-1,1,1),t.lightPos2=new THREE.Vector3(1,1,1),t.lightPos3=new THREE.Vector3(1,1,-1)):(t.directionalLight.position.set(-1,1,-1),t.directionalLight2.position.set(1,1,-1),t.directionalLight3.position.set(1,1,1),t.lightPos=new THREE.Vector3(-1,1,-1),t.lightPos2=new THREE.Vector3(1,1,-1),t.lightPos3=new THREE.Vector3(1,1,1));let i=new THREE.AmbientLight(4210752);if(t.scene.add(t.directionalLight),t.scene.add(i),void 0!==t.mdl)for(let e=t.mdl.children.length-1;e>=0;e--){let s=t.mdl.children[e];s.geometry&&s.geometry.dispose(),s.material&&s.material.dispose(),t.mdl.remove(s)}if(void 0!==t.mdlImpostor){for(let e=t.mdlImpostor.children.length-1;e>=0;e--){let s=t.mdlImpostor.children[e];s.geometry&&s.geometry.dispose(),s.material&&s.material.dispose(),t.mdlImpostor.remove(s)}t.mdlImpostor.children.length=0}s.bNode||t.renderer.renderLists.dispose(),t.mdl=new THREE.Object3D,t.mdlImpostor=new THREE.Object3D,t.scene.add(t.mdl),t.scene.add(t.mdlImpostor),t.mdl_ghost=new THREE.Object3D,t.scene_ghost.add(t.mdl_ghost),t.objects=[],t.objects_ghost=[],t.raycaster=new THREE.Raycaster,t.projector=new THREE.Projector,t.mouse=new THREE.Vector2;let n=s.parasCls.backgroundColors[t.opts.background.toLowerCase()];s.bNode||("transparent"===t.opts.background.toLowerCase()?t.renderer.setClearColor(n,0):t.renderer.setClearColor(n,1)),t.perspectiveCamera=new THREE.PerspectiveCamera(20,t.container.whratio,.1,1e4),t.perspectiveCamera.position.set(0,0,t.cam_z),t.perspectiveCamera.lookAt(new THREE.Vector3(0,0,0)),t.orthographicCamera=new THREE.OrthographicCamera,t.orthographicCamera.position.set(0,0,t.cam_z),t.orthographicCamera.lookAt(new THREE.Vector3(0,0,0)),t.cams={perspective:t.perspectiveCamera,orthographic:t.orthographicCamera}}setVrAr(){let e=this.icn3d;e.icn3dui;let t=this;e.bSetVrAr=!0,e.bVr?(e.canvasUI=this.createUI(),e.raycasterVR=new THREE.Raycaster,e.workingMatrix=new THREE.Matrix4,e.workingVector=new THREE.Vector3,e.origin=new THREE.Vector3,e.dolly=new THREE.Object3D,e.dolly.position.z=5,e.dolly.add(e.cam),e.scene.add(e.dolly),e.dollyId=e.dolly.id,e.dummyCam=new THREE.Object3D,e.cam.add(e.dummyCam),e.clock=new THREE.Clock,e.controllers=this.getControllers(),e.controllers.forEach((s=>{s.addEventListener("connected",(function(e){try{const s={},i="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",n="generic-trigger";be(e.data,i,n).then((({profile:i,assetPath:n})=>{s.name=i.profileId,s.targetRayMode=e.data.targetRayMode,Object.entries(i.layouts).forEach((([e,t])=>{const i={};Object.values(t.components).forEach((e=>{i[e.rootNodeName]=e.gamepadIndices})),s[e]=i})),t.updateControllers(s)}))}catch(e){}})),s.addEventListener("disconnected",(function(){this.remove(this.children[0]),e.controllers.forEach((e=>{}))}))}))):e.bAr&&(e.gestures=new ke(e.renderer),e.scene.add(e.gestures.controller1),e.scene.add(e.gestures.controller2),e.gestures.addEventListener("doubletap",(e=>{t.positionCenter()})),e.gestures.addEventListener("pinch",(s=>{if(void 0!==s.initialise)t.startPosition=e.mdl.position.clone(),t.startScale=e.mdl.scale.clone();else{let i=1;const n=t.startScale.clone().multiplyScalar(s.scale*i);e.mdl.scale.copy(n)}})))}positionCenter(){let e=this.icn3d;e.icn3dui;const t=e.gestures.controller1;e.mdl.position.set(-.06,0,-.6).applyMatrix4(t.matrixWorld),e.mdl.scale.copy(new THREE.Vector3(.005,.005,.005))}setVrArButtons(){let e=this.icn3d,t=e.icn3dui;e.bSetVrArButtons=!0,t.bNode||($("#"+t.pre+"VRButton").remove(),$("#"+t.pre+"viewer").get(0).appendChild(e.VRButtonCls.createButton(e.renderer)),$("#"+t.pre+"ARButton").remove(),$("#"+t.pre+"viewer").get(0).appendChild(e.ARButtonCls.createButton(e.renderer)))}updateControllers(e){this.icn3d.icn3dui,this.addEventForController(e,"right"),this.addEventForController(e,"left")}addEventForController(e,t){let s=this.icn3d;s.icn3dui;const i="right"==t?s.renderer.xr.getController(0):s.renderer.xr.getController(1),n="right"==t?e.right:e.left;if(i&&void 0!==n){let e=!1,t=!1;Object.keys(n).forEach((i=>{-1!=i.indexOf("trigger")&&(e=!0),-1!=i.indexOf("squeeze")&&(t=!0),-1==i.indexOf("thumbstick")&&-1==i.indexOf("touchpad")||(s.xAxisIndex=n[i].xAxis,s.yAxisIndex=n[i].yAxis)})),e&&(i.addEventListener("selectstart",(function(){this.userData.selectPressed=!0})),i.addEventListener("selectend",(function(){this.userData.selectPressed=!1,this.userData.selected=void 0}))),t&&(i.addEventListener("squeezestart",(function(){this.userData.squeezePressed=!0,s.cam.add(s.canvasUI.mesh)})),i.addEventListener("squeezeend",(function(){this.userData.squeezePressed=!1,s.cam.remove(s.canvasUI.mesh)})))}}createUI(){let e=this.icn3d,t=e.icn3dui,s=94,i=50,n=94,l=34,r=12,o="#1c94c4",a="#ccc",d="#fbcb09",c=20;const h={panelSize:{width:2,height:1.6},height:400,select:{type:"button",paddingTop:c,position:{top:6,left:6},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},residue:{type:"button",paddingTop:c,position:{top:62,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=2,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},secondarySelect:{type:"button",paddingTop:12,position:{top:118,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=3,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},chainSelect:{type:"button",paddingTop:c,position:{top:174,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=5,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},atom:{type:"button",paddingTop:c,position:{top:230,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=1,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},reset:{type:"button",paddingTop:c,position:{top:286,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.viewInterPairsCls.resetInteractionPairs(),e.selectionCls.resetAll(),e.cam.remove(e.canvasUI.mesh)}},togglehl:{type:"button",paddingTop:12,position:{top:342,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.hlUpdateCls.toggleHighlight(),e.cam.remove(e.canvasUI.mesh)}},style:{type:"button",paddingTop:c,position:{top:6,left:106},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},ribbon:{type:"button",paddingTop:c,position:{top:62,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","ribbon"),e.setOptionCls.setStyle("nucleotides","nucleotide cartoon"),e.cam.remove(e.canvasUI.mesh)}},schematic:{type:"button",paddingTop:c,position:{top:118,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","schematic"),e.setOptionCls.setStyle("nucleotides","schematic"),e.cam.remove(e.canvasUI.mesh)}},stick:{type:"button",paddingTop:c,position:{top:174,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","stick"),e.setOptionCls.setStyle("nucleotides","stick"),e.cam.remove(e.canvasUI.mesh)}},sphere:{type:"button",paddingTop:c,position:{top:230,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","sphere"),e.setOptionCls.setStyle("nucleotides","sphere"),e.cam.remove(e.canvasUI.mesh)}},surface:{type:"button",paddingTop:c,position:{top:286,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.opts.surface="molecular surface",e.applyMapCls.applySurfaceOptions(),e.cam.remove(e.canvasUI.mesh)}},surfaceTrn:{type:"button",paddingTop:12,position:{top:342,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.opts.surface="molecular surface",e.opts.opacity="0.2",e.applyMapCls.applySurfaceOptions(),e.cam.remove(e.canvasUI.mesh)}},color:{type:"button",paddingTop:c,position:{top:6,left:206},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},rainbow:{type:"button",paddingTop:c,position:{top:62,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","rainbow for chains"),e.cam.remove(e.canvasUI.mesh)}},atomColor:{type:"button",paddingTop:c,position:{top:118,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","atom"),e.cam.remove(e.canvasUI.mesh)}},chainColor:{type:"button",paddingTop:c,position:{top:174,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","chain"),e.cam.remove(e.canvasUI.mesh)}},secondaryColor:{type:"button",paddingTop:12,position:{top:230,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","secondary structure green"),e.cam.remove(e.canvasUI.mesh)}},charge:{type:"button",paddingTop:c,position:{top:342,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","charge"),e.cam.remove(e.canvasUI.mesh)}},AlphaFold:{type:"button",paddingTop:c,position:{top:286,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","confidence"),e.cam.remove(e.canvasUI.mesh)}},unicolor:{type:"button",paddingTop:c,position:{top:6,left:306},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},red:{type:"button",position:{top:i,left:300},width:n,height:l,fontColor:"red",hover:d,onSelect:function(){e.setOptionCls.setOption("color","red"),e.cam.remove(e.canvasUI.mesh)}},green:{type:"button",position:{top:78,left:300},width:n,height:l,fontColor:"green",hover:d,onSelect:function(){e.setOptionCls.setOption("color","green"),e.cam.remove(e.canvasUI.mesh)}},blue:{type:"button",position:{top:106,left:300},width:n,height:l,fontColor:"blue",hover:d,onSelect:function(){e.setOptionCls.setOption("color","blue"),e.cam.remove(e.canvasUI.mesh)}},blueviolet:{type:"button",position:{top:134,left:300},width:n,height:l,fontColor:"#8A2BE2",hover:d,onSelect:function(){e.setOptionCls.setOption("color","8A2BE2"),e.cam.remove(e.canvasUI.mesh)}},magenta:{type:"button",position:{top:162,left:300},width:n,height:l,fontColor:"magenta",hover:d,onSelect:function(){e.setOptionCls.setOption("color","magenta"),e.cam.remove(e.canvasUI.mesh)}},yellow:{type:"button",position:{top:190,left:300},width:n,height:l,fontColor:"yellow",hover:d,onSelect:function(){e.setOptionCls.setOption("color","yellow"),e.cam.remove(e.canvasUI.mesh)}},orange:{type:"button",position:{top:218,left:300},width:n,height:l,fontColor:"orange",hover:d,onSelect:function(){e.setOptionCls.setOption("color","FFA500"),e.cam.remove(e.canvasUI.mesh)}},cyan:{type:"button",position:{top:246,left:300},width:n,height:l,fontColor:"cyan",hover:d,onSelect:function(){e.setOptionCls.setOption("color","cyan"),e.cam.remove(e.canvasUI.mesh)}},gray:{type:"button",position:{top:274,left:300},width:n,height:l,fontColor:"gray",hover:d,onSelect:function(){e.setOptionCls.setOption("color","888888"),e.cam.remove(e.canvasUI.mesh)}},white:{type:"button",position:{top:302,left:300},width:n,height:l,fontColor:"white",hover:d,onSelect:function(){e.setOptionCls.setOption("color","white"),e.cam.remove(e.canvasUI.mesh)}},analysis:{type:"button",paddingTop:c,position:{top:6,left:406},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},distance:{type:"button",paddingTop:c,position:{top:62,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){try{e.bMeasureDistance=!0;let s=e.pickingCls.getPickedAtomList(e.pk,e.pAtom),i=e.pickingCls.getPickedAtomList(e.pk,e.pAtom2),n=e.applyCenterCls.centerAtoms(t.hashUtilsCls.hash2Atoms(s,e.atoms)).center,l=e.applyCenterCls.centerAtoms(t.hashUtilsCls.hash2Atoms(i,e.atoms)).center,r=0,o=0,a="#FFFF00",d=(n.x+l.x)/2,c=(n.y+l.y)/2,h=(n.z+l.z)/2,p=!0;e.analysisCls.addLine(n.x,n.y,n.z,l.x,l.y,l.z,a,p,"distance");let m=(parseInt(10*n.distanceTo(l))/10).toString()+" A";e.analysisCls.addLabel(m,d,c,h,r,a,o,"distance"),e.drawCls.draw(),e.cam.remove(e.canvasUI.mesh)}catch(e){}}},interaction:{type:"button",paddingTop:c,position:{top:118,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){try{e.viewInterPairsCls.viewInteractionPairs(["selected"],["non-selected"],!1,"3d",1,1,1,1,1,1),e.cam.remove(e.canvasUI.mesh)}catch(e){}}},delphi:{type:"button",paddingTop:c,position:{top:174,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:async function(){e.phisurftype=22,e.phisurfop=1,e.phisurfwf="no",await e.delphiCls.CalcPhi(65,.15,2,!0),e.cam.remove(e.canvasUI.mesh)}},removeLabel:{type:"button",paddingTop:c,position:{top:230,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){for(let t in e.labels)e.labels[t]=[];e.drawCls.draw(),e.cam.remove(e.canvasUI.mesh)}},renderer:e.renderer},p=new Oe({select:"Select",residue:"Residue",secondarySelect:"Secondary Structure",chainSelect:"Chain",atom:"Atom",reset:"Reset",togglehl:"Toggle Highlight",style:"Style",ribbon:"Ribbon",schematic:"Schematic",stick:"Stick",sphere:"Sphere",surface:"Surface",surfaceTrn:"Transparent Surface",color:"Color",rainbow:"Rainbow",atomColor:"Atom",chainColor:"Chain",secondaryColor:"Secondary Structure",AlphaFold:"AlphaFold",charge:"Charge",unicolor:"UniColor",red:"M 100 15 L 15 15 L 15 100 L 100 100 Z",green:"M 100 15 L 15 15 L 15 100 L 100 100 Z",blue:"M 100 15 L 15 15 L 15 100 L 100 100 Z",blueviolet:"M 100 15 L 15 15 L 15 100 L 100 100 Z",magenta:"M 100 15 L 15 15 L 15 100 L 100 100 Z",yellow:"M 100 15 L 15 15 L 15 100 L 100 100 Z",orange:"M 100 15 L 15 15 L 15 100 L 100 100 Z",cyan:"M 100 15 L 15 15 L 15 100 L 100 100 Z",gray:"M 100 15 L 15 15 L 15 100 L 100 100 Z",white:"M 100 15 L 15 15 L 15 100 L 100 100 Z",analysis:"Analysis",distance:"Distance",interaction:"Interaction",delphi:"DelPhi Potential",removeLabel:"Remove Label"},h);return p.mesh.position.set(0,0,-3),p}createUILog(){let e=this.icn3d;e.icn3dui;const t={panelSize:{width:2,height:2},height:512,info:{type:"text",overflow:"scroll",position:{top:6,left:6},width:506,height:506,backgroundColor:"#aaa",fontColor:"#000"},renderer:e.renderer},s=new Oe({info:"Debug info"},t);return s.mesh.position.set(0,-1,-2),s}getControllers(){let e=this.icn3d;e.icn3dui;const t=new xe,s=(new THREE.BufferGeometry).setFromPoints([new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,-1)]),i=new THREE.Line(s);i.name="line",i.scale.z=50;const n=[];for(let s=0;s<=1;s++){const l=e.renderer.xr.getController(s);if(!l)continue;e.dolly.add(l),l.add(i.clone()),l.userData.selectPressed=!1,e.cam.add(l),n.push(l);const r=e.renderer.xr.getControllerGrip(s);r.add(t.createControllerModel(r)),e.scene.add(r)}return n}}class Ee{constructor(e){this.icn3d=e}setCamera(){let e=this.icn3d,t=e.icn3dui;if(e.bControlGl&&!t.bNode){window.cam=e.cams[e.opts.camera.toLowerCase()];let s=e.maxD;if(window.cam===e.perspectiveCamera){let i=void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>e.maxatomcnt;i?window.camMaxDFactor=1:void 0!==window.camMaxDFactorFog?window.camMaxDFactor=window.camMaxDFactorFog:window.camMaxDFactor=3,window.cam_z>0?window.cam.position.z=s*window.camMaxDFactor:window.cam.position.z=-s*window.camMaxDFactor,"yes"===e.opts.slab?i?window.cam.near=.1:void 0!==window.camMaxDFactorFog?window.cam.near=s*window.camMaxDFactorFog-10:window.cam.near=s*window.camMaxDFactor:window.cam.near=.1,window.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.TrackballControls(window.cam,void 0,e):t.bNode?e.controls=new THREE.TrackballControls(e.cam,document,e):e.controls=new THREE.TrackballControls(e.cam,document.getElementById(e.id),e)}else window.cam===e.orthographicCamera&&(void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>10*e.maxatomcnt?window.cam.right=e.maxD/2*1.5:window.cam.right=e.maxD/2*2.5,window.cam.left=-window.cam.right,window.cam.top=window.cam.right/e.container.whratio,window.cam.bottom=-window.cam.right/e.container.whratio,"yes"===e.opts.slab?window.cam.near=2*e.maxD:window.cam.near=0,window.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.OrthographicTrackballControls(window.cam,void 0,e):t.bNode?e.controls=new THREE.OrthographicTrackballControls(e.cam,document,e):e.controls=new THREE.OrthographicTrackballControls(e.cam,document.getElementById(e.id),e));window.cam.updateProjectionMatrix()}e.cam=e.cams[e.opts.camera.toLowerCase()];let s=e.maxD;if(e.cam===e.perspectiveCamera){let i=void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>e.maxatomcnt;i?e.camMaxDFactor=1:void 0!==e.camMaxDFactorFog?e.camMaxDFactor=e.camMaxDFactorFog:e.camMaxDFactor=3,e.cam_z>0?e.cam.position.z=s*e.camMaxDFactor:e.cam.position.z=-s*e.camMaxDFactor,"yes"===e.opts.slab?i?e.cam.near=.1:void 0!==e.camMaxDFactorFog?e.cam.near=s*e.camMaxDFactorFog-10:e.cam.near=s*e.camMaxDFactor:e.cam.near=.1,e.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.TrackballControls(e.cam,void 0,e):t.bNode?e.controls=new THREE.TrackballControls(e.cam,document,e):e.controls=new THREE.TrackballControls(e.cam,document.getElementById(e.id),e)}else e.cam===e.orthographicCamera&&(void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>10*e.maxatomcnt?e.cam.right=e.maxD/2*1.5:e.cam.right=e.maxD/2*2.5,e.cam.left=-e.cam.right,e.cam.top=e.cam.right/e.container.whratio,e.cam.bottom=-e.cam.right/e.container.whratio,"yes"===e.opts.slab?e.cam.near=2*e.maxD:e.cam.near=0,e.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.OrthographicTrackballControls(e.cam,void 0,e):t.bNode?e.controls=new THREE.OrthographicTrackballControls(e.cam,document,e):e.controls=new THREE.OrthographicTrackballControls(e.cam,document.getElementById(e.id),e));e.cam.updateProjectionMatrix()}}class Te{constructor(e){this.icn3d=e}setFog(e){let t=this.icn3d,s=t.icn3dui.parasCls.backgroundColors[t.opts.background.toLowerCase()];if(e){let e=t.applyCenterCls.centerAtoms(t.hAtoms);t.maxD=e.maxD,t.maxD<25&&(t.maxD=25)}let i=void 0!==t.biomtMatrices&&t.biomtMatrices.length*t.cnt>t.maxatomcnt;if("yes"===t.opts.fog)if("perspective"===t.opts.camera)if(i)t.scene.fog=void 0,t.bSetFog=!1;else{let e=t._zoomFactor>1?1*t._zoomFactor:t._zoomFactor;t.scene.fog=new THREE.Fog(s,2.5*t.maxD*e,4*t.maxD*e),t.bSetFog=!0,t.camMaxDFactorFog=3}else"orthographic"===t.opts.camera&&(t.scene.fog=void 0,t.bSetFog=!1);else t.scene.fog=void 0,t.bSetFog=!1}}class Pe{constructor(e){this.icn3d=e}createBox(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(o.bNode)return;void 0===t&&(t=.8),void 0===s&&(s=!1),void 0===i&&(i=.8),l?void 0===n&&(n=r.hColor):void 0===n&&(n=e.color);let a=s?t:(o.parasCls.vdwRadii[e.elem.toUpperCase()]||t)*(i||1);this.createBox_base(e.coord,a,n,l)}createBox_base(e,t,s,i,n,l,r){let o,a=this.icn3d;a.icn3dui.bNode||(void 0===r&&(r=l?.5:1),new THREE.BoxGeometry(1,1,1),o=new THREE.Mesh(a.boxGeometry,new THREE.MeshPhongMaterial({transparent:!0,opacity:r,specular:a.frac,shininess:a.shininess,emissive:a.emissive,color:s})),o.scale.x=o.scale.y=o.scale.z=t,o.position.copy(e),a.mdl.add(o),i?a.prevHighlightObjects.push(o):n?a.prevOtherMesh.push(o):a.objects.push(o))}createBoxRepresentation_P_CA(e,t,s){let i=this.icn3d;if(i.icn3dui.bNode)return;let n=this;i.reprSubCls.createRepresentationSub(e,(function(e){"CA"!==e.name&&"O3'"!==e.name&&"O3*"!==e.name||n.createBox(e,void 0,void 0,t,void 0,s)}))}}class De{constructor(e){this.icn3d=e}createBrick(e,t,s,i){let n=this.icn3d;if(n.icn3dui.bNode)return;let l=new THREE.CylinderGeometry(1,1,1,4,1),r=new THREE.Mesh(l,new THREE.MeshPhongMaterial({specular:n.frac,shininess:n.shininess,emissive:n.emissive,color:i}));r.position.copy(e).add(t).multiplyScalar(.5),r.matrixAutoUpdate=!1,r.lookAt(t.clone().sub(e)),r.updateMatrix(),r.matrix.multiply((new THREE.Matrix4).makeScale(s,s,e.distanceTo(t))).multiply((new THREE.Matrix4).makeRotationX(.5*Math.PI)),n.mdl.add(r)}}class Me{constructor(e){this.icn3d=e}createCurveSubArrow(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u){if(this.icn3d.icn3dui.bNode)return;let g=[],f=[];g.push(e),f.push(o),this.prepareStrand(g,f,t,s,i,void 0,n,l,r,a,d,!1,c,h,p,m,u),g=[],f=[]}createStripArrow(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g){if(this.icn3d.icn3dui.bNode)return;let f=[],C=[];f.push(e),f.push(t),C.push(o),C.push(a),this.prepareStrand(f,C,void 0,s,i,n,l,void 0,r,d,c,!0,h,p,m,u,g),f=[],C=[]}prepareStrand(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g,f){let C=this.icn3d,b=C.icn3dui;if(1===d.length)return;let y=i,v=!u,_=[];_.push(i[i.length-2]),_.push(i[i.length-1]),n=n||C.axisDIV;let w,S,A,x,k=2/(a-1),O={};for(let e=0,s=t.length;e1)if(void 0!==d){let i,n,l=[];for(let r=0,o=p.length;r0&&i.tubeCls.createTube(a,"CA",i.coilWidth,s),Object.keys(d).length>0&&i.strandCls.createStrand(d,void 0,void 0,!0,0,i.helixSheetWidth,!1,2*i.ribbonthickness,s)):(Object.keys(a).length>0&&i.tubeCls.createTube(a,"CA",i.coilWidth),Object.keys(d).length>0&&i.strandCls.createStrand(d,void 0,void 0,!0,0,i.helixSheetWidth,!1,2*i.ribbonthickness))}createCylinderCurve(e,t,s,i,n){let l=this.icn3d;if(l.icn3dui.bNode)return;let r,o,a,d,c,h,p=null;for(a in e)if(d=e[a],!d.het&&(c=d.structure+"_"+d.chain,h=d.structure+"_"+r,-1!=t.indexOf(d.name))){if(null!==p&&r===d.chain&&l.ParserUtilsCls.getResiNCBI(h,o)+1===l.ParserUtilsCls.getResiNCBI(c,d.resi)&&Math.abs(p.coord.x-d.coord.x)<8&&Math.abs(p.coord.y-d.coord.y)<8&&Math.abs(p.coord.z-d.coord.z)<8){let e=p.coord.clone().add(d.coord).multiplyScalar(.5);if(n)1===n&&(this.createCylinder(p.coord,e,s,p.color,n),this.createCylinder(e,d.coord,s,d.color,n),l.sphereCls.createSphere(d,s,!0,1,n));else if(i){let t=l.lineCls.createSingleLine(p.coord,e,p.color,!1);l.mdl.add(t),l.objects.push(t),t=l.lineCls.createSingleLine(e,d.coord,d.color,!1),l.mdl.add(t),l.objects.push(t)}else this.createCylinder(p.coord,e,s,p.color),this.createCylinder(e,d.coord,s,d.color),l.sphereCls.createSphere(d,s,!0,1,n)}p=d,r=d.chain,o=d.resi,l.sphereCls.createSphere(d,s,!0,1,n),2===n&&l.boxCls.createBox(d,void 0,void 0,void 0,void 0,n)}if(null!==p&&r===d.chain&&l.ParserUtilsCls.getResiNCBI(h,o)+1===l.ParserUtilsCls.getResiNCBI(c,d.resi)&&Math.abs(p.coord.x-d.coord.x)<8&&Math.abs(p.coord.y-d.coord.y)<8&&Math.abs(p.coord.z-d.coord.z)<8){let e=p.coord.add(d.coord).multiplyScalar(.5);if(n)1===n&&(this.createCylinder(p.coord,e,s,p.color,n),this.createCylinder(e,d.coord,s,d.color,n),l.sphereCls.createSphere(d,s,!0,1,n));else if(i){let t=l.lineCls.createSingleLine(p.coord,e,p.color,!1);l.mdl.add(t),l.objects.push(t),t=l.lineCls.createSingleLine(e,d.coord,d.color,!1),l.mdl.add(t),l.objects.push(t)}else this.createCylinder(p.coord,e,s,p.color),this.createCylinder(e,d.coord,s,d.color)}}}class Le{constructor(e){this.icn3d=e}createLineRepresentation(e,t){let s=this.icn3d;if(s.icn3dui.bNode)return;let i=new THREE.BufferGeometry,n=[],l=[],r=0,o=0;s.reprSubCls.createRepresentationSub(e,void 0,(function(e,t){if(e.color===t.color)n[r++]=e.coord.x,n[r++]=e.coord.y,n[r++]=e.coord.z,n[r++]=t.coord.x,n[r++]=t.coord.y,n[r++]=t.coord.z,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b;else{let s=e.coord.clone().add(t.coord).multiplyScalar(.5);n[r++]=e.coord.x,n[r++]=e.coord.y,n[r++]=e.coord.z,n[r++]=s.x,n[r++]=s.y,n[r++]=s.z,n[r++]=t.coord.x,n[r++]=t.coord.y,n[r++]=t.coord.z,n[r++]=s.x,n[r++]=s.y,n[r++]=s.z,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b}}));if(i.setAttribute("position",new THREE.BufferAttribute(new Float32Array(n),3)),i.setAttribute("color",new THREE.BufferAttribute(new Float32Array(l),3)),2!==t){let e;1===t||(e=new THREE.LineSegments(i,new THREE.LineBasicMaterial({linewidth:s.linewidth,vertexColors:!0})),s.mdl.add(e)),1===t?s.prevHighlightObjects.push(e):s.objects.push(e)}else 2===t&&s.boxCls.createBoxRepresentation_P_CA(e,.8,t)}createConnCalphSidechain(e,t){let s=this.icn3d;if(s.icn3dui.bNode)return;let i={};for(let s in e){let n=e[s];if(!n.het&&n.style2===t){i[n.structure+"_"+n.chain+"_"+n.resi]=1}}let n=[],l=[];for(let e in i){let t=s.firstAtomObjCls.getFirstAtomObjByName(s.residues[e],"CA");if(void 0!==t)for(let e=0,i=t.bonds.length;e=t.bonds.length&&e.bonds.length>1)s=e.serial,l=e.bonds[0],d=e.bonds[1];else{if(!(t.bonds.length>=e.bonds.length&&t.bonds.length>1))return void console.log("Double bond was not drawn due to the undefined cross plane");s=t.serial,l=t.bonds[0],d=t.bonds[1]}let i=r.atoms[s].coord.clone();i.sub(r.atoms[l].coord);let n=r.atoms[s].coord.clone();n.sub(r.atoms[d].coord),i.cross(n),0==parseInt(1e4*i.length())&&(i=new THREE.Vector3(.2,.3,.5)),c=t.coord.clone(),c.sub(e.coord),c.cross(i).normalize().multiplyScalar(.2*o),0==parseInt(1e4*c.length())&&(i=new THREE.Vector3(.5,.3,.2),c.cross(i).normalize().multiplyScalar(.2*o))}e.color===t.color?r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),t.coord.clone().add(c),a,e.color,n),r.cylinderCls.createCylinder(e.coord.clone().sub(c),t.coord.clone().sub(c),a,e.color,n)):r.bImpo?r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),t.coord.clone().add(c),a,e.color,n,t.color),r.cylinderCls.createCylinder(e.coord.clone().sub(c),t.coord.clone().sub(c),a,e.color,n,t.color)):r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),i.clone().add(c),a,e.color,n),r.cylinderCls.createCylinder(t.coord.clone().add(c),i.clone().add(c),a,t.color,n),r.cylinderCls.createCylinder(e.coord.clone().sub(c),i.clone().sub(c),a,e.color,n),r.cylinderCls.createCylinder(t.coord.clone().sub(c),i.clone().sub(c),a,t.color,n))}else if(r.aromaticbonds.hasOwnProperty(l)){let s,l,d;if(e.bonds.length>t.bonds.length&&e.bonds.length>1)s=e.serial,l=e.bonds[0],d=e.bonds[1];else{if(!(t.bonds.length>1))return;s=t.serial,l=t.bonds[0],d=t.bonds[1]}let c=r.atoms[s].coord.clone();c.sub(r.atoms[l].coord);let h=r.atoms[s].coord.clone();h.sub(r.atoms[d].coord),c.cross(h);let p=t.coord.clone();p.sub(e.coord),p.cross(c).normalize().multiplyScalar(.2*o);let m=0;for(let s=0,i=e.bondOrder.length;so+1?(s=k.clone(),i=d.atoms[j[j.length-1-o-1]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random()))):U[m]&&"CA"===p.name&&(j.length>o+1?(s=k.clone(),i=d.atoms[j[j.length-1-o-1]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random())),s.normalize(),s.multiplyScalar(C),null!==I&&s.dot(I)<0&&s.negate(),I=s;for(let e=0,s=2/(t-1);e6||c&&Math.abs(S.y-c.y)>6||c&&Math.abs(S.z-c.z)>6;if((g!==p.chain||p.ssbegin||p.ssend||z||$==W&&"coil"!=p.ss)&&u[0].length>0){let c="CA",g=[],f=[];if(isNaN(d.atoms[D].resi))g=[];else{let e=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)-1).toString(),t=d.firstAtomObjCls.getAtomCoordFromResi(e,c);g=void 0!==t?[t]:[]}if(!isNaN(d.atoms[D].resi)){let e=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)+1).toString(),t=d.firstAtomObjCls.getAtomCoordFromResi(e,c);void 0!==t&&f.push(t);let s=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)+2).toString(),i=d.firstAtomObjCls.getAtomCoordFromResi(s,c);void 0!==i&&f.push(i)}if(!z){1===a||2===a?w.push(d.hColor):w.push(R),C=p.ssend&&"sheet"===p.ss?0:"coil"===E&&p.ssbegin||T&&p.ssbegin||"coil"===p.ss?n:l;let s,i,o=4;"O"===p.name?(s=A.clone(),s.sub(S)):U[m]&&"CA"===p.name&&(j.length>o?(s=S.clone(),i=d.atoms[j[j.length-1-o]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random())),s.normalize(),s.multiplyScalar(C),null!==I&&s.dot(I)<0&&s.negate(),I=s;for(let e=0,s=2/(t-1);e0){let e="CA",n=[],l=[];if(isNaN(d.atoms[D].resi))n=[];else{let t=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)-1).toString();d.firstAtomObjCls.getAtomCoordFromResi(t,e)}for(let e=0;!i&&e0&&(o!==c.chain||Math.abs(c.coord.x-h.coord.x)>6||Math.abs(c.coord.y-h.coord.y)>6||Math.abs(c.coord.z-h.coord.z)>6||r.ParserUtilsCls.getResiNCBI(c.structure+"_"+o,a)+13||Math.abs(c.coord.y-h.coord.y)>3||Math.abs(c.coord.z-h.coord.z)>3))){if(2!==i){if(!isNaN(d.resi)&&!isNaN(h.resi)){let e=d.structure+"_"+d.chain+"_"+(parseInt(d.resi)-1).toString(),i=r.firstAtomObjCls.getAtomCoordFromResi(e,t);g=void 0!==i?[i]:[];let l=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+1).toString(),o=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+2).toString(),a=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+3).toString();if(r.residues.hasOwnProperty(l)){let e=r.firstAtomObjCls.getAtomFromResi(l,t);void 0!==e&&e.ssbegin&&(l=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+2).toString(),o=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+3).toString(),p.push(e.coord),n?u.push(this.getCustomtubesize(l)):u.push(this.getRadius(s,e)),m.push(e.color))}if(1==p.length&&r.residues.hasOwnProperty(l)){let e=r.firstAtomObjCls.getAtomFromResi(l,t);if(e){p.push(e.coord),m.push(e.color);let t=this.getRadius(s,c);u.push(t),l=o,o=a}}let C=r.firstAtomObjCls.getAtomCoordFromResi(l,t);void 0!==C&&f.push(C);let b=r.firstAtomObjCls.getAtomCoordFromResi(o,t);void 0!==b&&f.push(b)}b.push({pnts:p,colors:m,radii:u,prevone:g,nexttwo:f})}p=[],m=[],u=[],g=[],f=[],d=c,C=0}if(0==p.length&&!isNaN(c.resi)){let e=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)-1).toString();r.residues.hasOwnProperty(e)&&(h=r.firstAtomObjCls.getAtomFromResi(e,t),void 0!==h&&h.ssend&&(p.push(h.coord),n?u.push(this.getCustomtubesize(e)):u.push(this.getRadius(s,h)),m.push(h.color)))}let e;p.push(c.coord),e=n?this.getCustomtubesize(c.structure+"_"+c.chain+"_"+c.resi):this.getRadius(s,c),l||"coil"==c.ss||c.ssbegin||c.ssend||(e=0),u.push(e),m.push(c.color),1===C&&(m[m.length-2]=c.color),o=c.chain,a=c.resi;let y=1.2;2!==i||c.ssbegin||r.boxCls.createBox(c,void 0,void 0,y,void 0,i),++C,h=c}if(2!==i){if(g=[],void 0!==d&&!isNaN(d.resi)){let e=d.structure+"_"+d.chain+"_"+(parseInt(d.resi)-1).toString(),s=r.firstAtomObjCls.getAtomCoordFromResi(e,t);g=void 0!==s?[s]:[]}if(f=[],void 0!==c&&!isNaN(c.resi)){let e=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+1).toString(),i=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+2).toString(),n=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+3).toString();if(1==p.length&&r.residues.hasOwnProperty(e)){let l=r.firstAtomObjCls.getAtomFromResi(e,t);if(l){p.push(l.coord),m.push(l.color);let t=this.getRadius(s,c);u.push(t),e=i,i=n}}let l=r.firstAtomObjCls.getAtomCoordFromResi(e,t);void 0!==l&&f.push(l);let o=r.firstAtomObjCls.getAtomCoordFromResi(i,t);void 0!==o&&f.push(o)}b.push({pnts:p,colors:m,radii:u,prevone:g,nexttwo:f})}for(let e=0,t=b.length;e0&&(c=n);else if(g%1==0)n=s[g],n>0&&(c=n);else{let e=Math.floor(g),t=g-e;n=s[e]*(1-t)+s[e+1]*t,r||n<1*c&&(n=0)}e1?a.parasCls.thr(t[t.length-2]):a.parasCls.thr(t[e]),C[v++]=d.r,C[v++]=d.g,C[v++]=d.b}}let k,O=0;for(let e=0,t=S.length-1;er&&(l=r,e=1);for(let t=0;t0&&t.b<=100?.01*t.b:t.b>100?1:s.coilWidth),i}}class ze{constructor(e){this.icn3d=e}drawCartoonNucleicAcid(e,t,s,i){this.drawStrandNucleicAcid(e,2,t,!0,void 0,s,i)}drawStrandNucleicAcid(e,t,s,i,n,l,r){let o,a,d,c=this.icn3d;if(c.icn3dui.bNode)return;2===r&&(t=void 0,l=void 0),n=n||c.nucleicAcidWidth,s=s||c.axisDIV,t=t||c.nucleicAcidStrandDIV;let h=[];for(d=0;dy?y=b:b=y);let v=.8*C/y;if(g.width=b,g.height=y,f.clearRect(0,0,b,y),h)if(f.fillStyle="rgba("+n.r+","+n.g+","+n.b+","+n.a+")",f.strokeStyle="rgba("+l.r+","+l.g+","+l.b+","+l.a+")",f.lineWidth=r,p){let e=.4*b;this.circle(f,0,0,b,y,e)}else{let e=0;this.roundRect(f,0,0,b,y,e)}f.font="Bold "+a+"px "+o,f.textAlign="center",f.textBaseline="middle",f.fillStyle="rgba("+u.r+", "+u.g+", "+u.b+", 1.0)",f.strokeStyle="rgba("+u.r+", "+u.g+", "+u.b+", 1.0)",f.fillText(e,.5*b,.5*y);let _=new THREE.Texture(g);_.needsUpdate=!0;let w=new THREE.SpriteMaterial({map:_,depthTest:!1,depthWrite:!1});w.map.minFilter=THREE.LinearFilter;let S=new THREE.Sprite(w);return p?S.scale.set(.3*d,.3*d,1):S.scale.set(v*d,d,1),S.renderOrder=1,S}roundRect(e,t,s,i,n,l){e.beginPath(),e.moveTo(t+l,s),e.lineTo(t+i-l,s),e.quadraticCurveTo(t+i,s,t+i,s+l),e.lineTo(t+i,s+n-l),e.quadraticCurveTo(t+i,s+n,t+i-l,s+n),e.lineTo(t+l,s+n),e.quadraticCurveTo(t,s+n,t,s+n-l),e.lineTo(t,s+l),e.quadraticCurveTo(t,s,t+l,s),e.closePath(),e.fill(),e.stroke()}circle(e,t,s,i,n,l){e.beginPath(),e.arc(t+i/2,.9*(s+n/2),l,0,2*Math.PI,!0),e.closePath(),e.fill(),e.stroke()}}class Ve{constructor(e){this.icn3d=e,this.textSpriteCls=new Ge(e)}createLabelRepresentation(e){let t=this.icn3d;t.icn3dui;let s=t.oriMaxD/100;s<.4&&(s=.4);let i=3*s*t.labelScale;for(let s in e){let n=void 0!==e[s]?e[s]:[],l="black"!=t.opts.background?t.colorWhitebkgd:t.colorBlackbkgd;for(let e=0,r=n.length;e.99999)h.set(0,0,0,1);else if(e.y<-.99999)h.set(1,0,0,0);else{let t=new THREE.Vector3;t.set(e.z,0,-e.x).normalize();let s=Math.acos(e.y);h.setFromAxisAngle(t,s)}return c.applyQuaternion(h),c.scale.set(l,n,l),c.position.copy(t),c}setPc1Axes(e){let t=this.icn3d,s=t.icn3dui;if(s.bNode)return;let i=s.hashUtilsCls.intHash(t.hAtoms,t.dAtoms),n=[],l=Object.keys(i).length<100;for(let e in i){let s=t.atoms[e],i=s.structure+"_"+s.chain+"_"+s.resi;(l||""!=i)&&n.push(s.coord.clone())}let r=s.rmsdSuprCls.getEigenForSelection(n,n.length),o=new THREE.Vector3(r.h1[0],r.h1[1],r.h1[2]);if(0==r.k&&t.bRender)return void alert("Can't determine the first principal component. Please select a subset and try it again.");let a=t.applyCenterCls.centerAtoms(i),d=a.maxD,c=a.center,h=c.clone().add(o.normalize().multiplyScalar(.4*d)),p=o.normalize();if(s.htmlCls.clickMenuCls.setLogCmd("Principle X-Axis: "+p.x.toFixed(3)+" "+p.y.toFixed(3)+" "+p.z.toFixed(3),!1),e)return p;let m=new THREE.Vector3(r.h2[0],r.h2[1],r.h2[2]),u=c.clone().add(m.normalize().multiplyScalar(.3*d)),g=new THREE.Vector3(r.h3[0],r.h3[1],r.h3[2]),f=c.clone().add(g.normalize().multiplyScalar(.3*d));this.buildAxes(void 0,c,h,u,f,!0);let C=[c,h,u,f];return t.axes.push(C),t.drawCls.draw(),C}}class Ye{constructor(e){this.icn3d=e}showGlycans(){let e=this.icn3d,t=e.icn3dui;if(t.bNode)return;let s={},i=e.dAtoms;for(let n in i){let i=e.atoms[n];i.het&&-1!=t.parasCls.glycanHash.hasOwnProperty(i.resn)&&(void 0===s[i.resn]&&(s[i.resn]={}),"Misc"!=i.chain&&(s[i.resn][i.structure+"_"+i.chain+"_"+i.resi]=1))}let n=Object.keys(s);for(let i=0,l=n.length;i>2))+i+((2&t)>>1))*c+n+(1&t)]&this.ISDONE)<=3&&(t.push(t[i]),i=t.length-1,t.push(t[n]),n=t.length-1,t.push(t[l]),l=t.length-1),s.push(i),s.push(n),s.push(l)}}},Xe.prototype.laplacianSmooth=function(e,t,s){let i,n,l,r,o,a=new Array(t.length);for(i=0,n=t.length;ithis.origextent[1][0])&&(!(tthis.origextent[1][1])&&!(sthis.origextent[1][2]))},Ke.prototype.getFacesAndVertices=function(){let e,t,s=this.verts;for(e=0,t=s.length;eh&&(h=this.pmaxy-this.pminy),this.pmaxz-this.pminz>h&&(h=this.pmaxz-this.pminz),this.scaleFactor=(c-1)/h,this.scaleFactor=this.defaultScaleFactor,this.defaultScaleFactor*h>this.threshbox&&(c=Math.floor(this.threshbox),this.scaleFactor=(this.threshbox-1)/h),this.bCalcArea&&(this.scaleFactor=this.defaultScaleFactor),this.pLength=Math.ceil(this.scaleFactor*(this.pmaxx-this.pminx))+1,this.pWidth=Math.ceil(this.scaleFactor*(this.pmaxy-this.pminy))+1,this.pHeight=Math.ceil(this.scaleFactor*(this.pmaxz-this.pminz))+1,this.boundingatom(t),this.cutRadius=this.probeRadius*this.scaleFactor,this.vpBits=new Uint8Array(this.pLength*this.pWidth*this.pHeight),this.vpDistance=new Float64Array(this.pLength*this.pWidth*this.pHeight),this.vpAtomID=new Int32Array(this.pLength*this.pWidth*this.pHeight),this.vpColor=[],this.vpPot=[]},Ke.prototype.boundingatom=function(e){let t,s,i,n,l=[];for(let r in this.vdwRadii){if(!this.vdwRadii.hasOwnProperty(r))continue;let o=this.vdwRadii[r];l[r]=e?(o+this.probeRadius)*this.scaleFactor+.5:o*this.scaleFactor+.5,i=l[r]*l[r],this.widxz[r]=Math.floor(l[r])+1,this.depty[r]=new Int32Array(this.widxz[r]*this.widxz[r]),n=0;for(let e=0;ei?this.depty[r][n]=-1:(s=Math.sqrt(i-t),this.depty[r][n]=Math.floor(s)),n++}},Ke.prototype.fillvoxels=function(e,t){let s,i,n,l;for(s=0,l=this.vpBits.length;sc&&(a=c),b>h&&(b=h),v>p&&(v=p);let _,w=g[o*m+d*u+y],S=g[a*m+d*u+y],A=g[o*m+b*u+y],x=g[o*m+d*u+v],k=g[a*m+b*u+y],O=g[o*m+b*u+v],R=g[a*m+d*u+v],I=g[a*m+b*u+v],E=r.x-o,T=r.y-d,P=r.z-y,D=((w*(1-E)+S*E)*(1-T)+(A*(1-E)+k*E)*T)*(1-P)+((x*(1-E)+R*E)*(1-T)+(O*(1-E)+I*E)*T)*P,M=s*f+i*C+n;this.vpPot[M]=D,D>this.isovalue&&(D=this.isovalue),D<-this.isovalue&&(D=-this.isovalue),D>0?(D/=1*this.isovalue,_=new THREE.Color(1-D,1-D,1)):(D/=-1*this.isovalue,_=new THREE.Color(1,1-D,1-D)),this.vpColor[M]=_}}for(s=0,l=this.vpBits.length;s=this.pLength||g>=this.pWidth||f>=this.pHeight)continue;let h=u*S+g*this.pHeight+f;if(this.vpBits[h]&this.INOUT){let p=t[this.vpAtomID[h]];p.serial!=e.serial&&(l=s+a-Math.floor(.5+this.scaleFactor*(p.x+this.ptranx)),r=i+d-Math.floor(.5+this.scaleFactor*(p.y+this.ptrany)),o=n+c-Math.floor(.5+this.scaleFactor*(p.z+this.ptranz)),a*a+d*d+c*c=this.pLength||p>=this.pWidth||m>=this.pHeight)continue;let u=h*S+p*this.pHeight+m;if(this.vpBits[u]&this.ISDONE){let h=t[this.vpAtomID[u]];h.serial!=e.serial&&(l=s+a-Math.floor(.5+this.scaleFactor*(h.x+this.ptranx)),r=i+d-Math.floor(.5+this.scaleFactor*(h.y+this.ptrany)),o=n+c-Math.floor(.5+this.scaleFactor*(h.z+this.ptranz)),a*a+d*d+c*c-1&&r-1&&a-1&&o=h)||(this.vpBits[n]|=this.ISBOUND))},Ke.prototype.fastoneshell=function(e,t){let s,i,n,l,r,o,a,d,c,h,p,m,u=[];if(0===e.length)return u;let g={ix:-1,iy:-1,iz:-1},f=this.pWidth*this.pHeight;for(a=0,c=e.length;a-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,h-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,h-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,hm&&(m=this.pmaxy-this.pminy),this.pmaxz-this.pminz>m&&(m=this.pmaxz-this.pminz),this.scaleFactor=1,this.pLength=Math.floor(.5+this.scaleFactor*(this.pmaxx-this.pminx))+1,this.pWidth=Math.floor(.5+this.scaleFactor*(this.pmaxy-this.pminy))+1,this.pHeight=Math.floor(.5+this.scaleFactor*(this.pmaxz-this.pminz))+1,this.cutRadius=this.probeRadius*this.scaleFactor,this.vpBits=new Uint8Array(this.pLength*this.pWidth*this.pHeight),this.ccp4&&(this.vpGridTrans=new Array(this.pLength*this.pWidth*this.pHeight)),this.vpAtomID=new Uint8Array(this.pLength*this.pWidth*this.pHeight)},Je.prototype.transformMemPro=function(e,t,s,i){let n=e.clone();n.sub(s);let l=n.x*t[0]+n.y*t[1]+n.z*t[2]+i.x,r=n.x*t[3]+n.y*t[4]+n.z*t[5]+i.y,o=n.x*t[6]+n.y*t[7]+n.z*t[8]+i.z;return n.x=l,n.y=r,n.z=o,n},Je.prototype.fillvoxels=function(e,t){let s,i,n,l,r,o;for(s=0,l=this.vpBits.length;sthis.pLength&&(o=this.pLength),p>this.pWidth&&(p=this.pWidth),C>this.pHeight&&(C=this.pHeight);let b,y=l[r*a+h*d+f],v=l[o*a+h*d+f],_=l[r*a+p*d+f],w=l[r*a+h*d+C],S=l[o*a+p*d+f],A=l[r*a+p*d+C],x=l[o*a+h*d+C],k=l[o*a+p*d+C],O=n.x-r,R=n.y-h,I=n.z-f,E=((y*(1-O)+v*O)*(1-R)+(_*(1-O)+S*O)*R)*(1-I)+((w*(1-O)+x*O)*(1-R)+(A*(1-O)+k*O)*R)*I;E>this.isovalue&&(E=this.isovalue),E<-this.isovalue&&(E=-this.isovalue),E>0?(E/=1*this.isovalue,b=new THREE.Color(1-E,1-E,1)):(E/=-1*this.isovalue,b=new THREE.Color(1,1-E,1-E)),this.icn3d.atoms[t[s]].color=b,this.icn3d.atomPrevColors[t[s]]=b}}else{for(let p in t){let f,C=e[t[p]];if("DUM"!==C.resn){if(void 0!==this.rmsd_supr&&void 0!==this.rmsd_supr.rot){f=this.transformMemPro(C.coord,g,u,m).applyMatrix4(c)}else f=C.coord.clone().applyMatrix4(c);for(s=Math.floor(f.x)-this.maxdist,l=Math.ceil(f.x)+this.maxdist;s<=l;++s)if(!(s<0||s>this.header.xExtent*this.scaleFactor-1))for(i=Math.floor(f.y)-this.maxdist,r=Math.ceil(f.y)+this.maxdist;i<=r;++i)if(!(i<0||i>this.header.yExtent*this.scaleFactor-1))for(n=Math.floor(f.z)-this.maxdist,o=Math.ceil(f.z)+this.maxdist;n<=o;++n){if(n<0||n>this.header.zExtent*this.scaleFactor-1)continue;let e=s*a+i*d+n;h.push(e)}}}for(s=0,l=h.length;s=this.isovalue?1:0:"fofc"==this.type?(this.vpBits[e]=this.dataArray[e]>=this.isovalue||this.dataArray[e]<=-this.isovalue?1:0,this.vpAtomID[e]=this.dataArray[e]>=0?1:0):"em"==this.type&&(this.vpBits[e]=this.dataArray[e]>=this.isovalue?1:0)}}}else for(s=0;s=this.isovalue||this.dataArray[e]<=-this.isovalue?1:0,this.vpAtomID[t]=this.dataArray[e]>=0?1:0)}for(s=0,l=this.vpBits.length;s-1&&r-1&&a-1&&o1?"Structure":"",a=Object.keys(i).length>1?"Chain":"";n+=""+o+a+"ResidueNumberSASA (Å2)Percent OutIn/Out";for(let e in l.resid2area){let d=e.lastIndexOf("_"),c=e.substr(d+1),h=r.utilsCls.getIdArray(e.substr(0,d));o=Object.keys(s).length>1?""+h[0]+"":"",a=Object.keys(i).length>1?""+h[1]+"":"";let p="",m="";l.resid2area[e]=(l.resid2area[e]/t).toFixed(2),r.parasCls.residueArea.hasOwnProperty(c)&&(m=parseInt(l.resid2area[e]/r.parasCls.residueArea[c]*100),m>100&&(m=100),m>=50&&(p="out"),m<20&&(p="in")),n+=''+o+a+""+c+''+h[2]+''+l.resid2area[e]+''+m+"%"+p+""}return n+="",void(l.areahtml=n)}let p,m,u,g=c.vertices,f=c.faces,C=r.parasCls.thr("#00FFFF"),b=r.parasCls.thr("#00FF00"),y=r.parasCls.thr("#ff0000"),v=r.parasCls.thr("#00FFFF"),_=r.parasCls.thr("#0000FF"),w=r.parasCls.thr("#FF0000");11!=t&&12!=t&&13!=t&&14!=t||void 0===l.rmsd_supr||void 0===l.rmsd_supr.rot||(p=l.rmsd_supr.rot,m=l.rmsd_supr.trans1,u=l.rmsd_supr.trans2);let S=(11==t||12==t||13==t||14==t&&"delphi"!=l.loadPhiFrom)&&void 0!==l.rmsd_supr&&void 0!==l.rmsd_supr.rot;n=new THREE.BufferGeometry;let A,x=[],k=[],O=[],R=0;for(let e=0,s=g.length;e0?-parseInt(b.z):parseInt(b.z),y.onBeforeRender=function(e,t,s,i,n,o){let a,d=new THREE.Vector3(0,0,0),c=i.getAttribute("position").array;for(let e=0,t=c.length;e0?-parseInt(a.z):parseInt(a.z)},l.mdl.add(y),11==t||12==t?l.prevMaps.push(y):13==t?l.prevEmmaps.push(y):14==t?l.prevPhimaps.push(y):l.prevSurfaces.push(y)}}else{let e=new THREE.Mesh(n,new THREE.MeshPhongMaterial({specular:l.frac,shininess:20,emissive:l.emissive,vertexColors:!0,wireframe:s,opacity:i,transparent:!0,depthWrite:10==parseInt(10*i),side:THREE.DoubleSide}));e.renderOrder=-2,l.mdl.add(e),11==t||12==t?l.prevMaps.push(e):13==t?l.prevEmmaps.push(e):14==t?l.prevPhimaps.push(e):l.prevSurfaces.push(e)}c=null,g=null,f=null,n=null}transformMemPro(e,t,s,i,n){this.icn3d.icn3dui;let l=e.clone();l.sub(s),n&&console.log("sub coord: "+JSON.stringify(l));let r=l.x*t[0]+l.y*t[1]+l.z*t[2]+i.x,o=l.x*t[3]+l.y*t[4]+l.z*t[5]+i.y,a=l.x*t[6]+l.y*t[7]+l.z*t[8]+i.z;return l.x=r,l.y=o,l.z=a,n&&console.log("out coord: "+JSON.stringify(l)),l}SetupSurface(e){let t=this.icn3d;t.icn3dui;let s=e.threshbox,i=new Ke(t,s);i.initparm(e.extent,1!==e.type,e.bCalcArea,e.atomsToShow,e.header,e.data,e.matrix,e.isovalue,e.loadPhiFrom),i.fillvoxels(e.allatoms,e.extendedAtoms),i.buildboundary(),2===e.type&&(i.fastdistancemap(),i.boundingatom(!1),i.fillvoxelswaals(e.allatoms,e.extendedAtoms));let n=i.marchingcube();i.vpBits=null,i.vpDistance=null,i.vpAtomID=null;let l=i.getFacesAndVertices(e.atomsToShow);return l.area=n.area,l.serial2area=n.serial2area,l.scaleFactor=n.scaleFactor,i.faces=null,i.verts=null,l}SetupMap(e){let t=this.icn3d;if(t.icn3dui,!e.ccp4){let s,i=new Je(t);return i.initparm(e.header,e.data,e.matrix,e.isovalue,e.center,e.maxdist,e.pmin,e.pmax,e.water,e.type,e.rmsd_supr,e.loadPhiFrom,e.icn3d),i.fillvoxels(e.allatoms,e.extendedAtoms),e.header.bSurface||i.buildboundary(),e.header.bSurface||i.marchingcube(),i.vpBits=null,i.vpAtomID=null,e.header.bSurface||(s=i.getFacesAndVertices(e.allatoms,e.atomsToShow)),i.faces=null,i.verts=null,s}{let s,i=10,n=t.center?[t.center.x,t.center.y,t.center.z]:[0,0,0];if("2fofc"==e.type){s="2fofc";let l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes");t.ccp4ParserCls.makeChickenWire(r,s),l=null,r=null}else if("fofc"==e.type){s="fofc_neg";let l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes");t.ccp4ParserCls.makeChickenWire(r,s),s="fofc_pos",l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes"),t.ccp4ParserCls.makeChickenWire(r,s),l=null,r=null}}}}class Qe{constructor(e){this.icn3d=e}applyCenterOptions(e){let t,s=this.icn3d;switch(s.icn3dui,void 0===e&&(e=s.opts),e.rotationcenter.toLowerCase()){case"molecule center":void 0!==s.center&&this.setRotationCenter(s.center);break;case"pick center":void 0!==s.pAtom&&this.setRotationCenter(s.pAtom.coord);break;case"display center":t=this.centerAtoms(s.dAtoms).center,this.setRotationCenter(t);break;case"highlight center":t=this.centerAtoms(s.hAtoms).center,this.setRotationCenter(t)}}setRotationCenter(e){this.icn3d.icn3dui,this.setCenter(e)}setCenter(e){let t=this.icn3d;t.icn3dui,t.mdl.position.set(0,0,0),t.mdlImpostor.position.set(0,0,0),t.mdl_ghost.position.set(0,0,0),t.mdl.position.sub(e),t.mdlImpostor.position.sub(e),t.mdl_ghost.position.sub(e)}centerSelection(e,t){let s=this.icn3d,i=s.icn3dui;if(s.opts.rotationcenter="highlight center",void 0===e&&(e=i.hashUtilsCls.hash2Atoms(s.hAtoms,s.atoms)),t||(s._zoomFactor=1,s.mouseChange=new THREE.Vector2(0,0),s.quaternion=new THREE.Quaternion(0,0,0,1)),Object.keys(e).length>1){let t=this.centerAtoms(e);s.center=t.center,this.setCenter(s.center),s.cameraCls.setCamera()}}centerAtoms(e){let t=this.icn3d;t.icn3dui;let s=new THREE.Vector3(9999,9999,9999),i=new THREE.Vector3(-9999,-9999,-9999),n=new THREE.Vector3;for(let l in e){let e=t.atoms[l].coord;n.add(e),s.min(e),i.max(e)}let l=t.ParserUtilsCls.getGeoCenter(s,i);return{center:l,maxD:t.ParserUtilsCls.getStructureSize(e,s,i,l),pmin:s,pmax:i}}setWidthHeight(e,t){let s=this.icn3d;s.icn3dui,void 0===s.scaleFactor&&(s.scaleFactor=1),s.renderer.setSize(e*s.scaleFactor,t*s.scaleFactor),s.renderer.domElement.style.width=e*s.scaleFactor+"px",s.renderer.domElement.style.height=t*s.scaleFactor+"px",s.renderer.domElement.width=e*s.scaleFactor,s.renderer.domElement.height=t*s.scaleFactor,s.container.whratio=e/t}}class et{constructor(e){this.icn3d=e}applyClbondsOptions(e){let t=this.icn3d,s=t.icn3dui;if(void 0===e&&(e=t.opts),t.bCalcCrossLink||(t.clbondpnts={},t.clbondResid2serial={},this.applyClbondsOptions_base("chemical"),this.applyClbondsOptions_base("all"),t.bCalcCrossLink=!0),"yes"===e.clbonds.toLowerCase()&&"nothing"!==e.chemicals){let e="#006400";if(s.parasCls.thr(25600),t.lines.clbond=[],t.residuesHashClbonds={},t.structures){let i=Object.keys(t.structures);for(let n=0,l=i.length;n1&&"sphere"!==a[Object.keys(a)[0]].style&&"dot"!==a[Object.keys(a)[0]].style){if(void 0===i.bCid||!i.bCid)for(let e in a){let t=a[e],n=1;i.boxCls.createBox(t,void 0,void 0,n,void 0,s)}}else for(let e in o){let l=i.firstAtomObjCls.getFirstCalphaAtomObj(i.residues[e]),r=l,o=r.structure+"_"+r.chain+"_"+(parseInt(r.resi)-1).toString(),a=r.structure+"_"+r.chain+"_"+(parseInt(r.resi)+1).toString();if("cylinder and plate"===r.style&&"helix"===r.ss)for(let t in i.residues[e]){let e=i.atoms[t],n=1;i.boxCls.createBox(e,void 0,void 0,n,void 0,s)}else if("ribbon"===r.style&&"coil"===r.ss||"strand"===r.style&&"coil"===r.ss||"o3 trace"===r.style||"schematic"===r.style||"c alpha trace"===r.style||"b factor tube"===r.style||"cylinder and plate"===r.style&&"helix"!==r.ss){if(void 0!==l&&void 0!==l.style2&&"nothing"!==l.style2)continue;let e=!1;if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(a)){let s=Object.keys(i.residues[a])[0],l=n.hashUtilsCls.hash2Atoms(i.residues[a],i.atoms)[s];if(r.style===l.style&&!l.ssbegin||l.ssbegin){let s=i.residues[a];if(t=n.hashUtilsCls.unionHash(t,s),e=!0,l.ssbegin)for(let e in s)i.atoms[e].notshow=!0}}if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(o)){let s=Object.keys(i.residues[o])[0],l=n.hashUtilsCls.hash2Atoms(i.residues[o],i.atoms)[s];r.style===l.style&&(t=n.hashUtilsCls.unionHash(t,i.residues[o]),e=!0)}}else if("ribbon"===r.style&&"coil"!==r.ss&&r.ssend||"strand"===r.style&&"coil"!==r.ss&&r.ssend){if(void 0!==l&&void 0!==l.style2&&"nothing"!==l.style2)continue;let e=!1;if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(a)){let s=Object.keys(i.residues[a])[0];n.hashUtilsCls.hash2Atoms(i.residues[a],i.atoms)[s],t=n.hashUtilsCls.unionHash(t,i.residues[a]),e=!0}}}a={}}if(i.bInitial&&void 0===i.bMembrane){if(""!=n.htmlCls.setHtmlCls.getCookie("membrane")){let e=parseInt(n.htmlCls.setHtmlCls.getCookie("membrane"));i.bMembrane!=e&&n.htmlCls.clickMenuCls.setLogCmd("set membrane "+e,!0),i.bMembrane=isNaN(e)?0:parseInt(e)}i.bMembrane?i.selectionCls.toggleMembrane(!0):i.selectionCls.toggleMembrane(!1)}i.setStyleCls.setStyle2Atoms(t);let d=.5*i.cylinderRadius;void 0!==i.labels&&delete i.labels.schematic;for(let e in i.style2atoms){let t=i.style2atoms[e],l=n.hashUtilsCls.intHash(t,i.nucleotides),r=n.utilsCls.isCalphaPhosOnly(n.hashUtilsCls.hash2Atoms(l,i.atoms));if("ribbon"===e)i.strandCls.createStrand(n.hashUtilsCls.hash2Atoms(t,i.atoms),2,void 0,!0,void 0,void 0,!1,i.ribbonthickness,s);else if("strand"===e)i.strandCls.createStrand(n.hashUtilsCls.hash2Atoms(t,i.atoms),null,null,null,null,null,!1,void 0,s);else if("cylinder and plate"===e)i.cylinderCls.createCylinderHelix(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderHelixRadius,s);else if("nucleotide cartoon"===e)r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):(i.cartoonNuclCls.drawCartoonNucleicAcid(n.hashUtilsCls.hash2Atoms(t,i.atoms),null,i.ribbonthickness,s),2!==s&&i.cartoonNuclCls.drawNucleicAcidStick(n.hashUtilsCls.hash2Atoms(t,i.atoms),s));else if("o3 trace"===e)r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["O3'","O3*"],i.traceRadius,!1,s);else if("schematic"===e){let e=i.firstAtomObjCls.getFirstAtomObj(t);if(i.chemicals.hasOwnProperty(e.serial)){i.residueLabelsCls.addNonCarbonAtomLabels(n.hashUtilsCls.hash2Atoms(t,i.atoms));let e=!0;i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),d,d,void 0,s,e)}else i.residueLabelsCls.addResidueLabels(n.hashUtilsCls.hash2Atoms(t,i.atoms),!0),r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["O3'","O3*"],i.traceRadius,!1,s),i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["CA"],i.traceRadius,!1,s)}else"c alpha trace"===e?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["CA"],i.traceRadius,!1,s):"b factor tube"===e?i.tubeCls.createTube(n.hashUtilsCls.hash2Atoms(t,i.atoms),"CA",null,s,!1,!0):"custom tube"===e?i.tubeCls.createTube(n.hashUtilsCls.hash2Atoms(t,i.atoms),"CA",null,s,!0,!0):"lines"===e||"lines2"===e?(1===s?i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.hlLineRadius,i.hlLineRadius,void 0,s):i.lineCls.createLineRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),s),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"stick"===e||"stick2"===e?(i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,i.cylinderRadius,void 0,s,void 0),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"backbone"===e?(t=this.selectMainChainSubset(t),i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,i.cylinderRadius,void 0,s,void 0)):"ball and stick"===e||"ball and stick2"===e?(i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,.5*i.cylinderRadius,i.dotSphereScale,s,void 0),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"sphere"===e||"sphere2"===e?i.sphereCls.createSphereRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.sphereRadius,void 0,void 0,s):"dot"===e&&i.sphereCls.createSphereRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.sphereRadius,!1,i.dotSphereScale,s)}if(i.cnt>i.maxmaxatomcnt&&i.init_base(),void 0!==i.labels&&Object.keys(i.labels).length>0){i.labelCls.hideLabels();for(let e in i.labels)"schematic"!=e&&this.changeLabelColor(i.labels[e]);i.labelCls.createLabelRepresentation(i.labels)}}changeLabelColor(e){let t=this.icn3d;if(t.icn3dui,e)for(let s=0,i=e.length;s0){this.updateStabilizer();let e="#FFFFFF",s=t.stabilizerpnts;t.lines.stabilizer=[];for(let i=0,n=Math.floor(s.length/2);i0)for(let e=0,s=t.distPnts.length;e0&&t.applySymdCls.applySymd(),void 0!==t.prevOtherMesh)for(let e=0,s=t.prevOtherMesh.length;e0&&(e=s.hashUtilsCls.hash2Atoms(t.chemicals,t.atoms));let i=4;if(void 0!==e){let n=t.contactCls.getAtomsWithinAtom(t.atoms,e,i),l=3.5;t.opts.hbonds="yes",Object.keys(n).length>0&&t.hBondCls.calculateChemicalHbonds(e,n,parseFloat(l)),t.bSetFog||t.transformCls.zoominSelection(s.hashUtilsCls.unionHash(e,n))}}else"hide"===e.chemicalbinding&&(t.hBondCls.hideHbonds(),t.showInterCls.hideExtraBonds(),t.bSetFog||t.transformCls.zoominSelection(t.atoms))}updateStabilizer(){let e=this.icn3d;if(e.icn3dui,e.stabilizerpnts=[],void 0!==e.pairArray)for(let t=0,s=e.pairArray.length;t=0;i--){let r=t.ssbondpnts[e][2*i],o=t.ssbondpnts[e][2*i+1],a={};a.color=n,a.dashed=!1;let d=[],c=[],h=[],p=[],m=!1,u=!1;for(let e in t.residues[r])"SG"===t.atoms[e].name&&(h.push(t.atoms[e].coord),d.push(t.atoms[e].serial),m=!0);if(!m)for(let e in t.residues[r])if("CA"===t.atoms[e].name){h.push(t.atoms[e].coord),d.push(t.atoms[e].serial),m=!0,u=!0;break}m=!1;for(let e in t.residues[o])"SG"===t.atoms[e].name&&(p.push(t.atoms[e].coord),c.push(t.atoms[e].serial),m=!0);if(!m)for(let e in t.residues[o])if("CA"===t.atoms[e].name){p.push(t.atoms[e].coord),c.push(t.atoms[e].serial),m=!0,u=!0;break}let g=u?7:3,f=!1;for(let e=0,t=h.length;e1&&(l=!0)}if(t)if(l){let t=Object.keys(r)[0];e=i.chains[t]}else{0==Object.keys(i.hAtoms).length&&(i.hAtoms=n.hashUtilsCls.cloneHash(i.dAtoms));let t,s=parseInt(Object.keys(i.hAtoms).length/u),l=0;for(let n in i.hAtoms)if(e[n]=1,t=n,++l,l>s)break;let r=i.atoms[t].structure+"_"+i.atoms[t].chain+"_"+i.atoms[t].resi;e=n.hashUtilsCls.unionHash(e,i.residues[r])}else{let t=Object.keys(i.structures)[0]+"_"+g;if(i.chains.hasOwnProperty(t)||(t=Object.keys(i.structures)[0]+"_"+g.toLowerCase()),!i.chains.hasOwnProperty(t)){t=Object.keys(i.chains)[0];for(let e in i.chains){let s=Object.keys(i.chains[e])[0];if(i.proteins.hasOwnProperty(s)){t=e;break}}}e=i.chains[t]}let a=s.clone().add(h).multiplyScalar(.5),c=new THREE.Vector3,p=0,f=h.clone().sub(s).normalize(),C=new THREE.Vector3(0,0,1),b=new THREE.Quaternion;b.setFromUnitVectors(f,C);let y=-9999;for(let t in e){let e=i.atoms[t].coord.clone();c.add(e),e.sub(a).applyQuaternion(b);let s=e.x*e.x+e.y*e.y;s>y&&(y=s),++p}let v=i.ParserUtilsCls.getMassCenter(c,p),_=new THREE.Line3(s,h),w=new THREE.Vector3;_.closestPointToPoint(v,!0,w);let S,A,x,k,O=Math.sqrt(y),R=v.clone().sub(w).normalize().multiplyScalar(O),I=a.clone().add(s.clone().sub(a).multiplyScalar(.83)).add(R),E=a.clone().add(h.clone().sub(a).multiplyScalar(.83)).add(R),T=2*Math.PI/o;for(let e=0;et&&(i.sphereCls.createSphereBase(r,m,d,1,0),i.cylinderCls.createCylinder(e,r,d,m,0),i.cylinderCls.createCylinder(s,r,d,m,0),void 0!==n&&i.cylinderCls.createCylinder(c[n],r,d,m,0),n=l)}}else if("O"==r)for(let e=0,t=c.length;e0&&(e.mdl.remove(e.prevSurfaces[e.prevSurfaces.length-1]),e.prevSurfaces.slice(e.prevSurfaces.length-1,1))}removeMaps(){let e=this.icn3d;e.icn3dui;for(let t=0,s=e.prevMaps.length;t0&&(e.mdl.remove(e.prevMaps[e.prevMaps.length-1]),e.prevMaps.slice(e.prevMaps.length-1,1))}removeLastEmmap(){let e=this.icn3d;e.icn3dui,e.prevEmmaps.length>0&&(e.mdl.remove(e.prevEmmaps[e.prevEmmaps.length-1]),e.prevEmmaps.slice(e.prevEmmaps.length-1,1))}removeLastPhimap(){let e=this.icn3d;e.icn3dui,e.prevPhimaps.length>0&&(e.mdl.remove(e.prevPhimaps[e.prevPhimaps.length-1]),e.prevPhimaps.slice(e.prevPhimaps.length-1,1))}}class ot{constructor(e){this.icn3d=e}addResidueLabels(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui;if(r.bNode)return;let o=r.hashUtilsCls.intHash(l.hAtoms,e);t?void 0===l.labels.schematic&&(l.labels.schematic=[]):void 0===l.labels.residue&&(l.labels.residue=[]);let a="";for(let e in o){let s=l.atoms[e],o={},d=s.structure+"_"+s.chain+"_"+s.resi;if(!s.het&&("CA"===s.name||"O3'"===s.name||"O3*"===s.name)||l.water.hasOwnProperty(s.serial)||l.ions.hasOwnProperty(s.serial)||l.chemicals.hasOwnProperty(s.serial)&&d!==a){if(o.position=s.coord,o.bSchematic=0,t&&(o.bSchematic=1),o.text=r.utilsCls.residueName2Abbr(s.resn),i)o.text+=s.resi;else if(n){let e=s.structure+"_"+s.chain+"_"+s.resi,t="";l.resid2refnum[e]&&(t=" "==l.resid2refnum[e].substr(0,1)?"":l.resid2refnum[e]),o.text=t}o.size=18,o.factor=.3;let e=s.color.getHexString().toUpperCase();o.color=i?"black"!=l.opts.background?l.colorWhitebkgd:l.colorBlackbkgd:n?"#00FFFF":"CCCCCC"===e||"C8C8C8"===e?"#888888":"#"+e,o.background="#FFFFFF",t?l.labels.schematic.push(o):l.labels.residue.push(o)}a=d}l.hlObjectsCls.removeHlObjects()}addIgLabels(e){let t=this.icn3d;if(t.icn3dui.bNode)return;t.labels.ig=[];let s=t.firstAtomObjCls.getChainsFromAtoms(e);for(let e in t.igLabel2Pos)if(s.hasOwnProperty(e))for(let s in t.igLabel2Pos[e]){let i={};i.position=t.igLabel2Pos[e][s],i.text=s,i.size=60,i.color="#00FFFF",t.labels.ig.push(i)}t.hlObjectsCls.removeHlObjects()}addNonCarbonAtomLabels(e){let t=this.icn3d,s=t.icn3dui;if(s.bNode)return;let i=s.hashUtilsCls.intHash(t.hAtoms,e);void 0===t.labels.schematic&&(t.labels.schematic=[]);for(let e in i){let s=t.atoms[e];if(!t.residues.hasOwnProperty(s.structure+"_"+s.chain+"_"+s.resi))continue;if("C"===s.elem)continue;let i={};i.position=s.coord,i.bSchematic=1,i.text=s.elem,i.size=18,i.color="black"!=t.opts.background?t.colorWhitebkgd:s.color.getHexString(),i.background="#FFFFFF",t.labels.schematic.push(i)}t.hlObjectsCls.removeHlObjects()}addAtomLabels(e,t){let s=this.icn3d,i=s.icn3dui;if(i.bNode)return;let n=i.hashUtilsCls.intHash(s.hAtoms,e);n=i.hashUtilsCls.intHash(s.dAtoms,n),void 0===s.labels.residue&&(s.labels.residue=[]);for(let e in n){let i=s.atoms[e],n={};n.position=i.coord,n.bSchematic=0,n.text=t?i.elem:i.name.padEnd(2," "),n.size=18,t&&(n.bSchematic=!0);let l=i.color.getHexString().toUpperCase();n.color="black"!=s.opts.background?s.colorWhitebkgd:s.colorBlackbkgd,t&&(n.color="CCCCCC"===l||"C8C8C8"===l?"#888888":"#"+l),n.background="#FFFFFF",s.labels.residue.push(n)}s.hlObjectsCls.removeHlObjects()}}class at{constructor(e){this.icn3d=e}onBeforeRender(e,t,s,i,n,l){let r=n.uniforms,o=[];if(r.objectId&&(r.objectId.value=SupportsReadPixelsFloat?this.id:this.id/255,o.push("objectId")),(r.modelViewMatrixInverse||r.modelViewMatrixInverseTranspose||r.modelViewProjectionMatrix||r.modelViewProjectionMatrixInverse)&&this.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,this.matrixWorld),r.modelViewMatrixInverse&&(r.modelViewMatrixInverse.value.copy(this.modelViewMatrix).invert(),o.push("modelViewMatrixInverse")),r.modelViewMatrixInverseTranspose&&(r.modelViewMatrixInverse?r.modelViewMatrixInverseTranspose.value.copy(r.modelViewMatrixInverse.value).transpose():r.modelViewMatrixInverseTranspose.value.copy(this.modelViewMatrix).invert().transpose(),o.push("modelViewMatrixInverseTranspose")),r.modelViewProjectionMatrix&&(s.updateProjectionMatrix(),r.modelViewProjectionMatrix.value.multiplyMatrices(s.projectionMatrix,this.modelViewMatrix),o.push("modelViewProjectionMatrix")),r.modelViewProjectionMatrixInverse){let e=new THREE.Matrix4;r.modelViewProjectionMatrix?(e.copy(r.modelViewProjectionMatrix.value),r.modelViewProjectionMatrixInverse.value.copy(e).invert()):(s.updateProjectionMatrix(),e.multiplyMatrices(s.projectionMatrix,this.modelViewMatrix),r.modelViewProjectionMatrixInverse.value.copy(e).invert()),o.push("modelViewProjectionMatrixInverse")}if(r.projectionMatrix&&(s.updateProjectionMatrix(),r.projectionMatrix.value.copy(s.projectionMatrix),o.push("projectionMatrix")),r.projectionMatrixInverse&&(s.updateProjectionMatrix(),r.projectionMatrixInverse.value.copy(s.projectionMatrix).invert(),o.push("projectionMatrixInverse")),o.length){let t=e.properties.get(n);if(t.program){let s=e.getContext(),i=t.program;s.useProgram(i.program);let n=i.getUniforms();o.forEach((function(e){n.setValue(s,e,r[e].value)}))}}}setParametersForShader(e){let t,s=this.icn3d,i=s.icn3dui.parasCls.backgroundColors[s.opts.background.toLowerCase()],n=2.5*s.maxD,l=4*s.maxD,r=void 0!==s.biomtMatrices&&s.biomtMatrices.length*s.cnt>s.maxatomcnt;"yes"===s.opts.slab?r?t=.1:void 0!==s.camMaxDFactorFog?(t=s.maxD*s.camMaxDFactorFog-10,n=2.5*s.maxD-t<0?0:2.5*s.maxD-t,l=4*s.maxD-t):t=s.maxD*s.camMaxDFactor:t=.1;let o=void 0!==e?e:1,a=s.shininess/100*.5;s.uniforms=THREE.UniformsUtils.merge([THREE.UniformsLib.common,{modelViewMatrix:{value:new THREE.Matrix4},modelViewMatrixInverse:{value:new THREE.Matrix4},modelViewMatrixInverseTranspose:{value:new THREE.Matrix4},modelViewProjectionMatrix:{value:new THREE.Matrix4},modelViewProjectionMatrixInverse:{value:new THREE.Matrix4},projectionMatrix:{value:new THREE.Matrix4},projectionMatrixInverse:{value:new THREE.Matrix4},diffuse:{type:"v3",value:[1,1,1]},emissive:{type:"v3",value:[.06,.06,.06]},roughness:{type:"f",value:.5},metalness:{type:"f",value:a},opacity:{type:"f",value:o},nearClip:{type:"f",value:t},ortho:{type:"f",value:0},shrink:{type:"f",value:.13},fogColor:{type:"v3",value:[i.r,i.g,i.b]},fogNear:{type:"f",value:n},fogFar:{type:"f",value:l},fogDensity:{type:"f",value:2}},THREE.UniformsLib.ambient,THREE.UniformsLib.lights]),s.defines={USE_COLOR:1,NEAR_CLIP:1,CAP:1},"yes"!==s.opts.fog||r||(s.defines.USE_FOG=1,"orthographic"===s.opts.camera&&(s.defines.FOG_EXP2=1)),s.bExtFragDepth&&(s.defines.USE_LOGDEPTHBUF_EXT=1)}drawImpostorShader(){this.icn3d.icn3dui.bNode||(this.setParametersForShader(),this.createImpostorShaderSphere("SphereImpostor"),this.createImpostorShaderCylinder("CylinderImpostor"))}getShader(e){this.icn3d.icn3dui;let t=$NGL_shaderTextHash[e];return t=t.replace(/#include\s+(\S+)/gim,(function(e,t){let s;return THREE.ShaderChunk.hasOwnProperty(t)&&(s=THREE.ShaderChunk[t]),s||""})),t}createImpostorShaderBase(e,t,s,i,n,l,r,o,a){let d=this.icn3d;d.icn3dui;let c=new THREE.ShaderMaterial({defines:d.defines,uniforms:d.uniforms,vertexShader:this.getShader(e+".vert"),fragmentShader:this.getShader(e+".frag"),depthTest:!0,depthWrite:!0,lights:!0});c.extensions.fragDepth=!0,"CylinderImpostor"==e?d.CylinderImpostorMaterial=c:"SphereImpostor"==e&&(d.SphereImpostorMaterial=c);let h,p,m=l*r,u=l*o,g=new(m>65535?Uint32Array:Uint16Array)(u);for(let e=0;e=0;t--){let s=a.children[t];s.onBeforeRender=e.impostorCls.onBeforeRender,s.frustumCulled=!1}l.add(a)}void 0!==e.mdl_ghost&&(a=e.mdl_ghost.clone(),this.applyMat(a,d),r.add(a));let c=e.center.clone();this.applyMat(c,d,!0),s.add(c),++t}e.mdl.add(n),e.mdlImpostor.add(l),e.mdl_ghost.add(r),void 0!==e.bSetInstancing&&e.bSetInstancing?(e.maxD=e.maxDAssembly,e.center=e.centerAssembly.clone(),e.applyCenterCls.setCenter(e.center),e.cameraCls.setCamera()):(e.maxD*=Math.sqrt(t),e.center=e.ParserUtilsCls.getMassCenter(s,t),e.maxDAssembly=e.maxD,e.centerAssembly=e.center.clone(),e.applyCenterCls.setCenter(e.center),e.cameraCls.setCamera()),e.bSetInstancing=!0}createInstancedGeometry(e){let t=this.icn3d,s=t.icn3dui,i=e.geometry,n=new THREE.InstancedBufferGeometry,l=[],r=[],o=[],a=[],d=[],c=[],h=[],p=[];if(t.bImpo&&"Cylinder"==e.type){t.instancedMaterial=this.getInstancedMaterial("CylinderInstancing");let e=s.hashUtilsCls.hashvalue2array(i.attributes.position1.array),r=s.hashUtilsCls.hashvalue2array(i.attributes.color.array),m=s.hashUtilsCls.hashvalue2array(i.attributes.position2.array),u=s.hashUtilsCls.hashvalue2array(i.attributes.color2.array),g=s.hashUtilsCls.hashvalue2array(i.index.array),f=s.hashUtilsCls.hashvalue2array(i.attributes.radius.array),C=s.hashUtilsCls.hashvalue2array(i.attributes.mapping.array);l=l.concat(e),o=o.concat(r),h=h.concat(m),p=p.concat(u),a=a.concat(g),d=d.concat(f),c=c.concat(C),n.setAttribute("position1",new THREE.BufferAttribute(new Float32Array(l),3)),n.setAttribute("color",new THREE.BufferAttribute(new Float32Array(o),3)),n.setAttribute("position2",new THREE.BufferAttribute(new Float32Array(h),3)),n.setAttribute("color2",new THREE.BufferAttribute(new Float32Array(p),3)),n.setAttribute("radius",new THREE.BufferAttribute(new Float32Array(d),1)),n.setAttribute("mapping",new THREE.BufferAttribute(new Float32Array(c),3)),n.setIndex(new THREE.BufferAttribute(new Uint32Array(a),1)),e=null,r=null,m=null,u=null,g=null,f=null,C=null}else if(t.bImpo&&"Sphere"==e.type){t.instancedMaterial=this.getInstancedMaterial("SphereInstancing");let e=s.hashUtilsCls.hashvalue2array(i.attributes.position.array),r=s.hashUtilsCls.hashvalue2array(i.attributes.color.array),h=s.hashUtilsCls.hashvalue2array(i.index.array),p=s.hashUtilsCls.hashvalue2array(i.attributes.radius.array),m=s.hashUtilsCls.hashvalue2array(i.attributes.mapping.array);l=l.concat(e),o=o.concat(r),a=a.concat(h),d=d.concat(p),c=c.concat(m),n.setAttribute("position",new THREE.BufferAttribute(new Float32Array(l),3)),n.setAttribute("color",new THREE.BufferAttribute(new Float32Array(o),3)),n.setAttribute("radius",new THREE.BufferAttribute(new Float32Array(d),1)),n.setAttribute("mapping",new THREE.BufferAttribute(new Float32Array(c),2)),n.setIndex(new THREE.BufferAttribute(new Uint32Array(a),1)),e=null,r=null,h=null,p=null,m=null}else{t.instancedMaterial=this.getInstancedMaterial("Instancing");let e=i.attributes.position?s.hashUtilsCls.hashvalue2array(i.attributes.position.array):[],d=i.attributes.normal?s.hashUtilsCls.hashvalue2array(i.attributes.normal.array):[],c=i.attributes.color?s.hashUtilsCls.hashvalue2array(i.attributes.color.array):[],h=i.index?s.hashUtilsCls.hashvalue2array(i.index.array):[];l=l.concat(e),r=r.concat(d),o=o.concat(c),a=a.concat(h);let p=[],m="CylinderGeometry"==i.type?1:0;for(let e=0,t=l.length/3;e0&&(e.dAtoms=t.hashUtilsCls.cloneHash(s)),e.bShowHighlight=!1}e.applyMapCls.removeSurfaces(),e.applyMapCls.applySurfaceOptions(),e.applyMapCls.removeMaps(),e.applyMapCls.applyMapOptions(),e.applyMapCls.removeEmmaps(),e.applyMapCls.applyEmmapOptions(),e.applyMapCls.removePhimaps(),e.applyMapCls.applyPhimapOptions(),e.applyMapCls.removeSurfaces(),e.applyMapCls.applyphisurfaceOptions(),e.axes=[],e.pc1&&e.axesCls.setPc1Axes(),e.opts.rotationcenter="highlight center",e.drawCls.draw(),e.bShowHighlight=!0}async alternateWrapper(){let e=this.icn3d;e.icn3dui,e.bAlternate=!0,await this.alternateStructures(),e.bAlternate=!1}}class ht{constructor(e){this.icn3d=e}draw(e){let t=this.icn3d,s=t.icn3dui;if(t.impostorCls.clearImpostors(),!t.bRender||t.hAtoms&&0!=Object.keys(t.hAtoms)||(t.hAtoms=s.hashUtilsCls.cloneHash(t.atoms)),t.sceneCls.rebuildScene(),t.bImpo&&t.impostorCls.drawImpostorShader(),t.setColorCls.applyPrevColor(),void 0!==t.biomtMatrices&&t.biomtMatrices.length>1)if(t.bAssembly&&1==Object.keys(t.structures).length&&(void 0===s.cfg.mmdbid&&1==s.cfg.bu||void 0!==s.cfg.mmdbid&&1==s.cfg.bu&&Object.keys(t.atoms).length*t.biomtMatrices.length>t.maxatomcnt))t.instancingCls.drawSymmetryMates();else{let e=!0;t.applyCenterCls.centerSelection(void 0,e)}let i=void 0!==t.hAtoms?Object.keys(t.hAtoms).length:0;if(i>0&&i0){e.children[0].scale.z=t[0].distance,t[0].point.sub(r.mdl.position);let s=r.rayThreshold,i=r.rayCls.getAtomsFromPosition(t[0].point,s);for(;!i&&s<10;)s+=.5,i=r.rayCls.getAtomsFromPosition(t[0].point,s);i&&(r.pAtomNum%2==0?r.pAtom=i:r.pAtom2=i,++r.pAtomNum,this.showPickingVr(r.pk,i))}}}}catch(e){}}showPickingVr(e,t){let s=this.icn3d;s.icn3dui,e||(e=2),s.hAtoms=s.pickingCls.getPickedAtomList(e,t),2===e?s.residueLabelsCls.addResidueLabels(s.hAtoms,void 0,void 0,!0):1===e&&s.residueLabelsCls.addAtomLabels(s.hAtoms),s.setOptionCls.setStyle("proteins",t.style)}render_base(){let e=this.icn3d,t=e.icn3dui,s=this;if(t.bNode)return;let i=e.bControlGl&&!t.bNode?window.cam:e.cam;if(e.directionalLight){let t=new THREE.Quaternion;t.setFromUnitVectors(new THREE.Vector3(0,0,e.cam_z).normalize(),i.position.clone().normalize()),e.directionalLight.position.copy(e.lightPos.clone().applyQuaternion(t).normalize()),e.directionalLight2.position.copy(e.lightPos2.clone().applyQuaternion(t).normalize()),e.directionalLight3.position.copy(e.lightPos3.clone().applyQuaternion(t).normalize())}if(e.bVr||e.renderer.setPixelRatio(window.devicePixelRatio),e.bVr){let t=.04;if(e.controllers){let i=this.updateGamepadState();for(let n=0,l=e.controllers.length;n{const i=e.gamepad.axes;let r=parseInt(1e3*i[t]),o=parseInt(-1e3*i[s]);n.push(r),l.push(o)})),{xArray:n,yArray:l}}return{xArray:[0,0],yArray:[0,0]}}}class pt{constructor(e){this.icn3d=e}getAtomsWithinAtom(e,t,s,i,n,l,r){let o=this.icn3d,a=o.icn3dui,d=this.getNeighboringAtoms(e,t,s,r);i&&(o.resid2Residhash={});let c={};for(let e in t){let h=o.atoms[e];if(n&&"H"==h.elem)continue;let p,m,u=a.parasCls.vdwRadii[h.elem.toUpperCase()],g=h.structure+"_"+h.chain,f=h.structure+"_"+h.chain+"_"+h.resi;for(let e in o.residues[f])if(o.atoms[e]&&("CA"===o.atoms[e].name&&"C"===o.atoms[e].elem||"O3'"===o.atoms[e].name||"O3*"===o.atoms[e].name)){p=o.atoms[e];break}if(void 0===p&&(p=h),i){let e=0==h.name.indexOf("pi")&&h.ring?h.ring.join(","):h.serial;m=h.resn+" $"+h.structure+"."+h.chain+":"+h.resi+" "+e,void 0===o.resid2Residhash[m]&&(o.resid2Residhash[m]={})}let C=h.structure+"_"+h.chain+"_"+h.resi;for(let e in d){let f=d[e];if(n&&"H"==f.elem)continue;let b=a.parasCls.vdwRadii[f.elem.toUpperCase()],y=f.structure+"_"+f.chain;if(n&&!o.crossstrucinter&&h.structure!=f.structure)continue;if(!r&&f.serial in t)continue;if(o.bOpm&&"DUM"===f.resn)continue;let v=f.coord.distanceTo(h.coord);if(n&&vo?r:o,d=Math.sqrt(a),c=(d+s)*(d+s),h={};for(let r in e){let e=n.atoms[r];!i&&t.hasOwnProperty(e.serial)||(this.bOpm&&"DUM"===e.resn||e.coord.xl[1][0]+s||e.coord.yl[1][1]+s||e.coord.zl[1][2]+s||(e.coord.x-l[2][0])*(e.coord.x-l[2][0])+(e.coord.y-l[2][1])*(e.coord.y-l[2][1])+(e.coord.z-l[2][2])*(e.coord.z-l[2][2])e.coord.x?n:e.coord.x,l=l>e.coord.y?l:e.coord.y,r=r>e.coord.z?r:e.coord.z}return[[t,s,i],[n,l,r],[o/c,a/c,d/c]]}hideContact(){let e=this.icn3d;e.icn3dui,e.opts.contact="no",void 0===e.lines&&(e.lines={}),e.lines.contact=[],e.contactpnts=[]}}class mt{constructor(e){this.icn3d=e}isHbondDonorAcceptor(e){let t=this.icn3d;if(t.icn3dui,"N"==e.name&&!e.het||"N"==e.elem&&"Arg"==e.resn||"N"==e.elem&&"Asn"==e.resn||"N"==e.elem&&"Gln"==e.resn||"N"==e.elem&&"Lys"==e.resn||"N"==e.elem&&"Trp"==e.resn)return"donor";if("O"==e.name&&!e.het||"S"==e.elem&&"Met"==e.resn||"O"==e.elem&&"Asn"==e.resn||"O"==e.elem&&"Asp"==e.resn||"O"==e.elem&&"Gln"==e.resn||"O"==e.elem&&"Glu"==e.resn)return"acceptor";if("S"==e.elem&&"Cys"==e.resn||"N"==e.elem&&"His"==e.resn||"O"==e.elem&&"Ser"==e.resn||"O"==e.elem&&"Thr"==e.resn||"O"==e.elem&&"Tyr"==e.resn)return"both";if("Pro"==e.resn)return"none";if("N"==e.elem){if("Asn"==e.resn||"Gln"==e.resn)return"both";let s=0,i=0;for(let i=0,n=e.bonds.length;i1?"ring":"donor":"none"}if("O"==e.elem&&1==e.bonds.length){if("Asn"==e.resn||"Gln"==e.resn)return"both";for(let s=0,i=e.bonds.length;s=2?"acceptor":"both"}if("O"==e.elem&&2==e.bonds.length){for(let s=0,i=e.bonds.length;s1);++t)"H"!=s.atoms[e.bonds[t]].elem&&(i=s.atoms[e.bonds[t]],l[r++].subVectors(s.atoms[e.bonds[t]].coord,e.coord));if(1===r)for(let t=0,n=i.bonds.length;t1);++t)"H"!=s.atoms[i.bonds[t]].elem&&s.atoms[i.bonds[t]].serial!=e.serial&&l[r++].subVectors(s.atoms[i.bonds[t]].coord,e.coord);if(2!==r)return;let o=l[0].cross(l[1]);return Math.abs(Math.PI/2-o.angleTo(n))}isValidHbond(e,t,s){let i=this.icn3d;i.icn3dui;let n,l,r=this.isHbondDonorAcceptor(e),o=this.isHbondDonorAcceptor(t),a=50*Math.PI/180,d=50*Math.PI/180,c=90*Math.PI/180,h=30*Math.PI/180;if("donor"==r&&("acceptor"==o||"both"==o||"ring"==o)||"acceptor"==o&&("donor"==r||"both"==r||"ring"==r))n=e,l=t;else if("acceptor"==r&&("donor"==o||"both"==o||"ring"==o)||"donor"==o&&("acceptor"==r||"both"==r||"ring"==r))l=e,n=t;else{if("both"!=r&&"ring"!=r||"both"!=o&&"ring"!=o)return!1;n=e,l=t,i.nucleotides.hasOwnProperty(e.serial)&&i.nucleotides.hasOwnProperty(t.serial)&&("ring"==r||"ring"==o)||(e.het||t.het)&&"ring"==r&&"ring"==o||(h=90*Math.PI/180)}let p=this.calcAngles(n,l),m=90*Math.PI/180;for(let e=0,t=p.length;ed)return!1;let u=this.calcPlaneAngle(n,l);if(void 0!==u&&u>h)return!1;let g=this.calcAngles(l,n),f=90*Math.PI/180;for(let e=0,t=g.length;ea)return!1;let C=this.calcPlaneAngle(l,n);return!(void 0!==C&&C>c)}calculateChemicalHbonds(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(0===Object.keys(e).length||0===Object.keys(t).length)return;r.resid2Residhash={};let a,d,c={},h=s*s;for(let t in e){let s=e[t],n=i?"LYS"===s.resn&&"N"===s.elem&&"N"!==s.name||"ARG"===s.resn&&("NH1"===s.name||"NH2"===s.name)||("GLU"===s.resn||"ASP"===s.resn)&&"O"===s.elem&&"O"!==s.name||s.het&&("N"===s.elem||"O"===s.elem||"S"===s.elem):"N"===s.elem||"O"===s.elem||"S"===s.elem&&(s.het||"Cys"===s.resn||"Met"===s.resn);n=r.bOpm?n&&"DUM"!==s.resn:n,n&&(a=s.structure+"_"+s.chain+"_"+s.resi,d=a+"_"+s.name,c[d]=s)}let p={},m={},u=.5,g=-27.888,f={};for(let e in t){let C=t[e],b=i?"LYS"===C.resn&&"N"===C.elem&&"N"!==C.name||"ARG"===C.resn&&("NH1"===C.name||"NH2"===C.name)||("GLU"===C.resn||"ASP"===C.resn)&&"O"===C.elem&&"O"!==C.name||C.het&&("N"===C.elem||"O"===C.elem||"S"===C.elem):"N"===C.elem||"O"===C.elem||"S"===C.elem&&(C.het||"Cys"===C.resn||"Met"===C.resn);if(b=r.bOpm?b&&"DUM"!==C.resn:b,b){a=C.structure+"_"+C.chain+"_"+C.resi,d=a+"_"+C.name;let e=0==C.name.indexOf("pi")&&C.ring?C.ring.join(","):C.serial,t=C.resn+" $"+C.structure+"."+C.chain+":"+C.resi+"@"+C.name+" "+e;void 0===r.resid2Residhash[t]&&(r.resid2Residhash[t]={});for(let e in c){if(i&&!(("LYS"!==C.resn&&"ARG"!==C.resn||"LYS"!==c[e].resn&&"ARG"!==c[e].resn)&&("GLU"!==C.resn&&"ASP"!==C.resn||"GLU"!==c[e].resn&&"ASP"!==c[e].resn)))continue;if(!r.crossstrucinter&&C.structure!=c[e].structure)continue;if(a==e.substr(0,e.lastIndexOf("_")))continue;let d=Math.abs(C.coord.x-c[e].coord.x);if(d>s)continue;let b=Math.abs(C.coord.y-c[e].coord.y);if(b>s)continue;let y=Math.abs(C.coord.z-c[e].coord.z);if(y>s)continue;let v=d*d+b*b+y*y;if(v>h)continue;if(!r.proteins.hasOwnProperty(C.serial)||!r.proteins.hasOwnProperty(c[e].serial)||"N"!==C.name&&"O"!==C.name||"O"!==c[e].name&&"N"!==c[e].name){if(!this.isValidHbond(C,c[e],s))continue}else{if(C.name===c[e].name)continue;if(C.structure==c[e].structure&&C.chain==c[e].chain&&Math.abs(C.resi-c[e].resi)<=1)continue;let t,i="N"===C.name?C:c[e],n="O"===C.name?C:c[e];if("Pro"===i.resn)continue;if(void 0===i.hcoord){if(!this.isValidHbond(C,c[e],s))continue}else{let s,l=i.hcoord,o=i.coord,a=n.structure+"_"+n.chain+"_"+n.resi;for(let e in r.residues[a])if("C"===r.atoms[e].name){s=r.atoms[e];break}if(!s)continue;let d=s.coord,h=n.coord,p=l.distanceTo(h),m=l.distanceTo(d),f=o.distanceTo(d),b=o.distanceTo(h);t=p2||f[c[e].serial]>2)continue;void 0===f[C.serial]?f[C.serial]=1:++f[C.serial],void 0===f[c[e].serial]?f[c[e].serial]=1:++f[c[e].serial],"graph"!==n&&(i?(r.saltbridgepnts.push({serial:C.serial,coord:C.coord}),r.saltbridgepnts.push({serial:c[e].serial,coord:c[e].coord})):(r.hbondpnts.push({serial:C.serial,coord:C.coord}),r.hbondpnts.push({serial:c[e].serial,coord:c[e].coord})));let _=c[e].structure+"_"+c[e].chain+"_"+c[e].resi;p=o.hashUtilsCls.unionHash(p,r.residues[a]),p=o.hashUtilsCls.unionHash(p,r.residues[_]),m[a]=1,m[_]=1;let w=0==c[e].name.indexOf("pi")&&c[e].ring?c[e].ring.join(","):c[e].serial,S=c[e].resn+" $"+c[e].structure+"."+c[e].chain+":"+c[e].resi+"@"+c[e].name+" "+w,A=a+"_"+C.resn+","+_+"_"+c[e].resn;void 0!==r.resids2interAll[A]&&void 0!==r.resids2interAll[A].ionic&&r.resids2interAll[A].ionic.hasOwnProperty(t+"|"+S)||(r.resid2Residhash[t][S]=v.toFixed(1),l||(void 0===r.resids2inter[A]&&(r.resids2inter[A]={}),void 0===r.resids2inter[A].hbond&&(r.resids2inter[A].hbond={}),r.resids2inter[A].hbond[t+"|"+S]=v.toFixed(1)),void 0===r.resids2interAll[A]&&(r.resids2interAll[A]={}),void 0===r.resids2interAll[A].hbond&&(r.resids2interAll[A].hbond={}),r.resids2interAll[A].hbond[t+"|"+S]=v.toFixed(1))}}}let C=Object.keys(m);if("graph"!==n)for(let e=0,t=C.length;en)return!1;let c=Math.abs(e.coord.y-t.coord.y);if(c>n)return!1;let h=Math.abs(e.coord.z-t.coord.z);if(h>n)return!1;let p=d*d+c*c+h*h;if(p>l)return!1;"graph"!==s&&("halogen"==i?(a.halogenpnts.push({serial:e.serial,coord:e.coord}),a.halogenpnts.push({serial:t.serial,coord:t.coord})):"pi-cation"==i?(a.picationpnts.push({serial:e.serial,coord:e.coord}),a.picationpnts.push({serial:t.serial,coord:t.coord})):"pi-stacking"==i&&(a.pistackingpnts.push({serial:e.serial,coord:e.coord}),a.pistackingpnts.push({serial:t.serial,coord:t.coord})));let m=0==t.name.indexOf("pi")&&t.ring?t.ring.join(","):t.serial,u=t.resn+" $"+t.structure+"."+t.chain+":"+t.resi+"@"+t.name+" "+m;a.resid2Residhash[r][u]=p.toFixed(1);let g=e.structure+"_"+e.chain+"_"+e.resi+"_"+e.resn+","+t.structure+"_"+t.chain+"_"+t.resi+"_"+t.resn;return o||(void 0===a.resids2inter[g]&&(a.resids2inter[g]={}),void 0===a.resids2inter[g][i]&&(a.resids2inter[g][i]={}),a.resids2inter[g][i][r+"|"+u]=p.toFixed(1)),void 0===a.resids2interAll[g]&&(a.resids2interAll[g]={}),void 0===a.resids2interAll[g][i]&&(a.resids2interAll[g][i]={}),a.resids2interAll[g][i][r+"|"+u]=p.toFixed(1),!0}getRingNormal(e){if(this.icn3d.icn3dui,e.length<3)return;let t=e[0].clone().sub(e[1]),s=e[1].clone().sub(e[2]);return t.cross(s).normalize()}getAromaticRings(e,t,s){let i=this.icn3d;i.icn3dui;let n=[],l=[],r=[],o=[];if("nucleotide"==s){let s=new THREE.Vector3,a=new THREE.Vector3;if("A"==e.trim().toUpperCase()||"DA"==e.trim().toUpperCase()||"G"==e.trim().toUpperCase()||"DG"==e.trim().toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"N1"==t.name||"C2"==t.name||"N3"==t.name||"C6"==t.name?(s.add(t.coord),r.push(t.coord)):"C4"==t.name||"C5"==t.name?(s.add(t.coord),a.add(t.coord),r.push(t.coord),o.push(t.coord)):"N7"!=t.name&&"C8"!=t.name&&"N9"!=t.name||(a.add(t.coord),o.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r))),5==o.length&&(a.multiplyScalar(.2),n.push(a),l.push(this.getRingNormal(o)))}else if("C"==e.trim().toUpperCase()||"DC"==e.trim().toUpperCase()||"T"==e.trim().toUpperCase()||"DT"==e.trim().toUpperCase()||"U"==e.trim().toUpperCase()||"DU"==e.trim().toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"N1"==t.name||"C2"==t.name||"N3"==t.name||"C6"==t.name?(s.add(t.coord),r.push(t.coord)):"C4"!=t.name&&"C5"!=t.name||(s.add(t.coord),r.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r)))}}else if("protein"==s){let s=new THREE.Vector3,a=new THREE.Vector3;if("PHE"==e.toUpperCase()||"TYR"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CG"!=t.name&&"CD1"!=t.name&&"CE1"!=t.name&&"CZ"!=t.name&&"CE2"!=t.name&&"CD2"!=t.name||(s.add(t.coord),r.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r)))}else if("HIS"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CG"!=t.name&&"ND1"!=t.name&&"CE1"!=t.name&&"NE2"!=t.name&&"CD2"!=t.name||(s.add(t.coord),r.push(t.coord))}5==r.length&&(s.multiplyScalar(.2),n.push(s),l.push(this.getRingNormal(r)))}else if("TRP"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CZ2"==t.name||"CH2"==t.name||"CZ3"==t.name||"CE3"==t.name?(s.add(t.coord),r.push(t.coord)):"CD2"==t.name||"CE2"==t.name?(s.add(t.coord),a.add(t.coord),r.push(t.coord),o.push(t.coord)):"CG"!=t.name&&"CD1"!=t.name&&"NE1"!=t.name||(a.add(t.coord),o.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r))),5==o.length&&(a.multiplyScalar(.2),n.push(a),l.push(this.getRingNormal(o)))}}return{piPosArray:n,normalArray:l}}dfs_cycle(e,t,s){let i=this.icn3d;if(i.icn3dui,2==i.ring_color[e])return s;if(1==i.ring_color[e]){s++;let n=t;for(i.ring_mark[n]=s;n!=e;)n=i.ring_par[n],i.ring_mark[n]=s;return s}if(i.ring_par[e]=t,i.ring_color[e]=1,void 0!==i.atoms[e])for(let t=0,n=i.atoms[e].bonds.length;t=3&&o<=6&&a[0]&&a[1]&&a[2]&&a[3]){let i=a[0].clone().sub(a[1]).normalize(),r=a[1].clone().sub(a[2]).normalize(),c=a[2].clone().sub(a[3]).normalize(),h=i.cross(r).normalize(),p=h.dot(c);if(Math.abs(p)<.052){l.multiplyScalar(1/o);let i=t.atoms[n];s[e+"_pi"+n]={resn:i.resn,name:"pi"+n,coord:l,serial:i.serial,structure:i.structure,chain:i.chain,resi:i.resi,normal:h,ring:d}}}}return s}hideHalogenPi(){let e=this.icn3d;e.icn3dui,e.opts.halogen="no",e.opts["pi-cation"]="no",e.opts["pi-stacking"]="no",void 0===e.lines&&(e.lines={}),e.lines.halogen=[],e.lines["pi-cation"]=[],e.lines["pi-stacking"]=[],e.halogenpnts=[],e.picationpnts=[],e.pistackingpnts=[]}}class gt{constructor(e){this.icn3d=e}calculateIonicInteractions(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(0===Object.keys(e).length||0===Object.keys(t).length)return;r.resid2Residhash={};let a,d,c={},h={},p=s*s;for(let t in e){let s=e[t];if("ARG"===s.resn&&"NH2"===s.name||"GLU"===s.resn&&"OE2"===s.name||"ASP"===s.resn&&"OD2"===s.name)continue;let i=("LYS"===s.resn||"HIS"===s.resn)&&"N"===s.elem&&"N"!==s.name||"ARG"===s.resn&&("NH1"===s.name||"NH2"===s.name)||s.het&&-1!==o.parasCls.cationsTrimArray.indexOf(s.elem)||s.het&&"N"===s.elem&&1==s.bonds.length,n=this.isAnion(s);i=r.bOpm?i&&"DUM"!==s.resn:i,n=r.bOpm?n&&"DUM"!==s.resn:n,(i||n)&&(a=s.structure+"_"+s.chain+"_"+s.resi,d=a+"_"+s.name,i&&(c[d]=s),n&&(h[d]=s))}let m={},u={};for(let e in t){let i=t[e];if("ARG"===i.resn&&"NH2"===i.name||"GLU"===i.resn&&"OE2"===i.name||"ASP"===i.resn&&"OD2"===i.name)continue;let g=("LYS"===i.resn||"HIS"===i.resn)&&"N"===i.elem&&"N"!==i.name||"ARG"===i.resn&&("NH1"===i.name||"NH2"===i.name)||i.het&&-1!==o.parasCls.cationsTrimArray.indexOf(i.elem),f=this.isAnion(i);if(g=r.bOpm?g&&"DUM"!==i.resn:g,f=r.bOpm?f&&"DUM"!==i.resn:f,g||f){a=i.structure+"_"+i.chain+"_"+i.resi,d=a+"_"+i.name;let e=0==i.name.indexOf("pi")&&i.ring?i.ring.join(","):i.serial,t=i.resn+" $"+i.structure+"."+i.chain+":"+i.resi+"@"+i.name+" "+e;void 0===r.resid2Residhash[t]&&(r.resid2Residhash[t]={});let C={};g?C=h:f&&(C=c);let b,y=i.structure+"_"+i.chain+"_"+i.resi;g&&"ARG"===i.resn&&"NH1"===i.name?b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"NH2"):f&&"GLU"===i.resn&&"OE1"===i.name?b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"OE2"):f&&"ASP"===i.resn&&"OD1"===i.name&&(b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"OD2"));let v=void 0===b?i.coord:i.coord.clone().add(b.coord).multiplyScalar(.5);for(let e in C){if(a==e.substr(0,e.lastIndexOf("_")))continue;if(!r.crossstrucinter&&i.structure!=C[e].structure)continue;let d,c=C[e].structure+"_"+C[e].chain+"_"+C[e].resi;f&&"ARG"===C[e].resn&&"NH1"===C[e].name?d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"NH2"):g&&"GLU"===C[e].resn&&"OE1"===C[e].name?d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"OE2"):g&&"ASP"===C[e].resn&&"OD1"===C[e].name&&(d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"OD2"));let h=void 0===d?C[e].coord:C[e].coord.clone().add(d.coord).multiplyScalar(.5),b=Math.abs(v.x-h.x);if(b>s)continue;let y=Math.abs(v.y-h.y);if(y>s)continue;let _=Math.abs(v.z-h.z);if(_>s)continue;let w=b*b+y*y+_*_;if(w>p)continue;"graph"!==n&&(r.saltbridgepnts.push({serial:i.serial,coord:v}),r.saltbridgepnts.push({serial:C[e].serial,coord:h}));let S=C[e].structure+"_"+C[e].chain+"_"+C[e].resi;m=o.hashUtilsCls.unionHash(m,r.residues[a]),m=o.hashUtilsCls.unionHash(m,r.residues[S]),u[a]=1,u[S]=1;let A=0==C[e].name.indexOf("pi")&&C[e].ring?C[e].ring.join(","):C[e].serial,x=C[e].resn+" $"+C[e].structure+"."+C[e].chain+":"+C[e].resi+"@"+C[e].name+" "+A;r.resid2Residhash[t][x]=w.toFixed(1);let k=a+"_"+i.resn+","+S+"_"+C[e].resn;l||(void 0===r.resids2inter[k]&&(r.resids2inter[k]={}),void 0===r.resids2inter[k].ionic&&(r.resids2inter[k].ionic={}),r.resids2inter[k].ionic[t+"|"+x]=w.toFixed(1)),void 0===r.resids2interAll[k]&&(r.resids2interAll[k]={}),void 0===r.resids2interAll[k].ionic&&(r.resids2interAll[k].ionic={}),r.resids2interAll[k].ionic[t+"|"+x]=w.toFixed(1)}}}let g=Object.keys(u);if("graph"!==n)for(let e=0,t=g.length;e1?1/(n-1):1;for(let n in e){let e=t.atoms[n];e.color=s.parasCls.thr().setHSL(3/4*(1-i++*l),1,.45),t.atomPrevColors[n]=e.color}}colorRainbow(e){let t=this.icn3d,s=t.icn3dui,i=0,n=0;e=s.hashUtilsCls.intHash(e,t.hAtoms);for(let s in e)t.atoms[s],++n;let l=n>1?1/(n-1):1;for(let n in e){let e=t.atoms[n];e.color=s.parasCls.thr().setHSL(3/4*i++*l,1,.45),t.atomPrevColors[n]=e.color}}setColorAcrossSets(e,t){let s=this.icn3d,i=s.icn3dui,n=0,l=e.length,r=l>1?1/(l-1):1;for(let l=0,o=e.length;l0)this.setMmdbChainColor();else{let e=-1,s="",l=n.parasCls.stdChainColors.length;for(let r in t){let t=i.atoms[r];t.chain!=s&&(++e,e%=l),t.het?(t.color=n.parasCls.atomColors[t.elem],i.atomPrevColors[r]=t.color):(t.color=n.parasCls.stdChainColors[e],Object.keys(i.chainsColor).length>0&&this.updateChainsColor(t),i.atomPrevColors[r]=t.color),s=t.chain}}break;case"domain":s=0,l=0;let m=Object.keys(i.tddomains);l=m.length,r=l>1?1/(l-1):1;for(let e=0,t=m.length;e1?1/(l-1):1;for(let e=0;e Defined Sets", and try it again.');break;case"secondary structure green":case"secondary structure":i.sheetcolor="green";for(let e in t){let t=i.atoms[e];t.color=t.het?n.parasCls.atomColors[t.elem]||n.parasCls.defaultAtomColor:n.parasCls.ssColors[t.ss]||n.parasCls.thr(16711935),i.atomPrevColors[e]=t.color}break;case"secondary structure yellow":i.sheetcolor="yellow";for(let e in t){let t=i.atoms[e];t.color=t.het?n.parasCls.atomColors[t.elem]||n.parasCls.defaultAtomColor:n.parasCls.ssColors2[t.ss]||n.parasCls.thr(16711935),i.atomPrevColors[e]=t.color}break;case"secondary structure spectrum":s=0,l=0;let u,g,f=[],C=-9999;for(let e in t){if(!i.proteins.hasOwnProperty(e))continue;let t=i.atoms[e];-9999==C&&(u=parseInt(e)),-9999!=C&&(t.ss!=g.ss||Math.abs(t.resi-g.resi)>1||t.ssbegin&&g.ssend)&&("coil"==g.ss||f.push([u,C]),u=e),C=parseInt(e),g=t}"coil"==g.ss||f.push([u,C]),l=f.length,r=l>1?1/(l-1):1;for(let e=0,t=f.length;e100&&(e=100);let r=(i.middB-e)*i.spanBinv1,o=(e-i.middB)*i.spanBinv2;e=90?t.color=n.parasCls.thr().setRGB(0,.325,.839):e>=70&&e<90?t.color=n.parasCls.thr().setRGB(.396,.572,.953):e>=50&&e<70?t.color=n.parasCls.thr().setRGB(1,.859,.075):e<50&&(t.color=n.parasCls.thr().setRGB(1,.49,.271))}i.atomPrevColors[e]=t.color}break;case"b factor":i.middB=50,i.spanBinv1=.02,i.spanBinv2=.02;for(let e in t){let t=i.atoms[e];if(void 0===t.b||isNaN(t.b)||0==parseInt(1e3*t.b))t.color=n.parasCls.thr().setRGB(0,1,0);else{let e=t.b;e>100&&(e=100),e=t.structure.substr(0,4)!=i.defaultPdbId&&t.structure.length>5?100-e:e;let s=(i.middB-e)*i.spanBinv1,l=(e-i.middB)*i.spanBinv2;t.color=et.b&&(o=t.b),a5?100-t.b:t.b,s=i.bfactorArray.indexOf(e)/b;t.color=s<.5?n.parasCls.thr().setRGB(2*s,2*s,1):n.parasCls.thr().setRGB(1,2*(1-s),2*(1-s))}i.atomPrevColors[e]=t.color}break;case"area":if(void 0===i.resid2area){let e=n.hashUtilsCls.cloneHash(i.hAtoms);i.hAtoms=n.hashUtilsCls.cloneHash(i.atoms),i.bCalcArea=!0,i.opts.surface="solvent accessible surface",i.applyMapCls.applySurfaceOptions(),i.bCalcArea=!1,i.hAtoms=n.hashUtilsCls.cloneHash(e)}let y=void 0!==i.midpercent?i.midpercent:35;i.spanBinv1=.02,i.spanBinv2=.02;for(let e in t){let t=i.atoms[e],s=t.structure+"_"+t.chain+"_"+t.resi+"_"+t.resn,l=n.parasCls.residueArea.hasOwnProperty(t.resn)?i.resid2area[s]/n.parasCls.residueArea[t.resn]*100:y;l>100&&(l=100);let r=(y-l)*i.spanBinv1,o=(l-y)*i.spanBinv2;t.color=l

    ";if("atom"==e){let e=["proteins","nucleotides","chemicals","ions","water"];for(let i=0,l=e.length;i[e,s.parasCls.hydrophobicValues[e]]));l.sort(((e,t)=>parseFloat(e[1])-parseFloat(t[1])));var r=l.map((e=>[e[0],Object.keys(o[e[0]])[0]]));n+="
    ","normalized hydrophobic"==e?(n+="Dark green (W, F, L, I, Y, M, V, C): Hydrophobic
    ",n+="Light green (P, T, S, A, Q, N, G): Polar
    ",n+="Grey: Charged, not hydrophobic

    "):(n+="Green (W, F, L, I, Y, M, V, C): Hydrophobic
    ",n+="Yellow (P, T, S, A, Q, N, G): Polar
    ",n+="Red: Negatively Charged
    ",n+="Blue: Positively Charged

    ");let a=0;for(let e of r)s.parasCls.residueAbbrev[e[0]]&&(n+="
    ",n+="
    ",n+=s.parasCls.residueAbbrev[e[0]]+"
    ",a%4==3&&(n+="
    "),++a);n+="
    "}else"b factor"==e?(n+="
    B factor quantitates the uncertainty for each atom. A high B factor reflects that the position is less certain.

    ",n+=s.htmlCls.clickMenuCls.setLegendHtml()):"confidence"==e?n+=s.htmlCls.clickMenuCls.setLegendHtml(!0):"exon"==e?(t.startColor="red",t.midColor="white",t.endColor="blue",t.startValue="Start",t.midValue="Middle",t.endValue="End",n+=s.htmlCls.clickMenuCls.setLegendHtml()):n="";n?($("#"+s.pre+"dl_legend_html").html(n),s.htmlCls.dialogCls.openDlg("dl_legend","Color Legend")):$("#"+s.pre+"dl_legend").hasClass("ui-dialog-content")&&$("#"+s.pre+"dl_legend").dialog("isOpen")&&$("#"+s.pre+"dl_legend").dialog("close")}getColorLegendForElem(e,t){let s=this.icn3d,i=s.icn3dui,n="",l={};for(let e in t){let t=s.atoms[e],i=void 0===t||void 0===t.color||"FFFFFF"===t.color.getHexString().toUpperCase()?"DDDDDD":t.color.getHexString();void 0===l[t.elem]&&(l[t.elem]={}),l[t.elem][i]=1}if(Object.keys(l).length>0){n+=""+e+"
    ";let t=Object.keys(l).sort();for(let e=0,s=t.length;e";for(let e in l[s])n+="
    ";n+=i.parasCls.atomnames[s.toUpperCase()]+"

    "}n+="
    "}return n}getRes2color(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=s.firstAtomObjCls.getResiduesFromAtoms(e);for(let e in l){let l=s.residues[e],r=s.firstAtomObjCls.getFirstAtomObj(l),o=t?r.resn:i.parasCls.residueAbbrev[r.resn],a=void 0===r||void 0===r.color||"FFFFFF"===r.color.getHexString().toUpperCase()?"DDDDDD":r.color.getHexString();null!=o&&(void 0===n[o]&&(n[o]={}),n[o][a]=1)}return n}getColorLegendForResidue(e){this.icn3d.icn3dui;let t="",s=this.getRes2color(e);if(Object.keys(s).length>0){t+="
    ";let e=Object.keys(s).sort(),i="",n=0;for(let l=0,r=e.length;l";for(let e in s[o])r+="
    ";r+=o+"
    ",n%4==3&&(r+="
    "),-1!=o.indexOf("(")?(t+=r,++n):i+=r}i&&(t+="
    "+i),t+="
    "}return t}getColorLegendForCharge(e){let t=this.icn3d;t.icn3dui;let s="",i=t.firstAtomObjCls.getResiduesFromAtoms(e),n={};for(let e in i){let s=t.residues[e],i=t.firstAtomObjCls.getFirstAtomObj(s);"ARG"==i.resn||"LYS"==i.resn?n.Positive=1:"HIS"==i.resn?n["Partial-Positive"]=1:"ASP"==i.resn||"GLU"==i.resn||t.nucleotides[i.serial]?n.Negative=1:n.Neutral=1}const l={Positive:"0000ff","Partial-Positive":"8080ff",Negative:"ff0000",Neutral:"888888"};let r=["Positive","Partial-Positive","Negative","Neutral"];s+="
    ";for(let e=0,t=r.length;e",s+="
    ",s+=t,s+="
    ")}return s+="
    (Charges are at pH 7)",s+="
    ",s}getColorLegendForIgstrand(e){this.icn3d.icn3dui;let t="";const s={"A Strand":"9400D3","B Strand":"ba55d3","C Strand":"0000FF","C' Strand":"6495ED","C'' Strand":"006400","D Strand":"00FF00","E Strand":"FFD700","F Strand":"FF8C00","G Strand":"FF0000",Loop:"CCCCCC"};t+="
    ";for(let e in s){t+="",t+="
    ",t+=e,t+="

    "}return t+="
    ",t}getColorLegendForIgproto(e){this.icn3d.icn3dui;let t="";const s={"Protodomain 1":"","A Strand":"0000FF","B Strand":"006400","C Strand":"FFD700","C' Strand":"FF8C00","
    Linker":"","C'' Strand":"FF0000","
    Protodomain 2":"","D Strand":"0000FF","E Strand":"006400","F Strand":"FFD700","G Strand":"FF8C00","":"",Loop:"CCCCCC"};t+="
    A protodomain is a supersecondary structure
    that by its duplication, symmetry operations
    can generate a structural domain.

    ";for(let e in s){let i=s[e];t+="",i&&(t+="
    "),t+=e,t+="

    "}return t+="
    ",t}}class vt{constructor(e){this.icn3d=e}async showCddSiteAll(){let e=this.icn3d,t=e.icn3dui,s=this;e.chainid2pssmid={};let i=$.map(e.protein_chainid,(function(e){return e})),n=Object.keys(e.protein_chainid),l="https://www.ncbi.nlm.nih.gov/Structure/cdannots/cdannots.fcgi?fmt&frclive&live=lcl&queries="+i;if(1==Object.keys(e.structures).length&&!t.cfg.afid&&(t.cfg.mmtfid||t.cfg.pdbid||t.cfg.opmid||t.cfg.mmdbid||t.cfg.gi||t.cfg.uniprotid||t.cfg.blast_rep_id||t.cfg.cid||t.cfg.mmcifid)||2==Object.keys(e.structures).length&&t.cfg.align){let e={};try{t.bNode?e=await t.getAjaxPromise(l,"jsonp"):e.value=await t.getAjaxPromise(l,"jsonp"),s.parseCddData([e],n)}catch(e){return void s.getNoCdd(i)}}else{let i=[];for(let s=0,r=n.length;s',p=h,m=h,u=d.doms;n.bNode&&!i.resid2cdd[c]&&(i.resid2cdd[c]=[]),n.bNode&&!i.chainid2cdd[c]&&(i.chainid2cdd[c]=[]);let g=l.setDomainFeature(u,c,"domain",h,p,m);i.chainid2pssmid[c]={pssmid2name:g.pssmid2name,pssmid2fromArray:g.pssmid2fromArray,pssmid2toArray:g.pssmid2toArray};let f=g.acc2domain;h=g.html+"",p=g.html2+"",m=g.html3+"",$("#"+i.pre+"dt_cdd_"+c).html(h),$("#"+i.pre+"ov_cdd_"+c).html(p),$("#"+i.pre+"tt_cdd_"+c).html(m),h='
    ',p=h,m=h;let C=d.motifs;n.bNode&&!i.resid2site[c]&&(i.resid2site[c]=[]),g=l.setDomainFeature(C,c,"feat",h,p,m,f),h=g.html,p=g.html2,m=g.html3;let b=a.data[e].sites,y=void 0!==b?b.length:0;for(let e=0;e17&&(s=s.substr(0,17)+"...");let l,r=b[e].title,o=[];for(let t=0,s=b[e].locs.length;t'+s+"
    ",u=''+t.toString()+" Res",g='';m+=d+u+"
    ",h+=d+u+g,p+=d+u+g;let f="site"+e.toString(),C=0,y=0,v=1;i.seqStartLen&&i.seqStartLen[c]&&(p+=i.showSeqCls.insertMulGapOverview(c,i.seqStartLen[c])),i.seqStartLen&&i.seqStartLen[c]&&(h+=i.showSeqCls.insertMulGap(i.seqStartLen[c],"-"));for(let t=0,s=i.giSeq[c].length;t1&&(l=s[0]+"..");let r=i.ParserUtilsCls.getResi(c,t);if(h+=''+s+"",n.bNode){let t={};t[c+"_"+r]="site: "+b[e].title,i.resid2site[c].push(t)}p+=i.showSeqCls.insertGapOverview(c,t);let o=n.cfg.blast_rep_id==c?Math.round(i.seqAnnWidth*t/(i.maxAnnoLength+i.nTotalGap)-C-y):Math.round(i.seqAnnWidth*t/i.maxAnnoLength-C-y);o>=0&&(p+='
     
    ',p+='
     
    ',C+=o,y+=v)}else h+="-";i.seqStartLen&&i.seqStartLen[c]&&(h+=i.showSeqCls.insertMulGap(i.seqEndLen[c],"-")),g=' '+t.toString()+" Residues",g+="
    ",g+="
    ",h+=g,p+=g}h+="",p+="",m+="",$("#"+i.pre+"dt_site_"+c).html(h),$("#"+i.pre+"ov_site_"+c).html(p),$("#"+i.pre+"tt_site_"+c).html(m)}}for(let e in i.protein_chainid)r.hasOwnProperty(e)||($("#"+i.pre+"dt_cdd_"+e).html(""),$("#"+i.pre+"ov_cdd_"+e).html(""),$("#"+i.pre+"tt_cdd_"+e).html(""),$("#"+i.pre+"dt_site_"+e).html(""),$("#"+i.pre+"ov_site_"+e).html(""),$("#"+i.pre+"tt_site_"+e).html(""));i.showAnnoCls.enableHlSeq(),i.bAjaxCddSite=!0}getNoCdd(e){let t=this.icn3d;t.icn3dui,console.log("No CDD data were found for the protein "+e+"...");for(let e in t.protein_chainid)$("#"+t.pre+"dt_cdd_"+e).html(""),$("#"+t.pre+"ov_cdd_"+e).html(""),$("#"+t.pre+"tt_cdd_"+e).html(""),$("#"+t.pre+"dt_site_"+e).html(""),$("#"+t.pre+"ov_site_"+e).html(""),$("#"+t.pre+"tt_site_"+e).html("");t.showAnnoCls.enableHlSeq(),t.bAjaxCddSite=!0}getResiArrayStr(e,t){let s=this.icn3d;s.icn3dui;let i="";for(let n=0,l=e.length;n0&&(i+=","),i+=r.split("_")[2]}return i}setDomainFeature(e,t,s,i,n,l,r,o,a){let d,c,h,p=this.icn3d,m=p.icn3dui,u="domain"!=s&&"feat"!=s;"domain"==s&&(r={},d={},c={},h={}),void 0===e&&(e=[]);let g=e.length,f="domain"==s?14:19,C="domain"==s?100:120;e.sort((function(e,t){let i=e.locs,n="domain"==s||"ig"==s?i[0].segs:[i[0]],l=Math.round(n[0].from);return i=t.locs,n="domain"==s||"ig"==s?i[0].segs:[i[0]],l-Math.round(n[0].from)}));for(let b=0;bf&&(w=w.substr(0,f)+"...");let S=u?a[b]:s+": "+v;"domain"==s&&(d[g]=v);let A=e[b].locs;if(A)for(let e=0,r=A.length;e'+w+" ",I=''+u.toString()+" Res";l+=R+I+"
    ";let E='';i+=R+I+E,"domain"==s&&(n+='
    '),n+='
    '+w+"
    ",n+=I+E;let T=s+b.toString();if(p.seqStartLen&&p.seqStartLen[t]&&(i+=p.showSeqCls.insertMulGap(p.seqStartLen[t],"-")),m.bNode&&"domain"==s){let e=this.getResiArrayStr(r,t),s=this.getResiArrayStr(a,t);p.chainid2cdd[t].push(S+"_from_"+e+"_to_"+s)}for(let e=0,n=p.giSeq[t].length;e1&&(l=n[0]+"..");let r=p.ParserUtilsCls.getResi(t,e);if(i+=''+n+"",m.bNode){let e={};e[t+"_"+r]=S,"domain"==s?p.resid2cdd[t].push(e):p.resid2site[t].push(e)}}else i+="-";if(p.seqStartLen&&p.seqStartLen[t]&&(i+=p.showSeqCls.insertMulGap(p.seqEndLen[t],"-")),p.seqStartLen&&p.seqStartLen[t]&&(n+=p.showSeqCls.insertMulGapOverview(t,p.seqStartLen[t])),m.cfg.blast_rep_id!=t){let i;for(let l=0,d=r.length;l ',n+='
    '+v+"
    "}}else{let i=[],l=[];for(let e=0,t=r.length;e ',n+='
    '+v+"
    "}}E=' '+u.toString()+" Residues",E+="
    ",E+="
    ",i+=E,n+=E,"domain"==s&&(n+='')}}return{html:i,html2:n,html3:l,acc2domain:r,pssmid2name:d,pssmid2fromArray:c,pssmid2toArray:h}}getColorFromPos(e,t,s){let i,n=this.icn3d;n.icn3dui;let l=e+"_"+n.ParserUtilsCls.getResi(e,t),r=n.firstAtomObjCls.getFirstAtomObj(n.residues[l]),o=r&&void 0!==r.color&&"FFFFFF"!==r.color.getHexString()?r.color.getHexString():"DDDDDD";return i=r&&void 0!==r.color?o:"CCCCCC",i}showAnnoType(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui,a='
    ',d=a,c=a;if(0==n.length)return $("#"+r.pre+"dt_"+s+"_"+e).html(""),$("#"+r.pre+"ov_"+s+"_"+e).html(""),void $("#"+r.pre+"tt_"+s+"_"+e).html("");let h=i;i.length>17&&(i=i.substr(0,17)+"...");let p=[];for(let e=0,t=n.length;e'+i+"
    ",f=''+m.toString()+" Res";c+=g+f+"
    ";let C='';a+=g+f+C,d+=g+f+C;let b=s,y=0,v=0;r.seqStartLen&&r.seqStartLen[e]&&(d+=r.showSeqCls.insertMulGapOverview(e,r.seqStartLen[e])),r.seqStartLen&&r.seqStartLen[e]&&(a+=r.showSeqCls.insertMulGap(r.seqStartLen[e],"-"));for(let t=0,i=r.giSeq[e].length;t1&&(c=n[0]+"..");let h=i,p=e+"_"+i,m=n+i;if("ssbond"==s){m="Residue "+p+" has disulfide bond with";let t="";if(void 0!==l[p])for(let e=0,s=l[p].length;e'+c+"",d+=r.showSeqCls.insertGapOverview(e,t);let u=o.cfg.blast_rep_id==e?Math.round(r.seqAnnWidth*t/(r.maxAnnoLength+r.nTotalGap)-y-v):Math.round(r.seqAnnWidth*t/r.maxAnnoLength-y-v);u>=0&&(d+='
     
    ',d+='
     
    ',y+=u,v+=1)}else a+="-"}r.seqStartLen&&r.seqStartLen[e]&&(a+=r.showSeqCls.insertMulGap(r.seqEndLen[e],"-")),C=' '+m.toString()+" Residues",C+="",C+="
    ",a+=C,d+=C,a+="",d+="",c+="",$("#"+r.pre+"dt_"+s+"_"+e).html(a),$("#"+r.pre+"ov_"+s+"_"+e).html(d),$("#"+r.pre+"tt_"+s+"_"+e).html(c)}setToolTip(){let e=this.icn3d;e.icn3dui,$("[id^="+e.pre+"snp]").add("[id^="+e.pre+"clinvar]").add("[id^="+e.pre+"ssbond]").add("[id^="+e.pre+"crosslink]").tooltip({content:function(){return $(this).prop("title")},show:null,close:function(e,t){t.tooltip.hover((function(){$(this).stop(!0).fadeTo(400,1)}),(function(){$(this).fadeOut("400",(function(){$(this).remove()}))}))}})}}class _t{constructor(e){this.icn3d=e}showInteraction(e,t){this.icn3d.icn3dui,this.showInteraction_base(e,t)}showInteraction_base(e,t){let s=this.icn3d,i=s.icn3dui;i.bNode&&(s.resid2contact||(s.resid2contact={}),s.resid2contact[e]||(s.resid2contact[e]=[])),void 0===s.chainname2residues&&(s.chainname2residues={});let n=Object.keys(s.chains),l=e,r=Math.round(l.indexOf("_"));if(s.firstAtomObjCls.getFirstCalphaAtomObj(s.chains[l]),void 0===s.chainname2residues[l]){s.chainname2residues[l]={};let t=n.length;if(t>100&&void 0===i.cfg.mmdbid&&void 0===i.cfg.gi&&void 0===i.cfg.blast_rep_id&&void 0===i.cfg.align&&void 0===i.cfg.chainalign)return $("#"+s.pre+"dt_interaction_"+e).html(""),void $("#"+s.pre+"ov_interaction_"+e).html("");for(let e=0;e4)continue;let o,a=s.firstAtomObjCls.getFirstCalphaAtomObj(s.chains[t]);s.chemicals.hasOwnProperty(a.serial)?o="chemical":s.nucleotides.hasOwnProperty(a.serial)?o="nucleotide":s.ions.hasOwnProperty(a.serial)?o="ion":s.proteins.hasOwnProperty(a.serial)?o="protein":s.water.hasOwnProperty(a.serial)&&(o="water");let d=s.contactCls.getAtomsWithinAtom(i.hashUtilsCls.hash2Atoms(s.chains[l],s.atoms),i.hashUtilsCls.hash2Atoms(s.chains[t],s.atoms),4);if(0==Object.keys(d).length)continue;let c={};for(let e in d){let t=s.atoms[e];c[t.structure+"_"+t.chain+"_"+t.resi]=1}let h=t.substr(t.indexOf("_")+1)+"("+o+")";s.chainname2residues[l][h]=Object.keys(c)}}let o='
    ',a=o,d=o,c=0;for(let t in s.chainname2residues[e]){let n=s.chainname2residues[e][t];if(!n)continue;let l="Interact ."+t;l.length>17&&(l=l.substr(0,17)+"...");let r="Interact ."+t,h=[];for(let e=0,t=n.length;e'+l+"
    ",g=''+p.toString()+" Res";d+=u+g+"
    ";let f='';o+=u+g+f,a+=u+g+f;let C="inter"+c.toString(),b=0,y=0,v=1;s.seqStartLen&&s.seqStartLen[e]&&(a+=s.showSeqCls.insertMulGapOverview(e,s.seqStartLen[e])),s.seqStartLen&&s.seqStartLen[e]&&(o+=s.showSeqCls.insertMulGap(s.seqStartLen[e],"-"));for(let t=0,n=s.giSeq[e].length;t1&&(d=l[0]+"..");let c=n;if(o+=''+d+"",i.bNode){let t={};t[e+"_"+c]=r,s.resid2contact[e].push(t)}a+=s.showSeqCls.insertGapOverview(e,t);let h=i.cfg.blast_rep_id==e?Math.round(s.seqAnnWidth*t/(s.maxAnnoLength+s.nTotalGap)-b-y):Math.round(s.seqAnnWidth*t/s.maxAnnoLength-b-y);h>=0&&(a+='
     
    ',a+='
     
    ',b+=h,y+=v)}else o+="-"}s.seqStartLen&&s.seqStartLen[e]&&(o+=s.showSeqCls.insertMulGap(s.seqEndLen[e],"-")),f=' '+p.toString()+" Residues",f+="
    ",f+="
    ",o+=f,a+=f,++c}o+="",a+="",d+="",$("#"+s.pre+"dt_interaction_"+e).html(o),$("#"+s.pre+"ov_interaction_"+e).html(a),$("#"+s.pre+"tt_interaction_"+e).html(d),i.utilsCls.isMobile()?(s.hlSeqCls.selectSequenceMobile(),s.hlSeqCls.selectChainMobile()):s.hlSeqCls.selectSequenceNonMobile()}}class wt{constructor(e){this.icn3d=e}async showPTM(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui,o=this,a=e.substr(0,e.indexOf("_")),d=e.substr(e.indexOf("_")+1);if("afmem"==s){let t={Transmembrane:[{begin:i,end:n}]};this.setAnnoPtmTransmem("transmem",t,e)}else if(a.length>5){let t,i="https://www.ebi.ac.uk/proteins/api/features/"+a;try{t=await r.getAjaxPromise(i,"json"),o.parsePTM(t,e,s)}catch{return void o.getNoPTM(e,s)}}else{let t,i=a.substr(0,4).toLowerCase(),n="https://www.ebi.ac.uk/pdbe/api/mappings/uniprot/"+i;try{t=await r.getAjaxPromise(n,"json");let a="";l.UPResi2ResiPosPerChain||(l.UPResi2ResiPosPerChain={}),l.UPResi2ResiPosPerChain[e]={};let c=t[i].UniProt,h=!1;for(let t in c){let s=c[t].mappings;for(let i=0,n=s.length;i',o+=r,a+=r,s.substr(0,s.indexOf("_"));for(let d in t){let c=t[d],h=[],p=!1;for(let e=0,t=c.length;e5?h.push(e-1):i.UPResi2ResiPosPerChain&&i.UPResi2ResiPosPerChain[s][e]&&h.push(i.UPResi2ResiPosPerChain[s][e]),!p&&i.residues.hasOwnProperty(s+"_"+e)&&(p=!0)}if(0==h.length)continue;let m=h.length,u="ptm"==e?"PTM: "+d:"Transmembrane";u.length>17&&(u=u.substr(0,17)+"...");let g=d,f='
    '+u+"
    ",C=''+m.toString()+" Res",b='';a+=f+C+"
    ",r+=f+C+b,o+=f+C+b;let y=e+l.toString(),v=0,_=0,w=1;i.seqStartLen&&i.seqStartLen[s]&&(o+=i.showSeqCls.insertMulGapOverview(s,i.seqStartLen[s])),i.seqStartLen&&i.seqStartLen[s]&&(r+=i.showSeqCls.insertMulGap(i.seqStartLen[s],"-"));for(let e=0,t=i.giSeq[s].length;e1&&(l=t[0]+"..");let a=i.ParserUtilsCls.getResi(s,e);if(r+=''+t+"",n.bNode){let e={};e[s+"_"+a]=u,i.resid2ptm[s].push(e)}o+=i.showSeqCls.insertGapOverview(s,e);let d=n.cfg.blast_rep_id==s?Math.round(i.seqAnnWidth*e/(i.maxAnnoLength+i.nTotalGap)-v-_):Math.round(i.seqAnnWidth*e/i.maxAnnoLength-v-_);d>=0&&(o+='
     
    ',o+='
     
    ',v+=d,_+=w)}else r+="-";i.seqStartLen&&i.seqStartLen[s]&&(r+=i.showSeqCls.insertMulGap(i.seqEndLen[s],"-")),b=' '+m.toString()+" Residues",b+="
    ",b+="
    ",r+=b,o+=b,++l}r+="",o+="",a+="",$("#"+i.pre+"dt_"+e+"_"+s).html(r),$("#"+i.pre+"ov_"+e+"_"+s).html(o),$("#"+i.pre+"tt_"+e+"_"+s).html(a)}getNoPTM(e,t){let s=this.icn3d;s.icn3dui,console.log("No PTM data were found for the chain "+e+"...");let i="ptm"==t?"ptm":"transmem";$("#"+s.pre+"dt_"+i+"_"+e).html(""),$("#"+s.pre+"ov_"+i+"_"+e).html(""),$("#"+s.pre+"tt_"+i+"_"+e).html(""),s.showAnnoCls.enableHlSeq(),s.bAjaxPTM=!0}}class St{constructor(e){this.icn3d=e}async showIg(e,t){let s=this.icn3d;s.icn3dui,s.bRunRefnumAgain&&await s.refnumCls.showIgRefNum(t);let i="",n="",l="";if(s.bShowRefnum&&s.chainid2refpdbname.hasOwnProperty(e)&&s.chainid2refpdbname[e].length>0){let t=s.showSeqCls.getSeq(e),r=s.annoIgCls.showAllRefNum(t,e);i+=r.html,n+=r.html2,l+=r.html3}$("#"+s.pre+"dt_"+"ig_"+e).html(i),$("#"+s.pre+"ov_"+"ig_"+e).html(n),$("#"+s.pre+"tt_"+"ig_"+e).html(l)}showAllRefNum(e,t){let s=this.icn3d;s.icn3dui;let i="",n="",l="",r=!1;for(let i=0,n=e.length;i0){r=!0;break}}let o=!1;for(let i=0,n=e.length;i0){o=!0;break}}let a=this.showRefNum(e,t);i+=a.html,n+=a.html2,l+=a.html3;let d=1;return r&&(a=this.showRefNum(e,t,d),i+=a.html,n+=a.html2,l+=a.html3),d=2,o&&(a=this.showRefNum(e,t,d),i+=a.html,n+=a.html2,l+=a.html3),{html:i,html2:n,html3:l}}showRefNum(e,t,s,i){let n=this.icn3d;if(n.icn3dui,n.chainid2igtrack){if(!n.chainid2igtrack[t])return{html:"",html2:"",html3:""}}let l=this.getIgAnnoHtml(t,e,i,s);return n.bShowRefnum&&(n.opts.color="ig strand",n.setColorCls.setColorByOptions(n.opts,n.chains[t])),l}setChain2igArray(e,t,s){let i,n=this.icn3d;n.icn3dui;let l={};for(let r=0,o=t.length;r0&&s!=i+1&&(a.push(i),o.push(s)),i=s;a.push(s);let d={};d.domainid=t,d.startPosArray=o,d.endPosArray=a,n.chain2igArray[e].push(d)}}getIgAnnoHtml(e,t,s,i){let n=this.icn3d,l=n.icn3dui,r="",o="",a="";n.chain2igArray||(n.chain2igArray={});let d,c,h,p=!1,m="";n.chain2igArray[e]=[],this.setChain2igArray(e,t,s);let u=n.chain2igArray[e];for(let t=0,s=u.length;t=0;--t){let s=e+"_"+n.chainsSeq[e][t].resi;if(!n.residIgLoop.hasOwnProperty(s))break;delete n.resid2refnum[s],delete n.residIgLoop[s],delete n.resid2domainid[s]}}}n.chain2igArray[e]=[],this.setChain2igArray(e,t,s);let g="";for(let l=0,r=t.length;l'+h+"":' '}else g+="";else if(1==i||2==i)if(h){let e=parseInt(h).toString(),t='style="color:'+this.getRefnumColor(m,!0)+'"';g+=parseInt(e.substr(e.length-2,2))%2==0?"'+h+"":" '}else g+="";else" "!=m?(p=n.residIgLoop[t],g+=this.getRefnumHtml(t,h,c,d,m,p,o)):g+="";else g+=""}if(l.bNode)return{html:r,html2:o,html3:a};let f="icn3d-link icn3d-blue",C="IgStRAnD Ref. No.",b=n.chain2igArray[e].length,y=[],v=[],_={};n.igLabel2Pos||(n.igLabel2Pos={}),n.igLabel2Pos[e]={};for(let t=0;t",S='
    ';s&&(S='
    ');let A='
    '+C+"
    ";if(S+='
    ',s?(S+='
    Custom Ref. No.
    ',S+=''):1==i?(S+='
    Kabat Ref. No.
    ',S+=''):2==i?(S+='
    IMGT Ref. No.
    ',S+=''):(S+=A,S+=w),a+=S+"
    ",r+=S+'',n.seqStartLen&&n.seqStartLen[e]&&(r+=n.showSeqCls.insertMulGap(n.seqStartLen[e],"-")),r+=g,n.seqStartLen&&n.seqStartLen[e]&&(r+=n.showSeqCls.insertMulGap(n.seqEndLen[e],"-")),s||(r+=w),r+="",r+="
    ",r+="
    ",r+="
    ",u=n.chain2igArray[e],0==u.length)return{html:r,html2:o,html3:a};let x=[],k=[],O=[],R=[],I=e.substr(e.lastIndexOf("_")+1);for(let e=0,t=u.length;e',n.seqStartLen&&n.seqStartLen[e]&&(o+=n.showSeqCls.insertMulGapOverview(e,n.seqStartLen[e]));for(let i=0,l=y.length;i 
    ',o+='
    '+R[r]+"
    ",t=r}o+=w,o+="",a+="",S='
    ';let i=S,l=S,d=n.annoCddSiteCls.setDomainFeature(x,e,"ig",S,i,l,void 0,k,O);r+=d.html+"
    ",o+=d.html2+"",a+=d.html3+""}return{html:r,html2:o,html3:a}}getRefnumHtml(e,t,s,i,n,l,r){let o=this.icn3d,a=o.icn3dui,d=parseInt(t).toString(),c=(d-1e3*parseInt(d/1e3)).toString(),h=parseInt(d.toString().substr(0,2)),p="5"!=c.substr(0,1)&&"18"!=h,m=this.getRefnumColor(n,!0),u=l?'style="color:'+m+'"':'style="color:'+m+'; text-decoration: underline overline;"',g=d.substr(d.length-2,2),f=parseInt(g);parseInt(d.substr(d.length-3,3));let C="";return!i||50!=f||p||l?i&&f%2==0&&52!=f&&!r?(g=isNaN(t)?g+t.substr(t.length-1,1):g,C+="'+g+""):C+=" ':(o.hAtomsRefnum=a.hashUtilsCls.unionHash(o.hAtomsRefnum,o.residues[e]),C+="'+i.substr(0,1)+""+i.substr(1)+""),C}getRefnumColor(e,t){let s=this.icn3d.icn3dui,i=e?e.substr(0,1):"";return"C"==e?"#0000FF":"C'"==e?"#6495ED":"C''"==e?"#006400":"A"==i?"#9400D3":"B"==i?"#ba55d3":"D"==i?"#00FF00":"E"==i?"#FFD700":"F"==i?"#FF8C00":"G"==i?"#FF0000":s.htmlCls.GREYB}getProtodomainColor(e){let t=this.icn3d.icn3dui,s=e?e.substr(0,1):"";return"A"==s||"D"==s?"#0000FF":"B"==s||"E"==s?"#006400":"C"==e||"F"==s?"#FFD700":"C'"==e||"G"==s?"#FF8C00":"C''"==e?"#FF0000":t.htmlCls.GREYB}}class At{constructor(e){this.icn3d=e}showCrosslink(e,t){let s=this.icn3d;s.icn3dui;let i=this;void 0===s.clbondpnts?setTimeout((function(){i.showCrosslink_base(e,t)}),1e3):this.showCrosslink_base(e,t)}showCrosslink_base(e,t){let s=this.icn3d;s.icn3dui.bNode&&(s.resid2crosslink||(s.resid2crosslink={}),s.resid2crosslink[e]||(s.resid2crosslink[e]=[]));let i=t,n={},l=i.substr(0,i.indexOf("_")),r=s.clbondpnts[l];if(void 0===r)return $("#"+s.pre+"dt_crosslink_"+e).html(""),$("#"+s.pre+"ov_crosslink_"+e).html(""),void $("#"+s.pre+"tt_crosslink_"+e).html("");for(let e=0,t=r.length;e',a=o,d=o,c=e.indexOf("_"),h=e.substr(c+1);h.length>1&&"1"==h.substr(h.length-1)&&(h=h.substr(0,h.length-1)),n=e,i=t.domains[e]?t.domains[e].domains:[];for(let t=0,c=i.length;t17?c.substr(0,17)+"...":c,p=i[t].intervals,m=[],u=[],g={},f=0;for(let t=0,s=p.length;t'+h+" ",b=''+f.toString()+" Res";d+=C+b+"
    ";let y='';o+=C+b+y,a+=C+b+y;let v="domain3d"+t.toString();l.seqStartLen&&l.seqStartLen[e]&&(o+=l.showSeqCls.insertMulGap(l.seqStartLen[e],"-"));for(let t=0,s=l.giSeq[e].length;t1&&(n=i[0]+"..");let r=s;o+=''+i+""}else o+="-"}l.seqStartLen&&l.seqStartLen[e]&&(o+=l.showSeqCls.insertMulGap(l.seqEndLen[e],"-"));let _=l.firstAtomObjCls.getFirstCalphaAtomObj(l.chains[e]),w=void 0===_.color||"FFFFFF"===_.color.getHexString()?"DDDDDD":_.color.getHexString(),S=void 0!==_.color?w:"CCCCCC";if(l.seqStartLen&&l.seqStartLen[e]&&(a+=l.showSeqCls.insertMulGapOverview(e,l.seqStartLen[e])),r.cfg.blast_rep_id!=e)for(let s=0,i=m.length;s ',a+='"}else{let s=[],i=[];for(let e=0,t=m.length;e ',a+='"}}y=' '+f.toString()+" Residues",y+="",y+="
    ",o+=y,a+=y}if(s||(o+="",a+="",d+="",$("#"+l.pre+"dt_domain_"+e).html(o),$("#"+l.pre+"ov_domain_"+e).html(a),$("#"+l.pre+"tt_domain_"+e).html(d)),s&&l.chainid2clashedResidpair){l.clashedResidHash={};for(let e in l.chainid2clashedResidpair){let t=e.split("|"),s=l.chainid2clashedResidpair[e].split("|");parseInt(s[0])0){let s={};for(let i in e.clashedResidHash)s=t.hashUtilsCls.unionHash(s,e.residues[i]);e.bHideClashed?e.hAtoms=t.hashUtilsCls.exclHash(e.hAtoms,s):e.hAtoms=t.hashUtilsCls.unionHash(e.hAtoms,s),e.dAtoms=t.hashUtilsCls.cloneHash(e.hAtoms)}}getMoreResidues(e,t,s,i){let n=this.icn3d;n.icn3dui;let l={};for(let r=1;r<100;++r){let o=t+"_"+(e+s*r).toString(),a=n.firstAtomObjCls.getFirstAtomObj(n.residues[o]);if(a){let e=!1;if("not coil"==i?e="coil"!=a.ss:"ssbegin"==i?e=a.ssbegin:"ssend"==i&&(e=a.ssend),e)break;l[o]=1}}return l}}class kt{constructor(e){this.icn3d=e}async showSnp(e,t){this.icn3d.icn3dui,await this.showSnpClinvar(e,t,!0)}async showClinvar(e,t){this.icn3d.icn3dui,await this.showSnpClinvar(e,t,!1)}async showSnpClinvar(e,t,s){let i=this.icn3d.icn3dui,n=this,l=i.htmlCls.baseUrl+"vastdyn/vastdyn.cgi?chainid="+t;try{let r=await i.getAjaxPromise(l,"jsonp"),o=r.snpgi,a=r.gi;if(s)await n.showSnpPart2(e,t,o);else{let s=o;[6137708,1942289,224510717,2624886,253723219,2554905,75765331,3660278,312207882,319443632,342350956,1827805,109157826,1065265,40889086,6730307,163931185,494469,163931091,60594093,55669745,18655489,17942684,6980537,166235465,6435586,4139398,4389047,364506122,78101667,262118402,20664221,2624640,158430173,494395,28948777,34810587,13399647,3660342,261278854,342350965,384482350,378792570,15988303,213424334,4558333,2098365,10835631,3318817,374074330,332639529,122919696,4389286,319443573,2781341,67464020,194709238,210061039,364506106,28949044,40889076,161172338,17943181,4557976,62738484,365813173,6137343,350610552,17942703,576308,223674070,15826518,1310997,93279697,4139395,255311799,157837067,361132363,357380836,146387678,383280379,1127268,299856826,13786789,1311054,46015217,3402130,381353319,30750059,218766885,340707375,27065817,355333104,2624634,62738384,241913553,304446010].includes(a)&&(s=a),await n.showClinvarPart2(e,t,s)}}catch(t){return void(s?n.processNoSnp(e):n.processNoClinvar(e))}}navClinVar(e){let t=this.icn3d;t.icn3dui;let s=this;t.currClin[e]=-1,$(document).on("click","#"+t.pre+e+"_prevclin",(function(t){let i=s.icn3d;t.stopImmediatePropagation();let n=void 0!==i.resi2disease_nonempty[e]?Object.keys(i.resi2disease_nonempty[e]).length:0;--i.currClin[e],i.currClin[e]<0&&(i.currClin[e]=n-1),s.showClinVarLabelOn3D(e)})),$(document).on("click","#"+t.pre+e+"_nextclin",(function(t){let i=s.icn3d;t.stopImmediatePropagation();let n=void 0!==i.resi2disease_nonempty[e]?Object.keys(i.resi2disease_nonempty[e]).length:0;++i.currClin[e],i.currClin[e]>n-1&&(i.currClin[e]=0),s.showClinVarLabelOn3D(e)}))}showClinVarLabelOn3D(e){let t,s,i=this.icn3d,n=i.icn3dui,l=Object.keys(i.resi2disease_nonempty[e]);t=e,s=t+"_"+(parseInt(l[i.currClin[e]])+i.baseResi[e]).toString();let r="",o=i.resi2disease_nonempty[e][l[i.currClin[e]]];for(let e=0,t=o.length;e0?o[0]:"N/A");let a=i.applyCenterCls.centerAtoms(n.hashUtilsCls.hash2Atoms(i.residues[s],i.atoms));r.length>30&&(r=r.substr(0,30)+"..."),i.selectionCls.removeSelection(),null==i.labels&&(i.labels={}),i.labels.clinvar=[];let d=i.LABELSIZE,c="black"!=i.opts.background?i.colorWhitebkgd:i.colorBlackbkgd;i.analysisCls.addLabel(r,a.center.x+1,a.center.y+1,a.center.z+1,d,c,void 0,"clinvar"),i.hAtoms={};for(let e in i.residues[s])i.hAtoms[e]=1;$("#clinvar_"+i.pre+s).addClass("icn3d-highlightSeq"),void 0===$("#"+i.pre+"modeswitch")[0]||$("#"+i.pre+"modeswitch")[0].checked||i.definedSetsCls.setMode("selection"),i.drawCls.draw()}getSnpLine(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g){let f=this.icn3d,C=f.icn3dui,b="",y=m?"clinvar":"snp",v=!1;for(let e in i){for(let t=0,s=i[e].length;t(from human)",i=" (based on human sequences and mapped to this structure by sequence similarity)"),b+=m?'":'"}else if(2==e&&m){let e=C.utilsCls.isMobile()?"none":"button";b+='
    ',b+='
    '}else b+='
    ';let _=y,w=0,S=0,A={},x={},k=f.firstAtomObjCls.getResiduesFromAtoms(f.chains[h]);for(let t in k){let i=t.split("_")[2];if(void 0!==r[i]){++w;let t="";for(let n=0,r=s[i].length;n'+O+" Res":'',u)return b+"
    ";b+='';let R="",I=0,E=0;p?f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGapOverview(h,f.seqStartLen[h])):f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGap(f.seqStartLen[h],"-"));for(let t=1,a=f.giSeq[h].length;t<=a;++t){let a=f.ParserUtilsCls.getResi(h,t-1),d=a;if(p){if(void 0!==r[d]){let e=f.giSeq[h][t-1],i=e;e.length>1&&(i=e[0]+"..");let n=a+i+">";for(let e=0,t=s[d].length;e=0&&(b+='
     
    ',b+='
     
    ',I+=r,E+=1):r>0&&(b+='
     
    ',b+='
     
    ',I+=r,E+=1)}}else if(b+=f.showSeqCls.insertGap(h,t-1,"-"),void 0!==r[d])if(m||1!=e){let r=f.giSeq[h][t-1],c=r;r.length>1&&(c=r[0]+"..");let p,u="",y="
    ",v=s[d].length,w=0,S=0;if(2==e&&(w=0,S=v),m){p=1;let t=0;for(let e=w;e0?w+="; ":0!==e&&1!==e||(R='disease="'+b[t]+'"'),w+=b[t],""!=_[t]&&(w+="("+_[t]+")"),++S;t"+s[d][e],y+=": "+w,g&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(r,"snpin3d","3D with scap","SNP in 3D with scap",70,m)+"  ",y+=f.showAnnoCls.addSnpButton(r,"snpinter","Interactions","SNP Interactions in 3D",70,m)+"  ",y+=f.showAnnoCls.addSnpButton(r,"snppdb","PDB","Download SNP PDB",35,m)),y+="
    Links: ClinVar",0!=i[d][e]&&(y+=", dbSNP(rs"+i[d][e]+")"),e
    "),++t}t>p&&2==e&&(u+="..")}else{p=1;for(let e=w;e"+s[d][e],g)m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),0!=i[d][e]&&(y+="
    Link: dbSNP(rs"+i[d][e]+")"),e
    ");else{let s=l[d][e].split("; "),a=o[d][e].split("; "),c="",h=0;for(let t=0,i=s.length;t0?c+="; ":0!==e&&1!==e||(R='disease="'+s[t]+'"'),c+=s[t],""!=a[t]&&(c+="("+a[t]+")"),++h;""!=c?(y+=": "+c,m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),y+="
    Links: ClinVar, dbSNP(rs"+i[d][e]+")"):(m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),y+="
    Link: dbSNP(rs"+i[d][e]+")"),e
    ")}}v>p&&2==e&&(u+="..")}y+="
    ",b+=m?1==e?"":""==u||" "==u?"-":''+u+"":""==u||" "==u?"-":g?''+u+"":''+u+""}else b+="";else b+="-"}return p||f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGap(f.seqEndLen[h],"-")),b+=1==e?' '+O+" Residues":'',b+="
    ",b+="
    ",b}processSnpClinvar(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui,o='
    ',a=o,d=o,c='
    ',h=c,p=c,m=!i||n?e.data:e.split("\n"),u={},g={},f={};void 0===l.resi2disease_nonempty[t]&&(l.resi2disease_nonempty[t]={});let C={},b={},y={},v={},_={},w="";r.bNode&&(i?(l.resid2snp||(l.resid2snp={}),l.resid2snp[t]||(l.resid2snp[t]=[])):(l.resid2clinvar||(l.resid2clinvar={}),l.resid2clinvar[t]||(l.resid2clinvar[t]=[])));let S={};for(let e=0,s=m.length;e5&&(d=parseInt(s[5])):s.length>8&&(d=parseInt(s[8])),o==w)continue;w=o;let c=o.indexOf(">"),h=o.substr(0,c-1),p=Math.round(h),A=d?p:l.ParserUtilsCls.getResi(t,p-1),x=A+o.substr(c-1);if(S.hasOwnProperty(x))continue;S[x]=1;let k=o.substr(c-1,1),O=l.firstAtomObjCls.getFirstAtomObj(l.residues[t+"_"+A]),R=O?r.utilsCls.residueName2Abbr(O.resn.substr(0,3)):"";if(d||(R=l.chainsSeq[t][p-1].name),k!=R)continue;if(r.bNode){let e={};e[t+"_"+A]=x,i?l.resid2snp[t].push(e):l.resid2clinvar[t].push(e)}let I=x.substr(x.indexOf(">")+1),E=i?"":s[5],T=i?"":s[6],P=i?"":s[7];v[A]=1,""!=T&&(_[A]=1),g[A]=e+1,void 0===u[A]&&(u[A]=[]),u[A].push(I),void 0===b[A]&&(b[A]=[]),b[A].push(a),void 0===y[A]&&(y[A]=[]),y[A].push(E),void 0===f[A]&&(f[A]=[]),f[A].push(T),""!=T&&(void 0===l.resi2disease_nonempty[t][A]&&(l.resi2disease_nonempty[t][A]=[]),l.resi2disease_nonempty[t][A].push(T)),void 0===C[A]&&(C[A]=[]),C[A].push(P)}let A=Object.keys(v),x=Object.keys(_);if(i){let e=!1;o+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,void 0,i),o+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,void 0,i),d+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,!0,i),d+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,!0,i),a+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!0,e,void 0,i),o+="
    ",a+="
    ",d+="",$("#"+l.pre+"dt_snp_"+t).html(o),$("#"+l.pre+"ov_snp_"+t).html(a),$("#"+l.pre+"tt_snp_"+t).html(d)}else{let e=!0;c+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,void 0,i),c+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,void 0,i),p+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,!0,i),p+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,!0,i),h+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!0,e,void 0,i),c+="",h+="",p+="",$("#"+l.pre+"dt_clinvar_"+t).html(c),$("#"+l.pre+"ov_clinvar_"+t).html(h),$("#"+l.pre+"tt_clinvar_"+t).html(p),this.navClinVar(t,s)}l.showAnnoCls.enableHlSeq(),i?l.bAjaxSnp=!0:l.bAjaxClinvar=!0}async showClinvarPart2(e,t,s){let i=this.icn3d,n=i.icn3dui,l=this;i.chainid2uniport||await this.getUniprotForAllStructures();let r=n.htmlCls.baseUrl+"vastdyn/vastdyn.cgi?chainid_clinvar="+t+"&uniprot="+i.chainid2uniport[t];i.chainsGene[e]&&i.chainsGene[e].geneSymbol&&(r+="&gene="+i.chainsGene[e].geneSymbol);try{let s=await n.getAjaxPromise(r,"jsonp");if(s&&s.data&&s.data.length>0){let i=!1,n=s;l.processSnpClinvar(n,e,t,i)}else l.processNoClinvar(e)}catch(t){return void l.processNoClinvar(e)}}async getUniprotForAllStructures(){let e=this.icn3d,t=e.icn3dui;e.chainid2uniport={};for(let s in e.structures)if(s.length>5){let t=e.structures[s];for(let i=0,n=t.length;i0){let s=!0,n=!0;l.processSnpClinvar(i,e,t,s,n)}else l.processNoSnp(e)}catch(t){return void l.processNoSnp(e)}}else this.processNoSnp(e),console.log("No gi was found for the chain "+t+"...")}processNoClinvar(e){let t=this.icn3d;t.icn3dui,console.log("No ClinVar data were found for the protein "+e+"..."),$("#"+t.pre+"dt_clinvar_"+e).html(""),$("#"+t.pre+"ov_clinvar_"+e).html(""),t.showAnnoCls.enableHlSeq(),t.bAjaxClinvar=!0}processNoSnp(e){let t=this.icn3d;t.icn3dui,console.log("No SNP data were found for the protein "+e+"..."),$("#"+t.pre+"dt_snp_"+e).html(""),$("#"+t.pre+"ov_snp_"+e).html(""),t.showAnnoCls.enableHlSeq(),t.bAjaxSnp=!0}}class Ot{constructor(e){this.icn3d=e}showSsbond(e,t){let s=this.icn3d;s.icn3dui;let i=this;void 0===s.ssbondpnts?setTimeout((function(){i.showSsbond_base(e,t)}),1e3):this.showSsbond_base(e,t)}showSsbond_base(e,t){let s=this.icn3d;s.icn3dui.bNode&&(s.resid2ssbond||(s.resid2ssbond={}),s.resid2ssbond[e]||(s.resid2ssbond[e]=[]));let i=t,n={},l=i.substr(0,i.indexOf("_")),r=s.ssbondpnts[l];if(void 0===r)return $("#"+s.pre+"dt_ssbond_"+e).html(""),$("#"+s.pre+"ov_ssbond_"+e).html(""),void $("#"+s.pre+"tt_ssbond_"+e).html("");for(let e=0,t=r.length;e-s.halfBilayerSize){i[t.structure+"_"+t.chain+"_"+t.resi]=1}}let n=Object.keys(i);s.annoCddSiteCls.showAnnoType(e,t,"transmem","Transmembrane",n)}}class It{constructor(e){this.icn3d=e,this.init3ddomain()}init3ddomain(){this.icn3d.icn3dui,this.dcut=8,this.min_contacts=2,this.MAX_SSE=512,this.ctc_cnt=[];for(let e=0;e=this.curr_ratio+.01||f>this.split_ratio)return e;if(f>this.curr_ratio-.01&&Math.min(m,u)=0&&l[i]==t-e+i;i--);if(i<0)break;for(l[i]++,s=i+1;s-1;i++);for(l=Math.min(i-1,this.max_csz),this.curr_ne0=this.curr_ne1=0,this.curr_ratio=100,s=1;s<=l;s++)this.cut_size(s,i);if(this.top--,0==this.curr_ne0){for(n=this.stack[this.top],e=n;e-1;e++)this.parts[this.np++]=this.elements[e];this.parts[this.np++]=-1,this.n_doms++}else{if(this.save_ratios[this.saved++]=this.curr_ratio,this.curr_ne0>this.min_sse){for(n=this.stack[this.top],e=0;ethis.min_sse){for(n=this.stack[this.top],e=0;e0;)this.process_set()}output(e){let t,s;this.icn3d.icn3dui;let i=[];for(t=0;t<2*e;t++)i.push(0);for(t=s=0;st+n)break;let p=(t-a)*(t-a);p+=(s-c)*(s-c),p+=(i-h)*(i-h);let m=Math.sqrt(p);if(m>n)continue;let u={},g={};parseInt(e.rnum)this.MAX_SSE)return o=this.standardizeSubstruct(p,o,u),{subdomains:a,substruct:o};let f=h.length,C=f,b=this.c2b_AlphaContacts(f,i,n,l,t,r),y=[];for(let e=0;e=this.min_contacts&&(k[s]||(k[s]={}),k[i]||(k[i]={}),k[s][i]=1,k[i][s]=1)}let O=0,R={};this.groupnum2sheet={},this.visited={};for(let e in k)this.visited[e]=!1;for(let e in k)0==this.visited[e]&&(O++,this.countUtil(e,k,O));for(let e in this.groupnum2sheet){let t=this.groupnum2sheet[e].sort((function(e,t){return e-t}));for(let e=0,s=t.length;e0&&this.elt_size[s.sse-1]>=6&&0!=s.adj_strand2&&e++}for(let e=0;e0)for(let e=0;e0){let e=0;for(let t=0;t<=T;t++){let t=[];for(;e<2*g;){let s=this.parts[e++];if(0==s){P.push(t);break}t.push(s)}}}P.sort((function(e,t){return e[0]-t[0]}));let D=[];for(let e=0,t=P.length;e=this.min_sse&&D.push(P[e])}if(P=D,0==P.length){let e={},t={},s=0;for(let i=0,n=this.group_num.length;i=3&&(s=n)):e[n]=1)}if(0!=s){let e=[s].concat(t[s]);P.push(e)}}for(let e=0,t=P.length;e=o.length)return o=this.standardizeSubstruct(p,o,u),{subdomains:a,substruct:o};let n=o[i],l=n.From,r=n.To;for(let e=l;e<=r;e++)s[e]=1;if(0==i&&l>1)for(let e=1;e0){let e=o[i-1].To,t=parseInt(.5*(l-e-1));if(t>0)for(let e=l-t;e<=l-1;e++)s[e]=1}if(i0)for(let e=r+1;e<=r+t;e++)s[e]=1}}let i,n=!1,l=[];for(let e=0;ec&&(c=p),i.ssend&&(o.To=e+1,o.x2=i.coord.x,o.y2=i.coord.y,o.z2=i.coord.z,o.Sheet="sheet"==i.ss,r.push(o),o={}),i.ssbegin&&(o.From=e+1,o.x1=i.coord.x,o.y1=i.coord.y,o.z1=i.coord.z)}r=this.standardizeSubstruct(l,r,a);let h='{"data": [';h+='{"ss": [';let p=0;for(let e=0,s=r.length;e0&&(h+=", "),h+="["+s+","+i+","+n+","+r[e].x1.toFixed(2)+","+r[e].y1.toFixed(2)+",",h+=r[e].z1.toFixed(2)+","+r[e].x2.toFixed(2)+","+r[e].y2.toFixed(2)+","+r[e].z2.toFixed(2)+"]",++p)}h+="]",h+=', "domain": [';let m=0;for(let e=d;e<=c;++e){let n=l+"_"+e,r=t.ncbi2resid[n];r.split("_")[2];let o=e;if(m>0&&(h+=", "),i.hasOwnProperty(r)){let e=t.firstAtomObjCls.getFirstCalphaAtomObj(t.residues[r]);h+="["+o+","+(s.parasCls.resn2restype[e.resn]?s.parasCls.resn2restype[e.resn]:0)+","+e.coord.x.toFixed(2)+","+e.coord.y.toFixed(2)+","+e.coord.z.toFixed(2)+"]"}else h+="["+o+",0,0,0,0]";++m}return h+="]}",h+="]}",h}}class Et{constructor(e){this.icn3d=e}clickAddTrackButton(){let e=this.icn3d,t=e.icn3dui,s=this;t.myEventCls.onIds("#"+e.pre+"addtrack_button1","click",(async function(e){let i=s.icn3d;e.stopImmediatePropagation(),dialog.dialog("close");let n=$("#"+i.pre+"track_chainid").val(),l=$("#"+i.pre+"track_gi").val(),r=isNaN(l)?"Acc "+l:"gi "+l,o=t.htmlCls.baseUrl+"pwaln/pwaln.fcgi?from=track",a={targets:n,queries:l},d=await t.getAjaxPostPromise(o,a);s.alignSequenceToStructure(n,d,r)})),t.myEventCls.onIds("#"+e.pre+"addtrack_button2","click",(async function(e){let i=s.icn3d;e.stopImmediatePropagation(),dialog.dialog("close");let n=$("#"+i.pre+"track_chainid").val(),l=$("#"+i.pre+"track_fasta").val(),r=$("#"+i.pre+"fasta_title").val(),o=n.substr(0,n.indexOf("_")),a=n;if(5==o.length)a=a.substr(0,4);else if(o.length>5){a="";for(let e=0,t=i.chainsSeq[n].length;e8||d.length<6)&&(a=!1),d.length<9&&(o=!1),d[0];let c,h,p=d[1],m=d[2],u=d[3];d.length,d.length>5&&(c=d[5]),d.length,d.length,d.length>8&&(h=d[8]),d.length,d.length,d.length;let g=u,f="51,51,51";o?f=h:a&&("+"==c&&l.length>0?f=l[0]:"-"==c&&l.length>1?f=l[1]:"."==c&&l.length>2&&(f=l[2]));let C="",b=[];for(let e=0,t=m;e1&&(s=t[0]);let l=i.ParserUtilsCls.getResi(n,e);if(a.hasOwnProperty(n+"_"+l)){let e=i.firstAtomObjCls.getFirstCalphaAtomObj(i.residues[n+"_"+l]),t=void 0===e.color||"FFFFFF"===e.color.getHexString().toUpperCase()?"DDDDDD":e.color.getHexString(),o=void 0!==e.color?t:"CCCCCC";r+=s,d.push("#"+o)}else r+="-",d.push("")}s.showNewTrack(n,l,r,d,void 0,"selection",void 0),t.htmlCls.clickMenuCls.setLogCmd("add track | chainid "+n+" | title "+l+" | text "+s.simplifyText(r)+" | type selection",!0)}))}showNewTrack(e,t,s,i,n,l,r,o,a,d,c,h,p){let m=this.icn3d,u=m.icn3dui,g=!1;"cannot be aligned"==s&&(g=!0);let f=s.replace(/-/g,"").length;if(!o)if(s.length>m.giSeq[e].length)s=s.substr(0,m.giSeq[e].length);else if(s.length20&&(C=C.substr(0,20));let b=u.htmlCls.RESIDUE_WIDTH*s.length+200;$("#"+m.pre+"dt_custom_"+e).append("
    "),$("#"+m.pre+"dt_custom_"+e+"_"+C).width(b),$("#"+m.pre+"ov_custom_"+e).append("
    "),$("#"+m.pre+"ov_custom_"+e+"_"+C).width(b),$("#"+m.pre+"tt_custom_"+e).append("
    "),$("#"+m.pre+"tt_custom_"+e+"_"+C).width(b);let y='
    ',v=y,_=y,w=y,S=y,A=parseInt(10*Math.random()),x='",k='
    Exons
    ',O=''+f.toString()+" Pos";w+=x+O+"
    ",S+=k+O+"
    ";let R='';y+=x+O+R,v+=k+O+R,_+=x+O+R;let I=e.indexOf("_"),E="cst"+e.substr(I+1),T=0,P=0,D=(void 0===l||"seq"===l||"custom"===l)&&-1==s.indexOf("cannot-be-aligned")&&-1==s.indexOf("cannot be aligned"),M="identity"===l&&-1==s.indexOf("cannot-be-aligned")&&-1==s.indexOf("cannot be aligned"),F={},H=0;x="";let L={},N={},q={},U=0;if(h)for(let e=0,t=h.length;e"+d+"",h){let t='style="background-color:'+L[U]+'"';v+=' ";for(let t in m.residues[e+"_"+g]){let e=m.atoms[t];e.color=u.parasCls.thr(L[U]),m.atomPrevColors[t]=e.color}}x+=m.showSeqCls.insertGapOverview(e,t);let f=Math.round(m.seqAnnWidth*t/(m.maxAnnoLength+m.nTotalGap)-T-P);f<0&&(f=0),x+='
     
    ',s=void 0!==i&&""!=i[t]?i[t]:r?"rgb("+r+")":D?"#"+c:"#333",x+='
     
    ',T+=f,P+=1,++U}else g?y+=""+d+"":(y+="-",v+="")}if(void 0!==a){x="";let s=[],i=[],n=[];for(let e=0,t=a.length;e 
    ',h){let t,s,i=n[r];l=d[r]-a[r]+1;let o,c,p,m=g,u=g+l-1;g+=l;for(let e=0,i=h.length;e=i&&m<=n&&(t={exonIndex:e,rangeStart:i,rangeEnd:n,from:m,genomeRange:h[e].genomeRange}),u>=i&&u<=n&&(s={exonIndex:e,rangeStart:i,rangeEnd:n,to:u,genomeRange:h[e].genomeRange})}if(t&&s&&t.exonIndex==s.exonIndex)o=this.getExonColor(t.rangeStart,t.rangeEnd,m),c=this.getExonColor(t.rangeStart,t.rangeEnd,u),p=o+" 0%, #FFF 50%, "+c+" 100%",x+=this.getExonHtml(t.exonIndex,p,t.from,s.to,t.genomeRange,e,C,i);else if(t&&(o=this.getExonColor(t.rangeStart,t.rangeEnd,m),p=o+" 0%, #FFF 50%, #00F 100%",x+=this.getExonHtml(t.exonIndex,p,t.from,t.rangeEnd,t.genomeRange,e,C,i)),t&&s){for(let n=t.exonIndex+1;n'+t+""}}R=''+f.toString()+" Pos",R+="",R+="
    ",R+="",y+=R,_+=x+R,v+=R,w+="",S+="",h?($("#"+m.pre+"dt_custom_"+e+"_"+C).html(v+y),$("#"+m.pre+"ov_custom_"+e+"_"+C).html(_),$("#"+m.pre+"tt_custom_"+e+"_"+C).html(S+w)):($("#"+m.pre+"dt_custom_"+e+"_"+C).html(y),$("#"+m.pre+"ov_custom_"+e+"_"+C).html(_),$("#"+m.pre+"tt_custom_"+e+"_"+C).html(w))}getExonHtml(e,t,s,i,n,l,r,o){let a=this.icn3d;return a.icn3dui,''}getExonColor(e,t,s){this.icn3d.icn3dui;let i=.5*(e+t);if(s1e-200&&(h=parseFloat(h).toExponential()),n.scores.bit_score;let p=t.targets[l].seqdata,m=i.seqdata,u=n.segs;for(let e=0,t=u.length;e0&&(l=n+"H"+d.toString().padStart(2,"0")+")","coil"==t&&(s.selectionCls.selectResidueList(r,l,l,o,a),o||(o=!0)),r={})),n=e+"_H"+d.toString().padStart(2,"0"),r[p]=1,i.ssend&&(h=e+"_C(H"+d.toString().padStart(2,"0"),"helix"==t&&(s.selectionCls.selectResidueList(r,n,n,o,a),o||(o=!0)),r={})):"E"==m?(i.ssbegin&&(++c,Object.keys(r).length>0&&(l=n+"S"+c.toString().padStart(2,"0")+")","coil"==t&&(s.selectionCls.selectResidueList(r,l,l,o,a),o||(o=!0)),r={})),n=e+"_S"+c.toString().padStart(2,"0"),r[p]=1,i.ssend&&(h=e+"_C(S"+c.toString().padStart(2,"0"),"sheet"==t&&(s.selectionCls.selectResidueList(r,n,n,o,a),o||(o=!0)),r={})):(n=h+"-",r[p]=1)}}Object.keys(r).length>0&&(l=n+"Cterm)","coil"==t&&s.selectionCls.selectResidueList(r,l,l,o,a))}defineIgstrand(e,t){let s=this.icn3d,i=s.icn3dui;$("#"+s.pre+"dl_definedsets").hasClass("ui-dialog-content")&&$("#"+s.pre+"dl_definedsets").dialog("isOpen")||(i.htmlCls.dialogCls.openDlg("dl_definedsets","Select sets"),$("#"+s.pre+"atomsCustom").resizable());let n={},l=!1,r=!0;if(s.hAtoms={},"igdomain"==t){let t=s.chain2igArray[e];if(t&&t.length>0)for(let i=0,o=t.length;i1e3&&"50"==C.substr(C.length-2,2)&&(n[y]=1):(d=s.residIgLoop.hasOwnProperty(y)?"igloop":"igstrand",u&&d!=c&&Object.keys(n).length>0&&("igstrand"==c?(++h,i="Strand-"+a+"-"+e+"-"+h.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igstrand"==t&&(s.selectionCls.selectResidueList(n,i,i,l,r),l||(l=!0)),m=a):"igloop"==c&&(++p,i="Loop-"+m+"_"+o+"-"+e+"-"+p.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igloop"==t&&(s.selectionCls.selectResidueList(n,i,i,l,r),l||(l=!0))),n={}),n[y]=1,a=o,c=d,u=!0)))}"iganchor"==t?(i="Anchor-"+e,s.selectionCls.selectResidueList(n,i,i,l,r)):"igstrand"==c?(++h,i="Strand-"+a+"-"+e+"-"+h.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igstrand"==t&&s.selectionCls.selectResidueList(n,i,i,l,r)):"igloop"==c&&(++p,o="CT",i="Loop-"+m+"_"+o+"-"+e+"-"+p.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igloop"==t&&s.selectionCls.selectResidueList(n,i,i,l,r))}}simplifyText(e){this.icn3d.icn3dui;let t,s,i="",n=!1,l=-1;for(t=0,s=(e=e.replace(/undefined/g," ")).length;t20)return!1;if(void 0!==o.giSeq&&void 0!==o.giSeq[e]){let r=this.getFullText(s);return s=r.text,this.showNewTrack(e,t,s,void 0,void 0,i,n,l),!1}setTimeout((function(){a.checkGiSeq(e,t,s,i,n,l,r+1)}),100)}getFullText(e){this.icn3d.icn3dui;let t="",s=[],i=[],n=e.split(","),l=-1;for(let e=0,r=n.length;ep?t+=c.substr(0,p):t+=c;for(let e=0;ed&&(d=t.length,c=h),++h}o=n.htmlCls.baseUrl+"pwaln/pwaln.fcgi?from=msa";let p=e.split(","),m={};m[t]=0;for(let e=0,t=p.length;e0&&(g+=","+p.join(","));let f={targets:u,queries:g},C=await n.getAjaxPostPromise(o,f);if(!C.data)return void console.log("The protein accessions "+u+","+g+" can not be aligned...");let b=[];i.qt_start_end={};let y=[],v=[],_=Object.keys(C.targets)[0],w=C.targets[_].seqdata;p.splice(0,0,t);for(let e=0,s=p.length;eA&&(A=e)}let x=S,k=w.length-(A+1),O=[],R=[];for(let e=0,t=p.length;ea&&(a=t.length,d=c),++c}s.qt_start_end={};let m="genomeRes",u={};for(let e=0,i=h.length;ef&&(f=e)}for(let e=0,t=h.length;e0&&(d=h,o.targetGapHash[a+o.startposGiSeq]={from:a+o.startposGiSeq,to:d+m-1+o.startposGiSeq}),c=t[s],h=p,"-"!=t[s]?(++p,f=s,o.seqEndLen[e]=C-1-f,u||(g=s,o.seqStartLen[e]=g,u=!0)):++m;o.maxAnnoLength0&&(b+=" "),b+=e+"_"+o.targetGapHash[e].from+"_"+o.targetGapHash[e].to,++y;let v={};for(let a=0,d=i.length;a=o.seqStartLen[e]&&("-"==t[s]&&b--,"-"==h&&b++),c+=h,"-"!=t[s]&&(t[s]==i[a][s]&&++v[d],++d),p=h;"-"!=p&&u.push(C-1);let _=s[a].length<20?s[a]:s[a].substr(0,20)+"...",w=!0,S=r?r[s[a]]:void 0;this.showNewTrack(e,_,c,void 0,void 0,l,void 0,w,m,u,f,S,y)}o.opts.color="exon",o.legendTableCls.showColorLegend(o.opts.color),o.hlUpdateCls.updateHlAll(),o.drawCls.draw()}processAccList(e){this.icn3d.icn3dui;let t=e.split(","),s={},i="";for(let e=0,n=t.length;e5?(l.uniprot2acc&&l.uniprot2acc[y]&&(y=l.uniprot2acc[y]),f=y):f=e,y.length>5){let e="";for(let t=0,s=l.chainsSeq.length;t"),d=a[1].indexOf("\n");n=a[1].substr(d+1).replace(/\n/g,"");for(let e=2,t=a.length;e0&&($("#"+e.pre+"anno_cdd")[0].checked?(this.setAnnoTabCdd(),t.htmlCls.clickMenuCls.setLogCmd("set annotation cdd",!0)):(this.hideAnnoTabCdd(),t.htmlCls.clickMenuCls.setLogCmd("hide annotation cdd",!0)))}showAnnoSelectedChains(){let e=this.icn3d,t=e.icn3dui,s={};for(let t in e.hAtoms){let i=e.atoms[t];s[i.structure+"_"+i.chain]=1}$("#"+e.pre+"dl_annotations > .icn3d-annotation").hide();for(let i in s){$("#"+e.pre+"anno_"+i).length&&$("#"+e.pre+"anno_"+i).show();let s=e.firstAtomObjCls.getFirstCalphaAtomObj(e.chains[i]);if(s&&void 0!==s.resn){let i=t.utilsCls.residueName2Abbr(s.resn.substr(0,3));$("#"+e.pre+"anno_"+i).show()}}}showAnnoAllChains(){let e=this.icn3d;e.icn3dui,$("#"+e.pre+"dl_annotations > .icn3d-annotation").show()}setAnnoView(e){let t=this.icn3d;t.icn3dui.bNode||("detailed view"===e?(t.view="detailed view",$("#"+t.pre+"dl_anno_view_tabs").tabs("option","active",1)):(t.view="overview",$("#"+t.pre+"dl_anno_view_tabs").tabs("option","active",0)))}setAnnoDisplay(e,t){let s=this.icn3d;s.icn3dui;let i=["giseq","custom","site","ptm","snp","clinvar","cdd","domain","interaction","ssbond","crosslink","transmem","ig"];for(let n in i){let l=i[n];$("[id^="+s.pre+t+"_"+l+"]").attr("style",e)}}showFixedTitle(){this.icn3d.icn3dui;this.setAnnoDisplay("display:block;","tt")}hideFixedTitle(){this.icn3d.icn3dui;this.setAnnoDisplay("display:none!important;","tt")}setAnnoViewAndDisplay(e){let t=this.icn3d;if(t.icn3dui,"detailed view"===e){this.setAnnoView("detailed view");let e="display:block;";this.setAnnoDisplay(e,"dt"),$("#"+t.pre+"seqguide_wrapper").attr("style",e),e="display:none;",this.setAnnoDisplay(e,"ov")}else{this.setAnnoView("overview"),this.hideFixedTitle();let e="display:none;";this.setAnnoDisplay(e,"dt"),$("#"+t.pre+"seqguide_wrapper").attr("style",e),e="display:block;",this.setAnnoDisplay(e,"ov")}}async updateClinvar(){let e=this.icn3d;if(e.icn3dui,void 0===e.bClinvarShown||!e.bClinvarShown)for(let t in e.protein_chainid){let s=e.protein_chainid[t];await e.annoSnpClinVarCls.showClinvar(t,s)}e.bClinvarShown=!0}async updateSnp(){let e=this.icn3d;if(e.icn3dui,void 0===e.bSnpShown||!e.bSnpShown)for(let t in e.protein_chainid){let s=e.protein_chainid[t];await e.annoSnpClinVarCls.showSnp(t,s)}e.bSnpShown=!0}updateDomain(){let e=this.icn3d;e.icn3dui,void 0!==e.bDomainShown&&e.bDomainShown||e.annoDomainCls.showDomainAll(),e.bDomainShown=!0}updateInteraction(){let e=this.icn3d;if(e.icn3dui,void 0===e.bInteractionShown||!e.bInteractionShown)for(let t in e.interactChainbase){let s=e.interactChainbase[t];e.annoContactCls.showInteraction(t,s)}e.bInteractionShown=!0}async updatePTM(){let e=this.icn3d;if(e.icn3dui,void 0===e.bPTMShown||!e.bPTMShown)for(let t in e.PTMChainbase){let s=e.PTMChainbase[t];await e.annoPTMCls.showPTM(t,s,"ptm")}e.bPTMShown=!0}updateSsbond(){let e=this.icn3d;if(e.icn3dui,void 0===e.bSSbondShown||!e.bSSbondShown)for(let t in e.ssbondChainbase){let s=e.ssbondChainbase[t];e.annoSsbondCls.showSsbond(t,s)}e.bSSbondShown=!0}updateCrosslink(){let e=this.icn3d;if(e.icn3dui,void 0===e.bCrosslinkShown||!e.bCrosslinkShown)for(let t in e.crosslinkChainbase){let s=e.crosslinkChainbase[t];e.annoCrossLinkCls.showCrosslink(t,s)}e.bCrosslinkShown=!0}async updateTransmem(){let e=this.icn3d,t=e.icn3dui;if(void 0===e.bTranememShown||!e.bTranememShown)for(let s in e.protein_chainid){let i=e.protein_chainid[s];if(void 0!==t.cfg.opmid)e.annoTransMemCls.showTransmem(s,i);else if(e.bAfMem&&e.afmem_start_end){let t=e.afmem_start_end[0],n=e.afmem_start_end[1];await e.annoPTMCls.showPTM(s,i,"afmem",t,n)}else await e.annoPTMCls.showPTM(s,i,"transmem")}e.bTranememShown=!0}async updateIg(e,t){let s=this.icn3d,i=s.icn3dui;if(s.opts.color="ig strand",!e){s.hAtoms={};for(let e in s.protein_chainid)s.hAtoms=i.hashUtilsCls.unionHash(s.hAtoms,s.chains[e])}let n=s.firstAtomObjCls.getResiduesFromAtoms(s.hAtoms);for(let e in n)s.resid2refnum&&delete s.resid2refnum[e],s.residIgLoop&&delete s.residIgLoop[e],s.resid2domainid&&delete s.resid2domainid[e];s.bRunRefnumAgain=!0;let l=e?s.firstAtomObjCls.getChainsFromAtoms(s.hAtoms):s.protein_chainid;for(let e in l)await s.annoIgCls.showIg(e,t),s.bRunRefnumAgain=!1;s.bShowRefnum&&(s.hlUpdateCls.updateHlAll(),s.drawCls.draw())}}class Pt{constructor(e){this.icn3d=e}showAnnotations_part1(e){let t=this.icn3d,s=t.icn3dui;if(s.htmlCls.dialogCls.openDlg("dl_selectannotations","Sequences and Annotations"),(void 0===t.bAssemblyNote||!t.bAssemblyNote)&&void 0!==t.asuCnt){let e="
    Assembly Tips: Only the asymmetric unit is shown in the sequence window.
    Click \"Assembly\" in the menu \"View\" to switch between asymmetric unit and biological assembly("+t.asuCnt+" asymmetric unit).
    ";$("#"+t.pre+"dl_annotations_tabs").append(e),t.bAssemblyNote=!0}t.bResetAnno&&(t.giSeq={},t.currClin={},t.resi2disease_nonempty={},t.baseResi={},t.matchedPos={},$("#"+s.pre+"dl_annotations").empty(),t.annotationCls.setAnnoView("overview"));let i={},n={},l={};if(void 0===t.bAnnoShown||!t.bAnnoShown||t.bResetAnno){t.protein_chainid={};let r,o=Object.keys(t.chains);if(e){let s=t.resid2specCls.atoms2structureArray(e);o=[];for(let e=0,i=s.length;e1&&"1"==d.substr(d.length-1)?(d=d.substr(0,d.length-1),a=o[e].substr(0,o[e].indexOf("_"))+"_"+d):a=o[e],t.proteins.hasOwnProperty(r.serial)&&t.chainsSeq[o[e]].length>1)t.protein_chainid[o[e]]=a;else if(t.nucleotides.hasOwnProperty(r.serial)&&t.chainsSeq[o[e]].length>1)i[o[e]]=a;else if(t.chainsSeq[o[e]].length>1)n[o[e]]=a;else{let s=t.chainsSeq[o[e]][0].name,i=o[e]+"_"+t.chainsSeq[o[e]][0].resi;void 0===l[s]&&(l[s]=[]),l[s].push(i)}if((void 0!==s.cfg.pdbid||void 0!==s.cfg.opmid||void 0!==s.cfg.mmcifid||void 0!==s.cfg.mmtfid)&&(t.proteins.hasOwnProperty(r.serial)||t.nucleotides.hasOwnProperty(r.serial)))for(let s=0,i=t.chainsSeq[o[e]].length;st.maxAnnoLengthOri&&(t.protein_chainid.hasOwnProperty(e)||i.hasOwnProperty(e))&&(t.maxAnnoLengthOri=t.chainsSeq[e].length);t.maxAnnoLength=t.maxAnnoLengthOri}return{nucleotide_chainid:i,chemical_chainid:n,chemical_set:l}}async showAnnotations(e){let t=this.icn3d,s=t.icn3dui,i=this,n=this.showAnnotations_part1(e),l=n.nucleotide_chainid,r=n.chemical_chainid,o=n.chemical_set;if(!t.bAnnoShown||t.bResetAnno)if(t.bAnnoShown=!0,void 0===s.cfg.blast_rep_id){if(t.bFullUi){if(void 0!==s.cfg.mmtfid){let e=Object.keys(t.structures)[0];await t.mmcifParserCls.downloadMmcifSymmetry(e,"mmtfid")}await this.showAnnoSeqData(l,r,o)}}else if(void 0===s.cfg.blast_rep_id||t.bSmithwm||t.bLocalSmithwm){if(void 0!==s.cfg.blast_rep_id&&(t.bSmithwm||t.bLocalSmithwm)){let e,n,a=[s.cfg.blast_rep_id];if(-1!=s.cfg.query_id.indexOf(">")?n=s.cfg.query_id.substr(s.cfg.query_id.indexOf("\n")+1):!/\d/.test(s.cfg.query_id)||s.cfg.query_id.length>50?n=s.cfg.query_id:a.push(s.cfg.query_id),t.blastAcxn){let i=s.cfg.afid+"_A",n="";for(let e=0,s=t.chainsSeq[i].length;e5){let n;e.uniprot2acc&&e.uniprot2acc[i]?e.uniprot2acc[i]:e.uniprot2acc={},n="https://rest.uniprot.org/uniprotkb/search?format=json&fields=xref_geneid,gene_names&query="+i;let l=await t.getAjaxPromise(n,"json"),r=l.results[0]&&l.results[0].uniProtKBCrossReferences&&l.results[0].uniProtKBCrossReferences[0]?l.results[0].uniProtKBCrossReferences[0].id:void 0,o=l.results[0]&&l.results[0].genes&&l.results[0].genes[0]&&l.results[0].genes[0].geneName?l.results[0].genes[0].geneName.value:"ID "+r;e.chainsGene[s]={geneId:r,geneSymbol:o}}}for(let s in e.protein_chainid){let i=t.utilsCls.isMobile()?"none":"button",l=e.showSeqCls.getProteinName(s),r=l,o=0==n?"Proteins:

    ":"",a=e.chainsGene[s]&&e.chainsGene[s].geneId&&e.chainsGene[s].geneDesc?"(Gene: "+e.chainsGene[s].geneSymbol+")":"",d=s.substr(0,s.indexOf("_")),c=d.length>5?''+s+"":s,h="
    "+o+"Annotations of "+c+": "+r+""+a+"   "+this.addButton(s,"icn3d-addtrack","Add Track","Add a custom track",60,i)+"   ";h+=this.addButton(s,"icn3d-customcolor","Custom Color/Tube","Use a custom file to define the colors or tubes in 3D structure",110,i)+"   ",h+=this.addButton(s,"icn3d-helixsets","Helix Sets",'Define sets for each helix in this chain and add them to the menu of "Defined Sets"',60,i)+" "+this.addButton(s,"icn3d-sheetsets","Sheet Sets",'Define sets for each sheet in this chain and add them to the menu of "Defined Sets"',60,i)+" "+this.addButton(s,"icn3d-coilsets","Coil Sets",'Define sets for each coil in this chain and add them to the menu of "Defined Sets"',60,i),h+="   "+this.addButton(s,"icn3d-iganchorsets","Ig Anchor Set",'Define the set for all Ig anchors in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igstrandsets","Ig Strand Sets",'Define sets for each Ig strand in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igloopsets","Ig Loop Sets",'Define sets for each Ig loop in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igdomainsets","Ig Domain Sets",'Define sets for each Ig domain in this chain and add them to the menu of "Defined Sets"',80,i),$("#"+e.pre+"dl_annotations").append(h);let p=["giseq","cdd","clinvar","snp","site","ptm","ssbond","crosslink","transmem","domain","custom","interaction","ig"];for(let t in p){let i=p[t];$("#"+e.pre+"anno_"+s).append(this.getAnDiv(s,i))}$("#"+e.pre+"anno_"+s).append("


    "),++n}if(t.bNode||e.annoCddSiteCls.setToolTip(),void 0!==e.chainid_seq)await this.processSeqData(e.chainid_seq);else try{let n=[],l=[];for(let e=0,t=i.length;e=6?l.push(i[e]):n.push(i[e])}if(n.length>0){let s=t.htmlCls.baseUrl+"/vastdyn/vastdyn.cgi?chainlist="+n;e.chainid_seq=await t.getAjaxPromise(s,"jsonp")}else e.chainid_seq={};for(let t=0,s=l.length;t40&&(r=r.substr(0,40)+"...");let o="";0==i&&("protein"==s?o="Proteins:

    ":"nucleotide"==s?o="Nucleotides:

    ":"chemical"==s&&(o="Chemicals/Ions/Water:

    ")),$("#"+n.pre+"dl_annotations").append("
    "+o+""+e+": "+r+"
    "),$("#"+n.pre+"anno_"+e).append(this.getAnDiv(e,"giseq")),$("#"+n.pre+"anno_"+e).append(this.getAnDiv(e,"interaction")),$("#"+n.pre+"anno_"+e).append("


    "),n.giSeq[e]=[];for(let t=0;tChemicals/Ions/Water:

    ":"",o=t[0].lastIndexOf("_"),a=t[0].substr(0,o),d=void 0!==l.cfg.mmdbid&&void 0!==n.chainid2sid?n.chainid2sid[a]:void 0;i=void 0!==d?""+e+" ":""+e+"",$("#"+n.pre+"dl_annotations").append("
    "+r+i+"
    "),$("#"+n.pre+"anno_"+e).append("
    "),$("#"+n.pre+"anno_"+e).append("


    ");let c='
    ';c+='",c+='Count: '+t.length+"",c+='';let h=c,p=c;for(let s=0,i=t.length;s3&&(l=i.substr(0,3)),s'+l+""}let m=l.htmlCls.GREY8,u=Math.round(n.seqAnnWidth*t.length/n.maxAnnoLength);u<1&&(u=1),p+='
     
    ',c="",c+="
    ",c+="
    ",h+=c,p+=c,$("#"+n.pre+"dt_giseq_"+e).html(h),$("#"+n.pre+"ov_giseq_"+e).html(p)}async processSeqData(e){let t=this.icn3d,s=t.icn3dui;t.bAnnoShown=!0;for(let i in t.protein_chainid){let n=t.protein_chainid[i];if(e.hasOwnProperty(n)){let s=e[n];t.giSeq[i]=s;let l="";for(let e=0;e<10&&e14?"Query: "+o.substr(0,6)+"...":isNaN(s.cfg.query_id)?"Query: "+o:"Query: gi "+o;let a="cannot be aligned";t.queryStart="",t.queryEnd="",t.bRender&&alert("The sequence can NOT be aligned to the structure"),t.showSeqCls.showSeq(i,n,void 0,e,l,a,r)}else if(s.cfg.blast_rep_id==i&&(void 0!==t.seqStructAlignData||void 0!==t.seqStructAlignDataSmithwm)){let e,l,r,o,a,d=s.cfg.oriQuery_id?s.cfg.oriQuery_id:s.cfg.query_id;if(e=d.length>14?"Query: "+d.substr(0,6)+"...":isNaN(s.cfg.query_id)?"Query: "+d:"Query: gi "+d,void 0!==t.seqStructAlignData){let e,s,i=t.seqStructAlignData;if(void 0!==i.data){e=i.data[0].query;let t=Object.keys(i.data[0].targets);s=i.data[0].targets[t[0]],s=void 0!==s&&s.hsps.length>0?s.hsps[0]:void 0}if(void 0!==e&&void 0!==s){l=s.scores.e_value.toPrecision(2),l>1e-200&&(l=parseFloat(l).toExponential()),s.scores.bit_score;let t=Object.keys(i.targets);r=i.targets[t[0]].seqdata,o=e.seqdata,a=s.segs}}else{let e=t.seqStructAlignDataSmithwm;l=e.score,r=e.target.replace(/-/g,""),o=e.query.replace(/-/g,""),a=[];let s=-1,i=-1,n=!1,d={};for(let t=0,l=e.target.length;t0)if(i.orifrom-ni.from-l)for(let t=n+1;t
    "+i+"
    "}addButton(e,t,s,i,n,l){return this.icn3d.icn3dui,"
    "}addSnpButton(e,t,s,i,n,l){let r=this.icn3d;return r.icn3dui,"
    "}conservativeReplacement(e,t){let s=this.icn3d.icn3dui,i=-1!==s.parasCls.b62ResArray.indexOf(e)?s.parasCls.b62ResArray.indexOf(e):s.parasCls.b62ResArray.length-1,n=-1!==s.parasCls.b62ResArray.indexOf(t)?s.parasCls.b62ResArray.indexOf(t):s.parasCls.b62ResArray.length-1;return s.parasCls.b62Matrix[i][n]>0}getColorhexFromBlosum62(e,t){let s=this.icn3d.icn3dui,i="333333";if(!e||!t)return i;e=e.toUpperCase(),t=t.toUpperCase();let n=-1!==s.parasCls.b62ResArray.indexOf(e)?s.parasCls.b62ResArray.indexOf(e):s.parasCls.b62ResArray.length-1,l=-1!==s.parasCls.b62ResArray.indexOf(t)?s.parasCls.b62ResArray.indexOf(t):s.parasCls.b62ResArray.length-1,r=s.parasCls.b62Matrix[n][l];if(void 0===r)return"333333";if(r>0){let e=221-parseInt(r/11*221),t=e<10?"0"+e.toString(16):e.toString(16);i="DD"+t+t}else{let e=221-parseInt(-1*r/4*221),t=e<10?"0"+e.toString(16):e.toString(16);i=t+t+"DD"}return i}}class Dt{constructor(e){this.icn3d=e}getSeq(e){let t,s=this.icn3d,i=s.icn3dui;if(void 0===i.cfg.mmdbid&&void 0===i.cfg.gi&&void 0===i.cfg.blast_rep_id&&void 0===i.cfg.align&&void 0===i.cfg.chainalign&&void 0===i.cfg.mmdbafid){t=[];for(let i=0;i10){m='
    ';let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]);void 0===a.cfg.mmdbid&&void 0===a.cfg.gi&&void 0===a.cfg.blast_rep_id&&void 0===a.cfg.align&&void 0===a.cfg.chainalign&&void 0===a.cfg.mmdbafid||void 0===t.resi_ori||t.resi_ori==t.resi||-1!=e.indexOf("Misc")?m+='
    ':m+='
    NCBI Residue Numbers
    ',m+='',f+=m+"
    ",u+=m+'';let s=0,i=0,n="";o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e]," "));for(let t=0,l=d.length;t",l%10==0&&(u+=l);let r=e+"_"+l,a=l%10!=0&&l%10!=1&&l%10!=9;if(o.residues.hasOwnProperty(r)){let e=o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[r]);"H"==o.secondaries[r]&&e.ssbegin?(++s,n='H'+s+"",a&&(u+=n,n="")):"E"==o.secondaries[r]&&e.ssbegin?(++i,"green"==o.sheetcolor?n='S'+i+"":"yellow"==o.sheetcolor&&(n='S'+i+""),a&&(u+=n,n="")):e.ssend&&(n=""),""!=n&&a&&(u+=n,n="")}u+=""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e]," ")),u+='',u+="",u+="
    ",u+="
    ",f+=""}m='
    ',m+='
    ',m+='',f+=m+"
    ",u+=m+'',o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t':'',u+=" ";else if("E"==o.secondaries[s]){o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[s]).ssend?"green"==o.sheetcolor?u+='':"yellow"==o.sheetcolor&&(u+=''):"green"==o.sheetcolor?u+='':"yellow"==o.sheetcolor&&(u+=''),u+=" "}else"c"==o.secondaries[s]?u+=' ':"o"==o.secondaries[s]&&(u+=' ');else u+="-"}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),u+='',u+="",u+="
    ",u+="
    ",u+="",f+="",m=a.cfg.blast_rep_id===e?'
    ':'
    ';let C="Protein",b="Protein";void 0!==s&&("nucleotide"==s?(C="Nucl.",b="Nucleotide"):"chemical"==s&&(C="Chem.",b="Chemical")),m+='",m+=''+(o.baseResi[e]+1).toString()+"",f+=m+"
    ";let y='';u+=m+y,g+=m+y;let v,_=0;o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t1&&(i=s[0]+".."),v=o.ParserUtilsCls.getResi(e,t),o.residues.hasOwnProperty(e+"_"+v)){let n="333333";if(a.cfg.blast_rep_id==e&&void 0!==o.fullpos2ConsTargetpos&&void 0!==o.fullpos2ConsTargetpos[t+_])n=o.fullpos2ConsTargetpos[t+_].color;else{let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[e+"_"+v]),s=void 0===t.color||"FFFFFF"===t.color.getHexString().toUpperCase()||"FFF"===t.color.getHexString().toUpperCase()?"DDDDDD":t.color.getHexString();n=void 0!==t.color?s:"CCCCCC"}u+=''+i+""}else i=i.toLowerCase(),u+=''+i+""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),a.cfg.blast_rep_id==e&&(o.opts.color=o.blastAcxn?"confidence":"conservation",o.setColorCls.setColorByOptions(o.opts,o.atoms));let w=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]),S=w.color?w.color.getHexString():"CCCCCC",A=Math.round(o.seqAnnWidth*d.length/(o.maxAnnoLength+o.nTotalGap));if(A<1&&(A=1),o.seqStartLen&&o.seqStartLen[e]&&(g+=this.insertMulGapOverview(e,o.seqStartLen[e])),a.cfg.blast_rep_id!=e)g+='";else{let t=[],s=[];t.push(0);for(let e=0,i=d.length;e';for(let i=0,n=t.length;i'+e+"
    ";g+="
    "}if(m=''+v+"",m+="",m+="
    ",u+=m,g+=m,a.cfg.blast_rep_id==e){if(void 0!==r&&""!==r){m='",m+='',f+=m+"
    ";let t='';u+=m+t,g+=m+t;let s=0,i=0,l=1;o.queryStart;for(let t=0,n=r.length;t-";else if(" "==n)u+=" ";else{let r=o.fullpos2ConsTargetpos[t].pos;if(o.residues.hasOwnProperty(e+"_"+r)){let s=o.fullpos2ConsTargetpos[t].color;u+=''+n+""}else n=n.toLowerCase(),u+=''+n+"";g+=this.insertGapOverview(e,t);let a=Math.round(o.seqAnnWidth*t/(o.maxAnnoLength+o.nTotalGap)-s-i);a>=0&&(g+='
     
    ',g+='
     
    ',s+=a,i+=l)}}m='',m+="",m+="
    ",u+=m,g+=m}m='
    '+i+"
    ",m+=''+o.queryStart+"",f+=m+"
    ";let t='';u+=m+t,g+=m+t;let s=o.queryStart;for(let t=0,i=l.length;t-":(void 0===o.fullpos2ConsTargetpos||void 0===o.fullpos2ConsTargetpos[t]||o.residues.hasOwnProperty(e+"_"+o.fullpos2ConsTargetpos[t].pos)||(i=i.toLowerCase()),u+=''+i+"",++s)}let a=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]),d=void 0===a.color||"FFFFFF"===a.color.getHexString()?"DDDDDD":a.color.getHexString(),c=void 0!==a.color?d:"CCCCCC",h=[],p=[],C="-";for(let e=0,t=l.length;e ',g+='
    '+i+"
    "}m=''+o.queryEnd+"",m+="",m+="
    ",u+=m,g+=m}if(u+="",g+="",f+="",d.length>10){let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]);if((void 0!==a.cfg.mmdbid||void 0!==a.cfg.gi||void 0!==a.cfg.blast_rep_id||void 0!==a.cfg.align||void 0!==a.cfg.chainalign||void 0!==a.cfg.mmdbafid)&&void 0!==t.resi_ori&&t.resi_ori!=t.resi&&-1==e.indexOf("Misc")){m='
    ',m+='
    ',m+='
    PDB Residue Numbers
    ',m+='',f+=m+"
    ",u+=m+'',o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t",e%10==0&&(u+=e+" "),u+=""}else u+=""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),u+='',u+="",u+="
    ",u+="
    ",u+="
    ",f+=""}if(o.bShowCustomRefnum&&o.chainsMapping.hasOwnProperty(e)){let t=!0,s=o.annoIgCls.showRefNum(d,e,void 0,t);u+=s.html,f+=s.html3}}o.bShowRefnum&&o.hlUpdateCls.updateHlAll(),$("#"+o.pre+"dt_giseq_"+e).html(u),$("#"+o.pre+"ov_giseq_"+e).html(g),$("#"+o.pre+"tt_giseq_"+e).html(f)}insertGap(e,t,s,i){let n=this.icn3d;n.icn3dui;let l="";return void 0!==n.targetGapHash&&n.targetGapHash.hasOwnProperty(t)&&(l+=this.insertMulGap(n.targetGapHash[t].to-n.targetGapHash[t].from+1,s,i)),l}insertMulGap(e,t,s){this.icn3d.icn3dui;let i="";for(let n=0;n"+t+"";return i}insertGapOverview(e,t){let s=this.icn3d;s.icn3dui;let i="";return void 0!==s.targetGapHash&&s.targetGapHash.hasOwnProperty(t)&&(i+=this.insertMulGapOverview(e,s.targetGapHash[t].to-s.targetGapHash[t].from+1)),i}insertMulGapOverview(e,t){let s=this.icn3d;s.icn3dui;let i="",n=s.seqAnnWidth*t/(s.maxAnnoLength+s.nTotalGap);return n=parseInt(n),i+='
     
    ',i}setAlternativeSeq(e,t){let s=this.icn3d;s.icn3dui;let i=s.chainsSeq[e];s.giSeq[e]=[];for(let t=0,n=i.length;t1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+e,!0)}else{let o={};if(void 0!==$(e).attr("domain")||void 0!==$(e).attr("feat")||void 0!==$(e).attr("3ddomain")||void 0!==$(e).attr("custom")||void 0!==$(e).attr("ig")){t.hlUpdateCls.hlSummaryDomain3ddomain(e);let a,d,c,h=$(e).attr("from").split(","),p=$(e).attr("to").split(",");r.substr(0,r.indexOf("_"));for(let s=0,i=h.length;s1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+c,!0)}}else{t.bCtrl||t.bShift?(t.currSelectedSets.push(i),t.selectionCls.selectAChain(r,i,!0,!0)):(t.currSelectedSets=[i],t.selectionCls.selectAChain(r,i,t.bAlignSeq)),t.bAlignSeq?s.htmlCls.clickMenuCls.setLogCmd("select alignChain "+r,!0):s.htmlCls.clickMenuCls.setLogCmd("select chain "+r,!0);let e=t.currSelectedSets.join(" or ");t.currSelectedSets.length>1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+e,!0)}else t.hlObjectsCls.removeHlObjects(),t.hlUpdateCls.removeHl2D(),$("#"+t.pre+"atomsCustom").val("")}}selectResidues(e,t){let s=this.icn3d,i=s.icn3dui;if(!i.bNode&&(!1!==s.bSelectResidue||s.bShift||s.bCtrl||s.selectionCls.removeSelection(),void 0!==e&&""!==e)){e=e.substr(e.indexOf("_")+1),s.bSelectResidue=!0,$(t).toggleClass("icn3d-highlightSeq");let n=e.substr(e.indexOf("_")+1);if(s.residues.hasOwnProperty(n))if($(t).hasClass("icn3d-highlightSeq")){for(let e in s.residues[n])s.hAtoms[e]=1;if(s.selectedResidues[n]=1,s.bAnnotations&&void 0!==$(t).attr("disease")){let e=$(t).attr("disease"),l=s.applyCenterCls.centerAtoms(i.hashUtilsCls.hash2Atoms(s.residues[n],s.atoms)),r=15;e.length>r&&(e=e.substr(0,r)+"...");let o=s.LABELSIZE,a=i.htmlCls.GREYD;s.analysisCls.addLabel(e,l.center.x,l.center.y,l.center.z,o,a,void 0,"custom")}}else{for(let e in s.residues[n])delete s.hAtoms[e];delete s.selectedResidues[n],s.hlObjectsCls.removeHlObjects()}}}}class Ft{constructor(e){this.icn3d=e}update2DdgmContent(){let e=this.icn3d,t=e.icn3dui,s="";void 0!==t.cfg.mmdbid||void 0!==t.cfg.gi?(s+=e.diagram2dCls.draw2Ddgm(e.interactionData,e.inputid,void 0,!0),s+=e.diagram2dCls.set2DdgmNote(),$("#"+e.pre+"dl_2ddgm_html").html(s)):e.mmdbidArray&&(void 0!==t.cfg.align||void 0!==t.cfg.chainalign||e.bRealign)&&(s+=e.diagram2dCls.draw2Ddgm(e.interactionData1,e.mmdbidArray[0].toUpperCase(),0,!0),void 0!==e.mmdbid_q&&e.mmdbid_q===e.mmdbid_t?s+=e.diagram2dCls.draw2Ddgm(e.interactionData2,e.mmdbidArray[0].toUpperCase(),1,!0):s+=e.diagram2dCls.draw2Ddgm(e.interactionData2,e.mmdbidArray[1].toUpperCase(),1,!0),s+=e.diagram2dCls.set2DdgmNote(!0),$("#"+e.pre+"dl_2ddgm_html").html(s))}changeSeqColor(e){let t=this.icn3d,s=t.icn3dui;for(let i=0,n=e.length;i0&&($("#"+t.pre+"dl_2ddgm svg line").attr("stroke","#000000"),$("#"+t.pre+"dl_2ddgm line").attr("stroke-width",1)),e||($("#"+t.pre+"dl_linegraph circle").attr("stroke","#000000"),$("#"+t.pre+"dl_linegraph circle").attr("stroke-width",1),$("#"+t.pre+"dl_scatterplot rect").attr("stroke","#000000"),$("#"+t.pre+"dl_scatterplot circle").attr("stroke","#000000"),$("#"+t.pre+"dl_scatterplot rect").attr("stroke-width",1),$("#"+t.pre+"dl_scatterplot circle").attr("stroke-width",1))}removeHlMenus(){let e=this.icn3d;e.icn3dui,$("#"+e.pre+"atomsCustom").val(""),$("#"+e.pre+"atomsCustom")[0].blur()}updateHlAll(e,t,s,i){let n=this.icn3d,l=n.icn3dui;n.prevHighlightAtoms=l.hashUtilsCls.cloneHash(n.hAtoms),this.updateHlObjects(i),void 0!==e?this.updateHlSeqInChain(e,s):this.updateHlSeq(void 0,void 0,s),this.updateHl2D(),(void 0===t||t)&&this.updateHlMenus(e)}updateHlObjects(e){let t=this.icn3d;t.icn3dui,t.hlObjectsCls.removeHlObjects(),(t.hAtoms&&t.atoms&&Object.keys(t.hAtoms).length0&&(e=s.defNames2Residues[i]);let t={};if(void 0!==s.defNames2Atoms[i]&&s.defNames2Atoms[i].length>0){for(let e=0,n=s.defNames2Atoms[i].length;e0&&(r=t.firstAtomObjCls.getFirstCalphaAtomObj(l))}let o=void 0!==r&&void 0!==r.color?"#"+r.color.getHexString():"#FFFFFF",a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] rect[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] rect[class='icn3d-basenode']");void 0!==a&&(t.diagram2dCls.highlightNode("rect",a,d,l),$(a).attr("fill",o)),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] circle[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] circle[class='icn3d-basenode']"),void 0!==a&&(t.diagram2dCls.highlightNode("circle",a,d,l),$(a).attr("fill",o)),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] ellipse[class='icn3d-hlnode']"),void 0!==a&&t.diagram2dCls.highlightNode("ellipse",a,void 0,l),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] polygon[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] polygon[class='icn3d-basenode']"),void 0!==a&&(t.diagram2dCls.highlightNode("polygon",a,d,l),$(a).attr("fill",o))}if(void 0!==t.lineArray2d)for(let e=0,i=t.lineArray2d.length;e1){let e={},l=[],o=[],a=[],c=[],h=[],m=[],u=[],g=[],f=[],C=[],b=[],y=[],v={},_={},w={};for(let t=0,s=p.length;t4&&!isNaN(parseInt(e.substr(-4,4)))||t.length>4&&!isNaN(parseInt(t.substr(-4,4))),c=e+"_"+t+"_"+s.c,h=n.hashUtilsCls.cloneHash(s);h.source+=S+i.chainsMapping[r][d],h.target+=S+i.chainsMapping[o][C];let m=n.hashUtilsCls.cloneHash(s);m.source+=A+i.chainsMapping[r][d],m.target+=A+i.chainsMapping[o][C],v[c]!=p.length||!a&&0!=w[c]?b[f].push(m):u[f].push(h),g[f][s.source]=i.chainsMapping[r][d],g[f][s.target]=i.chainsMapping[o][C],y[f][s.source]=i.chainsMapping[r][d],y[f][s.target]=i.chainsMapping[o][C]}else{let e=n.hashUtilsCls.cloneHash(s);e.source+=i.chainsMapping[r]&&i.chainsMapping[r][d]?A+i.chainsMapping[r][d]:A+k,e.target+=i.chainsMapping[o]&&i.chainsMapping[o][C]?A+i.chainsMapping[o][C]:A+k,b[f].push(e),g[f][s.source]=i.chainsMapping[r]&&i.chainsMapping[r][d]?i.chainsMapping[r][d]:x,g[f][s.target]=i.chainsMapping[o]&&i.chainsMapping[o][C]?i.chainsMapping[o][C]:x,y[f][s.source]=i.chainsMapping[r]&&i.chainsMapping[r][d]?i.chainsMapping[r][d]:k,y[f][s.target]=i.chainsMapping[o]&&i.chainsMapping[o][C]?i.chainsMapping[o][C]:k}}}let O=[],R=[],I=0,E=[],T=1;for(let e=0,t=p.length;e0&&(T=1,t=i.getGraphCls.getNodeTopBottom(c[e],d,void 0,T,g[e]),h[e]=t.nodeArray1,m[e]=t.nodeArray2,d=n.hashUtilsCls.unionHash(d,t.name2node),T=2,t=i.getGraphCls.getNodeTopBottom(c[e],d,void 0,T,y[e]),f[e]=t.nodeArray1,C[e]=t.nodeArray2,d=n.hashUtilsCls.unionHash(d,t.name2node)),O[e]=l[e].length,R[e]=o[e].length,I=Math.max(I,R[e]),E.push(p[e])}let P,D,M,F,H,L=1,N=3*L,q=7*L,U=10,$=10,B=30,j=20;t?(M=(n.utilsCls.sumArray(O)+2*E.length)*(N+q)+4*$+2*B+j*E.length,D=(I+2)*(N+q)+2*U+B):(P=110+j,M=P*E.length,D=(I+2)*(N+q)+2*U,D+=20),Object.keys(i.chainsMapping).length>0&&(M*=3),t?(i.scatterplotWidth=2*D,H=i.scatterplotWidth,F=n.scatterplotid):(i.linegraphWidth=2*D,H=i.linegraphWidth,F=n.linegraphid),s=0==E.length?"No interactions found for each structure

    ":"2D integration graph for "+E.length+" structure(s) "+E+'. There are three sections: "Interactions", "Common interactions", and "Different interactions". Each section has '+E.length+" graphs.

    ",s+="";let z,G=0;T=0,z=this.drawGraphPerType(T,p,t,l,o,a,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html,Object.keys(i.chainsMapping).length>0&&(T=1,z=this.drawGraphPerType(T,p,t,h,m,u,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html,T=2,z=this.drawGraphPerType(T,p,t,f,C,b,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html),s+=""}else if(t){let e,t,l,c,h=p[0],m=o.length,u=a.length,g=1,f=3*g,C=7*g,b=30;t=(m+2)*(f+C)+2*10+b,e=(u+2)*(f+C)+2*10+b,i.scatterplotWidth=2*e,c=i.scatterplotWidth,l=n.scatterplotid,s=r.length>0?"":"No interactions found for these two sets

    ",s+="",s+=this.drawScatterplot_base(o,a,r,d,0),i.lineGraphStr+=i.getGraphCls.updateGraphJson(h,1,o,a,r),s+=""}else{let e=p[0],t=o.length,l=a.length,c=1,h=3*c,m=7*c,u=110,g=10,f=t>l?t*(h+m)+2*g:l*(h+m)+2*g;i.linegraphWidth=2*f,s=r.length>0?"":"No interactions found for these two sets

    ",s+="",s+=this.drawLineGraph_base(o,a,r,d,0),i.lineGraphStr+=i.getGraphCls.updateGraphJson(e,1,o,a,r),s+=""}return i.lineGraphStr+="}\n",i.scatterplotStr=i.lineGraphStr,t?$("#"+i.pre+"scatterplotDiv").html(s):$("#"+i.pre+"linegraphDiv").html(s),s}drawGraphPerType(e,t,s,i,n,l,r,o,a,d,c,h,p,m){let u=this.icn3d;u.icn3dui;let g,f,C="",b=2==t.length&&"2"==t[1].replace(t[0],"");0==e?(g="Interactions in ",f=""):1==e?(g="Common interactions in ",f="_common"):2==e&&(g="Different interactions in ",f="_diff");for(let y=0,v=t.length;y0&&(u.lineGraphStr+=", \n"):u.lineGraphStr+=", \n",u.lineGraphStr+=u.getGraphCls.updateGraphJson(t[y],y+f,i[y],n[y],l[y])}return{heightFinal:o,html:C}}getIdArrayFromNode(e){let t=this.icn3d.icn3dui,s=[];s.push(""),s.push("");let i=e.r.substr(4);return s=s.concat(t.utilsCls.getIdArray(i)),s}drawLineGraph_base(e,t,s,i,n,l,r){let o,a,d=this.icn3d,c=d.icn3dui,h="",p=e.length,m=t.length;p>m?(o=10,a=10*Math.abs(p-m)*.5+10):(a=10,o=10*Math.abs(p-m)*.5+10),l&&(h+=""+l+"");let u=30+n,g=80+n,f="",C={},b={};for(let t=0;t";let u=1==t.n?"Interaction":t.n+" interactions";t.n>1&&(h+=""+u+" of residue "+n.id+" with residue "+l.id+""),h+=""}return h+=f,h}drawScatterplot_base(e,t,s,i,n,l,r,o,a){let d=this.icn3d;d.icn3dui;let c="",h=e.length,p=t.length,m=l?3:7,u=(h+1)*(3+m)+30+40;r&&(c+=""+r+"");let g=n+u-(50+(3+m)),f=40+(3+m),C="",b={},y={};for(let t=0;t";else{d+="";let i=1==e.n?"Interaction":e.n+" interactions";e.n>1&&(d+=""+i+" of residue "+t.id+" with residue "+s.id+""),d+=l?"":"",d+=""}return d}copyStylesInline(e,t){this.icn3d.icn3dui;let s=["svg","g"];for(let i=0;i",b=e.id;return c.resid2refnum[p]&&(b+="=>"+c.resid2refnum[p]),C+=""+b+"",o?(C+="",C+=""+g+""):(C+="",C+=""+g+""),C+="",C}getNodeTopBottom(e,t,s,i,n){let l=this.icn3d.icn3dui,r=this,o=[],a=[],d={};for(let s in e){let e=t[s];if(e){if(1==i||2==i){if(e=l.hashUtilsCls.cloneHash(e),1==i){let t=n[s]?n[s]:"-";e.id+="=>"+t}else{let t=n[s]?n[s]:"--";e.id+="==>"+t}d[e.id]=e}"a"==e.s?o.push(e):"b"==e.s?a.push(e):"ab"==e.s&&(o.push(e),a.push(e))}}return o.sort((function(e,t){return r.compNode(e,t)})),a.sort((function(e,t){return r.compNode(e,t,s)})),{nodeArray1:o,nodeArray2:a,name2node:d}}updateGraphJson(e,t,s,i,n){let l=this.icn3d.icn3dui,r="";return r+='"structure'+t+'": {"id": "'+e+'", "nodes1":[',r+=l.utilsCls.getJSONFromArray(s),r+='], \n"nodes2":[',r+=l.utilsCls.getJSONFromArray(i),r+='], \n"links":[',r+=l.utilsCls.getJSONFromArray(n),r+="]}",r}updateGraphColor(){this.icn3d.icn3dui}handleForce(){let e=this.icn3d;0==e.icn3dui.htmlCls.force&&void 0!==e.simulation?(e.simulation.stop(),e.simulation.force("charge",null),e.simulation.force("x",null),e.simulation.force("y",null),e.simulation.force("r",null),e.simulation.force("link",null)):e.drawGraphCls.drawGraph(e.graphStr,e.pre+"dl_graph")}getNodesLinksForSet(e,t,s,i){let n=this.icn3d,l=n.icn3dui,r=[],o=[],a=0,d=l.htmlCls.coilValue,c="",h="",p=0,m={};for(let u in e){let e=n.atoms[u];if("DUM"!=e.chain&&(i||e.het||"CA"==e.name&&"C"==e.elem||"O3'"==e.name||"O3*"==e.name||"P"==e.name)){let i=e.structure+"_"+e.chain+"_"+e.resi;if(m.hasOwnProperty(i))continue;m[i]=1;let u=l.utilsCls.residueName2Abbr(e.resn)+e.resi;"chain"!=t&&"structure"!=t||(u+="."+e.chain),"structure"==t&&(u+="."+e.structure);let g="1_1_"+i,f=e.color?e.color.getHexString().toUpperCase():"000";r.push('{"id": "'+u+'", "r": "'+g+'", "s": "'+s+'", "x": '+e.coord.x.toFixed(0)+', "y": '+e.coord.y.toFixed(0)+', "c": "'+f+'"}'),a>0&&c==e.chain&&(n.resid2ncbi[e.resi]==n.resid2ncbi[p]+1||n.resid2ncbi[e.resi]==n.resid2ncbi[p])&&(o.push('{"source": "'+h+'", "target": "'+u+'", "v": '+d+', "c": "'+f+'"}'),e.ssbegin&&(d=l.htmlCls.ssValue),e.ssend&&(d=l.htmlCls.coilValue)),c=e.chain,h=u,p=e.resi,++a}}return{node:r,link:o}}getHbondLinksForSet(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=parseFloat($("#"+s.pre+"hbondthreshold").val()),r=e,o=r;if(Object.keys(o).length>0&&Object.keys(r).length>0){let e=!1;s.hBondCls.calculateChemicalHbonds(i.hashUtilsCls.hash2Atoms(o,s.atoms),i.hashUtilsCls.hash2Atoms(r,s.atoms),parseFloat(l),e,"graph",!0),n=i.hashUtilsCls.cloneHash(s.resid2Residhash)}return this.getGraphLinks(n,n,i.htmlCls.hbondInsideColor,t,i.htmlCls.hbondInsideValue)}getIonicLinksForSet(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=parseFloat($("#"+s.pre+"saltbridgethreshold").val()),r=e,o=r;if(Object.keys(o).length>0&&Object.keys(r).length>0){let e=!1;s.saltbridgeCls.calculateIonicInteractions(i.hashUtilsCls.hash2Atoms(o,s.atoms),i.hashUtilsCls.hash2Atoms(r,s.atoms),parseFloat(l),e,"graph",!0),n=i.hashUtilsCls.cloneHash(s.resid2Residhash)}return this.getGraphLinks(n,n,i.htmlCls.ionicInsideColor,t,i.htmlCls.ionicInsideValue)}getHalogenPiLinksForSet(e,t){let s,i=this.icn3d,n=i.icn3dui,l={},r=e,o=r,a="";return s=parseFloat($("#"+i.pre+"halogenthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","halogen",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.halogenInsideColor,t,n.htmlCls.halogenInsideValue),s=parseFloat($("#"+i.pre+"picationthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","pi-cation",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.picationInsideColor,t,n.htmlCls.picationInsideValue),s=parseFloat($("#"+i.pre+"pistackingthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","pi-stacking",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.pistackingInsideColor,t,n.htmlCls.pistackingInsideValue),a}getContactLinksForSet(e,t,s){let i=this.icn3d;i.icn3dui;let n=[],l="",r="",o={};for(let t in e){let e=i.atoms[t];e.ss==l&&e.chain==r||(Object.keys(o).length>0&&n.push(o),o={}),o[e.serial]=1,l=e.ss,r=e.chain}Object.keys(o).length>0&&n.push(o);let a=n.length,d="";for(let e=0;ed?s?-1:1:ah?1:c1&&Object.keys(n).length>1)return void alert("Please select one ligand or residue as one of the interaction sets...");Object.keys(e).length0&&Object.keys(a).length>0)){let t,s=c.hBondCls.calculateChemicalHbonds(h.hashUtilsCls.hash2Atoms(d,c.atoms),h.hashUtilsCls.hash2Atoms(a,c.atoms),parseFloat(e),n);n?(c.resid2ResidhashSaltbridge=h.hashUtilsCls.cloneHash(c.resid2Residhash),t="all atoms that have salt bridges with the selected atoms"):(c.resid2ResidhashHbond=h.hashUtilsCls.cloneHash(c.resid2Residhash),t="all atoms that are hydrogen-bonded with the selected atoms");let i={};for(let e in s){i[c.atoms[e].structure+"_"+c.atoms[e].chain+"_"+c.atoms[e].resi]=1}c.hAtoms={};for(let e in i)for(let t in c.residues[e])c.hAtoms[t]=1,c.atoms[t].style2="stick";let l=r+"_auto";c.selectionCls.addCustomSelection(Object.keys(i),l,t,o,!0),c.selectionCls.saveSelectionIfSelected(),c.drawCls.draw()}}showHydrogens(){let e=this.icn3d;if(void 0!==e.icn3dui.cfg.cid)for(let t in e.hAtoms){let s=e.atoms[t];if("H"!==s.elem.substr(0,1)){e.atoms[s.serial].bonds=e.atoms[s.serial].bonds2.concat(),e.atoms[s.serial].bondOrder=e.atoms[s.serial].bondOrder2.concat();for(let t=0,i=e.atoms[s.serial].bonds.length;t0){let i=e.atoms[t].bonds[0];e.atoms[i].bonds.push(s.serial),e.atoms[i].bondOrder&&e.atoms[i].bondOrder.push(1)}e.dAtoms[t]=1}} +var icn3d=function(e){"use strict";class t{constructor(e){this.icn3dui=e}cloneHash(e){this.icn3dui;let t={};void 0===e&&(e={});for(let s in e)t[s]=e[s];return t}intHash(e,t){this.icn3dui;let s={};if(void 0===e&&(e={}),void 0===t&&(t={}),Object.keys(e).length0||window.navigator.userAgent.match(/Trident.*rv\:11\./))}isMobile(){return this.icn3dui,/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent)}isMac(){return this.icn3dui,/Mac/i.test(window.navigator.userAgent)}isAndroid(){return this.icn3dui,/android/i.test(window.navigator.userAgent.toLowerCase())}isChrome(){return this.icn3dui,navigator.userAgent.includes("Chrome")&&navigator.vendor.includes("Google Inc")}isSessionStorageSupported(){return this.icn3dui,window.sessionStorage}isLocalStorageSupported(){return this.icn3dui,window.localStorage}hexToRgb(e,t){this.icn3dui;let s=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return s?{r:parseInt(s[1],16),g:parseInt(s[2],16),b:parseInt(s[3],16),a:t}:null}isCalphaPhosOnly(e){this.icn3dui;let t=!1,s=0,i=0;for(let t in e){if(!(s<100))break;{let s=e[t].name;if(!s)continue;s=s.trim(),"CA"!==s&&"P"!==s&&"O3'"!==s&&"O3*"!==s&&++i}++s}return i<.5*s&&(t=!0),t}hasCovalentBond(e,t){let s=this.icn3dui,i=s.parasCls.covalentRadii[e.elem.toUpperCase()]+s.parasCls.covalentRadii[t.elem.toUpperCase()],n=e.coord.x-t.coord.x,l=e.coord.y-t.coord.y,r=e.coord.z-t.coord.z;return n*n+l*l+r*r<("N"==e.elem&&"H"==t.elem.substr(0,1)||"N"==t.elem&&"H"==e.elem.substr(0,1)?2.2:1.3)*i*i}residueName2Abbr(e){this.icn3dui;let t=e.indexOf(" ");switch(t>0&&(e=e.substr(0,t)),e){case" A":case" DA":case"DA":case"ALA":return"A";case" C":case" DC":case"DC":case"CYS":return"C";case" G":case" DG":case"DG":case"GLY":return"G";case" T":case" DT":case"DT":case"THR":return"T";case" U":case" DU":case"DU":case"SEC":return"U";case" I":case" DI":case"DI":case"ILE":return"I";case"ARG":return"R";case"ASN":return"N";case"ASP":return"D";case"GLU":return"E";case"GLN":return"Q";case"HIS":return"H";case"LEU":return"L";case"LYS":return"K";case"MET":return"M";case"PHE":return"F";case"PRO":return"P";case"SER":return"S";case"TRP":return"W";case"TYR":return"Y";case"VAL":return"V";case"HOH":case"WAT":return"O";default:return e.trim()}}residueAbbr2Name(e){if(this.icn3dui,(e=e.toUpperCase()).length>1)return e;switch(e){case"A":return"ALA";case"R":return"ARG";case"N":return"ASN";case"D":return"ASP";case"C":return"CYS";case"E":return"GLU";case"Q":return"GLN";case"G":return"GLY";case"H":return"HIS";case"I":return"ILE";case"L":return"LEU";case"K":return"LYS";case"M":return"MET";case"F":return"PHE";case"P":return"PRO";case"S":return"SER";case"T":return"THR";case"W":return"TRP";case"Y":return"TYR";case"V":return"VAL";case"O":return"HOH";default:return e.trim()}}getJSONFromArray(e){this.icn3dui;let t="";for(let s=0,i=e.length;sd?1:ah?1:cs&&(e.htmlCls.WIDTH=s),i&&e.htmlCls.HEIGHT>i&&(e.htmlCls.HEIGHT=i)}sumArray(e){let t=0;for(let s=0,i=e.length;sRed and blue membranes indicate extracellular and intracellular membranes, respectively.

    "}getStructures(e){let t=this.icn3dui,s={};for(let i in e){s[t.icn3d.atoms[i].structure]=1}return s}getHlStructures(e){let t=this.icn3dui;return e||(e=t.icn3d.hAtoms),this.getStructures(e)}getDisplayedStructures(e){let t=this.icn3dui;return e||(e=t.icn3d.dAtoms),this.getStructures(e)}getDateDigitStr(){this.icn3dui;let e=new Date,t=(e.getMonth()+1).toString();e.getMonth()+1<10&&(t="0"+t);let s=e.getDate().toString();return e.getDate()<10&&(s="0"+s),e.getFullYear().toString()+t+s}}class i{constructor(e){this.icn3dui=e,this.glycanHash={GLC:{c:"1E90FF",s:"sphere"},BGC:{c:"1E90FF",s:"sphere"},NAG:{c:"1E90FF",s:"cube"},NDG:{c:"1E90FF",s:"cube"},GCS:{c:"1E90FF",s:"cube"},PA1:{c:"1E90FF",s:"cube"},GCU:{c:"1E90FF",s:"cone"},BDP:{c:"1E90FF",s:"cone"},G6D:{c:"1E90FF",s:"cone"},DDA:{c:"1E90FF",s:"cylinder"},B6D:{c:"1E90FF",s:"cylinder"},XXM:{c:"1E90FF",s:"cylinder"},MAN:{c:"00FF00",s:"sphere"},BMA:{c:"00FF00",s:"sphere"},BM3:{c:"00FF00",s:"cube"},"95Z":{c:"00FF00",s:"cube"},MAV:{c:"00FF00",s:"cone"},BEM:{c:"00FF00",s:"cone"},RAM:{c:"00FF00",s:"cone"},RM4:{c:"00FF00",s:"cone"},TYV:{c:"00FF00",s:"cylinder"},ARA:{c:"00FF00",s:"cylinder"},ARB:{c:"00FF00",s:"cylinder"},KDN:{c:"00FF00",s:"cylinder"},KDM:{c:"00FF00",s:"cylinder"},"6PZ":{c:"00FF00",s:"cylinder"},GMH:{c:"00FF00",s:"cylinder"},BDF:{c:"00FF00",s:"cylinder"},GAL:{c:"FFFF00",s:"sphere"},GLA:{c:"FFFF00",s:"sphere"},NGA:{c:"FFFF00",s:"cube"},A2G:{c:"FFFF00",s:"cube"},X6X:{c:"FFFF00",s:"cube"},"1GN":{c:"FFFF00",s:"cube"},ADA:{c:"FFFF00",s:"cone"},GTR:{c:"FFFF00",s:"cone"},LDY:{c:"FFFF00",s:"cylinder"},KDO:{c:"FFFF00",s:"cylinder"},T6T:{c:"FFFF00",s:"cylinder"},GUP:{c:"A52A2A",s:"sphere"},GL0:{c:"A52A2A",s:"sphere"},LGU:{c:"A52A2A",s:"cone"},ABE:{c:"A52A2A",s:"cylinder"},XYS:{c:"A52A2A",s:"cylinder"},XYP:{c:"A52A2A",s:"cylinder"},SOE:{c:"A52A2A",s:"cylinder"},PZU:{c:"FF69B4",s:"cylinder"},RIP:{c:"FF69B4",s:"cylinder"},"0MK":{c:"FF69B4",s:"cylinder"},ALL:{c:"8A2BE2",s:"sphere"},AFD:{c:"8A2BE2",s:"sphere"},NAA:{c:"8A2BE2",s:"cube"},SIA:{c:"8A2BE2",s:"cylinder"},SIB:{c:"8A2BE2",s:"cylinder"},AMU:{c:"8A2BE2",s:"cylinder"},X0X:{c:"1E90FF",s:"cone"},X1X:{c:"1E90FF",s:"cone"},NGC:{c:"1E90FF",s:"cylinder"},NGE:{c:"1E90FF",s:"cylinder"},"4N2":{c:"A0522D",s:"sphere"},HSQ:{c:"A0522D",s:"cube"},IDR:{c:"A0522D",s:"cone"},MUR:{c:"A0522D",s:"cylinder"},FUC:{c:"FF0000",s:"cone"},FUL:{c:"FF0000",s:"cone"}},this.nucleotidesArray=[" G"," A"," T"," C"," U"," DG"," DA"," DT"," DC"," DU","G","A","T","C","U","DG","DA","DT","DC","DU"],this.ionsArray=[" K"," NA"," MG"," AL"," CA"," TI"," MN"," FE"," NI"," CU"," ZN"," AG"," BA"," F"," CL"," BR"," I","K","NA","MG","AL","CA","TI","MN","FE","NI","CU","ZN","AG","BA","F","CL","BR","I"],this.cationsTrimArray=["K","NA","MG","AL","CA","TI","MN","FE","NI","CU","ZN","AG","BA"],this.anionsTrimArray=["F","CL","BR","I"],this.ionCharges={K:1,NA:1,MG:2,AL:3,CA:2,TI:3,MN:2,FE:3,NI:2,CU:2,ZN:2,AG:1,BA:2},this.vdwRadii={H:1.08,HE:1.34,LI:1.75,BE:2.05,B:1.47,C:1.49,N:1.41,O:1.4,F:1.39,NE:1.68,NA:1.84,MG:2.05,AL:2.11,SI:2.07,P:1.92,S:1.82,CL:1.83,AR:1.93,K:2.05,CA:2.21,SC:2.16,TI:1.87,V:1.79,CR:1.89,MN:1.97,FE:1.94,CO:1.92,NI:1.84,CU:1.86,ZN:2.1,GA:2.08,GE:2.15,AS:2.06,SE:1.93,BR:1.98,KR:2.12,RB:2.16,SR:2.24,Y:2.19,ZR:1.86,NB:2.07,MO:2.09,TC:2.09,RU:2.07,RH:1.95,PD:2.02,AG:2.03,CD:2.3,IN:2.36,SN:2.33,SB:2.25,TE:2.23,I:2.23,XE:2.21,CS:2.22,BA:2.51,LA:2.4,CE:2.35,PR:2.39,ND:2.29,PM:2.36,SM:2.29,EU:2.33,GD:2.37,TB:2.21,DY:2.29,HO:2.16,ER:2.35,TM:2.27,YB:2.42,LU:2.21,HF:2.12,TA:2.17,W:2.1,RE:2.17,OS:2.16,IR:2.02,PT:2.09,AU:2.17,HG:2.09,TL:2.35,PB:2.32,BI:2.43,PO:2.29,AT:2.36,RN:2.43,FR:2.56,RA:2.43,AC:2.6,TH:2.37,PA:2.43,U:2.4,NP:2.21,PU:2.56,AM:2.56,CM:2.56,BK:2.56,CF:2.56,ES:2.56,FM:2.56},this.covalentRadii={H:.31,HE:.28,LI:1.28,BE:.96,B:.84,C:.76,N:.71,O:.66,F:.57,NE:.58,NA:1.66,MG:1.41,AL:1.21,SI:1.11,P:1.07,S:1.05,CL:1.02,AR:1.06,K:2.03,CA:1.76,SC:1.7,TI:1.6,V:1.53,CR:1.39,MN:1.39,FE:1.32,CO:1.26,NI:1.24,CU:1.32,ZN:1.22,GA:1.22,GE:1.2,AS:1.19,SE:1.2,BR:1.2,KR:1.16,RB:2.2,SR:1.95,Y:1.9,ZR:1.75,NB:1.64,MO:1.54,TC:1.47,RU:1.46,RH:1.42,PD:1.39,AG:1.45,CD:1.44,IN:1.42,SN:1.39,SB:1.39,TE:1.38,I:1.39,XE:1.4,CS:2.44,BA:2.15,LA:2.07,CE:2.04,PR:2.03,ND:2.01,PM:1.99,SM:1.98,EU:1.98,GD:1.96,TB:1.94,DY:1.92,HO:1.92,ER:1.89,TM:1.9,YB:1.87,LU:1.87,HF:1.75,TA:1.7,W:1.62,RE:1.51,OS:1.44,IR:1.41,PT:1.36,AU:1.36,HG:1.32,TL:1.45,PB:1.46,BI:1.48,PO:1.4,AT:1.5,RN:1.5,FR:2.6,RA:2.21,AC:2.15,TH:2.06,PA:2,U:1.96,NP:1.9,PU:1.87,AM:1.8,CM:1.69},this.atomColors={H:this.thr(16777215),He:this.thr(16761035),HE:this.thr(16761035),Li:this.thr(11674146),LI:this.thr(11674146),B:this.thr(65280),C:this.thr(11184810),N:this.thr(255),O:this.thr(15728640),F:this.thr(14329120),Na:this.thr(255),NA:this.thr(255),Mg:this.thr(2263842),MG:this.thr(2263842),Al:this.thr(8421520),AL:this.thr(8421520),Si:this.thr(14329120),SI:this.thr(14329120),P:this.thr(16753920),S:this.thr(16762930),Cl:this.thr(65280),CL:this.thr(65280),Ca:this.thr(8421520),CA:this.thr(8421520),Ti:this.thr(8421520),TI:this.thr(8421520),Cr:this.thr(8421520),CR:this.thr(8421520),Mn:this.thr(8421520),MN:this.thr(8421520),Fe:this.thr(16753920),FE:this.thr(16753920),Ni:this.thr(10824234),NI:this.thr(10824234),Cu:this.thr(10824234),CU:this.thr(10824234),Zn:this.thr(10824234),ZN:this.thr(10824234),Br:this.thr(10824234),BR:this.thr(10824234),Ag:this.thr(8421520),AG:this.thr(8421520),I:this.thr(10494192),Ba:this.thr(16753920),BA:this.thr(16753920),Au:this.thr(14329120),AU:this.thr(14329120)},this.atomnames={H:"Hydrogen",HE:"Helium",LI:"Lithium",B:"Boron",C:"Carbon",N:"Nitrogen",O:"Oxygen",F:"Fluorine",NA:"Sodium",MG:"Magnesium",AL:"Aluminum",SI:"Silicon",P:"Phosphorus",S:"Sulfur",CL:"Chlorine",CA:"Calcium",TI:"Titanium",CR:"Chromium",MN:"Manganese",FE:"Iron",NI:"Nickel",CU:"Copper",ZN:"Zinc",BR:"Bromine",AG:"Silver",I:"Iodine",BA:"Barium",AU:"Gold"},this.defaultAtomColor=this.thr(13421772),this.stdChainColors=[this.thr(16711935),this.thr(255),this.thr(10053171),this.thr(65433),this.thr(16750848),this.thr(16737894),this.thr(3329330),this.thr(2003199),this.thr(16416882),this.thr(16753920),this.thr(52945),this.thr(16738740),this.thr(65280),this.thr(255),this.thr(16711680),this.thr(16776960),this.thr(65535),this.thr(16711935),this.thr(3978097),this.thr(4620980),this.thr(13458524),this.thr(16770229),this.thr(11529966),this.thr(15631086),this.thr(25600),this.thr(139),this.thr(9109504),this.thr(13468991),this.thr(35723),this.thr(9699539)],this.backgroundColors={black:this.thr(0),grey:this.thr(13421772),white:this.thr(16777215),transparent:this.thr(16777215)},this.residueColors={ALA:this.thr(13158600),ARG:this.thr(1334015),ASN:this.thr(56540),ASP:this.thr(15075850),CYS:this.thr(15132160),GLN:this.thr(56540),GLU:this.thr(15075850),GLY:this.thr(15461355),HIS:this.thr(8553170),ILE:this.thr(1016335),LEU:this.thr(1016335),LYS:this.thr(1334015),MET:this.thr(15132160),PHE:this.thr(3289770),PRO:this.thr(14456450),SER:this.thr(16422400),THR:this.thr(16422400),TRP:this.thr(11819700),TYR:this.thr(3289770),VAL:this.thr(1016335),ASX:this.thr(16738740),GLX:this.thr(16738740),G:this.thr(32768),A:this.thr(6324479),T:this.thr(16744448),C:this.thr(16711680),U:this.thr(16744448),DG:this.thr(32768),DA:this.thr(6324479),DT:this.thr(16744448),DC:this.thr(16711680),DU:this.thr(16744448)},this.residueArea={ALA:247,ARG:366,ASN:290,ASP:285,CYS:271,GLN:336,GLU:325,GLY:217,HIS:340,ILE:324,LEU:328,LYS:373,MET:346,PHE:366,PRO:285,SER:265,THR:288,TRP:414,TYR:387,VAL:293,ASX:290,GLX:336,G:520,A:507,T:515,C:467,U:482,DG:520,DA:507,DT:515,DC:467,DU:482},this.defaultResidueColor=this.thr(12492910),this.chargeColors={" G":this.thr(16711680)," A":this.thr(16711680)," T":this.thr(16711680)," C":this.thr(16711680)," U":this.thr(16711680)," DG":this.thr(16711680)," DA":this.thr(16711680)," DT":this.thr(16711680)," DC":this.thr(16711680)," DU":this.thr(16711680),G:this.thr(16711680),A:this.thr(16711680),T:this.thr(16711680),C:this.thr(16711680),U:this.thr(16711680),DG:this.thr(16711680),DA:this.thr(16711680),DT:this.thr(16711680),DC:this.thr(16711680),DU:this.thr(16711680),ARG:this.thr(255),LYS:this.thr(255),ASP:this.thr(16711680),GLU:this.thr(16711680),HIS:this.thr(8421631),GLY:this.thr(8947848),PRO:this.thr(8947848),ALA:this.thr(8947848),VAL:this.thr(8947848),LEU:this.thr(8947848),ILE:this.thr(8947848),PHE:this.thr(8947848),SER:this.thr(8947848),THR:this.thr(8947848),ASN:this.thr(8947848),GLN:this.thr(8947848),TYR:this.thr(8947848),MET:this.thr(8947848),CYS:this.thr(8947848),TRP:this.thr(8947848)},this.hydrophobicColors={" G":this.thr(16711680)," A":this.thr(16711680)," T":this.thr(16711680)," C":this.thr(16711680)," U":this.thr(16711680)," DG":this.thr(16711680)," DA":this.thr(16711680)," DT":this.thr(16711680)," DC":this.thr(16711680)," DU":this.thr(16711680),G:this.thr(16711680),A:this.thr(16711680),T:this.thr(16711680),C:this.thr(16711680),U:this.thr(16711680),DG:this.thr(16711680),DA:this.thr(16711680),DT:this.thr(16711680),DC:this.thr(16711680),DU:this.thr(16711680),ARG:this.thr(255),LYS:this.thr(255),ASP:this.thr(16711680),GLU:this.thr(16711680),HIS:this.thr(8421631),TRP:this.thr().setHSL(1/3,1,.5),PHE:this.thr().setHSL(1/3,1,.5909090909090908),LEU:this.thr().setHSL(1/3,1,.700956937799043),ILE:this.thr().setHSL(1/3,1,.7320574162679425),TYR:this.thr().setHSL(1/3,1,.5+.69/2.09),MET:this.thr().setHSL(1/3,1,.5+.71/2.09),VAL:this.thr().setHSL(1/3,1,.5+.815/2.09),CYS:this.thr().setHSL(1/3,1,.5+1.035/2.09),PRO:this.thr().setHSL(1/6,1,.9391304347826086),THR:this.thr().setHSL(1/6,1,.8913043478260869),SER:this.thr().setHSL(1/6,1,.8),ALA:this.thr().setHSL(1/6,1,.7826086956521738),GLN:this.thr().setHSL(1/6,1,.6652173913043478),ASN:this.thr().setHSL(1/6,1,.6304347826086956),GLY:this.thr().setHSL(1/6,1,.5)},this.normalizedHPColors={" G":this.thr(16777215)," A":this.thr(16777215)," T":this.thr(16777215)," C":this.thr(16777215)," U":this.thr(16777215)," DG":this.thr(16777215)," DA":this.thr(16777215)," DT":this.thr(16777215)," DC":this.thr(16777215)," DU":this.thr(16777215),G:this.thr(16777215),A:this.thr(16777215),T:this.thr(16777215),C:this.thr(16777215),U:this.thr(16777215),DG:this.thr(16777215),DA:this.thr(16777215),DT:this.thr(16777215),DC:this.thr(16777215),DU:this.thr(16777215),ARG:this.thr(16777215),LYS:this.thr(16777215),ASP:this.thr(16777215),GLU:this.thr(16777215),HIS:this.thr(16777215),TRP:this.thr().setHSL(1/3,1,.5),PHE:this.thr().setHSL(1/3,1,.558641975308642),LEU:this.thr().setHSL(1/3,1,.6296296296296295),ILE:this.thr().setHSL(1/3,1,.6496913580246912),TYR:this.thr().setHSL(1/3,1,.5+.69/3.24),MET:this.thr().setHSL(1/3,1,.5+.71/3.24),VAL:this.thr().setHSL(1/3,1,.5+.815/3.24),CYS:this.thr().setHSL(1/3,1,.5+1.035/3.24),PRO:this.thr().setHSL(1/3,1,.5+1.115/3.24),THR:this.thr().setHSL(1/3,1,.5+1.17/3.24),SER:this.thr().setHSL(1/3,1,.5+1.275/3.24),ALA:this.thr().setHSL(1/3,1,.5+1.295/3.24),GLN:this.thr().setHSL(1/3,1,.5+1.43/3.24),ASN:this.thr().setHSL(1/3,1,.5+1.47/3.24),GLY:this.thr().setHSL(1/3,1,1)},this.hydrophobicValues={" G":3," A":3," T":3," C":3," U":3," DG":3," DA":3," DT":3," DC":3," DU":3,G:3,A:3,T:3,C:3,U:3,DG:3,DA:3,DT:3,DC:3,DU:3,ARG:1.5,LYS:1.5,ASP:3,GLU:3,HIS:2,TRP:-2.09,PHE:-1.71,LEU:-1.25,ILE:-1.12,TYR:-.71,MET:-.67,VAL:-.46,CYS:-.02,PRO:.14,THR:.25,SER:.46,ALA:.5,GLN:.77,ASN:.85,GLY:1.15},this.residueAbbrev={ALA:"A (Ala)",ARG:"R (Arg)",ASN:"N (Asn)",ASP:"D (Asp)",CYS:"C (Cys)",GLN:"Q (Gln)",GLU:"E (Glu)",GLY:"G (Gly)",HIS:"H (His)",ILE:"I (Ile)",LEU:"L (Leu)",LYS:"K (Lys)",MET:"M (Met)",PHE:"F (Phe)",PRO:"P (Pro)",SER:"S (Ser)",THR:"T (Thr)",TRP:"W (Trp)",TYR:"Y (Tyr)",VAL:"V (Val)",ASX:"X (Asx)",GLX:"X (Glx)",G:"Guanine",A:"Adenine",T:"Thymine",C:"Cytosine",U:"Uracil",DG:"deoxy-Guanine",DA:"deoxy-Adenine",DT:"deoxy-Thymine",DC:"deoxy-Cytosine",DU:"deoxy-Uracil"},this.ssColors={helix:this.thr(16711680),sheet:this.thr(32768),coil:this.thr(6324479)},this.ssColors2={helix:this.thr(16711680),sheet:this.thr(16762880),coil:this.thr(6324479)},this.resn2restype={ALA:1,ARG:4,ASN:7,ASP:10,CYS:13,GLN:16,GLU:19,GLY:22,HIS:25,ILE:28,LEU:31,LYS:34,MET:37,PHE:40,PRO:43,SER:46,THR:49,TRP:52,TYR:55,VAL:58},this.nuclMainArray=["C1'","C1*","C2'","C2*","C3'","C3*","C4'","C4*","C5'","C5*","O3'","O3*","O4'","O4*","O5'","O5*","P","OP1","O1P","OP2","O2P"],this.b62ResArray=["A","R","N","D","C","Q","E","G","H","I","L","K","M","F","P","S","T","W","Y","V","B","Z","X","*"],this.b62Matrix=[[4,-1,-2,-2,0,-1,-1,0,-2,-1,-1,-1,-1,-2,-1,1,0,-3,-2,0,-2,-1,0,-4],[-1,5,0,-2,-3,1,0,-2,0,-3,-2,2,-1,-3,-2,-1,-1,-3,-2,-3,-1,0,-1,-4],[-2,0,6,1,-3,0,0,0,1,-3,-3,0,-2,-3,-2,1,0,-4,-2,-3,3,0,-1,-4],[-2,-2,1,6,-3,0,2,-1,-1,-3,-4,-1,-3,-3,-1,0,-1,-4,-3,-3,4,1,-1,-4],[0,-3,-3,-3,9,-3,-4,-3,-3,-1,-1,-3,-1,-2,-3,-1,-1,-2,-2,-1,-3,-3,-2,-4],[-1,1,0,0,-3,5,2,-2,0,-3,-2,1,0,-3,-1,0,-1,-2,-1,-2,0,3,-1,-4],[-1,0,0,2,-4,2,5,-2,0,-3,-3,1,-2,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-2,0,-1,-3,-2,-2,6,-2,-4,-4,-2,-3,-3,-2,0,-2,-2,-3,-3,-1,-2,-1,-4],[-2,0,1,-1,-3,0,0,-2,8,-3,-3,-1,-2,-1,-2,-1,-2,-2,2,-3,0,0,-1,-4],[-1,-3,-3,-3,-1,-3,-3,-4,-3,4,2,-3,1,0,-3,-2,-1,-3,-1,3,-3,-3,-1,-4],[-1,-2,-3,-4,-1,-2,-3,-4,-3,2,4,-2,2,0,-3,-2,-1,-2,-1,1,-4,-3,-1,-4],[-1,2,0,-1,-3,1,1,-2,-1,-3,-2,5,-1,-3,-1,0,-1,-3,-2,-2,0,1,-1,-4],[-1,-1,-2,-3,-1,0,-2,-3,-2,1,2,-1,5,0,-2,-1,-1,-1,-1,1,-3,-1,-1,-4],[-2,-3,-3,-3,-2,-3,-3,-3,-1,0,0,-3,0,6,-4,-2,-2,1,3,-1,-3,-3,-1,-4],[-1,-2,-2,-1,-3,-1,-1,-2,-2,-3,-3,-1,-2,-4,7,-1,-1,-4,-3,-2,-2,-1,-2,-4],[1,-1,1,0,-1,0,0,0,-1,-2,-2,0,-1,-2,-1,4,1,-3,-2,-2,0,0,0,-4],[0,-1,0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1,1,5,-2,-2,0,-1,-1,0,-4],[-3,-3,-4,-4,-2,-2,-3,-2,-2,-3,-2,-3,-1,1,-4,-3,-2,11,2,-3,-4,-3,-2,-4],[-2,-2,-2,-3,-2,-1,-2,-3,2,-1,-1,-2,-1,3,-3,-2,-2,2,7,-1,-3,-2,-1,-4],[0,-3,-3,-3,-1,-2,-2,-3,-3,3,1,-2,1,-1,-2,-2,0,-3,-1,4,-3,-2,-1,-4],[-2,-1,3,4,-3,0,1,-1,0,-3,-4,0,-3,-3,-2,0,-1,-4,-3,-3,4,1,-1,-4],[-1,0,0,1,-3,3,4,-2,0,-3,-3,1,-1,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,0,0,-2,-1,-1,-1,-1,-1,-4],[-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1]]}thr(e){return this.icn3dui,"#0"==e&&(e="#000"),new THREE.Color(e)}}class n{constructor(e){this.icn3dui=e}onId(e,t,s){if(this.icn3dui,!(Object.keys(window).length<2)&&("#"==e.substr(0,1)&&(e=e.substr(1)),document.getElementById(e))){t.split(" ").forEach((t=>{document.getElementById(e).addEventListener(t,s)}))}}onIds(e,t,s){let i=this.icn3dui;Array.isArray(e)?e.forEach((e=>{i.myEventCls.onId(e,t,s)})):i.myEventCls.onId(e,t,s)}}class l{constructor(e){this.icn3dui=e}getRmsdSuprCls(e,t,s){let i,n,l,r,o,a,d,c,h,p,m,u,g,f=this.icn3dui,C=new Array(9),b=new THREE.Vector3,y=new THREE.Vector3,v=[],_=[],w=new Array(3),S=new Array(3),A=new Array(3),x=new Array(3),k=new Array(3),O=new Array(3);if(i=0,s<=1)return{rot:void 0,trans1:void 0,trans2:void 0,rmsd:999};let R=s;for(n=0;n0?(C[0]=x[0]*w[0]+k[0]*S[0]+O[0]*A[0],C[1]=x[0]*w[1]+k[0]*S[1]+O[0]*A[1],C[2]=x[0]*w[2]+k[0]*S[2]+O[0]*A[2],C[3]=x[1]*w[0]+k[1]*S[0]+O[1]*A[0],C[4]=x[1]*w[1]+k[1]*S[1]+O[1]*A[1],C[5]=x[1]*w[2]+k[1]*S[2]+O[1]*A[2],C[6]=x[2]*w[0]+k[2]*S[0]+O[2]*A[0],C[7]=x[2]*w[1]+k[2]*S[1]+O[2]*A[1],C[8]=x[2]*w[2]+k[2]*S[2]+O[2]*A[2]):(C[0]=x[0]*w[0]+k[0]*S[0]-O[0]*A[0],C[1]=x[0]*w[1]+k[0]*S[1]-O[0]*A[1],C[2]=x[0]*w[2]+k[0]*S[2]-O[0]*A[2],C[3]=x[1]*w[0]+k[1]*S[0]-O[1]*A[0],C[4]=x[1]*w[1]+k[1]*S[1]-O[1]*A[1],C[5]=x[1]*w[2]+k[1]*S[2]-O[1]*A[2],C[6]=x[2]*w[0]+k[2]*S[0]-O[2]*A[0],C[7]=x[2]*w[1]+k[2]*S[1]-O[2]*A[1],C[8]=x[2]*w[2]+k[2]*S[2]-O[2]*A[2]),c=Math.sqrt(c),h=Math.sqrt(h),p=Math.sqrt(p),g=c+h+u*p,m=a+d-2*g,i=m>0?Math.sqrt(m):void 0,{rot:C,trans1:I,trans2:E,rmsd:i})}eigen_values(e){let t,s,i,n,l,r,o,a,d,c,h,p,m,u,g,f,C,b,y,v;if(this.icn3dui,t=e[0],s=e[1],i=e[2],n=e[3],l=e[4],r=e[5],o=e[6],a=e[7],d=e[8],c=-(t+l+d),h=t*l+(t+l)*d-r*a-s*n-i*o,p=-t*l*d+t*r*a+s*n*d-s*r*o-i*n*a+i*l*o,m=-c*c/3+h,u=c*c*c/13.5-c*h/3+p,g=.25*u*u+m*m*m/27,g<0){let e,t;e=Math.sqrt(.25*u*u-g),t=Math.acos(-.5*u/e),b=2*Math.cbrt(e)*Math.cos(t/3)}else f=Math.cbrt(-.5*u+Math.sqrt(g)),C=Math.cbrt(-.5*u-Math.sqrt(g)),b=f+C;return b-=c/3,c+=b,p/=-b,y=.5*(-c+Math.sqrt(c*c-4*p)),v=.5*(-c-Math.sqrt(c*c-4*p)),yw&&(w=Math.abs(d)),Math.abs(c)>w&&(w=Math.abs(c)),Math.abs(h)>w&&(w=Math.abs(h)),Math.abs(p)>w&&(w=Math.abs(p)),Math.abs(m)>w&&(w=Math.abs(m)),Math.abs(u)>w&&(w=Math.abs(u)),Math.abs(g)>w&&(w=Math.abs(g)),Math.abs(f)>w&&(w=Math.abs(f)),w<1e-10)return r=3,{k:r,v1:t,v2:s,v3:i};if(o=0,a/=w,d/=w,c/=w,h/=w,p/=w,m/=w,u/=w,g/=w,f/=w,Math.abs(a)w&&(_=a,a=h,h=_,_=d,d=p,p=_,_=c,c=m,m=_,w=Math.abs(d)),Math.abs(g)>w&&(_=a,a=u,u=_,_=d,d=g,g=_,_=c,c=f,f=_),y=m-p*c/d,v=f-g*c/d,Math.abs(y)w&&(_=a,a=h,h=_,_=d,d=p,p=_,_=c,c=m,m=_,w=Math.abs(a)),Math.abs(c)>w&&(_=a,a=u,u=_,_=d,d=g,g=_,_=c,c=f,f=_),C=p-h*d/a,b=m-h*c/a,y=g-u*d/a,v=f-u*c/a,Math.abs(C)0&&(1==o?(a=s[0],d=s[1],c=s[2],_=Math.sqrt(a*a+d*d+c*c),s[0]=a/_,s[1]=d/_,s[2]=c/_):2==o?(a=t[0],d=t[1],c=t[2],h=s[0],p=s[1],m=s[2],_=a*h+d*p+c*m,Math.abs(_)>=n&&(s[0]=a+_*h,s[1]=d+_*p,s[2]=c+_*m,h=s[0],p=s[1],m=s[2]),_=Math.sqrt(a*a+d*d+c*c),t[0]=a/_,t[1]=d/_,t[2]=c/_,_=Math.sqrt(h*h+p*p+m*m),s[0]=h/_,s[1]=p/_,s[2]=m/_):(a=t[0],d=t[1],c=t[2],_=Math.sqrt(a*a+d*d+c*c),t[0]=a/_,t[1]=d/_,t[2]=c/_)),{k:r,v1:t,v2:s,v3:i}}getEigenForSelection(e,t){let s,i=this.icn3dui,n=new THREE.Vector3,l=[];for(s=0;s0&&Math.abs(l[0].x-e[0].x)<=6&&Math.abs(l[0].y-e[0].y)<=6&&Math.abs(l[0].z-e[0].z)<=6?(p.push(l[0]),m=1):m=0,p.push(e[0]);for(let t=1,s=e.length-1;t0&&Math.abs(r[0].x-e[e.length-1].x)<=6&&Math.abs(r[0].y-e[e.length-1].y)<=6&&Math.abs(r[0].z-e[e.length-1].z)<=6&&(p.push(r[0]),++g),u>1&&Math.abs(r[0].x-r[1].x)<=6&&Math.abs(r[0].y-r[1].y)<=6&&Math.abs(r[0].z-r[1].z)<=6&&(p.push(r[1]),++g);let f=[],C=[],b=[];o&&(g=u>0?u-1:0);let y;for(let e=-1,n=p.length,l=1/s;e<=n-3;++e){y=e-m;let r=p[-1===e?0:e],o=p[e+1],u=p[e+2],v=p[e===n-3?n-1:e+3],_=0,w=a.subdivideCls.getKnot(1,_,r,o),S=a.subdivideCls.getKnot(1,w,o,u),A=a.subdivideCls.getKnot(1,S,u,v);w-_<1e-4&&(w=_+1),S-w<1e-4&&(S=w+1),A-S<1e-4&&(A=S+1),e>-1&&(void 0===i||i[y+1])&&e>=-1+m&&e<=n-3-g+1&&(d=d.concat(f),c=c.concat(C),h=h.concat(b)),f=[],C=[],b=[];let x=(S-w)*l;for(let l=0;l=-1+m&&e<=n-3-g&&i[y+1]&&l<=parseInt(s/2)&&(d.push(new THREE.Vector3(k,O,R)),c.push(i[y+1]),h.push(t[y+1])),e>=-1+m&&e<=n-3-g+1&&i[y+2]&&l>parseInt(s/2)&&(f.push(new THREE.Vector3(k,O,R)),C.push(i[y+2]),b.push(t[y+2]))):e>=-1+m&&e<=n-3-g&&(d.push(new THREE.Vector3(k,O,R)),c.push(y+1),h.push(t[y+1]))}}i&&!i[y+1]||(d=d.concat(f),c=c.concat(C),h=h.concat(b),d.push(p[p.length-1-g]),c.push(p.length-1-g),h.push(t[p.length-1-g])),f=[],C=[],b=[],p=[];let v=[];return v.push(d),v.push(c),v.push(h),v}getKnot(e,t,s,i){return this.icn3dui,s.distanceTo(i)+t}getValueFromKnot(e,t,s,i,n,l,r,o,a){this.icn3dui;let d,c,h=(r-l)/(s-t),p=(o-r)/(i-s),m=(a-o)/(n-i),u=(s+i)*(s+i)-4*(t*s+i*n-t*n);return 0==u?(d=9999,c=9999):(d=6*(3*p*s+2*h*n+m*s-2*h*s-2*p*n-p*i-m*s)/u,c=6*(3*p*i+2*m*t+h*s-2*p*t-2*m*i-h*i-p*s)/u),p*(e-s)+r+((2*d+c)/6/(s-i)*(e-s)*(e-i)*(e-i)+(2*c+d)/6/(i-s)*(e-s)*(e-s)*(e-i))}}class o{constructor(e){this.icn3dui=e}passFloat32(e,t){let s=this.icn3dui,i=e.length;t||(t=new Uint8Array(4*i));let n=s.convertTypeCls.getDataView(t);for(let t=0;t  Very high (pLDDT > 90)
      Confident (90 > pLDDT > 70)
      Low (70 > pLDDT > 50)
      Very low (pLDDT < 50)
    '}setLegendHtml(e){let t=this.icn3dui.icn3d,s="
    ";if(e)s+=this.setAlphaFoldLegend();else{s+="
    "+t.startValue+""+t.midValue+""+t.endValue+"
    "}return s}SetChainsAdvancedMenu(){let e=this.icn3dui,t=e.icn3d;if(void 0===t.bSetChainsAdvancedMenu||!t.bSetChainsAdvancedMenu){let s=e.hashUtilsCls.cloneHash(t.hAtoms);t.definedSetsCls.setPredefinedInMenu(),t.bSetChainsAdvancedMenu=!0,t.hAtoms=e.hashUtilsCls.cloneHash(s)}}setSetsMenus(e,t){let s=this.icn3dui,i=s.icn3d;this.SetChainsAdvancedMenu();let n=e,l=e+"2",r=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+s.pre+n).length&&$("#"+s.pre+n).html(" "+r),!t&&$("#"+s.pre+l).length&&$("#"+s.pre+l).html(" "+r),$("#"+s.pre+n).resizable(),t||$("#"+s.pre+l).resizable()}applyShownMenus(e){let t=this.icn3dui;t.icn3d;let s=[];for(let e in t.htmlCls.allMenus)t.htmlCls.shownMenus.hasOwnProperty(e)?$("#"+t.pre+e).parent().show():($("#"+t.pre+e).parent().hide(),s.push(e));Object.keys(t.htmlCls.shownMenus).length==Object.keys(t.htmlCls.allMenus).length?$(".icn3d-menusep").show():$(".icn3d-menusep").hide(),localStorage&&!e&&localStorage.setItem("hiddenmenus",JSON.stringify(s))}getHiddenMenusFromCache(){let e=this.icn3dui;e.icn3d,e.htmlCls.shownMenus={};let t=localStorage?localStorage.getItem("hiddenmenus"):"";if(t&&"[]"!=t){let s=JSON.parse(t);for(let t in e.htmlCls.allMenus)-1==s.indexOf(t)&&(e.htmlCls.shownMenus[t]=1)}else e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus)}displayShownMenus(){let e=this.icn3dui;e.icn3d;let t="
    ";t+="",t+="";for(let s in e.htmlCls.allMenusSel){if("uniclr"==s.substr(0,6)||"mn5_opacity"==s.substr(0,11)||"mn6_labelscale"==s.substr(0,14)||"faq_"==s.substr(0,4)||"dev_"==s.substr(0,4))continue;"mn1_searchgrooup"==s?t+="
    FileSelectViewStyleColorAnalysisHelp
    ":("mn2_definedsets"==s||"mn2_show_selected"==s||"mn3_proteinwrap"==s||e.cfg.cid&&"mn3_ligwrap"==s||"mn4_clrwrap"==s||"mn6_selectannotations"==s||"abouticn3d"==s)&&(t+="");let i=e.htmlCls.shownMenus.hasOwnProperty(s)?"checked":"",n=e.htmlCls.allMenusSel[s];t+=""+e.htmlCls.allMenus[s]+"
    "}t+="
    ",$("#"+e.pre+"menulist").html(t)}async setIgTemplate(e){let t=this.icn3dui.icn3d;t.bRunRefnumAgain=!0;let s=t.resid2specCls.atoms2residues(Object.keys(t.hAtoms));for(let e=0,i=s.length;e0?"_blank":"_self";window.open(n,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_mmciffile","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmciffile","Please append mmCIF File")})),e.myEventCls.onIds("#"+e.pre+"mn1_mmcifid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmcifid","Please input mmCIF ID")})),e.myEventCls.onIds("#"+e.pre+"mn1_mmdbid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmdbid","Please input MMDB or PDB ID")})),e.myEventCls.onIds(["#"+e.pre+"mn1_mmdbafid",,"#"+e.pre+"tool_mmdbafid"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmdbafid","Please input PDB/MMDB/AlphaFold UniProt IDs")})),e.myEventCls.onIds("#"+e.pre+"mn1_blast_rep_id","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_blast_rep_id","Align sequence to structure")})),e.myEventCls.onIds("#"+e.pre+"mn1_esmfold","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_esmfold","Sequence to structure prediction with ESMFold")})),e.myEventCls.onIds("#"+e.pre+"mn1_proteinname","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_proteinname","Please input protein or gene name")})),e.myEventCls.onIds("#"+e.pre+"mn1_cid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_cid","Please input PubChem Compound")})),e.myEventCls.onIds("#"+e.pre+"mn1_smiles","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_smiles","Please input a chemical SMILES")})),e.myEventCls.onIds("#"+e.pre+"mn1_pngimage","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_pngimage","Please append PNG images")})),e.myEventCls.onIds("#"+e.pre+"mn1_state","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_state","Please input the state file")})),e.myEventCls.onIds("#"+e.pre+"mn1_selection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_selection","Please input the selection file")})),e.myEventCls.onIds("#"+e.pre+"mn1_collection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_selectCollections","Select Collections")})),e.myEventCls.onIds("#"+e.pre+"mn1_dsn6","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_dsn6","Please input the map file to display electron density map")})),e.myEventCls.onIds(["#"+e.pre+"mn1_delphi","#"+e.pre+"mn1_delphi2","#"+e.pre+"tool_delphi"],"click",(function(t){e.icn3d.loadPhiFrom="delphi",$("#"+e.pre+"dl_delphi_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_delphi","Please set parameters to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_phi","click",(function(t){e.icn3d.loadPhiFrom="phi",$("#"+e.pre+"dl_phi_tabs").tabs(),$("#"+e.pre+"phitab1_tabs").tabs(),$("#"+e.pre+"phitab2_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_phi","Please input local phi or cube file to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_phiurl","click",(function(t){e.icn3d.loadPhiFrom="phiurl",$("#"+e.pre+"dl_phiurl_tabs").tabs(),$("#"+e.pre+"phiurltab1_tabs").tabs(),$("#"+e.pre+"phiurltab2_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_phiurl","Please input URL phi or cube file to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_dsn6url","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_dsn6url","Please input the map file to display electron density map")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportState","click",(function(s){let i=e.icn3d;t.setLogCmd("export state file",!1);let n=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(n+"_statefile.txt","command")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportPdbRes","click",(function(s){e.icn3d,e.htmlCls.setHtmlCls.exportPdb(),t.setLogCmd("export pdb",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSecondary","click",(function(s){e.icn3d,e.htmlCls.setHtmlCls.exportSecondary(),t.setLogCmd("export secondary structure",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphipdb","#"+e.pre+"phipdb"],"click",(function(s){let i=e.icn3d,n=i.saveFileCls.getSelectedResiduePDB();t.setLogCmd("export PDB of selected residues",!1);let l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_icn3d_residues.pdb","text",[n])})),e.myEventCls.onIds(["#"+e.pre+"delphipqr","#"+e.pre+"phipqr","#"+e.pre+"phiurlpqr"],"click",(async function(s){e.icn3d,await e.htmlCls.setHtmlCls.exportPqr(),t.setLogCmd("export pqr",!0)})),e.myEventCls.onIds("#"+e.pre+"profixpdb","click",(async function(s){let i=e.icn3d;await i.scapCls.exportPdbProfix(!1),t.setLogCmd("export pdb missing atoms",!0)})),e.myEventCls.onIds("#"+e.pre+"profixpdbh","click",(async function(s){let i=e.icn3d;await i.scapCls.exportPdbProfix(!0),t.setLogCmd("export pdb hydrogen",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportIgstrand","click",(async function(s){e.icn3d.refnumCls.exportRefnum("igstrand"),t.setLogCmd("export refnum igstrand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportKabat","click",(async function(s){e.icn3d.refnumCls.exportRefnum("kabat"),t.setLogCmd("export refnum kabat",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportImgt","click",(async function(s){e.icn3d.refnumCls.exportRefnum("imgt"),t.setLogCmd("export refnum imgt",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportStl","click",(function(s){let i=e.icn3d;t.setLogCmd("export stl file",!1),i.export3DCls.exportStlFile("")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportVrml","click",(function(s){let i=e.icn3d;t.setLogCmd("export vrml file",!1),i.export3DCls.exportVrmlFile("")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportStlStab","click",(function(s){let i=e.icn3d;t.setLogCmd("export stl stabilizer file",!1),i.threeDPrintCls.hideStabilizer(),i.threeDPrintCls.resetAfter3Dprint(),i.threeDPrintCls.addStabilizer(),i.export3DCls.exportStlFile("_stab")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportVrmlStab","click",(function(s){let i=e.icn3d;t.setLogCmd("export vrml stabilizer file",!1),i.threeDPrintCls.hideStabilizer(),i.threeDPrintCls.resetAfter3Dprint(),i.threeDPrintCls.addStabilizer(),i.export3DCls.exportVrmlFile("_stab")})),e.myEventCls.onIds("#"+e.pre+"mn6_exportInteraction","click",(async function(s){let i=e.icn3d;t.setLogCmd("export interactions",!1),void 0!==e.cfg.mmdbid&&await i.viewInterPairsCls.retrieveInteractionData(),i.viewInterPairsCls.exportInteractions()})),e.myEventCls.onIds(["#"+e.pre+"mn1_exportCanvas","#"+e.pre+"saveimage"],"click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas",!1);await i.shareLinkCls.shareLink(!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas1","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 1",!0),i.scaleFactor=1,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas2","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 2",!0),i.scaleFactor=2,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas4","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 4",!0),i.scaleFactor=4,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas8","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 8",!0),i.scaleFactor=8,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCounts","click",(function(s){let i=e.icn3d;t.setLogCmd("export counts",!1);let n='

    Total Count for atoms with coordinates:
    ';n+="",n+="
    Structure CountChain CountResidue CountAtom Count
    "+Object.keys(i.structures).length+""+Object.keys(i.chains).length+""+Object.keys(i.residues).length+""+Object.keys(i.atoms).length+"

    ",n+="Counts by Chain for atoms with coordinates:
    ";let l=Object.keys(i.chains);for(let e=0,t=l.length;e"}n+="
    StructureChainResidue CountAtom Count
    "+r+""+o+""+Object.keys(a).length+""+Object.keys(i.chains[t]).length+"

    ";let r=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(r+"_counts.html","html",n)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSelections","click",(function(s){let i=e.icn3d;t.setLogCmd("export all selections",!1),t.SetChainsAdvancedMenu();let n=i.saveFileCls.exportCustomAtoms(),l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_selections.txt","text",[n])})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSelDetails","click",(function(s){let i=e.icn3d;t.setLogCmd("export all selections with details",!1),t.SetChainsAdvancedMenu();let n=i.saveFileCls.exportCustomAtoms(!0),l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_sel_details.txt","text",[n])})),e.myEventCls.onIds(["#"+e.pre+"mn1_sharelink","#"+e.pre+"tool_sharelink"],"click",(async function(t){let s=e.icn3d;await s.shareLinkCls.shareLink()})),e.myEventCls.onIds("#"+e.pre+"mn1_replayon","click",(async function(s){let i=e.icn3d;await i.resizeCanvasCls.replayon(),t.setLogCmd("replay on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_replayoff","click",(async function(s){let i=e.icn3d;await i.resizeCanvasCls.replayoff(),t.setLogCmd("replay off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_menuall","click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus),t.applyShownMenus()})),e.myEventCls.onIds("#"+e.pre+"mn1_menusimple","click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.simpleMenus),t.applyShownMenus()})),e.myEventCls.onIds("#"+e.pre+"mn1_menupref","click",(function(s){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_menupref","Select Menus"),t.getHiddenMenusFromCache(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"apply_menupref","#"+e.pre+"apply_menupref2"],"click",(function(s){e.icn3d;var i=document.querySelectorAll('form[name="'+e.pre+'selmenu"] input:checked');for(var n of(e.htmlCls.shownMenus={},i))e.htmlCls.shownMenus[n.value]=1;t.applyShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"reset_menupref","#"+e.pre+"reset_menupref2"],"click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.simpleMenus),t.applyShownMenus(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"reset_menupref_all","#"+e.pre+"reset_menupref_all2"],"click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus),t.applyShownMenus(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"savepref","#"+e.pre+"savepref2"],"click",(function(t){let s=e.icn3d,i="[";var n=document.querySelectorAll('form[name="'+e.pre+'selmenu"] input:not(:checked)');let l=0;for(var r of n)l>0&&(i+=", "),i+='"'+r.value+'"',++l;i+="]",s.saveFileCls.saveFile("icn3d_menus_pref.txt","text",[i])})),e.myEventCls.onIds("#"+e.pre+"reload_menupreffile","click",(function(s){e.icn3d,s.preventDefault(),e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"menupreffile")[0].files[0];if(i){e.htmlCls.setHtmlCls.fileSupport();let s=new FileReader;s.onload=function(s){let i=s.target.result,n=JSON.parse(i);e.htmlCls.shownMenus={};for(let t in e.htmlCls.allMenus)-1==n.indexOf(t)&&(e.htmlCls.shownMenus[t]=1);t.applyShownMenus(),t.displayShownMenus()},s.readAsText(i)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"mn1_menuloadpref","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_menuloadpref","Please input the menu preference file")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_structure","click",(function(t){let s=e.icn3d,i=s.saveFileCls.getLinkToStructureSummary(!0),n=s.structures&&Object.keys(s.structures).length>0?"_blank":"_self";window.open(i,n)})),e.myEventCls.onIds("#"+e.pre+"mn1_alphafold","click",(function(t){e.icn3d;window.open("https://github.com/sokrypton/ColabFold","_blank")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_bind","click",(function(s){let i=e.icn3d,n="https://www.ncbi.nlm.nih.gov/pccompound?LinkName=pccompound_structure&from_uid="+i.inputid;t.setLogCmd("link to 3D protein structures bound to CID "+i.inputid+": "+n,!1);let l=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(n,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_link_vast","click",(function(s){let i,n=e.icn3d;if(void 0===n.inputid)i="https://www.ncbi.nlm.nih.gov/pccompound?term="+n.molTitle,t.setLogCmd("link to compounds "+n.molTitle+": "+i,!1);else if(void 0!==e.cfg.cid)i="https://www.ncbi.nlm.nih.gov/pccompound?LinkName=pccompound_pccompound_3d&from_uid="+n.inputid,t.setLogCmd("link to compounds with structure similar to CID "+n.inputid+": "+i,!1);else{let s=n.inputid.split("_");1===s.length?(i=e.htmlCls.baseUrl+"vastplus/vastplus.cgi?uid="+n.inputid,t.setLogCmd("link to structures similar to "+n.inputid+": "+i,!1)):2===s.length&&(i=e.htmlCls.baseUrl+"vastplus/vastplus.cgi?uid="+s[0],t.setLogCmd("link to structures similar to "+s[0]+": "+i,!1))}let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_link_pubmed","click",(function(s){let i,n=e.icn3d;if(void 0===n.inputid){i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+n.molTitle,t.setLogCmd("link to literature about "+n.molTitle+": "+i,!1);let e=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,e)}else if(n.pmid){let e=n.pmid.toString().split("_");1===e.length?(i="https://www.ncbi.nlm.nih.gov/pubmed/"+n.pmid,t.setLogCmd("link to PubMed ID "+n.pmid+": "+i,!1)):2===e.length&&(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+e[0]+" OR "+e[1],t.setLogCmd("link to PubMed IDs "+e[0]+", "+e[1]+": "+i,!1));let s=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,s)}else if(isNaN(n.inputid)){let e=n.inputid.toString().split("_");1===e.length?(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+n.inputid,t.setLogCmd("link to literature about PDB "+n.inputid+": "+i,!1)):2===e.length&&(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+e[0]+" OR "+e[1],t.setLogCmd("link to literature about PDB "+e[0]+" OR "+e[1]+": "+i,!1));let s=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,s)}else void 0!==e.cfg.cid?alert("No literature information is available for this compound in the SDF file."):alert("No literature information is available for this structure.")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_protein","click",(function(s){let i=e.icn3d,n=Object.keys(i.structures),l=Object.keys(i.chains),r="";for(let e=0,t=l.length;e0&&(r=r.substr(0,r.length-4));let o="https://www.ncbi.nlm.nih.gov/protein/?term="+r;t.setLogCmd("link to Entrez protein about PDB "+n+": "+o,!1);let a=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(o,a)}))}clickMenu2(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds(["#"+e.pre+"mn6_selectannotations","#"+e.pre+"tool_selectannotations"],"click",(async function(s){let i=e.icn3d;await i.showAnnoCls.showAnnotations(),t.setLogCmd("view annotations",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_selectall","click",(function(s){let i=e.icn3d;t.setLogCmd("select all",!0),i.selectionCls.selectAll(),i.hlUpdateCls.removeHlAll(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearall","click",(function(s){let i=e.icn3d;t.setLogCmd("clear all",!0),i.bSelectResidue=!1,i.selectionCls.selectAll(),i.hlUpdateCls.removeHlAll(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_selectdisplayed","click",(function(s){let i=e.icn3d;t.setLogCmd("select displayed set",!0),i.hAtoms=e.hashUtilsCls.cloneHash(i.viewSelectionAtoms),i.hlUpdateCls.updateHlAll()})),e.myEventCls.onIds("#"+e.pre+"mn2_clashedYes","click",(function(s){let i=e.icn3d;i.bHideClashed=!1,i.annoDomainCls.showHideClashedResidues(),i.drawCls.draw(),t.setLogCmd("clashed residues show",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_clashedNo","click",(function(s){let i=e.icn3d;i.bHideClashed=!0,t.setClashedResidues(),i.annoDomainCls.showHideClashedResidues(),i.drawCls.draw(),t.setLogCmd("clashed residues hide",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_fullstru","click",(function(s){let i=e.icn3d;t.setLogCmd("show all",!0),i.selectionCls.showAll()})),e.myEventCls.onIds("#"+e.pre+"mn2_selectcomplement","click",(function(s){let i=e.icn3d;Object.keys(i.hAtoms).lengthnon-selected"+n),$("#"+e.pre+"atomsCustomSphere2").length&&$("#"+e.pre+"atomsCustomSphere2").html(" "+n),e.htmlCls.dialogCls.openDlg("dl_aroundsphere","Select a sphere around a set of residues"),i.bSphereCalc=!1,$("#"+e.pre+"atomsCustomSphere").resizable(),$("#"+e.pre+"atomsCustomSphere2").resizable()})),e.myEventCls.onIds(["#"+e.pre+"mn2_select_chain","#"+e.pre+"definedSets"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_select_chain","Select Structure/Chain/Custom Selection")}))}clickMenu3(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsRibbon","#"+e.pre+"tool_proteinsRibbon"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","ribbon"),t.setLogCmd("style proteins ribbon",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsStrand","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","strand"),t.setLogCmd("style proteins strand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsCylinder","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","cylinder and plate"),t.setLogCmd("style proteins cylinder and plate",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","schematic"),t.setLogCmd("style proteins schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsCalpha","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","c alpha trace"),t.setLogCmd("style proteins c alpha trace",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsBackbone","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","backbone"),t.setLogCmd("style proteins backbone",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsBfactor","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","b factor tube"),t.setLogCmd("style proteins b factor tube",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsLines","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","lines"),t.setLogCmd("style proteins lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsStick","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","stick"),t.setLogCmd("style proteins stick",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsBallstick","#"+e.pre+"tool_proteinsBallstick"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","ball and stick"),t.setLogCmd("style proteins ball and stick",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsSphere","#"+e.pre+"tool_proteinsSphere"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","sphere"),t.setLogCmd("style proteins sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsNo","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","nothing"),t.setLogCmd("style proteins nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecLines","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","lines2"),t.setLogCmd("style sidec lines2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecStick","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","stick2"),t.setLogCmd("style sidec stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","ball and stick2"),t.setLogCmd("style sidec ball and stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","sphere2"),t.setLogCmd("style sidec sphere2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecNo","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","nothing"),t.setLogCmd("style sidec nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseLines","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","lines2"),t.setLogCmd("style ntbase lines2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseStick","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","stick2"),t.setLogCmd("style ntbase stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","ball and stick2"),t.setLogCmd("style ntbase ball and stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","sphere2"),t.setLogCmd("style ntbase sphere2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseNo","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","nothing"),t.setLogCmd("style ntbase nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclCartoon","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","nucleotide cartoon"),t.setLogCmd("style nucleotides nucleotide cartoon",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclBackbone","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","backbone"),t.setLogCmd("style nucleotides backbone",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","schematic"),t.setLogCmd("style nucleotides schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclPhos","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","o3 trace"),t.setLogCmd("style nucleotides o3 trace",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclLines","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","lines"),t.setLogCmd("style nucleotides lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclStick","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","stick"),t.setLogCmd("style nucleotides stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","ball and stick"),t.setLogCmd("style nucleotides ball and stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","sphere"),t.setLogCmd("style nucleotides sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclNo","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","nothing"),t.setLogCmd("style nucleotides nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligLines","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","lines"),t.setLogCmd("style chemicals lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligStick","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","stick"),t.setLogCmd("style chemicals stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","ball and stick"),t.setLogCmd("style chemicals ball and stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","schematic"),t.setLogCmd("style chemicals schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","sphere"),t.setLogCmd("style chemicals sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligNo","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","nothing"),t.setLogCmd("style chemicals nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_glycansCartYes","click",(function(s){let i=e.icn3d;i.bGlycansCartoon=!0,i.drawCls.draw(),t.setLogCmd("glycans cartoon yes",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_glycansCartNo","click",(function(s){let i=e.icn3d;i.bGlycansCartoon=!1,i.drawCls.draw(),t.setLogCmd("glycans cartoon no",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_hydrogensYes","click",(function(s){let i=e.icn3d;i.showInterCls.showHydrogens(),i.drawCls.draw(),t.setLogCmd("hydrogens",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_hydrogensNo","click",(function(s){let i=e.icn3d;i.showInterCls.hideHydrogens(),i.drawCls.draw(),t.setLogCmd("set hydrogens off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","sphere"),t.setLogCmd("style ions sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsDot","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","dot"),t.setLogCmd("style ions dot",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsNo","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","nothing"),t.setLogCmd("style ions nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("water","sphere"),t.setLogCmd("style water sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterDot","click",(function(s){e.icn3d.setOptionCls.setStyle("water","dot"),t.setLogCmd("style water dot",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterNo","click",(function(s){e.icn3d.setOptionCls.setStyle("water","nothing"),t.setLogCmd("style water nothing",!0)}))}clickMenu4(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrum","click",(function(s){e.icn3d.setOptionCls.setOption("color","spectrum"),t.setLogCmd("color spectrum",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumChain","click",(function(s){e.icn3d.setOptionCls.setOption("color","spectrum for chains"),t.setLogCmd("color spectrum for chains",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumAcrossSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorSpectrumAcross").length&&$("#"+e.pre+"atomsCustomColorSpectrumAcross").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorspectrumacrosssets","Please select sets to apply spectrum color for sets"),$("#"+e.pre+"atomsCustomColorSpectrumAcross").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorSpectrum").length&&$("#"+e.pre+"atomsCustomColorSpectrum").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorspectrumbysets","Please select sets to apply spectrum color for residues"),$("#"+e.pre+"atomsCustomColorSpectrum").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbowAcrossSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorRainbowAcross").length&&$("#"+e.pre+"atomsCustomColorRainbowAcross").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorrainbowacrosssets","Please select sets to apply rainbow color for sets"),$("#"+e.pre+"atomsCustomColorRainbowAcross").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbowSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorRainbow").length&&$("#"+e.pre+"atomsCustomColorRainbow").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorrainbowbysets","Please select sets to apply rainbow color for residues"),$("#"+e.pre+"atomsCustomColorRainbow").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbow","click",(function(s){e.icn3d.setOptionCls.setOption("color","rainbow"),t.setLogCmd("color rainbow",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrRainbowChain","#"+e.pre+"tool_clrRainbowChain"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","rainbow for chains"),t.setLogCmd("color rainbow for chains",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrChain","#"+e.pre+"tool_clrChain"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","chain"),t.setLogCmd("color chain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrStructure","click",(function(s){e.icn3d.setOptionCls.setOption("color","structure"),t.setLogCmd("color structure",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrdomain","click",(function(s){e.icn3d.setOptionCls.setOption("color","domain"),t.setLogCmd("color domain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrsets","click",(function(s){e.icn3d.setOptionCls.setOption("color","defined sets"),t.setLogCmd("color defined sets",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrSSGreen","#"+e.pre+"tool_clrSSGreen"],"click",(function(s){let i=e.icn3d;i.sheetcolor="green",i.setOptionCls.setOption("color","secondary structure green"),t.setLogCmd("color secondary structure green",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSSYellow","click",(function(s){let i=e.icn3d;i.sheetcolor="yellow",i.setOptionCls.setOption("color","secondary structure yellow"),t.setLogCmd("color secondary structure yellow",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSSSpectrum","click",(function(s){e.icn3d.setOptionCls.setOption("color","secondary structure spectrum"),t.setLogCmd("color secondary structure spectrum",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrResidue","click",(function(s){e.icn3d.setOptionCls.setOption("color","residue"),t.setLogCmd("color residue",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrResidueCustom","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_rescolorfile","Please input the file on residue colors")})),e.myEventCls.onIds("#"+e.pre+"reload_rescolorfile","click",(function(s){let i=e.icn3d;s.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"rescolorfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let s=new FileReader;s.onload=function(s){let n=s.target.result.replace(/#/g,"");i.customResidueColors=JSON.parse(n);for(let t in i.customResidueColors)i.customResidueColors[t.toUpperCase()]=e.parasCls.thr("#"+i.customResidueColors[t]);i.setOptionCls.setOption("color","residue custom"),t.setLogCmd("color residue custom | "+n,!0)},s.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_customcolorfile","click",(function(s){let i=e.icn3d;s.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.startColor=$("#"+e.pre+"startColor").val(),i.midColor=$("#"+e.pre+"midColor").val(),i.endColor=$("#"+e.pre+"endColor").val();let n=t.setLegendHtml();$("#"+e.pre+"dl_legend_html").html(n),e.htmlCls.dialogCls.openDlg("dl_legend","Color range"),i.addTrackCls.setCustomFile("color",i.startColor,i.midColor,i.endColor)})),e.myEventCls.onIds("#"+e.pre+"mn6_customref","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_customref","Set custom reference numbers")})),e.myEventCls.onIds("#"+e.pre+"reload_customreffile","click",(function(s){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=$("#"+i.pre+"cstreffile")[0].files[0];if(n){e.utilsCls.checkFileAPI();let s=new FileReader;s.onload=async function(e){let s=e.target.result;await i.refnumCls.parseCustomRefFile(s),s=s.replace(/\r/g,"").replace(/\n/g,"\\n"),t.setLogCmd("custom refnum | "+s,!0)},s.readAsText(n)}else alert("Please select a file before clicking 'Apply'")})),e.myEventCls.onIds("#"+e.pre+"remove_legend","click",(function(s){e.icn3d,s.preventDefault(),$("#"+e.pre+"legend").hide(),t.setLogCmd("remove legend",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_customtubefile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.addTrackCls.setCustomFile("tube")})),e.myEventCls.onIds("#"+e.pre+"mn4_clrCharge","click",(function(s){e.icn3d.setOptionCls.setOption("color","charge"),t.setLogCmd("color charge",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrHydrophobic","click",(function(s){e.icn3d.setOptionCls.setOption("color","hydrophobic"),t.setLogCmd("color hydrophobic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrNormalizedHP","click",(function(s){e.icn3d.setOptionCls.setOption("color","normalized hydrophobic"),t.setLogCmd("color normalized hydrophobic",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrAtom","#"+e.pre+"tool_clrAtom"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","atom"),t.setLogCmd("color atom",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrBfactor","click",(function(s){e.icn3d.setOptionCls.setOption("color","b factor"),t.setLogCmd("color b factor",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrConfidence","click",(function(s){e.icn3d.setOptionCls.setOption("color","confidence"),t.setLogCmd("color confidence",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIgstrand","click",(function(s){e.icn3d.setOptionCls.setOption("color","ig strand"),t.setLogCmd("color ig strand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIgproto","click",(function(s){e.icn3d.setOptionCls.setOption("color","ig protodomain"),t.setLogCmd("color ig protodomain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrArea","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_colorbyarea","Color based on residue's solvent accessibility")})),e.myEventCls.onIds("#"+e.pre+"applycolorbyarea","click",(function(s){let i=e.icn3d;i.midpercent=$("#"+e.pre+"midpercent").val(),i.setOptionCls.setOption("color","area"),t.setLogCmd("color area | "+i.midpercent,!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrBfactorNorm","click",(function(s){e.icn3d.setOptionCls.setOption("color","b factor percentile"),t.setLogCmd("color b factor percentile",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIdentity","click",(function(s){e.icn3d.setOptionCls.setOption("color","identity"),t.setLogCmd("color identity",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrConserved","click",(function(s){e.icn3d.setOptionCls.setOption("color","conservation"),t.setLogCmd("color conservation",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrCustom","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_clr","Color picker")})),$(document).on("click",".icn3d-color-rad-text",(function(s){let i=e.icn3d;s.stopImmediatePropagation();let n=$(this).attr("color");i.setOptionCls.setOption("color",n),t.setLogCmd("color "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSave","click",(function(s){e.icn3d.setOptionCls.saveColor(),t.setLogCmd("save color",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrApplySave","click",(function(s){e.icn3d.setOptionCls.applySavedColor(),t.setLogCmd("apply saved color",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_styleSave","click",(function(s){e.icn3d.setOptionCls.saveStyle(),t.setLogCmd("save style",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_styleApplySave","click",(function(s){e.icn3d.setOptionCls.applySavedStyle(),t.setLogCmd("apply saved style",!0)}))}clickMenu5(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds("#"+e.pre+"mn5_neighborsYes","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.applyMapCls.removeLastSurface(),i.applyMapCls.applySurfaceOptions(),i.bRender&&i.drawCls.render(),t.setLogCmd("set surface neighbors on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_neighborsNo","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.applyMapCls.removeLastSurface(),i.applyMapCls.applySurfaceOptions(),i.bRender&&i.drawCls.render(),t.setLogCmd("set surface neighbors off",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn5_surfaceVDW","#"+e.pre+"tool_surfaceVDW"],"click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","Van der Waals surface"),t.setLogCmd("set surface Van der Waals surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceSAS","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","solvent accessible surface"),t.setLogCmd("set surface solvent accessible surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceMolecular","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","molecular surface"),t.setLogCmd("set surface molecular surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceVDWContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","Van der Waals surface with context"),t.setLogCmd("set surface Van der Waals surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceSASContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","solvent accessible surface with context"),t.setLogCmd("set surface solvent accessible surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceMolecularContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","molecular surface with context"),t.setLogCmd("set surface molecular surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceNo","click",(function(s){e.icn3d.setOptionCls.setOption("surface","nothing"),t.setLogCmd("set surface nothing",!0)})),$(document).on("click","."+e.pre+"mn5_opacity",(function(s){let i=e.icn3d;i.transparentRenderOrder=!1;let n=$(this).attr("v");i.setOptionCls.setOption("opacity",n),t.setLogCmd("set surface opacity "+n,!0)})),$(document).on("click","."+e.pre+"mn5_opacityslow",(function(s){let i=e.icn3d;i.transparentRenderOrder=!0;let n=$(this).attr("v");i.setOptionCls.setOption("opacity",n),t.setLogCmd("set surface2 opacity "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_wireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("wireframe","yes"),t.setLogCmd("set surface wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_wireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("wireframe","no"),t.setLogCmd("set surface wireframe off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_elecmap2fofc","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_elecmap2fofc","2Fo-Fc Electron Density Map")})),e.myEventCls.onIds("#"+e.pre+"mn5_elecmapfofc","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_elecmapfofc","Fo-Fc Electron Density Map")})),e.myEventCls.onIds(["#"+e.pre+"mn5_elecmapNo","#"+e.pre+"elecmapNo2","#"+e.pre+"elecmapNo3","#"+e.pre+"elecmapNo4","#"+e.pre+"elecmapNo5"],"click",(function(s){e.icn3d.setOptionCls.setOption("map","nothing"),t.setLogCmd("setoption map nothing",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphimapNo","#"+e.pre+"phimapNo","#"+e.pre+"phiurlmapNo","#"+e.pre+"mn1_phimapNo"],"click",(function(s){e.icn3d.setOptionCls.setOption("phimap","nothing"),t.setLogCmd("setoption phimap nothing",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphimapNo2","#"+e.pre+"phimapNo2","#"+e.pre+"phiurlmapNo2"],"click",(function(s){e.icn3d.setOptionCls.setOption("phisurface","nothing"),t.setLogCmd("setoption phisurface nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"applymap2fofc","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"sigma2fofc").val());await i.densityCifParserCls.densityCifParser(i.inputid,"2fofc",n),t.setLogCmd("set map 2fofc sigma "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applymapfofc","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"sigmafofc").val());await i.densityCifParserCls.densityCifParser(i.inputid,"fofc",sigma2fofc),t.setLogCmd("set map fofc sigma "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_mapwireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("mapwireframe","yes"),t.setLogCmd("set map wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_mapwireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("mapwireframe","no"),t.setLogCmd("set map wireframe off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmap","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_emmap","EM Density Map")})),e.myEventCls.onIds(["#"+e.pre+"mn5_emmapNo","#"+e.pre+"emmapNo2"],"click",(function(s){e.icn3d.setOptionCls.setOption("emmap","nothing"),t.setLogCmd("setoption emmap nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"applyemmap","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"empercentage").val());await i.densityCifParserCls.densityCifParser(i.inputid,"em",n,i.emd),t.setLogCmd("set emmap percentage "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmapwireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("emmapwireframe","yes"),t.setLogCmd("set emmap wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmapwireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("emmapwireframe","no"),t.setLogCmd("set emmap wireframe off",!0)}))}clickMenu6(){let e=this.icn3dui,t=e.icn3d;if(e.bNode)return;let s=this;e.myEventCls.onIds("#"+e.pre+"mn6_assemblyYes","click",(function(t){let i=e.icn3d;i.bAssembly=!0,s.setLogCmd("set assembly on",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_assemblyNo","click",(function(t){let i=e.icn3d;i.bAssembly=!1,s.setLogCmd("set assembly off",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefYes","click",(async function(t){let i=e.icn3d;i.bRunRefnumAgain=!0,s.setLogCmd("ig refnum on",!0),i.bAnnoShown||await i.showAnnoCls.showAnnotations();await i.annotationCls.setAnnoTabIg(!0),i.bRunRefnumAgain=!1})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefTpl","click",(async function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_igrefTpl","Choose an Ig template")})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefTpl_apply","click",(async function(t){e.icn3d,e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"refTpl").val();await s.setIgTemplate(i),s.setLogCmd("ig template "+i,!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_alignrefTpl","click",(async function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_alignrefTpl","Align with an Ig template")})),e.myEventCls.onIds("#"+e.pre+"mn6_alignrefTpl_apply","click",(async function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"refTpl2").val(),l=e.hashUtilsCls.cloneHash(i.hAtoms),r=e.htmlCls.baseUrl+"icn3d/refpdb/"+n+".pdb";await i.pdbParserCls.downloadUrl(r,"pdb",void 0,n),s.setLogCmd("load url "+r+" | type pdb",!0);let o=n.replace(/_/g,"").substr(0,4),a=i.structures[o][0];i.hAtoms=e.hashUtilsCls.unionHash(l,i.chains[a]),e.cfg.aligntool="tmalign",await i.realignParserCls.realignOnStructAlign(),s.setLogCmd("realign on tmalign",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefNo","click",(async function(t){let i=e.icn3d;s.setLogCmd("ig refnum off",!0),await i.refnumCls.hideIgRefNum()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelAtoms","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addAtomLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add atom labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelElements","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addAtomLabels(i.hAtoms,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add element labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelResidues","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add residue labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelResnum","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms,void 0,void 0,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add residue number labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelRefnum","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms,void 0,void 0,void 0,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add reference number labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelIg","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addIgLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add ig labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelChains","click",(function(t){let i=e.icn3d;i.analysisCls.addChainLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add chain labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelTermini","click",(function(t){let i=e.icn3d;i.analysisCls.addTerminiLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add terminal labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelYes","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_addlabel","Add custom labels by selection"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelSelection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_addlabelselection","Add custom labels by the selected")})),e.myEventCls.onIds("#"+e.pre+"mn6_labelColor","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_labelColor","Change color for all labels")})),e.myEventCls.onIds(["#"+e.pre+"mn2_saveselection","#"+e.pre+"tool_saveselection"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_saveselection","Save the selected")})),e.myEventCls.onIds(["#"+e.pre+"mn6_addlabelNo","#"+e.pre+"removeLabels"],"click",(function(t){let i=e.icn3d;i.labelcolor=void 0,i.pickpair=!1;s.setLogCmd("set labels off",!0);for(let e in i.labels)i.labels[e]=[];i.drawCls.draw()})),$(document).on("click","."+e.pre+"mn6_labelscale",(function(t){let i=e.icn3d,n=$(this).attr("v");i.labelScale=n,i.drawCls.draw(),s.setLogCmd("set label scale "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_distanceYes","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_distance","Measure the distance of atoms"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0,s.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distTwoSets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_disttwosets","Measure the distance between two sets"),s.setSetsMenus("atomsCustomDist"),i.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distManySets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_distmanysets","Measure the pairwise distances among many sets"),s.setSetsMenus("atomsCustomDistTable"),i.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_angleManySets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_anglemanysets","Measure the pairwise angles among many sets"),s.setSetsMenus("atomsCustomAngleTable"),i.bMeasureAngle=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distanceNo","click",(function(t){let i=e.icn3d;i.pickpair=!1;s.setLogCmd("set lines off",!0),i.labels.distance=[],i.lines.distance=[],i.distPnts=[],i.pk=2,i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn5_cartoonshape","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_cartoonshape","Draw cartoon for a set");s.setSetsMenus("cartoonshape",!0),i.bCartoonshape=!0})),e.myEventCls.onIds("#"+e.pre+"mn5_linebtwsets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_linebtwsets","Draw a line between two sets"),s.setSetsMenus("linebtwsets"),i.bLinebtwsets=!0})),e.myEventCls.onIds(["#"+e.pre+"mn2_selectedcenter","#"+e.pre+"zoomin_selection","#"+e.pre+"tool_selectedcenter"],"click",(function(t){let i=e.icn3d;i.transformCls.zoominSelection(),i.drawCls.draw(),s.setLogCmd("zoom selection",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_center","click",(function(t){let i=e.icn3d;i.applyCenterCls.centerSelection(),i.drawCls.draw(),s.setLogCmd("center selection",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_resetOrientation","#"+e.pre+"resetOrientation","#"+e.pre+"tool_resetOrientation"],"click",(function(t){let i=e.icn3d;i.transformCls.resetOrientation(),i.drawCls.draw(),s.setLogCmd("reset orientation",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_chemicalbindingshow","#"+e.pre+"chemicalbindingshow"],"click",(function(t){e.icn3d.setOptionCls.setOption("chemicalbinding","show"),s.setLogCmd("set chemicalbinding show",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_chemicalbindinghide","#"+e.pre+"chemicalbindinghide"],"click",(function(t){e.icn3d.setOptionCls.setOption("chemicalbinding","hide"),s.setLogCmd("set chemicalbinding hide",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_sidebyside","click",(function(t){let i=e.icn3d;if(i.bInputfile)return void alert("Side-by-Side does NOT work when the input is from a local file.");let n=i.shareLinkCls.shareLinkUrl(void 0);n=n.replace("icn3d/full.html?","icn3d/full2.html?"),n=n.replace("icn3d/?","icn3d/full2.html?"),n+="&closepopup=1";let l=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(n,l),s.setLogCmd("side by side | "+n,!0)})),$(document).on("click","#"+e.pre+"mn2_translate",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_translate","Translate the X,Y,Z coordinates of the structure")})),$(document).on("click","#"+e.pre+"mn6_angleTwoSets",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_angle","Measure the angle between two vectors")})),$(document).on("click","#"+e.pre+"mn2_matrix",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_matrix","Apply matrix to the X,Y,Z coordinates of the structure")})),$(document).on("click","."+e.pre+"mn6_rotate",(function(t){let i=e.icn3d,n=$(this).attr("v").toLowerCase(),l=n.split(" ")[1];s.setLogCmd(n,!0),i.bStopRotate=!1,i.transformCls.rotateCount=0,i.transformCls.rotateCountMax=6e3,i.ROT_DIR=l,i.resizeCanvasCls.rotStruc(l)})),$(document).on("click","."+e.pre+"mn6_rotate90",(function(t){let i,n=e.icn3d,l=$(this).attr("v").toLowerCase(),r=l.split(" ")[1];s.setLogCmd(l,!0),"x"==r?i=new THREE.Vector3(1,0,0):"y"==r?i=new THREE.Vector3(0,1,0):"z"==r&&(i=new THREE.Vector3(0,0,1));let o=.5*Math.PI;n.transformCls.setRotation(i,o)})),e.myEventCls.onIds("#"+e.pre+"mn6_cameraPers","click",(function(t){e.icn3d.setOptionCls.setOption("camera","perspective"),s.setLogCmd("set camera perspective",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_cameraOrth","click",(function(t){e.icn3d.setOptionCls.setOption("camera","orthographic"),s.setLogCmd("set camera orthographic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdBlack","click",(function(t){e.icn3d.setStyleCls.setBackground("black")})),e.myEventCls.onIds("#"+e.pre+"tool_bkgd","click",(function(t){let s=e.icn3d;"black"==s.opts.background?s.setStyleCls.setBackground("white"):s.setStyleCls.setBackground("black")})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdGrey","click",(function(t){e.icn3d.setStyleCls.setBackground("grey")})),e.myEventCls.onIds(["#"+e.pre+"mn6_bkgdWhite","#"+e.pre+"tool_bkgdWhite"],"click",(function(t){e.icn3d.setStyleCls.setBackground("white")})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdTransparent","click",(function(t){e.icn3d.setStyleCls.setBackground("transparent")})),e.myEventCls.onIds("#"+e.pre+"mn6_showfogYes","click",(function(t){let i=e.icn3d;i.opts.fog="yes",i.fogCls.setFog(!0),i.drawCls.draw(),s.setLogCmd("set fog on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showfogNo","click",(function(t){let i=e.icn3d;i.opts.fog="no",i.fogCls.setFog(!0),i.drawCls.draw(),s.setLogCmd("set fog off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showslabYes","click",(function(t){e.icn3d.setOptionCls.setOption("slab","yes"),s.setLogCmd("set slab on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showslabNo","click",(function(t){e.icn3d.setOptionCls.setOption("slab","no"),s.setLogCmd("set slab off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisYes","click",(function(t){e.icn3d.setOptionCls.setOption("axis","yes"),s.setLogCmd("set axis on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisSel","click",(function(t){let i=e.icn3d;i.pc1=!0,i.axesCls.setPc1Axes(),s.setLogCmd("set pc1 axis",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisNo","click",(function(t){let i=e.icn3d;i.pc1=!1,i.axes=[],i.setOptionCls.setOption("axis","no"),s.setLogCmd("set axis off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_symmetry","click",(async function(t){let s=e.icn3d;s.bAxisOnly=!1,await s.symdCls.retrieveSymmetry(Object.keys(s.structures)[0])})),e.myEventCls.onIds("#"+e.pre+"mn6_symd","click",(async function(t){let i=e.icn3d;i.bAxisOnly=!1,await i.symdCls.retrieveSymd(),i.bSymd=!0,s.setLogCmd("symd symmetry",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_clear_sym","click",(function(t){let i=e.icn3d;i.symdArray=[],i.drawCls.draw(),s.setLogCmd("clear symd symmetry",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_axes_only","click",(function(t){let i=e.icn3d;i.bAxisOnly=!0,i.drawCls.draw(),s.setLogCmd("show axis",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_area","click",(function(t){e.icn3d.analysisCls.calculateArea(),s.setLogCmd("area",!0)})),e.myEventCls.onIds("#"+e.pre+"applysymmetry","click",(function(t){let i=e.icn3d;i.bAxisOnly=!1;let n=$("#"+e.pre+"selectSymmetry").val();i.symmetrytitle="none"===n?void 0:n,i.drawCls.draw(),s.setLogCmd("symmetry "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"clearsymmetry","click",(function(t){let i=e.icn3d;i.symmetrytitle=void 0,i.drawCls.draw(),s.setLogCmd("symmetry none",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_hbondsYes","#"+e.pre+"hbondsYes"],"click",(function(t){let i=e.icn3d;s.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomHbond").length&&$("#"+e.pre+"atomsCustomHbond").html(" "+n),$("#"+e.pre+"atomsCustomHbond2").length&&$("#"+e.pre+"atomsCustomHbond2").html(" "+n),e.htmlCls.dialogCls.openDlg("dl_hbonds","Hydrogen bonds/interactions between two sets of atoms"),i.bHbondCalc=!1,$("#"+e.pre+"atomsCustomHbond").resizable(),$("#"+e.pre+"atomsCustomHbond2").resizable()})),e.myEventCls.onIds(["#"+e.pre+"mn6_contactmap"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_contact","Set contact map")})),e.myEventCls.onIds(["#"+e.pre+"mn6_DSSP"],"click",(async function(t){let i=e.icn3d;s.setLogCmd("set dssp sse",!0),await i.pdbParserCls.applyCommandDssp(),i.bResetAnno=!0,i.bAnnoShown&&(await i.showAnnoCls.showAnnotations(),i.annotationCls.resetAnnoTabAll())})),e.myEventCls.onIds("#"+e.pre+"mn6_hbondsNo","click",(function(t){let s=e.icn3d;s.showInterCls.hideHbondsContacts(),s.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerYes","click",(function(t){let i=e.icn3d;i.threeDPrintCls.addStabilizer(),i.threeDPrintCls.prepareFor3Dprint(),s.setLogCmd("stabilizer",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerNo","click",(function(t){let i=e.icn3d;s.setLogCmd("set stabilizer off",!0),i.threeDPrintCls.hideStabilizer(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerOne","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_stabilizer","Add One Stabilizer"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerRmOne","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_stabilizer_rm","Remove One Stabilizer"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn1_thicknessSet","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_thickness","Set Thickness for 3D Printing")})),e.myEventCls.onIds("#"+e.pre+"mn3_setThickness","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_thickness2","Style Preferences")})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsYes","click",(function(t){let i=e.icn3d;s.setLogCmd("disulfide bonds",!0),i.showInterCls.showSsbonds()})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsExport","click",(function(t){e.icn3d.viewInterPairsCls.exportSsbondPairs(),s.setLogCmd("export disulfide bond pairs",!1)})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsNo","click",(function(t){let i=e.icn3d;i.opts.ssbonds="no";s.setLogCmd("set disulfide bonds off",!0),i.lines.ssbond=[],i.setOptionCls.setStyle("sidec","nothing")})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsYes","click",(function(t){let i=e.icn3d;s.setLogCmd("cross linkage",!0),i.showInterCls.showClbonds()})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsExport","click",(function(t){e.icn3d.viewInterPairsCls.exportClbondPairs(),s.setLogCmd("export cross linkage pairs",!1)})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsNo","click",(function(t){let i=e.icn3d;i.opts.clbonds="no";s.setLogCmd("set cross linkage off",!0),i.lines.clbond=[],i.setOptionCls.setStyle("sidec","nothing")})),$("#"+e.pre+"newvs2").on("submit",(function(){let s=t.saveFileCls.getAtomPDB(t.hAtoms,void 0,void 0,void 0,void 0,void 0,void 0,!0);return $("#"+e.pre+"pdbstr").val(s),!0})),$("#"+e.pre+"fssubmit").on("click",(function(){let e=t.saveFileCls.getAtomPDB(t.hAtoms),s=window.open("","_blank");s.document.body.innerHTML="\n\nLoading Foldseek\n\n\n\n
    Foldseek is loading...
    \n",$.ajax({url:"https://search.foldseek.com/api/ticket",type:"POST",data:{q:e,database:["afdb50","afdb-swissprot","gmgcl_id","pdb100","afdb-proteome","mgnify_esm30"],mode:"3diaa"},dataType:"text",success:function(e){s.location="https://search.foldseek.com/queue/"+JSON.parse(e).id},error:function(e,t,s){console.log("Error in submitting data to Foldseek...")}})})),e.myEventCls.onIds("#"+e.pre+"jn_copy","click",(function(t){e.icn3d;let s=$("#"+e.pre+"jn_commands").val();navigator.clipboard.writeText(s)}))}setLogCmd(e,t,s){var i=this.icn3dui,n=i.icn3d;if(""===e.trim())return!1;let l=e.indexOf("|||");-1!==l&&(e=e.substr(0,l));let r={};if(n.quaternion||(n._zoomFactor=1,n.mouseChange=new THREE.Vector2(0,0),n.quaternion=new THREE.Quaternion(0,0,0,1)),r.factor=n._zoomFactor,r.mouseChange=n.mouseChange,r.quaternion={},r.quaternion._x=parseFloat(n.quaternion._x).toPrecision(5),r.quaternion._y=parseFloat(n.quaternion._y).toPrecision(5),r.quaternion._z=parseFloat(n.quaternion._z).toPrecision(5),r.quaternion._w=parseFloat(n.quaternion._w).toPrecision(5),t&&n.bAddCommands)if(n.STATENUMBER "+n.logs.join("\n> ")+"\n> "),$("#"+i.pre+"logtext")[0]&&$("#"+i.pre+"logtext").scrollTop($("#"+i.pre+"logtext")[0].scrollHeight)}n.setStyleCls.adjustIcon()}}class d{constructor(e){this.icn3dui=e}getLink(e,t,s,i){return this.icn3dui.htmlCls.setHtmlCls.getLink(e,t,s,i)}getMenuText(e,t,s,i,n){return this.icn3dui.htmlCls.setHtmlCls.getMenuText(e,t,s,i,n)}getMenuUrl(e,t,s,i,n){return this.icn3dui.htmlCls.setHtmlCls.getMenuUrl(e,t,s,i,n)}getMenuSep(){return this.icn3dui.htmlCls.setHtmlCls.getMenuSep()}getLinkWrapper(e,t,s,i,n,l){let r=this.icn3dui;return r.icn3d,r.htmlCls.setHtmlCls.getLinkWrapper(e,t,s,i,n,l)}getLinkWrapper2(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.setHtmlCls.getLinkWrapper2(e,t,s,i,n)}getRadio(e,t,s,i,n,l){return this.icn3dui.htmlCls.setHtmlCls.getRadio(e,t,s,i,n,l)}getRadClr(e,t,s,i,n,l,r){return this.icn3dui.htmlCls.setHtmlCls.getRadioColor(e,t,s,i,n,l,r)}setTopMenusHtml(e,t,s){let i=this.icn3dui;if(i.bNode)return"";let n="black"==i.htmlCls.opts.background?i.htmlCls.GREYD:"black",l="";l+="
    ",l+=i.htmlCls.divStr+"popup' class='icn3d-text icn3d-popup'>
    ",l+=this.setReplayHtml(),l+="\x3c!--https://forum.jquery.com/topic/looking-for-a-jquery-horizontal-menu-bar--\x3e",l+=i.htmlCls.divStr+"mnlist' style='position:absolute; z-index:999; float:left; display:table-row; margin-top: -2px;'>",l+="";let r='",l+=r+this.setMenu2()+"",l+=r+this.setMenu2b()+"",l+=r+this.setMenu3()+"",l+=r+this.setMenu4()+"",l+=r+this.setMenu5()+"",l+=r+this.setMenu6()+"",i.htmlCls.shownMenus=i.hashUtilsCls.cloneHash(i.htmlCls.simpleMenus),l+=r+"
    "+t,l+="
    "+s,l+=r+'
    '+i.htmlCls.space2+'Toolbar '+i.htmlCls.space2+'
    ",l+=r+'
    '+i.htmlCls.space2+' ?
    ',l+="
    ",l+="
    ';if(l+=r+this.setMenu1()+"
    ",l+="",l+=this.setTools(),l+=i.htmlCls.divStr+"title' class='icn3d-commandTitle' style='font-size:1.2em; font-weight:normal; position:absolute; z-index:1; float:left; display:table-row; margin: 85px 0px 0px 5px; color:"+n+"; width:"+i.htmlCls.WIDTH+"px'>",l+=i.htmlCls.divStr+"viewer' style='position:relative; width:100%; height:100%; background-color: "+i.htmlCls.GREYD+";'>",l+=i.htmlCls.divStr+"mnLogSection'>",l+="
    ",l+=" ",void 0===i.cfg.mmtfid){let e="top:180px; font-size: 1.8em;";l+=i.htmlCls.divStr+"wait' style='position:absolute; left:50px; "+e+" color: #444444;'>Loading data..."}l+="Your browser does not support WebGL.",(void 0===i.cfg.showcommand||i.cfg.showcommand)&&(l+=this.setLogWindow()),l+="",l+="",l+=i.htmlCls.setDialogCls.setDialogs(),l+=i.htmlCls.setDialogCls.setCustomDialogs(),$("#"+e).html(l),$("accordion").accordion({collapsible:!0,active:!1,heightStyle:"content"}),$("accordion div").removeClass("ui-accordion-content ui-corner-all ui-corner-bottom ui-widget-content"),$(".icn3d-mn-item").menu({position:{my:"left top",at:"right top"}}),$(".icn3d-mn-item").hover((function(){}),(function(){$("accordion").accordion("option","active","none")})),$("#"+i.pre+"accordion1").hover((function(){$("#"+i.pre+"accordion1 div").css("display","block")}),(function(){$("#"+i.pre+"accordion1 div").css("display","none")})),$("#"+i.pre+"accordion2").hover((function(){$("#"+i.pre+"accordion2 div").css("display","block")}),(function(){$("#"+i.pre+"accordion2 div").css("display","none")})),$("#"+i.pre+"accordion2b").hover((function(){$("#"+i.pre+"accordion2b div").css("display","block")}),(function(){$("#"+i.pre+"accordion2b div").css("display","none")})),$("#"+i.pre+"accordion3").hover((function(){$("#"+i.pre+"accordion3 div").css("display","block")}),(function(){$("#"+i.pre+"accordion3 div").css("display","none")})),$("#"+i.pre+"accordion4").hover((function(){$("#"+i.pre+"accordion4 div").css("display","block")}),(function(){$("#"+i.pre+"accordion4 div").css("display","none")})),$("#"+i.pre+"accordion5").hover((function(){$("#"+i.pre+"accordion5 div").css("display","block")}),(function(){$("#"+i.pre+"accordion5 div").css("display","none")})),$("#"+i.pre+"accordion6").hover((function(){$("#"+i.pre+"accordion6 div").css("display","block")}),(function(){$("#"+i.pre+"accordion6 div").css("display","none")}))}setTopMenusHtmlMobile(e,t,s){let i=this.icn3dui;if(i.bNode)return"";let n="black"==i.htmlCls.opts.background?i.htmlCls.GREYD:"black",l="";if(l+="
    ",l+=i.htmlCls.divStr+"popup' class='icn3d-text icn3d-popup'>
    ",l+=this.setReplayHtml(),!i.utilsCls.isMobile()){let e=i.htmlCls.WIDTH-40+5;l+=i.htmlCls.buttonStr+"fullscreen' style='position:absolute; z-index:1999; display:block; padding:0px; margin: 12px 0px 0px "+e+"px; width:30px; height:34px; border-radius:4px; border:none; background-color:#f6f6f6;' title='Full screen'>",l+="",l+="",l+="",l+="",l+=""}l+="\x3c!--https://forum.jquery.com/topic/looking-for-a-jquery-horizontal-menu-bar--\x3e",l+=i.htmlCls.divStr+"mnlist' style='position:absolute; z-index:999; float:left; display:block; margin: 5px 0px 0px 5px;'>",l+="
    ",l+="",i.cfg.notebook?l+="

    ":l+="

    ",l+="
    ";let r="
  • File",l+=this.setMenu1_base(),l+=r+">Select",l+=this.setMenu2_base(),l+=r+">View",l+=this.setMenu2b_base(),l+=r+" id='"+i.pre+"style'>Style",l+=this.setMenu3_base(),l+=r+" id='"+i.pre+"color'>Color",l+=this.setMenu4_base(),l+=r+">Analysis",l+=this.setMenu5_base(),l+=r+">Help",l+=this.setMenu6_base(),i.htmlCls.shownMenus=i.hashUtilsCls.cloneHash(i.htmlCls.simpleMenus),l+="
  • "+t,l+="
    "+s,l+="
  • Alternate",l+="",l+="
  • ",l+="
    ",l+="
    ",l+="",l+=i.htmlCls.divStr+"title' class='icn3d-commandTitle' style='font-size:1.2em; font-weight:normal; position:absolute; z-index:1; float:left; display:block; margin: 12px 0px 0px 40px; color:"+n+"; width:"+(i.htmlCls.WIDTH-40).toString()+"px'>",l+=i.htmlCls.divStr+"viewer' style='position:relative; width:100%; height:100%; background-color: "+i.htmlCls.GREYD+";'>",l+=i.htmlCls.divStr+"mnLogSection'>",l+="
    ",l+="",void 0===i.cfg.mmtfid){let e="top:180px; font-size: 1.8em;";l+=i.htmlCls.divStr+"wait' style='position:absolute; left:50px; "+e+" color: #444444;'>Loading data..."}l+="Your browser does not support WebGL.",(void 0===i.cfg.showcommand||i.cfg.showcommand)&&(l+=this.setLogWindow()),l+="",l+="",l+=i.htmlCls.setDialogCls.setDialogs(),l+=i.htmlCls.setDialogCls.setCustomDialogs(),$("#"+e).html(l),$("accordion").accordion({collapsible:!0,active:!1,heightStyle:"content"}),$("accordion div").removeClass("ui-accordion-content ui-corner-all ui-corner-bottom ui-widget-content"),$(".icn3d-mn-item").menu({position:{my:"left top",at:"right top"}}),$(".icn3d-mn-item").hover((function(){}),(function(){$("accordion").accordion("option","active","none")})),$("#"+i.pre+"accordion0").hover((function(){$("#"+i.pre+"accordion0 div").css("display","block")}),(function(){$("#"+i.pre+"accordion0 div").css("display","none")}))}setReplayHtml(e){let t=this.icn3dui;if(t.bNode)return"";let s="";return s+=t.htmlCls.divStr+"replay' style='display:none; position:absolute; z-index:9999; top:"+parseInt(t.htmlCls.HEIGHT-100).toString()+"px; left:20px;'>",s+="
    ",s+='',s+="",s+='',s+='',s+="",s+="
    ",s+=t.htmlCls.divStr+"replay_menu' style='background-color:#DDDDDD; padding:3px; font-weight:bold;'>",s+=t.htmlCls.divStr+"replay_cmd' style='background-color:#DDDDDD; padding:3px; max-width:250px'>",s+="",s}setTools(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+=e.htmlCls.divStr+"selection' style='display:none;'>
    ",t+="",t+=this.setTools_base(),t+="
    ",t+="
    ",t}setButton(e,t,s,i,n){let l=this.icn3dui;return l.bNode?"":(n=void 0!==n?"color:"+n:"","
    ")}setIcon(e,t,s,i,n,l,r){let o=this.icn3dui;if(o.bNode)return"";let a,d=r?"color:#f8b84e; ":"color:#1c94c4; ",c=" background-color:#EEE; ",h="text"==e?"":"cursor:pointer;";return a=l?'
    '+i+"
    ":'',"link"==e?''+a+"":a}setTools_base(){if(this.icn3dui.bNode)return"";let e="",t="regular",s="",i="";return e+=s+this.setIcon(t,"tool_mmdbafid","Input PDB/MMDB/AlphaFold IDs","id",void 0,!0)+"",e+=s+this.setIcon(t,"tool_pdbfile","Input PDB Files (appendable)","file-alt")+"",e+=s+this.setIcon(t,"tool_sharelink","Get Share Link","link")+"",e+=s+this.setIcon(t,"saveimage","Save iCn3D PNG Image","camera")+"",e+=i+this.setIcon(t,"tool_definedsets","Defined Sets","object-group")+"",e+=s+this.setIcon(t,"tool_aroundsphere","Select by Distance","dot-circle")+"",e+=s+this.setIcon(t,"tool_saveselection","Save Selection as a Set","save")+"",e+=s+this.setIcon(t,"toggleHighlight","Toggle Highlight","highlighter")+"",e+=i+this.setIcon(t,"show_selected","View Selection","eye")+"",e+=s+this.setIcon(t,"tool_selectedcenter","Zoom in Selection","search-plus")+"",e+=s+this.setIcon(t,"alternate","Alternate the Structures by keying the letter 'a'","a",void 0,!0,!0)+"",e+=s+this.setIcon(t,"tool_resetOrientation","Reset Orientation","undo-alt")+"",e+=i+this.setIcon(t,"tool_proteinsRibbon","Style Ribbon for proteins","dna")+"",e+=s+this.setIcon(t,"tool_proteinsSphere","Style Sphere for proteins","volleyball-ball")+"",e+=s+this.setIcon(t,"tool_surfaceVDW","Show Van der Waals Surface","cloud")+"",e+=s+this.setIcon(t,"tool_bkgd","Toggle Background Color","adjust")+"",e+=i+this.setIcon(t,"tool_clrRainbowChain","Color Rainbow for Chains","rainbow")+"",e+=s+this.setIcon(t,"tool_clrSSGreen","Color by Secondary Structures","ring")+"",e+=s+this.setIcon(t,"tool_clrChain","Color by Chains","layer-group")+"",e+=s+this.setIcon(t,"tool_clrAtom","Color by Atoms","atom")+"",e+=i+this.setIcon(t,"tool_selectannotations","Sequences & Annotations","grip-lines")+"",e+=s+this.setIcon(t,"hbondsYes","Interactions","users")+"",e+=s+this.setIcon(t,"tool_delphi","Delphi Potentials","cloud-meatball")+"",e+=s+this.setIcon(t,"removeLabels","Remove Labels","remove-format")+"",e+=i+this.setIcon("link","tool-gallery","Gallery","image","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#gallery")+"",e+=s+this.setIcon("link","tool-video","Videos","file-video","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#videos")+"",e+=s+this.setIcon("link","tool-github","iCn3D GitHub","code","https://github.com/ncbi/icn3d")+"",e+=s+this.setIcon("link","tool-hints","Transform Hints","info-circle","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#useicn3d")+"",e+="",e}setTheme(e){let t,s,i,n,l,r=this.icn3dui;if(r.bNode)return"";r.htmlCls.themecolor=e,"orange"==e?(t="#e78f08",s="#f6a828",i="ui-bg_gloss-wave_35_f6a828_500x100.png",n="ui-icons_ef8c08_256x240.png",l="#eb8f00"):"black"==e?(t="#333333",s="#333333",i="ui-bg_gloss-wave_25_333333_500x100.png",n="ui-icons_222222_256x240.png",l="#222222"):"blue"==e&&(t="#4297d7",s="#5c9ccc",i="ui-bg_gloss-wave_55_5c9ccc_500x100.png",n="ui-icons_228ef1_256x240.png",l="#444"),$(".ui-widget-header").css({border:"1px solid "+t,background:s+' url("https://www.ncbi.nlm.nih.gov/Structure/icn3d/lib/images/'+i+'") 50% 50% repeat-x',color:"#fff","font-weight":"bold"}),$(".ui-button .ui-icon").css({"background-image":"url(https://www.ncbi.nlm.nih.gov/Structure/icn3d/lib/images/"+n+")"}),$(".ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited").css({color:l,"text-decoration":"none"})}setLogWindow(e,t){let s=this.icn3dui;if(s.bNode)return"";let i,n="",l=s.htmlCls.setHtmlCls.getCookie("cmdwindow");return""!=l?(i=void 0!==t?t:parseInt(l),1==i?(s.htmlCls.LOG_HEIGHT=180,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+=""):(s.htmlCls.LOG_HEIGHT=65,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+="")):(i=0,s.htmlCls.LOG_HEIGHT=65,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+=""),e||(n+=""),e&&(s.htmlCls.clickMenuCls.setLogCmd("set cmdwindow "+i,!0),$("#"+s.pre+"cmdlog").html(n)),n}setMenu1(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    File

    ",t+="
    ",t+=this.setMenu1_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu1_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuText("mn1_searchgrooup","Search Structure "+e.htmlCls.wifiStr,void 0,1,1),t+="
        ",t+=this.getMenuUrl("mn1_searchstru","https://www.ncbi.nlm.nih.gov/structure","PDB Structures "+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_proteinname","AlphaFold Structures "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("mn1_afdatabase","https://alphafold.ebi.ac.uk","AlphaFold UniProt Database "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_searchsimilar","Search Similar"+e.htmlCls.wifiStr,void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_vastplus","NCBI VAST+ (PDB Complex)"+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_vast","NCBI VAST (PDB Chain)"+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_foldseek","Foldseek (PDB & AlphaFold)"+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_retrievebyid","Retrieve by ID",void 0,1,1),t+="
        ",t+=this.getLink("mn1_mmdbafid","PDB/MMDB/AlphaFold IDs"+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_mmdbid","NCBI MMDB ID (annotation) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_mmtfid","RCSB BCIF/MMTF ID (fast) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_pdbid","RCSB PDB ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getMenuText("mn1_afwrap","AlphaFold Structures",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_afid","UniProt ID "+e.htmlCls.wifiStr,void 0,3),t+=this.getLink("mn1_refseqid","NCBI Protein Accession "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+=this.getLink("mn1_opmid","OPM PDB ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_mmcifid","RCSB mmCIF ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_cid","PubChem CID/Name/InchI "+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_smiles","Chemical SMILES ",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_openfile","Open File",void 0,1,1),t+="
        ",t+=this.getLink("mn1_pdbfile_app","PDB Files (appendable)",1,2),t+=this.getLink("mn1_mmciffile","mmCIF Files (appendable)",void 0,2),t+=this.getLink("mn1_mol2file","Mol2 File",void 0,2),t+=this.getLink("mn1_sdffile","SDF File",void 0,2),t+=this.getLink("mn1_xyzfile","XYZ File",void 0,2),t+=this.getLink("mn1_afmapfile","AlphaFold PAE File",void 0,2),t+=this.getLink("mn1_urlfile","URL(CORS) "+e.htmlCls.wifiStr,void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_pngimage","iCn3D PNG (appendable)",1,2),t+=this.getLink("mn1_state","State/Script File",void 0,2),t+=this.getLink("mn1_fixedversion","Share Link in Archived Ver. "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_selection","Selection File",void 0,2),t+=this.getLink("mn1_collection","Collection File",void 0,2),t+=this.getMenuSep(),t+=this.getMenuText("mn1_dsn6wrap","Electron Density",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_dsn6","Local File",void 0,3),t+=this.getLink("mn1_dsn6url","URL(CORS) "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+="

      • ",t+="
      ",t+="",t+=this.getMenuText("mn1_fold","Predict by Seq.",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_esmfold","ESMFold",void 0,2),t+=this.getLink("mn1_alphafold","AlphaFold2 via ColabFold"+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=this.getMenuText("mn1_alignwrap","Align",void 0,1,1),t+="
        ",t+=this.getMenuText("mn1_chainalignwrap","Multiple Chains",void 0,1,2),t+="
          ",t+=this.getRadio("mn1_chainalignRad","mn1_chainalign","by Structure Alignment "+e.htmlCls.wifiStr,void 0,1,3),t+=this.getRadio("mn1_chainalignRad","mn1_chainalign2","by Sequence Alignment "+e.htmlCls.wifiStr,void 0,1,3),t+=this.getRadio("mn1_chainalignRad","mn1_chainalign3","Residue by Residue",void 0,void 0,3),t+="
        ",t+="",t+=this.getMenuText("mn1_aligntwostru","Protein Complexes",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_align","Two PDB Structures "+e.htmlCls.wifiStr,void 0,3),t+=this.getLink("mn1_alignaf","Two AlphaFold Structures "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+=this.getLink("mn1_blast_rep_id","Sequence to Structure",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_realignWrap","Realign Selection",void 0,void 0,1),t+="
        ",t+=this.getMenuText("mn2_chainrealignwrap","Multiple Chains",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn2_realign","mn2_realignonstruct","by Structure Alignment "+e.htmlCls.wifiStr,void 0,void 0,3),t+=this.getRadio("mn2_realign","mn2_realignonseqalign","by Sequence Alignment "+e.htmlCls.wifiStr,void 0,void 0,3),t+=this.getRadio("mn2_realign","mn2_realignresbyres","Residue by Residue",void 0,void 0,3),t+="
        ",t+=this.getLink("mn2_realigntwostru","Protein Complexes",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_3dpprint","3D Printing",void 0,1,1),t+="
        ",void 0===e.cfg.cid?(t+=this.getLink("mn1_exportVrmlStab","WRL/VRML(Color, W/ Stab.)",1,2),t+=this.getLink("mn1_exportStlStab","STL(W/ Stabilizers)",1,2),t+=this.getMenuSep(),t+=this.getLink("mn1_exportVrml","WRL/VRML(Color)",void 0,2),t+=this.getLink("mn1_exportStl","STL",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_stabilizerYes","Add All Stabilizers",void 0,2),t+=this.getLink("mn1_stabilizerNo","Remove All Stabilizers",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_stabilizerOne","Add One Stabilizer",void 0,2),t+=this.getLink("mn1_stabilizerRmOne","Remove One Stabilizer",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_thicknessSet","Set Thickness",void 0,2)):(t+=this.getLink("mn1_exportVrml","VRML(Color)",1,2),t+=this.getLink("mn1_exportStl","STL",1,2)),t+="
      ",t+="",t+=this.getMenuText("mn1_savefile","Save File",void 0,1,1),t+="
        ",t+=this.getMenuText("mn1_savepngimage","iCn3D PNG Image",void 0,1,2),t+="
          ",t+=this.getLink("mn1_exportCanvas","Original Size & HTML",1,3),t+=this.getLink("mn1_exportCanvas1","Original Size",void 0,3),t+=this.getLink("mn1_exportCanvas2","2X Large",void 0,3),t+=this.getLink("mn1_exportCanvas4","4X Large",void 0,3),t+=this.getLink("mn1_exportCanvas8","8X Large",void 0,3),t+="
        ",t+="",t+=this.getLink("mn1_exportState","State File",void 0,2),t+=this.getLink("mn1_exportSelections","Selection File",void 0,2),t+=this.getLink("mn1_exportSelDetails","Selection Details",void 0,2),t+=this.getLink("mn1_exportCounts","Residue Counts",void 0,2),t+=this.getLink("mn1_exportPdbRes","PDB",1,2),t+=this.getLink("profixpdb","PDB with Missing Atoms",void 0,2),void 0===e.cfg.cid&&(t+=this.getLink("mn1_exportSecondary","Secondary Structure",void 0,2)),t+=this.getMenuText("m1_exportrefnum","Reference Numbers",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_exportIgstrand","Ig Strand",void 0,3),t+=this.getLink("mn1_exportKabat","Kabat",void 0,3),t+=this.getLink("mn1_exportImgt","IMGT",void 0,3),t+="
        ",t+="

      • ",t+="
      ",t+="",t+=this.getLink("mn1_sharelink","Share Link "+e.htmlCls.wifiStr,1,1),t+=this.getLink("mn1_replayon","Replay Each Step",void 0,1),t+=this.getMenuSep(),t+=this.getMenuText("mn1_menuwrap","Customize Menus",void 0,1,1),t+="
        ",t+=this.getLink("mn1_menuall","All Menus",1,2),t+=this.getLink("mn1_menusimple","Simple Menus",1,2),t+=this.getMenuSep(),t+=this.getLink("mn1_menupref","Preferences",1,2),t+=this.getLink("mn1_menuloadpref","Load Preferences",1,2),t+="
      ",t+="",t+="

    • ",t+="
    ",t}setMenu2(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Select

    ",t+="
    ",t+=this.setMenu2_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu2_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getLink("mn2_definedsets","Defined Sets",1,1),t+=this.getLink("mn2_selectall","All",void 0,1),t+=this.getLink("mn2_selectdisplayed","Displayed Set",void 0,1),t+=this.getLink("mn2_aroundsphere","by Distance",1,1),t+=this.getMenuText("mn2_selbyprop","by Property",void 0,void 0,1),t+="
        ",t+=this.getLink("mn2_propPos","Positive",void 0,2),t+=this.getLink("mn2_propNeg","Negative",void 0,2),t+=this.getLink("mn2_propHydro","Hydrophobic",void 0,2),t+=this.getLink("mn2_propPolar","Polar",void 0,2),t+=this.getLink("mn2_propBfactor","B-factor/pLDDT",void 0,2),t+=this.getLink("mn2_propSolAcc","Solvent Accessibility",void 0,2),t+="
      ",t+="",t+=this.getLink("mn2_selectcomplement","Inverse",void 0,1),t+=this.getLink("mn2_selectmainchains","Main Chains",void 0,1),t+=this.getLink("mn2_selectsidechains","Side Chains",void 0,1),t+=this.getLink("mn2_selectmainsidechains","Main & Side Chains",void 0,1),t+=this.getLink("mn2_command","Advanced",void 0,1),void 0===e.cfg.cid?(t+=this.getMenuText("mn2_selon3d","Select on 3D",void 0,1,1),t+="
        ",t+='
      • "Alt"+Click: start selection
      • ',t+='
      • "Ctrl"+Click: union selection
      • ',t+='
      • "Shift"+Click: range Selection
      • ',t+=this.getMenuSep(),t+=this.getRadio("mn2_pk","mn2_pkChain","Chain",void 0,1,2),void 0===e.cfg.mmdbid&&void 0===e.cfg.gi||(t+=this.getRadio("mn2_pk","mn2_pkDomain","3D Domain",void 0,void 0,2)),t+=this.getRadio("mn2_pk","mn2_pkStrand","Strand/Helix",void 0,void 0,2),t+=this.getRadio("mn2_pk","mn2_pkResidue","Residue",!0,1,2),t+=this.getRadio("mn2_pk","mn2_pkYes","Atom",void 0,1,2),t+=this.getRadio("mn2_pk","mn2_pkNo","None",void 0,void 0,2),t+="
      ",t+=""):e.utilsCls.isMobile()?t+="
    • Touch to pick
    • ":t+='
    • Picking with
      "Alt" + Click
    • ',t+=this.getMenuSep(),t+=this.getLink("mn2_saveselection","Save Selection",1,1),t+=this.getLink("clearall","Clear Selection",void 0,1),t+=this.getLink("mn2_saveresidue","Save Res. in Sel.",1,1),t+=this.getMenuSep(),t+=this.getMenuText("mn2_hlcolor","Highlight Color",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_hl_clr","mn2_hl_clrYellow","Yellow",!0,void 0,2),t+=this.getRadio("mn2_hl_clr","mn2_hl_clrGreen","Green",void 0,void 0,2),t+=this.getRadio("mn2_hl_clr","mn2_hl_clrRed","Red",void 0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_hlstyle","Highlight Style",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_hl_style","mn2_hl_styleOutline","Outline",!0,void 0,2),t+=this.getRadio("mn2_hl_style","mn2_hl_styleObject","3D Objects",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("toggleHighlight2","Toggle Highlight",1,1),t+="

    • ",t+="
    ",t}setMenu2b(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    View

    ",t+="
    ",t+=this.setMenu2b_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu2b_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getLink("mn2_show_selected","View Selection",1,1),t+=this.getLink("mn2_hide_selected","Hide Selection",1,1),t+=this.getLink("mn2_selectedcenter","Zoom in Selection",1,1),t+=this.getLink("mn6_center","Center Selection",1,1),t+=this.getLink("mn2_fullstru","View Full Structure"),t+=this.getLinkWrapper("mn2_alternate",'Alternate(Key "a")',"mn2_alternateWrap",void 0,1),void 0!==e.cfg.opmid?t+=this.getLinkWrapper("togglemem","Toggle Membrane","togglememli",void 0,1):void 0===e.cfg.cid&&(t+=this.getLinkWrapper("togglemem","Toggle Membrane","togglememli",void 0,1,!0)),void 0!==e.cfg.opmid&&(t+=this.getLinkWrapper("adjustmem","Adjust Membrane","adjustmemli",void 0,1),t+=this.getLinkWrapper("selectplane","Select between
      Two X-Y Planes","selectplaneli",void 0,1)),t+=this.getMenuSep(),t+=this.getMenuText("mn2_vrarhints","VR & AR Hints",void 0,1,1),t+="
        ",t+=this.getMenuUrl("vrhint",e.htmlCls.baseUrl+"icn3d/icn3d.html#vr","VR: VR Headsets",1,2),t+=this.getMenuUrl("arhint",e.htmlCls.baseUrl+"icn3d/icn3d.html#ar","AR: Chrome in Android",1,2),t+="
      ",t+="",t+=this.getLink("mn6_sidebyside","Side by Side",1,1),t+=this.getMenuText("mn2_rotate","Rotate",void 0,1,1),t+="
        ",t+=this.getMenuText("mn2_rotate90","Rotate 90°",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn6_rotate90","mn6_rotatex","rotate x",void 0,void 0,2),t+=this.getRadio("mn6_rotate90","mn6_rotatey","rotate y",void 0,void 0,2),t+=this.getRadio("mn6_rotate90","mn6_rotatez","rotate z",void 0,void 0,2),t+="
        ",t+="",t+=this.getMenuText("mn2_rotateauto","Auto Rotation",void 0,1,2),t+="
          ",t+=this.getRadio("mn6_rotate","mn6_rotateleft","Rotate Left",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotateright","Rotate Right",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotateup","Rotate Up",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotatedown","Rotate Down",void 0,1,3),t+="
        ",t+="",t+="
      ",t+="",t+=this.getLink("mn2_translate","Translate XYZ",void 0,1),t+=this.getLink("mn2_matrix","Rotate with Matrix",void 0,1),t+=this.getMenuText("mn2_camera","Camera",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_camera","mn6_cameraPers","Perspective",!0,void 0,2),t+=this.getRadio("mn6_camera","mn6_cameraOrth","Orthographic",void 0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_fog","Fog for Selection",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showfog","mn6_showfogYes","On",void 0,void 0,2),t+=this.getRadio("mn6_showfog","mn6_showfogNo","Off",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_slab","Slab for Selection",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showslab","mn6_showslabYes","On",void 0,void 0,2),t+=this.getRadio("mn6_showslab","mn6_showslabNo","Off",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_axes","XYZ-axes",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showaxis","mn6_showaxisYes","Original",void 0,void 0,2),t+=this.getRadio("mn6_showaxis","mn6_showaxisSel","Prin. Axes on Sel.",void 0,void 0,2),t+=this.getRadio("mn6_showaxis","mn6_showaxisNo","Hide",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuSep(),t+=this.getMenuText("mn2_resetwrap","Reset",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_reset","reset","All",void 0,1,2),t+=this.getRadio("mn6_reset","mn6_resetOrientation","Orientation",void 0,1,2),t+="
      ",t+="",t+=this.getLink("mn6_back","Undo",void 0,1),t+=this.getLink("mn6_forward","Redo",void 0,1),t+=this.getLink("mn6_fullscreen","Full Screen",void 0,1),t+="

    • ",t+="
    ",t}setMenu3(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Style

    ",t+="
    ",t+=this.setMenu3_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu3_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";t+="
      ",void 0===e.cfg.cid&&(t+=this.getMenuText("mn3_proteinwrap","Proteins",void 0,1,1),t+="
        ",void 0!==e.cfg.align||void 0!==e.cfg.chainalign?t+=this.getRadio("mn3_proteins","mn3_proteinsRibbon","Ribbon",void 0,1,2):t+=this.getRadio("mn3_proteins","mn3_proteinsRibbon","Ribbon",!0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsStrand","Strand",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsCylinder","Cylinder and Plate",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsSchematic","Schematic",void 0,1,2),void 0!==e.cfg.align||void 0!==e.cfg.chainalign?t+=this.getRadio("mn3_proteins","mn3_proteinsCalpha","C Alpha Trace",!0,1,2):t+=this.getRadio("mn3_proteins","mn3_proteinsCalpha","C Alpha Trace",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBackbone","Backbone",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBfactor","B-factor Tube",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsLines","Lines",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsStick","Stick",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_sidecwrap","Side Chains",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_sidec","mn3_sidecLines","Lines",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecStick","Stick",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecNo","Hide",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_nuclwrap","Nucleotides",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_nucl","mn3_nuclCartoon","Cartoon",!0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclPhos","O3' Trace",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclBackbone","Backbone",void 0,void 0,2),t+=this.getRadio("mn3_nucl","mn3_nuclSchematic","Schematic",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclLines","Lines",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclStick","Stick",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_ntbasewrap","Nucl. Bases",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_ntbase","mn3_ntbaseLines","Lines",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseStick","Stick",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseNo","Hide",!0,1,2),t+="
      ",t+=""),t+=this.getMenuText("mn3_ligwrap","Chemicals",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_lig","mn3_ligLines","Lines",void 0,1,2),void 0===e.cfg.cid?(t+=this.getRadio("mn3_lig","mn3_ligStick","Stick",!0,1,2),t+=this.getRadio("mn3_lig","mn3_ligBallstick","Ball and Stick",void 0,1,2)):(t+=this.getRadio("mn3_lig","mn3_ligStick","Stick",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligBallstick","BalHydrogensl and Stick",!0,1,2)),t+=this.getRadio("mn3_lig","mn3_ligSchematic","Schematic",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_hydrogenswrap","Hydrogens",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_hydrogens","mn3_hydrogensYes","Show",!0,1,2),t+=this.getRadio("mn3_hydrogens","mn3_hydrogensNo","Hide",void 0,1,2),t+="
      ",t+="",void 0===e.cfg.cid&&(t+=this.getMenuText("mn3_glycanwrap","Glycans",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn3_glycansCart","mn3_glycansCartYes","Show Cartoon",void 0,void 0,2),t+=this.getRadio("mn3_glycansCart","mn3_glycansCartNo","Hide Cartoon",!0,void 0,2),t+="
      ",t+=""),t+=this.getMenuText("mn3_ionswrap","Ions",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_ions","mn3_ionsSphere","Sphere",!0,1,2),t+=this.getRadio("mn3_ions","mn3_ionsDot","Dot",void 0,1,2),t+=this.getRadio("mn3_ions","mn3_ionsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_waterwrap","Water",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_water","mn3_waterSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_water","mn3_waterDot","Dot",void 0,1,2),t+=this.getRadio("mn3_water","mn3_waterNo","Hide",!0,1,2),t+="
      ",t+="",void 0===e.cfg.cid&&(t+=this.getMenuText("mn2_clashedwrap","Clashed Residues",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_clashed","mn2_clashedYes","Show",!0,void 0,2),t+=this.getRadio("mn2_clashed","mn2_clashedNo","Hide",void 0,void 0,2),t+="
      ",t+=""),t+=this.getLink("mn3_setThickness","Preferences",void 0,1),t+=this.getMenuSep(),t+=this.getLink("mn3_styleSave","Save Style",void 0,2),t+=this.getLink("mn3_styleApplySave","Apply Saved Style",void 0,2),t+=this.getMenuSep(),t+=this.getMenuText("mn5_surfacewrap","Surface Type",void 0,1,1),t+="
        ",t+=this.getRadio("mn5_surface","mn5_surfaceVDW","Van der Waals",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceVDWContext","VDW with Context",void 0,void 0,2),t+=this.getRadio("mn5_surface","mn5_surfaceMolecular","Molecular Surface",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceMolecularContext","MS with Context",void 0,void 0,2),t+=this.getRadio("mn5_surface","mn5_surfaceSAS","Solvent Accessible",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceSASContext","SA with Context",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn5_surfaceNo","Remove Surface",1,1),t+=this.getMenuText("mn5_surfaceop","Surface Opacity",void 0,1,1),t+="
        ",t+=this.getMenuText("mn5_surfaceopfast","Fast Transparency",void 0,1,2),t+="
          ",t+=this.getRadio("mn5_opacity","mn5_opacity10","1.0",!0,1,3);for(let e=9;e>0;--e)t+=this.getRadio("mn5_opacity","mn5_opacity0"+e,"0."+e,1,3);t+="
        ",t+="",t+=this.getMenuText("mn5_surfaceopslow","Slow Transparency",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn5_opacityslow","mn5_opacityslow10","1.0",!0,void 0,3);for(let e=9;e>0;--e)t+=this.getRadio("mn5_opacityslow","mn5_opacityslow0"+e,"0."+e,void 0,void 0,3);return t+="
        ",t+="",t+="
      ",t+=this.getMenuText("mn5_wireframewrap","Surface Wireframe",void 0,1,1),t+="
        ",t+=this.getRadio("mn5_wireframe","mn5_wireframeYes","Yes",void 0,1,2),t+=this.getRadio("mn5_wireframe","mn5_wireframeNo","No",!0,1,2),t+="
      ",t+="",t+=this.getMenuSep(),t+=this.getLink("mn5_cartoonshape","Cartoon for a Set",void 0,1),t+=this.getLink("mn5_linebtwsets","Line btw. Two Sets",void 0,1),void 0===e.cfg.cid&&void 0===e.cfg.align&&void 0===e.cfg.chainalign&&void 0===e.cfg.mmdbaf&&(t+=this.getMenuSep(),t+=this.getLinkWrapper2("mn5_map","Electron Density","mapWrapper1",void 0,1),t+="
        ",t+=this.getLink("mn5_elecmap2fofc","2Fo-Fc Map",void 0,2),t+=this.getLink("mn5_elecmapfofc","Fo-Fc Map",void 0,2),t+=this.getLinkWrapper("mn5_elecmapNo","Remove Map","mapWrapper2",void 0,2),t+="
      ",t+="",t+=this.getLinkWrapper2("mn5_map3","Map Wireframe","mapWrapper3",void 0,1),t+="
        ",t+=this.getRadio("mn5_mapwireframe","mn5_mapwireframeYes","Yes",!0,void 0,2),t+=this.getRadio("mn5_mapwireframe","mn5_mapwireframeNo","No",void 0,void 0,2),t+="
      ",t+="",void 0===e.cfg.mmtfid&&(t+=this.getLinkWrapper("mn5_emmap","EM Density Map","emmapWrapper1",void 0,1),t+=this.getLinkWrapper("mn5_emmapNo","Remove EM Map","emmapWrapper2",void 0,1),t+=this.getLinkWrapper2("mn5_emmap3","EM Map Wireframe","emmapWrapper3",void 0,1),t+="
        ",t+=this.getRadio("mn5_emmapwireframe","mn5_emmapwireframeYes","Yes",!0,void 0,2),t+=this.getRadio("mn5_emmapwireframe","mn5_emmapwireframeNo","No",void 0,void 0,2),t+="
      ",t+="")),t+=this.getMenuSep(),t+=this.getMenuText("mn6_bkgdwrap","Background",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_bkgd","mn6_bkgdTransparent","Transparent",void 0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdBlack","Black",!0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdGrey","Gray",void 0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdWhite","White",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_themewrap","Dialog Color",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_theme","mn6_themeBlue","Blue",!0,void 0,2),t+=this.getRadio("mn6_theme","mn6_themeOrange","Orange",void 0,void 0,2),t+=this.getRadio("mn6_theme","mn6_themeBlack","Black",void 0,void 0,2),t+="
      ",t+="",t+="

    • ",t+="
    ",t}setMenu4(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Color

    ",t+="
    ",t+=this.setMenu4_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu4_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuText("mn4_clrwrap","Unicolor","icn3d-menupd",1,1),t+="
        ",t+=this.getMenuText("uniclrRedwrap","Red",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrRed1","Red","F00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed2","Indian Red","CD5C5C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed3","Light Coral","F08080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed4","Salmon","FA8072",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed5","Dark Salmon","E9967A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed6","Light Salmon","FFA07A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed7","Crimson","DC143C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed8","Fire Brick","B22222",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed9","Dark Red","8B0000",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrPinkwrap","Pink",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrPink1","Pink","FFC0CB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink2","Light Pink","FFB6C1",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink3","Hot Pink","FF69B4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink4","Deep Pink","FF1493",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink5","Medium Violet Red","C71585",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink6","Pale Violet Red","DB7093",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrOrangewrap","Orange",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrOran1","Orange","FFA500",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran2","Dark Orange","FF8C00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran3","Orange Red","FF4500",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran4","Tomato","FF6347",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran5","Coral","FF7F50",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran6","Light Salmon","FFA07A",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrYellowwrap","Yellow",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrYllw1","Yellow","FF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw2","Gold","FFD700",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw3","Light Yellow","FFFFE0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw4","Lemon Chiffon","FFFACD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw5","Light Golden Rod","FAFAD2",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw6","Papaya Whip","FFEFD5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw7","Moccasin","FFE4B5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw8","Peach Puff","FFDAB9",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw9","Pale Golden Rod","EEE8AA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw10","Khaki","F0E68C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw11","Dark Khaki","BDB76B",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrMagentawrap","Magenta",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrMgnt1","Magenta","F0F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt2","Orchid","DA70D6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt3","Violet","EE82EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt4","Plum","DDA0DD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt5","Thistle","D8BFD8",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt6","Lavender","E6E6FA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt7","Medium Orchid","BA55D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt8","Medium Purple","9370DB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt9","Rebecca Purple","663399",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt10","Blue Violet","8A2BE2",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt11","Dark Violet","9400D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt12","Dark Orchid","9932CC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt13","Dark Magenta","8B008B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt14","Purple","800080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt15","Indigo","4B0082",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt16","Slat Blue","6A5ACD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt17","Dark Slate Blue","483D8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt18","Medium Slat Blue","6A5ACD",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrGreenwrap","Green",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrGrn1","Green","0F0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn2","Dark Green","006400",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn3","Yellow Green","9ACD32",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn4","Olive Drab","6B8E23",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn5","Olive","808000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn6","Dark Olive Green","556B2F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn7","Medium Aquamarine","66CDAA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn8","Dark Sea Green","8FBC8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn9","Lignt Sea Green","20B2AA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn10","Dark Cyan","008B8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn11","Teal","008080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn12","Forest Green","228B22",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn13","Sea Green","2E8B57",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn14","Medium Sea Green","3CB371",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn15","Spring Green","00FF7F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn16","Medium Spring","00FA9A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn17","Light Green","90EE90",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn18","Pale Green","98FB98",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn19","Lime Green","32CD32",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn20","Lawn Green","7CFC00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn21","Chartreuse","7FFF00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn22","Green Yellow","ADFF2F",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrCyanwrap","Cyan",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrCyan1","Cyan","0FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan2","Light Cyan","E0FFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan3","Pale Turquoise","AFEEEE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan4","Aquamarine","7FFFD4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan5","Turquoise","40E0D0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan6","Medium Turquoise","48D1CC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan7","Dark Turquoise","00CED1",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrBluewrap","Blue",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrBlue1","Blue","00F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue2","Medium Blue","0000CD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue3","Dark Blue","00008B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue4","Navy","000080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue5","Midnight Blue","191970",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue6","Royal Blue","4169E1",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue7","Medium Slate Blue","7B68EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue8","Corn Flower Blue","6495ED",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue9","Dodger Blue","1E90FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue10","Deep Sky Blue","00BFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue11","Light Sky Blue","87CEFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue12","Sky Blue","87CEEB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue13","Light Blue","ADD8E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue14","Powder Blue","B0E0E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue15","Light Steel Blue","B0C4DE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue16","Steel Blue","4682B4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue17","Cadet Blue","5F9EA0",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrBrownwrap","Brown",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrBrown1","Brown","A52A2A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown2","Maroon","800000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown3","Sienna","A0522D",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown4","Saddle Brown","8B4513",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown5","Chocolate","D2691E",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown6","Peru","CD853F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown7","Dark Golden Rod","B8860B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown8","Golden Rod","DAA520",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown9","Sandy Brown","F4A460",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown10","Rosy Brown","BC8F8F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown11","Tan","D2B48C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown12","Burlywood","DEB887",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown13","Wheat","F5DEB3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown14","Navajo White","FFDEAD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown15","Bisque","FFE4C4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown16","Blanched Almond","FFEBCD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown17","Corn Silk","FFF8DC",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrWhitewrap","White",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrWhite1","White","FFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite2","Snow","FFFAFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite3","Honey Dew","F0FFF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite4","Mint Cream","F5FFFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite5","Azure","F0FFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite6","Alice Blue","F0F8FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite7","Ghost White","F8F8FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite8","White Smoke","F5F5F5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite9","Sea Shell","FFF5EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite10","Beige","F5F5DC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite11","Old Lace","FDF5E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite12","Floral White","FFFAF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite13","Ivory","FFFFF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite14","Antique White","FAEBD7",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite15","Linen","FAF0E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite16","Lavenderblush","FFF0F5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite17","Misty Rose","FFE4E1",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrGraywrap","Gray",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrGray1","Gray","808080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray2","Dim Gray","696969",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray3","Light Slate Gray","778899",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray4","Slate Gray","708090",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray5","Dark Slate Gray","2F4F4F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray6","Black","000000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray7","Dark Gray","A9A9A9",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray8","Silver","C0C0C0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray9","Light Gray","D3D3D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray10","Gainsboro","DCDCDC",void 0,1,3),t+="
        ",t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrCustom","Color Picker",void 0,void 0,1),t+=this.getMenuSep(),void 0===e.cfg.cid?(t+=this.getMenuText("mn4_clrRainbowwrap","Rainbow (R-V)","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrRainbow","for Selection",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowChain","for Chains",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowSets","for Sets",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowAcrossSets","across Sets",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrSpectrumwrap","Spectrum (V-R)","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrSpectrum","for Selection",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumChain","for Chains",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumSets","for Sets",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumAcrossSets","across Sets",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrSSwrap","Secondary","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrSSGreen","Sheet in Green",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSSYellow","Sheet in Yellow",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSSSpectrum","Spectrum",void 0,void 0,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrCharge","Charge",void 0,1,1),t+=this.getMenuText("mn4_hydrophobicwrap","Hydrophobicity","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrNormalizedHP","Normalized",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrHydrophobic","Wimley-White",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrBfactorwrap","B-factor","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrBfactor","Original",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrBfactorNorm","Percentile",void 0,1,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrArea",'Solvent
      Accessibility',void 0,void 0,1),t+=this.getRadio("mn4_clr","mn4_clrStructure","Structure",void 0,1,1),void 0!==e.cfg.align||void 0!==e.cfg.chainalign||void 0!==e.cfg.blast_rep_id?t+=this.getRadio("mn4_clr","mn4_clrChain","Chain",void 0,1,1):t+=this.getRadio("mn4_clr","mn4_clrChain","Chain",!0,1,1),t+=this.getRadio("mn4_clr","mn4_clrdomain","3D Domain",void 0,void 0,1),void 0===e.cfg.cid&&(t+=this.getMenuText("mn4_clrsetswrap","Defined Sets","icn3d-menupd",void 0,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrsets",'Rainbow for Selected Sets
        in "Analysis > Defined Sets"',void 0,void 0,2),t+="
      ",t+=""),t+=this.getMenuText("mn4_clrResiduewrap","Residue","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrResidue","Default",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrResidueCustom","Custom",void 0,void 0,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrAtom","Atom",void 0,1,1),void 0!==e.cfg.align||void 0!==e.cfg.chainalign?(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",!0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",void 0,void 0,2)):void 0!==e.cfg.blast_rep_id?(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",!0,void 0,2)):(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",void 0,void 0,2)),t+=this.getRadio("mn4_clr","mn4_clrConfidence","pLDDT",void 0,1,1),t+=this.getRadio("mn4_clr","mn4_clrIgstrand","Ig Strand",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrIgproto","Ig Protodomain",void 0,void 0,2)):t+=this.getRadio("mn4_clr","mn4_clrAtom","Atom",!0,1,1),t+=this.getMenuSep(),t+=this.getLink("mn4_clrSave","Save Color",void 0,1),t+=this.getLink("mn4_clrApplySave","Apply Saved Color",void 0,1),t+="

    • ",t+="
    ",t}setMenu5(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

     Analysis

    ",t+="
    ",t+=this.setMenu5_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu5_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";t+="
      ",void 0===e.cfg.cid&&(t+=this.getLink("mn6_selectannotations","Seq. & Annotations "+e.htmlCls.wifiStr,1,1),t+=this.getLink("mn2_alignment","Aligned Seq. "+e.htmlCls.wifiStr,void 0,1),void 0===e.cfg.mmdbid&&void 0===e.cfg.gi&&void 0===e.cfg.blast_rep_id&&void 0===e.cfg.align&&void 0===e.cfg.chainalign||(t+=this.getLink("mn2_2ddgm","2D Diagram "+e.htmlCls.wifiStr,1,1)),t+=this.getMenuText("2dctnwrap","2D Cartoon",void 0,void 0,1),t+="
        ",t+=this.getLink("2dctn_chain","Chain Level",void 0,2),t+=this.getLink("2dctn_domain","Domain Level",void 0,2),t+=this.getLink("2dctn_secondary","Helix/Sheet Level",void 0,2),t+="
      ",t+="",t+=this.getLink("definedsets2","Defined Sets",1,1),t+=this.getMenuSep(),t+=this.getLink("mn6_hbondsYes","Interactions",1,1),t+=this.getMenuText("mn1_window","Bring to Front",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_window_table","Interaction Table",void 0,2),t+=this.getLink("mn1_window_linegraph","2D Interaction Network",void 0,2),t+=this.getLink("mn1_window_scatterplot","2D Interaction Map",void 0,2),t+=this.getLink("mn1_window_graph","2D Graph(Force-Directed)",void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_contactmap","Contact Map",void 0,1),t+=this.getLink("mn1_mutation","Mutation "+e.htmlCls.wifiStr,1,1)),e.cfg.hidelicense||(t+=this.getMenuText("mn1_delphiwrap","DelPhi Potential",void 0,1,1),t+="
        ",t+=this.getLink("mn1_delphi","DelPhi Potential "+e.htmlCls.licenseStr,1,2),t+=this.getMenuText("mn1_phiwrap","Load PQR/Phi",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_phi","Local PQR/Phi/Cube File",void 0,3),t+=this.getLink("mn1_phiurl","URL PQR/Phi/Cube File",void 0,3),t+="
        ",t+="",t+=this.getLink("delphipqr","Download PQR",void 0,2),t+="
      ",t+=""),t+=this.getMenuSep(),t+=this.getMenuText("mn6_distancewrap","Distance",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_distance","mn6_distanceYes","between Two Atoms",void 0,1,2),t+=this.getRadio("mn6_distance","mn6_distTwoSets","between Two Sets",void 0,void 0,2),t+=this.getRadio("mn6_distance","mn6_distManySets","among Many Sets",void 0,void 0,2),t+=this.getRadio("mn6_distance","mn6_distanceNo","Hide",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_anglewrap","Angle",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_angle","mn6_angleManySets","among Many Sets",void 0,1,2),t+=this.getRadio("mn6_angle","mn6_angleTwoSets","b/w Two Vectors",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_area","Surface Area",1,1),t+=this.getMenuText("mn6_addlabelwrap","Label",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_addlabel","mn6_addlabelYes","by Picking Atoms",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelSelection","per Selection",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelAtoms","per Atom",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelElements","per Atom Element",void 0,1,2),void 0===e.cfg.cid&&(t+=this.getRadio("mn6_addlabel","mn6_addlabelResidues","per Residue",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelResnum","per Residue & Number",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelRefnum","per Reference Number",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelIg","per Ig Domain",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelChains","per Chain",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelTermini","N- & C-Termini",void 0,1,2)),t+=this.getMenuSep(),t+=this.getRadio("mn6_addlabel","mn6_labelColor","Change Label Color",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelNo","Remove",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("labelscalewrap","Label Scale",void 0,1,1),t+="
        ";for(let e=1;e<=4;++e){let s=2*e;t+=this.getRadio("mn6_labelscale","mn6_labelscale0"+s,"0."+s,void 0,1,2)}for(let e=2;e<=10;++e){let s=(e/2).toFixed(1);t+=2==e?this.getRadio("mn6_labelscale","mn6_labelscale"+e+"0",s,!0,1,2):this.getRadio("mn6_labelscale","mn6_labelscale"+e+"0",s,void 0,1,2)}if(t+="
      ",t+="",t+=this.getMenuSep(),void 0===e.cfg.cid){t+=this.getMenuText("mn6_chemicalbindingwrap","Chem. Binding",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_chemicalbinding","mn6_chemicalbindingshow","Show",void 0,void 0,2),t+=this.getRadio("mn6_chemicalbinding","mn6_chemicalbindinghide","Hide",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn6_ssbondswrap","Disulfide Bonds",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_ssbonds","mn6_ssbondsYes","Show",!0,1,2),t+=this.getRadio("mn6_ssbonds","mn6_ssbondsExport","Export Pairs",void 0,void 0,2),t+=this.getRadio("mn6_ssbonds","mn6_ssbondsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_clbondswrap","Cross-Linkages",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_clbonds","mn6_clbondsYes","Show",!0,void 0,2),t+=this.getRadio("mn6_clbonds","mn6_clbondsExport","Export Pairs",void 0,void 0,2),t+=this.getRadio("mn6_clbonds","mn6_clbondsNo","Hide",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_DSSP","DSSP Secondary",void 0,1);let s=void 0!==e.cfg.mmtfid||void 0!==e.cfg.pdbid||void 0!==e.cfg.opmid||void 0!==e.cfg.mmcifid||void 0!==e.cfg.mmdbid||void 0!==e.cfg.mmdbafid||void 0!==e.cfg.gi||void 0!==e.cfg.blast_rep_id;s&&(t+=this.getMenuText("assemblyWrapper","Assembly",void 0,1,1),t+="
        ",e.cfg.bu?(t+=this.getRadio("mn6_assembly","mn6_assemblyYes","Biological Assembly",!0,1,2),t+=this.getRadio("mn6_assembly","mn6_assemblyNo","Asymmetric Unit",void 0,1,2)):(t+=this.getRadio("mn6_assembly","mn6_assemblyYes","Biological Assembly",void 0,1,2),t+=this.getRadio("mn6_assembly","mn6_assemblyNo","Asymmetric Unit",!0,1,2)),t+="
      ",t+=""),t+=this.getMenuText("mn6_symmetrywrap","Symmetry",void 0,void 0,1),t+="
        ",s&&(t+=this.getLink("mn6_symmetry","from PDB(precalculated) "+e.htmlCls.wifiStr,void 0,2)),t+=this.getLink("mn6_symd","from SymD(Dynamic) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn6_clear_sym","Clear SymD Symmetry",void 0,2),t+=this.getLink("mn6_axes_only","Show Axes Only",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn6_igrefwrap","Ref. Number",void 0,void 0,1),t+="
        ",t+=this.getLink("mn6_igrefYes","Show Ig for Selection",void 0,2),t+=this.getLink("mn6_igrefTpl","Ig w/ Specified Template",void 0,2),t+=this.getLink("mn6_alignrefTpl","Align w/ Specified Template",void 0,2),t+=this.getLink("mn6_igrefNo","Reset Ig Ref. Number",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn6_customref","Custom Ref. Number",void 0,2),t+="
      ",t+="",t+=this.getMenuSep()}return t+=this.getLink("mn6_yournote","Window Title",void 0,1),void 0!==e.cfg.cid?(t+=this.getMenuText("mn1_linkwrap","Links",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_link_structure","Compound Summary "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_vast","Similar Compounds "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_bind","Structures Bound "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=""):(t+=this.getMenuText("mn1_linkwrap","Links",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_link_structure","Structure Summary "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_vast","Similar Structures "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_pubmed","Literature "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_protein","Protein "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=""),t+="

    • ",t+="
    ",t}setMenu6(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Help

    ",t+="
    ",t+=this.setMenu6_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu6_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuUrl("abouticn3d",e.htmlCls.baseUrl+"icn3d/icn3d.html#about","About iCn3D "+e.REVISION+"",1,1),t+=this.getMenuUrl("gallery",e.htmlCls.baseUrl+"icn3d/icn3d.html#gallery","Live Gallery "+e.htmlCls.wifiStr,1,1),t+=this.getMenuUrl("video",e.htmlCls.baseUrl+"icn3d/icn3d.html#videos","Videos & Tutorials",1,1),t+=this.getMenuText("mn6_faq","FAQ",void 0,1,1),t+="
        ",t+=this.getMenuUrl("faq_viewstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#viewstru","View structure",1,2),t+=this.getMenuUrl("faq_tfstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#tfstru","Transform Structure",1,2),t+=this.getMenuUrl("faq_selsubset",e.htmlCls.baseUrl+"icn3d/icn3d.html#selsubset","Select Subsets",1,2),t+=this.getMenuUrl("faq_stylecolor",e.htmlCls.baseUrl+"icn3d/icn3d.html#changestylecolor","Change Style/Color",1,2),t+=this.getMenuUrl("faq_savework",e.htmlCls.baseUrl+"icn3d/icn3d.html#saveview","Save Work",1,2),t+=this.getMenuUrl("faq_showanno",e.htmlCls.baseUrl+"icn3d/icn3d.html#showanno","Show Annotations",1,2),t+=this.getMenuUrl("faq_exportanno",e.htmlCls.baseUrl+"icn3d/icn3d.html#exportanno","Export Annotations",1,2),t+=this.getMenuUrl("faq_interanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#interanalysis","Interaction Analysis",1,2),t+=this.getMenuUrl("faq_mutanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#mutationanalysis","Mutation Analysis",1,2),t+=this.getMenuUrl("faq_elecpot",e.htmlCls.baseUrl+"icn3d/icn3d.html#elecpot","Electrostatic Pot.",1,2),t+=this.getMenuUrl("faq_simipdb",e.htmlCls.baseUrl+"icn3d/icn3d.html#simivast","Similar PDB",1,2),t+=this.getMenuUrl("faq_simialphapdb",e.htmlCls.baseUrl+"icn3d/icn3d.html#simifoldseek","Similar AlphaFold/PDB",1,2),t+=this.getMenuUrl("faq_alnstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#alignmul","Align Multiple Structures",1,2),t+=this.getMenuUrl("faq_batchanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#batchanalysis","Batch Analysis",1,2),t+=this.getMenuUrl("faq_batchanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#igrefnum","Assign Ig Ref. Numbers",1,2),t+=this.getMenuUrl("faq_embedicn3d",e.htmlCls.baseUrl+"icn3d/icn3d.html#embedicn3d","Embed iCn3D",1,2),t+="
      ",t+="",t+=this.getMenuUrl("citing",e.htmlCls.baseUrl+"icn3d/icn3d.html#citing","Citing iCn3D",void 0,1),t+=this.getMenuText("mn6_source","Source Code",void 0,1,1),t+="
        ",t+=this.getMenuUrl("github","https://github.com/ncbi/icn3d","GitHub (browser) "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("npm","https://www.npmjs.com/package/icn3d","npm (Node.js) "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("notebook","https://pypi.org/project/icn3dpy","Jupyter Notebook "+e.htmlCls.wifiStr,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_develop","Develop",void 0,void 0,1),t+="
        ",t+=this.getMenuUrl("dev_embedicn3d2",e.htmlCls.baseUrl+"icn3d/icn3d.html#HowToUse","Embed iCn3D",void 0,2),t+=this.getMenuUrl("dev_urlpara",e.htmlCls.baseUrl+"icn3d/icn3d.html#parameters","URL Parameters",void 0,2),t+=this.getMenuUrl("dev_command",e.htmlCls.baseUrl+"icn3d/icn3d.html#commands","Commands",void 0,2),t+=this.getMenuUrl("dev_datastru",e.htmlCls.baseUrl+"icn3d/icn3d.html#datastructure","Data Structure",void 0,2),t+=this.getMenuUrl("dev_classstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#classstructure","Class Structure",void 0,2),t+=this.getMenuUrl("dev_addclass",e.htmlCls.baseUrl+"icn3d/icn3d.html#addclass","Add New Classes",void 0,2),t+=this.getMenuUrl("dev_modfunc",e.htmlCls.baseUrl+"icn3d/icn3d.html#modifyfunction","Modify Functions",void 0,2),t+=this.getMenuUrl("dev_restful",e.htmlCls.baseUrl+"icn3d/icn3d.html#restfulapi","RESTful APIs",void 0,2),t+=this.getMenuUrl("dev_contributor",e.htmlCls.baseUrl+"icn3d/icn3d.html#contributors","iCn3D Contributors",void 0,2),t+="
      ",t+="",t+=this.getMenuUrl("helpdoc",e.htmlCls.baseUrl+"icn3d/docs/icn3d_help.html","Help Doc "+e.htmlCls.wifiStr,1,1),t+=this.getMenuSep(),t+=this.getMenuText("mn6_tfhint","Transform Hints",void 0,1,1),t+="
        ",t+=this.getMenuText("mn6_rotate","Rotate",void 0,1,2),t+="
          ",t+="
        • Left Mouse (Click & Drag)
        • ",t+="
        • Key l: Left
        • ",t+="
        • Key j: Right
        • ",t+="
        • Key i: Up
        • ",t+="
        • Key m: Down
        • ",t+="
        • Shift + Key l: Left 90°
        • ",t+="
        • Shift + Key j: Right 90°
        • ",t+="
        • Shift + Key i: Up 90°
        • ",t+="
        • Shift + Key m: Down 90°
        • ",t+="
        ",t+="",t+=this.getMenuText("mn6_zoom","Zoom",void 0,1,2),t+="
          ",t+="
        • Middle Mouse
          (Pinch & Spread)
        • ",t+="
        • Key z: Zoom in
        • ",t+="
        • Key x: Zoom out
        • ",t+="
        ",t+="",t+=this.getMenuText("mn6_translate","Translate",void 0,1,2),t+="
          ",t+="
        • Right Mouse
          (Two Finger Click & Drag)
        • ",t+="
        ",t+="",t+="
      ",t+="",t+=this.getMenuUrl("selhints",e.htmlCls.baseUrl+"icn3d/icn3d.html#selsubset","Selection Hints",void 0,1),t+=this.getMenuUrl("helpdesk","https://support.nlm.nih.gov/support/create-case/","Write to Help Desk",1,1),t+="

    • ",t+="
    ",t}hideMenu(){let e=this.icn3dui;e.bNode||(void 0!==$("#"+e.pre+"mnlist")[0]&&($("#"+e.pre+"mnlist")[0].style.display="none"),void 0!==$("#"+e.pre+"mnLogSection")[0]&&($("#"+e.pre+"mnLogSection")[0].style.display="none"),void 0!==$("#"+e.pre+"cmdlog")[0]&&($("#"+e.pre+"cmdlog")[0].style.display="none"),$("#"+e.pre+"title")[0].style.margin="10px 0 0 10px")}showMenu(){let e=this.icn3dui;e.bNode||(void 0!==$("#"+e.pre+"mnlist")[0]&&($("#"+e.pre+"mnlist")[0].style.display="block"),void 0!==$("#"+e.pre+"mnLogSection")[0]&&($("#"+e.pre+"mnLogSection")[0].style.display="block"),void 0!==$("#"+e.pre+"cmdlog")[0]&&($("#"+e.pre+"cmdlog")[0].style.display="block"))}}class c{constructor(e){this.icn3dui=e}openDlg(e,t){let s=this.icn3dui;s.icn3d,s.bNode||(e=s.pre+e,s.cfg.notebook?this.openDlgNotebook(e,t):this.openDlgRegular(e,t),s.htmlCls.themecolor||(s.htmlCls.themecolor="blue"),s.htmlCls.setMenuCls.setTheme(s.htmlCls.themecolor))}addSaveButton(e){let t=this.icn3dui;t.icn3d,t.bNode||void 0!==this.dialogHashSave&&this.dialogHashSave.hasOwnProperty(e)||($("#"+e).parent().children(".ui-dialog-titlebar").append("
    "),void 0===this.dialogHashSave&&(this.dialogHashSave={}),this.dialogHashSave[e]=1)}addHideButton(e){let t=this.icn3dui;t.icn3d,t.bNode||void 0!==this.dialogHashHide&&this.dialogHashHide.hasOwnProperty(e)||($("#"+e).parent().children(".ui-dialog-titlebar").append("
    "),void 0===this.dialogHashHide&&(this.dialogHashHide={}),this.dialogHashHide[e]=1)}getDialogStatus(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t={},s={},i=$("#"+e.pre+"dl_selectannotations").hasClass("ui-dialog-content"),n=$("#"+e.pre+"dl_graph").hasClass("ui-dialog-content"),l=$("#"+e.pre+"dl_linegraph").hasClass("ui-dialog-content"),r=$("#"+e.pre+"dl_scatterplot").hasClass("ui-dialog-content"),o=$("#"+e.pre+"dl_ligplot").hasClass("ui-dialog-content"),a=$("#"+e.pre+"dl_contactmap").hasClass("ui-dialog-content"),d=$("#"+e.pre+"dl_alignerrormap").hasClass("ui-dialog-content"),c=$("#"+e.pre+"dl_interactionsorted").hasClass("ui-dialog-content"),h=$("#"+e.pre+"dl_alignment").hasClass("ui-dialog-content"),p=$("#"+e.pre+"dl_2ddgm").hasClass("ui-dialog-content"),m=$("#"+e.pre+"dl_2dctn").hasClass("ui-dialog-content"),u=$("#"+e.pre+"dl_definedsets").hasClass("ui-dialog-content");return t.bSelectannotationsInit2=!1,t.bGraph2=!1,t.bLineGraph2=!1,t.bScatterplot2=!1,t.bLigplot2=!1,t.bTable2=!1,t.bAlignmentInit2=!1,t.bTwoddgmInit2=!1,t.bTwodctnInit2=!1,t.bSetsInit2=!1,s.dl_selectannotations="bSelectannotationsInit2",s.dl_graph="bGraph2",s.dl_linegraph="bLineGraph2",s.dl_scatterplot="bScatterplot2",s.dl_ligplot="bLigplot2",s.dl_contactmap="bContactmap2",s.dl_alignerrormap="bAlignerrormap2",s.dl_interactionsorted="bTable2",s.dl_alignment="bAlignmentInit2",s.dl_2ddgm="bTwoddgmInit2",s.dl_2dctn="bTwodctnInit2",s.dl_definedsets="bSetsInit2",i&&(t.bSelectannotationsInit2=$("#"+e.pre+"dl_selectannotations").dialog("isOpen")),n&&(t.bGraph2=$("#"+e.pre+"dl_graph").dialog("isOpen")),l&&(t.bLineGraph2=$("#"+e.pre+"dl_linegraph").dialog("isOpen")),r&&(t.bScatterplot2=$("#"+e.pre+"dl_scatterplot").dialog("isOpen")),o&&(t.bLigplot2=$("#"+e.pre+"dl_ligplot").dialog("isOpen")),a&&(t.bContactmap2=$("#"+e.pre+"dl_contactmap").dialog("isOpen")),d&&(t.bAlignerror2=$("#"+e.pre+"dl_alignerrormap").dialog("isOpen")),c&&(t.bTable2=$("#"+e.pre+"dl_interactionsorted").dialog("isOpen")),h&&(t.bAlignmentInit2=$("#"+e.pre+"dl_alignment").dialog("isOpen")),p&&(t.bTwoddgmInit2=$("#"+e.pre+"dl_2ddgm").dialog("isOpen")),m&&(t.bTwodctnInit2=$("#"+e.pre+"dl_2dctn").dialog("isOpen")),u&&(t.bSetsInit2=$("#"+e.pre+"dl_definedsets").dialog("isOpen")),{status:t,id2flag:s}}openDlgHalfWindow(e,t,s,i){let n=this.icn3dui,l=n.icn3d;if(n.bNode)return;let r=this,o=n.htmlCls.width2d+20;l.resizeCanvasCls.resizeCanvas(n.htmlCls.WIDTH-s,n.htmlCls.HEIGHT,i);let a,d=n.htmlCls.HEIGHT,c=s;a=!n.cfg.showmenu||n.utilsCls.isMobile()||n.cfg.mobilemenu?{my:"left top",at:"right top",of:"#"+n.pre+"viewer",collision:"none"}:{my:"left top",at:"right top+40",of:"#"+n.pre+"viewer",collision:"none"},n.cfg.resize=!1,window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:d,width:c,modal:!1,position:a,close:function(t){let s=r.getDialogStatus(),i=s.status,a=s.id2flag,d=!1;for(let t in a){let s=e===n.pre+t;for(let e in i)i.hasOwnProperty(e)||(s=s&&!i[e]);d=d||s}if(d)if(i.bTwoddgmInit2||i.bTwodctnInit2||i.bSetsInit2){let e=n.utilsCls.isMobile()?n.htmlCls.WIDTH:n.htmlCls.WIDTH-o;l.resizeCanvasCls.resizeCanvas(e,n.htmlCls.HEIGHT,!0),i.bTwoddgmInit2&&r.openDlg2Ddgm(n.pre+"dl_2ddgm",void 0,i.bSetsInit2),i.bTwodctnInit2&&r.openDlg2Ddgm(n.pre+"dl_2dctn",void 0,i.bSetsInit2),i.bSetsInit2&&r.openDlg2Ddgm(n.pre+"dl_definedsets")}else l.resizeCanvasCls.resizeCanvas(n.htmlCls.WIDTH,n.htmlCls.HEIGHT,!0)},resize:function(t){if(e==n.pre+"dl_selectannotations")l.annotationCls.hideFixedTitle();else if(e==n.pre+"dl_graph"){let t=$("#"+e).width(),s=$("#"+e).height();d3.select("#"+n.svgid).attr("width",t).attr("height",s)}else if(e==n.pre+"dl_linegraph"||e==n.pre+"dl_scatterplot"||e==n.pre+"dl_ligplot"||e==n.pre+"dl_contactmap"||e==n.pre+"dl_alignerrormap"){let t=status.bTwoddgmInit2||status.bSetsInit2?(n.htmlCls.WIDTH-o)/2:n.htmlCls.WIDTH/2,s=$("#"+e).width()/t;if(e==n.pre+"dl_linegraph"){let e=l.linegraphWidth*s;$("#"+n.linegraphid).attr("width",e)}else if(e==n.pre+"dl_scatterplot"){let e=l.scatterplotWidth*s;$("#"+n.scatterplotid).attr("width",e)}else if(e==n.pre+"dl_ligplot"){let e=l.ligplotWidth*s;$("#"+n.ligplotid).attr("width",e)}else if(e==n.pre+"dl_ligplot"){let e=l.ligplotWidth*s;$("#"+n.ligplotid).attr("width",e)}else if(e==n.pre+"dl_contactmap"){let e=l.contactmapWidth*s;$("#"+n.contactmapid).attr("width",e)}else if(e==n.pre+"dl_alignerrormap"){let e=l.alignerrormapWidth*s;$("#"+n.alignerrormapid).attr("width",e)}}}}),this.addSaveButton(e),this.addHideButton(e)}openDlg2Ddgm(e,t,s){let i=this.icn3dui,n=i.icn3d;if(i.bNode)return;let l,r,o=this,a=i.htmlCls.width2d+20;e===i.pre+"dl_definedsets"?(l="right top",r="Select sets"):e!==i.pre+"dl_2ddgm"&&e!==i.pre+"dl_2dctn"||(l=s?"right top+240":"right top",r=e===i.pre+"dl_2ddgm"?"2D Diagram":"2D Cartoon");let d={my:"left top+"+i.htmlCls.MENU_HEIGHT,at:l,of:"#"+i.pre+"viewer",collision:"none"};window.dialog=$("#"+e).dialog({autoOpen:!0,title:r,height:"auto",width:a,modal:!1,position:d,close:function(e){let t=o.getDialogStatus().status;t.bSelectannotationsInit2||t.bGraph2||t.bLineGraph2||t.bScatterplot2||t.bLigplot2||t.bTable2||t.bAlignmentInit2||n.resizeCanvasCls.resizeCanvas(i.htmlCls.WIDTH,i.htmlCls.HEIGHT,!0)},resize:function(t,s){e==i.pre+"dl_2dctn"&&(n.resizeRatioX=s.size.width/i.htmlCls.width2d,n.resizeRatioY=s.size.height/(i.htmlCls.width2d+70))},resizeStop:function(e,t){n.resizeRatioX=t.size.width/i.htmlCls.width2d,n.resizeRatioY=t.size.height/(i.htmlCls.width2d+70)}}),this.addSaveButton(e),this.addHideButton(e)}openDlgRegular(e,t){let s=this.icn3dui,i=s.icn3d;if(s.bNode)return;let n=400,l=150,r=s.htmlCls.width2d+20,o=this.getDialogStatus().status;if(e===s.pre+"dl_selectannotations"||e===s.pre+"dl_graph"||e===s.pre+"dl_linegraph"||e===s.pre+"dl_scatterplot"||e===s.pre+"dl_ligplot"||e===s.pre+"dl_contactmap"||e===s.pre+"dl_alignerrormap"||e===s.pre+"dl_interactionsorted"||e===s.pre+"dl_alignment"){let a=.5*s.htmlCls.WIDTH-.5*r;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)this.openDlgHalfWindow(e,t,a,!0),(o.bTwoddgmInit2||o.bTwodctnInit2||o.bSetsInit2)&&(i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-a-r,s.htmlCls.HEIGHT,!0),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,o.bSetsInit2),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,o.bSetsInit2),o.bSetsInit2&&this.openDlg2Ddgm(s.pre+"dl_definedsets"));else{i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH,.5*s.htmlCls.HEIGHT,!0),l=.5*s.htmlCls.HEIGHT,n=s.htmlCls.WIDTH;let a={my:"left top",at:"left bottom+32",of:"#"+s.pre+"canvas",collision:"none"};window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:l,width:n,modal:!1,position:a,close:function(t){if(!((e!==s.pre+"dl_selectannotations"||o.bAlignmentInit2||o.bGraph2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_graph"||o.bSelectannotationsInit2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_alignment"||o.bSelectannotationsInit2||o.bGraph2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_interactionsorted"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_linegraph"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_scatterplot"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_ligplot"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_contactmap"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bAlignerrormap2)&&(e!==s.pre+"dl_alignerrormap"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2)))if(o.bTwoddgmInit2||o.bTwodctnInit2||o.bSetsInit2){let e=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(e,s.htmlCls.HEIGHT,!0),o.bTwoddgmInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,o.bSetsInit2),o.bTwodctnInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,o.bSetsInit2),o.bSetsInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_definedsets")}else i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH,s.htmlCls.HEIGHT,!0)},resize:function(t){if(e==s.pre+"dl_selectannotations")i.annotationCls.hideFixedTitle();else if(e==s.pre+"dl_graph"){let t=$("#"+e).width(),i=$("#"+e).height();d3.select("#"+s.svgid).attr("width",t).attr("height",i)}else if(e==s.pre+"dl_linegraph"||e==s.pre+"dl_scatterplot"||e==s.pre+"dl_ligplot"||e==s.pre+"dl_contactmap"||e==s.pre+"dl_alignerrormap"){let t=o.bTwoddgmInit2||o.bSetsInit2?(s.htmlCls.WIDTH-r)/2:s.htmlCls.WIDTH/2,n=$("#"+e).width()/t;if(e==s.pre+"dl_linegraph"){let e=i.linegraphWidth*n;$("#"+s.linegraphid).attr("width",e)}else if(e==s.pre+"dl_scatterplot"){let e=i.scatterplotWidth*n;$("#"+s.scatterplotid).attr("width",e)}else if(e==s.pre+"dl_ligplot"){let e=i.ligplotWidth*n;$("#"+s.ligplotid).attr("width",e)}else if(e==s.pre+"dl_contactmap"){let e=i.contactmapWidth*n;$("#"+s.contactmapid).attr("width",e)}else if(e==s.pre+"dl_alignerrormap"){let e=i.alignerrormapWidth*n;$("#"+s.alignerrormapid).attr("width",e)}}}}),this.addSaveButton(e),this.addHideButton(e)}}else if(e===s.pre+"dl_2ddgm"||e===s.pre+"dl_2dctn"){let t=0;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)(o.bSelectannotationsInit2||o.bGraph2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bTable2||o.bAlignmentInit2)&&(t=.5*s.htmlCls.WIDTH-.5*r),i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-t-r,s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,void 0,o.bSetsInit2);else{let t=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(t,.5*s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT,o.bSetsInit2)}}else{let a;if(l="auto",n="auto",e===s.pre+"dl_addtrack"?n="50%":e===s.pre+"dl_menupref"&&(n=600,l=500),e===s.pre+"dl_definedsets"){let t=0;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)(o.bSelectannotationsInit2||o.bGraph2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bTable2||o.bAlignmentInit2)&&(t=.5*s.htmlCls.WIDTH-.5*r),i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-t-r,s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,!0),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,!0);else{let t=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(t,.5*s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",.5*s.htmlCls.HEIGHT,!0),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",.5*s.htmlCls.HEIGHT,!0)}}else s.utilsCls.isMobile()?a={my:"left top",at:"left bottom-50",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_allinteraction"||e===s.pre+"dl_buriedarea"?(a={my:"right top",at:"right top+50",of:"#"+i.divid,collision:"none"},n=700,l=500):a=e===s.pre+"dl_rmsd"||e===s.pre+"dl_legend"?{my:"left bottom",at:"left+20 bottom-20",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_symd"?{my:"left top",at:"right-200 bottom-200",of:"#"+s.pre+"canvas",collision:"none"}:s.cfg.align?{my:"left top",at:"left top+90",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_mmdbafid"?{my:"left top",at:"left top+130",of:"#"+s.pre+"canvas",collision:"none"}:{my:"left top",at:"left top+50",of:"#"+s.pre+"canvas",collision:"none"},window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:l,width:n,modal:!1,position:a}),this.addSaveButton(e),this.addHideButton(e)}$(".ui-dialog .ui-button span").removeClass("ui-icon-closethick").addClass("ui-icon-close")}openDlgNotebook(e,t){let s=this.icn3dui,i=s.icn3d;if(s.bNode)return;let n=400,l=150,r=s.htmlCls.width2d+20;e===s.pre+"dl_selectannotations"||e===s.pre+"dl_graph"||e===s.pre+"dl_linegraph"||e===s.pre+"dl_scatterplot"||e===s.pre+"dl_ligplot"||e===s.pre+"dl_contactmap"||e===s.pre+"dl_alignerrormap"||e===s.pre+"dl_interactionsorted"||e===s.pre+"dl_alignment"?($("#"+e).show(),$("#"+e+"_nb").show(),$("#"+e+"_title").html(t),l=.5*s.htmlCls.HEIGHT,n=s.htmlCls.WIDTH,$("#"+e).width(n),$("#"+e).height(l),$("#"+e).resize((function(t){let n=s.htmlCls.WIDTH/2,l=$("#"+e).width()/n;if(e==s.pre+"dl_selectannotations")i.annotationCls.hideFixedTitle();else if(e==s.pre+"dl_graph"){let t=$("#"+e).width(),i=$("#"+e).height();d3.select("#"+s.svgid).attr("width",t).attr("height",i)}else if(e==s.pre+"dl_linegraph"){let e=i.linegraphWidth*l;$("#"+s.linegraphid).attr("width",e)}else if(e==s.pre+"dl_scatterplot"){let e=i.scatterplotWidth*l;$("#"+s.scatterplotid).attr("width",e)}else if(e==s.pre+"dl_ligplot"){let e=i.ligplotWidth*l;$("#"+s.ligplotid).attr("width",e)}else if(e==s.pre+"dl_contactmap"){let e=i.contactmapWidth*l;$("#"+s.contactmapid).attr("width",e)}else if(e==s.pre+"dl_alignerrormap"){let e=i.alignerrormapWidth*l;$("#"+s.alignerrormapid).attr("width",e)}}))):(i.bRender&&($("#"+e).show(),$("#"+e+"_nb").show(),$("#"+e+"_title").html(t)),l="auto",n="auto",e===s.pre+"dl_addtrack"?n="50%":e===s.pre+"dl_2ddgm"||e===s.pre+"dl_2dctn"||e===s.pre+"dl_definedsets"?n=r:e!==s.pre+"dl_allinteraction"&&e!==s.pre+"dl_buriedarea"||(n=700,l=500),$("#"+e).width(n),$("#"+e).height(l))}}class h{constructor(e){this.icn3dui=e}setCustomDialogs(){let e=this.icn3dui;if(e.icn3d,e.bNode)return"";return""}getHtmlAlignResidueByResidue(e,t,s){let i=this.icn3dui;i.icn3d;let n="";return n+="All chains will be aligned to the first chain in the comma-separated chain IDs. Each chain ID has the form of PDBID_chain (e.g., 1HHO_A, case sensitive) or UniprotID (e.g., P69905 for AlphaFold structures).

    ",n+="Chain IDs: "+i.htmlCls.inputTextStr+"id='"+i.pre+e+"' value='P69905,P01942,1HHO_A' size=50>

    ",n+='Each alignment is defined as " | "-separated residue lists in one line. "10-50" means a range of residues from 10 to 50.

    ",n+=i.htmlCls.buttonStr+s+"'>Align Residue by Residue
    ",n}addNotebookTitle(e,t,s){let i=this.icn3dui;i.icn3d;let n='';return s&&(n+='
    '),n}setDialogs(){let e=this.icn3dui,t=e.icn3d;if(e.bNode)return"";let s="";e.htmlCls.optionStr="";for(let l=0,r=t[n].length;l"+r+", Strands: "+s[r]+""}i+=""}return i}getAnnoHeader(){let e=this.icn3dui;e.icn3d;let t="";t+="
    Annotations: 
    ",t+="
    ";let s="",t+=i+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_cdd' checked>Conserved Domains"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_clinvar'>ClinVar"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_binding'>Functional Sites"+e.htmlCls.space2+"",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_custom'>Custom"+e.htmlCls.space2+"",t+=i+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_3dd'>3D Domains"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_snp'>SNPs"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ptm'>PTM (UniProt)"+e.htmlCls.space2+"",t+="",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ssbond'>Disulfide Bonds"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_interact'>Interactions"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_crosslink'>Cross-Linkages"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_transmem'>Transmembrane"+e.htmlCls.space2+"",t+="",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ig'>Ig Domains"+e.htmlCls.space2+"",t+="",t+="
    ",i="";return t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_all'>All"+e.htmlCls.space2+"
    ",t}}class p{constructor(e){this.icn3dui=e}setLogCmd(e,t,s){var i=this.icn3dui;i.icn3d,i.htmlCls.clickMenuCls.setLogCmd(e,t,s)}fullScreenChange(){let e=this.icn3dui,t=e.icn3d,s=this;e.bNode||document.fullscreenElement||document.webkitFullscreenElement||document.mozFullscreenElement||document.msFullscreenElement||(s.setLogCmd("exit full screen",!1),t.bFullscreen=!1,e.utilsCls.setViewerWidthHeight(e,!0),t.applyCenterCls.setWidthHeight(e.htmlCls.WIDTH,e.htmlCls.HEIGHT),t.drawCls.draw())}convertUniProtInChains(e){this.icn3dui.icn3d;let t=e.split(","),s="";for(let e=0,i=t.length;e0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(l)),s.cfg.aligntool=e;let r="vast"==e?"structure align":"tmalign";if(r+=t?" msa":"",l.length>0?n.setLogCmd("realign on "+r+" | "+l,!0):n.setLogCmd("realign on "+r,!0),t){if(0==l.length){l=[];let e={};for(let t in i.chains){let s=i.firstAtomObjCls.getFirstAtomObj(i.chains[t]);e.hasOwnProperty(s.structure)||!i.proteins.hasOwnProperty(s.serial)&&!i.nucleotides.hasOwnProperty(s.serial)||(l.push(t),e[s.structure]=1)}}await i.realignParserCls.realignOnStructAlignMsa(l)}else await i.realignParserCls.realignOnStructAlign()}async readFile(e,t,s,i,n,l){let r=this.icn3dui,o=r.icn3d,a=this,d=t[s],c=e?"append":"load";c+=n?" mmcif file ":l?" png file ":" pdb file ";let h=new FileReader;h.onload=async function(h){let p=h.target.result;if(a.setLogCmd(c+d.name,!1),e?(o.resetConfig(),o.bResetAnno=!0,o.bResetSets=!0):o.init(),o.bInputfile=!0,o.InputfileType=n?"mmcif":l?"png":"pdb",l){let e=await r.htmlCls.setHtmlCls.loadPng(p);if(p=e.pdb,!p)return;o.statefileArray||(o.statefileArray=[]),o.statefileArray.push(e.statefile)}o.InputfileData=o.InputfileData?o.InputfileData+"\nENDMDL\n"+p:p,i=s>0?i+"\nENDMDL\n"+p:p,Object.keys(t).length==s+1?(e&&(o.hAtoms={},o.dAtoms={}),n?await o.mmcifParserCls.loadMultipleMmcifData(i,void 0,e):await o.pdbParserCls.loadPdbData(i,void 0,void 0,e)):await a.readFile(e,t,s+1,i,n,l),e&&(o.bSetChainsAdvancedMenu&&o.definedSetsCls.showSets(),o.bResetAnno=!0,o.bAnnoShown&&(await o.showAnnoCls.showAnnotations(),o.annotationCls.resetAnnoTabAll()))},"object"==typeof d&&h.readAsText(d)}async loadPdbFile(e,t,s){let i=this.icn3dui,n=i.icn3d;n.bInitial=!0,i.cfg.notebook||dialog.dialog("close"),i.cfg.notebook?n.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let l=$("#"+i.pre+t)[0].files;l[0]?(i.htmlCls.setHtmlCls.fileSupport(),n.molTitle="",n.dataStrAll="",await this.readFile(e,l,0,"",s)):alert("Please select a file before clicking 'Load'")}saveHtml(e){let t=this.icn3dui.icn3d,s="";s+='\n',s+='\n',s+=$("#"+e).html();let i=e.split("_"),n=i.length>2?i[2]:e,l=Object.keys(t.structures)[0];Object.keys(t.structures).length>1&&(l+="-"+Object.keys(t.structures)[1]),t.saveFileCls.saveFile(l+"-"+n+".html","html",encodeURIComponent(s))}setPredefinedMenu(e){let t=this.icn3dui,s=t.icn3d;if(Object.keys(s.chains).length<2)return void alert("At least two chains are required for alignment...");t.htmlCls.clickMenuCls.SetChainsAdvancedMenu();let i=s.definedSetsCls.setAtomMenu(["protein"]);$("#"+t.pre+e).length&&$("#"+t.pre+e).html(i),$("#"+t.pre+e).resizable()}async launchMmdb(e,t,s,i){let n=this.icn3dui,l=n.icn3d,r=this;n.cfg.notebook||dialog.dialog("close");let o=t?1:0;if(!(e=e.replace(/,/g," ").replace(/\s+/g,",").trim()))return void alert("Please enter a list of PDB IDs or AlphaFold UniProt IDs...");let a=e.split(",");if(i)if(l.structures||1!=a.length||4!=a[0].length&&isNaN(a[0])){n.cfg.mmdbafid=e,n.cfg.bu=o,l.bMmdbafid=!0,l.inputid=l.inputid?l.inputid+n.cfg.mmdbafid:n.cfg.mmdbafid,1==n.cfg.bu?l.loadCmd="load mmdbaf1 "+n.cfg.mmdbafid:l.loadCmd="load mmdbaf0 "+n.cfg.mmdbafid,n.htmlCls.clickMenuCls.setLogCmd(l.loadCmd,!0);let t=!!(l.structures&&Object.keys(l.structures).length>0);await l.chainalignParserCls.downloadMmdbAf(n.cfg.mmdbafid),t&&(l.bSetChainsAdvancedMenu&&l.definedSetsCls.showSets(),l.bAnnoShown&&(await l.showAnnoCls.showAnnotations(),l.annotationCls.resetAnnoTabAll()))}else{r.setLogCmd("load mmdb"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbid="+e+"&bu="+o,t)}else if(1!=a.length||4!=a[0].length&&isNaN(a[0])){r.setLogCmd("load mmdbaf"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbafid="+e+"&bu="+o,t)}else{r.setLogCmd("load mmdb"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbid="+e+"&bu="+o,t)}}allEventFunctions(){let e=this.icn3dui,t=e.icn3d,s=this;if(e.bNode)return;let i=document.URL,n=i.indexOf("?");i=-1==n?i:i.substr(0,n),i.indexOf("/vast/icn3d/")&&(i=i.replace(/\/vast\/icn3d\//g,"/icn3d/")),t.definedSetsCls.clickCustomAtoms(),t.definedSetsCls.clickCommand_apply(),t.definedSetsCls.clickModeswitch(),t.selectionCls.clickShow_selected(),t.selectionCls.clickHide_selected(),t.diagram2dCls.click2Ddgm(),t.cartoon2dCls.click2Dcartoon(),t.ligplotCls.clickLigplot(),t.addTrackCls.clickAddTrackButton(),t.resizeCanvasCls.windowResize(),t.annotationCls.setTabs(),t.resid2specCls.switchHighlightLevel(),e.utilsCls.isMobile()?(t.hlSeqCls.selectSequenceMobile(),t.hlSeqCls.selectChainMobile()):t.hlSeqCls.selectSequenceNonMobile(),e.htmlCls.clickMenuCls.clickMenu1(),e.htmlCls.clickMenuCls.clickMenu2(),e.htmlCls.clickMenuCls.clickMenu3(),e.htmlCls.clickMenuCls.clickMenu4(),e.htmlCls.clickMenuCls.clickMenu5(),e.htmlCls.clickMenuCls.clickMenu6(),e.myEventCls.onIds(["#"+e.pre+"back","#"+e.pre+"mn6_back"],"click",(async function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("back",!1),await i.resizeCanvasCls.back()})),e.myEventCls.onIds(["#"+e.pre+"forward","#"+e.pre+"mn6_forward"],"click",(async function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("forward",!1),await i.resizeCanvasCls.forward()})),e.myEventCls.onIds(["#"+e.pre+"fullscreen","#"+e.pre+"mn6_fullscreen"],"click",(function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("enter full screen",!1),i.bFullscreen=!0,e.htmlCls.WIDTH=$(window).width(),e.htmlCls.HEIGHT=$(window).height(),i.applyCenterCls.setWidthHeight(e.htmlCls.WIDTH,e.htmlCls.HEIGHT),i.drawCls.draw(),i.resizeCanvasCls.openFullscreen($("#"+e.pre+"canvas")[0])})),document.addEventListener("fullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("webkitfullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("mozfullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("msfullscreenchange",this.fullScreenChange.bind(this)),e.myEventCls.onIds(["#"+e.pre+"toggle","#"+e.pre+"mn2_toggle"],"click",(function(t){e.icn3d.selectionCls.toggleSelection(),s.setLogCmd("toggle selection",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrYellow","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color yellow",!0),i.hColor=e.parasCls.thr(16776960),i.matShader=i.setColorCls.setOutlineColor("yellow"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrGreen","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color green",!0),i.hColor=e.parasCls.thr(65280),i.matShader=i.setColorCls.setOutlineColor("green"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrRed","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color red",!0),i.hColor=e.parasCls.thr(16711680),i.matShader=i.setColorCls.setOutlineColor("red"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleOutline","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight style outline",!0),i.bHighlight=1,i.hlUpdateCls.showHighlight()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleObject","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight style 3d",!0),i.bHighlight=2,i.hlUpdateCls.showHighlight()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleNone","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds(["#"+e.pre+"alternate","#"+e.pre+"mn2_alternate","#"+e.pre+"alternate2"],"click",(async function(t){let i=e.icn3d;i.bAlternate=!0,await i.alternateCls.alternateStructures(),i.bAlternate=!1,s.setLogCmd("alternate structures",!1)})),e.myEventCls.onIds("#"+e.pre+"mn2_realignresbyres","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_realignresbyres","Align multiple chains residue by residue")})),e.myEventCls.onIds("#"+e.pre+"realignSelection","click",(function(t){let i=e.icn3d;Object.keys(i.chains).length<2?alert("At least two chains are required for alignment..."):(i.realignParserCls.realign(),s.setLogCmd("realign",!0))})),e.myEventCls.onIds("#"+e.pre+"mn2_realignonseqalign","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realign","Please select chains to realign"),s.setPredefinedMenu("atomsCustomRealign")})),e.myEventCls.onIds("#"+e.pre+"mn2_realignonstruct","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realignbystruct","Please select chains to realign"),s.setPredefinedMenu("atomsCustomRealignByStruct")})),e.myEventCls.onIds("#"+e.pre+"mn2_realigntwostru","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realigntwostru","Please select structures to realign"),s.setPredefinedMenu("atomsCustomRealignByStruct2")})),e.myEventCls.onIds("#"+e.pre+"applyRealign","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomRealign").val();n.length>0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(n)),await i.realignParserCls.realignOnSeqAlign(),n.length>0?s.setLogCmd("realign on seq align | "+n,!0):s.setLogCmd("realign on seq align",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("vast",!1)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct_tmalign","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("tmalign",!1)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStructMsa","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("vast",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStructMsa_tmalign","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("tmalign",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct_vastplus","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomRealignByStruct2").val();n.length>0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(n)),await i.vastplusCls.realignOnVastplus(),n.length>0?s.setLogCmd("realign on vastplus | "+n,!0):s.setLogCmd("realign on vastplus",!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorSpectrumAcrossSets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorSpectrumAcross").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorAcrossSets(n,!0),s.setLogCmd("set color spectrum | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorSpectrumBySets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorSpectrum").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorBySets(n,!0),s.setLogCmd("set residues color spectrum | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorRainbowAcrossSets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorRainbowAcross").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorAcrossSets(n,!1),s.setLogCmd("set color rainbow | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorRainbowBySets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorRainbow").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorBySets(n,!1),s.setLogCmd("set residues color rainbow | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"anno_summary","click",(function(t){let i=e.icn3d;t.preventDefault(),i.annotationCls.setAnnoViewAndDisplay("overview"),s.setLogCmd("set view overview",!0)})),e.myEventCls.onIds("#"+e.pre+"anno_details","click",(function(t){let i=e.icn3d;t.preventDefault(),i.annotationCls.setAnnoViewAndDisplay("detailed view"),s.setLogCmd("set view detailed view",!0)})),e.myEventCls.onIds("#"+e.pre+"show_annotations","click",(async function(t){let i=e.icn3d;await i.showAnnoCls.showAnnotations(),s.setLogCmd("view annotations",!0)})),e.myEventCls.onIds("#"+e.pre+"showallchains","click",(function(t){e.icn3d.annotationCls.showAnnoAllChains(),s.setLogCmd("show annotations all chains",!0)})),e.myEventCls.onIds("#"+e.pre+"show_alignsequences","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_alignment","Select residues in aligned sequences")})),e.myEventCls.onIds(["#"+e.pre+"show_2ddgm","#"+e.pre+"mn2_2ddgm"],"click",(async function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_2ddgm","2D Diagram"),await i.viewInterPairsCls.retrieveInteractionData(),s.setLogCmd("view interactions",!0)})),e.myEventCls.onIds("#"+e.pre+"search_seq_button","click",(async function(t){e.icn3d,t.stopImmediatePropagation(),await s.searchSeq()})),e.myEventCls.onIds("#"+e.pre+"search_seq","keyup",(async function(t){e.icn3d,13===t.keyCode&&(t.preventDefault(),await s.searchSeq())})),e.myEventCls.onIds("#"+e.pre+"reload_vastplus","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("vast+ search "+$("#"+e.pre+"vastpluspdbid").val(),!1);let n=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open("https://www.ncbi.nlm.nih.gov/Structure/vastplus/vastplus.cgi?uid="+$("#"+e.pre+"vastpluspdbid").val(),n)})),e.myEventCls.onIds("#"+e.pre+"reload_vast","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("vast search "+$("#"+e.pre+"vastpdbid").val()+"_"+$("#"+e.pre+"vastchainid").val(),!1);let n=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open("https://www.ncbi.nlm.nih.gov/Structure/vast/vastsrv.cgi?pdbid="+$("#"+e.pre+"vastpdbid").val()+"&chain="+$("#"+e.pre+"vastchainid").val(),n)})),e.myEventCls.onIds("#"+e.pre+"reload_foldseek","click",(function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"foldseekchainids").val(),l=s.convertUniProtInChains(n);s.setLogCmd("load chainalignment "+l,!0),window.open(i+"?chainalign="+l+"&aligntool=tmalign&showalignseq=1&bu=0","_self")})),e.myEventCls.onIds("#"+e.pre+"reload_mmtf","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load bcif "+$("#"+e.pre+"mmtfid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?bcifid="+$("#"+e.pre+"mmtfid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"mmtfid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmtf "+$("#"+e.pre+"mmtfid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmtfid="+$("#"+e.pre+"mmtfid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_pdb","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load pdb "+$("#"+e.pre+"pdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?pdbid="+$("#"+e.pre+"pdbid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"translate_pdb","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"translateX").val(),l=$("#"+e.pre+"translateY").val(),r=$("#"+e.pre+"translateZ").val();i.transformCls.translateCoord(i.hAtoms,parseFloat(n),parseFloat(l),parseFloat(r)),i.drawCls.draw(),s.setLogCmd("translate pdb "+n+" "+l+" "+r,!0)})),e.myEventCls.onIds("#"+e.pre+"measure_angle","click",(function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"v1X").val(),n=$("#"+e.pre+"v1Y").val(),l=$("#"+e.pre+"v1Z").val(),r=$("#"+e.pre+"v2X").val(),o=$("#"+e.pre+"v2Y").val(),a=$("#"+e.pre+"v2Z").val(),d=new THREE.Vector3(parseFloat(i),parseFloat(n),parseFloat(l)).angleTo(new THREE.Vector3(parseFloat(r),parseFloat(o),parseFloat(a)))/3.1416*180;d=Math.abs(d).toFixed(0),d>180&&(d-=180),d>90&&(d=180-d),s.setLogCmd("The angle is "+d+" degree",!1),$("#"+e.pre+"angle_value").val(d)})),e.myEventCls.onIds("#"+e.pre+"matrix_pdb","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=[];for(let t=0;t<16;++t)n.push(parseFloat($("#"+e.pre+"matrix"+t).val()));i.transformCls.rotateCoord(i.hAtoms,n),i.drawCls.draw(),s.setLogCmd("rotate pdb "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"pdbid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load pdb "+$("#"+e.pre+"pdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?pdbid="+$("#"+e.pre+"pdbid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_af","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load af "+$("#"+e.pre+"afid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?afid="+$("#"+e.pre+"afid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_afmap","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=e.cfg.afid?e.cfg.afid:$("#"+e.pre+"afid").val();s.setLogCmd("set half pae map "+n,!0),await i.contactMapCls.afErrorMap(n)})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfull","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=e.cfg.afid?e.cfg.afid:$("#"+e.pre+"afid").val();s.setLogCmd("set full pae map "+n,!0),await i.contactMapCls.afErrorMap(n,!0)})),e.myEventCls.onIds("#"+e.pre+"afid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load af "+$("#"+e.pre+"afid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?afid="+$("#"+e.pre+"afid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_opm","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load opm "+$("#"+e.pre+"opmid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?opmid="+$("#"+e.pre+"opmid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"opmid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load opm "+$("#"+e.pre+"opmid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?opmid="+$("#"+e.pre+"opmid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_align_refined","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=1&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=1&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_align_ori","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=0&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=0&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_align_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=2&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=2&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_alignaf","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignafid1").val()+"_A,"+$("#"+e.pre+"alignafid2").val()+"_A";s.setLogCmd("load chains "+l+" | residues | resdef ",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+l+"&resnum=&resdef=&showalignseq=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_alignaf_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignafid1").val()+"_A,"+$("#"+e.pre+"alignafid2").val()+"_A";s.setLogCmd("load chains "+l+" | residues | resdef | align tmalign",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+l+"&aligntool=tmalign&resnum=&resdef=&showalignseq=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids").val(),r=s.convertUniProtInChains(l);s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef ",!1);let o=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum=&resdef=&showalignseq=1&bu=0",o)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym2","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids2").val(),r=s.convertUniProtInChains(l),o=$("#"+e.pre+"resalignids").val();s.setLogCmd("load chains "+r+" on asymmetric unit | residues "+o+" | resdef ",!1);let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum="+o+"&resdef=&showalignseq=1&bu=0",a)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym3","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids3").val(),r=s.convertUniProtInChains(l),o=$("#"+e.pre+"predefinedres").val().trim().replace(/\n/g,": ");if(o&&r.split(",").length-1!=o.split(": ").length)return void alert("Please make sure the number of chains and the lines of predefined residues are the same...");s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef "+o,!1);let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum=&resdef="+o+"&showalignseq=1&bu=0",a)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym4","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"chainalignids4").val(),l=s.convertUniProtInChains(n),r=$("#"+e.pre+"predefinedres2").val().trim().replace(/\n/g,": ");if(r&&l.split(",").length-1!=r.split(": ").length)return void alert("Please make sure the number of chains and the lines of predefined residues are the same...");e.cfg.resdef=r.replace(/:/gi,";");let o=l.split(",");await i.realignParserCls.realignChainOnSeqAlign(void 0,o,!0,!0),s.setLogCmd("realign predefined "+l+" "+r,!0)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids").val(),r=s.convertUniProtInChains(l);s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef | align tmalign",!1);let o=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&aligntool=tmalign&resnum=&resdef=&showalignseq=1&bu=0",o)})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_3d","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o;await n.scapCls.retrieveScap(e),s.setLogCmd("scap 3d "+e,!0),s.setLogCmd("select displayed set",!0)}else{let e=o.substr(0,o.indexOf("_"));s.setLogCmd("3d of mutation "+o,!1);let t=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?"+l+"="+e+"&command=scap 3d "+o+"; select displayed set",t)}})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_pdb","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o,t=!0;await n.scapCls.retrieveScap(e,void 0,t),s.setLogCmd("scap pdb "+e,!0)}else{let e=o.substr(0,o.indexOf("_"));s.setLogCmd("pdb of mutation "+o,!1);let t=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?"+l+"="+e+"&command=scap pdb "+o+"; select displayed set",t)}})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_inter","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o,t=!0;await n.scapCls.retrieveScap(e,t),s.setLogCmd("scap interaction "+e,!0);let i=e.split("_"),l="."+i[1]+":"+i[2],r="snp_"+i[1]+"_"+i[2];s.setLogCmd("select "+l+" | name "+r,!0),s.setLogCmd("line graph interaction pairs | selected non-selected | hbonds,salt bridge,interactions,halogen,pi-cation,pi-stacking | false | threshold 3.8 6 4 3.8 6 5.5",!0),s.setLogCmd("adjust dialog dl_linegraph",!0),s.setLogCmd("select displayed set",!0)}else{let e=o.split(","),t=[];for(let s=0,i=e.length;s0?"_blank":"_self";window.open(i+"?"+l+"="+r+"&command=scap interaction "+o,a)}})),e.myEventCls.onIds("#"+e.pre+"reload_mmcif","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmcif "+$("#"+e.pre+"mmcifid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmcifid="+$("#"+e.pre+"mmcifid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"mmcifid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmcif "+$("#"+e.pre+"mmcifid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmcifid="+$("#"+e.pre+"mmcifid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_mmdb","click",(function(t){let n=e.icn3d;t.preventDefault(),s.setLogCmd("load mmdb1 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=1",l)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdb_asym","click",(function(t){let n=e.icn3d;t.preventDefault(),s.setLogCmd("load mmdb0 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=0",l)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_asym","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,0,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_append","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i,!0)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_asym_append","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,0,i,!0)})),e.myEventCls.onIds("#"+e.pre+"mmdbid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),s.setLogCmd("load mmdb1 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=1",l)}})),e.myEventCls.onIds("#"+e.pre+"mmdbafid","keyup",(function(t){if(e.icn3d,13===t.keyCode){t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i)}})),e.myEventCls.onIds("#"+e.pre+"reload_blast_rep_id","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=blast&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"run_esmfold","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),$("#"+e.pre+"dl_mmdbafid").hasClass("ui-dialog-content")&&$("#"+e.pre+"dl_mmdbafid").dialog("close");let n=$("#"+e.pre+"esmfold_fasta").val(),l="stru--";if(-1!=n.indexOf(">")){let e=n.indexOf("\n");if(i.esmTitle=n.substr(1,e-1).trim(),-1!=i.esmTitle.indexOf("|")){let e=i.esmTitle.split("|");l=e.length>2?e[1]:i.esmTitle}else l=-1!=i.esmTitle.indexOf(" ")?i.esmTitle.substr(0,i.esmTitle.indexOf(" ")):i.esmTitle;l.length<6&&(l=l.padEnd(6,"-")),n=n.substr(e+1)}if(n=n.replace(/\s/g,""),n.length>400)return void alert("Your sequence is larger than 400 characters. Please consider to split it as described at https://github.com/facebookresearch/esm/issues/21.");s.setLogCmd("Run ESMFold with the sequence "+n,!1);let r=await e.getAjaxPostPromise("https://api.esmatlas.com/foldSequence/v1/pdb/",n,!0,"Problem in returning PDB from ESMFold server...",void 0,!0,"text");i.bResetAnno=!0,i.bInputfile=!0,i.InputfileType="pdb",i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+r:r,i.bEsmfold=!0;await i.pdbParserCls.loadPdbData(r,l,void 0,!0,void 0,void 0,void 0,i.bEsmfold)})),e.myEventCls.onIds("#"+e.pre+"reload_alignsw","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids_smithwm "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=smithwm&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"reload_alignswlocal","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids_local_smithwm "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=local_smithwm&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"reload_proteinname","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load protein "+$("#"+e.pre+"proteinname").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?protein="+$("#"+e.pre+"proteinname").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_refseq","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load refseq "+$("#"+e.pre+"refseqid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?refseqid="+$("#"+e.pre+"refseqid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"gi","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load gi "+$("#"+e.pre+"gi").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?gi="+$("#"+e.pre+"gi").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_uniprotid","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load uniprotid "+$("#"+e.pre+"uniprotid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?uniprotid="+$("#"+e.pre+"uniprotid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"uniprotid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load uniprotid "+$("#"+e.pre+"uniprotid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?uniprotid="+$("#"+e.pre+"uniprotid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_cid","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load cid "+$("#"+e.pre+"cid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?cid="+$("#"+e.pre+"cid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_smiles","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=s.structures&&Object.keys(s.structures).length>0?"_blank":"_self";n="_blank",window.open(i+"?smiles="+encodeURIComponent($("#"+e.pre+"smiles").val()),"_blank")})),e.myEventCls.onIds("#"+e.pre+"cid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load cid "+$("#"+e.pre+"cid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?cid="+$("#"+e.pre+"cid").val(),l)}})),e.htmlCls.setHtmlCls.clickReload_pngimage(),e.myEventCls.onIds("#"+e.pre+"reload_state","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close"),i.bInputfile||i.init();let n=$("#"+e.pre+"state")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){i.bStatefile=!0;let n=t.target.result;s.setLogCmd("load state file "+$("#"+e.pre+"state").val(),!1),i.commands=[],i.optsHistory=[],await i.loadScriptCls.loadScript(n,!0)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_selectionfile","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"selectionfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;await i.selectionCls.loadSelection(n),s.setLogCmd("load selection file "+$("#"+e.pre+"selectionfile").val(),!1)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_collectionfile","click",(function(t){let s=e.icn3d;t.preventDefault();let i=$("#"+e.pre+"collectionfile")[0].files[0];if(i){e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?s.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close"),s.bInputfile=!1,s.pdbCollection=[],s.allData={},s.allData.all={atoms:{},proteins:{},nucleotides:{},chemicals:{},ions:{},water:{},structures:{},ssbondpnts:{},residues:{},chains:{},chainsSeq:{},defNames2Atoms:{},defNames2Residues:{}},s.allData.prev={},s.selectCollectionsCls.reset(),s.dAtoms=e.hashUtilsCls.cloneHash(s.atoms),s.hAtoms=e.hashUtilsCls.cloneHash(s.atoms),e.htmlCls.setHtmlCls.fileSupport();let t=i.name.split(".").pop().toLowerCase();function n(e){return JSON.parse(e).structures.map((({id:e,title:t,description:s,commands:i})=>(e&&e.includes(".pdb")&&(e=e.split(".pdb")[0]),[e,t,s,i,!1])))}function l(e,t="",i=[]){let n=e.split("\n"),l=[],r=[];n.forEach((e=>{e.startsWith("HEADER")&&(r=[],l.push(r)),r.push(e)}));let o=[],a=[];return l.forEach((e=>{let t=e[0];t=t.replace(/[\n\r]/g,"").trim();let s=t.split(" ").filter(Boolean),i=s[s.length-1];o.push(i),a.push(e[1].startsWith("TITLE")?e[1].split("TITLE").pop().trim():i)})),l.length>0&&s.pdbCollection.push(...l),o.map(((e,t,s,i)=>[e,a[t],s,i,!0]))}$("#"+s.pre+"collections_menu").empty(),$("#"+s.pre+"collections_menu").off("change");let r=[];if("json"===t||"pdb"===t){let o=new FileReader;o.onload=async function(i){"json"===t?r=n(i.target.result):"pdb"===t&&(s.bInputfile=!0,r=l(i.target.result));let o=await s.selectCollectionsCls.setAtomMenu(r);$("#"+s.pre+"collections_menu").html(o),await s.selectCollectionsCls.clickStructure(r),$("#"+s.pre+"collections_menu").trigger("change"),e.htmlCls.clickMenuCls.setLogCmd("load collection file "+$("#"+e.pre+"collectionfile").val(),!1)},o.readAsText(i)}else{if("zip"!==t&&"gz"!==t)throw new Error("Invalid file type");{s.bInputfile=!0;let o=new FileReader;o.onload=async function(i){if("zip"===t){let t="./script/jszip.js";await e.getAjaxPromise(t,"script");let s=new JSZip;try{let t=await s.loadAsync(i.target.result),o=!1,a=!1,d=!1,c=[],h=[],p=[];for(let e in t.files){let s=t.files[e];s.dir||(e.endsWith(".json")?(o=!0,c.push(s)):e.endsWith(".pdb")?(a=!0,h.push(s)):e.endsWith(".gz")&&(d=!0,p.push(s)))}if(o&&a){let e=[];for(const t of c){n(await t.async("text")).forEach((t=>{e.push(t)}))}for(const[t,s,i,n,o]of e){let e=h.find((e=>e.name.toLowerCase().includes(t.toLowerCase())));if(e){l(await e.async("text"),i,n).forEach((e=>{r.push(e)}))}}}else if(o)c.forEach((async e=>{n(await e.async("text")).forEach((e=>{r.push(e)}))}));else if(a)h.forEach((async e=>{l(await e.async("text")).forEach((e=>{r.push(e)}))}));else if(d){let t="./script/pako.js";await e.getAjaxPromise(t,"script");try{for(const e of p){let t=await e.async("uint8array");l(pako.inflate(t,{to:"string"})).forEach((e=>{r.push(e)}))}}catch(e){console.error("Error loading GZ file",e)}}}catch(e){console.error("Error loading ZIP file",e)}}else if("gz"===t){let t="./script/pako.js";await e.getAjaxPromise(t,"script");try{const e=new Uint8Array(i.target.result),t=pako.inflate(e,{to:"string"});r=l(t)}catch(e){console.error("Error loading GZ file",e)}}let o=await s.selectCollectionsCls.setAtomMenu(r);$("#"+s.pre+"collections_menu").html(o),await s.selectCollectionsCls.clickStructure(r),$("#"+s.pre+"collections_menu").trigger("change"),e.htmlCls.clickMenuCls.setLogCmd("load collection file "+$("#"+e.pre+"collectionfile").val(),!1)},o.onerror=function(e){console.error("Error reading file",e)},o.readAsArrayBuffer(i)}}Object.keys(e.utilsCls.getStructures(s.dAtoms))?($("#"+e.pre+"dl_collection_file").hide(),$("#"+e.pre+"dl_collection_structures").show(),$("#"+e.pre+"dl_collection_file_expand").show(),$("#"+e.pre+"dl_collection_file_shrink").hide(),$("#"+e.pre+"dl_collection_structures_expand").hide(),$("#"+e.pre+"dl_collection_structures_shrink").show()):($("#"+e.pre+"dl_collection_file").show(),$("#"+e.pre+"dl_collection_structures").hide(),$("#"+e.pre+"dl_collection_file_expand").hide(),$("#"+e.pre+"dl_collection_file_shrink").hide(),$("#"+e.pre+"dl_collection_structures_expand").show(),$("#"+e.pre+"dl_collection_structures_shrink").hide()),e.htmlCls.dialogCls.openDlg("dl_selectCollections","Select Collections")}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"opendl_export_collections","click",(function(t){e.htmlCls.dialogCls.openDlg("dl_export_collections","Export Collections")})),e.myEventCls.onIds("#"+e.pre+"export_collections","click",(function(t){let s=e.icn3d;const i=document.getElementById(e.pre+"collections_menu"),n=[],l=document.getElementById("dl_collectionExportSelected"),r=document.getElementById("dl_collectionExportAll");l.checked?Array.from(i.options).filter((e=>e.selected)).forEach((e=>{const t=e.value,i=e.textContent.trim(),l=e.getAttribute("data-description");n.push({id:t,title:i,description:l||"",commands:s.allData[t]&&s.allData[t].commands?s.allData[t].commands:[]})})):r.checked&&Array.from(i.options).forEach((e=>{const t=e.value,i=e.textContent.trim(),l=e.getAttribute("data-description");n.push({name:t,title:i,description:l||"",commands:s.allData[t]&&s.allData[t].commands?s.allData[t].commands:[]})}));const o=new Date,a=`${o.getMonth()+1}_${o.getDate()}_${o.getFullYear()}`,d={collectionTitle:document.getElementById("dl_collectionTitle").value,collectionDescription:document.getElementById("dl_collectionDescription").value,structures:n},c=`${d.collectionTitle.replace(/\s+/g,"_")}_${a}.json`,h=JSON.stringify(d,null,2),p=new Blob([h],{type:"application/json"}),m=URL.createObjectURL(p),u=document.createElement("a");u.href=m,u.download=c,document.body.appendChild(u),u.click(),document.body.removeChild(u),URL.revokeObjectURL(m)})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6file2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6File("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6filefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6File("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4file2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4File("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4filefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4File("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfile2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfilefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfile2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("2fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfilefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_delphifile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadDelphiFile("delphi")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrfile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("pqr")})),e.myEventCls.onIds("#"+e.pre+"reload_phifile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("phi")})),e.myEventCls.onIds("#"+e.pre+"reload_cubefile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("cube")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("pqrurl")})),e.myEventCls.onIds("#"+e.pre+"reload_phiurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("phiurl")})),e.myEventCls.onIds("#"+e.pre+"reload_cubeurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("cubeurl")})),e.myEventCls.onIds("#"+e.pre+"reload_delphifile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("delphi"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadDelphiFile("delphi2")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrfile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("pqr2")})),e.myEventCls.onIds("#"+e.pre+"reload_phifile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("phi2")})),e.myEventCls.onIds("#"+e.pre+"reload_cubefile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("cube2")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("pqrurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_phiurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("phiurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_cubeurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("cubeurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6fileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6FileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6fileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6FileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4fileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4FileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4fileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4FileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfileurl2fofc","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.mtzParserCls.loadMtzFileUrl("2fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfileurlfofc","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.mtzParserCls.loadMtzFileUrl("fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_pdbfile","click",(async function(t){e.icn3d,t.preventDefault();await s.loadPdbFile(!1,"pdbfile")})),e.myEventCls.onIds("#"+e.pre+"reload_pdbfile_app","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bAppend=!0,await s.loadPdbFile(i.bAppend,"pdbfile_app")})),e.myEventCls.onIds("#"+e.pre+"reload_mol2file","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"mol2file")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load mol2 file "+$("#"+e.pre+"mol2file").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="mol2",await i.mol2ParserCls.loadMol2Data(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_sdffile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"sdffile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load sdf file "+$("#"+e.pre+"sdffile").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="sdf",await i.sdfParserCls.loadSdfData(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_xyzfile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"xyzfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load xyz file "+$("#"+e.pre+"xyzfile").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="xyz",await i.xyzParserCls.loadXyzData(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"afmapfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=function(t){let n=t.target.result;s.setLogCmd("load AlphaFold PAE file "+$("#"+e.pre+"afmapfile").val(),!1),e.htmlCls.dialogCls.openDlg("dl_alignerrormap","Show Predicted Aligned Error (PAE) map"),i.contactMapCls.processAfErrorMap(JSON.parse(n))},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfilefull","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"afmapfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=function(t){let n=t.target.result;s.setLogCmd("load AlphaFold PAE file "+$("#"+e.pre+"afmapfile").val(),!1),e.htmlCls.dialogCls.openDlg("dl_alignerrormap","Show Predicted Aligned Error (PAE) map"),i.contactMapCls.processAfErrorMap(JSON.parse(n),!0)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_urlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),s.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?s.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let i=$("#"+e.pre+"filetype").val(),n=$("#"+e.pre+"urlfile").val();s.inputurl="type="+i+"&url="+encodeURIComponent(n),s.init(),s.bInputfile=!0,s.bInputUrlfile=!0,await s.pdbParserCls.downloadUrl(n,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmciffile","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bAppend=!0;await s.loadPdbFile(i.bAppend,"mmciffile",!0)})),e.myEventCls.onIds("#"+e.pre+"applycustomcolor","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.setOptionCls.setOption("color",$("#"+e.pre+"colorcustom").val()),s.setLogCmd("color "+$("#"+e.pre+"colorcustom").val(),!0)})),e.myEventCls.onIds(["#"+e.pre+"atomsCustomSphere2","#"+e.pre+"atomsCustomSphere","#"+e.pre+"radius_aroundsphere"],"change",(function(t){e.icn3d.bSphereCalc=!1})),e.myEventCls.onIds("#"+e.pre+"applypick_aroundsphere","click",(function(t){let i=e.icn3d,n=parseFloat($("#"+e.pre+"radius_aroundsphere").val()),l=$("#"+e.pre+"atomsCustomSphere").val(),r=$("#"+e.pre+"atomsCustomSphere2").val();if(0==r.length)alert("Please select the first set at step #1");else{let e="select zone cutoff "+n+" | sets "+r+" "+l+" | "+i.bSphereCalc;i.bSphereCalc||i.showInterCls.pickCustomSphere(n,r,l,i.bSphereCalc),i.bSphereCalc=!0,i.hlUpdateCls.updateHlAll(),s.setLogCmd(e,!0)}})),e.myEventCls.onIds("#"+e.pre+"sphereExport","click",(function(t){let i=e.icn3d;t.preventDefault();let n=parseFloat($("#"+e.pre+"radius_aroundsphere").val()),l=$("#"+e.pre+"atomsCustomSphere").val(),r=$("#"+e.pre+"atomsCustomSphere2").val();if(0==r.length)alert("Please select the first set at step #1");else{i.showInterCls.pickCustomSphere(n,r,l,i.bSphereCalc),i.bSphereCalc=!0;let t=i.viewInterPairsCls.exportSpherePairs(),o=Object.keys(e.utilsCls.getHlStructures()).join(",");i.saveFileCls.saveFile(o+"_sphere_pairs.html","html",t),s.setLogCmd("export pairs | "+r+" "+l+" | dist "+n,!0)}})),e.myEventCls.onIds("#"+e.pre+"apply_adjustmem","click",(function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+e.pre+"extra_mem_z").val()),l=parseFloat($("#"+e.pre+"intra_mem_z").val());i.selectionCls.adjustMembrane(n,l);let r="adjust membrane z-axis "+n+" "+l;s.setLogCmd(r,!0)})),e.myEventCls.onIds("#"+e.pre+"apply_selectplane","click",(function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+e.pre+"selectplane_z1").val()),l=parseFloat($("#"+e.pre+"selectplane_z2").val());i.selectionCls.selectBtwPlanes(n,l);let r="select planes z-axis "+n+" "+l;s.setLogCmd(r,!0)})),e.myEventCls.onIds(["#"+e.pre+"atomsCustomHbond2","#"+e.pre+"atomsCustomHbond","#"+e.pre+"analysis_hbond","#"+e.pre+"analysis_saltbridge","#"+e.pre+"analysis_contact","#"+e.pre+"hbondthreshold","#"+e.pre+"saltbridgethreshold","#"+e.pre+"contactthreshold"],"change",(function(t){e.icn3d.bHbondCalc=!1})),e.myEventCls.onIds("#"+e.pre+"crossstrucinter","change",(function(t){let i=e.icn3d;t.preventDefault(),i.crossstrucinter=parseInt($("#"+e.pre+"crossstrucinter").val()),s.setLogCmd("cross structure interaction "+i.crossstrucinter,!0)})),e.myEventCls.onIds("#"+e.pre+"applyhbonds","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("3d")})),e.myEventCls.onIds("#"+e.pre+"applycontactmap","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+i.pre+"contactdist").val()),l=$("#"+i.pre+"contacttype").val();await i.contactMapCls.contactMap(n,l),s.setLogCmd("contact map | dist "+n+" | type "+l,!0)})),e.myEventCls.onIds("#"+e.pre+"hbondWindow","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("view")})),e.myEventCls.onIds("#"+e.pre+"areaWindow","click",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.pre+"atomsCustomHbond").val(),l=$("#"+e.pre+"atomsCustomHbond2").val();i.analysisCls.calcBuriedSurface(l,n),s.setLogCmd("calc buried surface | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"sortSet1","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("save1")})),$(document).on("click","."+e.pre+"showintercntonly",(function(t){e.icn3d,t.stopImmediatePropagation(),$(".icn3d-border").hide(),s.setLogCmd("table inter count only",!0)})),$(document).on("click","."+e.pre+"showinterdetails",(function(t){e.icn3d,t.stopImmediatePropagation(),$(".icn3d-border").show(),s.setLogCmd("table inter details",!0)})),e.myEventCls.onIds("#"+e.pre+"sortSet2","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("save2")})),e.myEventCls.onIds("#"+e.pre+"hbondGraph","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("graph")})),e.myEventCls.onIds("#"+e.pre+"hbondLineGraph","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("linegraph")})),e.myEventCls.onIds("#"+e.pre+"hbondLineGraph2","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!0,s.setLogCmd("show ref number",!0),await i.showInterCls.showInteractions("linegraph")})),e.myEventCls.onIds("#"+e.pre+"hbondScatterplot","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("scatterplot")})),e.myEventCls.onIds("#"+e.pre+"hbondScatterplot2","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!0,s.setLogCmd("show ref number",!0),await i.showInterCls.showInteractions("scatterplot")})),e.myEventCls.onIds("#"+e.pre+"hbondLigplot","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("ligplot")})),$(document).on("click","#"+e.svgid+" circle.selected",(function(t){let s=e.icn3d;t.stopImmediatePropagation();let i=$(this).attr("res");!1!==s.bSelectResidue||s.bShift||s.bCtrl||s.selectionCls.removeSelection(),void 0!==i&&(s.hlSeqCls.selectResidues(i,this),s.hlObjectsCls.addHlObjects())})),e.myEventCls.onIds("#"+e.svgid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.svgid,s.inputid+"_force_directed_graph.svg")})),e.myEventCls.onIds("#"+e.svgid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.svgid,s.inputid+"_force_directed_graph.png")})),e.myEventCls.onIds("#"+e.svgid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.graphStr.substr(0,s.graphStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_force_directed_graph.json","text",[i])})),$(document).on("click","#"+e.svgid_ct+"_svg",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.svgid_ct,s.inputid+"_cartoon.svg")})),$(document).on("click","#"+e.svgid_ct+"_png",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.svgid_ct,s.inputid+"_cartoon.png")})),$(document).on("click","#"+e.svgid_ct+"_json",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveFile(s.inputid+"_cartoon.json","text",[s.graphStr])})),$(document).on("change","#"+e.svgid_ct+"_label",(function(t){e.icn3d,t.preventDefault();let i=$("#"+e.svgid_ct+"_label").val();$("#"+e.svgid_ct+" text").removeClass(),$("#"+e.svgid_ct+" text").addClass(i),s.setLogCmd("cartoon label "+i,!0)})),e.myEventCls.onIds("#"+e.linegraphid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.linegraphid,s.inputid+"_line_graph.svg")})),e.myEventCls.onIds("#"+e.linegraphid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.linegraphid,s.inputid+"_line_graph.png")})),e.myEventCls.onIds("#"+e.linegraphid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.lineGraphStr.substr(0,s.lineGraphStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_line_graph.json","text",[i])})),e.myEventCls.onIds("#"+e.linegraphid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.linegraphid+"_scale").val();$("#"+e.linegraphid).attr("width",(i.linegraphWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("line graph scale "+n,!0)})),e.myEventCls.onIds("#"+e.scatterplotid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.scatterplotid,s.inputid+"_scatterplot.svg")})),e.myEventCls.onIds("#"+e.scatterplotid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.scatterplotid,s.inputid+"_scatterplot.png")})),e.myEventCls.onIds("#"+e.scatterplotid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.scatterplotStr.substr(0,s.scatterplotStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_scatterplot.json","text",[i])})),e.myEventCls.onIds("#"+e.scatterplotid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.scatterplotid+"_scale").val();$("#"+e.scatterplotid).attr("width",(i.scatterplotWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("scatterplot scale "+n,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.ligplotid,s.inputid+"_ligplot.svg",void 0,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.ligplotid,s.inputid+"_ligplot.png",void 0,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.ligplotid+"_scale").val();$("#"+e.ligplotid).attr("width",(i.ligplotWidth*parseFloat(n)).toString()+"px"),i.ligplotScale=parseFloat(n),s.setLogCmd("ligplot scale "+n,!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.contactmapid,s.inputid+"_contactmap.svg",!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.contactmapid,s.inputid+"_contactmap.png",!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.contactmapStr.substr(0,s.contactmapStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_contactmap.json","text",[i])})),e.myEventCls.onIds("#"+e.contactmapid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.contactmapid+"_scale").val();$("#"+e.contactmapid).attr("width",(i.contactmapWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("contactmap scale "+n,!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault();$("#"+e.alignerrormapid+"_scale").val(1),$("#"+e.alignerrormapid).attr("width",(s.alignerrormapWidth*parseFloat(1)).toString()+"px"),s.saveFileCls.saveSvg(e.alignerrormapid,s.inputid+"_alignerrormap.svg",!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault();$("#"+e.alignerrormapid+"_scale").val(1),$("#"+e.alignerrormapid).attr("width",(s.alignerrormapWidth*parseFloat(1)).toString()+"px"),s.saveFileCls.savePng(e.alignerrormapid,s.inputid+"_alignerrormap.png",!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_full","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.contactMapCls.afErrorMap(afid,!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.alignerrormapStr.substr(0,s.alignerrormapStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_alignerrormap.json","text",[i])})),e.myEventCls.onIds("#"+e.alignerrormapid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.alignerrormapid+"_scale").val();$("#"+e.alignerrormapid).attr("width",(i.alignerrormapWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("alignerrormap scale "+n,!0)})),e.myEventCls.onIds("#"+e.svgid+"_label","change",(function(t){e.icn3d,t.preventDefault();let i=$("#"+e.svgid+"_label").val();$("#"+e.svgid+" text").removeClass(),$("#"+e.svgid+" text").addClass(i),s.setLogCmd("graph label "+i,!0)})),e.myEventCls.onIds("#"+e.svgid+"_hideedges","change",(function(t){let i=e.icn3d;t.preventDefault(),e.htmlCls.hideedges=parseInt($("#"+e.svgid+"_hideedges").val()),e.htmlCls.hideedges?(e.htmlCls.contactInsideColor="FFF",e.htmlCls.hbondInsideColor="FFF",e.htmlCls.ionicInsideColor="FFF"):(e.htmlCls.contactInsideColor="DDD",e.htmlCls.hbondInsideColor="AFA",e.htmlCls.ionicInsideColor="8FF"),void 0!==i.graphStr&&(i.bRender&&e.htmlCls.force&&e.drawGraph(i.graphStr,e.pre+"dl_graph"),s.setLogCmd("hide edges "+e.htmlCls.hideedges,!0))})),e.myEventCls.onIds("#"+e.svgid+"_force","change",(function(t){let i=e.icn3d;t.preventDefault(),e.htmlCls.force=parseInt($("#"+e.svgid+"_force").val()),void 0!==i.graphStr&&(s.setLogCmd("graph force "+e.htmlCls.force,!0),i.getGraphCls.handleForce())})),e.myEventCls.onIds("#"+e.pre+"hbondReset","click",(function(t){let i=e.icn3d;t.preventDefault(),i.viewInterPairsCls.resetInteractionPairs(),s.setLogCmd("reset interaction pairs",!0)})),e.myEventCls.onIds("#"+e.pre+"applypick_labels","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"labeltext").val(),l=$("#"+e.pre+"labelsize").val(),r=$("#"+e.pre+"labelcolor").val(),o=$("#"+e.pre+"labelbkgd").val();if("0"!==l&&""!==l&&"undefined"!==l||(l=0),"0"!==r&&""!==r&&"undefined"!==r||(r=0),"0"!==o&&""!==o&&"undefined"!==o||(o=0),void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{let e=(i.pAtom.coord.x+i.pAtom2.coord.x)/2,t=(i.pAtom.coord.y+i.pAtom2.coord.y)/2,a=(i.pAtom.coord.z+i.pAtom2.coord.z)/2;i.analysisCls.addLabel(n,e,t,a,l,r,o,"custom"),i.pickpair=!1;let d="",c="",h="";0!=l&&(d=" | size "+l),0!=r&&(c=" | color "+r),0!=o&&(h=" | background "+o),s.setLogCmd("add label "+n+" | x "+e.toPrecision(4)+" y "+t.toPrecision(4)+" z "+a.toPrecision(4)+d+c+h+" | type custom",!0),i.drawCls.draw()}})),e.myEventCls.onIds("#"+e.pre+"applyselection_labels","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"labeltext2").val(),l=$("#"+e.pre+"labelsize2").val(),r=$("#"+e.pre+"labelcolor2").val(),o=$("#"+e.pre+"labelbkgd2").val();"0"!==l&&""!==l&&"undefined"!==l||(l=0),"0"!==r&&""!==r&&"undefined"!==r||(r=0),"0"!==o&&""!==o&&"undefined"!==o||(o=0);let a=i.applyCenterCls.centerAtoms(e.hashUtilsCls.hash2Atoms(i.hAtoms,i.atoms)),d=a.center.x,c=a.center.y,h=a.center.z;i.analysisCls.addLabel(n,d,c,h,l,r,o,"custom");let p="",m="",u="";0!=l&&(p=" | size "+l),0!=r&&(m=" | color "+r),0!=o&&(u=" | background "+o),s.setLogCmd("add label "+n+" | x "+d.toPrecision(4)+" y "+c.toPrecision(4)+" z "+h.toPrecision(4)+p+m+u+" | type custom",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applylabelcolor","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.labelcolor=$("#"+e.pre+"labelcolorall").val(),s.setLogCmd("set label color "+i.labelcolor,!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applypick_stabilizer","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),void 0===i.pAtom||void 0===i.pAtom2?alert("Please pick another atom"):(i.pickpair=!1,s.setLogCmd("add one stabilizer | "+i.pAtom.serial+" "+i.pAtom2.serial,!0),void 0===i.pairArray&&(i.pairArray=[]),i.pairArray.push(i.pAtom.serial),i.pairArray.push(i.pAtom2.serial),i.threeDPrintCls.setThichknessFor3Dprint(),i.drawCls.draw())}));let l=new CP(document.querySelector("#"+e.pre+"colorcustom"));l.on("change",(function(e){this.target.value=e})),e.myEventCls.onIds("#"+e.pre+"colorcustom","input",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","keyup",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","paste",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","cut",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()}));let r=new CP(document.querySelector("#"+e.pre+"labelcolorall"));r.on("change",(function(e){this.target.value=e})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","input",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","keyup",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","paste",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","cut",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"applypick_stabilizer_rm","click",(function(t){let i=e.icn3d;if(t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{i.pickpair=!1,s.setLogCmd("remove one stabilizer | "+i.pAtom.serial+" "+i.pAtom2.serial,!0);let e=[];e.push(i.pAtom.serial),e.push(i.pAtom2.serial),i.threeDPrintCls.removeOneStabilizer(e),i.drawCls.draw()}})),e.myEventCls.onIds("#"+e.pre+"applypick_measuredistance","click",(function(t){let i=e.icn3d;if(t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1,void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{let t=0,n=0,l=$("#"+e.pre+"linecolor").val(),r=(i.pAtom.coord.x+i.pAtom2.coord.x)/2,o=(i.pAtom.coord.y+i.pAtom2.coord.y)/2,a=(i.pAtom.coord.z+i.pAtom2.coord.z)/2;i.analysisCls.addLineFromPicking("distance");let d=(parseInt(10*i.pAtom.coord.distanceTo(i.pAtom2.coord))/10).toString()+" A";i.analysisCls.addLabel(d,r,o,a,t,l,n,"distance");let c="",h="",p="";0!=l&&(h=" | color "+l),s.setLogCmd("add label "+d+" | x "+r.toPrecision(4)+" y "+o.toPrecision(4)+" z "+a.toPrecision(4)+c+h+p+" | type distance",!0),i.drawCls.draw(),i.pk=2}})),e.myEventCls.onIds("#"+e.pre+"applydist2","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1;let n=$("#"+e.pre+"atomsCustomDist").val(),l=$("#"+e.pre+"atomsCustomDist2").val();i.analysisCls.measureDistTwoSets(n,l),s.setLogCmd("dist | "+l+" "+n,!0)})),$(document).on("click",".icn3d-distance",(function(t){let i=e.icn3d;t.preventDefault(),i.bMeasureDistance=!1,i.distPnts=[],i.labels.distance=[],i.lines.distance=[];let n=$(this).attr("sets").split("|"),l=[n[0]],r=[n[1]];i.analysisCls.measureDistTwoSets(l,r),s.setLogCmd("dist | "+r+" "+l,!0)})),e.myEventCls.onIds("#"+e.pre+"applydisttable","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1;let n=$("#"+e.pre+"atomsCustomDistTable").val(),l=$("#"+e.pre+"atomsCustomDistTable2").val();i.analysisCls.measureDistManySets(n,l),e.htmlCls.dialogCls.openDlg("dl_disttable","Distance among the sets"),s.setLogCmd("disttable | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyangletable","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureAngle=!1;let n=$("#"+e.pre+"atomsCustomAngleTable").val(),l=$("#"+e.pre+"atomsCustomAngleTable2").val();i.analysisCls.measureAngleManySets(n,l),e.htmlCls.dialogCls.openDlg("dl_angletable","Angles among the sets"),s.setLogCmd("angletable | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applylinebtwsets","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bLinebtwsets=!1;let n=$("#"+e.pre+"linebtwsets").val(),l=$("#"+e.pre+"linebtwsets2").val(),r=i.definedSetsCls.getAtomsFromNameArray(n),o=i.definedSetsCls.getAtomsFromNameArray(l),a=i.contactCls.getExtent(r),d=i.contactCls.getExtent(o),c=new THREE.Vector3(a[2][0],a[2][1],a[2][2]),h=new THREE.Vector3(d[2][0],d[2][1],d[2][2]),p=$("#"+e.pre+"linebtwsets_radius").val(),m=$("#"+e.pre+"linebtwsets_customcolor").val(),u=$("#"+e.pre+"linebtwsets_opacity").val(),g="Solid"!=$("#"+e.pre+"linebtwsets_style").val(),f="cylinder",C="add line | x1 "+c.x.toPrecision(4)+" y1 "+c.y.toPrecision(4)+" z1 "+c.z.toPrecision(4)+" | x2 "+h.x.toPrecision(4)+" y2 "+h.y.toPrecision(4)+" z2 "+h.z.toPrecision(4)+" | color "+m+" | dashed "+g+" | type "+f+" | radius "+p+" | opacity "+u;s.setLogCmd(C,!0),i.analysisCls.addLine(c.x,c.y,c.z,h.x,h.y,h.z,m,g,f,p,u),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applycartoonshape","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bCartoonshape=!1;let n=$("#"+e.pre+"cartoonshape").val(),l=i.definedSetsCls.getAtomsFromNameArray(n),r=i.contactCls.getExtent(l),o=new THREE.Vector3(r[2][0],r[2][1],r[2][2]),a=$("#"+e.pre+"cartoonshape_shape").val(),d=$("#"+e.pre+"cartoonshape_radius").val(),c=$("#"+e.pre+"cartoonshape_customcolor").val(),h=$("#"+e.pre+"cartoonshape_opacity").val();c="#"+c.replace(/\#/g,"");let p,m=e.parasCls.thr(c);"Sphere"==a?(i.sphereCls.createSphereBase(o,m,d,void 0,void 0,void 0,h),p="add sphere | "+n+" | color "+c+" | opacity "+h+" | radius "+d):(i.boxCls.createBox_base(o,d,m,void 0,void 0,void 0,h),p="add cube | "+n+" | color "+c+" | opacity "+h+" | radius "+d),s.setLogCmd(p,!0),i.shapeCmdHash[p]=1,i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearlinebtwsets","click",(function(t){let i=e.icn3d;t.preventDefault(),i.lines.cylinder=[],s.setLogCmd("clear line between sets",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearcartoonshape","click",(function(t){let i=e.icn3d;t.preventDefault(),i.shapeCmdHash={},s.setLogCmd("clear shape",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"apply_thickness_3dprint","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("3dprint")})),e.myEventCls.onIds("#"+e.pre+"apply_thickness_style","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("style"),e.htmlCls.setMenuCls.setLogWindow(!0)})),e.myEventCls.onIds("#"+e.pre+"reset_thickness_3dprint","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("3dprint",!0)})),e.myEventCls.onIds("#"+e.pre+"reset_thickness_style","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("style",!0),e.htmlCls.setMenuCls.setLogWindow(!0)})),e.myEventCls.onIds("#"+e.pre+"reset","click",(function(t){let s=e.icn3d;s.selectionCls.resetAll(),s.bRender&&s.drawCls.draw()})),e.myEventCls.onIds(["#"+e.pre+"toggleHighlight","#"+e.pre+"toggleHighlight2"],"click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.toggleHighlight(),s.setLogCmd("toggle highlight",!0)})),e.myEventCls.onIds("#"+e.pre+"seq_clearselection","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"seq_clearselection2","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),t.preventDefault(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"alignseq_clearselection","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"replay","click",(async function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.CURRENTNUMBER++;let n=e.cfg.replay?i.STATENUMBER:i.STATENUMBER-1;if(i.CURRENTNUMBER==n)i.bReplay=0,$("#"+e.pre+"replay").hide();else if(i.commands.length>0&&i.commands[i.CURRENTNUMBER]){await i.loadScriptCls.execCommandsBase(i.CURRENTNUMBER,i.CURRENTNUMBER,i.STATENUMBER);let t=i.commands[i.CURRENTNUMBER].indexOf("|||"),n=-1!=t?i.commands[i.CURRENTNUMBER].substr(0,t):i.commands[i.CURRENTNUMBER],l=30,r=n.length>l?n.substr(0,l)+"...":n,o=i.applyCommandCls.getMenuFromCmd(r);$("#"+e.pre+"replay_cmd").html("Cmd: "+r),$("#"+e.pre+"replay_menu").html("Menu: "+o),s.setLogCmd(n,!0),i.drawCls.draw()}})),t.loadScriptCls.pressCommandtext(),e.myEventCls.onIds("#"+e.pre+"seq_saveselection","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"seq_command_name").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),e.myEventCls.onIds("#"+e.pre+"seq_saveselection2","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"seq_command_name2").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),e.myEventCls.onIds("#"+e.pre+"mn2_saveresidue","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),i.selectionCls.saveEachResiInSel(),s.setLogCmd("select each residue",!0)})),e.myEventCls.onIds("#"+e.pre+"alignseq_saveselection","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"alignseq_command_name").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),$(document).on("click","."+e.pre+"outputselection",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelectResidue=!1,i.bSelectAlignResidue=!1,s.setLogCmd("output selection",!0),i.threeDPrintCls.outputSelection()})),$(document).on("click",".icn3d-saveicon",(function(t){e.icn3d,t.stopImmediatePropagation();let i=$(this).attr("pid");s.saveHtml(i),s.setLogCmd("save html "+i,!0)})),$(document).on("click",".icn3d-hideicon",(function(t){let s=e.icn3d;t.stopImmediatePropagation();let i=$(this).attr("pid");if(!e.cfg.notebook)if(void 0===s.dialogHashHideDone&&(s.dialogHashHideDone={}),void 0===s.dialogHashPosToRight&&(s.dialogHashPosToRight={}),s.dialogHashHideDone.hasOwnProperty(i)){let e=s.dialogHashHideDone[i].width,t=s.dialogHashHideDone[i].height,n=s.dialogHashHideDone[i].position;$("#"+i).dialog("option","width",e),$("#"+i).dialog("option","height",t),$("#"+i).dialog("option","position",n),delete s.dialogHashHideDone[i]}else{s.dialogHashHideDone[i]={width:$("#"+i).dialog("option","width"),height:$("#"+i).dialog("option","height"),position:$("#"+i).dialog("option","position")};let e,t=160,n=80;$("#"+i).dialog("option","width",t),$("#"+i).dialog("option","height",n),s.dialogHashPosToRight.hasOwnProperty(i)?e=s.dialogHashPosToRight[i]:(e=Object.keys(s.dialogHashPosToRight).length*(t+10),s.dialogHashPosToRight[i]=e);let l={my:"right bottom",at:"right-"+e+" bottom+60",of:"#"+s.divid,collision:"none"};$("#"+i).dialog("option","position",l)}})),$(document).on("click","."+e.pre+"selres",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelOneRes=!1;let n=$("."+e.pre+"seloneres");for(let e=0,t=n.length;e0&&(r+=" or "),r+=i.selectionCls.selectOneResid(t)}i.hlUpdateCls.updateHlAll(),s.setLogCmd(r,!0)})),$(document).on("click","."+e.pre+"seloneres",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.bSelOneRes||(s.hAtoms={},s.selectedResidues={},s.bSelOneRes=!0);let i=$(this).attr("resid"),n=$(this).attr("id");$("#"+n).length&&$("#"+n)[0].checked?s.selectionCls.selectOneResid(i):$("#"+n).length&&!$("#"+n)[0].checked&&s.selectionCls.selectOneResid(i,!0),s.hlUpdateCls.updateHlAll()})),$(document).on("click","."+e.pre+"selset",(async function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelOneRes=!1;let n=$("."+e.pre+"seloneres");for(let e=0,t=n.length;e0))return{sequencesHtml:a,maxSeqCnt:d};c[s]=1}let h,p=void 0===t||t;p&&(o.hAtoms={});let m,u,g=0,f=0;for(let t=0,l=e.length;t0?m:l,p&&(o.hAtoms=r.hashUtilsCls.unionHash(o.hAtoms,o.alnChains[l]));let C=[],b="",y=void 0!==o.alnChainsSeq[l]?o.alnChainsSeq[l].length:0;y>d&&(d=y);let v,_,w=u.indexOf("_"),S=u.substr(0,w),A=u.substr(w+1);for(let e=0,t=y;e=0;--e)if("-"!=o.alnChainsSeq[l][e].resn){_=o.alnChainsSeq[l][e].resi;break}b+=""+v+"",h=!(void 0===e||!c.hasOwnProperty(u));for(let e=0,t=y;e"}""!==a?-1!=o.alnChainsSeq[l][e].resi?b+=""+o.alnChainsSeq[l][e].resn+"":b+=""+o.alnChainsSeq[l][e].resn+"":b+=""+o.alnChainsSeq[l][e].resn+""}b+=""+_+"";let x=e.length,k=void 0!==o.alnChainsAnno[l]?o.alnChainsAnno[l].length:0;for(let t=0,s=k;t";for(let e=0,i=o.alnChainsAnno[l][t].length;e ':' ';else if("E"==i)if(void 0!==o.alnChainsSeq[s][e]){let i=s+"_"+o.alnChainsSeq[s][e].resi;if(o.residues.hasOwnProperty(i)){o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[i]).ssend?C[t]+=' ':C[t]+=' '}else C[t]+=' '}else C[t]+=' ';else C[t]+="c"==i?' ':"o"==i?' ':"";else C[t]+=""+i+""}C[t]+=""}let O=l,R=void 0!==o.pdbid_chain2title?o.pdbid_chain2title[u]:"";for(let e=k-1;e>=0;--e){let t=o.alnChainsAnTtl[l][e][0];"SS"==t&&(t=""),a+="
    "+t+"
    "+C[e]+"
    "}a+=''+b+"
    ",g>0&&(f+=y),++g}return{sequencesHtml:a,maxSeqCnt:d}}}class u{constructor(e){this.icn3dui=e}getLink(e,t,s,i){let n=this.icn3dui;return n.icn3d,n.htmlCls.allMenus[e]=t,i&&(n.htmlCls.allMenusSel[e]=i),s&&(n.htmlCls.simpleMenus[e]=1),"
  • "+t+"
  • "}getMenuText(e,t,s,i,n){let l=this.icn3dui;l.icn3d,l.htmlCls.allMenus[e]=t,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1);let r="icn3d-menupd"==s?" style='padding-left:1.5em!important;'":"";return"
  • "+t+""}getMenuUrl(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.allMenus[e]=s,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1),"
  • "+s+"
  • "}getMenuSep(){return this.icn3dui.icn3d,"
  • -
  • "}getLinkWrapper(e,t,s,i,n,l){let r=this.icn3dui;r.icn3d,r.htmlCls.allMenus[e]=t,n&&(r.htmlCls.allMenusSel[e]=n),i&&(r.htmlCls.simpleMenus[e]=1);let o=l?' style="display:none"':"";return"
  • "+t+"
  • "}getLinkWrapper2(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.allMenus[e]=t,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1),"
  • "+t+""}getRadio(e,t,s,i,n,l){let r=this.icn3dui;r.icn3d,r.htmlCls.allMenus[t]=s,l&&(r.htmlCls.allMenusSel[t]=l),n&&(r.htmlCls.simpleMenus[t]=1);let o=i?" checked":"";return"
  • "}getRadioColor(e,t,s,i,n,l,r){let o=this.icn3dui;o.icn3d,o.htmlCls.allMenus[t]=s,r&&(o.htmlCls.allMenusSel[t]=r),l&&(o.htmlCls.simpleMenus[t]=1);let a=n?" checked":"";return"
  • "}setAdvanced(e){let t=this.icn3dui;t.icn3d;let s=void 0===e?"":e,i=t.cfg.notebook?"icn3d-hidden":"",n=t.htmlCls.divStr+"dl_advanced"+s+"' class='"+i+"'>";return n+="",n+="",n+="
    ",n+="",n+="",n+="",n+="
    Select:"+t.htmlCls.inputTextStr+"id='"+t.pre+"command"+s+"' placeholder='$[structures].[chains]:[residues]@[atoms]' size='60'>
    Name:"+t.htmlCls.inputTextStr+"id='"+t.pre+"command_name"+s+"' placeholder='my_selection' size='60'>
    "+t.htmlCls.space3+t.htmlCls.buttonStr+"command_apply"+s+"'>Save Selection to Defined Sets
    ",n+='Specification Tips:

    ',n+=t.htmlCls.divStr+"specguide"+s+"' style='display:none; width:500px' class='icn3d-box'>",n+='Specification: In the selection "$1HHO,4N7N.A,B,C:5-10,LV,3AlaVal,chemicals@CA,C,C*":',n+='
    • "$1HHO,4N7N" uses "$" to indicate structure selection.
      ',n+='
    • ".A,B,C" uses "." to indicate chain selection.
      ',n+='
    • ":5-10,LV,3LeuVal,chemicals" uses the colon ":" to indicate residue selection. Residue selection could be residue number(5-10), one-letter IUPAC residue name abbreviations(LV), three-letter residue names(AlaVal, "3" indicates each residue name has three letters), or predefined names: "proteins", "nucleotides", "chemicals", "ions", and "water". IUPAC abbreviations can be written either as a contiguous string(e.g., ":LV"), in order to find all instances of that sequence in the structure, or they can be separated by commas(e.g., ":L,V") to select all residues of a given type in the structure(in the latter case, select all Leucine and Valine in the structure).
      ',n+='
    • "@CA,C,C*" uses "@" to indicate atom name selection. "C*" selects any atom names starting with "C".
      ',n+='
    • Partial definition is allowed, e.g., ":1-10" selects all residue IDs 1-10 in all chains.
      ',n+='
    • Different selections can be unioned(with "or", default), intersected(with "and"), or negated(with "not"). For example, ":1-10 or :K" selects all residues 1-10 and all Lys residues. ":1-10 and :K" selects all Lys residues in the range of residue number 1-10. ":1-10 or not :K" selects all residues 1-10, which are not Lys residues.
      ',n+='
    • The wild card character "X" or "x" can be used to represent any character.',n+="
    ",n+="Set Operation:",n+='
    • Users can select multiple sets in the menu "Select > Defined Sets".
      ',n+='
    • Different sets can be unioned(with "or", default), intersected(with "and"), or negated(with "not"). For example, if the "Defined Sets" menu has four sets ":1-10", ":11-20", ":5-15", and ":7-8", the command "saved atoms :1-10 or :11-20 and :5-15 not :7-8" unions all residues 1-10 and 11-20 to get the residues 1-20, then intersects with the residues 5-15 to get the residues 5-15, then exclude the residues 7-8 to get the final residues 5-6 and 9-15.
    ',n+="Full commands in url or command window:",n+="
    • Select without saving the set: select $1HHO,4N7N.A,B,C:5-10,LV,chemicals@CA,C,C*
      ",n+="
    • Select and save: select $1HHO,4N7N.A,B,C:5-10,LV,chemicals@CA,C,C* | name my_name
    ",n+="",n+="
    ",n+="",n}getOptionHtml(e,t){let s=this.icn3dui;s.icn3d;let i="";for(let n=0,l=e.length;n"+l+"":s.htmlCls.optionStr+"'"+l+"'>"+l+""}return i}setColorHints(){let e=this.icn3dui;e.icn3d;let t="";return t+=e.htmlCls.divNowrapStr+'Green: H-Bonds; ',t+='Cyan: Salt Bridge/Ionic; ',t+='Grey: Contacts',t+=e.htmlCls.divNowrapStr+'Magenta: Halogen Bonds; ',t+='Red: π-Cation; ',t+='Blue: π-Stacking',t}setThicknessHtml(e){let t=this.icn3dui,s=t.icn3d,i="",n="3dprint"==e?"1":"0.1",l="3dprint"==e?"1.2":"0.3",r="3dprint"==e?"0.8":"0.4",o="3dprint"==e?"0.8":"0.4",a="3dprint"==e?"1":"0.4",d="3dprint"==e?"0.6":"0.3",c="3dprint"==e?"1":"0.2",h="3dprint"==e?"2":"1.3",p="3dprint"==e?"1.4":"0.8",m=40,u=.8,g=.4,f=.2,C=0,b=1,y=0;if("style"==e){if(""!=this.getCookie("shininess")&&(m=parseFloat(this.getCookie("shininess"))),""!=this.getCookie("light1")&&(u=parseFloat(this.getCookie("light1")),g=parseFloat(this.getCookie("light2")),f=parseFloat(this.getCookie("light3"))),""!=this.getCookie("lineRadius")){n=parseFloat(this.getCookie("lineRadius")),l=parseFloat(this.getCookie("coilWidth")),r=parseFloat(this.getCookie("cylinderRadius"));let e=this.getCookie("crosslinkRadius");o=isNaN(e)?s.crosslinkRadius:parseFloat(e),a=parseFloat(this.getCookie("traceRadius")),d=parseFloat(this.getCookie("dotSphereScale")),c=parseFloat(this.getCookie("ribbonthickness")),h=parseFloat(this.getCookie("helixSheetWidth")),p=parseFloat(this.getCookie("nucleicAcidWidth"))}""!=this.getCookie("glycan")&&(C=parseFloat(this.getCookie("glycan"))),""!=this.getCookie("membrane")&&(b=parseFloat(this.getCookie("membrane"))),""!=this.getCookie("cmdwindow")&&(y=parseFloat(this.getCookie("cmdwindow"))),i+="Note: The following parameters will be saved in cache. You just need to set them once.

    ",i+="1. Shininess: "+t.htmlCls.inputTextStr+"id='"+t.pre+"shininess' value='"+m+"' size=4>"+t.htmlCls.space3+"(for the shininess of the 3D objects, default 40)

    ",i+="2. Three directional lights:
    ",i+="Key Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light1' value='"+u+"' size=4>"+t.htmlCls.space3+"(for the light strength of the key light, default 0.8)
    ",i+="Fill Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light2' value='"+g+"' size=4>"+t.htmlCls.space3+"(for the light strength of the fill light, default 0.4)
    ",i+="Back Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light3' value='"+f+"' size=4>"+t.htmlCls.space3+"(for the light strength of the back light, default 0.2)

    ",i+="3. Thickness:
    "}return i+="Line Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"linerad_"+e+"' value='"+n+"' size=4>"+t.htmlCls.space3+"(for stabilizers, hydrogen bonds, distance lines, default 0.1)
    ",i+="Coil Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"coilrad_"+e+"' value='"+l+"' size=4>"+t.htmlCls.space3+"(for coils, default 0.3)
    ",i+="Stick Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"stickrad_"+e+"' value='"+r+"' size=4>"+t.htmlCls.space3+"(for sticks, default 0.4)
    ",i+="Cross-Linkage Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"crosslinkrad_"+e+"' value='"+o+"' size=4>"+t.htmlCls.space3+"(for cross-linkages, default 0.4)
    ",i+="Trace Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"tracerad_"+e+"' value='"+a+"' size=4>"+t.htmlCls.space3+"(for C alpha trace, O3' trace, default 0.4)
    ",i+="Ribbon Thickness: "+t.htmlCls.inputTextStr+"id='"+t.pre+"ribbonthick_"+e+"' value='"+c+"' size=4>"+t.htmlCls.space3+"(for helix and sheet ribbons, nucleotide ribbons, default 0.2)
    ",i+="Protein Ribbon Width: "+t.htmlCls.inputTextStr+"id='"+t.pre+"prtribbonwidth_"+e+"' value='"+h+"' size=4>"+t.htmlCls.space3+"(for helix and sheet ribbons, default 1.3)
    ",i+="Nucleotide Ribbon Width: "+t.htmlCls.inputTextStr+"id='"+t.pre+"nucleotideribbonwidth_"+e+"' value='"+p+"' size=4>"+t.htmlCls.space3+"(for nucleotide ribbons, default 0.8)
    ",i+="Ball Scale: "+t.htmlCls.inputTextStr+"id='"+t.pre+"ballscale_"+e+"' value='"+d+"' size=4>"+t.htmlCls.space3+"(for styles 'Ball and Stick' and 'Dot', default 0.3)
    ","style"==e&&(i+="
    4. Show Glycan Cartoon: "+t.htmlCls.inputTextStr+"id='"+t.pre+"glycan' value='"+C+"' size=4>"+t.htmlCls.space3+"(0: hide, 1: show, default 0)
    ",i+="
    5. Show Membrane: "+t.htmlCls.inputTextStr+"id='"+t.pre+"membrane' value='"+b+"' size=4>"+t.htmlCls.space3+"(0: hide, 1: show, default 1)
    ",i+="
    6. Enlarge Command Window: "+t.htmlCls.inputTextStr+"id='"+t.pre+"cmdwindow' value='"+y+"' size=4>"+t.htmlCls.space3+"(0: Regular, 1: Large, default 0)

    "),i+=t.htmlCls.spanNowrapStr+""+t.htmlCls.buttonStr+"apply_thickness_"+e+"'>Apply   ",i+=t.htmlCls.spanNowrapStr+""+t.htmlCls.buttonStr+"reset_thickness_"+e+"'>Reset",i}getCookie(e){let t=e+"=",s=decodeURIComponent(document.cookie).split(";");for(let e=0;e":(n+='
    ',n+="
    Selection: Name: "+s.htmlCls.inputTextStr+"id='"+s.pre+"seq_command_name"+e+"' value='seq_"+l+"' size='5'> "+s.htmlCls.space2+"

    ",n+=s.htmlCls.divStr+"seqguide"+e+"' style='display:none; white-space:normal;' class='icn3d-box'>"),n+=this.getSelectionHints();return n+="Residue labeling: standard residue with coordinates: UPPER case letter; nonstandard residue with coordinates: the first UPPER case letter plus a period except that water residue uses the letter 'O'; residue missing coordinates: lower case letter."+(s.utilsCls.isMac()&&!s.utilsCls.isMobile()?"

    Turn on scroll bar: System preferences -> General -> show scroll bars -> check Always":"")+"
    ",n}setAlignSequenceGuide(e,t){let s=this.icn3dui,i=s.icn3d,n="";let l=i&&i.defNames2Atoms?Object.keys(i.defNames2Atoms).length:1;n+='
    ',n+="
    Selection: Name: "+s.htmlCls.inputTextStr+"id='"+s.pre+"alignseq_command_name' value='alseq_"+l+"' size='10'> "+s.htmlCls.space2+"

    ",n+=s.htmlCls.divStr+"alignseqguide' style='display:none; white-space:normal;' class='icn3d-box'>",n+=this.getSelectionHints();return n+="Residue labeling: aligned residue with coordinates: UPPER case letter; non-aligned residue with coordinates: lower case letter which can be highlighted; residue missing coordinates: lower case letter which can NOT be highlighted."+(s.utilsCls.isMac()&&!s.utilsCls.isMobile()?"

    Turn on scroll bar: System preferences -> General -> show scroll bars -> check Always":"")+"
    ",n}getSelectionHints(){let e=this.icn3dui;e.icn3d;let t="";if(e.utilsCls.isMobile())t+='Select Aligned Sequences: touch to select, touch again to deselect, multiple selection is allowed without Ctrl key, click "Save Selection" to save the current selection.
    ';else{t+='Select on 1D sequences: drag to select, drag again to deselect, multiple selection is allowed without Ctrl key, click "Save Selection" to save the current selection.

    ',t+="Select on 2D interaction diagram: click on the nodes or lines. The nodes are chains and can be united with the Ctrl key. The lines are interactions and can NOT be united. Each click on the lines selects half of the lines, i.e., select the interacting residues in one of the two chains.

    ",t+="Select on 3D structures: "+(e.utilsCls.isMobile()?"use finger to pick":'hold "Alt" and use mouse to pick')+', click the second time to deselect, hold "Ctrl" to union selection, hold "Shift" to select a range, press the up/down arrow to switch among atom/residue/strand/chain/structure, click "Save Selection" to save the current selection.

    ',t+='Save the current selection(either on 3D structure, 2D interactions, or 1D sequence): open the menu "Select -> Save Selection", specify the name and description for the selection, and click "Save".

    '}return t}addGsizeSalt(e){let t=this.icn3dui;t.icn3d;let s="";s+="Grid Size: ",s+="Salt Concentration: M
    ",s}getFootHtml(e,t){let s=this.icn3dui;s.icn3d;let i="
    ";return"delphi"==e?s.cfg.cid?i+="Note: Partial charges(MMFF94) are from PubChem Compound SDF files.

    ":(i+="Note: Only the selected residues are used for DelPhi potential calculation by solving linear Poisson-Boltzmann equation.",i+='

    ',i+=s.htmlCls.divStr+t+"' style='display:none;'>",i+="
    The hydrogens and partial charges of proteins and nucleotides are added using DelPhiPKa with the Amber charge and size files. The hydrogens of ligands are added using Open Babel. The partial charges of ligands are calculated using Antechamber with the Gasteiger charge method. All partial charges are calculated at pH 7.

    ",i+='Lipids are treated as ligands. Please use "HETATM" instead of "ATOM " for each lipid atom in your PDB file. Each phosphate in lipids is assigned with a charge of -1. You can download PQR and modify it, or prepare your PQR file using other tools. Then load the PQR file at the menu "Analysis > Load PQR/Potential".

    ',i+="
    "):(i+="Note: Always load a PDB file before loading a PQR or DelPhi potential file.",i+='

    ',i+=s.htmlCls.divStr+t+"' style='display:none;'>",i+='The PDB file can be loaded in the URL with "pdbid=" or at "File > Open File". The PQR file can be prepared at the menu "Analysis > Download PQR" with your modification or using other tools. The DelPhi potential file can be calculated at DelPhi Web Server and be exported as a Cube file. ',"url"==e&&(i+="The PQR or potential file can be accessed in a URL if it is located in the same host as iCn3D."),i+="

    ",i+=""),i+="",i}getPotentialHtml(e,t){let s=this.icn3dui;s.icn3d;let i,n,l,r,o,a="";r="Equipotential Map",o="Surface with Potential","delphi"==e?n="delphi":"local"==e?(i="pqr",n="phi",l="cube"):"url"==e&&(i="pqrurl",n="phiurl",l="cubeurl"),a+=s.htmlCls.divStr+"dl_"+n+"' class='"+t+"'>",a+=s.htmlCls.setDialogCls.addNotebookTitle("dl_"+n,"DelPhi Potential"),a+=s.htmlCls.divStr+"dl_"+n+"_tabs' style='border:0px;'>",a+="",a+=s.htmlCls.divStr+n+"tab1'>","delphi"==e&&(a+=this.addGsizeSalt(n+"1")+"
    "),a+="Potential contour at: kT/e(25.6mV at 298K)

    ","delphi"==e?(a+=s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map",a+=s.htmlCls.buttonStr+n+"mapNo' style='margin-left:30px;'>Remove Map
    "):"local"==e?(a+=s.htmlCls.divStr+n+"tab1_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo'>Remove Map",a+=s.htmlCls.divStr+n+"tab1_"+i+"'>",a+=this.addGsizeSalt(i)+"
    ",a+="PQR File: "+s.htmlCls.inputFileStr+"id='"+s.pre+i+"file'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+n+"'>",a+="Phi File: "+s.htmlCls.inputFileStr+"id='"+s.pre+n+"file'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+l+"'>",a+="Cube File: "+s.htmlCls.inputFileStr+"id='"+s.pre+l+"file'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=""):"url"==e&&(a+=s.htmlCls.divStr+n+"tab1_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo'>Remove Map",a+=s.htmlCls.divStr+n+"tab1_"+i+"2'>",a+=this.addGsizeSalt(i)+"
    ",a+="PQR URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+i+"file'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+n+"2'>",a+="Phi URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+n+"file'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+l+"2'>",a+="Cube URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+l+"file'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=""),a+="
    "+this.getFootHtml(e,n+"tab1_foot"),a+="",a+=s.htmlCls.divStr+n+"tab2'>","delphi"==e&&(a+=this.addGsizeSalt(n+"2")+"
    "),a+="Surface with max potential at: kT/e(25.6mV at 298K)

    ",a+="Surface: ",a+="Opacity: ",a+="Wireframe:
    ",a+="
    ","delphi"==e?(a+=s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential",a+=s.htmlCls.buttonStr+n+"mapNo2' style='margin-left:30px;'>Remove Surface
    "):"local"==e?(a+=s.htmlCls.divStr+n+"tab2_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo2'>Remove Surface",a+=s.htmlCls.divStr+n+"tab2_"+i+"'>",a+=this.addGsizeSalt(i+"2")+"
    ",a+="PQR File: "+s.htmlCls.inputFileStr+"id='"+s.pre+i+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+n+"'>",a+="Phi File: "+s.htmlCls.inputFileStr+"id='"+s.pre+n+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+l+"'>",a+="Cube File: "+s.htmlCls.inputFileStr+"id='"+s.pre+l+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=""):"url"==e&&(a+=s.htmlCls.divStr+n+"tab2_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo2'>Remove Surface",a+=s.htmlCls.divStr+n+"tab2_"+i+"2'>",a+=this.addGsizeSalt(i+"2")+"
    ",a+="PQR URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+i+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+n+"2'>",a+="Phi URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+n+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+l+"2'>",a+="Cube URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+l+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=""),a+="
    "+this.getFootHtml(e,n+"tab2_foot"),a+="",a+="",a+="",a}async exportPqr(e){let t=this.icn3dui,s=t.icn3d,i={},n={},l=t.hashUtilsCls.intHash(s.dAtoms,s.hAtoms);for(let e in l)s.atoms[e],s.ions.hasOwnProperty(e)?i[e]=1:n[e]=1;let r=e?"pdb":"pqr";if(t.cfg.cid){let l="",o=!e;l+=s.saveFileCls.getAtomPDB(n,o)+s.saveFileCls.getAtomPDB(i,o);let a=Object.keys(t.utilsCls.getHlStructures()).join(",");s.saveFileCls.saveFile(a+"_icn3d."+r,"text",[l])}else{if(t.utilsCls.isCalphaPhosOnly(t.hashUtilsCls.hash2Atoms(n,s.atoms)))return void alert("The potential will not be shown because the side chains are missing in the structure...");let l="",o=!0;l+=s.saveFileCls.getAtomPDB(n,void 0,void 0,void 0,void 0,void 0,o),l+=s.saveFileCls.getAtomPDB(i,!0,void 0,!0);let a=t.htmlCls.baseUrl+"delphi/delphi.cgi",d={pdb2pqr:l,pdbid:t.cfg.cid?t.cfg.cid:Object.keys(s.structures).toString()},c=await t.getAjaxPostPromise(a,d,!0,void 0,void 0,!0,"text");if(e){let e=c.split("\n"),s="";for(let i=0,n=e.length;i Save File > iCn3D PNG Image"...');else if(-1!=r){let t=e.substr(r+l.length);i.htmlCls.clickMenuCls.setLogCmd("load iCn3D PNG image "+$("#"+i.pre+"pngimage").val(),!1),window.open(t,"_self")}else if(-1!=a){let i="Start of data file======\n",l=e.indexOf(i);n.bInputfile=-1!=l,n.bInputPNGWithData=n.bInputfile;let r=t?t.replace(/;/g,"\n"):"",h=e.indexOf("End of data file======\n");d=e.substr(l+i.length,h-l-i.length);let p="Start of type file======\n",m=e.indexOf(p),u=e.indexOf("End of type file======\n"),g=e.substr(m+p.length,u-m-p.length-1);n.InputfileType=g;let f=e.indexOf("End of state file======\n");c=e.substr(a+o.length,f-a-o.length),c=decodeURIComponent(c+"\n"+r),s&&("pdb"===g?(await n.pdbParserCls.loadPdbData(d),n.commands=[],n.optsHistory=[]):("mol2"===g?await n.mol2ParserCls.loadMol2Data(d):"sdf"===g?await n.sdfParserCls.loadSdfData(d):"xyz"===g?await n.xyzParserCls.loadXyzData(d):"mmcif"===g&&await n.mmcifParserCls.loadMmcifData(d),n.commands=[],n.optsHistory=[]),await n.loadScriptCls.loadScript(c,!0))}return{pdb:d,statefile:c}}fileSupport(){window.File&&window.FileReader&&window.FileList&&window.Blob||alert("The File APIs are not fully supported in this browser.")}getLinkColor(){let e="";return e+=", linkmap: {\n",e+='3: {"type": "peptidebond", "c":""},\n',e+='4: {"type": "ssbond", "c":"FFA500"},\n',e+='5: {"type": "ionic", "c":"0FF"},\n',e+='6: {"type": "ionicInside", "c":"FFF"},\n',e+='11: {"type": "contact", "c":"888"},\n',e+='12: {"type": "contactInside", "c":"FFF"},\n',e+='13: {"type": "hbond", "c":"0F0"},\n',e+='14: {"type": "hbondInside", "c":"FFF"},\n',e+='15: {"type": "clbond", "c":"006400"},\n',e+='17: {"type": "halogen", "c":"F0F"},\n',e+='18: {"type": "halogenInside", "c":"FFF"},\n',e+='19: {"type": "pication", "c":"F00"},\n',e+='20: {"type": "picationInside", "c":"FFF"},\n',e+='21: {"type": "pistacking", "c":"00F"},\n',e+='22: {"type": "pistackingInside", "c":"FFF"}\n',e+="}}\n",', linkmap: {\n3: {"type": "peptidebond", "c":""},\n4: {"type": "ssbond", "c":"FFA500"},\n5: {"type": "ionic", "c":"0FF"},\n6: {"type": "ionicInside", "c":"FFF"},\n11: {"type": "contact", "c":"888"},\n12: {"type": "contactInside", "c":"FFF"},\n13: {"type": "hbond", "c":"0F0"},\n14: {"type": "hbondInside", "c":"FFF"},\n15: {"type": "clbond", "c":"006400"},\n17: {"type": "halogen", "c":"F0F"},\n18: {"type": "halogenInside", "c":"FFF"},\n19: {"type": "pication", "c":"F00"},\n20: {"type": "picationInside", "c":"FFF"},\n21: {"type": "pistacking", "c":"00F"},\n22: {"type": "pistackingInside", "c":"FFF"}\n}}\n'}setCookieForThickness(){let e=this.icn3dui,t=e.icn3d;if(!e.bNode){let e=3650;this.setCookie("lineRadius",t.lineRadius,e),this.setCookie("coilWidth",t.coilWidth,e),this.setCookie("cylinderRadius",t.cylinderRadius,e),this.setCookie("crosslinkRadius",t.crosslinkRadius,e),this.setCookie("traceRadius",t.traceRadius,e),this.setCookie("dotSphereScale",t.dotSphereScale,e),this.setCookie("ribbonthickness",t.ribbonthickness,e),this.setCookie("helixSheetWidth",t.helixSheetWidth,e),this.setCookie("nucleicAcidWidth",t.nucleicAcidWidth,e)}}setLineThickness(e,t){let s=this.icn3dui,i=s.icn3d;if(i.bSetThickness=!0,"style"==e&&(t&&($("#"+s.pre+"shininess").val("40"),$("#"+s.pre+"light1").val("0.8"),$("#"+s.pre+"light2").val("0.4"),$("#"+s.pre+"light3").val("0.2"),$("#"+s.pre+"glycan").val("0"),$("#"+s.pre+"membrane").val("1"),$("#"+s.pre+"cmdwindow").val("0")),i.shininess=parseFloat($("#"+s.pre+"shininess").val()),i.light1=parseFloat($("#"+s.pre+"light1").val()),i.light2=parseFloat($("#"+s.pre+"light2").val()),i.light3=parseFloat($("#"+s.pre+"light3").val()),i.bGlycansCartoon=parseInt($("#"+s.pre+"glycan").val()),i.bMembrane=parseInt($("#"+s.pre+"membrane").val()),i.bCmdWindow=parseInt($("#"+s.pre+"cmdwindow").val())),t&&($("#"+s.pre+"linerad_"+e).val(.1),$("#"+s.pre+"coilrad_"+e).val(.3),$("#"+s.pre+"stickrad_"+e).val(.4),$("#"+s.pre+"crosslinkrad_"+e).val(.4),$("#"+s.pre+"tracerad_"+e).val(.4),$("#"+s.pre+"ballscale_"+e).val(.3),$("#"+s.pre+"ribbonthick_"+e).val(.2),$("#"+s.pre+"prtribbonwidth_"+e).val(1.3),$("#"+s.pre+"nucleotideribbonwidth_"+e).val(.8)),i.lineRadius=parseFloat($("#"+s.pre+"linerad_"+e).val()),i.coilWidth=parseFloat($("#"+s.pre+"coilrad_"+e).val()),i.cylinderRadius=parseFloat($("#"+s.pre+"stickrad_"+e).val()),i.crosslinkRadius=parseFloat($("#"+s.pre+"crosslinkrad_"+e).val()),i.traceRadius=parseFloat($("#"+s.pre+"tracerad_"+e).val()),i.dotSphereScale=parseFloat($("#"+s.pre+"ballscale_"+e).val()),i.ribbonthickness=parseFloat($("#"+s.pre+"ribbonthick_"+e).val()),i.helixSheetWidth=parseFloat($("#"+s.pre+"prtribbonwidth_"+e).val()),i.nucleicAcidWidth=parseFloat($("#"+s.pre+"nucleotideribbonwidth_"+e).val()),!s.bNode){let e=3650;this.setCookie("shininess",i.shininess,e),this.setCookie("light1",i.light1,e),this.setCookie("light2",i.light2,e),this.setCookie("light3",i.light3,e),this.setCookie("glycan",i.bGlycansCartoon,e),this.setCookie("membrane",i.bMembrane,e),this.setCookie("cmdwindow",i.bCmdWindow,e)}if(this.setCookieForThickness(),e=t){let e="reset thickness";s.htmlCls.clickMenuCls.setLogCmd(e,!0),i.bSetThickness=!1,i.threeDPrintCls.resetAfter3Dprint()}else s.htmlCls.clickMenuCls.setLogCmd("set thickness | linerad "+i.lineRadius+" | coilrad "+i.coilWidth+" | stickrad "+i.cylinderRadius+" | crosslinkrad "+i.crosslinkRadius+" | tracerad "+i.traceRadius+" | ribbonthick "+i.ribbonthickness+" | proteinwidth "+i.helixSheetWidth+" | nucleotidewidth "+i.nucleicAcidWidth+" | ballscale "+i.dotSphereScale,!0),s.htmlCls.clickMenuCls.setLogCmd("set glycan "+i.bGlycansCartoon,!0),s.htmlCls.clickMenuCls.setLogCmd("set membrane "+i.bMembrane,!0),s.htmlCls.clickMenuCls.setLogCmd("set cmdwindow "+i.bCmdWindow,!0);i.drawCls.draw()}setCookie(e,t,s){let i=new Date;i.setTime(i.getTime()+24*s*60*60*1e3);let n="expires="+i.toUTCString();document.cookie=e+"="+t+";"+n+";path=/"}updateSurfPara(e){let t=this.icn3dui,s=t.icn3d;s.phisurftype=$("#"+t.pre+e+"surftype").val(),s.phisurfop=$("#"+t.pre+e+"surfop").val(),s.phisurfwf=$("#"+t.pre+e+"surfwf").val()}exportPdb(){let e=this.icn3dui,t=e.icn3d,s="",i=e.hashUtilsCls.intHash(t.dAtoms,t.hAtoms);if(s+=t.saveFileCls.getAtomPDB(i),!e.bNode){let i=Object.keys(e.utilsCls.getHlStructures()).join(",");t.saveFileCls.saveFile(i+"_icn3d.pdb","text",[s])}return s}exportSecondary(){let e=this.icn3dui,t=e.icn3d,s="",i=e.hashUtilsCls.intHash(t.dAtoms,t.hAtoms);if(s+=t.saveFileCls.getSecondary(i),!e.bNode){let i=Object.keys(e.utilsCls.getHlStructures()).join(",");t.saveFileCls.saveFile(i+"_icn3d_ss.txt","text",[s])}return s}}class g{constructor(e){let t=e;this.icn3dui=e,this.cfg=this.icn3dui.cfg,this.opts={},this.opts.background="black",this.allMenus={},this.allMenusSel={},this.simpleMenus={},this.shownMenus={},this.WIDTH=400,this.HEIGHT=400,this.RESIDUE_WIDTH=10,t.utilsCls.isMobile()||this.cfg.mobilemenu?this.MENU_HEIGHT=0:this.MENU_HEIGHT=40,this.LOG_HEIGHT=65,this.MENU_WIDTH=750,this.LESSWIDTH=20,this.LESSWIDTH_RESIZE=20,this.LESSHEIGHT=20,this.width2d=200,this.CMD_HEIGHT=.8*this.LOG_HEIGHT,this.EXTRAHEIGHT=this.MENU_HEIGHT+this.CMD_HEIGHT,null!=this.cfg.showmenu&&0==this.cfg.showmenu&&(this.EXTRAHEIGHT-=this.MENU_HEIGHT),null!=this.cfg.showcommand&&0==this.cfg.showcommand&&(this.EXTRAHEIGHT-=this.CMD_HEIGHT),this.GREY8="#AAAAAA",this.GREYB="#CCCCCC",this.GREYC="#DDDDDD",this.GREYD="#EEEEEE",this.ORANGE="#FFA500",this.themecolor="blue",this.defaultValue=1,this.ssValue=3,this.coilValue=3,this.contactValue=11,this.contactInsideValue=12,this.hbondValue=13,this.hbondInsideValue=14,this.ssbondValue=4,this.ionicValue=5,this.ionicInsideValue=6,this.clbondValue=15,this.halogenValue=17,this.halogenInsideValue=18,this.picationValue=19,this.picationInsideValue=20,this.pistackingValue=21,this.pistackingInsideValue=22,this.contactColor="888",this.contactInsideColor="FFF",this.hbondColor="0F0",this.hbondInsideColor="FFF",this.ssbondColor="FFA500",this.ionicColor="0FF",this.ionicInsideColor="FFF",this.clbondColor="006400",this.halogenColor="F0F",this.halogenInsideColor="FFF",this.picationColor="F00",this.picationInsideColor="FFF",this.pistackingColor="00F",this.pistackingInsideColor="FFF",this.hideedges=1,this.force=4,this.simulation=void 0,this.baseUrl=window&&window.location&&"structure.ncbi.nlm.nih.gov"==window.location.hostname?"https://structure.ncbi.nlm.nih.gov/Structure/":"https://www.ncbi.nlm.nih.gov/Structure/",this.tmalignUrl=this.baseUrl+"tmalign/tmalign.cgi",this.divStr="
    ",this.spanNowrapStr="",this.inputTextStr="=2.0 are supported.")));const a=new pe(o,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});a.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e=0&&void 0===r[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}a.setExtensions(l),a.setPlugins(r),a.parse(s,i)}parseAsync(e,t){const s=this;return new Promise((function(i,n){s.parse(e,t,i,n)}))}}function C(){let e={};return{get:function(t){return e[t]},add:function(t,s){e[t]=s},remove:function(t){delete e[t]},removeAll:function(){e={}}}}const b={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression"};class y{constructor(e){this.parser=e,this.name=b.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let s=0,i=t.length;s=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,n.source,l)}}class R{constructor(e){this.parser=e,this.name=b.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,s=this.parser,i=s.json,n=i.textures[e];if(!n.extensions||!n.extensions[t])return null;const l=n.extensions[t],r=i.images[l.source];let o=s.textureLoader;if(r.uri){const e=s.options.manager.getHandler(r.uri);null!==e&&(o=e)}return this.detectSupport().then((function(n){if(n)return s.loadTextureImage(e,l.source,o);if(i.extensionsRequired&&i.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return s.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}}class I{constructor(e){this.name=b.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,s=t.bufferViews[e];if(s.extensions&&s.extensions[this.name]){const e=s.extensions[this.name],i=this.parser.getDependency("buffer",e.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return Promise.all([i,n.ready]).then((function(t){const s=e.byteOffset||0,i=e.byteLength||0,l=e.count,r=e.byteStride,o=new ArrayBuffer(l*r),a=new Uint8Array(t[0],s,i);return n.decodeGltfBuffer(new Uint8Array(o),l,r,a,e.mode,e.filter),o}))}return null}}const E="glTF",T=1313821514,P=5130562;class D{constructor(e){this.name=b.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,12);if(this.header={magic:THREE.LoaderUtils.decodeText(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==E)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const s=this.header.length-12,i=new DataView(e,12);let n=0;for(;n",t).replace("#include ",s).replace("#include ",i).replace("#include ",n).replace("#include ",l)},Object.defineProperties(this,{specular:{get:function(){return r.specular.value},set:function(e){r.specular.value=e}},specularMap:{get:function(){return r.specularMap.value},set:function(e){r.specularMap.value=e,e?this.defines.USE_SPECULARMAP="":delete this.defines.USE_SPECULARMAP}},glossiness:{get:function(){return r.glossiness.value},set:function(e){r.glossiness.value=e}},glossinessMap:{get:function(){return r.glossinessMap.value},set:function(e){r.glossinessMap.value=e,e?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_UV=""):(delete this.defines.USE_GLOSSINESSMAP,delete this.defines.USE_UV)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(e)}copy(e){return super.copy(e),this.specularMap=e.specularMap,this.specular.copy(e.specular),this.glossinessMap=e.glossinessMap,this.glossiness=e.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this}}class L{constructor(){this.name=b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,this.specularGlossinessParams=["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity"]}getMaterialType(){return H}extendParams(e,t,s){const i=t.extensions[this.name];e.color=new Color(1,1,1),e.opacity=1;const n=[];if(Array.isArray(i.diffuseFactor)){const t=i.diffuseFactor;e.color.fromArray(t),e.opacity=t[3]}if(void 0!==i.diffuseTexture&&n.push(s.assignTexture(e,"map",i.diffuseTexture,sRGBEncoding)),e.emissive=new Color(0,0,0),e.glossiness=void 0!==i.glossinessFactor?i.glossinessFactor:1,e.specular=new Color(1,1,1),Array.isArray(i.specularFactor)&&e.specular.fromArray(i.specularFactor),void 0!==i.specularGlossinessTexture){const t=i.specularGlossinessTexture;n.push(s.assignTexture(e,"glossinessMap",t)),n.push(s.assignTexture(e,"specularMap",t,sRGBEncoding))}return Promise.all(n)}createMaterial(e){const t=new H(e);return t.fog=!0,t.color=e.color,t.map=void 0===e.map?null:e.map,t.lightMap=null,t.lightMapIntensity=1,t.aoMap=void 0===e.aoMap?null:e.aoMap,t.aoMapIntensity=1,t.emissive=e.emissive,t.emissiveIntensity=1,t.emissiveMap=void 0===e.emissiveMap?null:e.emissiveMap,t.bumpMap=void 0===e.bumpMap?null:e.bumpMap,t.bumpScale=1,t.normalMap=void 0===e.normalMap?null:e.normalMap,t.normalMapType=TangentSpaceNormalMap,e.normalScale&&(t.normalScale=e.normalScale),t.displacementMap=null,t.displacementScale=1,t.displacementBias=0,t.specularMap=void 0===e.specularMap?null:e.specularMap,t.specular=e.specular,t.glossinessMap=void 0===e.glossinessMap?null:e.glossinessMap,t.glossiness=e.glossiness,t.alphaMap=null,t.envMap=void 0===e.envMap?null:e.envMap,t.envMapIntensity=1,t}}class N{constructor(){this.name=b.KHR_MESH_QUANTIZATION}}class q extends THREE.Interpolant{constructor(e,t,s,i){super(e,t,s,i)}copySampleValue_(e){const t=this.resultBuffer,s=this.sampleValues,i=this.valueSize,n=e*i*3+i;for(let e=0;e!==i;e++)t[e]=s[n+e];return t}}q.prototype.beforeStart_=q.prototype.copySampleValue_,q.prototype.afterEnd_=q.prototype.copySampleValue_,q.prototype.interpolate_=function(e,t,s,i){const n=this.resultBuffer,l=this.sampleValues,r=this.valueSize,o=2*r,a=3*r,d=i-t,c=(s-t)/d,h=c*c,p=h*c,m=e*a,u=m-a,g=-2*p+3*h,f=p-h,C=1-g,b=f-h+c;for(let e=0;e!==r;e++){const t=l[u+e+r],s=l[u+e+o]*d,i=l[m+e+r],a=l[m+e]*d;n[e]=C*t+b*s+g*i+f*a}return n};const U=new THREE.Quaternion;class B extends q{interpolate_(e,t,s,i){const n=super.interpolate_(e,t,s,i);return U.fromArray(n).normalize().toArray(n),n}}const j=0,z=1,G=2,V=3,W=4,Y=5,X=6,K={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},J={9728:THREE.NearestFilter,9729:THREE.LinearFilter,9984:THREE.NearestMipmapNearestFilter,9985:THREE.LinearMipmapNearestFilter,9986:THREE.NearestMipmapLinearFilter,9987:THREE.LinearMipmapLinearFilter},Z={33071:THREE.ClampToEdgeWrapping,33648:THREE.MirroredRepeatWrapping,10497:THREE.RepeatWrapping},Q={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},ee={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},te={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},se={CUBICSPLINE:void 0,LINEAR:THREE.InterpolateLinear,STEP:THREE.InterpolateDiscrete},ie="OPAQUE",ne="MASK",le="BLEND";function re(e,t,s){for(const i in s.extensions)void 0===e[i]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[i]=s.extensions[i])}function oe(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function ae(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let s=0,i=t.weights.length;s{const s=this.associations.get(e);null!=s&&this.associations.set(t,s);for(const[s,i]of e.children.entries())n(i,t.children[s])};return n(s,i),i.name+="_instance_"+e.uses[t]++,i}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let s=0;s=2&&m.setY(t,c[e*l+1]),l>=3&&m.setZ(t,c[e*l+2]),l>=4&&m.setW(t,c[e*l+3]),l>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return m}))}loadTexture(e){const t=this.json,s=this.options,i=t.textures[e].source,n=t.images[i];let l=this.textureLoader;if(n.uri){const e=s.manager.getHandler(n.uri);null!==e&&(l=e)}return this.loadTextureImage(e,i,l)}loadTextureImage(e,t,s){const i=this,n=this.json,l=n.textures[e],r=n.images[t],o=(r.uri||r.bufferView)+":"+l.sampler;if(this.textureCache[o])return this.textureCache[o];const a=this.loadImageSource(t,s).then((function(t){t.flipY=!1,l.name&&(t.name=l.name);const s=(n.samplers||{})[l.sampler]||{};return t.magFilter=J[s.magFilter]||LinearFilter,t.minFilter=J[s.minFilter]||LinearMipmapLinearFilter,t.wrapS=Z[s.wrapS]||RepeatWrapping,t.wrapT=Z[s.wrapT]||RepeatWrapping,i.associations.set(t,{textures:e}),t})).catch((function(){return null}));return this.textureCache[o]=a,a}loadImageSource(e,t){const s=this,i=this.json,n=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then((e=>e.clone()));const l=i.images[e],r=self.URL||self.webkitURL;let o=l.uri||"",a=!1;if(void 0!==l.bufferView)o=s.getDependency("bufferView",l.bufferView).then((function(e){a=!0;const t=new Blob([e],{type:l.mimeType});return o=r.createObjectURL(t),o}));else if(void 0===l.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const d=Promise.resolve(o).then((function(e){return new Promise((function(s,i){let l=s;!0===t.isImageBitmapLoader&&(l=function(e){const t=new Texture(e);t.needsUpdate=!0,s(t)}),t.load(THREE.LoaderUtils.resolveURL(e,n.path),l,void 0,i)}))})).then((function(e){var t;return!0===a&&r.revokeObjectURL(o),e.userData.mimeType=l.mimeType||((t=l.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e})).catch((function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),e}));return this.sourceCache[e]=d,d}assignTexture(e,t,s,i){const n=this;return this.getDependency("texture",s.index).then((function(l){if(void 0===s.texCoord||0==s.texCoord||"aoMap"===t&&1==s.texCoord||console.warn("THREE.GLTFLoader: Custom UV set "+s.texCoord+" for texture "+t+" not yet supported."),n.extensions[b.KHR_TEXTURE_TRANSFORM]){const e=void 0!==s.extensions?s.extensions[b.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=n.associations.get(l);l=n.extensions[b.KHR_TEXTURE_TRANSFORM].extendTexture(l,e),n.associations.set(l,t)}}return void 0!==i&&(l.encoding=i),e[t]=l,l}))}assignFinalMaterial(e){const t=e.geometry;let s=e.material;const i=void 0===t.attributes.tangent,n=void 0!==t.attributes.color,l=void 0===t.attributes.normal;if(e.isPoints){const e="PointsMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new PointsMaterial,Material.prototype.copy.call(t,s),t.color.copy(s.color),t.map=s.map,t.sizeAttenuation=!1,this.cache.add(e,t)),s=t}else if(e.isLine){const e="LineBasicMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new LineBasicMaterial,Material.prototype.copy.call(t,s),t.color.copy(s.color),this.cache.add(e,t)),s=t}if(i||n||l){let e="ClonedMaterial:"+s.uuid+":";s.isGLTFSpecularGlossinessMaterial&&(e+="specular-glossiness:"),i&&(e+="derivative-tangents:"),n&&(e+="vertex-colors:"),l&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=s.clone(),n&&(t.vertexColors=!0),l&&(t.flatShading=!0),i&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(s))),s=t}s.aoMap&&void 0===t.attributes.uv2&&void 0!==t.attributes.uv&&t.setAttribute("uv2",t.attributes.uv),e.material=s}getMaterialType(){return MeshStandardMaterial}loadMaterial(e){const t=this,s=this.json,i=this.extensions,n=s.materials[e];let l;const r={},o=n.extensions||{},a=[];if(o[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){const e=i[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];l=e.getMaterialType(),a.push(e.extendParams(r,n,t))}else if(o[b.KHR_MATERIALS_UNLIT]){const e=i[b.KHR_MATERIALS_UNLIT];l=e.getMaterialType(),a.push(e.extendParams(r,n,t))}else{const s=n.pbrMetallicRoughness||{};if(r.color=new Color(1,1,1),r.opacity=1,Array.isArray(s.baseColorFactor)){const e=s.baseColorFactor;r.color.fromArray(e),r.opacity=e[3]}void 0!==s.baseColorTexture&&a.push(t.assignTexture(r,"map",s.baseColorTexture,sRGBEncoding)),r.metalness=void 0!==s.metallicFactor?s.metallicFactor:1,r.roughness=void 0!==s.roughnessFactor?s.roughnessFactor:1,void 0!==s.metallicRoughnessTexture&&(a.push(t.assignTexture(r,"metalnessMap",s.metallicRoughnessTexture)),a.push(t.assignTexture(r,"roughnessMap",s.metallicRoughnessTexture))),l=this._invokeOne((function(t){return t.getMaterialType&&t.getMaterialType(e)})),a.push(Promise.all(this._invokeAll((function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,r)}))))}!0===n.doubleSided&&(r.side=DoubleSide);const d=n.alphaMode||ie;if(d===le?(r.transparent=!0,r.depthWrite=!1):(r.transparent=!1,d===ne&&(r.alphaTest=void 0!==n.alphaCutoff?n.alphaCutoff:.5)),void 0!==n.normalTexture&&l!==MeshBasicMaterial&&(a.push(t.assignTexture(r,"normalMap",n.normalTexture)),r.normalScale=new Vector2(1,1),void 0!==n.normalTexture.scale)){const e=n.normalTexture.scale;r.normalScale.set(e,e)}return void 0!==n.occlusionTexture&&l!==MeshBasicMaterial&&(a.push(t.assignTexture(r,"aoMap",n.occlusionTexture)),void 0!==n.occlusionTexture.strength&&(r.aoMapIntensity=n.occlusionTexture.strength)),void 0!==n.emissiveFactor&&l!==MeshBasicMaterial&&(r.emissive=(new Color).fromArray(n.emissiveFactor)),void 0!==n.emissiveTexture&&l!==MeshBasicMaterial&&a.push(t.assignTexture(r,"emissiveMap",n.emissiveTexture,sRGBEncoding)),Promise.all(a).then((function(){let s;return s=l===H?i[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(r):new l(r),n.name&&(s.name=n.name),oe(s,n),t.associations.set(s,{materials:e}),n.extensions&&re(i,s,n),s}))}createUniqueName(e){const t=PropertyBinding.sanitizeNodeName(e||"");let s=t;for(let e=1;this.nodeNamesUsed[s];++e)s=t+"_"+e;return this.nodeNamesUsed[s]=!0,s}loadGeometries(e){const t=this,s=this.extensions,i=this.primitiveCache;function n(e){return s[b.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then((function(s){return ue(s,e,t)}))}const l=[];for(let s=0,r=e.length;s0&&ae(h,n),h.name=t.createUniqueName(n.name||"mesh_"+e),oe(h,n),c.extensions&&re(i,h,c),t.assignFinalMaterial(h),a.push(h)}for(let s=0,i=a.length;s1?new Group:1===t.length?t[0]:new Object3D,r!==t[0])for(let e=0,s=t.length;e{const t=new Map;for(const[e,s]of n.associations)(e instanceof Material||e instanceof Texture)&&t.set(e,s);return e.traverse((e=>{const s=n.associations.get(e);null!=s&&t.set(e,s)})),t})(l),l}))}}function me(e,t,s,i){const n=s.nodes[e];return i.getDependency("node",e).then((function(e){if(void 0===n.skin)return e;let t;return i.getDependency("skin",n.skin).then((function(e){t=e;const s=[];for(let e=0,n=t.joints.length;e{const s=n[e];return s&&(l={profileId:e,profilePath:`${t}/${s.path}`,deprecated:!!s.deprecated}),!!l})),!l){if(!s)throw new Error("No matching profile name found");const e=n[s];if(!e)throw new Error(`No matching profile name found and default profile "${s}" missing.`);l={profileId:s,profilePath:`${t}/${e.path}`,deprecated:!!e.deprecated}}const r=await Ce(l.profilePath);let o;if(i){let t;if(t="any"===e.handedness?r.layouts[Object.keys(r.layouts)[0]]:r.layouts[e.handedness],!t)throw new Error(`No matching handedness, ${e.handedness}, in profile ${l.profileId}`);t.assetPath&&(o=l.profilePath.replace("profile.json",t.assetPath))}return{profile:r,assetPath:o}}const ye={xAxis:0,yAxis:0,button:0,state:fe.ComponentState.DEFAULT};class ve{constructor(e){this.componentProperty=e.componentProperty,this.states=e.states,this.valueNodeName=e.valueNodeName,this.valueNodeProperty=e.valueNodeProperty,this.valueNodeProperty===fe.VisualResponseProperty.TRANSFORM&&(this.minNodeName=e.minNodeName,this.maxNodeName=e.maxNodeName),this.value=0,this.updateFromComponent(ye)}updateFromComponent({xAxis:e,yAxis:t,button:s,state:i}){const{normalizedXAxis:n,normalizedYAxis:l}=function(e=0,t=0){let s=e,i=t;if(Math.sqrt(e*e+t*t)>1){const n=Math.atan2(t,e);s=Math.cos(n),i=Math.sin(n)}return{normalizedXAxis:.5*s+.5,normalizedYAxis:.5*i+.5}}(e,t);switch(this.componentProperty){case fe.ComponentProperty.X_AXIS:this.value=this.states.includes(i)?n:.5;break;case fe.ComponentProperty.Y_AXIS:this.value=this.states.includes(i)?l:.5;break;case fe.ComponentProperty.BUTTON:this.value=this.states.includes(i)?s:0;break;case fe.ComponentProperty.STATE:this.valueNodeProperty===fe.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(i):this.value=this.states.includes(i)?1:0;break;default:throw new Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`)}}}class _e{constructor(e,t){if(!(e&&t&&t.visualResponses&&t.gamepadIndices&&0!==Object.keys(t.gamepadIndices).length))throw new Error("Invalid arguments supplied");this.id=e,this.type=t.type,this.rootNodeName=t.rootNodeName,this.touchPointNodeName=t.touchPointNodeName,this.visualResponses={},Object.keys(t.visualResponses).forEach((e=>{const s=new ve(t.visualResponses[e]);this.visualResponses[e]=s})),this.gamepadIndices=Object.assign({},t.gamepadIndices),this.values={state:fe.ComponentState.DEFAULT,button:void 0!==this.gamepadIndices.button?0:void 0,xAxis:void 0!==this.gamepadIndices.xAxis?0:void 0,yAxis:void 0!==this.gamepadIndices.yAxis?0:void 0}}get data(){return{id:this.id,...this.values}}updateFromGamepad(e){if(this.values.state=fe.ComponentState.DEFAULT,void 0!==this.gamepadIndices.button&&e.buttons.length>this.gamepadIndices.button){const t=e.buttons[this.gamepadIndices.button];this.values.button=t.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,t.pressed||1===this.values.button?this.values.state=fe.ComponentState.PRESSED:(t.touched||this.values.button>fe.ButtonTouchThreshold)&&(this.values.state=fe.ComponentState.TOUCHED)}void 0!==this.gamepadIndices.xAxis&&e.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=e.axes[this.gamepadIndices.xAxis],this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis,this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis,this.values.state===fe.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>fe.AxisTouchThreshold&&(this.values.state=fe.ComponentState.TOUCHED)),void 0!==this.gamepadIndices.yAxis&&e.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=e.axes[this.gamepadIndices.yAxis],this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis,this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis,this.values.state===fe.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>fe.AxisTouchThreshold&&(this.values.state=fe.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach((e=>{e.updateFromComponent(this.values)}))}}class we{constructor(e,t,s){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No profile supplied");this.xrInputSource=e,this.assetUrl=s,this.id=t.profileId,this.layoutDescription=t.layouts[e.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach((e=>{const t=this.layoutDescription.components[e];this.components[e]=new _e(e,t)})),this.updateFromGamepad()}get gripSpace(){return this.xrInputSource.gripSpace}get targetRaySpace(){return this.xrInputSource.targetRaySpace}get data(){const e=[];return Object.values(this.components).forEach((t=>{e.push(t.data)})),e}updateFromGamepad(){Object.values(this.components).forEach((e=>{e.updateFromGamepad(this.xrInputSource.gamepad)}))}}class Se extends THREE.Object3D{constructor(){super(),this.motionController=null,this.envMap=null}setEnvironmentMap(e){return this.envMap==e||(this.envMap=e,this.traverse((e=>{e.isMesh&&(e.material.envMap=this.envMap,e.material.needsUpdate=!0)}))),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach((e=>{Object.values(e.visualResponses).forEach((e=>{const{valueNode:t,minNode:s,maxNode:i,value:n,valueNodeProperty:l}=e;t&&(l===fe.VisualResponseProperty.VISIBILITY?t.visible=n:l===fe.VisualResponseProperty.TRANSFORM&&(t.quaternion.slerpQuaternions(s.quaternion,i.quaternion,n),t.position.lerpVectors(s.position,i.position,n)))}))})))}}function Ae(e,t){!function(e,t){Object.values(e.components).forEach((e=>{const{type:s,touchPointNodeName:i,visualResponses:n}=e;if(s===fe.ComponentType.TOUCHPAD)if(e.touchPointNode=t.getObjectByName(i),e.touchPointNode){const t=new SphereGeometry(.001),s=new MeshBasicMaterial({color:255}),i=new Mesh(t,s);e.touchPointNode.add(i)}else console.warn(`Could not find touch dot, ${e.touchPointNodeName}, in touchpad component ${e.id}`);Object.values(n).forEach((e=>{const{valueNodeName:s,minNodeName:i,maxNodeName:n,valueNodeProperty:l}=e;if(l===fe.VisualResponseProperty.TRANSFORM){if(e.minNode=t.getObjectByName(i),e.maxNode=t.getObjectByName(n),!e.minNode)return void console.warn(`Could not find ${i} in the model`);if(!e.maxNode)return void console.warn(`Could not find ${n} in the model`)}e.valueNode=t.getObjectByName(s),e.valueNode||console.warn(`Could not find ${s} in the model`)}))}))}(e.motionController,t),e.envMap&&t.traverse((t=>{t.isMesh&&(t.material.envMap=e.envMap,t.material.needsUpdate=!0)})),e.add(t)}class xe{constructor(e=null){this.gltfLoader=e,this.path="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",this._assetCache={},this.gltfLoader||(this.gltfLoader=new f)}createControllerModel(e){const t=new Se;let s=null;return e.addEventListener("connected",(e=>{const i=e.data;"tracked-pointer"===i.targetRayMode&&i.gamepad&&be(i,this.path,"generic-trigger").then((({profile:e,assetPath:n})=>{t.motionController=new we(i,e,n);const l=this._assetCache[t.motionController.assetUrl];if(l)s=l.scene.clone(),Ae(t,s);else{if(!this.gltfLoader)throw new Error("GLTFLoader not set.");this.gltfLoader.setPath(""),this.gltfLoader.load(t.motionController.assetUrl,(e=>{this._assetCache[t.motionController.assetUrl]=e,s=e.scene.clone(),Ae(t,s)}),null,(()=>{throw new Error(`Asset ${t.motionController.assetUrl} missing or malformed.`)}))}})).catch((e=>{console.warn(e)}))})),e.addEventListener("disconnected",(()=>{t.motionController=null,t.remove(s),s=null})),t}}class ke extends THREE.EventDispatcher{constructor(e){if(super(),void 0===e)return void console.error("ControllerGestures must be passed a renderer");const t=new THREE.Clock;this.controller1=e.xr.getController(0),this.controller1.userData.gestures={index:0},this.controller1.userData.selectPressed=!1,this.controller1.addEventListener("selectstart",i),this.controller1.addEventListener("selectend",n),this.controller2=e.xr.getController(1),this.controller2.userData.gestures={index:1},this.controller2.userData.selectPressed=!1,this.controller2.addEventListener("selectstart",i),this.controller2.addEventListener("selectend",n),this.doubleClickLimit=.2,this.pressMinimum=.4,this.right=new THREE.Vector3(1,0,0),this.up=new THREE.Vector3(0,1,0),this.type="unknown",this.prevTap="none",this.clock=t;const s=this;function i(){const e=this.userData.gestures;e.startPosition=void 0,e.startTime=t.getElapsedTime(),-1==s.type.indexOf("tap")&&(e.taps=0),s.type="unknown",this.userData.selectPressed=!0}function n(){const e=this.userData.gestures;e.endTime=t.getElapsedTime();e.endTime-e.startTime.05&&(e.startPosition=this.controller1.position.clone())),this.controller2.userData.selectPressed&&void 0===t.startPosition&&(i=s-t.startTime,i>.05&&(t.startPosition=this.controller2.position.clone())),!this.controller1.userData.selectPressed&&"tap"===this.type&&(i=this.clock.getElapsedTime()-e.endTime,i>this.doubleClickLimit)){switch(e.taps){case 1:self.prevTap="tap";break;case 2:this.dispatchEvent({type:"doubletap",position:this.controller1.position,matrixWorld:this.controller1.matrixWorld}),self.prevTap="doubletap"}this.type="unknown",e.taps=0}if("unknown"===this.type&&this.touch)"doubletap"==self.prevTap?(this.type="pinch",this.startDistance=this.controller1.position.distanceTo(this.controller2.position),this.dispatchEvent({type:"pinch",delta:new THREE.Vector3(0,0,0),scale:1,initialise:!0})):(this.type="pan",this.startPosition=this.controller1.position.clone(),this.dispatchEvent({type:"pan",delta:new THREE.Vector3(0,0,0),initialise:!0}));else if(("pinch"===this.type||"pan"===this.type)&&"doubletap"==self.prevTap&&this.controller2.position){const e=this.controller1.position.distanceTo(this.controller2.position)/this.startDistance,t=this.controller1.position.clone().sub(this.startPosition);this.dispatchEvent({type:"pinch",delta:t,scale:e})}}}class Oe{constructor(e,t){this.config=void 0===t?{panelSize:{width:1,height:1},width:512,height:512,opacity:.7,body:{fontFamily:"Arial",fontSize:30,padding:2,backgroundColor:"#000",fontColor:"#fff",borderRadius:6}}:t,void 0===this.config.width&&(this.config.width=512),void 0===this.config.height&&(this.config.height=512),void 0===this.config.body&&(this.config.body={fontFamily:"Arial",size:30,padding:2,backgroundColor:"#000",fontColor:"#fff",borderRadius:6});const s=this.config.body;void 0===s.borderRadius&&(s.borderRadius=6),void 0===s.fontFamily&&(s.fontFamily="Arial"),void 0===s.padding&&(s.padding=2),void 0===s.fontSize&&(s.fontSize=30),void 0===s.backgroundColor&&(s.backgroundColor="#000"),void 0===s.fontColor&&(s.fontColor="#fff"),Object.entries(this.config).forEach((([e,t])=>{if(!("object"!=typeof t||"panelSize"===e||t instanceof THREE.WebGLRenderer||t instanceof THREE.Scene)){const e=void 0!==t.position?t.position:{x:0,y:0};void 0!==e.left&&void 0===e.x&&(e.x=e.left),void 0!==e.top&&void 0===e.y&&(e.y=e.top);const s=void 0!==t.width?t.width:this.config.width,i=void 0!==t.height?t.height:this.config.height;void 0!==e.right&&void 0===e.x&&(e.x=this.config.width-e.right-s),void 0!==e.bottom&&void 0===e.y&&(e.y=this.config.height-e.bottom-i),void 0===e.x&&(e.x=0),void 0===e.y&&(e.y=0),t.position=e,void 0===t.type&&(t.type="text")}}));const i=this.createOffscreenCanvas(this.config.width,this.config.height);this.context=i.getContext("2d"),this.context.save();const n=void 0!==this.config.opacity?this.config.opacity:.7,l=new THREE.MeshBasicMaterial({transparent:!0,opacity:n});this.panelSize=void 0!==this.config.panelSize?this.config.panelSize:{width:1,height:1};const r=new THREE.PlaneGeometry(this.panelSize.width,this.panelSize.height);this.mesh=new THREE.Mesh(r,l),this.texture=new THREE.CanvasTexture(i),this.mesh.material.map=this.texture,this.scene=this.config.scene;if(Object.values(this.config).filter((e=>"input-text"===e.type)).length>0){this.keyboard=new Re(this.panelSize.width,this.config.renderer);this.keyboard.mesh.position.set(0,-.3,.2),this.mesh.add(this.keyboard.mesh)}if(void 0===e)this.content={body:""},this.config.body.type="text";else{this.content=e;Object.values(t).filter((e=>"button"===e.type||"scroll"===e.overflow||"input-text"===e.type)).length>0&&(void 0===t||void 0===t.renderer?console.warn("CanvasUI: button, scroll or input-text in the config but no renderer"):(this.renderer=t.renderer,this.initControllers()))}this.selectedElements=[void 0,void 0],this.selectPressed=[!1,!1],this.scrollData=[void 0,void 0],this.intersects=[void 0,void 0],this.needsUpdate=!0,this.update()}getIntersectY(e){const t=this.config.height||512,s=this.intersects[e];return void 0===s||void 0===s.uv?0:(1-s.uv.y)*t}initControllers(){this.vec3=new THREE.Vector3,this.mat4=new THREE.Matrix4,this.raycaster=new THREE.Raycaster;const e=this;function t(t){const s=t.target===e.controller?0:1,i=e.selectedElements[s];if(void 0!==i)if("button"==i.type)e.select(s);else if("input-text"==i.type&&e.keyboard)if(e.keyboard.visible)e.keyboard.linkedUI=void 0,e.keyboard.linkedText=void 0,e.keyboard.linkedElement=void 0,e.keyboard.visible=!1;else{let t;e.keyboard.linkedUI=e,Object.entries(e.config).forEach((([e,s])=>{s==i&&(t=e)}));const s=(.5-(i.position.y+i.height+e.config.body.padding)/e.config.height)*e.panelSize.height,n=Math.max(e.panelSize.width,e.panelSize.height)/2;e.keyboard.position.set(0,-n/1.5-s,.1),e.keyboard.linkedText=e.content[t],e.keyboard.linkedName=t,e.keyboard.linkedElement=i,e.keyboard.visible=!0}}function s(t){const s=t.target===e.controller?0:1;if(e.selectPressed[s]=!0,void 0!==e.selectedElements[s]&&"scroll"==e.selectedElements[s].overflow){const t=e.selectedElements[s];e.scrollData[s]={scrollY:t.scrollY,rayY:e.getIntersectY(s)}}}function i(t){const s=t.target===e.controller?0:1;e.selectPressed[s]=!1,void 0!==e.selectedElements[s]&&"scroll"==e.selectedElements[s].overflow&&(e.scrollData[s]=void 0)}if(this.controller=this.renderer.xr.getController(0),this.controller.addEventListener("select",t),this.controller.addEventListener("selectstart",s),this.controller.addEventListener("selectend",i),this.controller1=this.renderer.xr.getController(1),this.controller1.addEventListener("select",t),this.controller1.addEventListener("selectstart",s),this.controller1.addEventListener("selectend",i),this.scene){const e=.015,t=new THREE.IcosahedronBufferGeometry(e),s=new THREE.MeshBasicMaterial({color:170}),i=new THREE.Mesh(t,s);i.visible=!1,this.scene.add(i);const n=new THREE.Mesh(t,s);n.visible=!1,this.scene.add(n),this.intersectMesh=[i,n]}}setClip(e){const t=this.context;if(t.restore(),t.save(),void 0!==e.clipPath){const s=new Path2D(e.clipPath);t.clip(s)}else{const s=void 0!==e.position?e.position:{x:0,y:0},i=e.borderRadius||0,n=e.width||this.config.width,l=e.height||this.config.height;if(t.beginPath(),0!==i){const e=Math.PI/2;t.moveTo(s.x+i,s.y),t.arc(s.x+i,s.y+i,i,e,2*e,!0),t.lineTo(s.x,s.y+l-i),t.arc(s.x+i,s.y+l-i,i,0,e,!0),t.lineTo(s.x+n-i,s.y+l),t.arc(s.x+n-i,s.y+l-i,i,3*e,4*e,!0),t.lineTo(s.x+n,s.y+i),t.arc(s.x+n-i,s.y+i,i,2*e,3*e,!0),t.closePath(),t.clip()}else t.rect(s.x,s.y,n,l),t.clip()}}setPosition(e,t,s){void 0!==this.mesh&&this.mesh.position.set(e,t,s)}setRotation(e,t,s){void 0!==this.mesh&&this.mesh.rotation.set(e,t,s)}updateElement(e,t){let s=this.content[e];void 0!==s?("object"==typeof s?s.content=t:s=t,this.content[e]=s,this.needsUpdate=!0):console.warn(`CanvasGUI.updateElement: No ${e} found`)}get panel(){return this.mesh}getElementAtLocation(e,t){const s=this,i=Object.entries(this.config).filter((([i,n])=>{if(!("object"!=typeof n||"panelSize"===i||"body"===i||n instanceof THREE.WebGLRenderer||n instanceof THREE.Scene)){const i=n.position,l=void 0!==n.width?n.width:s.config.width,r=void 0!==n.height?n.height:s.config.height;return e>=i.x&&e=i.y&&t0?(this.hover(t,s[0].uv),this.intersects[t]=s[0],this.scroll(t)):(this.hover(t),this.intersects[t]=void 0,this.scroll(t))}update(){if(void 0===this.mesh)return;if(this.controller&&this.handleController(this.controller,0),this.controller1&&this.handleController(this.controller1,1),this.keyboard&&this.keyboard.visible&&this.keyboard.update(),!this.needsUpdate)return;let e=this.context;e.clearRect(0,0,this.config.width,this.config.height);const t=this.config.body.backgroundColor?this.config.body.backgroundColor:"#000";!this.config.body.fontFamily||this.config.body.fontFamily;const s=this.config.body.fontColor?this.config.body.fontColor:"#fff";!this.config.body.fontSize||this.config.body.fontSize,this.setClip(this.config.body),e.fillStyle=t,e.fillRect(0,0,this.config.width,this.config.height);const i=this;Object.entries(this.content).forEach((([t,n])=>{const l=void 0!==i.config[t]?i.config[t]:i.config.body;if("none"!==(void 0!==l.display?l.display:"block")){const r=void 0!==l.position?l.position:{x:0,y:0},o=void 0!==l.width?l.width:i.config.width,a=void 0!==l.height?l.height:i.config.height;"button"!=l.type||n.toLowerCase().startsWith("")||(void 0===l.borderRadius&&(l.borderRadius=6),void 0===l.textAlign&&(l.textAlign="center")),i.setClip(l);const d=n.toLowerCase().startsWith(""),c=void 0!==i.selectedElements[0]&&this.selectedElements[0]===l||void 0!==i.selectedElements[1]&&this.selectedElements[1]===l;if(void 0!==l.backgroundColor&&(c&&"button"==l.type&&void 0!==l.hover?e.fillStyle=l.hover:e.fillStyle=l.backgroundColor,e.fillRect(r.x,r.y,o,a)),"text"==l.type||"button"==l.type||"input-text"==l.type){let h=!1;if(c?(d||"button"!=l.type?e.fillStyle=void 0!==l.hover?l.hover:void 0!==l.fontColor?l.fontColor:s:e.fillStyle=void 0!==l.fontColor?l.fontColor:s,h=void 0===l.hover):e.fillStyle=void 0!==l.fontColor?l.fontColor:s,d){const t=n.toUpperCase().substring(6,n.length-7);e.save(),e.translate(r.x,r.y);const s=new Path2D(t);e.fill(s),e.restore()}else i.wrapText(t,n);h&&(e.beginPath(),e.strokeStyle="#fff",e.lineWidth=2,e.rect(r.x,r.y,o,a),e.stroke())}else if("img"==l.type)if(void 0===l.img)this.loadImage(n).then((e=>{console.log(`w: ${e.width} | h: ${e.height}`),l.img=e,i.needsUpdate=!0,i.update()})).catch((e=>console.error(e)));else{const t=o/(l.img.width/l.img.height);e.drawImage(l.img,r.x,r.y,o,t)}}})),this.needsUpdate=!1,this.texture.needsUpdate=!0}loadImage(e){return new Promise(((t,s)=>{const i=new THREE.Image;i.addEventListener("load",(()=>t(i))),i.addEventListener("error",(e=>s(e))),i.src=e}))}createOffscreenCanvas(e,t){const s=document.createElement("canvas");return s.width=e,s.height=t,s}fillRoundedRect(e,t,s,i,n){const l=this.context;l.beginPath(),l.moveTo(e+n,t),l.lineTo(e+s-n,t),l.quadraticCurveTo(e+s,t,e+s,t+n),l.lineTo(e+s,t+i-n),l.quadraticCurveTo(e+s,t+i,e+s-n,t+i),l.lineTo(e+n,t+i),l.quadraticCurveTo(e,t+i,e,t+i-n),l.lineTo(e,t+n),l.quadraticCurveTo(e,t,e+n,t),l.closePath(),l.fill()}lookAt(e){void 0!==this.mesh&&(e instanceof Vector3?this.mesh.lookAt(e):console.error("CanvasUI lookAt called parameter not a THREE.Vector3"))}get visible(){return void 0!==this.mesh&&this.mesh.visible}set visible(e){this.mesh&&(this.mesh.visible=e)}get position(){if(void 0!==this.mesh)return this.mesh.position}set position(e){void 0!==this.mesh&&(e instanceof Vector3?this.mesh.position.copy(e):console.error("CanvasUI trying to set the mesh position using a parameter that is not a THREE.Vector3"))}get quaternion(){if(void 0!==this.mesh)return this.mesh.quaternion}set quaternion(e){void 0!==this.mesh&&(e instanceof QUaternion?this.mesh.quaternion.copy(e):console.error("CanvasUI trying to set the mesh quaternion using a parameter that is not a THREE.Quaternion"))}wrapText(e,t){const s=t.split(" ");let i="";const n=[],l=void 0!==this.config[e]?this.config[e]:this.config.body,r=void 0!==l.width?l.width:this.config.width,o=void 0!==l.height?l.height:this.config.height,a=void 0!==l.position?l.position:{x:0,y:0},d=void 0!==l.padding?l.padding:void 0!==this.config.body.padding?this.config.body.padding:10,c=void 0!==l.paddingTop?l.paddingTop:d,h=void 0!==l.paddingLeft?l.paddingLeft:d,p=void 0!==l.paddingBottom?l.paddingBottom:d,m=void 0!==l.paddingRight?l.paddingRight:d,u={x:a.x+h,y:a.y+c,width:r-h-m,height:o-c-p},g=void 0!==l.textAlign?l.textAlign:void 0!==this.config.body.textAlign?this.config.body.textAlign:"left",f=void 0!==l.fontSize?l.fontSize:void 0!==this.config.body.fontSize?this.config.body.fontSize:30,C=void 0!==l.fontFamily?l.fontFamily:void 0!==this.config.body.fontFamily?this.config.body.fontFamily:"Arial",b=f+(void 0!==l.leading?l.leading:void 0!==this.config.body.leading?this.config.body.leading:8),y=this.context;y.textAlign=g,y.font=`${f}px '${C}'`,s.forEach((function(e){let t=s.length>1?`${i}${e} `:e,l=y.measureText(t);if(l.width>u.width&&e.length>1)if(0==i.length&&l.width>u.width){for(;l.width>u.width;){let s=0;do{s++,t=e.substr(0,s),l=y.measureText(t)}while(l.widthu.height&&"scroll"===l.overflow){void 0===l.scrollY&&(l.scrollY=0);const e=void 0!==l.fontColor?l.fontColor:this.config.body.fontColor;y.fillStyle="#aaa",this.fillRoundedRect(a.x+r-12,a.y,12,o,6),y.fillStyle="#666";const t=u.height/v,s=t*o,i=-l.scrollY*t;this.fillRoundedRect(a.x+r-12,a.y+i,12,s,6),y.fillStyle=e,_=l.scrollY,l.minScrollY=u.height-v}let w,S=_+u.y+f/2;switch(g){case"center":w=u.x+u.width/2;break;case"right":w=u.x+u.width;break;default:w=u.x}n.forEach((e=>{S+b>0&&y.fillText(e,w,S),S+=b}))}}class Re{constructor(e,t,s="EN"){const i=this.getConfig(s);i.panelSize={width:e,height:.5*e},i.height=256,i.body={backgroundColor:"#555"},i.renderer=t;const n=this.getContent(s);this.keyboard=new Oe(n,i),this.keyboard.mesh.visible=!1,this.shift=!1}get mesh(){return this.keyboard.mesh}getConfig(e){const t={};let s=10;const i=39.2,n=49,l="#333",r="#000";let o=s,a=s;for(let e=0;e<10;e++){const d={type:"button",position:{x:a,y:o},width:i,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e)};t[`btn${e}`]=d,a+=49.2}o+=59,a=s;for(let e=0;e<10;e++){const d={type:"button",position:{x:a,y:o},width:i,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+10)};t[`btn${e+10}`]=d,a+=49.2}o+=59,a=s;for(let e=0;e<9;e++){const d=0==e||8==e?1.5*i+5:i,c={type:"button",position:{x:a,y:o},width:d,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+20)};t[`btn${e+20}`]=c,a+=d+s}o+=59,a=s;for(let e=0;e<5;e++){const d=0==e||4==e?88.4:2==e?186.8:i,c={type:"button",position:{x:a,y:o},width:d,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+30)};0==e&&(c.fontSize=20),t[`btn${e+30}`]=c,a+=d+s}return t}getContent(e,t=0){let s,i={};switch(this.language=e,this.keyboardIndex=t,t){case 0:s=["q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","@","⇧","z","x","c","v","b","n","m","⇦","","?123",","," ",".","↲"];for(let e=0;e","_","`","~",":",";","⇦","","abc",","," ",".","↲"];for(let e=0;e=0;e--){let s=t.scene.children[e];t.scene.remove(s)}else t.scene=new THREE.Scene;if(void 0!==t.scene_ghost)for(let e=t.scene_ghost.children.length-1;e>=0;e--){let s=t.scene_ghost.children[e];t.scene_ghost.remove(s)}else t.scene_ghost=new THREE.Scene;if(""!=s.htmlCls.setHtmlCls.getCookie("shininess")){let e=parseFloat(s.htmlCls.setHtmlCls.getCookie("shininess"));t.shininess!=e&&s.htmlCls.clickMenuCls.setLogCmd("set shininess "+e,!0),t.shininess=e}if(!s.bNode&&""!=s.htmlCls.setHtmlCls.getCookie("light1")){let e=parseFloat(s.htmlCls.setHtmlCls.getCookie("light1")),i=parseFloat(s.htmlCls.setHtmlCls.getCookie("light2")),n=parseFloat(s.htmlCls.setHtmlCls.getCookie("light3"));t.light1==e&&t.light2==i&&t.light3==n||s.htmlCls.clickMenuCls.setLogCmd("set light | light1 "+e+" | light2 "+i+" | light3 "+n,!0),t.light1=e,t.light2=i,t.light3=n}t.directionalLight=new THREE.DirectionalLight(16777215,t.light1),t.directionalLight2=new THREE.DirectionalLight(16777215,t.light2),t.directionalLight3=new THREE.DirectionalLight(16777215,t.light3),t.cam_z>0?(t.directionalLight.position.set(-1,1,1),t.directionalLight2.position.set(1,1,1),t.directionalLight3.position.set(1,1,-1),t.lightPos=new THREE.Vector3(-1,1,1),t.lightPos2=new THREE.Vector3(1,1,1),t.lightPos3=new THREE.Vector3(1,1,-1)):(t.directionalLight.position.set(-1,1,-1),t.directionalLight2.position.set(1,1,-1),t.directionalLight3.position.set(1,1,1),t.lightPos=new THREE.Vector3(-1,1,-1),t.lightPos2=new THREE.Vector3(1,1,-1),t.lightPos3=new THREE.Vector3(1,1,1));let i=new THREE.AmbientLight(4210752);if(t.scene.add(t.directionalLight),t.scene.add(i),void 0!==t.mdl)for(let e=t.mdl.children.length-1;e>=0;e--){let s=t.mdl.children[e];s.geometry&&s.geometry.dispose(),s.material&&s.material.dispose(),t.mdl.remove(s)}if(void 0!==t.mdlImpostor){for(let e=t.mdlImpostor.children.length-1;e>=0;e--){let s=t.mdlImpostor.children[e];s.geometry&&s.geometry.dispose(),s.material&&s.material.dispose(),t.mdlImpostor.remove(s)}t.mdlImpostor.children.length=0}s.bNode||t.renderer.renderLists.dispose(),t.mdl=new THREE.Object3D,t.mdlImpostor=new THREE.Object3D,t.scene.add(t.mdl),t.scene.add(t.mdlImpostor),t.mdl_ghost=new THREE.Object3D,t.scene_ghost.add(t.mdl_ghost),t.objects=[],t.objects_ghost=[],t.raycaster=new THREE.Raycaster,t.projector=new THREE.Projector,t.mouse=new THREE.Vector2;let n=s.parasCls.backgroundColors[t.opts.background.toLowerCase()];s.bNode||("transparent"===t.opts.background.toLowerCase()?t.renderer.setClearColor(n,0):t.renderer.setClearColor(n,1)),t.perspectiveCamera=new THREE.PerspectiveCamera(20,t.container.whratio,.1,1e4),t.perspectiveCamera.position.set(0,0,t.cam_z),t.perspectiveCamera.lookAt(new THREE.Vector3(0,0,0)),t.orthographicCamera=new THREE.OrthographicCamera,t.orthographicCamera.position.set(0,0,t.cam_z),t.orthographicCamera.lookAt(new THREE.Vector3(0,0,0)),t.cams={perspective:t.perspectiveCamera,orthographic:t.orthographicCamera}}setVrAr(){let e=this.icn3d;e.icn3dui;let t=this;e.bSetVrAr=!0,e.bVr?(e.canvasUI=this.createUI(),e.raycasterVR=new THREE.Raycaster,e.workingMatrix=new THREE.Matrix4,e.workingVector=new THREE.Vector3,e.origin=new THREE.Vector3,e.dolly=new THREE.Object3D,e.dolly.position.z=5,e.dolly.add(e.cam),e.scene.add(e.dolly),e.dollyId=e.dolly.id,e.dummyCam=new THREE.Object3D,e.cam.add(e.dummyCam),e.clock=new THREE.Clock,e.controllers=this.getControllers(),e.controllers.forEach((s=>{s.addEventListener("connected",(function(e){try{const s={},i="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",n="generic-trigger";be(e.data,i,n).then((({profile:i,assetPath:n})=>{s.name=i.profileId,s.targetRayMode=e.data.targetRayMode,Object.entries(i.layouts).forEach((([e,t])=>{const i={};Object.values(t.components).forEach((e=>{i[e.rootNodeName]=e.gamepadIndices})),s[e]=i})),t.updateControllers(s)}))}catch(e){}})),s.addEventListener("disconnected",(function(){this.remove(this.children[0]),e.controllers.forEach((e=>{}))}))}))):e.bAr&&(e.gestures=new ke(e.renderer),e.scene.add(e.gestures.controller1),e.scene.add(e.gestures.controller2),e.gestures.addEventListener("doubletap",(e=>{t.positionCenter()})),e.gestures.addEventListener("pinch",(s=>{if(void 0!==s.initialise)t.startPosition=e.mdl.position.clone(),t.startScale=e.mdl.scale.clone();else{let i=1;const n=t.startScale.clone().multiplyScalar(s.scale*i);e.mdl.scale.copy(n)}})))}positionCenter(){let e=this.icn3d;e.icn3dui;const t=e.gestures.controller1;e.mdl.position.set(-.06,0,-.6).applyMatrix4(t.matrixWorld),e.mdl.scale.copy(new THREE.Vector3(.005,.005,.005))}setVrArButtons(){let e=this.icn3d,t=e.icn3dui;e.bSetVrArButtons=!0,t.bNode||($("#"+t.pre+"VRButton").remove(),$("#"+t.pre+"viewer").get(0).appendChild(e.VRButtonCls.createButton(e.renderer)),$("#"+t.pre+"ARButton").remove(),$("#"+t.pre+"viewer").get(0).appendChild(e.ARButtonCls.createButton(e.renderer)))}updateControllers(e){this.icn3d.icn3dui,this.addEventForController(e,"right"),this.addEventForController(e,"left")}addEventForController(e,t){let s=this.icn3d;s.icn3dui;const i="right"==t?s.renderer.xr.getController(0):s.renderer.xr.getController(1),n="right"==t?e.right:e.left;if(i&&void 0!==n){let e=!1,t=!1;Object.keys(n).forEach((i=>{-1!=i.indexOf("trigger")&&(e=!0),-1!=i.indexOf("squeeze")&&(t=!0),-1==i.indexOf("thumbstick")&&-1==i.indexOf("touchpad")||(s.xAxisIndex=n[i].xAxis,s.yAxisIndex=n[i].yAxis)})),e&&(i.addEventListener("selectstart",(function(){this.userData.selectPressed=!0})),i.addEventListener("selectend",(function(){this.userData.selectPressed=!1,this.userData.selected=void 0}))),t&&(i.addEventListener("squeezestart",(function(){this.userData.squeezePressed=!0,s.cam.add(s.canvasUI.mesh)})),i.addEventListener("squeezeend",(function(){this.userData.squeezePressed=!1,s.cam.remove(s.canvasUI.mesh)})))}}createUI(){let e=this.icn3d,t=e.icn3dui,s=94,i=50,n=94,l=34,r=12,o="#1c94c4",a="#ccc",d="#fbcb09",c=20;const h={panelSize:{width:2,height:1.6},height:400,select:{type:"button",paddingTop:c,position:{top:6,left:6},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},residue:{type:"button",paddingTop:c,position:{top:62,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=2,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},secondarySelect:{type:"button",paddingTop:12,position:{top:118,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=3,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},chainSelect:{type:"button",paddingTop:c,position:{top:174,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=5,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},atom:{type:"button",paddingTop:c,position:{top:230,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=1,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},reset:{type:"button",paddingTop:c,position:{top:286,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.viewInterPairsCls.resetInteractionPairs(),e.selectionCls.resetAll(),e.cam.remove(e.canvasUI.mesh)}},togglehl:{type:"button",paddingTop:12,position:{top:342,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.hlUpdateCls.toggleHighlight(),e.cam.remove(e.canvasUI.mesh)}},style:{type:"button",paddingTop:c,position:{top:6,left:106},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},ribbon:{type:"button",paddingTop:c,position:{top:62,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","ribbon"),e.setOptionCls.setStyle("nucleotides","nucleotide cartoon"),e.cam.remove(e.canvasUI.mesh)}},schematic:{type:"button",paddingTop:c,position:{top:118,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","schematic"),e.setOptionCls.setStyle("nucleotides","schematic"),e.cam.remove(e.canvasUI.mesh)}},stick:{type:"button",paddingTop:c,position:{top:174,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","stick"),e.setOptionCls.setStyle("nucleotides","stick"),e.cam.remove(e.canvasUI.mesh)}},sphere:{type:"button",paddingTop:c,position:{top:230,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","sphere"),e.setOptionCls.setStyle("nucleotides","sphere"),e.cam.remove(e.canvasUI.mesh)}},surface:{type:"button",paddingTop:c,position:{top:286,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.opts.surface="molecular surface",e.applyMapCls.applySurfaceOptions(),e.cam.remove(e.canvasUI.mesh)}},surfaceTrn:{type:"button",paddingTop:12,position:{top:342,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.opts.surface="molecular surface",e.opts.opacity="0.2",e.applyMapCls.applySurfaceOptions(),e.cam.remove(e.canvasUI.mesh)}},color:{type:"button",paddingTop:c,position:{top:6,left:206},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},rainbow:{type:"button",paddingTop:c,position:{top:62,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","rainbow for chains"),e.cam.remove(e.canvasUI.mesh)}},atomColor:{type:"button",paddingTop:c,position:{top:118,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","atom"),e.cam.remove(e.canvasUI.mesh)}},chainColor:{type:"button",paddingTop:c,position:{top:174,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","chain"),e.cam.remove(e.canvasUI.mesh)}},secondaryColor:{type:"button",paddingTop:12,position:{top:230,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","secondary structure green"),e.cam.remove(e.canvasUI.mesh)}},charge:{type:"button",paddingTop:c,position:{top:342,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","charge"),e.cam.remove(e.canvasUI.mesh)}},AlphaFold:{type:"button",paddingTop:c,position:{top:286,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","confidence"),e.cam.remove(e.canvasUI.mesh)}},unicolor:{type:"button",paddingTop:c,position:{top:6,left:306},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},red:{type:"button",position:{top:i,left:300},width:n,height:l,fontColor:"red",hover:d,onSelect:function(){e.setOptionCls.setOption("color","red"),e.cam.remove(e.canvasUI.mesh)}},green:{type:"button",position:{top:78,left:300},width:n,height:l,fontColor:"green",hover:d,onSelect:function(){e.setOptionCls.setOption("color","green"),e.cam.remove(e.canvasUI.mesh)}},blue:{type:"button",position:{top:106,left:300},width:n,height:l,fontColor:"blue",hover:d,onSelect:function(){e.setOptionCls.setOption("color","blue"),e.cam.remove(e.canvasUI.mesh)}},blueviolet:{type:"button",position:{top:134,left:300},width:n,height:l,fontColor:"#8A2BE2",hover:d,onSelect:function(){e.setOptionCls.setOption("color","8A2BE2"),e.cam.remove(e.canvasUI.mesh)}},magenta:{type:"button",position:{top:162,left:300},width:n,height:l,fontColor:"magenta",hover:d,onSelect:function(){e.setOptionCls.setOption("color","magenta"),e.cam.remove(e.canvasUI.mesh)}},yellow:{type:"button",position:{top:190,left:300},width:n,height:l,fontColor:"yellow",hover:d,onSelect:function(){e.setOptionCls.setOption("color","yellow"),e.cam.remove(e.canvasUI.mesh)}},orange:{type:"button",position:{top:218,left:300},width:n,height:l,fontColor:"orange",hover:d,onSelect:function(){e.setOptionCls.setOption("color","FFA500"),e.cam.remove(e.canvasUI.mesh)}},cyan:{type:"button",position:{top:246,left:300},width:n,height:l,fontColor:"cyan",hover:d,onSelect:function(){e.setOptionCls.setOption("color","cyan"),e.cam.remove(e.canvasUI.mesh)}},gray:{type:"button",position:{top:274,left:300},width:n,height:l,fontColor:"gray",hover:d,onSelect:function(){e.setOptionCls.setOption("color","888888"),e.cam.remove(e.canvasUI.mesh)}},white:{type:"button",position:{top:302,left:300},width:n,height:l,fontColor:"white",hover:d,onSelect:function(){e.setOptionCls.setOption("color","white"),e.cam.remove(e.canvasUI.mesh)}},analysis:{type:"button",paddingTop:c,position:{top:6,left:406},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},distance:{type:"button",paddingTop:c,position:{top:62,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){try{e.bMeasureDistance=!0;let s=e.pickingCls.getPickedAtomList(e.pk,e.pAtom),i=e.pickingCls.getPickedAtomList(e.pk,e.pAtom2),n=e.applyCenterCls.centerAtoms(t.hashUtilsCls.hash2Atoms(s,e.atoms)).center,l=e.applyCenterCls.centerAtoms(t.hashUtilsCls.hash2Atoms(i,e.atoms)).center,r=0,o=0,a="#FFFF00",d=(n.x+l.x)/2,c=(n.y+l.y)/2,h=(n.z+l.z)/2,p=!0;e.analysisCls.addLine(n.x,n.y,n.z,l.x,l.y,l.z,a,p,"distance");let m=(parseInt(10*n.distanceTo(l))/10).toString()+" A";e.analysisCls.addLabel(m,d,c,h,r,a,o,"distance"),e.drawCls.draw(),e.cam.remove(e.canvasUI.mesh)}catch(e){}}},interaction:{type:"button",paddingTop:c,position:{top:118,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){try{e.viewInterPairsCls.viewInteractionPairs(["selected"],["non-selected"],!1,"3d",1,1,1,1,1,1),e.cam.remove(e.canvasUI.mesh)}catch(e){}}},delphi:{type:"button",paddingTop:c,position:{top:174,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:async function(){e.phisurftype=22,e.phisurfop=1,e.phisurfwf="no",await e.delphiCls.CalcPhi(65,.15,2,!0),e.cam.remove(e.canvasUI.mesh)}},removeLabel:{type:"button",paddingTop:c,position:{top:230,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){for(let t in e.labels)e.labels[t]=[];e.drawCls.draw(),e.cam.remove(e.canvasUI.mesh)}},renderer:e.renderer},p=new Oe({select:"Select",residue:"Residue",secondarySelect:"Secondary Structure",chainSelect:"Chain",atom:"Atom",reset:"Reset",togglehl:"Toggle Highlight",style:"Style",ribbon:"Ribbon",schematic:"Schematic",stick:"Stick",sphere:"Sphere",surface:"Surface",surfaceTrn:"Transparent Surface",color:"Color",rainbow:"Rainbow",atomColor:"Atom",chainColor:"Chain",secondaryColor:"Secondary Structure",AlphaFold:"AlphaFold",charge:"Charge",unicolor:"UniColor",red:"M 100 15 L 15 15 L 15 100 L 100 100 Z",green:"M 100 15 L 15 15 L 15 100 L 100 100 Z",blue:"M 100 15 L 15 15 L 15 100 L 100 100 Z",blueviolet:"M 100 15 L 15 15 L 15 100 L 100 100 Z",magenta:"M 100 15 L 15 15 L 15 100 L 100 100 Z",yellow:"M 100 15 L 15 15 L 15 100 L 100 100 Z",orange:"M 100 15 L 15 15 L 15 100 L 100 100 Z",cyan:"M 100 15 L 15 15 L 15 100 L 100 100 Z",gray:"M 100 15 L 15 15 L 15 100 L 100 100 Z",white:"M 100 15 L 15 15 L 15 100 L 100 100 Z",analysis:"Analysis",distance:"Distance",interaction:"Interaction",delphi:"DelPhi Potential",removeLabel:"Remove Label"},h);return p.mesh.position.set(0,0,-3),p}createUILog(){let e=this.icn3d;e.icn3dui;const t={panelSize:{width:2,height:2},height:512,info:{type:"text",overflow:"scroll",position:{top:6,left:6},width:506,height:506,backgroundColor:"#aaa",fontColor:"#000"},renderer:e.renderer},s=new Oe({info:"Debug info"},t);return s.mesh.position.set(0,-1,-2),s}getControllers(){let e=this.icn3d;e.icn3dui;const t=new xe,s=(new THREE.BufferGeometry).setFromPoints([new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,-1)]),i=new THREE.Line(s);i.name="line",i.scale.z=50;const n=[];for(let s=0;s<=1;s++){const l=e.renderer.xr.getController(s);if(!l)continue;e.dolly.add(l),l.add(i.clone()),l.userData.selectPressed=!1,e.cam.add(l),n.push(l);const r=e.renderer.xr.getControllerGrip(s);r.add(t.createControllerModel(r)),e.scene.add(r)}return n}}class Ee{constructor(e){this.icn3d=e}setCamera(){let e=this.icn3d,t=e.icn3dui;if(e.bControlGl&&!t.bNode){window.cam=e.cams[e.opts.camera.toLowerCase()];let s=e.maxD;if(window.cam===e.perspectiveCamera){let i=void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>e.maxatomcnt;i?window.camMaxDFactor=1:void 0!==window.camMaxDFactorFog?window.camMaxDFactor=window.camMaxDFactorFog:window.camMaxDFactor=3,window.cam_z>0?window.cam.position.z=s*window.camMaxDFactor:window.cam.position.z=-s*window.camMaxDFactor,"yes"===e.opts.slab?i?window.cam.near=.1:void 0!==window.camMaxDFactorFog?window.cam.near=s*window.camMaxDFactorFog-10:window.cam.near=s*window.camMaxDFactor:window.cam.near=.1,window.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.TrackballControls(window.cam,void 0,e):t.bNode?e.controls=new THREE.TrackballControls(e.cam,document,e):e.controls=new THREE.TrackballControls(e.cam,document.getElementById(e.id),e)}else window.cam===e.orthographicCamera&&(void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>10*e.maxatomcnt?window.cam.right=e.maxD/2*1.5:window.cam.right=e.maxD/2*2.5,window.cam.left=-window.cam.right,window.cam.top=window.cam.right/e.container.whratio,window.cam.bottom=-window.cam.right/e.container.whratio,"yes"===e.opts.slab?window.cam.near=2*e.maxD:window.cam.near=0,window.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.OrthographicTrackballControls(window.cam,void 0,e):t.bNode?e.controls=new THREE.OrthographicTrackballControls(e.cam,document,e):e.controls=new THREE.OrthographicTrackballControls(e.cam,document.getElementById(e.id),e));window.cam.updateProjectionMatrix()}e.cam=e.cams[e.opts.camera.toLowerCase()];let s=e.maxD;if(e.cam===e.perspectiveCamera){let i=void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>e.maxatomcnt;i?e.camMaxDFactor=1:void 0!==e.camMaxDFactorFog?e.camMaxDFactor=e.camMaxDFactorFog:e.camMaxDFactor=3,e.cam_z>0?e.cam.position.z=s*e.camMaxDFactor:e.cam.position.z=-s*e.camMaxDFactor,"yes"===e.opts.slab?i?e.cam.near=.1:void 0!==e.camMaxDFactorFog?e.cam.near=s*e.camMaxDFactorFog-10:e.cam.near=s*e.camMaxDFactor:e.cam.near=.1,e.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.TrackballControls(e.cam,void 0,e):t.bNode?e.controls=new THREE.TrackballControls(e.cam,document,e):e.controls=new THREE.TrackballControls(e.cam,document.getElementById(e.id),e)}else e.cam===e.orthographicCamera&&(void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>10*e.maxatomcnt?e.cam.right=e.maxD/2*1.5:e.cam.right=e.maxD/2*2.5,e.cam.left=-e.cam.right,e.cam.top=e.cam.right/e.container.whratio,e.cam.bottom=-e.cam.right/e.container.whratio,"yes"===e.opts.slab?e.cam.near=2*e.maxD:e.cam.near=0,e.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.OrthographicTrackballControls(e.cam,void 0,e):t.bNode?e.controls=new THREE.OrthographicTrackballControls(e.cam,document,e):e.controls=new THREE.OrthographicTrackballControls(e.cam,document.getElementById(e.id),e));e.cam.updateProjectionMatrix()}}class Te{constructor(e){this.icn3d=e}setFog(e){let t=this.icn3d,s=t.icn3dui.parasCls.backgroundColors[t.opts.background.toLowerCase()];if(e){let e=t.applyCenterCls.centerAtoms(t.hAtoms);t.maxD=e.maxD,t.maxD<25&&(t.maxD=25)}let i=void 0!==t.biomtMatrices&&t.biomtMatrices.length*t.cnt>t.maxatomcnt;if("yes"===t.opts.fog)if("perspective"===t.opts.camera)if(i)t.scene.fog=void 0,t.bSetFog=!1;else{let e=t._zoomFactor>1?1*t._zoomFactor:t._zoomFactor;t.scene.fog=new THREE.Fog(s,2.5*t.maxD*e,4*t.maxD*e),t.bSetFog=!0,t.camMaxDFactorFog=3}else"orthographic"===t.opts.camera&&(t.scene.fog=void 0,t.bSetFog=!1);else t.scene.fog=void 0,t.bSetFog=!1}}class Pe{constructor(e){this.icn3d=e}createBox(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(o.bNode)return;void 0===t&&(t=.8),void 0===s&&(s=!1),void 0===i&&(i=.8),l?void 0===n&&(n=r.hColor):void 0===n&&(n=e.color);let a=s?t:(o.parasCls.vdwRadii[e.elem.toUpperCase()]||t)*(i||1);this.createBox_base(e.coord,a,n,l)}createBox_base(e,t,s,i,n,l,r){let o,a=this.icn3d;a.icn3dui.bNode||(void 0===r&&(r=l?.5:1),new THREE.BoxGeometry(1,1,1),o=new THREE.Mesh(a.boxGeometry,new THREE.MeshPhongMaterial({transparent:!0,opacity:r,specular:a.frac,shininess:a.shininess,emissive:a.emissive,color:s})),o.scale.x=o.scale.y=o.scale.z=t,o.position.copy(e),a.mdl.add(o),i?a.prevHighlightObjects.push(o):n?a.prevOtherMesh.push(o):a.objects.push(o))}createBoxRepresentation_P_CA(e,t,s){let i=this.icn3d;if(i.icn3dui.bNode)return;let n=this;i.reprSubCls.createRepresentationSub(e,(function(e){"CA"!==e.name&&"O3'"!==e.name&&"O3*"!==e.name||n.createBox(e,void 0,void 0,t,void 0,s)}))}}class De{constructor(e){this.icn3d=e}createBrick(e,t,s,i){let n=this.icn3d;if(n.icn3dui.bNode)return;let l=new THREE.CylinderGeometry(1,1,1,4,1),r=new THREE.Mesh(l,new THREE.MeshPhongMaterial({specular:n.frac,shininess:n.shininess,emissive:n.emissive,color:i}));r.position.copy(e).add(t).multiplyScalar(.5),r.matrixAutoUpdate=!1,r.lookAt(t.clone().sub(e)),r.updateMatrix(),r.matrix.multiply((new THREE.Matrix4).makeScale(s,s,e.distanceTo(t))).multiply((new THREE.Matrix4).makeRotationX(.5*Math.PI)),n.mdl.add(r)}}class Me{constructor(e){this.icn3d=e}createCurveSubArrow(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u){if(this.icn3d.icn3dui.bNode)return;let g=[],f=[];g.push(e),f.push(o),this.prepareStrand(g,f,t,s,i,void 0,n,l,r,a,d,!1,c,h,p,m,u),g=[],f=[]}createStripArrow(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g){if(this.icn3d.icn3dui.bNode)return;let f=[],C=[];f.push(e),f.push(t),C.push(o),C.push(a),this.prepareStrand(f,C,void 0,s,i,n,l,void 0,r,d,c,!0,h,p,m,u,g),f=[],C=[]}prepareStrand(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g,f){let C=this.icn3d,b=C.icn3dui;if(1===d.length)return;let y=i,v=!u,_=[];_.push(i[i.length-2]),_.push(i[i.length-1]),n=n||C.axisDIV;let w,S,A,x,k=2/(a-1),O={};for(let e=0,s=t.length;e1)if(void 0!==d){let i,n,l=[];for(let r=0,o=p.length;r0&&i.tubeCls.createTube(a,"CA",i.coilWidth,s),Object.keys(d).length>0&&i.strandCls.createStrand(d,void 0,void 0,!0,0,i.helixSheetWidth,!1,2*i.ribbonthickness,s)):(Object.keys(a).length>0&&i.tubeCls.createTube(a,"CA",i.coilWidth),Object.keys(d).length>0&&i.strandCls.createStrand(d,void 0,void 0,!0,0,i.helixSheetWidth,!1,2*i.ribbonthickness))}createCylinderCurve(e,t,s,i,n){let l=this.icn3d;if(l.icn3dui.bNode)return;let r,o,a,d,c,h,p=null;for(a in e)if(d=e[a],!d.het&&(c=d.structure+"_"+d.chain,h=d.structure+"_"+r,-1!=t.indexOf(d.name))){if(null!==p&&r===d.chain&&l.ParserUtilsCls.getResiNCBI(h,o)+1===l.ParserUtilsCls.getResiNCBI(c,d.resi)&&Math.abs(p.coord.x-d.coord.x)<8&&Math.abs(p.coord.y-d.coord.y)<8&&Math.abs(p.coord.z-d.coord.z)<8){let e=p.coord.clone().add(d.coord).multiplyScalar(.5);if(n)1===n&&(this.createCylinder(p.coord,e,s,p.color,n),this.createCylinder(e,d.coord,s,d.color,n),l.sphereCls.createSphere(d,s,!0,1,n));else if(i){let t=l.lineCls.createSingleLine(p.coord,e,p.color,!1);l.mdl.add(t),l.objects.push(t),t=l.lineCls.createSingleLine(e,d.coord,d.color,!1),l.mdl.add(t),l.objects.push(t)}else this.createCylinder(p.coord,e,s,p.color),this.createCylinder(e,d.coord,s,d.color),l.sphereCls.createSphere(d,s,!0,1,n)}p=d,r=d.chain,o=d.resi,l.sphereCls.createSphere(d,s,!0,1,n),2===n&&l.boxCls.createBox(d,void 0,void 0,void 0,void 0,n)}if(null!==p&&r===d.chain&&l.ParserUtilsCls.getResiNCBI(h,o)+1===l.ParserUtilsCls.getResiNCBI(c,d.resi)&&Math.abs(p.coord.x-d.coord.x)<8&&Math.abs(p.coord.y-d.coord.y)<8&&Math.abs(p.coord.z-d.coord.z)<8){let e=p.coord.add(d.coord).multiplyScalar(.5);if(n)1===n&&(this.createCylinder(p.coord,e,s,p.color,n),this.createCylinder(e,d.coord,s,d.color,n),l.sphereCls.createSphere(d,s,!0,1,n));else if(i){let t=l.lineCls.createSingleLine(p.coord,e,p.color,!1);l.mdl.add(t),l.objects.push(t),t=l.lineCls.createSingleLine(e,d.coord,d.color,!1),l.mdl.add(t),l.objects.push(t)}else this.createCylinder(p.coord,e,s,p.color),this.createCylinder(e,d.coord,s,d.color)}}}class Le{constructor(e){this.icn3d=e}createLineRepresentation(e,t){let s=this.icn3d;if(s.icn3dui.bNode)return;let i=new THREE.BufferGeometry,n=[],l=[],r=0,o=0;s.reprSubCls.createRepresentationSub(e,void 0,(function(e,t){if(e.color===t.color)n[r++]=e.coord.x,n[r++]=e.coord.y,n[r++]=e.coord.z,n[r++]=t.coord.x,n[r++]=t.coord.y,n[r++]=t.coord.z,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b;else{let s=e.coord.clone().add(t.coord).multiplyScalar(.5);n[r++]=e.coord.x,n[r++]=e.coord.y,n[r++]=e.coord.z,n[r++]=s.x,n[r++]=s.y,n[r++]=s.z,n[r++]=t.coord.x,n[r++]=t.coord.y,n[r++]=t.coord.z,n[r++]=s.x,n[r++]=s.y,n[r++]=s.z,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b}}));if(i.setAttribute("position",new THREE.BufferAttribute(new Float32Array(n),3)),i.setAttribute("color",new THREE.BufferAttribute(new Float32Array(l),3)),2!==t){let e;1===t||(e=new THREE.LineSegments(i,new THREE.LineBasicMaterial({linewidth:s.linewidth,vertexColors:!0})),s.mdl.add(e)),1===t?s.prevHighlightObjects.push(e):s.objects.push(e)}else 2===t&&s.boxCls.createBoxRepresentation_P_CA(e,.8,t)}createConnCalphSidechain(e,t){let s=this.icn3d;if(s.icn3dui.bNode)return;let i={};for(let s in e){let n=e[s];if(!n.het&&n.style2===t){i[n.structure+"_"+n.chain+"_"+n.resi]=1}}let n=[],l=[];for(let e in i){let t=s.firstAtomObjCls.getFirstAtomObjByName(s.residues[e],"CA");if(void 0!==t)for(let e=0,i=t.bonds.length;e=t.bonds.length&&e.bonds.length>1)s=e.serial,l=e.bonds[0],d=e.bonds[1];else{if(!(t.bonds.length>=e.bonds.length&&t.bonds.length>1))return void console.log("Double bond was not drawn due to the undefined cross plane");s=t.serial,l=t.bonds[0],d=t.bonds[1]}let i=r.atoms[s].coord.clone();i.sub(r.atoms[l].coord);let n=r.atoms[s].coord.clone();n.sub(r.atoms[d].coord),i.cross(n),0==parseInt(1e4*i.length())&&(i=new THREE.Vector3(.2,.3,.5)),c=t.coord.clone(),c.sub(e.coord),c.cross(i).normalize().multiplyScalar(.2*o),0==parseInt(1e4*c.length())&&(i=new THREE.Vector3(.5,.3,.2),c.cross(i).normalize().multiplyScalar(.2*o))}e.color===t.color?r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),t.coord.clone().add(c),a,e.color,n),r.cylinderCls.createCylinder(e.coord.clone().sub(c),t.coord.clone().sub(c),a,e.color,n)):r.bImpo?r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),t.coord.clone().add(c),a,e.color,n,t.color),r.cylinderCls.createCylinder(e.coord.clone().sub(c),t.coord.clone().sub(c),a,e.color,n,t.color)):r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),i.clone().add(c),a,e.color,n),r.cylinderCls.createCylinder(t.coord.clone().add(c),i.clone().add(c),a,t.color,n),r.cylinderCls.createCylinder(e.coord.clone().sub(c),i.clone().sub(c),a,e.color,n),r.cylinderCls.createCylinder(t.coord.clone().sub(c),i.clone().sub(c),a,t.color,n))}else if(r.aromaticbonds.hasOwnProperty(l)){let s,l,d;if(e.bonds.length>t.bonds.length&&e.bonds.length>1)s=e.serial,l=e.bonds[0],d=e.bonds[1];else{if(!(t.bonds.length>1))return;s=t.serial,l=t.bonds[0],d=t.bonds[1]}let c=r.atoms[s].coord.clone();c.sub(r.atoms[l].coord);let h=r.atoms[s].coord.clone();h.sub(r.atoms[d].coord),c.cross(h);let p=t.coord.clone();p.sub(e.coord),p.cross(c).normalize().multiplyScalar(.2*o);let m=0;for(let s=0,i=e.bondOrder.length;so+1?(s=k.clone(),i=d.atoms[j[j.length-1-o-1]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random()))):U[m]&&"CA"===p.name&&(j.length>o+1?(s=k.clone(),i=d.atoms[j[j.length-1-o-1]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random())),s.normalize(),s.multiplyScalar(C),null!==I&&s.dot(I)<0&&s.negate(),I=s;for(let e=0,s=2/(t-1);e6||c&&Math.abs(S.y-c.y)>6||c&&Math.abs(S.z-c.z)>6;if((g!==p.chain||p.ssbegin||p.ssend||z||$==W&&"coil"!=p.ss)&&u[0].length>0){let c="CA",g=[],f=[];if(isNaN(d.atoms[D].resi))g=[];else{let e=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)-1).toString(),t=d.firstAtomObjCls.getAtomCoordFromResi(e,c);g=void 0!==t?[t]:[]}if(!isNaN(d.atoms[D].resi)){let e=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)+1).toString(),t=d.firstAtomObjCls.getAtomCoordFromResi(e,c);void 0!==t&&f.push(t);let s=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)+2).toString(),i=d.firstAtomObjCls.getAtomCoordFromResi(s,c);void 0!==i&&f.push(i)}if(!z){1===a||2===a?w.push(d.hColor):w.push(R),C=p.ssend&&"sheet"===p.ss?0:"coil"===E&&p.ssbegin||T&&p.ssbegin||"coil"===p.ss?n:l;let s,i,o=4;"O"===p.name?(s=A.clone(),s.sub(S)):U[m]&&"CA"===p.name&&(j.length>o?(s=S.clone(),i=d.atoms[j[j.length-1-o]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random())),s.normalize(),s.multiplyScalar(C),null!==I&&s.dot(I)<0&&s.negate(),I=s;for(let e=0,s=2/(t-1);e0){let e="CA",n=[],l=[];if(isNaN(d.atoms[D].resi))n=[];else{let t=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)-1).toString();d.firstAtomObjCls.getAtomCoordFromResi(t,e)}for(let e=0;!i&&e0&&(o!==c.chain||Math.abs(c.coord.x-h.coord.x)>6||Math.abs(c.coord.y-h.coord.y)>6||Math.abs(c.coord.z-h.coord.z)>6||r.ParserUtilsCls.getResiNCBI(c.structure+"_"+o,a)+13||Math.abs(c.coord.y-h.coord.y)>3||Math.abs(c.coord.z-h.coord.z)>3))){if(2!==i){if(!isNaN(d.resi)&&!isNaN(h.resi)){let e=d.structure+"_"+d.chain+"_"+(parseInt(d.resi)-1).toString(),i=r.firstAtomObjCls.getAtomCoordFromResi(e,t);g=void 0!==i?[i]:[];let l=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+1).toString(),o=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+2).toString(),a=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+3).toString();if(r.residues.hasOwnProperty(l)){let e=r.firstAtomObjCls.getAtomFromResi(l,t);void 0!==e&&e.ssbegin&&(l=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+2).toString(),o=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+3).toString(),p.push(e.coord),n?u.push(this.getCustomtubesize(l)):u.push(this.getRadius(s,e)),m.push(e.color))}if(1==p.length&&r.residues.hasOwnProperty(l)){let e=r.firstAtomObjCls.getAtomFromResi(l,t);if(e){p.push(e.coord),m.push(e.color);let t=this.getRadius(s,c);u.push(t),l=o,o=a}}let C=r.firstAtomObjCls.getAtomCoordFromResi(l,t);void 0!==C&&f.push(C);let b=r.firstAtomObjCls.getAtomCoordFromResi(o,t);void 0!==b&&f.push(b)}b.push({pnts:p,colors:m,radii:u,prevone:g,nexttwo:f})}p=[],m=[],u=[],g=[],f=[],d=c,C=0}if(0==p.length&&!isNaN(c.resi)){let e=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)-1).toString();r.residues.hasOwnProperty(e)&&(h=r.firstAtomObjCls.getAtomFromResi(e,t),void 0!==h&&h.ssend&&(p.push(h.coord),n?u.push(this.getCustomtubesize(e)):u.push(this.getRadius(s,h)),m.push(h.color)))}let e;p.push(c.coord),e=n?this.getCustomtubesize(c.structure+"_"+c.chain+"_"+c.resi):this.getRadius(s,c),l||"coil"==c.ss||c.ssbegin||c.ssend||(e=0),u.push(e),m.push(c.color),1===C&&(m[m.length-2]=c.color),o=c.chain,a=c.resi;let y=1.2;2!==i||c.ssbegin||r.boxCls.createBox(c,void 0,void 0,y,void 0,i),++C,h=c}if(2!==i){if(g=[],void 0!==d&&!isNaN(d.resi)){let e=d.structure+"_"+d.chain+"_"+(parseInt(d.resi)-1).toString(),s=r.firstAtomObjCls.getAtomCoordFromResi(e,t);g=void 0!==s?[s]:[]}if(f=[],void 0!==c&&!isNaN(c.resi)){let e=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+1).toString(),i=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+2).toString(),n=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+3).toString();if(1==p.length&&r.residues.hasOwnProperty(e)){let l=r.firstAtomObjCls.getAtomFromResi(e,t);if(l){p.push(l.coord),m.push(l.color);let t=this.getRadius(s,c);u.push(t),e=i,i=n}}let l=r.firstAtomObjCls.getAtomCoordFromResi(e,t);void 0!==l&&f.push(l);let o=r.firstAtomObjCls.getAtomCoordFromResi(i,t);void 0!==o&&f.push(o)}b.push({pnts:p,colors:m,radii:u,prevone:g,nexttwo:f})}for(let e=0,t=b.length;e0&&(c=n);else if(g%1==0)n=s[g],n>0&&(c=n);else{let e=Math.floor(g),t=g-e;n=s[e]*(1-t)+s[e+1]*t,r||n<1*c&&(n=0)}e1?a.parasCls.thr(t[t.length-2]):a.parasCls.thr(t[e]),C[v++]=d.r,C[v++]=d.g,C[v++]=d.b}}let k,O=0;for(let e=0,t=S.length-1;er&&(l=r,e=1);for(let t=0;t0&&t.b<=100?.01*t.b:t.b>100?1:s.coilWidth),i}}class ze{constructor(e){this.icn3d=e}drawCartoonNucleicAcid(e,t,s,i){this.drawStrandNucleicAcid(e,2,t,!0,void 0,s,i)}drawStrandNucleicAcid(e,t,s,i,n,l,r){let o,a,d,c=this.icn3d;if(c.icn3dui.bNode)return;2===r&&(t=void 0,l=void 0),n=n||c.nucleicAcidWidth,s=s||c.axisDIV,t=t||c.nucleicAcidStrandDIV;let h=[];for(d=0;dy?y=b:b=y);let v=.8*C/y;if(g.width=b,g.height=y,f.clearRect(0,0,b,y),h)if(f.fillStyle="rgba("+n.r+","+n.g+","+n.b+","+n.a+")",f.strokeStyle="rgba("+l.r+","+l.g+","+l.b+","+l.a+")",f.lineWidth=r,p){let e=.4*b;this.circle(f,0,0,b,y,e)}else{let e=0;this.roundRect(f,0,0,b,y,e)}f.font="Bold "+a+"px "+o,f.textAlign="center",f.textBaseline="middle",f.fillStyle="rgba("+u.r+", "+u.g+", "+u.b+", 1.0)",f.strokeStyle="rgba("+u.r+", "+u.g+", "+u.b+", 1.0)",f.fillText(e,.5*b,.5*y);let _=new THREE.Texture(g);_.needsUpdate=!0;let w=new THREE.SpriteMaterial({map:_,depthTest:!1,depthWrite:!1});w.map.minFilter=THREE.LinearFilter;let S=new THREE.Sprite(w);return p?S.scale.set(.3*d,.3*d,1):S.scale.set(v*d,d,1),S.renderOrder=1,S}roundRect(e,t,s,i,n,l){e.beginPath(),e.moveTo(t+l,s),e.lineTo(t+i-l,s),e.quadraticCurveTo(t+i,s,t+i,s+l),e.lineTo(t+i,s+n-l),e.quadraticCurveTo(t+i,s+n,t+i-l,s+n),e.lineTo(t+l,s+n),e.quadraticCurveTo(t,s+n,t,s+n-l),e.lineTo(t,s+l),e.quadraticCurveTo(t,s,t+l,s),e.closePath(),e.fill(),e.stroke()}circle(e,t,s,i,n,l){e.beginPath(),e.arc(t+i/2,.9*(s+n/2),l,0,2*Math.PI,!0),e.closePath(),e.fill(),e.stroke()}}class Ve{constructor(e){this.icn3d=e,this.textSpriteCls=new Ge(e)}createLabelRepresentation(e){let t=this.icn3d;t.icn3dui;let s=t.oriMaxD/100;s<.4&&(s=.4);let i=3*s*t.labelScale;for(let s in e){let n=void 0!==e[s]?e[s]:[],l="black"!=t.opts.background?t.colorWhitebkgd:t.colorBlackbkgd;for(let e=0,r=n.length;e.99999)h.set(0,0,0,1);else if(e.y<-.99999)h.set(1,0,0,0);else{let t=new THREE.Vector3;t.set(e.z,0,-e.x).normalize();let s=Math.acos(e.y);h.setFromAxisAngle(t,s)}return c.applyQuaternion(h),c.scale.set(l,n,l),c.position.copy(t),c}setPc1Axes(e){let t=this.icn3d,s=t.icn3dui;if(s.bNode)return;let i=s.hashUtilsCls.intHash(t.hAtoms,t.dAtoms),n=[],l=Object.keys(i).length<100;for(let e in i){let s=t.atoms[e],i=s.structure+"_"+s.chain+"_"+s.resi;(l||""!=i)&&n.push(s.coord.clone())}let r=s.rmsdSuprCls.getEigenForSelection(n,n.length),o=new THREE.Vector3(r.h1[0],r.h1[1],r.h1[2]);if(0==r.k&&t.bRender)return void alert("Can't determine the first principal component. Please select a subset and try it again.");let a=t.applyCenterCls.centerAtoms(i),d=a.maxD,c=a.center,h=c.clone().add(o.normalize().multiplyScalar(.4*d)),p=o.normalize();if(s.htmlCls.clickMenuCls.setLogCmd("Principle X-Axis: "+p.x.toFixed(3)+" "+p.y.toFixed(3)+" "+p.z.toFixed(3),!1),e)return p;let m=new THREE.Vector3(r.h2[0],r.h2[1],r.h2[2]),u=c.clone().add(m.normalize().multiplyScalar(.3*d)),g=new THREE.Vector3(r.h3[0],r.h3[1],r.h3[2]),f=c.clone().add(g.normalize().multiplyScalar(.3*d));this.buildAxes(void 0,c,h,u,f,!0);let C=[c,h,u,f];return t.axes.push(C),t.drawCls.draw(),C}}class Ye{constructor(e){this.icn3d=e}showGlycans(){let e=this.icn3d,t=e.icn3dui;if(t.bNode)return;let s={},i=e.dAtoms;for(let n in i){let i=e.atoms[n];i.het&&-1!=t.parasCls.glycanHash.hasOwnProperty(i.resn)&&(void 0===s[i.resn]&&(s[i.resn]={}),"Misc"!=i.chain&&(s[i.resn][i.structure+"_"+i.chain+"_"+i.resi]=1))}let n=Object.keys(s);for(let i=0,l=n.length;i>2))+i+((2&t)>>1))*c+n+(1&t)]&this.ISDONE)<=3&&(t.push(t[i]),i=t.length-1,t.push(t[n]),n=t.length-1,t.push(t[l]),l=t.length-1),s.push(i),s.push(n),s.push(l)}}},Xe.prototype.laplacianSmooth=function(e,t,s){let i,n,l,r,o,a=new Array(t.length);for(i=0,n=t.length;ithis.origextent[1][0])&&(!(tthis.origextent[1][1])&&!(sthis.origextent[1][2]))},Ke.prototype.getFacesAndVertices=function(){let e,t,s=this.verts;for(e=0,t=s.length;eh&&(h=this.pmaxy-this.pminy),this.pmaxz-this.pminz>h&&(h=this.pmaxz-this.pminz),this.scaleFactor=(c-1)/h,this.scaleFactor=this.defaultScaleFactor,this.defaultScaleFactor*h>this.threshbox&&(c=Math.floor(this.threshbox),this.scaleFactor=(this.threshbox-1)/h),this.bCalcArea&&(this.scaleFactor=this.defaultScaleFactor),this.pLength=Math.ceil(this.scaleFactor*(this.pmaxx-this.pminx))+1,this.pWidth=Math.ceil(this.scaleFactor*(this.pmaxy-this.pminy))+1,this.pHeight=Math.ceil(this.scaleFactor*(this.pmaxz-this.pminz))+1,this.boundingatom(t),this.cutRadius=this.probeRadius*this.scaleFactor,this.vpBits=new Uint8Array(this.pLength*this.pWidth*this.pHeight),this.vpDistance=new Float64Array(this.pLength*this.pWidth*this.pHeight),this.vpAtomID=new Int32Array(this.pLength*this.pWidth*this.pHeight),this.vpColor=[],this.vpPot=[]},Ke.prototype.boundingatom=function(e){let t,s,i,n,l=[];for(let r in this.vdwRadii){if(!this.vdwRadii.hasOwnProperty(r))continue;let o=this.vdwRadii[r];l[r]=e?(o+this.probeRadius)*this.scaleFactor+.5:o*this.scaleFactor+.5,i=l[r]*l[r],this.widxz[r]=Math.floor(l[r])+1,this.depty[r]=new Int32Array(this.widxz[r]*this.widxz[r]),n=0;for(let e=0;ei?this.depty[r][n]=-1:(s=Math.sqrt(i-t),this.depty[r][n]=Math.floor(s)),n++}},Ke.prototype.fillvoxels=function(e,t){let s,i,n,l;for(s=0,l=this.vpBits.length;sc&&(a=c),b>h&&(b=h),v>p&&(v=p);let _,w=g[o*m+d*u+y],S=g[a*m+d*u+y],A=g[o*m+b*u+y],x=g[o*m+d*u+v],k=g[a*m+b*u+y],O=g[o*m+b*u+v],R=g[a*m+d*u+v],I=g[a*m+b*u+v],E=r.x-o,T=r.y-d,P=r.z-y,D=((w*(1-E)+S*E)*(1-T)+(A*(1-E)+k*E)*T)*(1-P)+((x*(1-E)+R*E)*(1-T)+(O*(1-E)+I*E)*T)*P,M=s*f+i*C+n;this.vpPot[M]=D,D>this.isovalue&&(D=this.isovalue),D<-this.isovalue&&(D=-this.isovalue),D>0?(D/=1*this.isovalue,_=new THREE.Color(1-D,1-D,1)):(D/=-1*this.isovalue,_=new THREE.Color(1,1-D,1-D)),this.vpColor[M]=_}}for(s=0,l=this.vpBits.length;s=this.pLength||g>=this.pWidth||f>=this.pHeight)continue;let h=u*S+g*this.pHeight+f;if(this.vpBits[h]&this.INOUT){let p=t[this.vpAtomID[h]];p.serial!=e.serial&&(l=s+a-Math.floor(.5+this.scaleFactor*(p.x+this.ptranx)),r=i+d-Math.floor(.5+this.scaleFactor*(p.y+this.ptrany)),o=n+c-Math.floor(.5+this.scaleFactor*(p.z+this.ptranz)),a*a+d*d+c*c=this.pLength||p>=this.pWidth||m>=this.pHeight)continue;let u=h*S+p*this.pHeight+m;if(this.vpBits[u]&this.ISDONE){let h=t[this.vpAtomID[u]];h.serial!=e.serial&&(l=s+a-Math.floor(.5+this.scaleFactor*(h.x+this.ptranx)),r=i+d-Math.floor(.5+this.scaleFactor*(h.y+this.ptrany)),o=n+c-Math.floor(.5+this.scaleFactor*(h.z+this.ptranz)),a*a+d*d+c*c-1&&r-1&&a-1&&o=h)||(this.vpBits[n]|=this.ISBOUND))},Ke.prototype.fastoneshell=function(e,t){let s,i,n,l,r,o,a,d,c,h,p,m,u=[];if(0===e.length)return u;let g={ix:-1,iy:-1,iz:-1},f=this.pWidth*this.pHeight;for(a=0,c=e.length;a-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,h-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,h-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,hm&&(m=this.pmaxy-this.pminy),this.pmaxz-this.pminz>m&&(m=this.pmaxz-this.pminz),this.scaleFactor=1,this.pLength=Math.floor(.5+this.scaleFactor*(this.pmaxx-this.pminx))+1,this.pWidth=Math.floor(.5+this.scaleFactor*(this.pmaxy-this.pminy))+1,this.pHeight=Math.floor(.5+this.scaleFactor*(this.pmaxz-this.pminz))+1,this.cutRadius=this.probeRadius*this.scaleFactor,this.vpBits=new Uint8Array(this.pLength*this.pWidth*this.pHeight),this.ccp4&&(this.vpGridTrans=new Array(this.pLength*this.pWidth*this.pHeight)),this.vpAtomID=new Uint8Array(this.pLength*this.pWidth*this.pHeight)},Je.prototype.transformMemPro=function(e,t,s,i){let n=e.clone();n.sub(s);let l=n.x*t[0]+n.y*t[1]+n.z*t[2]+i.x,r=n.x*t[3]+n.y*t[4]+n.z*t[5]+i.y,o=n.x*t[6]+n.y*t[7]+n.z*t[8]+i.z;return n.x=l,n.y=r,n.z=o,n},Je.prototype.fillvoxels=function(e,t){let s,i,n,l,r,o;for(s=0,l=this.vpBits.length;sthis.pLength&&(o=this.pLength),p>this.pWidth&&(p=this.pWidth),C>this.pHeight&&(C=this.pHeight);let b,y=l[r*a+h*d+f],v=l[o*a+h*d+f],_=l[r*a+p*d+f],w=l[r*a+h*d+C],S=l[o*a+p*d+f],A=l[r*a+p*d+C],x=l[o*a+h*d+C],k=l[o*a+p*d+C],O=n.x-r,R=n.y-h,I=n.z-f,E=((y*(1-O)+v*O)*(1-R)+(_*(1-O)+S*O)*R)*(1-I)+((w*(1-O)+x*O)*(1-R)+(A*(1-O)+k*O)*R)*I;E>this.isovalue&&(E=this.isovalue),E<-this.isovalue&&(E=-this.isovalue),E>0?(E/=1*this.isovalue,b=new THREE.Color(1-E,1-E,1)):(E/=-1*this.isovalue,b=new THREE.Color(1,1-E,1-E)),this.icn3d.atoms[t[s]].color=b,this.icn3d.atomPrevColors[t[s]]=b}}else{for(let p in t){let f,C=e[t[p]];if("DUM"!==C.resn){if(void 0!==this.rmsd_supr&&void 0!==this.rmsd_supr.rot){f=this.transformMemPro(C.coord,g,u,m).applyMatrix4(c)}else f=C.coord.clone().applyMatrix4(c);for(s=Math.floor(f.x)-this.maxdist,l=Math.ceil(f.x)+this.maxdist;s<=l;++s)if(!(s<0||s>this.header.xExtent*this.scaleFactor-1))for(i=Math.floor(f.y)-this.maxdist,r=Math.ceil(f.y)+this.maxdist;i<=r;++i)if(!(i<0||i>this.header.yExtent*this.scaleFactor-1))for(n=Math.floor(f.z)-this.maxdist,o=Math.ceil(f.z)+this.maxdist;n<=o;++n){if(n<0||n>this.header.zExtent*this.scaleFactor-1)continue;let e=s*a+i*d+n;h.push(e)}}}for(s=0,l=h.length;s=this.isovalue?1:0:"fofc"==this.type?(this.vpBits[e]=this.dataArray[e]>=this.isovalue||this.dataArray[e]<=-this.isovalue?1:0,this.vpAtomID[e]=this.dataArray[e]>=0?1:0):"em"==this.type&&(this.vpBits[e]=this.dataArray[e]>=this.isovalue?1:0)}}}else for(s=0;s=this.isovalue||this.dataArray[e]<=-this.isovalue?1:0,this.vpAtomID[t]=this.dataArray[e]>=0?1:0)}for(s=0,l=this.vpBits.length;s-1&&r-1&&a-1&&o1?"Structure":"",a=Object.keys(i).length>1?"Chain":"";n+=""+o+a+"ResidueNumberSASA (Å2)Percent OutIn/Out";for(let e in l.resid2area){let d=e.lastIndexOf("_"),c=e.substr(d+1),h=r.utilsCls.getIdArray(e.substr(0,d));o=Object.keys(s).length>1?""+h[0]+"":"",a=Object.keys(i).length>1?""+h[1]+"":"";let p="",m="";l.resid2area[e]=(l.resid2area[e]/t).toFixed(2),r.parasCls.residueArea.hasOwnProperty(c)&&(m=parseInt(l.resid2area[e]/r.parasCls.residueArea[c]*100),m>100&&(m=100),m>=50&&(p="out"),m<20&&(p="in")),n+=''+o+a+""+c+''+h[2]+''+l.resid2area[e]+''+m+"%"+p+""}return n+="",void(l.areahtml=n)}let p,m,u,g=c.vertices,f=c.faces,C=r.parasCls.thr("#00FFFF"),b=r.parasCls.thr("#00FF00"),y=r.parasCls.thr("#ff0000"),v=r.parasCls.thr("#00FFFF"),_=r.parasCls.thr("#0000FF"),w=r.parasCls.thr("#FF0000");11!=t&&12!=t&&13!=t&&14!=t||void 0===l.rmsd_supr||void 0===l.rmsd_supr.rot||(p=l.rmsd_supr.rot,m=l.rmsd_supr.trans1,u=l.rmsd_supr.trans2);let S=(11==t||12==t||13==t||14==t&&"delphi"!=l.loadPhiFrom)&&void 0!==l.rmsd_supr&&void 0!==l.rmsd_supr.rot;n=new THREE.BufferGeometry;let A,x=[],k=[],O=[],R=0;for(let e=0,s=g.length;e0?-parseInt(b.z):parseInt(b.z),y.onBeforeRender=function(e,t,s,i,n,o){let a,d=new THREE.Vector3(0,0,0),c=i.getAttribute("position").array;for(let e=0,t=c.length;e0?-parseInt(a.z):parseInt(a.z)},l.mdl.add(y),11==t||12==t?l.prevMaps.push(y):13==t?l.prevEmmaps.push(y):14==t?l.prevPhimaps.push(y):l.prevSurfaces.push(y)}}else{let e=new THREE.Mesh(n,new THREE.MeshPhongMaterial({specular:l.frac,shininess:20,emissive:l.emissive,vertexColors:!0,wireframe:s,opacity:i,transparent:!0,depthWrite:10==parseInt(10*i),side:THREE.DoubleSide}));e.renderOrder=-2,l.mdl.add(e),11==t||12==t?l.prevMaps.push(e):13==t?l.prevEmmaps.push(e):14==t?l.prevPhimaps.push(e):l.prevSurfaces.push(e)}c=null,g=null,f=null,n=null}transformMemPro(e,t,s,i,n){this.icn3d.icn3dui;let l=e.clone();l.sub(s),n&&console.log("sub coord: "+JSON.stringify(l));let r=l.x*t[0]+l.y*t[1]+l.z*t[2]+i.x,o=l.x*t[3]+l.y*t[4]+l.z*t[5]+i.y,a=l.x*t[6]+l.y*t[7]+l.z*t[8]+i.z;return l.x=r,l.y=o,l.z=a,n&&console.log("out coord: "+JSON.stringify(l)),l}SetupSurface(e){let t=this.icn3d;t.icn3dui;let s=e.threshbox,i=new Ke(t,s);i.initparm(e.extent,1!==e.type,e.bCalcArea,e.atomsToShow,e.header,e.data,e.matrix,e.isovalue,e.loadPhiFrom),i.fillvoxels(e.allatoms,e.extendedAtoms),i.buildboundary(),2===e.type&&(i.fastdistancemap(),i.boundingatom(!1),i.fillvoxelswaals(e.allatoms,e.extendedAtoms));let n=i.marchingcube();i.vpBits=null,i.vpDistance=null,i.vpAtomID=null;let l=i.getFacesAndVertices(e.atomsToShow);return l.area=n.area,l.serial2area=n.serial2area,l.scaleFactor=n.scaleFactor,i.faces=null,i.verts=null,l}SetupMap(e){let t=this.icn3d;if(t.icn3dui,!e.ccp4){let s,i=new Je(t);return i.initparm(e.header,e.data,e.matrix,e.isovalue,e.center,e.maxdist,e.pmin,e.pmax,e.water,e.type,e.rmsd_supr,e.loadPhiFrom,e.icn3d),i.fillvoxels(e.allatoms,e.extendedAtoms),e.header.bSurface||i.buildboundary(),e.header.bSurface||i.marchingcube(),i.vpBits=null,i.vpAtomID=null,e.header.bSurface||(s=i.getFacesAndVertices(e.allatoms,e.atomsToShow)),i.faces=null,i.verts=null,s}{let s,i=10,n=t.center?[t.center.x,t.center.y,t.center.z]:[0,0,0];if("2fofc"==e.type){s="2fofc";let l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes");t.ccp4ParserCls.makeChickenWire(r,s),l=null,r=null}else if("fofc"==e.type){s="fofc_neg";let l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes");t.ccp4ParserCls.makeChickenWire(r,s),s="fofc_pos",l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes"),t.ccp4ParserCls.makeChickenWire(r,s),l=null,r=null}}}}class Qe{constructor(e){this.icn3d=e}applyCenterOptions(e){let t,s=this.icn3d;switch(s.icn3dui,void 0===e&&(e=s.opts),e.rotationcenter.toLowerCase()){case"molecule center":void 0!==s.center&&this.setRotationCenter(s.center);break;case"pick center":void 0!==s.pAtom&&this.setRotationCenter(s.pAtom.coord);break;case"display center":t=this.centerAtoms(s.dAtoms).center,this.setRotationCenter(t);break;case"highlight center":t=this.centerAtoms(s.hAtoms).center,this.setRotationCenter(t)}}setRotationCenter(e){this.icn3d.icn3dui,this.setCenter(e)}setCenter(e){let t=this.icn3d;t.icn3dui,t.mdl.position.set(0,0,0),t.mdlImpostor.position.set(0,0,0),t.mdl_ghost.position.set(0,0,0),t.mdl.position.sub(e),t.mdlImpostor.position.sub(e),t.mdl_ghost.position.sub(e)}centerSelection(e,t){let s=this.icn3d,i=s.icn3dui;if(s.opts.rotationcenter="highlight center",void 0===e&&(e=i.hashUtilsCls.hash2Atoms(s.hAtoms,s.atoms)),t||(s._zoomFactor=1,s.mouseChange=new THREE.Vector2(0,0),s.quaternion=new THREE.Quaternion(0,0,0,1)),Object.keys(e).length>1){let t=this.centerAtoms(e);s.center=t.center,this.setCenter(s.center),s.cameraCls.setCamera()}}centerAtoms(e){let t=this.icn3d;t.icn3dui;let s=new THREE.Vector3(9999,9999,9999),i=new THREE.Vector3(-9999,-9999,-9999),n=new THREE.Vector3;for(let l in e){let e=t.atoms[l].coord;n.add(e),s.min(e),i.max(e)}let l=t.ParserUtilsCls.getGeoCenter(s,i);return{center:l,maxD:t.ParserUtilsCls.getStructureSize(e,s,i,l),pmin:s,pmax:i}}setWidthHeight(e,t){let s=this.icn3d;s.icn3dui,void 0===s.scaleFactor&&(s.scaleFactor=1),s.renderer.setSize(e*s.scaleFactor,t*s.scaleFactor),s.renderer.domElement.style.width=e*s.scaleFactor+"px",s.renderer.domElement.style.height=t*s.scaleFactor+"px",s.renderer.domElement.width=e*s.scaleFactor,s.renderer.domElement.height=t*s.scaleFactor,s.container.whratio=e/t}}class et{constructor(e){this.icn3d=e}applyClbondsOptions(e){let t=this.icn3d,s=t.icn3dui;if(void 0===e&&(e=t.opts),t.bCalcCrossLink||(t.clbondpnts={},t.clbondResid2serial={},this.applyClbondsOptions_base("chemical"),this.applyClbondsOptions_base("all"),t.bCalcCrossLink=!0),"yes"===e.clbonds.toLowerCase()&&"nothing"!==e.chemicals){let e="#006400";if(s.parasCls.thr(25600),t.lines.clbond=[],t.residuesHashClbonds={},t.structures){let i=Object.keys(t.structures);for(let n=0,l=i.length;n1&&"sphere"!==a[Object.keys(a)[0]].style&&"dot"!==a[Object.keys(a)[0]].style){if(void 0===i.bCid||!i.bCid)for(let e in a){let t=a[e],n=1;i.boxCls.createBox(t,void 0,void 0,n,void 0,s)}}else for(let e in o){let l=i.firstAtomObjCls.getFirstCalphaAtomObj(i.residues[e]),r=l,o=r.structure+"_"+r.chain+"_"+(parseInt(r.resi)-1).toString(),a=r.structure+"_"+r.chain+"_"+(parseInt(r.resi)+1).toString();if("cylinder and plate"===r.style&&"helix"===r.ss)for(let t in i.residues[e]){let e=i.atoms[t],n=1;i.boxCls.createBox(e,void 0,void 0,n,void 0,s)}else if("ribbon"===r.style&&"coil"===r.ss||"strand"===r.style&&"coil"===r.ss||"o3 trace"===r.style||"schematic"===r.style||"c alpha trace"===r.style||"b factor tube"===r.style||"cylinder and plate"===r.style&&"helix"!==r.ss){if(void 0!==l&&void 0!==l.style2&&"nothing"!==l.style2)continue;let e=!1;if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(a)){let s=Object.keys(i.residues[a])[0],l=n.hashUtilsCls.hash2Atoms(i.residues[a],i.atoms)[s];if(r.style===l.style&&!l.ssbegin||l.ssbegin){let s=i.residues[a];if(t=n.hashUtilsCls.unionHash(t,s),e=!0,l.ssbegin)for(let e in s)i.atoms[e].notshow=!0}}if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(o)){let s=Object.keys(i.residues[o])[0],l=n.hashUtilsCls.hash2Atoms(i.residues[o],i.atoms)[s];r.style===l.style&&(t=n.hashUtilsCls.unionHash(t,i.residues[o]),e=!0)}}else if("ribbon"===r.style&&"coil"!==r.ss&&r.ssend||"strand"===r.style&&"coil"!==r.ss&&r.ssend){if(void 0!==l&&void 0!==l.style2&&"nothing"!==l.style2)continue;let e=!1;if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(a)){let s=Object.keys(i.residues[a])[0];n.hashUtilsCls.hash2Atoms(i.residues[a],i.atoms)[s],t=n.hashUtilsCls.unionHash(t,i.residues[a]),e=!0}}}a={}}if(i.bInitial&&void 0===i.bMembrane){if(""!=n.htmlCls.setHtmlCls.getCookie("membrane")){let e=parseInt(n.htmlCls.setHtmlCls.getCookie("membrane"));i.bMembrane!=e&&n.htmlCls.clickMenuCls.setLogCmd("set membrane "+e,!0),i.bMembrane=isNaN(e)?0:parseInt(e)}i.bMembrane?i.selectionCls.toggleMembrane(!0):i.selectionCls.toggleMembrane(!1)}i.setStyleCls.setStyle2Atoms(t);let d=.5*i.cylinderRadius;void 0!==i.labels&&delete i.labels.schematic;for(let e in i.style2atoms){let t=i.style2atoms[e],l=n.hashUtilsCls.intHash(t,i.nucleotides),r=n.utilsCls.isCalphaPhosOnly(n.hashUtilsCls.hash2Atoms(l,i.atoms));if("ribbon"===e)i.strandCls.createStrand(n.hashUtilsCls.hash2Atoms(t,i.atoms),2,void 0,!0,void 0,void 0,!1,i.ribbonthickness,s);else if("strand"===e)i.strandCls.createStrand(n.hashUtilsCls.hash2Atoms(t,i.atoms),null,null,null,null,null,!1,void 0,s);else if("cylinder and plate"===e)i.cylinderCls.createCylinderHelix(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderHelixRadius,s);else if("nucleotide cartoon"===e)r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):(i.cartoonNuclCls.drawCartoonNucleicAcid(n.hashUtilsCls.hash2Atoms(t,i.atoms),null,i.ribbonthickness,s),2!==s&&i.cartoonNuclCls.drawNucleicAcidStick(n.hashUtilsCls.hash2Atoms(t,i.atoms),s));else if("o3 trace"===e)r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["O3'","O3*"],i.traceRadius,!1,s);else if("schematic"===e){let e=i.firstAtomObjCls.getFirstAtomObj(t);if(i.chemicals.hasOwnProperty(e.serial)){i.residueLabelsCls.addNonCarbonAtomLabels(n.hashUtilsCls.hash2Atoms(t,i.atoms));let e=!0;i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),d,d,void 0,s,e)}else i.residueLabelsCls.addResidueLabels(n.hashUtilsCls.hash2Atoms(t,i.atoms),!0),r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["O3'","O3*"],i.traceRadius,!1,s),i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["CA"],i.traceRadius,!1,s)}else"c alpha trace"===e?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["CA"],i.traceRadius,!1,s):"b factor tube"===e?i.tubeCls.createTube(n.hashUtilsCls.hash2Atoms(t,i.atoms),"CA",null,s,!1,!0):"custom tube"===e?i.tubeCls.createTube(n.hashUtilsCls.hash2Atoms(t,i.atoms),"CA",null,s,!0,!0):"lines"===e||"lines2"===e?(1===s?i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.hlLineRadius,i.hlLineRadius,void 0,s):i.lineCls.createLineRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),s),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"stick"===e||"stick2"===e?(i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,i.cylinderRadius,void 0,s,void 0),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"backbone"===e?(t=this.selectMainChainSubset(t),i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,i.cylinderRadius,void 0,s,void 0)):"ball and stick"===e||"ball and stick2"===e?(i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,.5*i.cylinderRadius,i.dotSphereScale,s,void 0),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"sphere"===e||"sphere2"===e?i.sphereCls.createSphereRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.sphereRadius,void 0,void 0,s):"dot"===e&&i.sphereCls.createSphereRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.sphereRadius,!1,i.dotSphereScale,s)}if(i.cnt>i.maxmaxatomcnt&&i.init_base(),void 0!==i.labels&&Object.keys(i.labels).length>0){i.labelCls.hideLabels();for(let e in i.labels)"schematic"!=e&&this.changeLabelColor(i.labels[e]);i.labelCls.createLabelRepresentation(i.labels)}}changeLabelColor(e){let t=this.icn3d;if(t.icn3dui,e)for(let s=0,i=e.length;s0){this.updateStabilizer();let e="#FFFFFF",s=t.stabilizerpnts;t.lines.stabilizer=[];for(let i=0,n=Math.floor(s.length/2);i0)for(let e=0,s=t.distPnts.length;e0&&t.applySymdCls.applySymd(),void 0!==t.prevOtherMesh)for(let e=0,s=t.prevOtherMesh.length;e0&&(e=s.hashUtilsCls.hash2Atoms(t.chemicals,t.atoms));let i=4;if(void 0!==e){let n=t.contactCls.getAtomsWithinAtom(t.atoms,e,i),l=3.5;t.opts.hbonds="yes",Object.keys(n).length>0&&t.hBondCls.calculateChemicalHbonds(e,n,parseFloat(l)),t.bSetFog||t.transformCls.zoominSelection(s.hashUtilsCls.unionHash(e,n))}}else"hide"===e.chemicalbinding&&(t.hBondCls.hideHbonds(),t.showInterCls.hideExtraBonds(),t.bSetFog||t.transformCls.zoominSelection(t.atoms))}updateStabilizer(){let e=this.icn3d;if(e.icn3dui,e.stabilizerpnts=[],void 0!==e.pairArray)for(let t=0,s=e.pairArray.length;t=0;i--){let r=t.ssbondpnts[e][2*i],o=t.ssbondpnts[e][2*i+1],a={};a.color=n,a.dashed=!1;let d=[],c=[],h=[],p=[],m=!1,u=!1;for(let e in t.residues[r])"SG"===t.atoms[e].name&&(h.push(t.atoms[e].coord),d.push(t.atoms[e].serial),m=!0);if(!m)for(let e in t.residues[r])if("CA"===t.atoms[e].name){h.push(t.atoms[e].coord),d.push(t.atoms[e].serial),m=!0,u=!0;break}m=!1;for(let e in t.residues[o])"SG"===t.atoms[e].name&&(p.push(t.atoms[e].coord),c.push(t.atoms[e].serial),m=!0);if(!m)for(let e in t.residues[o])if("CA"===t.atoms[e].name){p.push(t.atoms[e].coord),c.push(t.atoms[e].serial),m=!0,u=!0;break}let g=u?7:3,f=!1;for(let e=0,t=h.length;e1&&(l=!0)}if(t)if(l){let t=Object.keys(r)[0];e=i.chains[t]}else{0==Object.keys(i.hAtoms).length&&(i.hAtoms=n.hashUtilsCls.cloneHash(i.dAtoms));let t,s=parseInt(Object.keys(i.hAtoms).length/u),l=0;for(let n in i.hAtoms)if(e[n]=1,t=n,++l,l>s)break;let r=i.atoms[t].structure+"_"+i.atoms[t].chain+"_"+i.atoms[t].resi;e=n.hashUtilsCls.unionHash(e,i.residues[r])}else{let t=Object.keys(i.structures)[0]+"_"+g;if(i.chains.hasOwnProperty(t)||(t=Object.keys(i.structures)[0]+"_"+g.toLowerCase()),!i.chains.hasOwnProperty(t)){t=Object.keys(i.chains)[0];for(let e in i.chains){let s=Object.keys(i.chains[e])[0];if(i.proteins.hasOwnProperty(s)){t=e;break}}}e=i.chains[t]}let a=s.clone().add(h).multiplyScalar(.5),c=new THREE.Vector3,p=0,f=h.clone().sub(s).normalize(),C=new THREE.Vector3(0,0,1),b=new THREE.Quaternion;b.setFromUnitVectors(f,C);let y=-9999;for(let t in e){let e=i.atoms[t].coord.clone();c.add(e),e.sub(a).applyQuaternion(b);let s=e.x*e.x+e.y*e.y;s>y&&(y=s),++p}let v=i.ParserUtilsCls.getMassCenter(c,p),_=new THREE.Line3(s,h),w=new THREE.Vector3;_.closestPointToPoint(v,!0,w);let S,A,x,k,O=Math.sqrt(y),R=v.clone().sub(w).normalize().multiplyScalar(O),I=a.clone().add(s.clone().sub(a).multiplyScalar(.83)).add(R),E=a.clone().add(h.clone().sub(a).multiplyScalar(.83)).add(R),T=2*Math.PI/o;for(let e=0;et&&(i.sphereCls.createSphereBase(r,m,d,1,0),i.cylinderCls.createCylinder(e,r,d,m,0),i.cylinderCls.createCylinder(s,r,d,m,0),void 0!==n&&i.cylinderCls.createCylinder(c[n],r,d,m,0),n=l)}}else if("O"==r)for(let e=0,t=c.length;e0&&(e.mdl.remove(e.prevSurfaces[e.prevSurfaces.length-1]),e.prevSurfaces.slice(e.prevSurfaces.length-1,1))}removeMaps(){let e=this.icn3d;e.icn3dui;for(let t=0,s=e.prevMaps.length;t0&&(e.mdl.remove(e.prevMaps[e.prevMaps.length-1]),e.prevMaps.slice(e.prevMaps.length-1,1))}removeLastEmmap(){let e=this.icn3d;e.icn3dui,e.prevEmmaps.length>0&&(e.mdl.remove(e.prevEmmaps[e.prevEmmaps.length-1]),e.prevEmmaps.slice(e.prevEmmaps.length-1,1))}removeLastPhimap(){let e=this.icn3d;e.icn3dui,e.prevPhimaps.length>0&&(e.mdl.remove(e.prevPhimaps[e.prevPhimaps.length-1]),e.prevPhimaps.slice(e.prevPhimaps.length-1,1))}}class ot{constructor(e){this.icn3d=e}addResidueLabels(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui;if(r.bNode)return;let o=r.hashUtilsCls.intHash(l.hAtoms,e);t?void 0===l.labels.schematic&&(l.labels.schematic=[]):void 0===l.labels.residue&&(l.labels.residue=[]);let a="";for(let e in o){let s=l.atoms[e],o={},d=s.structure+"_"+s.chain+"_"+s.resi;if(!s.het&&("CA"===s.name||"O3'"===s.name||"O3*"===s.name)||l.water.hasOwnProperty(s.serial)||l.ions.hasOwnProperty(s.serial)||l.chemicals.hasOwnProperty(s.serial)&&d!==a){if(o.position=s.coord,o.bSchematic=0,t&&(o.bSchematic=1),o.text=r.utilsCls.residueName2Abbr(s.resn),i)o.text+=s.resi;else if(n){let e=s.structure+"_"+s.chain+"_"+s.resi,t="";l.resid2refnum[e]&&(t=" "==l.resid2refnum[e].substr(0,1)?"":l.resid2refnum[e]),o.text=t}o.size=18,o.factor=.3;let e=s.color.getHexString().toUpperCase();o.color=i?"black"!=l.opts.background?l.colorWhitebkgd:l.colorBlackbkgd:n?"#00FFFF":"CCCCCC"===e||"C8C8C8"===e?"#888888":"#"+e,o.background="#FFFFFF",t?l.labels.schematic.push(o):l.labels.residue.push(o)}a=d}l.hlObjectsCls.removeHlObjects()}addIgLabels(e){let t=this.icn3d;if(t.icn3dui.bNode)return;t.labels.ig=[];let s=t.firstAtomObjCls.getChainsFromAtoms(e);for(let e in t.igLabel2Pos)if(s.hasOwnProperty(e))for(let s in t.igLabel2Pos[e]){let i={};i.position=t.igLabel2Pos[e][s],i.text=s,i.size=60,i.color="#00FFFF",t.labels.ig.push(i)}t.hlObjectsCls.removeHlObjects()}addNonCarbonAtomLabels(e){let t=this.icn3d,s=t.icn3dui;if(s.bNode)return;let i=s.hashUtilsCls.intHash(t.hAtoms,e);void 0===t.labels.schematic&&(t.labels.schematic=[]);for(let e in i){let s=t.atoms[e];if(!t.residues.hasOwnProperty(s.structure+"_"+s.chain+"_"+s.resi))continue;if("C"===s.elem)continue;let i={};i.position=s.coord,i.bSchematic=1,i.text=s.elem,i.size=18,i.color="black"!=t.opts.background?t.colorWhitebkgd:s.color.getHexString(),i.background="#FFFFFF",t.labels.schematic.push(i)}t.hlObjectsCls.removeHlObjects()}addAtomLabels(e,t){let s=this.icn3d,i=s.icn3dui;if(i.bNode)return;let n=i.hashUtilsCls.intHash(s.hAtoms,e);n=i.hashUtilsCls.intHash(s.dAtoms,n),void 0===s.labels.residue&&(s.labels.residue=[]);for(let e in n){let i=s.atoms[e],n={};n.position=i.coord,n.bSchematic=0,n.text=t?i.elem:i.name.padEnd(2," "),n.size=18,t&&(n.bSchematic=!0);let l=i.color.getHexString().toUpperCase();n.color="black"!=s.opts.background?s.colorWhitebkgd:s.colorBlackbkgd,t&&(n.color="CCCCCC"===l||"C8C8C8"===l?"#888888":"#"+l),n.background="#FFFFFF",s.labels.residue.push(n)}s.hlObjectsCls.removeHlObjects()}}class at{constructor(e){this.icn3d=e}onBeforeRender(e,t,s,i,n,l){let r=n.uniforms,o=[];if(r.objectId&&(r.objectId.value=SupportsReadPixelsFloat?this.id:this.id/255,o.push("objectId")),(r.modelViewMatrixInverse||r.modelViewMatrixInverseTranspose||r.modelViewProjectionMatrix||r.modelViewProjectionMatrixInverse)&&this.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,this.matrixWorld),r.modelViewMatrixInverse&&(r.modelViewMatrixInverse.value.copy(this.modelViewMatrix).invert(),o.push("modelViewMatrixInverse")),r.modelViewMatrixInverseTranspose&&(r.modelViewMatrixInverse?r.modelViewMatrixInverseTranspose.value.copy(r.modelViewMatrixInverse.value).transpose():r.modelViewMatrixInverseTranspose.value.copy(this.modelViewMatrix).invert().transpose(),o.push("modelViewMatrixInverseTranspose")),r.modelViewProjectionMatrix&&(s.updateProjectionMatrix(),r.modelViewProjectionMatrix.value.multiplyMatrices(s.projectionMatrix,this.modelViewMatrix),o.push("modelViewProjectionMatrix")),r.modelViewProjectionMatrixInverse){let e=new THREE.Matrix4;r.modelViewProjectionMatrix?(e.copy(r.modelViewProjectionMatrix.value),r.modelViewProjectionMatrixInverse.value.copy(e).invert()):(s.updateProjectionMatrix(),e.multiplyMatrices(s.projectionMatrix,this.modelViewMatrix),r.modelViewProjectionMatrixInverse.value.copy(e).invert()),o.push("modelViewProjectionMatrixInverse")}if(r.projectionMatrix&&(s.updateProjectionMatrix(),r.projectionMatrix.value.copy(s.projectionMatrix),o.push("projectionMatrix")),r.projectionMatrixInverse&&(s.updateProjectionMatrix(),r.projectionMatrixInverse.value.copy(s.projectionMatrix).invert(),o.push("projectionMatrixInverse")),o.length){let t=e.properties.get(n);if(t.program){let s=e.getContext(),i=t.program;s.useProgram(i.program);let n=i.getUniforms();o.forEach((function(e){n.setValue(s,e,r[e].value)}))}}}setParametersForShader(e){let t,s=this.icn3d,i=s.icn3dui.parasCls.backgroundColors[s.opts.background.toLowerCase()],n=2.5*s.maxD,l=4*s.maxD,r=void 0!==s.biomtMatrices&&s.biomtMatrices.length*s.cnt>s.maxatomcnt;"yes"===s.opts.slab?r?t=.1:void 0!==s.camMaxDFactorFog?(t=s.maxD*s.camMaxDFactorFog-10,n=2.5*s.maxD-t<0?0:2.5*s.maxD-t,l=4*s.maxD-t):t=s.maxD*s.camMaxDFactor:t=.1;let o=void 0!==e?e:1,a=s.shininess/100*.5;s.uniforms=THREE.UniformsUtils.merge([THREE.UniformsLib.common,{modelViewMatrix:{value:new THREE.Matrix4},modelViewMatrixInverse:{value:new THREE.Matrix4},modelViewMatrixInverseTranspose:{value:new THREE.Matrix4},modelViewProjectionMatrix:{value:new THREE.Matrix4},modelViewProjectionMatrixInverse:{value:new THREE.Matrix4},projectionMatrix:{value:new THREE.Matrix4},projectionMatrixInverse:{value:new THREE.Matrix4},diffuse:{type:"v3",value:[1,1,1]},emissive:{type:"v3",value:[.06,.06,.06]},roughness:{type:"f",value:.5},metalness:{type:"f",value:a},opacity:{type:"f",value:o},nearClip:{type:"f",value:t},ortho:{type:"f",value:0},shrink:{type:"f",value:.13},fogColor:{type:"v3",value:[i.r,i.g,i.b]},fogNear:{type:"f",value:n},fogFar:{type:"f",value:l},fogDensity:{type:"f",value:2}},THREE.UniformsLib.ambient,THREE.UniformsLib.lights]),s.defines={USE_COLOR:1,NEAR_CLIP:1,CAP:1},"yes"!==s.opts.fog||r||(s.defines.USE_FOG=1,"orthographic"===s.opts.camera&&(s.defines.FOG_EXP2=1)),s.bExtFragDepth&&(s.defines.USE_LOGDEPTHBUF_EXT=1)}drawImpostorShader(){this.icn3d.icn3dui.bNode||(this.setParametersForShader(),this.createImpostorShaderSphere("SphereImpostor"),this.createImpostorShaderCylinder("CylinderImpostor"))}getShader(e){this.icn3d.icn3dui;let t=$NGL_shaderTextHash[e];return t=t.replace(/#include\s+(\S+)/gim,(function(e,t){let s;return THREE.ShaderChunk.hasOwnProperty(t)&&(s=THREE.ShaderChunk[t]),s||""})),t}createImpostorShaderBase(e,t,s,i,n,l,r,o,a){let d=this.icn3d;d.icn3dui;let c=new THREE.ShaderMaterial({defines:d.defines,uniforms:d.uniforms,vertexShader:this.getShader(e+".vert"),fragmentShader:this.getShader(e+".frag"),depthTest:!0,depthWrite:!0,lights:!0});c.extensions.fragDepth=!0,"CylinderImpostor"==e?d.CylinderImpostorMaterial=c:"SphereImpostor"==e&&(d.SphereImpostorMaterial=c);let h,p,m=l*r,u=l*o,g=new(m>65535?Uint32Array:Uint16Array)(u);for(let e=0;e=0;t--){let s=a.children[t];s.onBeforeRender=e.impostorCls.onBeforeRender,s.frustumCulled=!1}l.add(a)}void 0!==e.mdl_ghost&&(a=e.mdl_ghost.clone(),this.applyMat(a,d),r.add(a));let c=e.center.clone();this.applyMat(c,d,!0),s.add(c),++t}e.mdl.add(n),e.mdlImpostor.add(l),e.mdl_ghost.add(r),void 0!==e.bSetInstancing&&e.bSetInstancing?(e.maxD=e.maxDAssembly,e.center=e.centerAssembly.clone(),e.applyCenterCls.setCenter(e.center),e.cameraCls.setCamera()):(e.maxD*=Math.sqrt(t),e.center=e.ParserUtilsCls.getMassCenter(s,t),e.maxDAssembly=e.maxD,e.centerAssembly=e.center.clone(),e.applyCenterCls.setCenter(e.center),e.cameraCls.setCamera()),e.bSetInstancing=!0}createInstancedGeometry(e){let t=this.icn3d,s=t.icn3dui,i=e.geometry,n=new THREE.InstancedBufferGeometry,l=[],r=[],o=[],a=[],d=[],c=[],h=[],p=[];if(t.bImpo&&"Cylinder"==e.type){t.instancedMaterial=this.getInstancedMaterial("CylinderInstancing");let e=s.hashUtilsCls.hashvalue2array(i.attributes.position1.array),r=s.hashUtilsCls.hashvalue2array(i.attributes.color.array),m=s.hashUtilsCls.hashvalue2array(i.attributes.position2.array),u=s.hashUtilsCls.hashvalue2array(i.attributes.color2.array),g=s.hashUtilsCls.hashvalue2array(i.index.array),f=s.hashUtilsCls.hashvalue2array(i.attributes.radius.array),C=s.hashUtilsCls.hashvalue2array(i.attributes.mapping.array);l=l.concat(e),o=o.concat(r),h=h.concat(m),p=p.concat(u),a=a.concat(g),d=d.concat(f),c=c.concat(C),n.setAttribute("position1",new THREE.BufferAttribute(new Float32Array(l),3)),n.setAttribute("color",new THREE.BufferAttribute(new Float32Array(o),3)),n.setAttribute("position2",new THREE.BufferAttribute(new Float32Array(h),3)),n.setAttribute("color2",new THREE.BufferAttribute(new Float32Array(p),3)),n.setAttribute("radius",new THREE.BufferAttribute(new Float32Array(d),1)),n.setAttribute("mapping",new THREE.BufferAttribute(new Float32Array(c),3)),n.setIndex(new THREE.BufferAttribute(new Uint32Array(a),1)),e=null,r=null,m=null,u=null,g=null,f=null,C=null}else if(t.bImpo&&"Sphere"==e.type){t.instancedMaterial=this.getInstancedMaterial("SphereInstancing");let e=s.hashUtilsCls.hashvalue2array(i.attributes.position.array),r=s.hashUtilsCls.hashvalue2array(i.attributes.color.array),h=s.hashUtilsCls.hashvalue2array(i.index.array),p=s.hashUtilsCls.hashvalue2array(i.attributes.radius.array),m=s.hashUtilsCls.hashvalue2array(i.attributes.mapping.array);l=l.concat(e),o=o.concat(r),a=a.concat(h),d=d.concat(p),c=c.concat(m),n.setAttribute("position",new THREE.BufferAttribute(new Float32Array(l),3)),n.setAttribute("color",new THREE.BufferAttribute(new Float32Array(o),3)),n.setAttribute("radius",new THREE.BufferAttribute(new Float32Array(d),1)),n.setAttribute("mapping",new THREE.BufferAttribute(new Float32Array(c),2)),n.setIndex(new THREE.BufferAttribute(new Uint32Array(a),1)),e=null,r=null,h=null,p=null,m=null}else{t.instancedMaterial=this.getInstancedMaterial("Instancing");let e=i.attributes.position?s.hashUtilsCls.hashvalue2array(i.attributes.position.array):[],d=i.attributes.normal?s.hashUtilsCls.hashvalue2array(i.attributes.normal.array):[],c=i.attributes.color?s.hashUtilsCls.hashvalue2array(i.attributes.color.array):[],h=i.index?s.hashUtilsCls.hashvalue2array(i.index.array):[];l=l.concat(e),r=r.concat(d),o=o.concat(c),a=a.concat(h);let p=[],m="CylinderGeometry"==i.type?1:0;for(let e=0,t=l.length/3;e0&&(e.dAtoms=t.hashUtilsCls.cloneHash(s)),e.bShowHighlight=!1}e.applyMapCls.removeSurfaces(),e.applyMapCls.applySurfaceOptions(),e.applyMapCls.removeMaps(),e.applyMapCls.applyMapOptions(),e.applyMapCls.removeEmmaps(),e.applyMapCls.applyEmmapOptions(),e.applyMapCls.removePhimaps(),e.applyMapCls.applyPhimapOptions(),e.applyMapCls.removeSurfaces(),e.applyMapCls.applyphisurfaceOptions(),e.axes=[],e.pc1&&e.axesCls.setPc1Axes(),e.opts.rotationcenter="highlight center",e.drawCls.draw(),e.bShowHighlight=!0}async alternateWrapper(){let e=this.icn3d;e.icn3dui,e.bAlternate=!0,await this.alternateStructures(),e.bAlternate=!1}}class ht{constructor(e){this.icn3d=e}draw(e){let t=this.icn3d,s=t.icn3dui;if(t.impostorCls.clearImpostors(),!t.bRender||t.hAtoms&&0!=Object.keys(t.hAtoms)||(t.hAtoms=s.hashUtilsCls.cloneHash(t.atoms)),t.sceneCls.rebuildScene(),t.bImpo&&t.impostorCls.drawImpostorShader(),t.setColorCls.applyPrevColor(),void 0!==t.biomtMatrices&&t.biomtMatrices.length>1)if(t.bAssembly&&1==Object.keys(t.structures).length&&(void 0===s.cfg.mmdbid&&1==s.cfg.bu||void 0!==s.cfg.mmdbid&&1==s.cfg.bu&&Object.keys(t.atoms).length*t.biomtMatrices.length>t.maxatomcnt))t.instancingCls.drawSymmetryMates();else{let e=!0;t.applyCenterCls.centerSelection(void 0,e)}let i=void 0!==t.hAtoms?Object.keys(t.hAtoms).length:0;if(i>0&&i0){e.children[0].scale.z=t[0].distance,t[0].point.sub(r.mdl.position);let s=r.rayThreshold,i=r.rayCls.getAtomsFromPosition(t[0].point,s);for(;!i&&s<10;)s+=.5,i=r.rayCls.getAtomsFromPosition(t[0].point,s);i&&(r.pAtomNum%2==0?r.pAtom=i:r.pAtom2=i,++r.pAtomNum,this.showPickingVr(r.pk,i))}}}}catch(e){}}showPickingVr(e,t){let s=this.icn3d;s.icn3dui,e||(e=2),s.hAtoms=s.pickingCls.getPickedAtomList(e,t),2===e?s.residueLabelsCls.addResidueLabels(s.hAtoms,void 0,void 0,!0):1===e&&s.residueLabelsCls.addAtomLabels(s.hAtoms),s.setOptionCls.setStyle("proteins",t.style)}render_base(){let e=this.icn3d,t=e.icn3dui,s=this;if(t.bNode)return;let i=e.bControlGl&&!t.bNode?window.cam:e.cam;if(e.directionalLight){let t=new THREE.Quaternion;t.setFromUnitVectors(new THREE.Vector3(0,0,e.cam_z).normalize(),i.position.clone().normalize()),e.directionalLight.position.copy(e.lightPos.clone().applyQuaternion(t).normalize()),e.directionalLight2.position.copy(e.lightPos2.clone().applyQuaternion(t).normalize()),e.directionalLight3.position.copy(e.lightPos3.clone().applyQuaternion(t).normalize())}if(e.bVr||e.renderer.setPixelRatio(window.devicePixelRatio),e.bVr){let t=.04;if(e.controllers){let i=this.updateGamepadState();for(let n=0,l=e.controllers.length;n{const i=e.gamepad.axes;let r=parseInt(1e3*i[t]),o=parseInt(-1e3*i[s]);n.push(r),l.push(o)})),{xArray:n,yArray:l}}return{xArray:[0,0],yArray:[0,0]}}}class pt{constructor(e){this.icn3d=e}getAtomsWithinAtom(e,t,s,i,n,l,r){let o=this.icn3d,a=o.icn3dui,d=this.getNeighboringAtoms(e,t,s,r);i&&(o.resid2Residhash={});let c={};for(let e in t){let h=o.atoms[e];if(n&&"H"==h.elem)continue;let p,m,u=a.parasCls.vdwRadii[h.elem.toUpperCase()],g=h.structure+"_"+h.chain,f=h.structure+"_"+h.chain+"_"+h.resi;for(let e in o.residues[f])if(o.atoms[e]&&("CA"===o.atoms[e].name&&"C"===o.atoms[e].elem||"O3'"===o.atoms[e].name||"O3*"===o.atoms[e].name)){p=o.atoms[e];break}if(void 0===p&&(p=h),i){let e=0==h.name.indexOf("pi")&&h.ring?h.ring.join(","):h.serial;m=h.resn+" $"+h.structure+"."+h.chain+":"+h.resi+" "+e,void 0===o.resid2Residhash[m]&&(o.resid2Residhash[m]={})}let C=h.structure+"_"+h.chain+"_"+h.resi;for(let e in d){let f=d[e];if(n&&"H"==f.elem)continue;let b=a.parasCls.vdwRadii[f.elem.toUpperCase()],y=f.structure+"_"+f.chain;if(n&&!o.crossstrucinter&&h.structure!=f.structure)continue;if(!r&&f.serial in t)continue;if(o.bOpm&&"DUM"===f.resn)continue;let v=f.coord.distanceTo(h.coord);if(n&&vo?r:o,d=Math.sqrt(a),c=(d+s)*(d+s),h={};for(let r in e){let e=n.atoms[r];!i&&t.hasOwnProperty(e.serial)||(this.bOpm&&"DUM"===e.resn||e.coord.xl[1][0]+s||e.coord.yl[1][1]+s||e.coord.zl[1][2]+s||(e.coord.x-l[2][0])*(e.coord.x-l[2][0])+(e.coord.y-l[2][1])*(e.coord.y-l[2][1])+(e.coord.z-l[2][2])*(e.coord.z-l[2][2])e.coord.x?n:e.coord.x,l=l>e.coord.y?l:e.coord.y,r=r>e.coord.z?r:e.coord.z}return[[t,s,i],[n,l,r],[o/c,a/c,d/c]]}hideContact(){let e=this.icn3d;e.icn3dui,e.opts.contact="no",void 0===e.lines&&(e.lines={}),e.lines.contact=[],e.contactpnts=[]}}class mt{constructor(e){this.icn3d=e}isHbondDonorAcceptor(e){let t=this.icn3d;if(t.icn3dui,"N"==e.name&&!e.het||"N"==e.elem&&"Arg"==e.resn||"N"==e.elem&&"Asn"==e.resn||"N"==e.elem&&"Gln"==e.resn||"N"==e.elem&&"Lys"==e.resn||"N"==e.elem&&"Trp"==e.resn)return"donor";if("O"==e.name&&!e.het||"S"==e.elem&&"Met"==e.resn||"O"==e.elem&&"Asn"==e.resn||"O"==e.elem&&"Asp"==e.resn||"O"==e.elem&&"Gln"==e.resn||"O"==e.elem&&"Glu"==e.resn)return"acceptor";if("S"==e.elem&&"Cys"==e.resn||"N"==e.elem&&"His"==e.resn||"O"==e.elem&&"Ser"==e.resn||"O"==e.elem&&"Thr"==e.resn||"O"==e.elem&&"Tyr"==e.resn)return"both";if("Pro"==e.resn)return"none";if("N"==e.elem){if("Asn"==e.resn||"Gln"==e.resn)return"both";let s=0,i=0;for(let i=0,n=e.bonds.length;i1?"ring":"donor":"none"}if("O"==e.elem&&1==e.bonds.length){if("Asn"==e.resn||"Gln"==e.resn)return"both";for(let s=0,i=e.bonds.length;s=2?"acceptor":"both"}if("O"==e.elem&&2==e.bonds.length){for(let s=0,i=e.bonds.length;s1);++t)"H"!=s.atoms[e.bonds[t]].elem&&(i=s.atoms[e.bonds[t]],l[r++].subVectors(s.atoms[e.bonds[t]].coord,e.coord));if(1===r)for(let t=0,n=i.bonds.length;t1);++t)"H"!=s.atoms[i.bonds[t]].elem&&s.atoms[i.bonds[t]].serial!=e.serial&&l[r++].subVectors(s.atoms[i.bonds[t]].coord,e.coord);if(2!==r)return;let o=l[0].cross(l[1]);return Math.abs(Math.PI/2-o.angleTo(n))}isValidHbond(e,t,s){let i=this.icn3d;i.icn3dui;let n,l,r=this.isHbondDonorAcceptor(e),o=this.isHbondDonorAcceptor(t),a=50*Math.PI/180,d=50*Math.PI/180,c=90*Math.PI/180,h=30*Math.PI/180;if("donor"==r&&("acceptor"==o||"both"==o||"ring"==o)||"acceptor"==o&&("donor"==r||"both"==r||"ring"==r))n=e,l=t;else if("acceptor"==r&&("donor"==o||"both"==o||"ring"==o)||"donor"==o&&("acceptor"==r||"both"==r||"ring"==r))l=e,n=t;else{if("both"!=r&&"ring"!=r||"both"!=o&&"ring"!=o)return!1;n=e,l=t,i.nucleotides.hasOwnProperty(e.serial)&&i.nucleotides.hasOwnProperty(t.serial)&&("ring"==r||"ring"==o)||(e.het||t.het)&&"ring"==r&&"ring"==o||(h=90*Math.PI/180)}let p=this.calcAngles(n,l),m=90*Math.PI/180;for(let e=0,t=p.length;ed)return!1;let u=this.calcPlaneAngle(n,l);if(void 0!==u&&u>h)return!1;let g=this.calcAngles(l,n),f=90*Math.PI/180;for(let e=0,t=g.length;ea)return!1;let C=this.calcPlaneAngle(l,n);return!(void 0!==C&&C>c)}calculateChemicalHbonds(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(0===Object.keys(e).length||0===Object.keys(t).length)return;r.resid2Residhash={};let a,d,c={},h=s*s;for(let t in e){let s=e[t],n=i?"LYS"===s.resn&&"N"===s.elem&&"N"!==s.name||"ARG"===s.resn&&("NH1"===s.name||"NH2"===s.name)||("GLU"===s.resn||"ASP"===s.resn)&&"O"===s.elem&&"O"!==s.name||s.het&&("N"===s.elem||"O"===s.elem||"S"===s.elem):"N"===s.elem||"O"===s.elem||"S"===s.elem&&(s.het||"Cys"===s.resn||"Met"===s.resn);n=r.bOpm?n&&"DUM"!==s.resn:n,n&&(a=s.structure+"_"+s.chain+"_"+s.resi,d=a+"_"+s.name,c[d]=s)}let p={},m={},u=.5,g=-27.888,f={};for(let e in t){let C=t[e],b=i?"LYS"===C.resn&&"N"===C.elem&&"N"!==C.name||"ARG"===C.resn&&("NH1"===C.name||"NH2"===C.name)||("GLU"===C.resn||"ASP"===C.resn)&&"O"===C.elem&&"O"!==C.name||C.het&&("N"===C.elem||"O"===C.elem||"S"===C.elem):"N"===C.elem||"O"===C.elem||"S"===C.elem&&(C.het||"Cys"===C.resn||"Met"===C.resn);if(b=r.bOpm?b&&"DUM"!==C.resn:b,b){a=C.structure+"_"+C.chain+"_"+C.resi,d=a+"_"+C.name;let e=0==C.name.indexOf("pi")&&C.ring?C.ring.join(","):C.serial,t=C.resn+" $"+C.structure+"."+C.chain+":"+C.resi+"@"+C.name+" "+e;void 0===r.resid2Residhash[t]&&(r.resid2Residhash[t]={});for(let e in c){if(i&&!(("LYS"!==C.resn&&"ARG"!==C.resn||"LYS"!==c[e].resn&&"ARG"!==c[e].resn)&&("GLU"!==C.resn&&"ASP"!==C.resn||"GLU"!==c[e].resn&&"ASP"!==c[e].resn)))continue;if(!r.crossstrucinter&&C.structure!=c[e].structure)continue;if(a==e.substr(0,e.lastIndexOf("_")))continue;let d=Math.abs(C.coord.x-c[e].coord.x);if(d>s)continue;let b=Math.abs(C.coord.y-c[e].coord.y);if(b>s)continue;let y=Math.abs(C.coord.z-c[e].coord.z);if(y>s)continue;let v=d*d+b*b+y*y;if(v>h)continue;if(!r.proteins.hasOwnProperty(C.serial)||!r.proteins.hasOwnProperty(c[e].serial)||"N"!==C.name&&"O"!==C.name||"O"!==c[e].name&&"N"!==c[e].name){if(!this.isValidHbond(C,c[e],s))continue}else{if(C.name===c[e].name)continue;if(C.structure==c[e].structure&&C.chain==c[e].chain&&Math.abs(C.resi-c[e].resi)<=1)continue;let t,i="N"===C.name?C:c[e],n="O"===C.name?C:c[e];if("Pro"===i.resn)continue;if(void 0===i.hcoord){if(!this.isValidHbond(C,c[e],s))continue}else{let s,l=i.hcoord,o=i.coord,a=n.structure+"_"+n.chain+"_"+n.resi;for(let e in r.residues[a])if("C"===r.atoms[e].name){s=r.atoms[e];break}if(!s)continue;let d=s.coord,h=n.coord,p=l.distanceTo(h),m=l.distanceTo(d),f=o.distanceTo(d),b=o.distanceTo(h);t=p2||f[c[e].serial]>2)continue;void 0===f[C.serial]?f[C.serial]=1:++f[C.serial],void 0===f[c[e].serial]?f[c[e].serial]=1:++f[c[e].serial],"graph"!==n&&(i?(r.saltbridgepnts.push({serial:C.serial,coord:C.coord}),r.saltbridgepnts.push({serial:c[e].serial,coord:c[e].coord})):(r.hbondpnts.push({serial:C.serial,coord:C.coord}),r.hbondpnts.push({serial:c[e].serial,coord:c[e].coord})));let _=c[e].structure+"_"+c[e].chain+"_"+c[e].resi;p=o.hashUtilsCls.unionHash(p,r.residues[a]),p=o.hashUtilsCls.unionHash(p,r.residues[_]),m[a]=1,m[_]=1;let w=0==c[e].name.indexOf("pi")&&c[e].ring?c[e].ring.join(","):c[e].serial,S=c[e].resn+" $"+c[e].structure+"."+c[e].chain+":"+c[e].resi+"@"+c[e].name+" "+w,A=a+"_"+C.resn+","+_+"_"+c[e].resn;void 0!==r.resids2interAll[A]&&void 0!==r.resids2interAll[A].ionic&&r.resids2interAll[A].ionic.hasOwnProperty(t+"|"+S)||(r.resid2Residhash[t][S]=v.toFixed(1),l||(void 0===r.resids2inter[A]&&(r.resids2inter[A]={}),void 0===r.resids2inter[A].hbond&&(r.resids2inter[A].hbond={}),r.resids2inter[A].hbond[t+"|"+S]=v.toFixed(1)),void 0===r.resids2interAll[A]&&(r.resids2interAll[A]={}),void 0===r.resids2interAll[A].hbond&&(r.resids2interAll[A].hbond={}),r.resids2interAll[A].hbond[t+"|"+S]=v.toFixed(1))}}}let C=Object.keys(m);if("graph"!==n)for(let e=0,t=C.length;en)return!1;let c=Math.abs(e.coord.y-t.coord.y);if(c>n)return!1;let h=Math.abs(e.coord.z-t.coord.z);if(h>n)return!1;let p=d*d+c*c+h*h;if(p>l)return!1;"graph"!==s&&("halogen"==i?(a.halogenpnts.push({serial:e.serial,coord:e.coord}),a.halogenpnts.push({serial:t.serial,coord:t.coord})):"pi-cation"==i?(a.picationpnts.push({serial:e.serial,coord:e.coord}),a.picationpnts.push({serial:t.serial,coord:t.coord})):"pi-stacking"==i&&(a.pistackingpnts.push({serial:e.serial,coord:e.coord}),a.pistackingpnts.push({serial:t.serial,coord:t.coord})));let m=0==t.name.indexOf("pi")&&t.ring?t.ring.join(","):t.serial,u=t.resn+" $"+t.structure+"."+t.chain+":"+t.resi+"@"+t.name+" "+m;a.resid2Residhash[r][u]=p.toFixed(1);let g=e.structure+"_"+e.chain+"_"+e.resi+"_"+e.resn+","+t.structure+"_"+t.chain+"_"+t.resi+"_"+t.resn;return o||(void 0===a.resids2inter[g]&&(a.resids2inter[g]={}),void 0===a.resids2inter[g][i]&&(a.resids2inter[g][i]={}),a.resids2inter[g][i][r+"|"+u]=p.toFixed(1)),void 0===a.resids2interAll[g]&&(a.resids2interAll[g]={}),void 0===a.resids2interAll[g][i]&&(a.resids2interAll[g][i]={}),a.resids2interAll[g][i][r+"|"+u]=p.toFixed(1),!0}getRingNormal(e){if(this.icn3d.icn3dui,e.length<3)return;let t=e[0].clone().sub(e[1]),s=e[1].clone().sub(e[2]);return t.cross(s).normalize()}getAromaticRings(e,t,s){let i=this.icn3d;i.icn3dui;let n=[],l=[],r=[],o=[];if("nucleotide"==s){let s=new THREE.Vector3,a=new THREE.Vector3;if("A"==e.trim().toUpperCase()||"DA"==e.trim().toUpperCase()||"G"==e.trim().toUpperCase()||"DG"==e.trim().toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"N1"==t.name||"C2"==t.name||"N3"==t.name||"C6"==t.name?(s.add(t.coord),r.push(t.coord)):"C4"==t.name||"C5"==t.name?(s.add(t.coord),a.add(t.coord),r.push(t.coord),o.push(t.coord)):"N7"!=t.name&&"C8"!=t.name&&"N9"!=t.name||(a.add(t.coord),o.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r))),5==o.length&&(a.multiplyScalar(.2),n.push(a),l.push(this.getRingNormal(o)))}else if("C"==e.trim().toUpperCase()||"DC"==e.trim().toUpperCase()||"T"==e.trim().toUpperCase()||"DT"==e.trim().toUpperCase()||"U"==e.trim().toUpperCase()||"DU"==e.trim().toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"N1"==t.name||"C2"==t.name||"N3"==t.name||"C6"==t.name?(s.add(t.coord),r.push(t.coord)):"C4"!=t.name&&"C5"!=t.name||(s.add(t.coord),r.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r)))}}else if("protein"==s){let s=new THREE.Vector3,a=new THREE.Vector3;if("PHE"==e.toUpperCase()||"TYR"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CG"!=t.name&&"CD1"!=t.name&&"CE1"!=t.name&&"CZ"!=t.name&&"CE2"!=t.name&&"CD2"!=t.name||(s.add(t.coord),r.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r)))}else if("HIS"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CG"!=t.name&&"ND1"!=t.name&&"CE1"!=t.name&&"NE2"!=t.name&&"CD2"!=t.name||(s.add(t.coord),r.push(t.coord))}5==r.length&&(s.multiplyScalar(.2),n.push(s),l.push(this.getRingNormal(r)))}else if("TRP"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CZ2"==t.name||"CH2"==t.name||"CZ3"==t.name||"CE3"==t.name?(s.add(t.coord),r.push(t.coord)):"CD2"==t.name||"CE2"==t.name?(s.add(t.coord),a.add(t.coord),r.push(t.coord),o.push(t.coord)):"CG"!=t.name&&"CD1"!=t.name&&"NE1"!=t.name||(a.add(t.coord),o.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r))),5==o.length&&(a.multiplyScalar(.2),n.push(a),l.push(this.getRingNormal(o)))}}return{piPosArray:n,normalArray:l}}dfs_cycle(e,t,s){let i=this.icn3d;if(i.icn3dui,2==i.ring_color[e])return s;if(1==i.ring_color[e]){s++;let n=t;for(i.ring_mark[n]=s;n!=e;)n=i.ring_par[n],i.ring_mark[n]=s;return s}if(i.ring_par[e]=t,i.ring_color[e]=1,void 0!==i.atoms[e])for(let t=0,n=i.atoms[e].bonds.length;t=3&&o<=6&&a[0]&&a[1]&&a[2]&&a[3]){let i=a[0].clone().sub(a[1]).normalize(),r=a[1].clone().sub(a[2]).normalize(),c=a[2].clone().sub(a[3]).normalize(),h=i.cross(r).normalize(),p=h.dot(c);if(Math.abs(p)<.052){l.multiplyScalar(1/o);let i=t.atoms[n];s[e+"_pi"+n]={resn:i.resn,name:"pi"+n,coord:l,serial:i.serial,structure:i.structure,chain:i.chain,resi:i.resi,normal:h,ring:d}}}}return s}hideHalogenPi(){let e=this.icn3d;e.icn3dui,e.opts.halogen="no",e.opts["pi-cation"]="no",e.opts["pi-stacking"]="no",void 0===e.lines&&(e.lines={}),e.lines.halogen=[],e.lines["pi-cation"]=[],e.lines["pi-stacking"]=[],e.halogenpnts=[],e.picationpnts=[],e.pistackingpnts=[]}}class gt{constructor(e){this.icn3d=e}calculateIonicInteractions(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(0===Object.keys(e).length||0===Object.keys(t).length)return;r.resid2Residhash={};let a,d,c={},h={},p=s*s;for(let t in e){let s=e[t];if("ARG"===s.resn&&"NH2"===s.name||"GLU"===s.resn&&"OE2"===s.name||"ASP"===s.resn&&"OD2"===s.name)continue;let i=("LYS"===s.resn||"HIS"===s.resn)&&"N"===s.elem&&"N"!==s.name||"ARG"===s.resn&&("NH1"===s.name||"NH2"===s.name)||s.het&&-1!==o.parasCls.cationsTrimArray.indexOf(s.elem)||s.het&&"N"===s.elem&&1==s.bonds.length,n=this.isAnion(s);i=r.bOpm?i&&"DUM"!==s.resn:i,n=r.bOpm?n&&"DUM"!==s.resn:n,(i||n)&&(a=s.structure+"_"+s.chain+"_"+s.resi,d=a+"_"+s.name,i&&(c[d]=s),n&&(h[d]=s))}let m={},u={};for(let e in t){let i=t[e];if("ARG"===i.resn&&"NH2"===i.name||"GLU"===i.resn&&"OE2"===i.name||"ASP"===i.resn&&"OD2"===i.name)continue;let g=("LYS"===i.resn||"HIS"===i.resn)&&"N"===i.elem&&"N"!==i.name||"ARG"===i.resn&&("NH1"===i.name||"NH2"===i.name)||i.het&&-1!==o.parasCls.cationsTrimArray.indexOf(i.elem),f=this.isAnion(i);if(g=r.bOpm?g&&"DUM"!==i.resn:g,f=r.bOpm?f&&"DUM"!==i.resn:f,g||f){a=i.structure+"_"+i.chain+"_"+i.resi,d=a+"_"+i.name;let e=0==i.name.indexOf("pi")&&i.ring?i.ring.join(","):i.serial,t=i.resn+" $"+i.structure+"."+i.chain+":"+i.resi+"@"+i.name+" "+e;void 0===r.resid2Residhash[t]&&(r.resid2Residhash[t]={});let C={};g?C=h:f&&(C=c);let b,y=i.structure+"_"+i.chain+"_"+i.resi;g&&"ARG"===i.resn&&"NH1"===i.name?b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"NH2"):f&&"GLU"===i.resn&&"OE1"===i.name?b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"OE2"):f&&"ASP"===i.resn&&"OD1"===i.name&&(b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"OD2"));let v=void 0===b?i.coord:i.coord.clone().add(b.coord).multiplyScalar(.5);for(let e in C){if(a==e.substr(0,e.lastIndexOf("_")))continue;if(!r.crossstrucinter&&i.structure!=C[e].structure)continue;let d,c=C[e].structure+"_"+C[e].chain+"_"+C[e].resi;f&&"ARG"===C[e].resn&&"NH1"===C[e].name?d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"NH2"):g&&"GLU"===C[e].resn&&"OE1"===C[e].name?d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"OE2"):g&&"ASP"===C[e].resn&&"OD1"===C[e].name&&(d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"OD2"));let h=void 0===d?C[e].coord:C[e].coord.clone().add(d.coord).multiplyScalar(.5),b=Math.abs(v.x-h.x);if(b>s)continue;let y=Math.abs(v.y-h.y);if(y>s)continue;let _=Math.abs(v.z-h.z);if(_>s)continue;let w=b*b+y*y+_*_;if(w>p)continue;"graph"!==n&&(r.saltbridgepnts.push({serial:i.serial,coord:v}),r.saltbridgepnts.push({serial:C[e].serial,coord:h}));let S=C[e].structure+"_"+C[e].chain+"_"+C[e].resi;m=o.hashUtilsCls.unionHash(m,r.residues[a]),m=o.hashUtilsCls.unionHash(m,r.residues[S]),u[a]=1,u[S]=1;let A=0==C[e].name.indexOf("pi")&&C[e].ring?C[e].ring.join(","):C[e].serial,x=C[e].resn+" $"+C[e].structure+"."+C[e].chain+":"+C[e].resi+"@"+C[e].name+" "+A;r.resid2Residhash[t][x]=w.toFixed(1);let k=a+"_"+i.resn+","+S+"_"+C[e].resn;l||(void 0===r.resids2inter[k]&&(r.resids2inter[k]={}),void 0===r.resids2inter[k].ionic&&(r.resids2inter[k].ionic={}),r.resids2inter[k].ionic[t+"|"+x]=w.toFixed(1)),void 0===r.resids2interAll[k]&&(r.resids2interAll[k]={}),void 0===r.resids2interAll[k].ionic&&(r.resids2interAll[k].ionic={}),r.resids2interAll[k].ionic[t+"|"+x]=w.toFixed(1)}}}let g=Object.keys(u);if("graph"!==n)for(let e=0,t=g.length;e1?1/(n-1):1;for(let n in e){let e=t.atoms[n];e.color=s.parasCls.thr().setHSL(3/4*(1-i++*l),1,.45),t.atomPrevColors[n]=e.color}}colorRainbow(e){let t=this.icn3d,s=t.icn3dui,i=0,n=0;e=s.hashUtilsCls.intHash(e,t.hAtoms);for(let s in e)t.atoms[s],++n;let l=n>1?1/(n-1):1;for(let n in e){let e=t.atoms[n];e.color=s.parasCls.thr().setHSL(3/4*i++*l,1,.45),t.atomPrevColors[n]=e.color}}setColorAcrossSets(e,t){let s=this.icn3d,i=s.icn3dui,n=0,l=e.length,r=l>1?1/(l-1):1;for(let l=0,o=e.length;l0)this.setMmdbChainColor();else{let e=-1,s="",l=n.parasCls.stdChainColors.length;for(let r in t){let t=i.atoms[r];t.chain!=s&&(++e,e%=l),t.het?(t.color=n.parasCls.atomColors[t.elem],i.atomPrevColors[r]=t.color):(t.color=n.parasCls.stdChainColors[e],Object.keys(i.chainsColor).length>0&&this.updateChainsColor(t),i.atomPrevColors[r]=t.color),s=t.chain}}break;case"domain":s=0,l=0;let m=Object.keys(i.tddomains);l=m.length,r=l>1?1/(l-1):1;for(let e=0,t=m.length;e1?1/(l-1):1;for(let e=0;e Defined Sets", and try it again.');break;case"secondary structure green":case"secondary structure":i.sheetcolor="green";for(let e in t){let t=i.atoms[e];t.color=t.het?n.parasCls.atomColors[t.elem]||n.parasCls.defaultAtomColor:n.parasCls.ssColors[t.ss]||n.parasCls.thr(16711935),i.atomPrevColors[e]=t.color}break;case"secondary structure yellow":i.sheetcolor="yellow";for(let e in t){let t=i.atoms[e];t.color=t.het?n.parasCls.atomColors[t.elem]||n.parasCls.defaultAtomColor:n.parasCls.ssColors2[t.ss]||n.parasCls.thr(16711935),i.atomPrevColors[e]=t.color}break;case"secondary structure spectrum":s=0,l=0;let u,g,f=[],C=-9999;for(let e in t){if(!i.proteins.hasOwnProperty(e))continue;let t=i.atoms[e];-9999==C&&(u=parseInt(e)),-9999!=C&&(t.ss!=g.ss||Math.abs(t.resi-g.resi)>1||t.ssbegin&&g.ssend)&&("coil"==g.ss||f.push([u,C]),u=e),C=parseInt(e),g=t}"coil"==g.ss||f.push([u,C]),l=f.length,r=l>1?1/(l-1):1;for(let e=0,t=f.length;e100&&(e=100);let r=(i.middB-e)*i.spanBinv1,o=(e-i.middB)*i.spanBinv2;e=90?t.color=n.parasCls.thr().setRGB(0,.325,.839):e>=70&&e<90?t.color=n.parasCls.thr().setRGB(.396,.572,.953):e>=50&&e<70?t.color=n.parasCls.thr().setRGB(1,.859,.075):e<50&&(t.color=n.parasCls.thr().setRGB(1,.49,.271))}i.atomPrevColors[e]=t.color}break;case"b factor":i.middB=50,i.spanBinv1=.02,i.spanBinv2=.02;for(let e in t){let t=i.atoms[e];if(void 0===t.b||isNaN(t.b)||0==parseInt(1e3*t.b))t.color=n.parasCls.thr().setRGB(0,1,0);else{let e=t.b;e>100&&(e=100),e=t.structure.substr(0,4)!=i.defaultPdbId&&t.structure.length>5?100-e:e;let s=(i.middB-e)*i.spanBinv1,l=(e-i.middB)*i.spanBinv2;t.color=et.b&&(o=t.b),a5?100-t.b:t.b,s=i.bfactorArray.indexOf(e)/b;t.color=s<.5?n.parasCls.thr().setRGB(2*s,2*s,1):n.parasCls.thr().setRGB(1,2*(1-s),2*(1-s))}i.atomPrevColors[e]=t.color}break;case"area":if(void 0===i.resid2area){let e=n.hashUtilsCls.cloneHash(i.hAtoms);i.hAtoms=n.hashUtilsCls.cloneHash(i.atoms),i.bCalcArea=!0,i.opts.surface="solvent accessible surface",i.applyMapCls.applySurfaceOptions(),i.bCalcArea=!1,i.hAtoms=n.hashUtilsCls.cloneHash(e)}let y=void 0!==i.midpercent?i.midpercent:35;i.spanBinv1=.02,i.spanBinv2=.02;for(let e in t){let t=i.atoms[e],s=t.structure+"_"+t.chain+"_"+t.resi+"_"+t.resn,l=n.parasCls.residueArea.hasOwnProperty(t.resn)?i.resid2area[s]/n.parasCls.residueArea[t.resn]*100:y;l>100&&(l=100);let r=(y-l)*i.spanBinv1,o=(l-y)*i.spanBinv2;t.color=l

    ";if("atom"==e){let e=["proteins","nucleotides","chemicals","ions","water"];for(let i=0,l=e.length;i[e,s.parasCls.hydrophobicValues[e]]));l.sort(((e,t)=>parseFloat(e[1])-parseFloat(t[1])));var r=l.map((e=>[e[0],Object.keys(o[e[0]])[0]]));n+="
    ","normalized hydrophobic"==e?(n+="Dark green (W, F, L, I, Y, M, V, C): Hydrophobic
    ",n+="Light green (P, T, S, A, Q, N, G): Polar
    ",n+="Grey: Charged, not hydrophobic

    "):(n+="Green (W, F, L, I, Y, M, V, C): Hydrophobic
    ",n+="Yellow (P, T, S, A, Q, N, G): Polar
    ",n+="Red: Negatively Charged
    ",n+="Blue: Positively Charged

    ");let a=0;for(let e of r)s.parasCls.residueAbbrev[e[0]]&&(n+="
    ",n+="
    ",n+=s.parasCls.residueAbbrev[e[0]]+"
    ",a%4==3&&(n+="
    "),++a);n+="
    "}else"b factor"==e?(n+="
    B factor quantitates the uncertainty for each atom. A high B factor reflects that the position is less certain.

    ",n+=s.htmlCls.clickMenuCls.setLegendHtml()):"confidence"==e?n+=s.htmlCls.clickMenuCls.setLegendHtml(!0):"exon"==e?(t.startColor="red",t.midColor="white",t.endColor="blue",t.startValue="Start",t.midValue="Middle",t.endValue="End",n+=s.htmlCls.clickMenuCls.setLegendHtml()):n="";n?($("#"+s.pre+"dl_legend_html").html(n),s.htmlCls.dialogCls.openDlg("dl_legend","Color Legend")):$("#"+s.pre+"dl_legend").hasClass("ui-dialog-content")&&$("#"+s.pre+"dl_legend").dialog("isOpen")&&$("#"+s.pre+"dl_legend").dialog("close")}getColorLegendForElem(e,t){let s=this.icn3d,i=s.icn3dui,n="",l={};for(let e in t){let t=s.atoms[e],i=void 0===t||void 0===t.color||"FFFFFF"===t.color.getHexString().toUpperCase()?"DDDDDD":t.color.getHexString();void 0===l[t.elem]&&(l[t.elem]={}),l[t.elem][i]=1}if(Object.keys(l).length>0){n+=""+e+"
    ";let t=Object.keys(l).sort();for(let e=0,s=t.length;e";for(let e in l[s])n+="
    ";n+=i.parasCls.atomnames[s.toUpperCase()]+"

    "}n+="
    "}return n}getRes2color(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=s.firstAtomObjCls.getResiduesFromAtoms(e);for(let e in l){let l=s.residues[e],r=s.firstAtomObjCls.getFirstAtomObj(l),o=t?r.resn:i.parasCls.residueAbbrev[r.resn],a=void 0===r||void 0===r.color||"FFFFFF"===r.color.getHexString().toUpperCase()?"DDDDDD":r.color.getHexString();null!=o&&(void 0===n[o]&&(n[o]={}),n[o][a]=1)}return n}getColorLegendForResidue(e){this.icn3d.icn3dui;let t="",s=this.getRes2color(e);if(Object.keys(s).length>0){t+="
    ";let e=Object.keys(s).sort(),i="",n=0;for(let l=0,r=e.length;l";for(let e in s[o])r+="
    ";r+=o+"
    ",n%4==3&&(r+="
    "),-1!=o.indexOf("(")?(t+=r,++n):i+=r}i&&(t+="
    "+i),t+="
    "}return t}getColorLegendForCharge(e){let t=this.icn3d;t.icn3dui;let s="",i=t.firstAtomObjCls.getResiduesFromAtoms(e),n={};for(let e in i){let s=t.residues[e],i=t.firstAtomObjCls.getFirstAtomObj(s);"ARG"==i.resn||"LYS"==i.resn?n.Positive=1:"HIS"==i.resn?n["Partial-Positive"]=1:"ASP"==i.resn||"GLU"==i.resn||t.nucleotides[i.serial]?n.Negative=1:n.Neutral=1}const l={Positive:"0000ff","Partial-Positive":"8080ff",Negative:"ff0000",Neutral:"888888"};let r=["Positive","Partial-Positive","Negative","Neutral"];s+="
    ";for(let e=0,t=r.length;e",s+="
    ",s+=t,s+="
    ")}return s+="
    (Charges are at pH 7)",s+="
    ",s}getColorLegendForIgstrand(e){this.icn3d.icn3dui;let t="";const s={"A Strand":"9400D3","B Strand":"ba55d3","C Strand":"0000FF","C' Strand":"6495ED","C'' Strand":"006400","D Strand":"00FF00","E Strand":"FFD700","F Strand":"FF8C00","G Strand":"FF0000",Loop:"CCCCCC"};t+="
    ";for(let e in s){t+="",t+="
    ",t+=e,t+="

    "}return t+="
    ",t}getColorLegendForIgproto(e){this.icn3d.icn3dui;let t="";const s={"Protodomain 1":"","A Strand":"0000FF","B Strand":"006400","C Strand":"FFD700","C' Strand":"FF8C00","
    Linker":"","C'' Strand":"FF0000","
    Protodomain 2":"","D Strand":"0000FF","E Strand":"006400","F Strand":"FFD700","G Strand":"FF8C00","":"",Loop:"CCCCCC"};t+="
    A protodomain is a supersecondary structure
    that by its duplication, symmetry operations
    can generate a structural domain.

    ";for(let e in s){let i=s[e];t+="",i&&(t+="
    "),t+=e,t+="

    "}return t+="
    ",t}}class vt{constructor(e){this.icn3d=e}async showCddSiteAll(){let e=this.icn3d,t=e.icn3dui,s=this;e.chainid2pssmid={};let i=$.map(e.protein_chainid,(function(e){return e})),n=Object.keys(e.protein_chainid),l="https://www.ncbi.nlm.nih.gov/Structure/cdannots/cdannots.fcgi?fmt&frclive&live=lcl&queries="+i;if(1==Object.keys(e.structures).length&&!t.cfg.afid&&(t.cfg.mmtfid||t.cfg.pdbid||t.cfg.opmid||t.cfg.mmdbid||t.cfg.gi||t.cfg.uniprotid||t.cfg.blast_rep_id||t.cfg.cid||t.cfg.mmcifid)||2==Object.keys(e.structures).length&&t.cfg.align){let e={};try{t.bNode?e=await t.getAjaxPromise(l,"jsonp"):e.value=await t.getAjaxPromise(l,"jsonp"),s.parseCddData([e],n)}catch(e){return void s.getNoCdd(i)}}else{let i=[];for(let s=0,r=n.length;s',p=h,m=h,u=d.doms;n.bNode&&!i.resid2cdd[c]&&(i.resid2cdd[c]=[]),n.bNode&&!i.chainid2cdd[c]&&(i.chainid2cdd[c]=[]);let g=l.setDomainFeature(u,c,"domain",h,p,m);i.chainid2pssmid[c]={pssmid2name:g.pssmid2name,pssmid2fromArray:g.pssmid2fromArray,pssmid2toArray:g.pssmid2toArray};let f=g.acc2domain;h=g.html+"",p=g.html2+"",m=g.html3+"",$("#"+i.pre+"dt_cdd_"+c).html(h),$("#"+i.pre+"ov_cdd_"+c).html(p),$("#"+i.pre+"tt_cdd_"+c).html(m),h='
    ',p=h,m=h;let C=d.motifs;n.bNode&&!i.resid2site[c]&&(i.resid2site[c]=[]),g=l.setDomainFeature(C,c,"feat",h,p,m,f),h=g.html,p=g.html2,m=g.html3;let b=a.data[e].sites,y=void 0!==b?b.length:0;for(let e=0;e17&&(s=s.substr(0,17)+"...");let l,r=b[e].title,o=[];for(let t=0,s=b[e].locs.length;t'+s+"
    ",u=''+t.toString()+" Res",g='';m+=d+u+"
    ",h+=d+u+g,p+=d+u+g;let f="site"+e.toString(),C=0,y=0,v=1;i.seqStartLen&&i.seqStartLen[c]&&(p+=i.showSeqCls.insertMulGapOverview(c,i.seqStartLen[c])),i.seqStartLen&&i.seqStartLen[c]&&(h+=i.showSeqCls.insertMulGap(i.seqStartLen[c],"-"));for(let t=0,s=i.giSeq[c].length;t1&&(l=s[0]+"..");let r=i.ParserUtilsCls.getResi(c,t);if(h+=''+s+"",n.bNode){let t={};t[c+"_"+r]="site: "+b[e].title,i.resid2site[c].push(t)}p+=i.showSeqCls.insertGapOverview(c,t);let o=n.cfg.blast_rep_id==c?Math.round(i.seqAnnWidth*t/(i.maxAnnoLength+i.nTotalGap)-C-y):Math.round(i.seqAnnWidth*t/i.maxAnnoLength-C-y);o>=0&&(p+='
     
    ',p+='
     
    ',C+=o,y+=v)}else h+="-";i.seqStartLen&&i.seqStartLen[c]&&(h+=i.showSeqCls.insertMulGap(i.seqEndLen[c],"-")),g=' '+t.toString()+" Residues",g+="
    ",g+="
    ",h+=g,p+=g}h+="",p+="",m+="",$("#"+i.pre+"dt_site_"+c).html(h),$("#"+i.pre+"ov_site_"+c).html(p),$("#"+i.pre+"tt_site_"+c).html(m)}}for(let e in i.protein_chainid)r.hasOwnProperty(e)||($("#"+i.pre+"dt_cdd_"+e).html(""),$("#"+i.pre+"ov_cdd_"+e).html(""),$("#"+i.pre+"tt_cdd_"+e).html(""),$("#"+i.pre+"dt_site_"+e).html(""),$("#"+i.pre+"ov_site_"+e).html(""),$("#"+i.pre+"tt_site_"+e).html(""));i.showAnnoCls.enableHlSeq(),i.bAjaxCddSite=!0}getNoCdd(e){let t=this.icn3d;t.icn3dui,console.log("No CDD data were found for the protein "+e+"...");for(let e in t.protein_chainid)$("#"+t.pre+"dt_cdd_"+e).html(""),$("#"+t.pre+"ov_cdd_"+e).html(""),$("#"+t.pre+"tt_cdd_"+e).html(""),$("#"+t.pre+"dt_site_"+e).html(""),$("#"+t.pre+"ov_site_"+e).html(""),$("#"+t.pre+"tt_site_"+e).html("");t.showAnnoCls.enableHlSeq(),t.bAjaxCddSite=!0}getResiArrayStr(e,t){let s=this.icn3d;s.icn3dui;let i="";for(let n=0,l=e.length;n0&&(i+=","),i+=r.split("_")[2]}return i}setDomainFeature(e,t,s,i,n,l,r,o,a){let d,c,h,p=this.icn3d,m=p.icn3dui,u="domain"!=s&&"feat"!=s;"domain"==s&&(r={},d={},c={},h={}),void 0===e&&(e=[]);let g=e.length,f="domain"==s?14:19,C="domain"==s?100:120;e.sort((function(e,t){let i=e.locs,n="domain"==s||"ig"==s?i[0].segs:[i[0]],l=Math.round(n[0].from);return i=t.locs,n="domain"==s||"ig"==s?i[0].segs:[i[0]],l-Math.round(n[0].from)}));for(let b=0;bf&&(w=w.substr(0,f)+"...");let S=u?a[b]:s+": "+v;"domain"==s&&(d[g]=v);let A=e[b].locs;if(A)for(let e=0,r=A.length;e'+w+" ",I=''+u.toString()+" Res";l+=R+I+"
    ";let E='';i+=R+I+E,"domain"==s&&(n+='
    '),n+='
    '+w+"
    ",n+=I+E;let T=s+b.toString();if(p.seqStartLen&&p.seqStartLen[t]&&(i+=p.showSeqCls.insertMulGap(p.seqStartLen[t],"-")),m.bNode&&"domain"==s){let e=this.getResiArrayStr(r,t),s=this.getResiArrayStr(a,t);p.chainid2cdd[t].push(S+"_from_"+e+"_to_"+s)}for(let e=0,n=p.giSeq[t].length;e1&&(l=n[0]+"..");let r=p.ParserUtilsCls.getResi(t,e);if(i+=''+n+"",m.bNode){let e={};e[t+"_"+r]=S,"domain"==s?p.resid2cdd[t].push(e):p.resid2site[t].push(e)}}else i+="-";if(p.seqStartLen&&p.seqStartLen[t]&&(i+=p.showSeqCls.insertMulGap(p.seqEndLen[t],"-")),p.seqStartLen&&p.seqStartLen[t]&&(n+=p.showSeqCls.insertMulGapOverview(t,p.seqStartLen[t])),m.cfg.blast_rep_id!=t){let i;for(let l=0,d=r.length;l ',n+='
    '+v+"
    "}}else{let i=[],l=[];for(let e=0,t=r.length;e ',n+='
    '+v+"
    "}}E=' '+u.toString()+" Residues",E+="
    ",E+="
    ",i+=E,n+=E,"domain"==s&&(n+='')}}return{html:i,html2:n,html3:l,acc2domain:r,pssmid2name:d,pssmid2fromArray:c,pssmid2toArray:h}}getColorFromPos(e,t,s){let i,n=this.icn3d;n.icn3dui;let l=e+"_"+n.ParserUtilsCls.getResi(e,t),r=n.firstAtomObjCls.getFirstAtomObj(n.residues[l]),o=r&&void 0!==r.color&&"FFFFFF"!==r.color.getHexString()?r.color.getHexString():"DDDDDD";return i=r&&void 0!==r.color?o:"CCCCCC",i}showAnnoType(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui,a='
    ',d=a,c=a;if(0==n.length)return $("#"+r.pre+"dt_"+s+"_"+e).html(""),$("#"+r.pre+"ov_"+s+"_"+e).html(""),void $("#"+r.pre+"tt_"+s+"_"+e).html("");let h=i;i.length>17&&(i=i.substr(0,17)+"...");let p=[];for(let e=0,t=n.length;e'+i+"
    ",f=''+m.toString()+" Res";c+=g+f+"
    ";let C='';a+=g+f+C,d+=g+f+C;let b=s,y=0,v=0;r.seqStartLen&&r.seqStartLen[e]&&(d+=r.showSeqCls.insertMulGapOverview(e,r.seqStartLen[e])),r.seqStartLen&&r.seqStartLen[e]&&(a+=r.showSeqCls.insertMulGap(r.seqStartLen[e],"-"));for(let t=0,i=r.giSeq[e].length;t1&&(c=n[0]+"..");let h=i,p=e+"_"+i,m=n+i;if("ssbond"==s){m="Residue "+p+" has disulfide bond with";let t="";if(void 0!==l[p])for(let e=0,s=l[p].length;e'+c+"",d+=r.showSeqCls.insertGapOverview(e,t);let u=o.cfg.blast_rep_id==e?Math.round(r.seqAnnWidth*t/(r.maxAnnoLength+r.nTotalGap)-y-v):Math.round(r.seqAnnWidth*t/r.maxAnnoLength-y-v);u>=0&&(d+='
     
    ',d+='
     
    ',y+=u,v+=1)}else a+="-"}r.seqStartLen&&r.seqStartLen[e]&&(a+=r.showSeqCls.insertMulGap(r.seqEndLen[e],"-")),C=' '+m.toString()+" Residues",C+="",C+="
    ",a+=C,d+=C,a+="",d+="",c+="",$("#"+r.pre+"dt_"+s+"_"+e).html(a),$("#"+r.pre+"ov_"+s+"_"+e).html(d),$("#"+r.pre+"tt_"+s+"_"+e).html(c)}setToolTip(){let e=this.icn3d;e.icn3dui,$("[id^="+e.pre+"snp]").add("[id^="+e.pre+"clinvar]").add("[id^="+e.pre+"ssbond]").add("[id^="+e.pre+"crosslink]").tooltip({content:function(){return $(this).prop("title")},show:null,close:function(e,t){t.tooltip.hover((function(){$(this).stop(!0).fadeTo(400,1)}),(function(){$(this).fadeOut("400",(function(){$(this).remove()}))}))}})}}class _t{constructor(e){this.icn3d=e}showInteraction(e,t){this.icn3d.icn3dui,this.showInteraction_base(e,t)}showInteraction_base(e,t){let s=this.icn3d,i=s.icn3dui;i.bNode&&(s.resid2contact||(s.resid2contact={}),s.resid2contact[e]||(s.resid2contact[e]=[])),void 0===s.chainname2residues&&(s.chainname2residues={});let n=Object.keys(s.chains),l=e,r=Math.round(l.indexOf("_"));if(s.firstAtomObjCls.getFirstCalphaAtomObj(s.chains[l]),void 0===s.chainname2residues[l]){s.chainname2residues[l]={};let t=n.length;if(t>100&&void 0===i.cfg.mmdbid&&void 0===i.cfg.gi&&void 0===i.cfg.blast_rep_id&&void 0===i.cfg.align&&void 0===i.cfg.chainalign)return $("#"+s.pre+"dt_interaction_"+e).html(""),void $("#"+s.pre+"ov_interaction_"+e).html("");for(let e=0;e4)continue;let o,a=s.firstAtomObjCls.getFirstCalphaAtomObj(s.chains[t]);s.chemicals.hasOwnProperty(a.serial)?o="chemical":s.nucleotides.hasOwnProperty(a.serial)?o="nucleotide":s.ions.hasOwnProperty(a.serial)?o="ion":s.proteins.hasOwnProperty(a.serial)?o="protein":s.water.hasOwnProperty(a.serial)&&(o="water");let d=s.contactCls.getAtomsWithinAtom(i.hashUtilsCls.hash2Atoms(s.chains[l],s.atoms),i.hashUtilsCls.hash2Atoms(s.chains[t],s.atoms),4);if(0==Object.keys(d).length)continue;let c={};for(let e in d){let t=s.atoms[e];c[t.structure+"_"+t.chain+"_"+t.resi]=1}let h=t.substr(t.indexOf("_")+1)+"("+o+")";s.chainname2residues[l][h]=Object.keys(c)}}let o='
    ',a=o,d=o,c=0;for(let t in s.chainname2residues[e]){let n=s.chainname2residues[e][t];if(!n)continue;let l="Interact ."+t;l.length>17&&(l=l.substr(0,17)+"...");let r="Interact ."+t,h=[];for(let e=0,t=n.length;e'+l+"
    ",g=''+p.toString()+" Res";d+=u+g+"
    ";let f='';o+=u+g+f,a+=u+g+f;let C="inter"+c.toString(),b=0,y=0,v=1;s.seqStartLen&&s.seqStartLen[e]&&(a+=s.showSeqCls.insertMulGapOverview(e,s.seqStartLen[e])),s.seqStartLen&&s.seqStartLen[e]&&(o+=s.showSeqCls.insertMulGap(s.seqStartLen[e],"-"));for(let t=0,n=s.giSeq[e].length;t1&&(d=l[0]+"..");let c=n;if(o+=''+d+"",i.bNode){let t={};t[e+"_"+c]=r,s.resid2contact[e].push(t)}a+=s.showSeqCls.insertGapOverview(e,t);let h=i.cfg.blast_rep_id==e?Math.round(s.seqAnnWidth*t/(s.maxAnnoLength+s.nTotalGap)-b-y):Math.round(s.seqAnnWidth*t/s.maxAnnoLength-b-y);h>=0&&(a+='
     
    ',a+='
     
    ',b+=h,y+=v)}else o+="-"}s.seqStartLen&&s.seqStartLen[e]&&(o+=s.showSeqCls.insertMulGap(s.seqEndLen[e],"-")),f=' '+p.toString()+" Residues",f+="
    ",f+="
    ",o+=f,a+=f,++c}o+="",a+="",d+="",$("#"+s.pre+"dt_interaction_"+e).html(o),$("#"+s.pre+"ov_interaction_"+e).html(a),$("#"+s.pre+"tt_interaction_"+e).html(d),i.utilsCls.isMobile()?(s.hlSeqCls.selectSequenceMobile(),s.hlSeqCls.selectChainMobile()):s.hlSeqCls.selectSequenceNonMobile()}}class wt{constructor(e){this.icn3d=e}async showPTM(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui,o=this,a=e.substr(0,e.indexOf("_")),d=e.substr(e.indexOf("_")+1);if("afmem"==s){let t={Transmembrane:[{begin:i,end:n}]};this.setAnnoPtmTransmem("transmem",t,e)}else if(a.length>5){let t,i="https://www.ebi.ac.uk/proteins/api/features/"+a;try{t=await r.getAjaxPromise(i,"json"),o.parsePTM(t,e,s)}catch{return void o.getNoPTM(e,s)}}else{let t,i=a.substr(0,4).toLowerCase(),n="https://www.ebi.ac.uk/pdbe/api/mappings/uniprot/"+i;try{t=await r.getAjaxPromise(n,"json");let a="";l.UPResi2ResiPosPerChain||(l.UPResi2ResiPosPerChain={}),l.UPResi2ResiPosPerChain[e]={};let c=t[i].UniProt,h=!1;for(let t in c){let s=c[t].mappings;for(let i=0,n=s.length;i',o+=r,a+=r,s.substr(0,s.indexOf("_"));for(let d in t){let c=t[d],h=[],p=!1;for(let e=0,t=c.length;e5?h.push(e-1):i.UPResi2ResiPosPerChain&&i.UPResi2ResiPosPerChain[s][e]&&h.push(i.UPResi2ResiPosPerChain[s][e]),!p&&i.residues.hasOwnProperty(s+"_"+e)&&(p=!0)}if(0==h.length)continue;let m=h.length,u="ptm"==e?"PTM: "+d:"Transmembrane";u.length>17&&(u=u.substr(0,17)+"...");let g=d,f='
    '+u+"
    ",C=''+m.toString()+" Res",b='';a+=f+C+"
    ",r+=f+C+b,o+=f+C+b;let y=e+l.toString(),v=0,_=0,w=1;i.seqStartLen&&i.seqStartLen[s]&&(o+=i.showSeqCls.insertMulGapOverview(s,i.seqStartLen[s])),i.seqStartLen&&i.seqStartLen[s]&&(r+=i.showSeqCls.insertMulGap(i.seqStartLen[s],"-"));for(let e=0,t=i.giSeq[s].length;e1&&(l=t[0]+"..");let a=i.ParserUtilsCls.getResi(s,e);if(r+=''+t+"",n.bNode){let e={};e[s+"_"+a]=u,i.resid2ptm[s].push(e)}o+=i.showSeqCls.insertGapOverview(s,e);let d=n.cfg.blast_rep_id==s?Math.round(i.seqAnnWidth*e/(i.maxAnnoLength+i.nTotalGap)-v-_):Math.round(i.seqAnnWidth*e/i.maxAnnoLength-v-_);d>=0&&(o+='
     
    ',o+='
     
    ',v+=d,_+=w)}else r+="-";i.seqStartLen&&i.seqStartLen[s]&&(r+=i.showSeqCls.insertMulGap(i.seqEndLen[s],"-")),b=' '+m.toString()+" Residues",b+="
    ",b+="
    ",r+=b,o+=b,++l}r+="",o+="",a+="",$("#"+i.pre+"dt_"+e+"_"+s).html(r),$("#"+i.pre+"ov_"+e+"_"+s).html(o),$("#"+i.pre+"tt_"+e+"_"+s).html(a)}getNoPTM(e,t){let s=this.icn3d;s.icn3dui,console.log("No PTM data were found for the chain "+e+"...");let i="ptm"==t?"ptm":"transmem";$("#"+s.pre+"dt_"+i+"_"+e).html(""),$("#"+s.pre+"ov_"+i+"_"+e).html(""),$("#"+s.pre+"tt_"+i+"_"+e).html(""),s.showAnnoCls.enableHlSeq(),s.bAjaxPTM=!0}}class St{constructor(e){this.icn3d=e}async showIg(e,t){let s=this.icn3d;s.icn3dui,s.bRunRefnumAgain&&await s.refnumCls.showIgRefNum(t);let i="",n="",l="";if(s.bShowRefnum&&s.chainid2refpdbname.hasOwnProperty(e)&&s.chainid2refpdbname[e].length>0){let t=s.showSeqCls.getSeq(e),r=s.annoIgCls.showAllRefNum(t,e);i+=r.html,n+=r.html2,l+=r.html3}$("#"+s.pre+"dt_"+"ig_"+e).html(i),$("#"+s.pre+"ov_"+"ig_"+e).html(n),$("#"+s.pre+"tt_"+"ig_"+e).html(l)}showAllRefNum(e,t){let s=this.icn3d;s.icn3dui;let i="",n="",l="",r=!1;for(let i=0,n=e.length;i0){r=!0;break}}let o=!1;for(let i=0,n=e.length;i0){o=!0;break}}let a=this.showRefNum(e,t);i+=a.html,n+=a.html2,l+=a.html3;let d=1;return r&&(a=this.showRefNum(e,t,d),i+=a.html,n+=a.html2,l+=a.html3),d=2,o&&(a=this.showRefNum(e,t,d),i+=a.html,n+=a.html2,l+=a.html3),{html:i,html2:n,html3:l}}showRefNum(e,t,s,i){let n=this.icn3d;if(n.icn3dui,n.chainid2igtrack){if(!n.chainid2igtrack[t])return{html:"",html2:"",html3:""}}let l=this.getIgAnnoHtml(t,e,i,s);return n.bShowRefnum&&(n.opts.color="ig strand",n.setColorCls.setColorByOptions(n.opts,n.chains[t])),l}setChain2igArray(e,t,s){let i,n=this.icn3d;n.icn3dui;let l={};for(let r=0,o=t.length;r0&&s!=i+1&&(a.push(i),o.push(s)),i=s;a.push(s);let d={};d.domainid=t,d.startPosArray=o,d.endPosArray=a,n.chain2igArray[e].push(d)}}getIgAnnoHtml(e,t,s,i){let n=this.icn3d,l=n.icn3dui,r="",o="",a="";n.chain2igArray||(n.chain2igArray={});let d,c,h,p=!1,m="";n.chain2igArray[e]=[],this.setChain2igArray(e,t,s);let u=n.chain2igArray[e];for(let t=0,s=u.length;t=0;--t){let s=e+"_"+n.chainsSeq[e][t].resi;if(!n.residIgLoop.hasOwnProperty(s))break;delete n.resid2refnum[s],delete n.residIgLoop[s],delete n.resid2domainid[s]}}}n.chain2igArray[e]=[],this.setChain2igArray(e,t,s);let g="";for(let l=0,r=t.length;l'+h+"":' '}else g+="";else if(1==i||2==i)if(h){let e=parseInt(h).toString(),t='style="color:'+this.getRefnumColor(m,!0)+'"';g+=parseInt(e.substr(e.length-2,2))%2==0?"'+h+"":" '}else g+="";else" "!=m?(p=n.residIgLoop[t],g+=this.getRefnumHtml(t,h,c,d,m,p,o)):g+="";else g+=""}if(l.bNode)return{html:r,html2:o,html3:a};let f="icn3d-link icn3d-blue",C="IgStRAnD Ref. No.",b=n.chain2igArray[e].length,y=[],v=[],_={};n.igLabel2Pos||(n.igLabel2Pos={}),n.igLabel2Pos[e]={};for(let t=0;t",S='
    ';s&&(S='
    ');let A='
    '+C+"
    ";if(S+='
    ',s?(S+='
    Custom Ref. No.
    ',S+=''):1==i?(S+='
    Kabat Ref. No.
    ',S+=''):2==i?(S+='
    IMGT Ref. No.
    ',S+=''):(S+=A,S+=w),a+=S+"
    ",r+=S+'',n.seqStartLen&&n.seqStartLen[e]&&(r+=n.showSeqCls.insertMulGap(n.seqStartLen[e],"-")),r+=g,n.seqStartLen&&n.seqStartLen[e]&&(r+=n.showSeqCls.insertMulGap(n.seqEndLen[e],"-")),s||(r+=w),r+="",r+="
    ",r+="
    ",r+="
    ",u=n.chain2igArray[e],0==u.length)return{html:r,html2:o,html3:a};let x=[],k=[],O=[],R=[],I=e.substr(e.lastIndexOf("_")+1);for(let e=0,t=u.length;e',n.seqStartLen&&n.seqStartLen[e]&&(o+=n.showSeqCls.insertMulGapOverview(e,n.seqStartLen[e]));for(let i=0,l=y.length;i 
    ',o+='
    '+R[r]+"
    ",t=r}o+=w,o+="",a+="",S='
    ';let i=S,l=S,d=n.annoCddSiteCls.setDomainFeature(x,e,"ig",S,i,l,void 0,k,O);r+=d.html+"
    ",o+=d.html2+"",a+=d.html3+""}return{html:r,html2:o,html3:a}}getRefnumHtml(e,t,s,i,n,l,r){let o=this.icn3d,a=o.icn3dui,d=parseInt(t).toString(),c=(d-1e3*parseInt(d/1e3)).toString(),h=parseInt(d.toString().substr(0,2)),p="5"!=c.substr(0,1)&&"18"!=h,m=this.getRefnumColor(n,!0),u=l?'style="color:'+m+'"':'style="color:'+m+'; text-decoration: underline overline;"',g=d.substr(d.length-2,2),f=parseInt(g);parseInt(d.substr(d.length-3,3));let C="";return!i||50!=f||p||l?i&&f%2==0&&52!=f&&!r?(g=isNaN(t)?g+t.substr(t.length-1,1):g,C+="'+g+""):C+=" ':(o.hAtomsRefnum=a.hashUtilsCls.unionHash(o.hAtomsRefnum,o.residues[e]),C+="'+i.substr(0,1)+""+i.substr(1)+""),C}getRefnumColor(e,t){let s=this.icn3d.icn3dui,i=e?e.substr(0,1):"";return"C"==e?"#0000FF":"C'"==e?"#6495ED":"C''"==e?"#006400":"A"==i?"#9400D3":"B"==i?"#ba55d3":"D"==i?"#00FF00":"E"==i?"#FFD700":"F"==i?"#FF8C00":"G"==i?"#FF0000":s.htmlCls.GREYB}getProtodomainColor(e){let t=this.icn3d.icn3dui,s=e?e.substr(0,1):"";return"A"==s||"D"==s?"#0000FF":"B"==s||"E"==s?"#006400":"C"==e||"F"==s?"#FFD700":"C'"==e||"G"==s?"#FF8C00":"C''"==e?"#FF0000":t.htmlCls.GREYB}}class At{constructor(e){this.icn3d=e}showCrosslink(e,t){let s=this.icn3d;s.icn3dui;let i=this;void 0===s.clbondpnts?setTimeout((function(){i.showCrosslink_base(e,t)}),1e3):this.showCrosslink_base(e,t)}showCrosslink_base(e,t){let s=this.icn3d;s.icn3dui.bNode&&(s.resid2crosslink||(s.resid2crosslink={}),s.resid2crosslink[e]||(s.resid2crosslink[e]=[]));let i=t,n={},l=i.substr(0,i.indexOf("_")),r=s.clbondpnts[l];if(void 0===r)return $("#"+s.pre+"dt_crosslink_"+e).html(""),$("#"+s.pre+"ov_crosslink_"+e).html(""),void $("#"+s.pre+"tt_crosslink_"+e).html("");for(let e=0,t=r.length;e',a=o,d=o,c=e.indexOf("_"),h=e.substr(c+1);h.length>1&&"1"==h.substr(h.length-1)&&(h=h.substr(0,h.length-1)),n=e,i=t.domains[e]?t.domains[e].domains:[];for(let t=0,c=i.length;t17?c.substr(0,17)+"...":c,p=i[t].intervals,m=[],u=[],g={},f=0;for(let t=0,s=p.length;t'+h+" ",b=''+f.toString()+" Res";d+=C+b+"
    ";let y='';o+=C+b+y,a+=C+b+y;let v="domain3d"+t.toString();l.seqStartLen&&l.seqStartLen[e]&&(o+=l.showSeqCls.insertMulGap(l.seqStartLen[e],"-"));for(let t=0,s=l.giSeq[e].length;t1&&(n=i[0]+"..");let r=s;o+=''+i+""}else o+="-"}l.seqStartLen&&l.seqStartLen[e]&&(o+=l.showSeqCls.insertMulGap(l.seqEndLen[e],"-"));let _=l.firstAtomObjCls.getFirstCalphaAtomObj(l.chains[e]),w=void 0===_.color||"FFFFFF"===_.color.getHexString()?"DDDDDD":_.color.getHexString(),S=void 0!==_.color?w:"CCCCCC";if(l.seqStartLen&&l.seqStartLen[e]&&(a+=l.showSeqCls.insertMulGapOverview(e,l.seqStartLen[e])),r.cfg.blast_rep_id!=e)for(let s=0,i=m.length;s ',a+='"}else{let s=[],i=[];for(let e=0,t=m.length;e ',a+='"}}y=' '+f.toString()+" Residues",y+="",y+="
    ",o+=y,a+=y}if(s||(o+="",a+="",d+="",$("#"+l.pre+"dt_domain_"+e).html(o),$("#"+l.pre+"ov_domain_"+e).html(a),$("#"+l.pre+"tt_domain_"+e).html(d)),s&&l.chainid2clashedResidpair){l.clashedResidHash={};for(let e in l.chainid2clashedResidpair){let t=e.split("|"),s=l.chainid2clashedResidpair[e].split("|");parseInt(s[0])0){let s={};for(let i in e.clashedResidHash)s=t.hashUtilsCls.unionHash(s,e.residues[i]);e.bHideClashed?e.hAtoms=t.hashUtilsCls.exclHash(e.hAtoms,s):e.hAtoms=t.hashUtilsCls.unionHash(e.hAtoms,s),e.dAtoms=t.hashUtilsCls.cloneHash(e.hAtoms)}}getMoreResidues(e,t,s,i){let n=this.icn3d;n.icn3dui;let l={};for(let r=1;r<100;++r){let o=t+"_"+(e+s*r).toString(),a=n.firstAtomObjCls.getFirstAtomObj(n.residues[o]);if(a){let e=!1;if("not coil"==i?e="coil"!=a.ss:"ssbegin"==i?e=a.ssbegin:"ssend"==i&&(e=a.ssend),e)break;l[o]=1}}return l}}class kt{constructor(e){this.icn3d=e}async showSnp(e,t){this.icn3d.icn3dui,await this.showSnpClinvar(e,t,!0)}async showClinvar(e,t){this.icn3d.icn3dui,await this.showSnpClinvar(e,t,!1)}async showSnpClinvar(e,t,s){let i=this.icn3d.icn3dui,n=this,l=i.htmlCls.baseUrl+"vastdyn/vastdyn.cgi?chainid="+t;try{let r=await i.getAjaxPromise(l,"jsonp"),o=r.snpgi,a=r.gi;if(s)await n.showSnpPart2(e,t,o);else{let s=o;[6137708,1942289,224510717,2624886,253723219,2554905,75765331,3660278,312207882,319443632,342350956,1827805,109157826,1065265,40889086,6730307,163931185,494469,163931091,60594093,55669745,18655489,17942684,6980537,166235465,6435586,4139398,4389047,364506122,78101667,262118402,20664221,2624640,158430173,494395,28948777,34810587,13399647,3660342,261278854,342350965,384482350,378792570,15988303,213424334,4558333,2098365,10835631,3318817,374074330,332639529,122919696,4389286,319443573,2781341,67464020,194709238,210061039,364506106,28949044,40889076,161172338,17943181,4557976,62738484,365813173,6137343,350610552,17942703,576308,223674070,15826518,1310997,93279697,4139395,255311799,157837067,361132363,357380836,146387678,383280379,1127268,299856826,13786789,1311054,46015217,3402130,381353319,30750059,218766885,340707375,27065817,355333104,2624634,62738384,241913553,304446010].includes(a)&&(s=a),await n.showClinvarPart2(e,t,s)}}catch(t){return void(s?n.processNoSnp(e):n.processNoClinvar(e))}}navClinVar(e){let t=this.icn3d;t.icn3dui;let s=this;t.currClin[e]=-1,$(document).on("click","#"+t.pre+e+"_prevclin",(function(t){let i=s.icn3d;t.stopImmediatePropagation();let n=void 0!==i.resi2disease_nonempty[e]?Object.keys(i.resi2disease_nonempty[e]).length:0;--i.currClin[e],i.currClin[e]<0&&(i.currClin[e]=n-1),s.showClinVarLabelOn3D(e)})),$(document).on("click","#"+t.pre+e+"_nextclin",(function(t){let i=s.icn3d;t.stopImmediatePropagation();let n=void 0!==i.resi2disease_nonempty[e]?Object.keys(i.resi2disease_nonempty[e]).length:0;++i.currClin[e],i.currClin[e]>n-1&&(i.currClin[e]=0),s.showClinVarLabelOn3D(e)}))}showClinVarLabelOn3D(e){let t,s,i=this.icn3d,n=i.icn3dui,l=Object.keys(i.resi2disease_nonempty[e]);t=e,s=t+"_"+(parseInt(l[i.currClin[e]])+i.baseResi[e]).toString();let r="",o=i.resi2disease_nonempty[e][l[i.currClin[e]]];for(let e=0,t=o.length;e0?o[0]:"N/A");let a=i.applyCenterCls.centerAtoms(n.hashUtilsCls.hash2Atoms(i.residues[s],i.atoms));r.length>30&&(r=r.substr(0,30)+"..."),i.selectionCls.removeSelection(),null==i.labels&&(i.labels={}),i.labels.clinvar=[];let d=i.LABELSIZE,c="black"!=i.opts.background?i.colorWhitebkgd:i.colorBlackbkgd;i.analysisCls.addLabel(r,a.center.x+1,a.center.y+1,a.center.z+1,d,c,void 0,"clinvar"),i.hAtoms={};for(let e in i.residues[s])i.hAtoms[e]=1;$("#clinvar_"+i.pre+s).addClass("icn3d-highlightSeq"),void 0===$("#"+i.pre+"modeswitch")[0]||$("#"+i.pre+"modeswitch")[0].checked||i.definedSetsCls.setMode("selection"),i.drawCls.draw()}getSnpLine(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g){let f=this.icn3d,C=f.icn3dui,b="",y=m?"clinvar":"snp",v=!1;for(let e in i){for(let t=0,s=i[e].length;t(from human)",i=" (based on human sequences and mapped to this structure by sequence similarity)"),b+=m?'":'"}else if(2==e&&m){let e=C.utilsCls.isMobile()?"none":"button";b+='
    ',b+='
    '}else b+='
    ';let _=y,w=0,S=0,A={},x={},k=f.firstAtomObjCls.getResiduesFromAtoms(f.chains[h]);for(let t in k){let i=t.split("_")[2];if(void 0!==r[i]){++w;let t="";for(let n=0,r=s[i].length;n'+O+" Res":'',u)return b+"
    ";b+='';let R="",I=0,E=0;p?f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGapOverview(h,f.seqStartLen[h])):f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGap(f.seqStartLen[h],"-"));for(let t=1,a=f.giSeq[h].length;t<=a;++t){let a=f.ParserUtilsCls.getResi(h,t-1),d=a;if(p){if(void 0!==r[d]){let e=f.giSeq[h][t-1],i=e;e.length>1&&(i=e[0]+"..");let n=a+i+">";for(let e=0,t=s[d].length;e=0&&(b+='
     
    ',b+='
     
    ',I+=r,E+=1):r>0&&(b+='
     
    ',b+='
     
    ',I+=r,E+=1)}}else if(b+=f.showSeqCls.insertGap(h,t-1,"-"),void 0!==r[d])if(m||1!=e){let r=f.giSeq[h][t-1],c=r;r.length>1&&(c=r[0]+"..");let p,u="",y="
    ",v=s[d].length,w=0,S=0;if(2==e&&(w=0,S=v),m){p=1;let t=0;for(let e=w;e0?w+="; ":0!==e&&1!==e||(R='disease="'+b[t]+'"'),w+=b[t],""!=_[t]&&(w+="("+_[t]+")"),++S;t"+s[d][e],y+=": "+w,g&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(r,"snpin3d","3D with scap","SNP in 3D with scap",70,m)+"  ",y+=f.showAnnoCls.addSnpButton(r,"snpinter","Interactions","SNP Interactions in 3D",70,m)+"  ",y+=f.showAnnoCls.addSnpButton(r,"snppdb","PDB","Download SNP PDB",35,m)),y+="
    Links: ClinVar",0!=i[d][e]&&(y+=", dbSNP(rs"+i[d][e]+")"),e
    "),++t}t>p&&2==e&&(u+="..")}else{p=1;for(let e=w;e"+s[d][e],g)m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),0!=i[d][e]&&(y+="
    Link: dbSNP(rs"+i[d][e]+")"),e
    ");else{let s=l[d][e].split("; "),a=o[d][e].split("; "),c="",h=0;for(let t=0,i=s.length;t0?c+="; ":0!==e&&1!==e||(R='disease="'+s[t]+'"'),c+=s[t],""!=a[t]&&(c+="("+a[t]+")"),++h;""!=c?(y+=": "+c,m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),y+="
    Links: ClinVar, dbSNP(rs"+i[d][e]+")"):(m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),y+="
    Link: dbSNP(rs"+i[d][e]+")"),e
    ")}}v>p&&2==e&&(u+="..")}y+="
    ",b+=m?1==e?"":""==u||" "==u?"-":''+u+"":""==u||" "==u?"-":g?''+u+"":''+u+""}else b+="";else b+="-"}return p||f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGap(f.seqEndLen[h],"-")),b+=1==e?' '+O+" Residues":'',b+="
    ",b+="
    ",b}processSnpClinvar(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui,o='
    ',a=o,d=o,c='
    ',h=c,p=c,m=!i||n?e.data:e.split("\n"),u={},g={},f={};void 0===l.resi2disease_nonempty[t]&&(l.resi2disease_nonempty[t]={});let C={},b={},y={},v={},_={},w="";r.bNode&&(i?(l.resid2snp||(l.resid2snp={}),l.resid2snp[t]||(l.resid2snp[t]=[])):(l.resid2clinvar||(l.resid2clinvar={}),l.resid2clinvar[t]||(l.resid2clinvar[t]=[])));let S={};for(let e=0,s=m.length;e5&&(d=parseInt(s[5])):s.length>8&&(d=parseInt(s[8])),o==w)continue;w=o;let c=o.indexOf(">"),h=o.substr(0,c-1),p=Math.round(h),A=d?p:l.ParserUtilsCls.getResi(t,p-1),x=A+o.substr(c-1);if(S.hasOwnProperty(x))continue;S[x]=1;let k=o.substr(c-1,1),O=l.firstAtomObjCls.getFirstAtomObj(l.residues[t+"_"+A]),R=O?r.utilsCls.residueName2Abbr(O.resn.substr(0,3)):"";if(d||(R=l.chainsSeq[t][p-1].name),k!=R)continue;if(r.bNode){let e={};e[t+"_"+A]=x,i?l.resid2snp[t].push(e):l.resid2clinvar[t].push(e)}let I=x.substr(x.indexOf(">")+1),E=i?"":s[5],T=i?"":s[6],P=i?"":s[7];v[A]=1,""!=T&&(_[A]=1),g[A]=e+1,void 0===u[A]&&(u[A]=[]),u[A].push(I),void 0===b[A]&&(b[A]=[]),b[A].push(a),void 0===y[A]&&(y[A]=[]),y[A].push(E),void 0===f[A]&&(f[A]=[]),f[A].push(T),""!=T&&(void 0===l.resi2disease_nonempty[t][A]&&(l.resi2disease_nonempty[t][A]=[]),l.resi2disease_nonempty[t][A].push(T)),void 0===C[A]&&(C[A]=[]),C[A].push(P)}let A=Object.keys(v),x=Object.keys(_);if(i){let e=!1;o+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,void 0,i),o+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,void 0,i),d+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,!0,i),d+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,!0,i),a+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!0,e,void 0,i),o+="
    ",a+="
    ",d+="",$("#"+l.pre+"dt_snp_"+t).html(o),$("#"+l.pre+"ov_snp_"+t).html(a),$("#"+l.pre+"tt_snp_"+t).html(d)}else{let e=!0;c+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,void 0,i),c+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,void 0,i),p+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,!0,i),p+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,!0,i),h+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!0,e,void 0,i),c+="",h+="",p+="",$("#"+l.pre+"dt_clinvar_"+t).html(c),$("#"+l.pre+"ov_clinvar_"+t).html(h),$("#"+l.pre+"tt_clinvar_"+t).html(p),this.navClinVar(t,s)}l.showAnnoCls.enableHlSeq(),i?l.bAjaxSnp=!0:l.bAjaxClinvar=!0}async showClinvarPart2(e,t,s){let i=this.icn3d,n=i.icn3dui,l=this;i.chainid2uniport||await this.getUniprotForAllStructures();let r=n.htmlCls.baseUrl+"vastdyn/vastdyn.cgi?chainid_clinvar="+t+"&uniprot="+i.chainid2uniport[t];i.chainsGene[e]&&i.chainsGene[e].geneSymbol&&(r+="&gene="+i.chainsGene[e].geneSymbol);try{let s=await n.getAjaxPromise(r,"jsonp");if(s&&s.data&&s.data.length>0){let i=!1,n=s;l.processSnpClinvar(n,e,t,i)}else l.processNoClinvar(e)}catch(t){return void l.processNoClinvar(e)}}async getUniprotForAllStructures(){let e=this.icn3d,t=e.icn3dui;e.chainid2uniport={};for(let s in e.structures)if(s.length>5){let t=e.structures[s];for(let i=0,n=t.length;i0){let s=!0,n=!0;l.processSnpClinvar(i,e,t,s,n)}else l.processNoSnp(e)}catch(t){return void l.processNoSnp(e)}}else this.processNoSnp(e),console.log("No gi was found for the chain "+t+"...")}processNoClinvar(e){let t=this.icn3d;t.icn3dui,console.log("No ClinVar data were found for the protein "+e+"..."),$("#"+t.pre+"dt_clinvar_"+e).html(""),$("#"+t.pre+"ov_clinvar_"+e).html(""),t.showAnnoCls.enableHlSeq(),t.bAjaxClinvar=!0}processNoSnp(e){let t=this.icn3d;t.icn3dui,console.log("No SNP data were found for the protein "+e+"..."),$("#"+t.pre+"dt_snp_"+e).html(""),$("#"+t.pre+"ov_snp_"+e).html(""),t.showAnnoCls.enableHlSeq(),t.bAjaxSnp=!0}}class Ot{constructor(e){this.icn3d=e}showSsbond(e,t){let s=this.icn3d;s.icn3dui;let i=this;void 0===s.ssbondpnts?setTimeout((function(){i.showSsbond_base(e,t)}),1e3):this.showSsbond_base(e,t)}showSsbond_base(e,t){let s=this.icn3d;s.icn3dui.bNode&&(s.resid2ssbond||(s.resid2ssbond={}),s.resid2ssbond[e]||(s.resid2ssbond[e]=[]));let i=t,n={},l=i.substr(0,i.indexOf("_")),r=s.ssbondpnts[l];if(void 0===r)return $("#"+s.pre+"dt_ssbond_"+e).html(""),$("#"+s.pre+"ov_ssbond_"+e).html(""),void $("#"+s.pre+"tt_ssbond_"+e).html("");for(let e=0,t=r.length;e-s.halfBilayerSize){i[t.structure+"_"+t.chain+"_"+t.resi]=1}}let n=Object.keys(i);s.annoCddSiteCls.showAnnoType(e,t,"transmem","Transmembrane",n)}}class It{constructor(e){this.icn3d=e,this.init3ddomain()}init3ddomain(){this.icn3d.icn3dui,this.dcut=8,this.min_contacts=2,this.MAX_SSE=512,this.ctc_cnt=[];for(let e=0;e=this.curr_ratio+.01||f>this.split_ratio)return e;if(f>this.curr_ratio-.01&&Math.min(m,u)=0&&l[i]==t-e+i;i--);if(i<0)break;for(l[i]++,s=i+1;s-1;i++);for(l=Math.min(i-1,this.max_csz),this.curr_ne0=this.curr_ne1=0,this.curr_ratio=100,s=1;s<=l;s++)this.cut_size(s,i);if(this.top--,0==this.curr_ne0){for(n=this.stack[this.top],e=n;e-1;e++)this.parts[this.np++]=this.elements[e];this.parts[this.np++]=-1,this.n_doms++}else{if(this.save_ratios[this.saved++]=this.curr_ratio,this.curr_ne0>this.min_sse){for(n=this.stack[this.top],e=0;ethis.min_sse){for(n=this.stack[this.top],e=0;e0;)this.process_set()}output(e){let t,s;this.icn3d.icn3dui;let i=[];for(t=0;t<2*e;t++)i.push(0);for(t=s=0;st+n)break;let p=(t-a)*(t-a);p+=(s-c)*(s-c),p+=(i-h)*(i-h);let m=Math.sqrt(p);if(m>n)continue;let u={},g={};parseInt(e.rnum)this.MAX_SSE)return o=this.standardizeSubstruct(p,o,u),{subdomains:a,substruct:o};let f=h.length,C=f,b=this.c2b_AlphaContacts(f,i,n,l,t,r),y=[];for(let e=0;e=this.min_contacts&&(k[s]||(k[s]={}),k[i]||(k[i]={}),k[s][i]=1,k[i][s]=1)}let O=0,R={};this.groupnum2sheet={},this.visited={};for(let e in k)this.visited[e]=!1;for(let e in k)0==this.visited[e]&&(O++,this.countUtil(e,k,O));for(let e in this.groupnum2sheet){let t=this.groupnum2sheet[e].sort((function(e,t){return e-t}));for(let e=0,s=t.length;e0&&this.elt_size[s.sse-1]>=6&&0!=s.adj_strand2&&e++}for(let e=0;e0)for(let e=0;e0){let e=0;for(let t=0;t<=T;t++){let t=[];for(;e<2*g;){let s=this.parts[e++];if(0==s){P.push(t);break}t.push(s)}}}P.sort((function(e,t){return e[0]-t[0]}));let D=[];for(let e=0,t=P.length;e=this.min_sse&&D.push(P[e])}if(P=D,0==P.length){let e={},t={},s=0;for(let i=0,n=this.group_num.length;i=3&&(s=n)):e[n]=1)}if(0!=s){let e=[s].concat(t[s]);P.push(e)}}for(let e=0,t=P.length;e=o.length)return o=this.standardizeSubstruct(p,o,u),{subdomains:a,substruct:o};let n=o[i],l=n.From,r=n.To;for(let e=l;e<=r;e++)s[e]=1;if(0==i&&l>1)for(let e=1;e0){let e=o[i-1].To,t=parseInt(.5*(l-e-1));if(t>0)for(let e=l-t;e<=l-1;e++)s[e]=1}if(i0)for(let e=r+1;e<=r+t;e++)s[e]=1}}let i,n=!1,l=[];for(let e=0;ec&&(c=p),i.ssend&&(o.To=e+1,o.x2=i.coord.x,o.y2=i.coord.y,o.z2=i.coord.z,o.Sheet="sheet"==i.ss,r.push(o),o={}),i.ssbegin&&(o.From=e+1,o.x1=i.coord.x,o.y1=i.coord.y,o.z1=i.coord.z)}r=this.standardizeSubstruct(l,r,a);let h='{"data": [';h+='{"ss": [';let p=0;for(let e=0,s=r.length;e0&&(h+=", "),h+="["+s+","+i+","+n+","+r[e].x1.toFixed(2)+","+r[e].y1.toFixed(2)+",",h+=r[e].z1.toFixed(2)+","+r[e].x2.toFixed(2)+","+r[e].y2.toFixed(2)+","+r[e].z2.toFixed(2)+"]",++p)}h+="]",h+=', "domain": [';let m=0;for(let e=d;e<=c;++e){let n=l+"_"+e,r=t.ncbi2resid[n];r.split("_")[2];let o=e;if(m>0&&(h+=", "),i.hasOwnProperty(r)){let e=t.firstAtomObjCls.getFirstCalphaAtomObj(t.residues[r]);h+="["+o+","+(s.parasCls.resn2restype[e.resn]?s.parasCls.resn2restype[e.resn]:0)+","+e.coord.x.toFixed(2)+","+e.coord.y.toFixed(2)+","+e.coord.z.toFixed(2)+"]"}else h+="["+o+",0,0,0,0]";++m}return h+="]}",h+="]}",h}}class Et{constructor(e){this.icn3d=e}clickAddTrackButton(){let e=this.icn3d,t=e.icn3dui,s=this;t.myEventCls.onIds("#"+e.pre+"addtrack_button1","click",(async function(e){let i=s.icn3d;e.stopImmediatePropagation(),dialog.dialog("close");let n=$("#"+i.pre+"track_chainid").val(),l=$("#"+i.pre+"track_gi").val(),r=isNaN(l)?"Acc "+l:"gi "+l,o=t.htmlCls.baseUrl+"pwaln/pwaln.fcgi?from=track",a={targets:n,queries:l},d=await t.getAjaxPostPromise(o,a);s.alignSequenceToStructure(n,d,r)})),t.myEventCls.onIds("#"+e.pre+"addtrack_button2","click",(async function(e){let i=s.icn3d;e.stopImmediatePropagation(),dialog.dialog("close");let n=$("#"+i.pre+"track_chainid").val(),l=$("#"+i.pre+"track_fasta").val(),r=$("#"+i.pre+"fasta_title").val(),o=n.substr(0,n.indexOf("_")),a=n;if(5==o.length)a=a.substr(0,4);else if(o.length>5){a="";for(let e=0,t=i.chainsSeq[n].length;e8||d.length<6)&&(a=!1),d.length<9&&(o=!1),d[0];let c,h,p=d[1],m=d[2],u=d[3];d.length,d.length>5&&(c=d[5]),d.length,d.length,d.length>8&&(h=d[8]),d.length,d.length,d.length;let g=u,f="51,51,51";o?f=h:a&&("+"==c&&l.length>0?f=l[0]:"-"==c&&l.length>1?f=l[1]:"."==c&&l.length>2&&(f=l[2]));let C="",b=[];for(let e=0,t=m;e1&&(s=t[0]);let l=i.ParserUtilsCls.getResi(n,e);if(a.hasOwnProperty(n+"_"+l)){let e=i.firstAtomObjCls.getFirstCalphaAtomObj(i.residues[n+"_"+l]),t=void 0===e.color||"FFFFFF"===e.color.getHexString().toUpperCase()?"DDDDDD":e.color.getHexString(),o=void 0!==e.color?t:"CCCCCC";r+=s,d.push("#"+o)}else r+="-",d.push("")}s.showNewTrack(n,l,r,d,void 0,"selection",void 0),t.htmlCls.clickMenuCls.setLogCmd("add track | chainid "+n+" | title "+l+" | text "+s.simplifyText(r)+" | type selection",!0)}))}showNewTrack(e,t,s,i,n,l,r,o,a,d,c,h,p){let m=this.icn3d,u=m.icn3dui,g=!1;"cannot be aligned"==s&&(g=!0);let f=s.replace(/-/g,"").length;if(!o)if(s.length>m.giSeq[e].length)s=s.substr(0,m.giSeq[e].length);else if(s.length20&&(C=C.substr(0,20));let b=u.htmlCls.RESIDUE_WIDTH*s.length+200;$("#"+m.pre+"dt_custom_"+e).append("
    "),$("#"+m.pre+"dt_custom_"+e+"_"+C).width(b),$("#"+m.pre+"ov_custom_"+e).append("
    "),$("#"+m.pre+"ov_custom_"+e+"_"+C).width(b),$("#"+m.pre+"tt_custom_"+e).append("
    "),$("#"+m.pre+"tt_custom_"+e+"_"+C).width(b);let y='
    ',v=y,_=y,w=y,S=y,A=parseInt(10*Math.random()),x='",k='
    Exons
    ',O=''+f.toString()+" Pos";w+=x+O+"
    ",S+=k+O+"
    ";let R='';y+=x+O+R,v+=k+O+R,_+=x+O+R;let I=e.indexOf("_"),E="cst"+e.substr(I+1),T=0,P=0,D=(void 0===l||"seq"===l||"custom"===l)&&-1==s.indexOf("cannot-be-aligned")&&-1==s.indexOf("cannot be aligned"),M="identity"===l&&-1==s.indexOf("cannot-be-aligned")&&-1==s.indexOf("cannot be aligned"),F={},H=0;x="";let L={},N={},q={},U=0;if(h)for(let e=0,t=h.length;e"+d+"",h){let t='style="background-color:'+L[U]+'"';v+=' ";for(let t in m.residues[e+"_"+g]){let e=m.atoms[t];e.color=u.parasCls.thr(L[U]),m.atomPrevColors[t]=e.color}}x+=m.showSeqCls.insertGapOverview(e,t);let f=Math.round(m.seqAnnWidth*t/(m.maxAnnoLength+m.nTotalGap)-T-P);f<0&&(f=0),x+='
     
    ',s=void 0!==i&&""!=i[t]?i[t]:r?"rgb("+r+")":D?"#"+c:"#333",x+='
     
    ',T+=f,P+=1,++U}else g?y+=""+d+"":(y+="-",v+="")}if(void 0!==a){x="";let s=[],i=[],n=[];for(let e=0,t=a.length;e 
    ',h){let t,s,i=n[r];l=d[r]-a[r]+1;let o,c,p,m=g,u=g+l-1;g+=l;for(let e=0,i=h.length;e=i&&m<=n&&(t={exonIndex:e,rangeStart:i,rangeEnd:n,from:m,genomeRange:h[e].genomeRange}),u>=i&&u<=n&&(s={exonIndex:e,rangeStart:i,rangeEnd:n,to:u,genomeRange:h[e].genomeRange})}if(t&&s&&t.exonIndex==s.exonIndex)o=this.getExonColor(t.rangeStart,t.rangeEnd,m),c=this.getExonColor(t.rangeStart,t.rangeEnd,u),p=o+" 0%, #FFF 50%, "+c+" 100%",x+=this.getExonHtml(t.exonIndex,p,t.from,s.to,t.genomeRange,e,C,i);else if(t&&(o=this.getExonColor(t.rangeStart,t.rangeEnd,m),p=o+" 0%, #FFF 50%, #00F 100%",x+=this.getExonHtml(t.exonIndex,p,t.from,t.rangeEnd,t.genomeRange,e,C,i)),t&&s){for(let n=t.exonIndex+1;n'+t+""}}R=''+f.toString()+" Pos",R+="",R+="
    ",R+="",y+=R,_+=x+R,v+=R,w+="",S+="",h?($("#"+m.pre+"dt_custom_"+e+"_"+C).html(v+y),$("#"+m.pre+"ov_custom_"+e+"_"+C).html(_),$("#"+m.pre+"tt_custom_"+e+"_"+C).html(S+w)):($("#"+m.pre+"dt_custom_"+e+"_"+C).html(y),$("#"+m.pre+"ov_custom_"+e+"_"+C).html(_),$("#"+m.pre+"tt_custom_"+e+"_"+C).html(w))}getExonHtml(e,t,s,i,n,l,r,o){let a=this.icn3d;return a.icn3dui,''}getExonColor(e,t,s){this.icn3d.icn3dui;let i=.5*(e+t);if(s1e-200&&(h=parseFloat(h).toExponential()),n.scores.bit_score;let p=t.targets[l].seqdata,m=i.seqdata,u=n.segs;for(let e=0,t=u.length;e0&&(l=n+"H"+d.toString().padStart(2,"0")+")","coil"==t&&(s.selectionCls.selectResidueList(r,l,l,o,a),o||(o=!0)),r={})),n=e+"_H"+d.toString().padStart(2,"0"),r[p]=1,i.ssend&&(h=e+"_C(H"+d.toString().padStart(2,"0"),"helix"==t&&(s.selectionCls.selectResidueList(r,n,n,o,a),o||(o=!0)),r={})):"E"==m?(i.ssbegin&&(++c,Object.keys(r).length>0&&(l=n+"S"+c.toString().padStart(2,"0")+")","coil"==t&&(s.selectionCls.selectResidueList(r,l,l,o,a),o||(o=!0)),r={})),n=e+"_S"+c.toString().padStart(2,"0"),r[p]=1,i.ssend&&(h=e+"_C(S"+c.toString().padStart(2,"0"),"sheet"==t&&(s.selectionCls.selectResidueList(r,n,n,o,a),o||(o=!0)),r={})):(n=h+"-",r[p]=1)}}Object.keys(r).length>0&&(l=n+"Cterm)","coil"==t&&s.selectionCls.selectResidueList(r,l,l,o,a))}defineIgstrand(e,t){let s=this.icn3d,i=s.icn3dui;$("#"+s.pre+"dl_definedsets").hasClass("ui-dialog-content")&&$("#"+s.pre+"dl_definedsets").dialog("isOpen")||(i.htmlCls.dialogCls.openDlg("dl_definedsets","Select sets"),$("#"+s.pre+"atomsCustom").resizable());let n={},l=!1,r=!0;if(s.hAtoms={},"igdomain"==t){let t=s.chain2igArray[e];if(t&&t.length>0)for(let i=0,o=t.length;i1e3&&"50"==C.substr(C.length-2,2)&&(n[y]=1):(d=s.residIgLoop.hasOwnProperty(y)?"igloop":"igstrand",u&&d!=c&&Object.keys(n).length>0&&("igstrand"==c?(++h,i="Strand-"+a+"-"+e+"-"+h.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igstrand"==t&&(s.selectionCls.selectResidueList(n,i,i,l,r),l||(l=!0)),m=a):"igloop"==c&&(++p,i="Loop-"+m+"_"+o+"-"+e+"-"+p.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igloop"==t&&(s.selectionCls.selectResidueList(n,i,i,l,r),l||(l=!0))),n={}),n[y]=1,a=o,c=d,u=!0)))}"iganchor"==t?(i="Anchor-"+e,s.selectionCls.selectResidueList(n,i,i,l,r)):"igstrand"==c?(++h,i="Strand-"+a+"-"+e+"-"+h.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igstrand"==t&&s.selectionCls.selectResidueList(n,i,i,l,r)):"igloop"==c&&(++p,o="CT",i="Loop-"+m+"_"+o+"-"+e+"-"+p.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igloop"==t&&s.selectionCls.selectResidueList(n,i,i,l,r))}}simplifyText(e){this.icn3d.icn3dui;let t,s,i="",n=!1,l=-1;for(t=0,s=(e=e.replace(/undefined/g," ")).length;t20)return!1;if(void 0!==o.giSeq&&void 0!==o.giSeq[e]){let r=this.getFullText(s);return s=r.text,this.showNewTrack(e,t,s,void 0,void 0,i,n,l),!1}setTimeout((function(){a.checkGiSeq(e,t,s,i,n,l,r+1)}),100)}getFullText(e){this.icn3d.icn3dui;let t="",s=[],i=[],n=e.split(","),l=-1;for(let e=0,r=n.length;ep?t+=c.substr(0,p):t+=c;for(let e=0;ed&&(d=t.length,c=h),++h}o=n.htmlCls.baseUrl+"pwaln/pwaln.fcgi?from=msa";let p=e.split(","),m={};m[t]=0;for(let e=0,t=p.length;e0&&(g+=","+p.join(","));let f={targets:u,queries:g},C=await n.getAjaxPostPromise(o,f);if(!C.data)return void console.log("The protein accessions "+u+","+g+" can not be aligned...");let b=[];i.qt_start_end={};let y=[],v=[],_=Object.keys(C.targets)[0],w=C.targets[_].seqdata;p.splice(0,0,t);for(let e=0,s=p.length;eA&&(A=e)}let x=S,k=w.length-(A+1),O=[],R=[];for(let e=0,t=p.length;ea&&(a=t.length,d=c),++c}s.qt_start_end={};let m="genomeRes",u={};for(let e=0,i=h.length;ef&&(f=e)}for(let e=0,t=h.length;e0&&(d=h,o.targetGapHash[a+o.startposGiSeq]={from:a+o.startposGiSeq,to:d+m-1+o.startposGiSeq}),c=t[s],h=p,"-"!=t[s]?(++p,f=s,o.seqEndLen[e]=C-1-f,u||(g=s,o.seqStartLen[e]=g,u=!0)):++m;o.maxAnnoLength0&&(b+=" "),b+=e+"_"+o.targetGapHash[e].from+"_"+o.targetGapHash[e].to,++y;let v={};for(let a=0,d=i.length;a=o.seqStartLen[e]&&("-"==t[s]&&b--,"-"==h&&b++),c+=h,"-"!=t[s]&&(t[s]==i[a][s]&&++v[d],++d),p=h;"-"!=p&&u.push(C-1);let _=s[a].length<20?s[a]:s[a].substr(0,20)+"...",w=!0,S=r?r[s[a]]:void 0;this.showNewTrack(e,_,c,void 0,void 0,l,void 0,w,m,u,f,S,y)}o.opts.color="exon",o.legendTableCls.showColorLegend(o.opts.color),o.hlUpdateCls.updateHlAll(),o.drawCls.draw()}processAccList(e){this.icn3d.icn3dui;let t=e.split(","),s={},i="";for(let e=0,n=t.length;e5?(l.uniprot2acc&&l.uniprot2acc[y]&&(y=l.uniprot2acc[y]),f=y):f=e,y.length>5){let e="";for(let t=0,s=l.chainsSeq.length;t"),d=a[1].indexOf("\n");n=a[1].substr(d+1).replace(/\n/g,"");for(let e=2,t=a.length;e0&&($("#"+e.pre+"anno_cdd")[0].checked?(this.setAnnoTabCdd(),t.htmlCls.clickMenuCls.setLogCmd("set annotation cdd",!0)):(this.hideAnnoTabCdd(),t.htmlCls.clickMenuCls.setLogCmd("hide annotation cdd",!0)))}showAnnoSelectedChains(){let e=this.icn3d,t=e.icn3dui,s={};for(let t in e.hAtoms){let i=e.atoms[t];s[i.structure+"_"+i.chain]=1}$("#"+e.pre+"dl_annotations > .icn3d-annotation").hide();for(let i in s){$("#"+e.pre+"anno_"+i).length&&$("#"+e.pre+"anno_"+i).show();let s=e.firstAtomObjCls.getFirstCalphaAtomObj(e.chains[i]);if(s&&void 0!==s.resn){let i=t.utilsCls.residueName2Abbr(s.resn.substr(0,3));$("#"+e.pre+"anno_"+i).show()}}}showAnnoAllChains(){let e=this.icn3d;e.icn3dui,$("#"+e.pre+"dl_annotations > .icn3d-annotation").show()}setAnnoView(e){let t=this.icn3d;t.icn3dui.bNode||("detailed view"===e?(t.view="detailed view",$("#"+t.pre+"dl_anno_view_tabs").tabs("option","active",1)):(t.view="overview",$("#"+t.pre+"dl_anno_view_tabs").tabs("option","active",0)))}setAnnoDisplay(e,t){let s=this.icn3d;s.icn3dui;let i=["giseq","custom","site","ptm","snp","clinvar","cdd","domain","interaction","ssbond","crosslink","transmem","ig"];for(let n in i){let l=i[n];$("[id^="+s.pre+t+"_"+l+"]").attr("style",e)}}showFixedTitle(){this.icn3d.icn3dui;this.setAnnoDisplay("display:block;","tt")}hideFixedTitle(){this.icn3d.icn3dui;this.setAnnoDisplay("display:none!important;","tt")}setAnnoViewAndDisplay(e){let t=this.icn3d;if(t.icn3dui,"detailed view"===e){this.setAnnoView("detailed view");let e="display:block;";this.setAnnoDisplay(e,"dt"),$("#"+t.pre+"seqguide_wrapper").attr("style",e),e="display:none;",this.setAnnoDisplay(e,"ov")}else{this.setAnnoView("overview"),this.hideFixedTitle();let e="display:none;";this.setAnnoDisplay(e,"dt"),$("#"+t.pre+"seqguide_wrapper").attr("style",e),e="display:block;",this.setAnnoDisplay(e,"ov")}}async updateClinvar(){let e=this.icn3d;if(e.icn3dui,void 0===e.bClinvarShown||!e.bClinvarShown)for(let t in e.protein_chainid){let s=e.protein_chainid[t];await e.annoSnpClinVarCls.showClinvar(t,s)}e.bClinvarShown=!0}async updateSnp(){let e=this.icn3d;if(e.icn3dui,void 0===e.bSnpShown||!e.bSnpShown)for(let t in e.protein_chainid){let s=e.protein_chainid[t];await e.annoSnpClinVarCls.showSnp(t,s)}e.bSnpShown=!0}updateDomain(){let e=this.icn3d;e.icn3dui,void 0!==e.bDomainShown&&e.bDomainShown||e.annoDomainCls.showDomainAll(),e.bDomainShown=!0}updateInteraction(){let e=this.icn3d;if(e.icn3dui,void 0===e.bInteractionShown||!e.bInteractionShown)for(let t in e.interactChainbase){let s=e.interactChainbase[t];e.annoContactCls.showInteraction(t,s)}e.bInteractionShown=!0}async updatePTM(){let e=this.icn3d;if(e.icn3dui,void 0===e.bPTMShown||!e.bPTMShown)for(let t in e.PTMChainbase){let s=e.PTMChainbase[t];await e.annoPTMCls.showPTM(t,s,"ptm")}e.bPTMShown=!0}updateSsbond(){let e=this.icn3d;if(e.icn3dui,void 0===e.bSSbondShown||!e.bSSbondShown)for(let t in e.ssbondChainbase){let s=e.ssbondChainbase[t];e.annoSsbondCls.showSsbond(t,s)}e.bSSbondShown=!0}updateCrosslink(){let e=this.icn3d;if(e.icn3dui,void 0===e.bCrosslinkShown||!e.bCrosslinkShown)for(let t in e.crosslinkChainbase){let s=e.crosslinkChainbase[t];e.annoCrossLinkCls.showCrosslink(t,s)}e.bCrosslinkShown=!0}async updateTransmem(){let e=this.icn3d,t=e.icn3dui;if(void 0===e.bTranememShown||!e.bTranememShown)for(let s in e.protein_chainid){let i=e.protein_chainid[s];if(void 0!==t.cfg.opmid)e.annoTransMemCls.showTransmem(s,i);else if(e.bAfMem&&e.afmem_start_end){let t=e.afmem_start_end[0],n=e.afmem_start_end[1];await e.annoPTMCls.showPTM(s,i,"afmem",t,n)}else await e.annoPTMCls.showPTM(s,i,"transmem")}e.bTranememShown=!0}async updateIg(e,t){let s=this.icn3d,i=s.icn3dui;if(s.opts.color="ig strand",!e){s.hAtoms={};for(let e in s.protein_chainid)s.hAtoms=i.hashUtilsCls.unionHash(s.hAtoms,s.chains[e])}let n=s.firstAtomObjCls.getResiduesFromAtoms(s.hAtoms);for(let e in n)s.resid2refnum&&delete s.resid2refnum[e],s.residIgLoop&&delete s.residIgLoop[e],s.resid2domainid&&delete s.resid2domainid[e];s.bRunRefnumAgain=!0;let l=e?s.firstAtomObjCls.getChainsFromAtoms(s.hAtoms):s.protein_chainid;for(let e in l)await s.annoIgCls.showIg(e,t),s.bRunRefnumAgain=!1;s.bShowRefnum&&(s.hlUpdateCls.updateHlAll(),s.drawCls.draw())}}class Pt{constructor(e){this.icn3d=e}showAnnotations_part1(e){let t=this.icn3d,s=t.icn3dui;if(s.htmlCls.dialogCls.openDlg("dl_selectannotations","Sequences and Annotations"),(void 0===t.bAssemblyNote||!t.bAssemblyNote)&&void 0!==t.asuCnt){let e="
    Assembly Tips: Only the asymmetric unit is shown in the sequence window.
    Click \"Assembly\" in the menu \"View\" to switch between asymmetric unit and biological assembly("+t.asuCnt+" asymmetric unit).
    ";$("#"+t.pre+"dl_annotations_tabs").append(e),t.bAssemblyNote=!0}t.bResetAnno&&(t.giSeq={},t.currClin={},t.resi2disease_nonempty={},t.baseResi={},t.matchedPos={},$("#"+s.pre+"dl_annotations").empty(),t.annotationCls.setAnnoView("overview"));let i={},n={},l={};if(void 0===t.bAnnoShown||!t.bAnnoShown||t.bResetAnno){t.protein_chainid={};let r,o=Object.keys(t.chains);if(e){let s=t.resid2specCls.atoms2structureArray(e);o=[];for(let e=0,i=s.length;e1&&"1"==d.substr(d.length-1)?(d=d.substr(0,d.length-1),a=o[e].substr(0,o[e].indexOf("_"))+"_"+d):a=o[e],t.proteins.hasOwnProperty(r.serial)&&t.chainsSeq[o[e]].length>1)t.protein_chainid[o[e]]=a;else if(t.nucleotides.hasOwnProperty(r.serial)&&t.chainsSeq[o[e]].length>1)i[o[e]]=a;else if(t.chainsSeq[o[e]].length>1)n[o[e]]=a;else{let s=t.chainsSeq[o[e]][0].name,i=o[e]+"_"+t.chainsSeq[o[e]][0].resi;void 0===l[s]&&(l[s]=[]),l[s].push(i)}if((void 0!==s.cfg.pdbid||void 0!==s.cfg.opmid||void 0!==s.cfg.mmcifid||void 0!==s.cfg.mmtfid)&&(t.proteins.hasOwnProperty(r.serial)||t.nucleotides.hasOwnProperty(r.serial)))for(let s=0,i=t.chainsSeq[o[e]].length;st.maxAnnoLengthOri&&(t.protein_chainid.hasOwnProperty(e)||i.hasOwnProperty(e))&&(t.maxAnnoLengthOri=t.chainsSeq[e].length);t.maxAnnoLength=t.maxAnnoLengthOri}return{nucleotide_chainid:i,chemical_chainid:n,chemical_set:l}}async showAnnotations(e){let t=this.icn3d,s=t.icn3dui,i=this,n=this.showAnnotations_part1(e),l=n.nucleotide_chainid,r=n.chemical_chainid,o=n.chemical_set;if(!t.bAnnoShown||t.bResetAnno)if(t.bAnnoShown=!0,void 0===s.cfg.blast_rep_id){if(t.bFullUi){if(void 0!==s.cfg.mmtfid){let e=Object.keys(t.structures)[0];await t.mmcifParserCls.downloadMmcifSymmetry(e,"mmtfid")}await this.showAnnoSeqData(l,r,o)}}else if(void 0===s.cfg.blast_rep_id||t.bSmithwm||t.bLocalSmithwm){if(void 0!==s.cfg.blast_rep_id&&(t.bSmithwm||t.bLocalSmithwm)){let e,n,a=[s.cfg.blast_rep_id];if(-1!=s.cfg.query_id.indexOf(">")?n=s.cfg.query_id.substr(s.cfg.query_id.indexOf("\n")+1):!/\d/.test(s.cfg.query_id)||s.cfg.query_id.length>50?n=s.cfg.query_id:a.push(s.cfg.query_id),t.blastAcxn){let i=s.cfg.afid+"_A",n="";for(let e=0,s=t.chainsSeq[i].length;e5){let n;e.uniprot2acc&&e.uniprot2acc[i]?e.uniprot2acc[i]:e.uniprot2acc={},n="https://rest.uniprot.org/uniprotkb/search?format=json&fields=xref_geneid,gene_names&query="+i;let l=await t.getAjaxPromise(n,"json"),r=l.results[0]&&l.results[0].uniProtKBCrossReferences&&l.results[0].uniProtKBCrossReferences[0]?l.results[0].uniProtKBCrossReferences[0].id:void 0,o=l.results[0]&&l.results[0].genes&&l.results[0].genes[0]&&l.results[0].genes[0].geneName?l.results[0].genes[0].geneName.value:"ID "+r;e.chainsGene[s]={geneId:r,geneSymbol:o}}}for(let s in e.protein_chainid){let i=t.utilsCls.isMobile()?"none":"button",l=e.showSeqCls.getProteinName(s),r=l,o=0==n?"Proteins:

    ":"",a=e.chainsGene[s]&&e.chainsGene[s].geneId&&e.chainsGene[s].geneDesc?"(Gene: "+e.chainsGene[s].geneSymbol+")":"",d=s.substr(0,s.indexOf("_")),c=d.length>5?''+s+"":s,h="
    "+o+"Annotations of "+c+": "+r+""+a+"   "+this.addButton(s,"icn3d-addtrack","Add Track","Add a custom track",60,i)+"   ";h+=this.addButton(s,"icn3d-customcolor","Custom Color/Tube","Use a custom file to define the colors or tubes in 3D structure",110,i)+"   ",h+=this.addButton(s,"icn3d-helixsets","Helix Sets",'Define sets for each helix in this chain and add them to the menu of "Defined Sets"',60,i)+" "+this.addButton(s,"icn3d-sheetsets","Sheet Sets",'Define sets for each sheet in this chain and add them to the menu of "Defined Sets"',60,i)+" "+this.addButton(s,"icn3d-coilsets","Coil Sets",'Define sets for each coil in this chain and add them to the menu of "Defined Sets"',60,i),h+="   "+this.addButton(s,"icn3d-iganchorsets","Ig Anchor Set",'Define the set for all Ig anchors in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igstrandsets","Ig Strand Sets",'Define sets for each Ig strand in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igloopsets","Ig Loop Sets",'Define sets for each Ig loop in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igdomainsets","Ig Domain Sets",'Define sets for each Ig domain in this chain and add them to the menu of "Defined Sets"',80,i),$("#"+e.pre+"dl_annotations").append(h);let p=["giseq","cdd","clinvar","snp","site","ptm","ssbond","crosslink","transmem","domain","custom","interaction","ig"];for(let t in p){let i=p[t];$("#"+e.pre+"anno_"+s).append(this.getAnDiv(s,i))}$("#"+e.pre+"anno_"+s).append("


    "),++n}if(t.bNode||e.annoCddSiteCls.setToolTip(),void 0!==e.chainid_seq)await this.processSeqData(e.chainid_seq);else try{let n=[],l=[];for(let e=0,t=i.length;e=6?l.push(i[e]):n.push(i[e])}if(n.length>0){let s=t.htmlCls.baseUrl+"/vastdyn/vastdyn.cgi?chainlist="+n;e.chainid_seq=await t.getAjaxPromise(s,"jsonp")}else e.chainid_seq={};for(let t=0,s=l.length;t40&&(r=r.substr(0,40)+"...");let o="";0==i&&("protein"==s?o="Proteins:

    ":"nucleotide"==s?o="Nucleotides:

    ":"chemical"==s&&(o="Chemicals/Ions/Water:

    ")),$("#"+n.pre+"dl_annotations").append("
    "+o+""+e+": "+r+"
    "),$("#"+n.pre+"anno_"+e).append(this.getAnDiv(e,"giseq")),$("#"+n.pre+"anno_"+e).append(this.getAnDiv(e,"interaction")),$("#"+n.pre+"anno_"+e).append("


    "),n.giSeq[e]=[];for(let t=0;tChemicals/Ions/Water:

    ":"",o=t[0].lastIndexOf("_"),a=t[0].substr(0,o),d=void 0!==l.cfg.mmdbid&&void 0!==n.chainid2sid?n.chainid2sid[a]:void 0;i=void 0!==d?""+e+" ":""+e+"",$("#"+n.pre+"dl_annotations").append("
    "+r+i+"
    "),$("#"+n.pre+"anno_"+e).append("
    "),$("#"+n.pre+"anno_"+e).append("


    ");let c='
    ';c+='",c+='Count: '+t.length+"",c+='';let h=c,p=c;for(let s=0,i=t.length;s3&&(l=i.substr(0,3)),s'+l+""}let m=l.htmlCls.GREY8,u=Math.round(n.seqAnnWidth*t.length/n.maxAnnoLength);u<1&&(u=1),p+='
     
    ',c="",c+="
    ",c+="
    ",h+=c,p+=c,$("#"+n.pre+"dt_giseq_"+e).html(h),$("#"+n.pre+"ov_giseq_"+e).html(p)}async processSeqData(e){let t=this.icn3d,s=t.icn3dui;t.bAnnoShown=!0;for(let i in t.protein_chainid){let n=t.protein_chainid[i];if(e.hasOwnProperty(n)){let s=e[n];t.giSeq[i]=s;let l="";for(let e=0;e<10&&e14?"Query: "+o.substr(0,6)+"...":isNaN(s.cfg.query_id)?"Query: "+o:"Query: gi "+o;let a="cannot be aligned";t.queryStart="",t.queryEnd="",t.bRender&&alert("The sequence can NOT be aligned to the structure"),t.showSeqCls.showSeq(i,n,void 0,e,l,a,r)}else if(s.cfg.blast_rep_id==i&&(void 0!==t.seqStructAlignData||void 0!==t.seqStructAlignDataSmithwm)){let e,l,r,o,a,d=s.cfg.oriQuery_id?s.cfg.oriQuery_id:s.cfg.query_id;if(e=d.length>14?"Query: "+d.substr(0,6)+"...":isNaN(s.cfg.query_id)?"Query: "+d:"Query: gi "+d,void 0!==t.seqStructAlignData){let e,s,i=t.seqStructAlignData;if(void 0!==i.data){e=i.data[0].query;let t=Object.keys(i.data[0].targets);s=i.data[0].targets[t[0]],s=void 0!==s&&s.hsps.length>0?s.hsps[0]:void 0}if(void 0!==e&&void 0!==s){l=s.scores.e_value.toPrecision(2),l>1e-200&&(l=parseFloat(l).toExponential()),s.scores.bit_score;let t=Object.keys(i.targets);r=i.targets[t[0]].seqdata,o=e.seqdata,a=s.segs}}else{let e=t.seqStructAlignDataSmithwm;l=e.score,r=e.target.replace(/-/g,""),o=e.query.replace(/-/g,""),a=[];let s=-1,i=-1,n=!1,d={};for(let t=0,l=e.target.length;t0)if(i.orifrom-ni.from-l)for(let t=n+1;t
    "+i+"
    "}addButton(e,t,s,i,n,l){return this.icn3d.icn3dui,"
    "}addSnpButton(e,t,s,i,n,l){let r=this.icn3d;return r.icn3dui,"
    "}conservativeReplacement(e,t){let s=this.icn3d.icn3dui,i=-1!==s.parasCls.b62ResArray.indexOf(e)?s.parasCls.b62ResArray.indexOf(e):s.parasCls.b62ResArray.length-1,n=-1!==s.parasCls.b62ResArray.indexOf(t)?s.parasCls.b62ResArray.indexOf(t):s.parasCls.b62ResArray.length-1;return s.parasCls.b62Matrix[i][n]>0}getColorhexFromBlosum62(e,t){let s=this.icn3d.icn3dui,i="333333";if(!e||!t)return i;e=e.toUpperCase(),t=t.toUpperCase();let n=-1!==s.parasCls.b62ResArray.indexOf(e)?s.parasCls.b62ResArray.indexOf(e):s.parasCls.b62ResArray.length-1,l=-1!==s.parasCls.b62ResArray.indexOf(t)?s.parasCls.b62ResArray.indexOf(t):s.parasCls.b62ResArray.length-1,r=s.parasCls.b62Matrix[n][l];if(void 0===r)return"333333";if(r>0){let e=221-parseInt(r/11*221),t=e<10?"0"+e.toString(16):e.toString(16);i="DD"+t+t}else{let e=221-parseInt(-1*r/4*221),t=e<10?"0"+e.toString(16):e.toString(16);i=t+t+"DD"}return i}}class Dt{constructor(e){this.icn3d=e}getSeq(e){let t,s=this.icn3d,i=s.icn3dui;if(void 0===i.cfg.mmdbid&&void 0===i.cfg.gi&&void 0===i.cfg.blast_rep_id&&void 0===i.cfg.align&&void 0===i.cfg.chainalign&&void 0===i.cfg.mmdbafid){t=[];for(let i=0;i10){m='
    ';let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]);void 0===a.cfg.mmdbid&&void 0===a.cfg.gi&&void 0===a.cfg.blast_rep_id&&void 0===a.cfg.align&&void 0===a.cfg.chainalign&&void 0===a.cfg.mmdbafid||void 0===t.resi_ori||t.resi_ori==t.resi||-1!=e.indexOf("Misc")?m+='
    ':m+='
    NCBI Residue Numbers
    ',m+='',f+=m+"
    ",u+=m+'';let s=0,i=0,n="";o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e]," "));for(let t=0,l=d.length;t",l%10==0&&(u+=l);let r=e+"_"+l,a=l%10!=0&&l%10!=1&&l%10!=9;if(o.residues.hasOwnProperty(r)){let e=o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[r]);"H"==o.secondaries[r]&&e.ssbegin?(++s,n='H'+s+"",a&&(u+=n,n="")):"E"==o.secondaries[r]&&e.ssbegin?(++i,"green"==o.sheetcolor?n='S'+i+"":"yellow"==o.sheetcolor&&(n='S'+i+""),a&&(u+=n,n="")):e.ssend&&(n=""),""!=n&&a&&(u+=n,n="")}u+=""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e]," ")),u+='',u+="",u+="
    ",u+="
    ",f+=""}m='
    ',m+='
    ',m+='',f+=m+"
    ",u+=m+'',o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t':'',u+=" ";else if("E"==o.secondaries[s]){o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[s]).ssend?"green"==o.sheetcolor?u+='':"yellow"==o.sheetcolor&&(u+=''):"green"==o.sheetcolor?u+='':"yellow"==o.sheetcolor&&(u+=''),u+=" "}else"c"==o.secondaries[s]?u+=' ':"o"==o.secondaries[s]&&(u+=' ');else u+="-"}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),u+='',u+="",u+="
    ",u+="
    ",u+="",f+="",m=a.cfg.blast_rep_id===e?'
    ':'
    ';let C="Protein",b="Protein";void 0!==s&&("nucleotide"==s?(C="Nucl.",b="Nucleotide"):"chemical"==s&&(C="Chem.",b="Chemical")),m+='",m+=''+(o.baseResi[e]+1).toString()+"",f+=m+"
    ";let y='';u+=m+y,g+=m+y;let v,_=0;o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t1&&(i=s[0]+".."),v=o.ParserUtilsCls.getResi(e,t),o.residues.hasOwnProperty(e+"_"+v)){let n="333333";if(a.cfg.blast_rep_id==e&&void 0!==o.fullpos2ConsTargetpos&&void 0!==o.fullpos2ConsTargetpos[t+_])n=o.fullpos2ConsTargetpos[t+_].color;else{let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[e+"_"+v]),s=void 0===t.color||"FFFFFF"===t.color.getHexString().toUpperCase()||"FFF"===t.color.getHexString().toUpperCase()?"DDDDDD":t.color.getHexString();n=void 0!==t.color?s:"CCCCCC"}u+=''+i+""}else i=i.toLowerCase(),u+=''+i+""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),a.cfg.blast_rep_id==e&&(o.opts.color=o.blastAcxn?"confidence":"conservation",o.setColorCls.setColorByOptions(o.opts,o.atoms));let w=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]),S=w.color?w.color.getHexString():"CCCCCC",A=Math.round(o.seqAnnWidth*d.length/(o.maxAnnoLength+o.nTotalGap));if(A<1&&(A=1),o.seqStartLen&&o.seqStartLen[e]&&(g+=this.insertMulGapOverview(e,o.seqStartLen[e])),a.cfg.blast_rep_id!=e)g+='";else{let t=[],s=[];t.push(0);for(let e=0,i=d.length;e';for(let i=0,n=t.length;i'+e+"
    ";g+="
    "}if(m=''+v+"",m+="",m+="
    ",u+=m,g+=m,a.cfg.blast_rep_id==e){if(void 0!==r&&""!==r){m='",m+='',f+=m+"
    ";let t='';u+=m+t,g+=m+t;let s=0,i=0,l=1;o.queryStart;for(let t=0,n=r.length;t-";else if(" "==n)u+=" ";else{let r=o.fullpos2ConsTargetpos[t].pos;if(o.residues.hasOwnProperty(e+"_"+r)){let s=o.fullpos2ConsTargetpos[t].color;u+=''+n+""}else n=n.toLowerCase(),u+=''+n+"";g+=this.insertGapOverview(e,t);let a=Math.round(o.seqAnnWidth*t/(o.maxAnnoLength+o.nTotalGap)-s-i);a>=0&&(g+='
     
    ',g+='
     
    ',s+=a,i+=l)}}m='',m+="",m+="
    ",u+=m,g+=m}m='
    '+i+"
    ",m+=''+o.queryStart+"",f+=m+"
    ";let t='';u+=m+t,g+=m+t;let s=o.queryStart;for(let t=0,i=l.length;t-":(void 0===o.fullpos2ConsTargetpos||void 0===o.fullpos2ConsTargetpos[t]||o.residues.hasOwnProperty(e+"_"+o.fullpos2ConsTargetpos[t].pos)||(i=i.toLowerCase()),u+=''+i+"",++s)}let a=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]),d=void 0===a.color||"FFFFFF"===a.color.getHexString()?"DDDDDD":a.color.getHexString(),c=void 0!==a.color?d:"CCCCCC",h=[],p=[],C="-";for(let e=0,t=l.length;e ',g+='
    '+i+"
    "}m=''+o.queryEnd+"",m+="",m+="
    ",u+=m,g+=m}if(u+="",g+="",f+="",d.length>10){let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]);if((void 0!==a.cfg.mmdbid||void 0!==a.cfg.gi||void 0!==a.cfg.blast_rep_id||void 0!==a.cfg.align||void 0!==a.cfg.chainalign||void 0!==a.cfg.mmdbafid)&&void 0!==t.resi_ori&&t.resi_ori!=t.resi&&-1==e.indexOf("Misc")){m='
    ',m+='
    ',m+='
    PDB Residue Numbers
    ',m+='',f+=m+"
    ",u+=m+'',o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t",e%10==0&&(u+=e+" "),u+=""}else u+=""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),u+='',u+="",u+="
    ",u+="
    ",u+="
    ",f+=""}if(o.bShowCustomRefnum&&o.chainsMapping.hasOwnProperty(e)){let t=!0,s=o.annoIgCls.showRefNum(d,e,void 0,t);u+=s.html,f+=s.html3}}o.bShowRefnum&&o.hlUpdateCls.updateHlAll(),$("#"+o.pre+"dt_giseq_"+e).html(u),$("#"+o.pre+"ov_giseq_"+e).html(g),$("#"+o.pre+"tt_giseq_"+e).html(f)}insertGap(e,t,s,i){let n=this.icn3d;n.icn3dui;let l="";return void 0!==n.targetGapHash&&n.targetGapHash.hasOwnProperty(t)&&(l+=this.insertMulGap(n.targetGapHash[t].to-n.targetGapHash[t].from+1,s,i)),l}insertMulGap(e,t,s){this.icn3d.icn3dui;let i="";for(let n=0;n"+t+"";return i}insertGapOverview(e,t){let s=this.icn3d;s.icn3dui;let i="";return void 0!==s.targetGapHash&&s.targetGapHash.hasOwnProperty(t)&&(i+=this.insertMulGapOverview(e,s.targetGapHash[t].to-s.targetGapHash[t].from+1)),i}insertMulGapOverview(e,t){let s=this.icn3d;s.icn3dui;let i="",n=s.seqAnnWidth*t/(s.maxAnnoLength+s.nTotalGap);return n=parseInt(n),i+='
     
    ',i}setAlternativeSeq(e,t){let s=this.icn3d;s.icn3dui;let i=s.chainsSeq[e];s.giSeq[e]=[];for(let t=0,n=i.length;t1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+e,!0)}else{let o={};if(void 0!==$(e).attr("domain")||void 0!==$(e).attr("feat")||void 0!==$(e).attr("3ddomain")||void 0!==$(e).attr("custom")||void 0!==$(e).attr("ig")){t.hlUpdateCls.hlSummaryDomain3ddomain(e);let a,d,c,h=$(e).attr("from").split(","),p=$(e).attr("to").split(",");r.substr(0,r.indexOf("_"));for(let s=0,i=h.length;s1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+c,!0)}}else{t.bCtrl||t.bShift?(t.currSelectedSets.push(i),t.selectionCls.selectAChain(r,i,!0,!0)):(t.currSelectedSets=[i],t.selectionCls.selectAChain(r,i,t.bAlignSeq)),t.bAlignSeq?s.htmlCls.clickMenuCls.setLogCmd("select alignChain "+r,!0):s.htmlCls.clickMenuCls.setLogCmd("select chain "+r,!0);let e=t.currSelectedSets.join(" or ");t.currSelectedSets.length>1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+e,!0)}else t.hlObjectsCls.removeHlObjects(),t.hlUpdateCls.removeHl2D(),$("#"+t.pre+"atomsCustom").val("")}}selectResidues(e,t){let s=this.icn3d,i=s.icn3dui;if(!i.bNode&&(!1!==s.bSelectResidue||s.bShift||s.bCtrl||s.selectionCls.removeSelection(),void 0!==e&&""!==e)){e=e.substr(e.indexOf("_")+1),s.bSelectResidue=!0,$(t).toggleClass("icn3d-highlightSeq");let n=e.substr(e.indexOf("_")+1);if(s.residues.hasOwnProperty(n))if($(t).hasClass("icn3d-highlightSeq")){for(let e in s.residues[n])s.hAtoms[e]=1;if(s.selectedResidues[n]=1,s.bAnnotations&&void 0!==$(t).attr("disease")){let e=$(t).attr("disease"),l=s.applyCenterCls.centerAtoms(i.hashUtilsCls.hash2Atoms(s.residues[n],s.atoms)),r=15;e.length>r&&(e=e.substr(0,r)+"...");let o=s.LABELSIZE,a=i.htmlCls.GREYD;s.analysisCls.addLabel(e,l.center.x,l.center.y,l.center.z,o,a,void 0,"custom")}}else{for(let e in s.residues[n])delete s.hAtoms[e];delete s.selectedResidues[n],s.hlObjectsCls.removeHlObjects()}}}}class Ft{constructor(e){this.icn3d=e}update2DdgmContent(){let e=this.icn3d,t=e.icn3dui,s="";void 0!==t.cfg.mmdbid||void 0!==t.cfg.gi?(s+=e.diagram2dCls.draw2Ddgm(e.interactionData,e.inputid,void 0,!0),s+=e.diagram2dCls.set2DdgmNote(),$("#"+e.pre+"dl_2ddgm_html").html(s)):e.mmdbidArray&&(void 0!==t.cfg.align||void 0!==t.cfg.chainalign||e.bRealign)&&(s+=e.diagram2dCls.draw2Ddgm(e.interactionData1,e.mmdbidArray[0].toUpperCase(),0,!0),void 0!==e.mmdbid_q&&e.mmdbid_q===e.mmdbid_t?s+=e.diagram2dCls.draw2Ddgm(e.interactionData2,e.mmdbidArray[0].toUpperCase(),1,!0):s+=e.diagram2dCls.draw2Ddgm(e.interactionData2,e.mmdbidArray[1].toUpperCase(),1,!0),s+=e.diagram2dCls.set2DdgmNote(!0),$("#"+e.pre+"dl_2ddgm_html").html(s))}changeSeqColor(e){let t=this.icn3d,s=t.icn3dui;for(let i=0,n=e.length;i0&&($("#"+t.pre+"dl_2ddgm svg line").attr("stroke","#000000"),$("#"+t.pre+"dl_2ddgm line").attr("stroke-width",1)),e||($("#"+t.pre+"dl_linegraph circle").attr("stroke","#000000"),$("#"+t.pre+"dl_linegraph circle").attr("stroke-width",1),$("#"+t.pre+"dl_scatterplot rect").attr("stroke","#000000"),$("#"+t.pre+"dl_scatterplot circle").attr("stroke","#000000"),$("#"+t.pre+"dl_scatterplot rect").attr("stroke-width",1),$("#"+t.pre+"dl_scatterplot circle").attr("stroke-width",1))}removeHlMenus(){let e=this.icn3d;e.icn3dui,$("#"+e.pre+"atomsCustom").val(""),$("#"+e.pre+"atomsCustom")[0].blur()}updateHlAll(e,t,s,i){let n=this.icn3d,l=n.icn3dui;n.prevHighlightAtoms=l.hashUtilsCls.cloneHash(n.hAtoms),this.updateHlObjects(i),void 0!==e?this.updateHlSeqInChain(e,s):this.updateHlSeq(void 0,void 0,s),this.updateHl2D(),(void 0===t||t)&&this.updateHlMenus(e)}updateHlObjects(e){let t=this.icn3d;t.icn3dui,t.hlObjectsCls.removeHlObjects(),(t.hAtoms&&t.atoms&&Object.keys(t.hAtoms).length0&&(e=s.defNames2Residues[i]);let t={};if(void 0!==s.defNames2Atoms[i]&&s.defNames2Atoms[i].length>0){for(let e=0,n=s.defNames2Atoms[i].length;e0&&(r=t.firstAtomObjCls.getFirstCalphaAtomObj(l))}let o=void 0!==r&&void 0!==r.color?"#"+r.color.getHexString():"#FFFFFF",a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] rect[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] rect[class='icn3d-basenode']");void 0!==a&&(t.diagram2dCls.highlightNode("rect",a,d,l),$(a).attr("fill",o)),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] circle[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] circle[class='icn3d-basenode']"),void 0!==a&&(t.diagram2dCls.highlightNode("circle",a,d,l),$(a).attr("fill",o)),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] ellipse[class='icn3d-hlnode']"),void 0!==a&&t.diagram2dCls.highlightNode("ellipse",a,void 0,l),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] polygon[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] polygon[class='icn3d-basenode']"),void 0!==a&&(t.diagram2dCls.highlightNode("polygon",a,d,l),$(a).attr("fill",o))}if(void 0!==t.lineArray2d)for(let e=0,i=t.lineArray2d.length;e1){let e={},l=[],o=[],a=[],c=[],h=[],m=[],u=[],g=[],f=[],C=[],b=[],y=[],v={},_={},w={};for(let t=0,s=p.length;t4&&!isNaN(parseInt(e.substr(-4,4)))||t.length>4&&!isNaN(parseInt(t.substr(-4,4))),c=e+"_"+t+"_"+s.c,h=n.hashUtilsCls.cloneHash(s);h.source+=S+i.chainsMapping[r][d],h.target+=S+i.chainsMapping[o][C];let m=n.hashUtilsCls.cloneHash(s);m.source+=A+i.chainsMapping[r][d],m.target+=A+i.chainsMapping[o][C],v[c]!=p.length||!a&&0!=w[c]?b[f].push(m):u[f].push(h),g[f][s.source]=i.chainsMapping[r][d],g[f][s.target]=i.chainsMapping[o][C],y[f][s.source]=i.chainsMapping[r][d],y[f][s.target]=i.chainsMapping[o][C]}else{let e=n.hashUtilsCls.cloneHash(s);e.source+=i.chainsMapping[r]&&i.chainsMapping[r][d]?A+i.chainsMapping[r][d]:A+k,e.target+=i.chainsMapping[o]&&i.chainsMapping[o][C]?A+i.chainsMapping[o][C]:A+k,b[f].push(e),g[f][s.source]=i.chainsMapping[r]&&i.chainsMapping[r][d]?i.chainsMapping[r][d]:x,g[f][s.target]=i.chainsMapping[o]&&i.chainsMapping[o][C]?i.chainsMapping[o][C]:x,y[f][s.source]=i.chainsMapping[r]&&i.chainsMapping[r][d]?i.chainsMapping[r][d]:k,y[f][s.target]=i.chainsMapping[o]&&i.chainsMapping[o][C]?i.chainsMapping[o][C]:k}}}let O=[],R=[],I=0,E=[],T=1;for(let e=0,t=p.length;e0&&(T=1,t=i.getGraphCls.getNodeTopBottom(c[e],d,void 0,T,g[e]),h[e]=t.nodeArray1,m[e]=t.nodeArray2,d=n.hashUtilsCls.unionHash(d,t.name2node),T=2,t=i.getGraphCls.getNodeTopBottom(c[e],d,void 0,T,y[e]),f[e]=t.nodeArray1,C[e]=t.nodeArray2,d=n.hashUtilsCls.unionHash(d,t.name2node)),O[e]=l[e].length,R[e]=o[e].length,I=Math.max(I,R[e]),E.push(p[e])}let P,D,M,F,H,L=1,N=3*L,q=7*L,U=10,$=10,B=30,j=20;t?(M=(n.utilsCls.sumArray(O)+2*E.length)*(N+q)+4*$+2*B+j*E.length,D=(I+2)*(N+q)+2*U+B):(P=110+j,M=P*E.length,D=(I+2)*(N+q)+2*U,D+=20),Object.keys(i.chainsMapping).length>0&&(M*=3),t?(i.scatterplotWidth=2*D,H=i.scatterplotWidth,F=n.scatterplotid):(i.linegraphWidth=2*D,H=i.linegraphWidth,F=n.linegraphid),s=0==E.length?"No interactions found for each structure

    ":"2D integration graph for "+E.length+" structure(s) "+E+'. There are three sections: "Interactions", "Common interactions", and "Different interactions". Each section has '+E.length+" graphs.

    ",s+="";let z,G=0;T=0,z=this.drawGraphPerType(T,p,t,l,o,a,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html,Object.keys(i.chainsMapping).length>0&&(T=1,z=this.drawGraphPerType(T,p,t,h,m,u,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html,T=2,z=this.drawGraphPerType(T,p,t,f,C,b,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html),s+=""}else if(t){let e,t,l,c,h=p[0],m=o.length,u=a.length,g=1,f=3*g,C=7*g,b=30;t=(m+2)*(f+C)+2*10+b,e=(u+2)*(f+C)+2*10+b,i.scatterplotWidth=2*e,c=i.scatterplotWidth,l=n.scatterplotid,s=r.length>0?"":"No interactions found for these two sets

    ",s+="",s+=this.drawScatterplot_base(o,a,r,d,0),i.lineGraphStr+=i.getGraphCls.updateGraphJson(h,1,o,a,r),s+=""}else{let e=p[0],t=o.length,l=a.length,c=1,h=3*c,m=7*c,u=110,g=10,f=t>l?t*(h+m)+2*g:l*(h+m)+2*g;i.linegraphWidth=2*f,s=r.length>0?"":"No interactions found for these two sets

    ",s+="",s+=this.drawLineGraph_base(o,a,r,d,0),i.lineGraphStr+=i.getGraphCls.updateGraphJson(e,1,o,a,r),s+=""}return i.lineGraphStr+="}\n",i.scatterplotStr=i.lineGraphStr,t?$("#"+i.pre+"scatterplotDiv").html(s):$("#"+i.pre+"linegraphDiv").html(s),s}drawGraphPerType(e,t,s,i,n,l,r,o,a,d,c,h,p,m){let u=this.icn3d;u.icn3dui;let g,f,C="",b=2==t.length&&"2"==t[1].replace(t[0],"");0==e?(g="Interactions in ",f=""):1==e?(g="Common interactions in ",f="_common"):2==e&&(g="Different interactions in ",f="_diff");for(let y=0,v=t.length;y0&&(u.lineGraphStr+=", \n"):u.lineGraphStr+=", \n",u.lineGraphStr+=u.getGraphCls.updateGraphJson(t[y],y+f,i[y],n[y],l[y])}return{heightFinal:o,html:C}}getIdArrayFromNode(e){let t=this.icn3d.icn3dui,s=[];s.push(""),s.push("");let i=e.r.substr(4);return s=s.concat(t.utilsCls.getIdArray(i)),s}drawLineGraph_base(e,t,s,i,n,l,r){let o,a,d=this.icn3d,c=d.icn3dui,h="",p=e.length,m=t.length;p>m?(o=10,a=10*Math.abs(p-m)*.5+10):(a=10,o=10*Math.abs(p-m)*.5+10),l&&(h+=""+l+"");let u=30+n,g=80+n,f="",C={},b={};for(let t=0;t";let u=1==t.n?"Interaction":t.n+" interactions";t.n>1&&(h+=""+u+" of residue "+n.id+" with residue "+l.id+""),h+=""}return h+=f,h}drawScatterplot_base(e,t,s,i,n,l,r,o,a){let d=this.icn3d;d.icn3dui;let c="",h=e.length,p=t.length,m=l?3:7,u=(h+1)*(3+m)+30+40;r&&(c+=""+r+"");let g=n+u-(50+(3+m)),f=40+(3+m),C="",b={},y={};for(let t=0;t";else{d+="";let i=1==e.n?"Interaction":e.n+" interactions";e.n>1&&(d+=""+i+" of residue "+t.id+" with residue "+s.id+""),d+=l?"":"",d+=""}return d}copyStylesInline(e,t){this.icn3d.icn3dui;let s=["svg","g"];for(let i=0;i",b=e.id;return c.resid2refnum[p]&&(b+="=>"+c.resid2refnum[p]),C+=""+b+"",o?(C+="",C+=""+g+""):(C+="",C+=""+g+""),C+="",C}getNodeTopBottom(e,t,s,i,n){let l=this.icn3d.icn3dui,r=this,o=[],a=[],d={};for(let s in e){let e=t[s];if(e){if(1==i||2==i){if(e=l.hashUtilsCls.cloneHash(e),1==i){let t=n[s]?n[s]:"-";e.id+="=>"+t}else{let t=n[s]?n[s]:"--";e.id+="==>"+t}d[e.id]=e}"a"==e.s?o.push(e):"b"==e.s?a.push(e):"ab"==e.s&&(o.push(e),a.push(e))}}return o.sort((function(e,t){return r.compNode(e,t)})),a.sort((function(e,t){return r.compNode(e,t,s)})),{nodeArray1:o,nodeArray2:a,name2node:d}}updateGraphJson(e,t,s,i,n){let l=this.icn3d.icn3dui,r="";return r+='"structure'+t+'": {"id": "'+e+'", "nodes1":[',r+=l.utilsCls.getJSONFromArray(s),r+='], \n"nodes2":[',r+=l.utilsCls.getJSONFromArray(i),r+='], \n"links":[',r+=l.utilsCls.getJSONFromArray(n),r+="]}",r}updateGraphColor(){this.icn3d.icn3dui}handleForce(){let e=this.icn3d;0==e.icn3dui.htmlCls.force&&void 0!==e.simulation?(e.simulation.stop(),e.simulation.force("charge",null),e.simulation.force("x",null),e.simulation.force("y",null),e.simulation.force("r",null),e.simulation.force("link",null)):e.drawGraphCls.drawGraph(e.graphStr,e.pre+"dl_graph")}getNodesLinksForSet(e,t,s,i){let n=this.icn3d,l=n.icn3dui,r=[],o=[],a=0,d=l.htmlCls.coilValue,c="",h="",p=0,m={};for(let u in e){let e=n.atoms[u];if("DUM"!=e.chain&&(i||e.het||"CA"==e.name&&"C"==e.elem||"O3'"==e.name||"O3*"==e.name||"P"==e.name)){let i=e.structure+"_"+e.chain+"_"+e.resi;if(m.hasOwnProperty(i))continue;m[i]=1;let u=l.utilsCls.residueName2Abbr(e.resn)+e.resi;"chain"!=t&&"structure"!=t||(u+="."+e.chain),"structure"==t&&(u+="."+e.structure);let g="1_1_"+i,f=e.color?e.color.getHexString().toUpperCase():"000";r.push('{"id": "'+u+'", "r": "'+g+'", "s": "'+s+'", "x": '+e.coord.x.toFixed(0)+', "y": '+e.coord.y.toFixed(0)+', "c": "'+f+'"}'),a>0&&c==e.chain&&(n.resid2ncbi[e.resi]==n.resid2ncbi[p]+1||n.resid2ncbi[e.resi]==n.resid2ncbi[p])&&(o.push('{"source": "'+h+'", "target": "'+u+'", "v": '+d+', "c": "'+f+'"}'),e.ssbegin&&(d=l.htmlCls.ssValue),e.ssend&&(d=l.htmlCls.coilValue)),c=e.chain,h=u,p=e.resi,++a}}return{node:r,link:o}}getHbondLinksForSet(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=parseFloat($("#"+s.pre+"hbondthreshold").val()),r=e,o=r;if(Object.keys(o).length>0&&Object.keys(r).length>0){let e=!1;s.hBondCls.calculateChemicalHbonds(i.hashUtilsCls.hash2Atoms(o,s.atoms),i.hashUtilsCls.hash2Atoms(r,s.atoms),parseFloat(l),e,"graph",!0),n=i.hashUtilsCls.cloneHash(s.resid2Residhash)}return this.getGraphLinks(n,n,i.htmlCls.hbondInsideColor,t,i.htmlCls.hbondInsideValue)}getIonicLinksForSet(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=parseFloat($("#"+s.pre+"saltbridgethreshold").val()),r=e,o=r;if(Object.keys(o).length>0&&Object.keys(r).length>0){let e=!1;s.saltbridgeCls.calculateIonicInteractions(i.hashUtilsCls.hash2Atoms(o,s.atoms),i.hashUtilsCls.hash2Atoms(r,s.atoms),parseFloat(l),e,"graph",!0),n=i.hashUtilsCls.cloneHash(s.resid2Residhash)}return this.getGraphLinks(n,n,i.htmlCls.ionicInsideColor,t,i.htmlCls.ionicInsideValue)}getHalogenPiLinksForSet(e,t){let s,i=this.icn3d,n=i.icn3dui,l={},r=e,o=r,a="";return s=parseFloat($("#"+i.pre+"halogenthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","halogen",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.halogenInsideColor,t,n.htmlCls.halogenInsideValue),s=parseFloat($("#"+i.pre+"picationthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","pi-cation",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.picationInsideColor,t,n.htmlCls.picationInsideValue),s=parseFloat($("#"+i.pre+"pistackingthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","pi-stacking",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.pistackingInsideColor,t,n.htmlCls.pistackingInsideValue),a}getContactLinksForSet(e,t,s){let i=this.icn3d;i.icn3dui;let n=[],l="",r="",o={};for(let t in e){let e=i.atoms[t];e.ss==l&&e.chain==r||(Object.keys(o).length>0&&n.push(o),o={}),o[e.serial]=1,l=e.ss,r=e.chain}Object.keys(o).length>0&&n.push(o);let a=n.length,d="";for(let e=0;ed?s?-1:1:ah?1:c1&&Object.keys(n).length>1)return void alert("Please select one ligand or residue as one of the interaction sets...");Object.keys(e).length0&&Object.keys(a).length>0)){let t,s=c.hBondCls.calculateChemicalHbonds(h.hashUtilsCls.hash2Atoms(d,c.atoms),h.hashUtilsCls.hash2Atoms(a,c.atoms),parseFloat(e),n);n?(c.resid2ResidhashSaltbridge=h.hashUtilsCls.cloneHash(c.resid2Residhash),t="all atoms that have salt bridges with the selected atoms"):(c.resid2ResidhashHbond=h.hashUtilsCls.cloneHash(c.resid2Residhash),t="all atoms that are hydrogen-bonded with the selected atoms");let i={};for(let e in s){i[c.atoms[e].structure+"_"+c.atoms[e].chain+"_"+c.atoms[e].resi]=1}c.hAtoms={};for(let e in i)for(let t in c.residues[e])c.hAtoms[t]=1,c.atoms[t].style2="stick";let l=r+"_auto";c.selectionCls.addCustomSelection(Object.keys(i),l,t,o,!0),c.selectionCls.saveSelectionIfSelected(),c.drawCls.draw()}}showHydrogens(){let e=this.icn3d;if(void 0!==e.icn3dui.cfg.cid)for(let t in e.hAtoms){let s=e.atoms[t];if("H"!==s.elem.substr(0,1)){e.atoms[s.serial].bonds=e.atoms[s.serial].bonds2.concat(),e.atoms[s.serial].bondOrder=e.atoms[s.serial].bondOrder2.concat();for(let t=0,i=e.atoms[s.serial].bonds.length;t0){let i=e.atoms[t].bonds[0];e.atoms[i].bonds.push(s.serial),e.atoms[i].bondOrder&&e.atoms[i].bondOrder.push(1)}e.dAtoms[t]=1}} //!!!ic.bShowHighlight = false; }hideHydrogens(){let e=this.icn3d;e.icn3dui;for(let t in e.hAtoms){let s=e.atoms[t];if("H"===s.elem.substr(0,1)){if(e.atoms[s.serial].bonds.length>0){let t=e.atoms[s.serial].bonds[0],i=e.atoms[t].bonds?e.atoms[t].bonds.indexOf(s.serial):-1;-1!==i&&(e.atoms[t].bonds.splice(i,1),e.atoms[t].bondOrder&&e.atoms[t].bondOrder.splice(i,1))}delete e.dAtoms[s.serial],delete e.hAtoms[s.serial]}}}hideExtraBonds(){let e=this.icn3d;e.icn3dui;for(let t in e.atoms)e.atoms[t].style2="nothing";for(let t in e.sidec)e.hAtoms.hasOwnProperty(t)&&(e.atoms[t].style2=e.opts.sidec);for(let t in e.water)e.hAtoms.hasOwnProperty(t)&&(e.atoms[t].style=e.opts.water)}hideHbondsContacts(){let e=this.icn3d,t=e.icn3dui,s="set hbonds off";t.htmlCls.clickMenuCls.setLogCmd(s,!0),e.hBondCls.hideHbonds(),s="set salt bridge off",t.htmlCls.clickMenuCls.setLogCmd(s,!0),e.saltbridgeCls.hideSaltbridge(),s="set contact off",t.htmlCls.clickMenuCls.setLogCmd(s,!0),e.contactCls.hideContact(),s="set halogen pi off",t.htmlCls.clickMenuCls.setLogCmd(s,!0),e.piHalogenCls.hideHalogenPi(),this.hideExtraBonds()}showIonicInteractions(e,t,s,i,n,l){let r,o,a,d,c=this.icn3d,h=c.icn3dui;if(!i&&(r="saltbridge",o="salt bridge "+e+" | sets "+t+" "+s+" | "+i,c.opts.saltbridge="yes",a=c.definedSetsCls.getAtomsFromNameArray(t),d=c.definedSetsCls.getAtomsFromNameArray(s),c.firstAtomObjCls.getFirstAtomObj(a),Object.keys(d).length>0&&Object.keys(a).length>0)){let t,s=c.saltbridgeCls.calculateIonicInteractions(h.hashUtilsCls.hash2Atoms(d,c.atoms),h.hashUtilsCls.hash2Atoms(a,c.atoms),parseFloat(e),n);c.resid2ResidhashSaltbridge=h.hashUtilsCls.cloneHash(c.resid2Residhash),t="all atoms that have ionic interactions with the selected atoms";let i={};for(let e in s){i[c.atoms[e].structure+"_"+c.atoms[e].chain+"_"+c.atoms[e].resi]=1}c.hAtoms={};for(let e in i)for(let t in c.residues[e])c.hAtoms[t]=1,c.atoms[t].style2="stick",c.ions.hasOwnProperty(t)&&(c.atoms[t].style2="sphere");let l="saltbridge_auto";c.selectionCls.addCustomSelection(Object.keys(i),l,t,o,!0),c.selectionCls.saveSelectionIfSelected(),c.drawCls.draw()}}showHalogenPi(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(i)return;let a,d,c=l+" "+e+" | sets "+t+" "+s+" | "+i;if(r.opts[l]="yes",a=r.definedSetsCls.getAtomsFromNameArray(t),d=r.definedSetsCls.getAtomsFromNameArray(s),r.firstAtomObjCls.getFirstAtomObj(a),Object.keys(d).length>0&&Object.keys(a).length>0){let t,s=r.piHalogenCls.calculateHalogenPiInteractions(o.hashUtilsCls.hash2Atoms(a,r.atoms),o.hashUtilsCls.hash2Atoms(d,r.atoms),parseFloat(e),n,l);"halogen"==l?(r.resid2ResidhashHalogen=o.hashUtilsCls.cloneHash(r.resid2Residhash),t="all atoms that have halogen bonds with the selected atoms"):"pi-cation"==l?(r.resid2ResidhashPication=o.hashUtilsCls.cloneHash(r.resid2Residhash),t="all atoms that have pi-cation interactions with the selected atoms"):"pi-stacking"==l&&(r.resid2ResidhashPistacking=o.hashUtilsCls.cloneHash(r.resid2Residhash),t="all atoms that have pi-stacking with the selected atoms");let i={};for(let e in s){i[r.atoms[e].structure+"_"+r.atoms[e].chain+"_"+r.atoms[e].resi]=1}r.hAtoms={};for(let e in i)for(let t in r.residues[e])r.hAtoms[t]=1,r.atoms[t].style2="stick",r.ions.hasOwnProperty(t)&&(r.atoms[t].style2="sphere");let h=l+"_auto";r.selectionCls.addCustomSelection(Object.keys(i),h,t,c,!0),r.selectionCls.saveSelectionIfSelected(),r.drawCls.draw()}}showClbonds(){let e=this.icn3d,t=e.icn3dui;e.opts.clbonds="yes";let s=e.applyClbondsCls.applyClbondsOptions();for(let i in s)e.hAtoms=t.hashUtilsCls.unionHash(e.hAtoms,e.residues[i]);if(Object.keys(s).length>0){let t="clbonds",i="all atoms that have cross-linkages";e.selectionCls.addCustomSelection(Object.keys(s),t,i,"cross linkage",!0),e.selectionCls.saveSelectionIfSelected(),e.drawCls.draw()}}showSsbonds(){let e=this.icn3d,t=e.icn3dui;e.opts.ssbonds="yes";let s={},i=Object.keys(e.structures);for(let n=0,l=i.length;n0){let t="ssbonds",i="all atoms that have disulfide bonds";e.selectionCls.addCustomSelection(Object.keys(s),t,i,"disulfide bonds",!0),e.selectionCls.saveSelectionIfSelected(),e.drawCls.draw()}}pickCustomSphere(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(i)return;let a,d,c="select zone cutoff "+e+" | sets "+t+" "+s+" | "+i;n&&(c="interactions "+e+" | sets "+t+" "+s+" | "+i,r.opts.contact="yes"),a=r.definedSetsCls.getAtomsFromNameArray(t),d=r.definedSetsCls.getAtomsFromNameArray(s);let h,p,m=this.pickCustomSphere_base(e,a,d,i,n,l,c,!0),u=Object.keys(m.residues);r.hAtoms={};for(let e=0,t=u.length;e1?"structure":v>1?"chain":"residue";let w=[];if(n&&w.push("hbonds"),l&&w.push("salt bridge"),r&&w.push("interactions"),o&&w.push("halogen"),a&&w.push("pi-cation"),d&&w.push("pi-stacking"),s||(p.resids2inter={},p.resids2interAll={}),l){let n=parseFloat($("#"+p.pre+"saltbridgethreshold").val());n&&!isNaN(n)||(n=p.tsIonic),s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.showIonicInteractions(n,e,t,s,!0,i)),g=m.hashUtilsCls.unionHash(g,p.hAtoms)}if(n){let n=parseFloat($("#"+p.pre+"hbondthreshold").val());n&&!isNaN(n)||(n=p.tsHbond),s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.showHbonds(n,e,t,s,void 0,i)),g=m.hashUtilsCls.unionHash(g,p.hAtoms)}let S,A,x,k,O="";if(n&&(O+=this.exportHbondPairs(i,u)),l&&(O+=this.exportSaltbridgePairs(i,u)),o){let n=parseFloat($("#"+p.pre+"halogenthreshold").val());n&&!isNaN(n)||(n=p.tsHalogen),s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.showHalogenPi(n,e,t,s,i,"halogen")),g=m.hashUtilsCls.unionHash(g,p.hAtoms),O+=this.exportHalogenPiPairs(i,u,"halogen")}if(a){let n=parseFloat($("#"+p.pre+"picationthreshold").val());n&&!isNaN(n)||(n=p.tsPication),s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.showHalogenPi(n,e,t,s,i,"pi-cation")),g=m.hashUtilsCls.unionHash(g,p.hAtoms),O+=this.exportHalogenPiPairs(i,u,"pi-cation")}if(d){let n=parseFloat($("#"+p.pre+"pistackingthreshold").val());n&&!isNaN(n)||(n=p.tsPistacking),s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.showHalogenPi(n,e,t,s,i,"pi-stacking")),g=m.hashUtilsCls.unionHash(g,p.hAtoms),O+=this.exportHalogenPiPairs(i,u,"pi-stacking")}if(r){let n=C?c:parseFloat($("#"+p.pre+"contactthreshold").val());if(n&&!isNaN(n)||(n=p.tsContact),1!=e.length||1!=t.length||e[0]!=t[0])s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.pickCustomSphere(n,e,t,s,!0,i)),g=m.hashUtilsCls.unionHash(g,p.hAtoms),O+=this.exportSpherePairs(!0,i,u);else{if(!s){let l={},o={};if(C){let e=!0,t=p.showInterCls.pickCustomSphere_base(n,b,y,s,!0,void 0,void 0,!0,e);l=m.hashUtilsCls.unionHash(l,t.residues);for(let e in t.resid2Residhash)o[e]=m.hashUtilsCls.unionHash(o[e],t.resid2Residhash[e])}else{let r=[],a="",d="",c={};for(let e in b){let t=p.atoms[e];t.ss==a&&t.chain==d||(Object.keys(c).length>0&&r.push(c),c={}),c[t.serial]=1,a=t.ss,d=t.chain}Object.keys(c).length>0&&r.push(c);let h=r.length,u="interactions "+n+" | sets "+e+" "+t+" | true";p.opts.contact="yes";for(let e=0;e
    ",T=p.resid2specCls.atoms2residues(Object.keys(b)),P=p.resid2specCls.atoms2residues(Object.keys(y)),D="select "+p.resid2specCls.residueids2spec(T),M="select "+p.resid2specCls.residueids2spec(P);E+="Set 1: "+e+'
    ',E+="Set 2: "+t+'

    ',E+='
    The interfaces are:
    ';let F=p.resid2specCls.atoms2residues(Object.keys(R)),H=p.resid2specCls.atoms2residues(Object.keys(I)),L="select "+p.resid2specCls.residueids2spec(F),N="select "+p.resid2specCls.residueids2spec(H);E+='interface_1
    ',E+='interface_2

    ',E+='
    Note: Each checkbox below selects the corresponding residue. You can click "Save Selection" in the "Select" menu to save the selection and click on "Highlight" button to clear the checkboxes.

    ';let q=E;if(("graph"==i||"linegraph"==i||"scatterplot"==i||C)&&(E=""),E+=O,"save1"==i||"save2"==i){E=q;let e="";"save1"==i?e="Set 1":"save2"==i&&(e="Set 2"),E+='

    Interactions Sorted on '+e+':
    ';let t=this.getAllInteractionTable(i);E+=t.html,h=t.bondCnt,$("#"+p.pre+"dl_interactionsorted_html").html(E),m.htmlCls.dialogCls.openDlg("dl_interactionsorted","Show sorted interactions")}else if("view"==i)$("#"+p.pre+"dl_allinteraction_html").html(E),m.htmlCls.dialogCls.openDlg("dl_allinteraction","Show interactions");else if("linegraph"==i){m.htmlCls.dialogCls.openDlg("dl_linegraph","Show interactions between two lines of residue nodes"),p.graphStr=p.getGraphCls.getGraphData(b,y,e,t,E,u),p.bLinegraph=!0;let s=p.lineGraphCls.drawLineGraph(p.graphStr);$("#"+p.pre+"linegraphDiv").html(s)}else if("scatterplot"==i){m.htmlCls.dialogCls.openDlg("dl_scatterplot","Show interactions as scatterplot"),p.graphStr=p.getGraphCls.getGraphData(b,y,e,t,E,u),p.bScatterplot=!0;let s=p.lineGraphCls.drawLineGraph(p.graphStr,!0);$("#"+p.pre+"scatterplotDiv").html(s)}else if("ligplot"==i)await p.ligplotCls.drawLigplot(b);else if(C){m.htmlCls.dialogCls.openDlg("dl_contactmap","Show contact map");let s=!0,i=p.getGraphCls.getGraphData(b,y,e,t,E,u,s);p.bContactMap=!0;let n=p.contactMapCls.drawContactMap(i);$("#"+p.pre+"contactmapDiv").html(n)}else if("graph"==i){if(p.graphStr=p.getGraphCls.getGraphData(b,y,e,t,E,u),p.bGraph=!0,Object.keys(y).length+Object.keys(b).length>Object.keys(p.dAtoms).length&&(p.graphStr=p.selectionCls.getGraphDataForDisplayed()),void 0===p.bD3){let e="./script/d3v4-force-all.min.js";await m.getAjaxPromise(e,"script"),p.bD3=!0}$("#"+m.svgid).empty(),m.htmlCls.dialogCls.openDlg("dl_graph","Force-directed graph"),p.drawGraphCls.drawGraph(p.graphStr,p.pre+"dl_graph")}return{interactionTypes:w.toString(),bondCnt:h}}clearInteractions(){let e=this.icn3d;e.icn3dui,e.lines.hbond=[],e.hbondpnts=[],e.lines.saltbridge=[],e.saltbridgepnts=[],e.lines.contact=[],e.contactpnts=[],e.lines.halogen=[],e.lines["pi-cation"]=[],e.lines["pi-stacking"]=[],e.halogenpnts=[],e.picationpnts=[],e.pistackingpnts=[]}resetInteractionPairs(){let e=this.icn3d;e.icn3dui,e.bHbondCalc=!1,e.showInterCls.hideHbondsContacts(),e.hlUpdateCls.clearHighlight(),e.resids2inter={},e.resids2interAll={}}async retrieveInteractionData(){let e=this.icn3d,t=e.icn3dui;if(!e.b2DShown)if(void 0!==t.cfg.align){let s=Object.keys(e.structures);if(2==t.cfg.atype){let t=!0;await e.alignParserCls.downloadAlignment(s[0]+","+s[1],t)}await e.ParserUtilsCls.set2DDiagramsForAlign(s[0].toUpperCase(),s[1].toUpperCase())}else void 0!==t.cfg.chainalign?(Object.keys(e.structures),await e.ParserUtilsCls.set2DDiagramsForChainalign(e.chainidArray)):e.ParserUtilsCls.download2Ddgm(e.inputid.toUpperCase())}getAllInteractionTable(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui,a="",d="",c=[],h=Object.keys(r.resids2inter);("save1"==e||"save2"==e)&&h.sort((function(t,s){return o.utilsCls.compResid(t,s,e)}));let p,m,u="",g="",f="",C="",b="",y="",v="",_="",w="",S=0,A=0,x=0,k=0,O=0,R=0,I="";for(let o=0,E=h.length;o0&&p!=g&&(c.push({res1:g,res2:I,cntHbond:S,cntIonic:A,cntContact:x,cntHalegen:k,cntPication:O,cntPistacking:R}),u+=this.getInteractionPerResidue(f,C,b,y,v,_,w,S,A,x,k,O,R),C="",b="",y="",v="",_="",w="",S=0,A=0,x=0,k=0,O=0,R=0,I=""),P=r.resids2inter[E].hbond,D=this.getInteractionPairDetails(P,e,"hbond",t,s,i,n,l),C+=D.html,S+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":hbond_"+D.cnt+" "),P=r.resids2inter[E].ionic,D=this.getInteractionPairDetails(P,e,"ionic",t,s,i,n,l),b+=D.html,A+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":ionic_"+D.cnt+" "),P=r.resids2inter[E].halogen,D=this.getInteractionPairDetails(P,e,"halogen",t,s,i,n,l),v+=D.html,k+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":halogen_"+D.cnt+" "),P=r.resids2inter[E]["pi-cation"],D=this.getInteractionPairDetails(P,e,"pi-cation",t,s,i,n,l),_+=D.html,O+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":pi-cation_"+D.cnt+" "),P=r.resids2inter[E]["pi-stacking"],D=this.getInteractionPairDetails(P,e,"pi-stacking",t,s,i,n,l),w+=D.html,R+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":pi-stacking_"+D.cnt+" "),P=r.resids2inter[E].contact,D=this.getContactPairDetails(P,e,"contact",t,s,i,n,l),y+=D.html,x+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":contact_"+D.cnt+" "),g=p,f=M}c.push({res1:g,res2:I,cntHbond:S,cntIonic:A,cntContact:x,cntHalegen:k,cntPication:O,cntPistacking:R}),u+=this.getInteractionPerResidue(f,C,b,y,v,_,w,S,A,x,k,O,R);let E="";if(h.length>0){E+='
    ',E+="",E+="",E+="",E+="",E+="";let e='';E+=e,E+=e,E+='',E+=e,E+=e,E+=e,E+="",E+="",E+=u,E+="
    Residue# Hydrogen
    Bond
    # Salt Bridge
    /Ionic Interaction
    # Contact# Halogen
    Bond
    # π-Cation# π-StackingHydrogen Bond (backbone atoms: @CA, @N, @C, @O)Salt Bridge/Ionic InteractionContactHalogen Bondπ-Cationπ-Stacking
    Atom1Atom2Distance(Å)Highlight in 3D
    Atom1Atom2# ContactsMin Distance(Å)C-alpha Distance(Å)Highlight in 3D

    "}return{html:E,bondCnt:c,svgHtmlNode:a,svgHtmlLine:d}}getInteractionPerResidue(e,t,s,i,n,l,r,o,a,d,c,h,p){this.icn3d.icn3dui;let m="";m+=''+e[3]+e[2]+""+o+""+a+""+d+""+c+""+h+""+p+"";let u=[t,s,i,n,l,r];for(let e in u){m+=''+u[e]+"
    "}return m+="",m}getInteractionPairDetails(e,t,s,i,n,l,r,o){let a=this.icn3d;a.icn3dui;let d="",c="",h="",p=0,m='    ';if(void 0!==e){a.resid2cnt||(a.resid2cnt={}),a.resid2ToXy||(a.resid2ToXy={}),a.nodeid2lineid||(a.nodeid2lineid={});for(let g in e){let f=g.split("|"),C="save1"==t?f[0]:f[1],b="save1"==t?f[1]:f[0],y=C.lastIndexOf(" "),v=b.lastIndexOf(" "),_=C.substr(0,y),w=b.substr(0,v),S=a.getGraphCls.convertLabel2Resid(_),A=a.firstAtomObjCls.getFirstAtomObj(a.residues[S]),x=A.color?A.color.getHexString():"",k=a.getGraphCls.convertLabel2Resid(w),O=a.firstAtomObjCls.getFirstAtomObj(a.residues[k]),R=O.color?O.color.getHexString():"",I=Math.sqrt(e[g]).toFixed(1);if(h+=' '+_+m+x+u+' '+w+m+R+u+''+I+"",h+='',h+="",++p,i){let e=C.substr(y+1).split(","),t=a.ligplotCls.getSvgPerPair(e,_,w,s,i,n,l,r,o,I);d+=t.node,c+=t.line}}}return{html:h,cnt:p,svgHtmlNode:d,svgHtmlLine:c}}getContactPairDetails(e,t,s,i,n,l,r,o){let a=this.icn3d;a.icn3dui;let d="",c="",h="",p=0,m='    ';if(void 0!==e){let g={};a.resid2cnt||(a.resid2cnt={}),a.resid2ToXy||(a.resid2ToXy={}),a.nodeid2lineid||(a.nodeid2lineid={});for(let s in e){let n=s.split("|"),l="save1"==t?n[0]:n[1],r="save1"==t?n[1]:n[0],o=l.lastIndexOf(" "),d=r.lastIndexOf(" "),c=l.substr(o+1).split(","),h=l.substr(0,o);i&&(h+="@"+a.atoms[c[0]].name);let p=r.substr(0,d),m=h+"|"+p,u=a.getGraphCls.convertLabel2Resid(h);a.firstAtomObjCls.getFirstAtomObj(a.residues[u]);let f=a.getGraphCls.convertLabel2Resid(p);a.firstAtomObjCls.getFirstAtomObj(a.residues[f]);let C=e[s].split("_"),b=parseFloat(C[0]),y=parseInt(C[4]);g.hasOwnProperty(m)?(g[m].cnt+=y,b '+s+"@"+v+m+r+u+' '+i+"@"+_+m+c+u+''+w+''+b+''+y+"",h+='',h+="",p+=parseInt(w)}if(i)for(let e in f){let t,h,p=f[e];for(let m=0,u=p.length;m"+n+""}s+="
    ";let i=Object.keys(t.utilsCls.getHlStructures()).join(",");e.saveFileCls.saveFile(i+"_interactions.html","html",s)}exportSsbondPairs(){var e=this.icn3d,t=e.icn3dui;let s="",i=0;for(let t in e.structures){let n=e.ssbondpnts[t];if(void 0===n)break;for(let e=0,t=n.length;e"+n[e]+" Cys"+n[e+1]+" Cys",++i}}let n='

    '+i+" disulfide pairs:

    ";n+=s,n+="
    Residue ID 1Residue ID 2

    ";let l=Object.keys(t.utilsCls.getHlStructures()).join(",");e.saveFileCls.saveFile(l+"_disulfide_pairs.html","html",n)}exportClbondPairs(){var e=this.icn3d,t=e.icn3dui;let s="",i=0,n={};for(let t in e.structures){let l=e.clbondpnts[t];if(void 0===l)break;for(let t=0,r=l.length;t"+r+" "+t.resn+""+o+" "+n.resn+"",++i}n[r+"_"+o]=1,n[o+"_"+r]=1}}let l='

    '+i+" cross-linkage pairs:

    ";l+=s,l+="
    Residue ID 1Residue ID 2

    ";let r=Object.keys(t.utilsCls.getHlStructures()).join(",");e.saveFileCls.saveFile(r+"_crosslinkage_pairs.html","html",l)}exportHbondPairs(e,t){var s=this.icn3d,i=s.icn3dui;let n="",l=0,r='    ';for(let t in s.resid2ResidhashHbond){let i=s.getGraphCls.convertLabel2Resid(t),a=s.firstAtomObjCls.getFirstAtomObj(s.residues[i]),d=a.color?a.color.getHexString():"";for(let i in s.resid2ResidhashHbond[t]){let a=s.getGraphCls.convertLabel2Resid(i),c=s.firstAtomObjCls.getFirstAtomObj(s.residues[a]),h=c.color?c.color.getHexString():"",p=Math.sqrt(s.resid2ResidhashHbond[t][i]).toFixed(1);n+=' '+t+r+d+o+' '+i+r+h+o+''+p+"","view"==e&&(n+=''),n+="",++l}}let a='

    '+l+" hydrogen bond pairs (backbone atoms: @CA, @N, @C, @O):

    ";if(l>0&&(a+="
    ","view"==e&&(a+=''),a+="",a+=n,a+="
    Atom 1Atom 2Distance(Å)Highlight in 3D

    "),"graph"==e||"linegraph"==e||"scatterplot"==e){return s.getGraphCls.getGraphLinks(s.resid2ResidhashHbond,s.resid2ResidhashHbond,i.htmlCls.hbondColor,t,i.htmlCls.hbondValue)}return a}exportSaltbridgePairs(e,t){var s=this.icn3d,i=s.icn3dui;let n="",l=0,r='    ';for(let t in s.resid2ResidhashSaltbridge){let i=s.getGraphCls.convertLabel2Resid(t),a=s.firstAtomObjCls.getFirstAtomObj(s.residues[i]),d=a.color?a.color.getHexString():"";for(let i in s.resid2ResidhashSaltbridge[t]){let a=s.getGraphCls.convertLabel2Resid(i),c=s.firstAtomObjCls.getFirstAtomObj(s.residues[a]),h=c.color?c.color.getHexString():"",p=Math.sqrt(s.resid2ResidhashSaltbridge[t][i]).toFixed(1);n+=' '+t+r+d+o+' '+i+r+h+o+''+p+"","view"==e&&(n+=''),n+="",++l}}let a='

    '+l+" salt bridge/ionic interaction pairs:

    ";if(l>0&&(a+="
    ","view"==e&&(a+=''),a+="",a+=n,a+="
    Atom 1Atom 2Distance(Å)Highlight in 3D

    "),"graph"==e||"linegraph"==e||"scatterplot"==e){return s.getGraphCls.getGraphLinks(s.resid2ResidhashSaltbridge,s.resid2ResidhashSaltbridge,i.htmlCls.ionicColor,t,i.htmlCls.ionicValue)}return a}exportHalogenPiPairs(e,t,s){var i=this.icn3d,n=i.icn3dui;let l,r,o,a="",d=0,c='    ';"halogen"==s?(l=i.resid2ResidhashHalogen,r=n.htmlCls.halogenColor,o=n.htmlCls.halogenValue):"pi-cation"==s?(l=i.resid2ResidhashPication,r=n.htmlCls.picationColor,o=n.htmlCls.picationValue):"pi-stacking"==s&&(l=i.resid2ResidhashPistacking,r=n.htmlCls.pistackingColor,o=n.htmlCls.pistackingValue);for(let t in l){let n=i.getGraphCls.convertLabel2Resid(t),r=i.firstAtomObjCls.getFirstAtomObj(i.residues[n]),o=r.color?r.color.getHexString():"";for(let n in l[t]){let r=i.getGraphCls.convertLabel2Resid(n),p=i.firstAtomObjCls.getFirstAtomObj(i.residues[r]),m=p.color?p.color.getHexString():"",u=Math.sqrt(l[t][n]).toFixed(1);a+=' '+t+c+o+h+' '+n+c+m+h+''+u+"","view"==e&&(a+=''),a+="",++d}}let p='

    '+d+" "+s+" pairs:

    ";if(d>0&&(p+="
    ","view"==e&&(p+=''),p+="",p+=a,p+="
    Atom 1Atom 2Distance(Å)Highlight in 3D

    "),"graph"==e||"linegraph"==e||"scatterplot"==e){return i.getGraphCls.getGraphLinks(l,l,r,t,o)}return p}exportSpherePairs(e,t,s){var i=this.icn3d,n=i.icn3dui;let l="",r=0,o=e?i.resid2ResidhashInteractions:i.resid2ResidhashSphere,a='    ';for(let s in o){let n=i.getGraphCls.convertLabel2Resid(s),c=i.firstAtomObjCls.getFirstAtomObj(i.residues[n]),h=c.color?c.color.getHexString():"";for(let n in o[s]){let p=i.getGraphCls.convertLabel2Resid(n),m=i.firstAtomObjCls.getFirstAtomObj(i.residues[p]),u=m.color?m.color.getHexString():"",g=o[s][n].split("_"),f=g[0],C=g[1];c=g[2],m=g[3];let b=g[4];e?(l+=' '+s+"@"+c+a+h+d+' '+n+"@"+m+a+u+d+''+b+''+f+''+C+"","view"==t&&(l+=''),l+=""):l+=""+s+""+n+''+b+''+f+''+C+"",++r}}let c='

    '+r+" residue pairs in "+(e?"the contacts":"sphere")+":

    ";if(r>0&&(e?(c+='
    ',"view"==t&&(c+=''),c+=""):c+='
    Residue 1Residue 2Num ContactsMin Distance(Å)C-alpha Distance(Å)Highlight in 3D
    ',c+=l,c+="
    Residue 1Residue 2Num ContactsMin Distance(Å)C-alpha Distance(Å)

    "),"graph"==t||"linegraph"==t||"scatterplot"==t||"calpha"==t||"cbeta"==t||"heavyatoms"==t){return i.getGraphCls.getGraphLinks(o,o,n.htmlCls.contactColor,s,n.htmlCls.contactValue)}return c}}class $t{constructor(e){this.icn3d=e}drawGraph(e,t){var s=this.icn3d,i=s.icn3dui;if(void 0===n)var n=d3;var l=JSON.parse(e),r=$("#"+t).width(),o=$("#"+t).height(),a=isNaN(r)?300:1*r,d=isNaN(o)?300:1*o,c=r,h=o,p=d3.select("#"+i.svgid).attr("width",r).attr("height",o).attr("viewBox","0,0,"+a+","+d);p.selectAll(".g-main").remove();var m=p.append("g").classed("g-main",!0),u=m.append("rect").attr("width",c).attr("height",h).style("fill","#FFF"),g=m.append("g"),f=n.zoom().on("zoom",(function(){g.attr("transform",n.event.transform)}));if(m.call(f),l.links){for(var C=[],b={},y=0,v=l.nodes.length;y0?n.structures[0]:n.defaultPdbId;p=10*(a.length+2)+20+30,h=10*(d.length+2)+20+30,t?(n.alignerrormapWidth=2*h,u=n.alignerrormapWidth,m=l.alignerrormapid):(n.contactmapWidth=2*h,u=n.contactmapWidth,m=l.contactmapid),i=o.length>0?"":"No interactions found for these two sets

    ",i+="";if(t){n.hex2id={};let e=29/s;n.hex2skip={};let t=1e3;for(let s=0;se&&(n.hex2skip[d]=c)}}if(i+=n.lineGraphCls.drawScatterplot_base(a,d,o,c,0,!0,void 0,void 0,t),g+=n.getGraphCls.updateGraphJson(f,1,a,d,o),i+="",g+="}\n",t){n.alignerrormapStr=g,$("#"+n.pre+"alignerrormapDiv").html(i);let e=$("#"+l.alignerrormapid+"_scale").val();$("#"+l.alignerrormapid).attr("width",(n.alignerrormapWidth*parseFloat(e)).toString()+"px")}else n.contactmapStr=g,$("#"+n.pre+"contactmapDiv").html(i);return i}}class jt{constructor(e){this.icn3d=e}async downloadAlignment(e,t){let s=this.icn3d,i=s.icn3dui,n=this;s.opts.proteins="c alpha trace";let l=e.split(","),r="ids="+e,o=i.htmlCls.baseUrl+"vastplus/vastplus.cgi?v=3&cmd=c&b=1&s=1&w3d&"+r;void 0!==i.cfg.inpara&&(o+=i.cfg.inpara),s.pdbid_chain2title={},void 0===s.chainids2resids&&(s.chainids2resids={});let a={},d="These two MMDB IDs "+l+' do not have 3D alignment data in the VAST+ database. You can try the VAST alignment by visiting the VAST+ page https://www.ncbi.nlm.nih.gov/Structure/vastplus/vastplus.cgi?uid=[PDB ID] (e.g., uid=1KQ2), and clicking "Original VAST"',c=await i.getAjaxPromise(o,"jsonp",!0,d);if(a=c.seqalign,void 0===a)return alert(d),!1;s.pdbid_molid2chain={},s.chainsColor={};for(let e=0,t=2;e5){let t=!1,s=!0;d=await r.pdbParserCls.loadPdbData(e,n,!1,t,"target",h,s)}else{let t=!0;d=await r.mmdbParserCls.parseMmdbData(e,"target",i[0],0,h,t)}for(let e=0,s=t.length;e5){let s=!0,i=!0;c=await r.pdbParserCls.loadPdbData(t[e],l,!1,s,"query",h,i)}else{let s=!0;c=await r.mmdbParserCls.parseMmdbData(t[e],"query",i[e+1],e,h,s)}d=o.hashUtilsCls.unionHash(d,c)}if(o.cfg.resnum)await r.realignParserCls.realignChainOnSeqAlign(s,i);else if(o.cfg.resdef)await r.realignParserCls.realignChainOnSeqAlign(s,i,void 0,!0);else{await r.pdbParserCls.applyCommandDssp(!0); //!!! diff --git a/dist/icn3d.module.js b/dist/icn3d.module.js index 44f5303..49ac6d3 100644 --- a/dist/icn3d.module.js +++ b/dist/icn3d.module.js @@ -16511,8 +16511,8 @@ class Events { saveHtml(id) { let me = this.icn3dui, ic = me.icn3d; let html = ''; - html += '\n'; - html += '\n'; + html += '\n'; + html += '\n'; html += $("#" + id).html(); let idArray = id.split('_'); let idStr =(idArray.length > 2) ? idArray[2] : id; diff --git a/dist/icn3d_3.39.0.min.js b/dist/icn3d_3.39.0.min.js index 865177b..c3f3a48 100644 --- a/dist/icn3d_3.39.0.min.js +++ b/dist/icn3d_3.39.0.min.js @@ -1,5 +1,5 @@ var CIFTools,$NGL_shaderTextHash={};$NGL_shaderTextHash["SphereImpostor.frag"]=["#define STANDARD","#define IMPOSTOR","","uniform vec3 diffuse;","uniform vec3 emissive;","uniform float roughness;","uniform float metalness;","uniform float opacity;","uniform float nearClip;","uniform mat4 projectionMatrix;","uniform float ortho;","","varying float vRadius;","varying float vRadiusSq;","varying vec3 vPoint;","varying vec3 vPointViewPosition;","","#ifdef PICKING"," uniform float objectId;"," varying vec3 vPickingColor;","#else"," #include common"," #include color_pars_fragment"," #include fog_pars_fragment"," #include bsdfs"," #include lights_pars_begin"," #include lights_physical_pars_fragment","#endif","","bool flag2 = false;","bool interior = false;","vec3 cameraPos;","vec3 cameraNormal;","","// Calculate depth based on the given camera position.","float calcDepth( in vec3 cameraPos ){"," vec2 clipZW = cameraPos.z * projectionMatrix[2].zw + projectionMatrix[3].zw;"," return 0.5 + 0.5 * clipZW.x / clipZW.y;","}","","float calcClip( vec3 cameraPos ){"," return dot( vec4( cameraPos, 1.0 ), vec4( 0.0, 0.0, 1.0, nearClip - 0.5 ) );","}","","bool Impostor( out vec3 cameraPos, out vec3 cameraNormal ){",""," vec3 cameraSpherePos = -vPointViewPosition;"," cameraSpherePos.z += vRadius;",""," vec3 rayOrigin = mix( vec3( 0.0, 0.0, 0.0 ), vPoint, ortho );"," vec3 rayDirection = mix( normalize( vPoint ), vec3( 0.0, 0.0, 1.0 ), ortho );"," vec3 cameraSphereDir = mix( cameraSpherePos, rayOrigin - cameraSpherePos, ortho );",""," float B = dot( rayDirection, cameraSphereDir );"," float det = B * B + vRadiusSq - dot( cameraSphereDir, cameraSphereDir );",""," if( det < 0.0 ){"," discard;"," return false;"," }"," float sqrtDet = sqrt( det );"," float posT = mix( B + sqrtDet, B + sqrtDet, ortho );"," float negT = mix( B - sqrtDet, sqrtDet - B, ortho );",""," cameraPos = rayDirection * negT + rayOrigin;",""," #ifdef NEAR_CLIP","if( calcDepth( cameraPos ) <= 0.0 ){"," cameraPos = rayDirection * posT + rayOrigin;"," interior = true;"," return false;","}else if( calcClip( cameraPos ) > 0.0 ){"," cameraPos = rayDirection * posT + rayOrigin;"," interior = true;"," flag2 = true;"," return false;","}else{"," cameraNormal = normalize( cameraPos - cameraSpherePos );","}"," #else","if( calcDepth( cameraPos ) <= 0.0 ){"," cameraPos = rayDirection * posT + rayOrigin;"," interior = true;"," return false;","}else{"," cameraNormal = normalize( cameraPos - cameraSpherePos );","}"," #endif",""," cameraNormal = normalize( cameraPos - cameraSpherePos );"," cameraNormal *= float(!interior) * 2.0 - 1.0;"," return !interior;","","}","","void main(void){",""," bool flag = Impostor( cameraPos, cameraNormal );",""," #ifdef NEAR_CLIP"," if( calcClip( cameraPos ) > 0.0 )"," discard;"," #endif",""," // FIXME not compatible with custom clipping plane"," //Set the depth based on the new cameraPos."," gl_FragDepthEXT = calcDepth( cameraPos );"," if( !flag ){",""," // clamp to near clipping plane and add a tiny value to"," // make spheres with a greater radius occlude smaller ones"," #ifdef NEAR_CLIP","if( flag2 ){"," gl_FragDepthEXT = max( 0.0, calcDepth( vec3( - ( nearClip - 0.5 ) ) ) + ( 0.0000001 / vRadius ) );","}else if( gl_FragDepthEXT >= 0.0 ){"," gl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );","}"," #else","if( gl_FragDepthEXT >= 0.0 ){"," gl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );","}"," #endif",""," }",""," // bugfix (mac only?)"," if (gl_FragDepthEXT < 0.0)"," discard;"," if (gl_FragDepthEXT > 1.0)"," discard;",""," #ifdef PICKING",""," gl_FragColor = vec4( vPickingColor, objectId );",""," #else",""," vec3 vNormal = cameraNormal;"," vec3 vViewPosition = -cameraPos;",""," vec4 diffuseColor = vec4( diffuse, opacity );"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"," vec3 totalEmissiveLight = emissive;",""," #include color_fragment"," #include roughnessmap_fragment"," #include metalnessmap_fragment",""," // don't use include normal_fragment"," vec3 normal = normalize( vNormal );",""," #include lights_physical_fragment"," //include lights_template"," #include lights_fragment_begin"," #include lights_fragment_end",""," vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveLight;",""," gl_FragColor = vec4( outgoingLight, diffuseColor.a );"," //gl_FragColor = vec4( reflectedLight.directSpecular, diffuseColor.a );",""," #include premultiplied_alpha_fragment"," #include tonemapping_fragment"," #include encodings_fragment"," //include fog_fragment"," #ifdef USE_FOG"," #ifdef USE_LOGDEPTHBUF_EXT"," float depth = gl_FragDepthEXT / gl_FragCoord.w;"," #else"," float depth = gl_FragCoord.z / gl_FragCoord.w;"," #endif"," #ifdef FOG_EXP2"," float fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * depth * depth * LOG2 ) );"," #else"," float fogFactor = smoothstep( fogNear, fogFar, depth );"," #endif"," gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );"," #endif",""," #endif","","}"].join("\n"),$NGL_shaderTextHash["SphereImpostor.vert"]=["uniform mat4 projectionMatrixInverse;","uniform float nearClip;","","varying float vRadius;","varying float vRadiusSq;","varying vec3 vPoint;","varying vec3 vPointViewPosition;","varying float fogDepth;","varying float fogNear;","varying float fogFar;","","attribute vec2 mapping;","//attribute vec3 position;","attribute float radius;","","#ifdef PICKING"," #include unpack_clr"," attribute float primitiveId;"," varying vec3 vPickingColor;","#else"," #include color_pars_vertex","#endif","","//include matrix_scale","float matrixScale( in mat4 m ){"," vec4 r = m[ 0 ];"," return sqrt( r[ 0 ] * r[ 0 ] + r[ 1 ] * r[ 1 ] + r[ 2 ] * r[ 2 ] );","}","","const mat4 D = mat4("," 1.0, 0.0, 0.0, 0.0,"," 0.0, 1.0, 0.0, 0.0,"," 0.0, 0.0, 1.0, 0.0,"," 0.0, 0.0, 0.0, -1.0",");","","mat4 transposeTmp( in mat4 inMatrix ) {"," vec4 i0 = inMatrix[0];"," vec4 i1 = inMatrix[1];"," vec4 i2 = inMatrix[2];"," vec4 i3 = inMatrix[3];",""," mat4 outMatrix = mat4("," vec4(i0.x, i1.x, i2.x, i3.x),"," vec4(i0.y, i1.y, i2.y, i3.y),"," vec4(i0.z, i1.z, i2.z, i3.z),"," vec4(i0.w, i1.w, i2.w, i3.w)"," );"," return outMatrix;","}","","//------------------------------------------------------------------------------","// Compute point size and center using the technique described in:","// 'GPU-Based Ray-Casting of Quadratic Surfaces'","// by Christian Sigg, Tim Weyrich, Mario Botsch, Markus Gross.","//","// Code based on","/*=========================================================================",""," Program: Visualization Toolkit"," Module: Quadrics_fs.glsl and Quadrics_vs.glsl",""," Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen"," All rights reserved."," See Copyright.txt or http://www.kitware.com/Copyright.htm for details.",""," This software is distributed WITHOUT ANY WARRANTY; without even"," the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR"," PURPOSE. See the above copyright notice for more information.",""," =========================================================================*/","","// .NAME Quadrics_fs.glsl and Quadrics_vs.glsl","// .SECTION Thanks","// ","//","// This file is part of the PointSprites plugin developed and contributed by","//","// Copyright (c) CSCS - Swiss National Supercomputing Centre","// EDF - Electricite de France","//","// John Biddiscombe, Ugo Varetto (CSCS)","// Stephane Ploix (EDF)","//","// ","//","// Contributions by Alexander Rose","// - ported to WebGL","// - adapted to work with quads","void ComputePointSizeAndPositionInClipCoordSphere(){",""," vec2 xbc;"," vec2 ybc;",""," mat4 T = mat4("," radius, 0.0, 0.0, 0.0,"," 0.0, radius, 0.0, 0.0,"," 0.0, 0.0, radius, 0.0,"," position.x, position.y, position.z, 1.0"," );",""," mat4 R = transposeTmp( projectionMatrix * modelViewMatrix * T );"," float A = dot( R[ 3 ], D * R[ 3 ] );"," float B = -2.0 * dot( R[ 0 ], D * R[ 3 ] );"," float C = dot( R[ 0 ], D * R[ 0 ] );"," xbc[ 0 ] = ( -B - sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," xbc[ 1 ] = ( -B + sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," float sx = abs( xbc[ 0 ] - xbc[ 1 ] ) * 0.5;",""," A = dot( R[ 3 ], D * R[ 3 ] );"," B = -2.0 * dot( R[ 1 ], D * R[ 3 ] );"," C = dot( R[ 1 ], D * R[ 1 ] );"," ybc[ 0 ] = ( -B - sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," ybc[ 1 ] = ( -B + sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," float sy = abs( ybc[ 0 ] - ybc[ 1 ] ) * 0.5;",""," gl_Position.xy = vec2( 0.5 * ( xbc.x + xbc.y ), 0.5 * ( ybc.x + ybc.y ) );"," gl_Position.xy -= mapping * vec2( sx, sy );"," gl_Position.xy *= gl_Position.w;","","}","","void main(void){",""," #ifdef PICKING"," vPickingColor = unpackColor( primitiveId );"," #else"," #include color_vertex"," #endif",""," vRadius = radius * matrixScale( modelViewMatrix );",""," vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );"," // avoid clipping, added again in fragment shader"," mvPosition.z -= vRadius;",""," gl_Position = projectionMatrix * vec4( mvPosition.xyz, 1.0 );"," ComputePointSizeAndPositionInClipCoordSphere();","",""," vRadiusSq = vRadius * vRadius;"," vec4 vPoint4 = projectionMatrixInverse * gl_Position;"," vPoint = vPoint4.xyz / vPoint4.w;"," vPointViewPosition = -mvPosition.xyz / mvPosition.w;","","}"].join("\n"),$NGL_shaderTextHash["CylinderImpostor.frag"]=["#define STANDARD","#define IMPOSTOR","","// Open-Source PyMOL is Copyright (C) Schrodinger, LLC.","//","// All Rights Reserved","//","// Permission to use, copy, modify, distribute, and distribute modified","// versions of this software and its built-in documentation for any","// purpose and without fee is hereby granted, provided that the above","// copyright notice appears in all copies and that both the copyright","// notice and this permission notice appear in supporting documentation,","// and that the name of Schrodinger, LLC not be used in advertising or","// publicity pertaining to distribution of the software without specific,","// written prior permission.","//","// SCHRODINGER, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,","// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN","// NO EVENT SHALL SCHRODINGER, LLC BE LIABLE FOR ANY SPECIAL, INDIRECT OR","// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS","// OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE","// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE","// USE OR PERFORMANCE OF THIS SOFTWARE.","","// Contributions by Alexander Rose","// - ported to WebGL","// - dual color","// - pk color","// - custom clipping","// - three.js lighting","","uniform vec3 diffuse;","uniform vec3 emissive;","uniform float roughness;","uniform float metalness;","uniform float opacity;","uniform float nearClip;","uniform mat4 projectionMatrix;","uniform float ortho;","","varying vec3 axis;","varying vec4 base_radius;","varying vec4 end_b;","varying vec3 U;","varying vec3 V;","varying vec4 w;","","#ifdef PICKING"," uniform float objectId;"," varying vec3 vPickingColor;","#else"," varying vec3 vColor1;"," varying vec3 vColor2;"," #include common"," #include fog_pars_fragment"," #include bsdfs"," #include lights_pars_begin"," #include lights_physical_pars_fragment","#endif","","bool interior = false;","","float distSq3( vec3 v3a, vec3 v3b ){"," return ("," ( v3a.x - v3b.x ) * ( v3a.x - v3b.x ) +"," ( v3a.y - v3b.y ) * ( v3a.y - v3b.y ) +"," ( v3a.z - v3b.z ) * ( v3a.z - v3b.z )"," );","}","","// Calculate depth based on the given camera position.","float calcDepth( in vec3 cameraPos ){"," vec2 clipZW = cameraPos.z * projectionMatrix[2].zw + projectionMatrix[3].zw;"," return 0.5 + 0.5 * clipZW.x / clipZW.y;","}","","float calcClip( vec3 cameraPos ){"," return dot( vec4( cameraPos, 1.0 ), vec4( 0.0, 0.0, 1.0, nearClip - 0.5 ) );","}","","void main(){",""," vec3 point = w.xyz / w.w;",""," // unpacking"," vec3 base = base_radius.xyz;"," float vRadius = base_radius.w;"," vec3 end = end_b.xyz;"," float b = end_b.w;",""," vec3 end_cyl = end;"," vec3 surface_point = point;",""," vec3 ray_target = surface_point;"," vec3 ray_origin = vec3(0.0);"," vec3 ray_direction = mix(normalize(ray_origin - ray_target), vec3(0.0, 0.0, 1.0), ortho);"," mat3 basis = mat3( U, V, axis );",""," vec3 diff = ray_target - 0.5 * (base + end_cyl);"," vec3 P = diff * basis;",""," // angle (cos) between cylinder cylinder_axis and ray direction"," float dz = dot( axis, ray_direction );",""," float radius2 = vRadius*vRadius;",""," // calculate distance to the cylinder from ray origin"," vec3 D = vec3(dot(U, ray_direction),"," dot(V, ray_direction),"," dz);"," float a0 = P.x*P.x + P.y*P.y - radius2;"," float a1 = P.x*D.x + P.y*D.y;"," float a2 = D.x*D.x + D.y*D.y;",""," // calculate a dicriminant of the above quadratic equation"," float d = a1*a1 - a0*a2;"," if (d < 0.0)"," // outside of the cylinder"," discard;",""," float dist = (-a1 + sqrt(d)) / a2;",""," // point of intersection on cylinder surface"," vec3 new_point = ray_target + dist * ray_direction;",""," vec3 tmp_point = new_point - base;"," vec3 _normal = normalize( tmp_point - axis * dot(tmp_point, axis) );",""," ray_origin = mix( ray_origin, surface_point, ortho );",""," // test caps"," float front_cap_test = dot( tmp_point, axis );"," float end_cap_test = dot((new_point - end_cyl), axis);",""," // to calculate caps, simply check the angle between"," // the point of intersection - cylinder end vector"," // and a cap plane normal (which is the cylinder cylinder_axis)"," // if the angle < 0, the point is outside of cylinder"," // test front cap",""," #ifndef CAP"," vec3 new_point2 = ray_target + ( (-a1 - sqrt(d)) / a2 ) * ray_direction;"," vec3 tmp_point2 = new_point2 - base;"," #endif",""," // flat"," if (front_cap_test < 0.0)"," {"," // ray-plane intersection"," float dNV = dot(-axis, ray_direction);"," if (dNV < 0.0)"," discard;"," float near = dot(-axis, (base)) / dNV;"," vec3 front_point = ray_direction * near + ray_origin;"," // within the cap radius?"," if (dot(front_point - base, front_point-base) > radius2)"," discard;",""," #ifdef CAP"," new_point = front_point;"," _normal = axis;"," #else"," new_point = ray_target + ( (-a1 - sqrt(d)) / a2 ) * ray_direction;"," dNV = dot(-axis, ray_direction);"," near = dot(axis, end_cyl) / dNV;"," new_point2 = ray_direction * near + ray_origin;"," if (dot(new_point2 - end_cyl, new_point2-base) < radius2)"," discard;"," interior = true;"," #endif"," }",""," // test end cap","",""," // flat"," if( end_cap_test > 0.0 )"," {"," // ray-plane intersection"," float dNV = dot(axis, ray_direction);"," if (dNV < 0.0)"," discard;"," float near = dot(axis, end_cyl) / dNV;"," vec3 end_point = ray_direction * near + ray_origin;"," // within the cap radius?"," if( dot(end_point - end_cyl, end_point-base) > radius2 )"," discard;",""," #ifdef CAP"," new_point = end_point;"," _normal = axis;"," #else"," new_point = ray_target + ( (-a1 - sqrt(d)) / a2 ) * ray_direction;"," dNV = dot(-axis, ray_direction);"," near = dot(-axis, (base)) / dNV;"," new_point2 = ray_direction * near + ray_origin;"," if (dot(new_point2 - base, new_point2-base) < radius2)"," discard;"," interior = true;"," #endif"," }",""," gl_FragDepthEXT = calcDepth( new_point );",""," #ifdef NEAR_CLIP"," if( calcClip( new_point ) > 0.0 ){"," dist = (-a1 - sqrt(d)) / a2;"," new_point = ray_target + dist * ray_direction;"," if( calcClip( new_point ) > 0.0 )"," discard;"," interior = true;"," gl_FragDepthEXT = calcDepth( new_point );"," if( gl_FragDepthEXT >= 0.0 ){"," gl_FragDepthEXT = max( 0.0, calcDepth( vec3( - ( nearClip - 0.5 ) ) ) + ( 0.0000001 / vRadius ) );"," }"," }else if( gl_FragDepthEXT <= 0.0 ){"," dist = (-a1 - sqrt(d)) / a2;"," new_point = ray_target + dist * ray_direction;"," interior = true;"," gl_FragDepthEXT = calcDepth( new_point );"," if( gl_FragDepthEXT >= 0.0 ){"," gl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );"," }"," }"," #else"," if( gl_FragDepthEXT <= 0.0 ){"," dist = (-a1 - sqrt(d)) / a2;"," new_point = ray_target + dist * ray_direction;"," interior = true;"," gl_FragDepthEXT = calcDepth( new_point );"," if( gl_FragDepthEXT >= 0.0 ){"," gl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );"," }"," }"," #endif",""," // this is a workaround necessary for Mac"," // otherwise the modified fragment won't clip properly"," if (gl_FragDepthEXT < 0.0)"," discard;"," if (gl_FragDepthEXT > 1.0)"," discard;",""," #ifdef PICKING",""," gl_FragColor = vec4( vPickingColor, objectId );",""," #else",""," vec3 vViewPosition = -new_point;"," vec3 vNormal = _normal;"," vec3 vColor;",""," if( distSq3( new_point, end_cyl ) < distSq3( new_point, base ) ){"," if( b < 0.0 ){"," vColor = vColor1;"," }else{"," vColor = vColor2;"," }"," }else{"," if( b > 0.0 ){"," vColor = vColor1;"," }else{"," vColor = vColor2;"," }"," }",""," vec4 diffuseColor = vec4( diffuse, opacity );"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"," vec3 totalEmissiveLight = emissive;",""," #include color_fragment"," //ifdef USE_COLOR"," //diffuseColor.r *= vColor[0];"," //diffuseColor.g *= vColor[1];"," //diffuseColor.b *= vColor[2];"," //endif"," #include roughnessmap_fragment"," #include metalnessmap_fragment",""," // don't use include normal_fragment"," vec3 normal = normalize( vNormal );",""," #include lights_physical_fragment"," //include lights_template"," #include lights_fragment_begin"," #include lights_fragment_end",""," vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveLight;",""," gl_FragColor = vec4( outgoingLight, diffuseColor.a );"," //gl_FragColor = vec4( reflectedLight.directSpecular, diffuseColor.a );",""," #include premultiplied_alpha_fragment"," #include tonemapping_fragment"," #include encodings_fragment"," //include fog_fragment"," #ifdef USE_FOG"," #ifdef USE_LOGDEPTHBUF_EXT"," float depth = gl_FragDepthEXT / gl_FragCoord.w;"," #else"," float depth = gl_FragCoord.z / gl_FragCoord.w;"," #endif"," #ifdef FOG_EXP2"," float fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * depth * depth * LOG2 ) );"," #else"," float fogFactor = smoothstep( fogNear, fogFar, depth );"," #endif"," gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );"," #endif",""," #endif","","}"].join("\n"),$NGL_shaderTextHash["CylinderImpostor.vert"]=["// Open-Source PyMOL is Copyright (C) Schrodinger, LLC.","//","// All Rights Reserved","//","// Permission to use, copy, modify, distribute, and distribute modified","// versions of this software and its built-in documentation for any","// purpose and without fee is hereby granted, provided that the above","// copyright notice appears in all copies and that both the copyright","// notice and this permission notice appear in supporting documentation,","// and that the name of Schrodinger, LLC not be used in advertising or","// publicity pertaining to distribution of the software without specific,","// written prior permission.","//","// SCHRODINGER, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,","// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN","// NO EVENT SHALL SCHRODINGER, LLC BE LIABLE FOR ANY SPECIAL, INDIRECT OR","// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS","// OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE","// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE","// USE OR PERFORMANCE OF THIS SOFTWARE.","","// Contributions by Alexander Rose","// - ported to WebGL","// - dual color","// - pk color","// - shift","","attribute vec3 mapping;","attribute vec3 position1;","attribute vec3 position2;","attribute float radius;","","varying vec3 axis;","varying vec4 base_radius;","varying vec4 end_b;","varying vec3 U;","varying vec3 V;","varying vec4 w;","varying float fogDepth;","varying float fogNear;","varying float fogFar;","","#ifdef PICKING"," #include unpack_clr"," attribute float primitiveId;"," varying vec3 vPickingColor;","#else"," //attribute vec3 color;"," attribute vec3 color2;"," varying vec3 vColor1;"," varying vec3 vColor2;","#endif","","uniform mat4 modelViewMatrixInverse;","uniform float ortho;","","//include matrix_scale","float matrixScale( in mat4 m ){"," vec4 r = m[ 0 ];"," return sqrt( r[ 0 ] * r[ 0 ] + r[ 1 ] * r[ 1 ] + r[ 2 ] * r[ 2 ] );","}","","void main(){",""," #ifdef PICKING"," vPickingColor = unpackColor( primitiveId );"," #else"," vColor1 = color;"," vColor2 = color2;"," #endif",""," // vRadius = radius;"," base_radius.w = radius * matrixScale( modelViewMatrix );",""," //vec3 center = position;"," vec3 center = ( position2 + position1 ) / 2.0;"," vec3 dir = normalize( position2 - position1 );"," float ext = length( position2 - position1 ) / 2.0;",""," // using cameraPosition fails on some machines, not sure why"," // vec3 cam_dir = normalize( cameraPosition - mix( center, vec3( 0.0 ), ortho ) );"," vec3 cam_dir;"," if( ortho == 0.0 ){"," cam_dir = ( modelViewMatrixInverse * vec4( 0, 0, 0, 1 ) ).xyz - center;"," }else{"," cam_dir = ( modelViewMatrixInverse * vec4( 0, 0, 1, 0 ) ).xyz;"," }"," cam_dir = normalize( cam_dir );",""," vec3 ldir;",""," float b = dot( cam_dir, dir );"," end_b.w = b;"," // direction vector looks away, so flip"," if( b < 0.0 )"," ldir = -ext * dir;"," // direction vector already looks in my direction"," else"," ldir = ext * dir;",""," vec3 left = normalize( cross( cam_dir, ldir ) );"," left = radius * left;"," vec3 up = radius * normalize( cross( left, ldir ) );",""," // transform to modelview coordinates"," axis = normalize( normalMatrix * ldir );"," U = normalize( normalMatrix * up );"," V = normalize( normalMatrix * left );",""," vec4 base4 = modelViewMatrix * vec4( center - ldir, 1.0 );"," base_radius.xyz = base4.xyz / base4.w;",""," vec4 top_position = modelViewMatrix * vec4( center + ldir, 1.0 );"," vec4 end4 = top_position;"," end_b.xyz = end4.xyz / end4.w;",""," w = modelViewMatrix * vec4("," center + mapping.x*ldir + mapping.y*left + mapping.z*up, 1.0"," );",""," gl_Position = projectionMatrix * w;",""," // avoid clipping (1.0 seems to induce flickering with some drivers)"," gl_Position.z = 0.99;","","}"].join("\n"),$NGL_shaderTextHash["SphereInstancing.frag"]=$NGL_shaderTextHash["SphereImpostor.frag"],$NGL_shaderTextHash["SphereInstancing.vert"]=["uniform mat4 projectionMatrixInverse;","uniform float nearClip;","","varying float vRadius;","varying float vRadiusSq;","varying vec3 vPoint;","varying vec3 vPointViewPosition;","varying float fogDepth;","varying float fogNear;","varying float fogFar;","","attribute vec2 mapping;","//attribute vec3 position;","attribute float radius;","attribute vec4 matrix1;","attribute vec4 matrix2;","attribute vec4 matrix3;","attribute vec4 matrix4;","","#ifdef PICKING"," #include unpack_clr"," attribute float primitiveId;"," varying vec3 vPickingColor;","#else"," #include color_pars_vertex","#endif","","//include matrix_scale","float matrixScale( in mat4 m ){"," vec4 r = m[ 0 ];"," return sqrt( r[ 0 ] * r[ 0 ] + r[ 1 ] * r[ 1 ] + r[ 2 ] * r[ 2 ] );","}","","const mat4 D = mat4("," 1.0, 0.0, 0.0, 0.0,"," 0.0, 1.0, 0.0, 0.0,"," 0.0, 0.0, 1.0, 0.0,"," 0.0, 0.0, 0.0, -1.0",");","","mat4 transposeTmp( in mat4 inMatrix ) {"," vec4 i0 = inMatrix[0];"," vec4 i1 = inMatrix[1];"," vec4 i2 = inMatrix[2];"," vec4 i3 = inMatrix[3];",""," mat4 outMatrix = mat4("," vec4(i0.x, i1.x, i2.x, i3.x),"," vec4(i0.y, i1.y, i2.y, i3.y),"," vec4(i0.z, i1.z, i2.z, i3.z),"," vec4(i0.w, i1.w, i2.w, i3.w)"," );"," return outMatrix;","}","","//------------------------------------------------------------------------------","// Compute point size and center using the technique described in:","// 'GPU-Based Ray-Casting of Quadratic Surfaces'","// by Christian Sigg, Tim Weyrich, Mario Botsch, Markus Gross.","//","// Code based on","/*=========================================================================",""," Program: Visualization Toolkit"," Module: Quadrics_fs.glsl and Quadrics_vs.glsl",""," Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen"," All rights reserved."," See Copyright.txt or http://www.kitware.com/Copyright.htm for details.",""," This software is distributed WITHOUT ANY WARRANTY; without even"," the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR"," PURPOSE. See the above copyright notice for more information.",""," =========================================================================*/","","// .NAME Quadrics_fs.glsl and Quadrics_vs.glsl","// .SECTION Thanks","// ","//","// This file is part of the PointSprites plugin developed and contributed by","//","// Copyright (c) CSCS - Swiss National Supercomputing Centre","// EDF - Electricite de France","//","// John Biddiscombe, Ugo Varetto (CSCS)","// Stephane Ploix (EDF)","//","// ","//","// Contributions by Alexander Rose","// - ported to WebGL","// - adapted to work with quads","void ComputePointSizeAndPositionInClipCoordSphere(vec4 updatePosition){",""," vec2 xbc;"," vec2 ybc;",""," mat4 T = mat4("," radius, 0.0, 0.0, 0.0,"," 0.0, radius, 0.0, 0.0,"," 0.0, 0.0, radius, 0.0,"," updatePosition.x, updatePosition.y, updatePosition.z, 1.0"," );",""," mat4 R = transposeTmp( projectionMatrix * modelViewMatrix * T );"," float A = dot( R[ 3 ], D * R[ 3 ] );"," float B = -2.0 * dot( R[ 0 ], D * R[ 3 ] );"," float C = dot( R[ 0 ], D * R[ 0 ] );"," xbc[ 0 ] = ( -B - sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," xbc[ 1 ] = ( -B + sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," float sx = abs( xbc[ 0 ] - xbc[ 1 ] ) * 0.5;",""," A = dot( R[ 3 ], D * R[ 3 ] );"," B = -2.0 * dot( R[ 1 ], D * R[ 3 ] );"," C = dot( R[ 1 ], D * R[ 1 ] );"," ybc[ 0 ] = ( -B - sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," ybc[ 1 ] = ( -B + sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );"," float sy = abs( ybc[ 0 ] - ybc[ 1 ] ) * 0.5;",""," gl_Position.xy = vec2( 0.5 * ( xbc.x + xbc.y ), 0.5 * ( ybc.x + ybc.y ) );"," gl_Position.xy -= mapping * vec2( sx, sy );"," gl_Position.xy *= gl_Position.w;","","}",""," mat4 computeMat(vec4 v1, vec4 v2, vec4 v3, vec4 v4) {"," return mat4("," v1.x, v1.y, v1.z, v1.w,"," v2.x, v2.y, v2.z, v2.w,"," v3.x, v3.y, v3.z, v3.w,"," v4.x, v4.y, v4.z, v4.w"," );"," }","","void main(void){",""," #ifdef PICKING"," vPickingColor = unpackColor( primitiveId );"," #else"," #include color_vertex"," #endif",""," vRadius = radius * matrixScale( modelViewMatrix );",""," mat4 matrix = computeMat(matrix1, matrix2, matrix3, matrix4);"," vec4 updatePosition = matrix * vec4(position, 1.0);","","// vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );"," vec4 mvPosition = modelViewMatrix * vec4( updatePosition.xyz, 1.0 );"," // avoid clipping, added again in fragment shader"," mvPosition.z -= vRadius;","","// gl_Position = projectionMatrix * vec4( mvPosition.xyz, 1.0 );"," gl_Position = projectionMatrix * vec4( mvPosition.xyz, 1.0 );"," ComputePointSizeAndPositionInClipCoordSphere(updatePosition);","",""," vRadiusSq = vRadius * vRadius;"," vec4 vPoint4 = projectionMatrixInverse * gl_Position;"," vPoint = vPoint4.xyz / vPoint4.w;"," vPointViewPosition = -mvPosition.xyz / mvPosition.w;","","}"].join("\n"),$NGL_shaderTextHash["CylinderInstancing.frag"]=$NGL_shaderTextHash["CylinderImpostor.frag"],$NGL_shaderTextHash["CylinderInstancing.vert"]=["// Open-Source PyMOL is Copyright (C) Schrodinger, LLC.","//","// All Rights Reserved","//","// Permission to use, copy, modify, distribute, and distribute modified","// versions of this software and its built-in documentation for any","// purpose and without fee is hereby granted, provided that the above","// copyright notice appears in all copies and that both the copyright","// notice and this permission notice appear in supporting documentation,","// and that the name of Schrodinger, LLC not be used in advertising or","// publicity pertaining to distribution of the software without specific,","// written prior permission.","//","// SCHRODINGER, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,","// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN","// NO EVENT SHALL SCHRODINGER, LLC BE LIABLE FOR ANY SPECIAL, INDIRECT OR","// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS","// OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE","// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE","// USE OR PERFORMANCE OF THIS SOFTWARE.","","// Contributions by Alexander Rose","// - ported to WebGL","// - dual color","// - pk color","// - shift","","attribute vec3 mapping;","attribute vec3 position1;","attribute vec3 position2;","attribute float radius;","attribute vec4 matrix1;","attribute vec4 matrix2;","attribute vec4 matrix3;","attribute vec4 matrix4;","","varying vec3 axis;","varying vec4 base_radius;","varying vec4 end_b;","varying vec3 U;","varying vec3 V;","varying vec4 w;","varying float fogDepth;","varying float fogNear;","varying float fogFar;","","#ifdef PICKING"," #include unpack_clr"," attribute float primitiveId;"," varying vec3 vPickingColor;","#else"," //attribute vec3 color;"," attribute vec3 color2;"," varying vec3 vColor1;"," varying vec3 vColor2;","#endif","","uniform mat4 modelViewMatrixInverse;","uniform float ortho;","","//include matrix_scale","float matrixScale( in mat4 m ){"," vec4 r = m[ 0 ];"," return sqrt( r[ 0 ] * r[ 0 ] + r[ 1 ] * r[ 1 ] + r[ 2 ] * r[ 2 ] );","}",""," mat4 computeMat(vec4 v1, vec4 v2, vec4 v3, vec4 v4) {"," return mat4("," v1.x, v1.y, v1.z, v1.w,"," v2.x, v2.y, v2.z, v2.w,"," v3.x, v3.y, v3.z, v3.w,"," v4.x, v4.y, v4.z, v4.w"," );"," }","","void main(){",""," #ifdef PICKING"," vPickingColor = unpackColor( primitiveId );"," #else"," vColor1 = color;"," vColor2 = color2;"," #endif",""," // vRadius = radius;"," base_radius.w = radius * matrixScale( modelViewMatrix );",""," //vec3 center = ( position2 + position1 ) / 2.0;",""," mat4 matrix = computeMat(matrix1, matrix2, matrix3, matrix4);"," vec4 updatePosition1 = matrix * vec4(position1, 1.0);"," vec4 updatePosition2 = matrix * vec4(position2, 1.0);"," vec3 center = ( updatePosition2.xyz + updatePosition1.xyz ) / 2.0;",""," //vec3 dir = normalize( position2 - position1 );"," vec3 dir = normalize( updatePosition2.xyz - updatePosition1.xyz );"," float ext = length( position2 - position1 ) / 2.0;",""," // using cameraPosition fails on some machines, not sure why"," // vec3 cam_dir = normalize( cameraPosition - mix( center, vec3( 0.0 ), ortho ) );"," vec3 cam_dir;"," if( ortho == 0.0 ){"," cam_dir = ( modelViewMatrixInverse * vec4( 0, 0, 0, 1 ) ).xyz - center;"," }else{"," cam_dir = ( modelViewMatrixInverse * vec4( 0, 0, 1, 0 ) ).xyz;"," }"," cam_dir = normalize( cam_dir );",""," vec3 ldir;",""," float b = dot( cam_dir, dir );"," end_b.w = b;"," // direction vector looks away, so flip"," if( b < 0.0 )"," ldir = -ext * dir;"," // direction vector already looks in my direction"," else"," ldir = ext * dir;",""," vec3 left = normalize( cross( cam_dir, ldir ) );"," left = radius * left;"," vec3 up = radius * normalize( cross( left, ldir ) );",""," // transform to modelview coordinates"," axis = normalize( normalMatrix * ldir );"," U = normalize( normalMatrix * up );"," V = normalize( normalMatrix * left );",""," vec4 base4 = modelViewMatrix * vec4( center - ldir, 1.0 );"," base_radius.xyz = base4.xyz / base4.w;",""," vec4 top_position = modelViewMatrix * vec4( center + ldir, 1.0 );"," vec4 end4 = top_position;"," end_b.xyz = end4.xyz / end4.w;",""," w = modelViewMatrix * vec4("," center + mapping.x*ldir + mapping.y*left + mapping.z*up, 1.0"," );",""," gl_Position = projectionMatrix * w;",""," // avoid clipping (1.0 seems to induce flickering with some drivers)"," gl_Position.z = 0.99;","","}"].join("\n"),$NGL_shaderTextHash["Instancing.frag"]=["#define STANDARD","uniform vec3 diffuse;","uniform vec3 emissive;","uniform float roughness;","uniform float metalness;","uniform float opacity;","uniform float nearClip;","uniform float clipRadius;","uniform mat4 projectionMatrix;","uniform float ortho;","varying float bCylinder;","","#if defined( NEAR_CLIP ) || defined( RADIUS_CLIP ) || ( !defined( PICKING ) && !defined( NOLIGHT ) )"," varying vec3 vViewPosition;","#endif","","#if defined( RADIUS_CLIP )"," varying vec3 vClipCenter;","#endif","","#if defined( PICKING )"," uniform float objectId;"," varying vec3 vPickingColor;","#elif defined( NOLIGHT )"," varying vec3 vColor;","#else"," #ifndef FLAT_SHADED"," varying vec3 vNormal;"," #endif"," #include common"," #include color_pars_fragment"," #include fog_pars_fragment"," #include bsdfs"," #include lights_pars_begin"," #include lights_physical_pars_fragment","#endif","","void main(){"," #include nearclip_fragment"," #include radiusclip_fragment",""," #if defined( PICKING )",""," gl_FragColor = vec4( vPickingColor, objectId );",""," #elif defined( NOLIGHT )",""," gl_FragColor = vec4( vColor, opacity );",""," #else",""," vec4 diffuseColor = vec4( diffuse, opacity );"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"," vec3 totalEmissiveLight = emissive;",""," #include color_fragment"," #include roughnessmap_fragment"," #include metalnessmap_fragment"," #include normal_flip"," #include normal_fragment_begin",""," //include dull_interior_fragment",""," #include lights_physical_fragment"," //include lights_template"," #include lights_fragment_begin"," #include lights_fragment_end",""," vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveLight;",""," #include interior_fragment",""," gl_FragColor = vec4( outgoingLight, diffuseColor.a );",""," #include premultiplied_alpha_fragment"," #include tonemapping_fragment"," #include encodings_fragment"," #include fog_fragment",""," #include opaque_back_fragment",""," #endif","","}"].join("\n"),$NGL_shaderTextHash["Instancing.vert"]=["#define STANDARD","","uniform mat4 projectionMatrixInverse;","uniform float nearClip;","uniform vec3 clipCenter;","attribute vec4 matrix1;","attribute vec4 matrix2;","attribute vec4 matrix3;","attribute vec4 matrix4;","attribute float cylinder;","varying float bCylinder;","","#if defined( NEAR_CLIP ) || defined( RADIUS_CLIP ) || ( !defined( PICKING ) && !defined( NOLIGHT ) )"," varying vec3 vViewPosition;","#endif","","#if defined( RADIUS_CLIP )"," varying vec3 vClipCenter;","#endif","","#if defined( PICKING )"," #include unpack_color"," attribute float primitiveId;"," varying vec3 vPickingColor;","#elif defined( NOLIGHT )"," varying vec3 vColor;","#else"," #include color_pars_vertex"," #ifndef FLAT_SHADED"," varying vec3 vNormal;"," #endif","#endif","","#include common",""," mat4 computeMat(vec4 v1, vec4 v2, vec4 v3, vec4 v4) {"," return mat4("," v1.x, v1.y, v1.z, v1.w,"," v2.x, v2.y, v2.z, v2.w,"," v3.x, v3.y, v3.z, v3.w,"," v4.x, v4.y, v4.z, v4.w"," );"," }","","void main(){"," bCylinder = cylinder;",""," mat4 matrix = computeMat(matrix1, matrix2, matrix3, matrix4);"," vec4 updatePosition = matrix * vec4(position, 1.0);",""," #if defined( PICKING )"," vPickingColor = unpackColor( primitiveId );"," #elif defined( NOLIGHT )"," vColor = color;"," #else"," #include color_vertex"," //include beginnormal_vertex"," //vec3 objectNormal = vec3( normal );"," vec3 objectNormal = vec3(matrix * vec4(normal,0.0));"," #include defaultnormal_vertex"," // Normal computed with derivatives when FLAT_SHADED"," #ifndef FLAT_SHADED"," vNormal = normalize( transformedNormal );"," #endif"," #endif",""," //include begin_vertex"," vec3 transformed = updatePosition.xyz;"," //include project_vertex"," vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );"," gl_Position = projectionMatrix * mvPosition;",""," #if defined( NEAR_CLIP ) || defined( RADIUS_CLIP ) || ( !defined( PICKING ) && !defined( NOLIGHT ) )"," vViewPosition = -mvPosition.xyz;"," #endif",""," #if defined( RADIUS_CLIP )"," vClipCenter = -( modelViewMatrix * vec4( clipCenter, 1.0 ) ).xyz;"," #endif",""," #include nearclip_vertex","","}"].join("\n"),THREE.RenderableObject=function(){"use strict";this.id=0,this.object=null,this.z=0},THREE.RenderableFace=function(){"use strict";this.id=0,this.v1=new THREE.RenderableVertex,this.v2=new THREE.RenderableVertex,this.v3=new THREE.RenderableVertex,this.normalModel=new THREE.Vector3,this.vertexNormalsModel=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3],this.vertexNormalsLength=0,this.color=new THREE.Color,this.material=null,this.uvs=[new THREE.Vector2,new THREE.Vector2,new THREE.Vector2],this.z=0},THREE.RenderableVertex=function(){"use strict";this.position=new THREE.Vector3,this.positionWorld=new THREE.Vector3,this.positionScreen=new THREE.Vector4,this.visible=!0},THREE.RenderableVertex.prototype.copy=function(e){"use strict";this.positionWorld.copy(e.positionWorld),this.positionScreen.copy(e.positionScreen)},THREE.RenderableLine=function(){"use strict";this.id=0,this.v1=new THREE.RenderableVertex,this.v2=new THREE.RenderableVertex,this.vertexColors=[new THREE.Color,new THREE.Color],this.material=null,this.z=0},THREE.RenderableSprite=function(){"use strict";this.id=0,this.object=null,this.x=0,this.y=0,this.z=0,this.rotation=0,this.scale=new THREE.Vector2,this.material=null},THREE.Projector=function(){"use strict";var e,t,n,r,i,o,a,s,c,u,d,l=[],f=0,p=[],h=0,g=[],v=0,m=[],y=0,E=[],w=0,b={objects:[],lights:[],elements:[]},_=(new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3),T=new THREE.Vector4,S=new THREE.Box3(new THREE.Vector3(-1,-1,-1),new THREE.Vector3(1,1,1)),C=new THREE.Box3,x=new Array(3),R=(new Array(4),new THREE.Matrix4),A=new THREE.Matrix4,k=(new THREE.Matrix4,new THREE.Matrix3,new THREE.Frustum);new THREE.Vector4,new THREE.Vector4;this.projectVector=function(e,t){console.warn("THREE.Projector: .projectVector() is now vector.project()."),e.project(t)},this.unprojectVector=function(e,t){console.warn("THREE.Projector: .unprojectVector() is now vector.unproject()."),e.unproject(t)},this.pkRay=function(e,t){console.error("THREE.Projector: .pkRay() is now raycaster.setFromCamera().")};var I=new function(){var e=[],t=[],c=null,u=null,l=new THREE.Matrix3,f=function(e){var t=e.position,n=e.positionWorld,r=e.positionScreen;n.copy(t).applyMatrix4(d),r.copy(n).applyMatrix4(A);var i=1/r.w;r.x*=i,r.y*=i,r.z*=i,e.visible=r.x>=-1&&r.x<=1&&r.y>=-1&&r.y<=1&&r.z>=-1&&r.z<=1},E=function(e,t,n){return!0===e.visible||!0===t.visible||!0===n.visible||(x[0]=e.positionScreen,x[1]=t.positionScreen,x[2]=n.positionScreen,S.isIntersectionBox(C.setFromPoints(x)))},w=function(e,t,n){return(n.positionScreen.x-e.positionScreen.x)*(t.positionScreen.y-e.positionScreen.y)-(n.positionScreen.y-e.positionScreen.y)*(t.positionScreen.x-e.positionScreen.x)<0};return{setObject:function(n){u=(c=n).material,l.getNormalMatrix(c.matrixWorld),e.length=0,t.length=0},projectVertex:f,checkTriangleVisibility:E,checkBackfaceCulling:w,pushVertex:function(e,t,i){(n=function(){if(r===h){var e=new THREE.RenderableVertex;return p.push(e),h++,r++,e}return p[r++]}()).position.set(e,t,i),f(n)},pushNormal:function(t,n,r){e.push(t,n,r)},pushUv:function(e,n){t.push(e,n)},pushLine:function(e,t){var n=p[e],r=p[t];(a=function(){if(s===y){var e=new THREE.RenderableLine;return m.push(e),y++,s++,e}return m[s++]}()).id=c.id,a.v1.copy(n),a.v2.copy(r),a.z=(n.positionScreen.z+r.positionScreen.z)/2,a.material=c.material,b.elements.push(a)},pushTriangle:function(n,r,a){var s=p[n],d=p[r],f=p[a];if(!1!==E(s,d,f)&&(u.side===THREE.DoubleSide||!0===w(s,d,f))){(i=function(){if(o===v){var e=new THREE.RenderableFace;return g.push(e),v++,o++,e}return g[o++]}()).id=c.id,i.v1.copy(s),i.v2.copy(d),i.v3.copy(f),i.z=(s.positionScreen.z+d.positionScreen.z+f.positionScreen.z)/3;for(var h=0;h<3;h++){var m=3*arguments[h],y=i.vertexNormalsModel[h];y.set(e[m],e[m+1],e[m+2]),y.applyMatrix3(l).normalize();var _=2*arguments[h];i.uvs[h].set(t[_],t[_+1])}i.vertexNormalsLength=3,i.material=c.material,b.elements.push(i)}}}};function P(){if(u===w){var e=new THREE.RenderableSprite;return E.push(e),w++,u++,e}return E[u++]}function N(e,t){return e.z!==t.z?t.z-e.z:e.id!==t.id?e.id-t.id:0}this.projectScene=function(n,i,a,p){o=0,s=0,u=0,b.elements.length=0,!0===n.autoUpdate&&n.updateMatrixWorld(),void 0===i.parent&&i.updateMatrixWorld(),R.copy(i.matrixWorldInverse.copy(i.matrixWorld).invert()),A.multiplyMatrices(i.projectionMatrix,R),k.setFromMatrix(A),t=0,b.objects.length=0,b.lights.length=0,n.traverseVisible(function(n){if(n instanceof THREE.Light)b.lights.push(n);else if(n instanceof THREE.Mesh||n instanceof THREE.Line||n instanceof THREE.Sprite){if(!1===n.material.visible)return;!1!==n.frustumCulled&&!0!==k.intersectsObject(n)||((e=function(){if(t===f){var e=new THREE.RenderableObject;return l.push(e),f++,t++,e}return l[t++]}()).id=n.id,e.object=n,_.setFromMatrixPosition(n.matrixWorld),_.applyProjection(A),e.z=_.z,b.objects.push(e))}}),!0===a&&b.objects.sort(N);for(var h=0,g=b.objects.length;h0)for(h=0;h=-1&&T.z<=1&&((c=P()).id=v.id,c.x=T.x*H,c.y=T.y*H,c.z=T.z,c.object=v,c.rotation=v.rotation,c.scale.x=v.scale.x*Math.abs(c.x-(T.x+i.projectionMatrix.elements[0])/(T.w+i.projectionMatrix.elements[12])),c.scale.y=v.scale.y*Math.abs(c.y-(T.y+i.projectionMatrix.elements[5])/(T.w+i.projectionMatrix.elements[13])),c.material=v.material,b.elements.push(c))}}return!0===p&&b.elements.sort(N),b}},THREE.TrackballControls=function(e,t,n){"use strict";var r=this;this.STATE={NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN:4},this.object=e,this.domElement=void 0!==t?t:document,this.enabled=!0,this.screen={left:0,top:0,width:0,height:0},this.rotateSpeed=1,this.zoomSpeed=1.2,this.panSpeed=.3,this.noRotate=!1,this.noZoom=!1,this.noPan=!1,this.noRoll=!1,this.staticMoving=!1,this.dynamicDampingFactor=.2,this.minDistance=0,this.maxDistance=1/0,this.keys=[65,83,68],this.target=new THREE.Vector3;var i=new THREE.Vector3;this._state=this.STATE.NONE;var o=this.STATE.NONE,a=new THREE.Vector3;this._rotateStart=new THREE.Vector3,this._rotateEnd=new THREE.Vector3,this._zoomStart=new THREE.Vector2,this._zoomEnd=new THREE.Vector2;var s=0,c=0;this._panStart=new THREE.Vector2,this._panEnd=new THREE.Vector2,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone();var u={type:"change"},d={type:"start"},l={type:"end"};this.handleResize=function(){if(this.domElement===document)this.screen.left=0,this.screen.top=0,this.screen.width=window.innerWidth,this.screen.height=window.innerHeight;else if(this.domElement){var e=this.domElement.getBoundingClientRect(),t=this.domElement.ownerDocument.documentElement;this.screen.left=e.left+window.pageXOffset-t.clientLeft,this.screen.top=e.top+window.pageYOffset-t.clientTop,this.screen.width=e.width,this.screen.height=e.height}},this.handleEvent=function(e){"function"==typeof this[e.type]&&this[e.type](e)};var f,p,h,g,v,m,y,E,w,b=(f=new THREE.Vector2,function(e,t){return f.set((e-r.screen.left)/r.screen.width,(t-r.screen.top)/r.screen.height),f}),_=(p=new THREE.Vector3,h=new THREE.Vector3,g=new THREE.Vector3,function(e,t){g.set((e-.5*r.screen.width-r.screen.left)/(.5*r.screen.width),(.5*r.screen.height+r.screen.top-t)/(.5*r.screen.height),0);var n=g.length();return r.noRoll?n1?g.normalize():g.z=Math.sqrt(1-n*n),a.copy(r.object.position).sub(r.target),p.copy(r.object.up).setLength(g.y),p.add(h.copy(r.object.up).cross(a).setLength(g.x)),p.add(a.setLength(g.z)),p});function T(e){!1===r.enabled||Object.keys(window).length<2||(window.removeEventListener("keydown",T),o=r._state,r._state===r.STATE.NONE&&(e.keyCode!==r.keys[r.STATE.ROTATE]||r.noRotate?e.keyCode!==r.keys[r.STATE.ZOOM]||r.noZoom?e.keyCode!==r.keys[r.STATE.PAN]||r.noPan||(r._state=r.STATE.PAN):r._state=r.STATE.ZOOM:r._state=r.STATE.ROTATE))}function S(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state!==r.STATE.ROTATE||r.noRotate?r._state!==r.STATE.ZOOM||r.noZoom?r._state!==r.STATE.PAN||r.noPan||r._panEnd.copy(b(e.pageX,e.pageY)):r._zoomEnd.copy(b(e.pageX,e.pageY)):r._rotateEnd.copy(_(e.pageX,e.pageY)))}function C(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state=r.STATE.NONE,document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",C),r.dispatchEvent(l))}function x(e){if(!(!1===r.enabled||Object.keys(window).length<2)){e.stopPropagation();var t=0;e.wheelDelta?t=e.wheelDelta/40:e.detail&&(t=-e.detail/3),r._zoomStart.y=.005*t,r.dispatchEvent(d),r.dispatchEvent(l)}}this.rotateCamera=(v=new THREE.Vector3,m=new THREE.Quaternion,function(e,t){var i;void 0===e&&(i=Math.acos(r._rotateStart.dot(r._rotateEnd)/r._rotateStart.length()/r._rotateEnd.length())),(i||void 0!==e)&&(void 0===e?(v.crossVectors(r._rotateStart,r._rotateEnd).normalize(),i*=r.rotateSpeed,m.setFromAxisAngle(v,-i)):m.copy(e),void 0===n||void 0===n.quaternion||void 0!==t&&!0!==t||n.quaternion.multiplyQuaternions(m,n.quaternion),a.applyQuaternion(m),r.object.up.applyQuaternion(m),r._rotateEnd.applyQuaternion(m),r.staticMoving?r._rotateStart.copy(r._rotateEnd):(m.setFromAxisAngle(v,i*(r.dynamicDampingFactor-1)),r._rotateStart.applyQuaternion(m)))}),this.zoomCamera=function(e,t){var i;r._state===r.STATE.TOUCH_ZOOM_PAN?(void 0!==e?i=e:(i=s/c,s=c),a.multiplyScalar(i),void 0===n||void 0===n._zoomFactor||void 0!==t&&!0!==t||(n._zoomFactor*=i,n.fogCls.setFog())):(i=void 0!==e?e:1+(r._zoomEnd.y-r._zoomStart.y)*r.zoomSpeed,void 0===n||void 0===n._zoomFactor||void 0!==t&&!0!==t||(n._zoomFactor*=i,n.fogCls.setFog()),1!==i&&(a.multiplyScalar(i),r.staticMoving?r._zoomStart.copy(r._zoomEnd):r._zoomStart.y+=(r._zoomEnd.y-r._zoomStart.y)*this.dynamicDampingFactor))},this.panCamera=(y=new THREE.Vector2,E=new THREE.Vector3,w=new THREE.Vector3,function(e,t){void 0!==e?(y=e,void 0===n||void 0===n.mouseChange||void 0!==t&&!0!==t||n.mouseChange.add(e)):(y.copy(r._panEnd).sub(r._panStart),void 0===n||void 0===n.mouseChange||void 0!==t&&!0!==t||n.mouseChange.add(r._panEnd).sub(r._panStart)),y.lengthSq()&&(y.multiplyScalar(a.length()*r.panSpeed),w.copy(a).cross(r.object.up).setLength(y.x),w.add(E.copy(r.object.up).setLength(y.y)),r.object.position.add(w),r.target.add(w),r.staticMoving?r._panStart.copy(r._panEnd):r._panStart.add(y.subVectors(r._panEnd,r._panStart).multiplyScalar(r.dynamicDampingFactor)))}),this.checkDistances=function(){r.noZoom&&r.noPan||(a.lengthSq()>r.maxDistance*r.maxDistance&&r.object.position.addVectors(r.target,a.setLength(r.maxDistance)),a.lengthSq()1e-6&&(r.dispatchEvent(u),i.copy(r.object.position))},this.reset=function(){r._state=r.STATE.NONE,o=r.STATE.NONE,r.target.copy(r.target0),r.object.position.copy(r.position0),r.object.up.copy(r.up0),a.subVectors(r.object.position,r.target),r.object.lookAt(r.target),r.dispatchEvent(u),i.copy(r.object.position)},Object.keys(window).length>=2&&this.domElement&&(this.domElement.addEventListener("contextmn",function(e){},!1),this.domElement.addEventListener("mousedown",function(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state===r.STATE.NONE&&(r._state=e.button),r._state!==r.STATE.ROTATE||r.noRotate?r._state!==r.STATE.ZOOM||r.noZoom?r._state!==r.STATE.PAN||r.noPan||(r._panStart.copy(b(e.pageX,e.pageY)),r._panEnd.copy(r._panStart)):(r._zoomStart.copy(b(e.pageX,e.pageY)),r._zoomEnd.copy(r._zoomStart)):(r._rotateStart.copy(_(e.pageX,e.pageY)),r._rotateEnd.copy(r._rotateStart)),document.addEventListener("mousemove",S,!1),document.addEventListener("mouseup",C,!1),r.dispatchEvent(d))},!1),this.domElement.addEventListener("mousewheel",x,!1),this.domElement.addEventListener("DOMMouseScroll",x,!1),this.domElement.addEventListener("touchstart",function(e){if(!(!1===r.enabled||Object.keys(window).length<2)){switch(e.touches.length){case 1:r._state=r.STATE.TOUCH_ROTATE,r._rotateStart.copy(_(e.touches[0].pageX,e.touches[0].pageY)),r._rotateEnd.copy(r._rotateStart);break;case 2:r._state=r.STATE.TOUCH_ZOOM_PAN;var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;c=s=Math.sqrt(t*t+n*n);var i=(e.touches[0].pageX+e.touches[1].pageX)/2,o=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panStart.copy(b(i,o)),r._panEnd.copy(r._panStart);break;default:r._state=r.STATE.NONE}r.dispatchEvent(d)}},!1),this.domElement.addEventListener("touchend",function(e){if(!(!1===r.enabled||Object.keys(window).length<2)){switch(e.touches.length){case 1:r._rotateEnd.copy(_(e.touches[0].pageX,e.touches[0].pageY)),r._rotateStart.copy(r._rotateEnd);break;case 2:s=c=0;var t=(e.touches[0].pageX+e.touches[1].pageX)/2,n=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panEnd.copy(b(t,n)),r._panStart.copy(r._panEnd)}r._state=r.STATE.NONE,r.dispatchEvent(l)}},!1),this.domElement.addEventListener("touchmove",function(e){if(!(!1===r.enabled||Object.keys(window).length<2))switch(e.stopPropagation(),e.touches.length){case 1:r._rotateEnd.copy(_(e.touches[0].pageX,e.touches[0].pageY));break;case 2:var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;c=Math.sqrt(t*t+n*n);var i=(e.touches[0].pageX+e.touches[1].pageX)/2,o=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panEnd.copy(b(i,o));break;default:r._state=r.STATE.NONE}},!1),Object.keys(window).length>=2&&window.addEventListener("keydown",T,!1),Object.keys(window).length>=2&&window.addEventListener("keyup",function(e){!1===r.enabled||Object.keys(window).length<2||(r._state=o,window.addEventListener("keydown",T,!1))},!1)),this.handleResize(),this.update()},THREE.TrackballControls.prototype=Object.create(THREE.EventDispatcher.prototype),THREE.TrackballControls.prototype.constructor=THREE.TrackballControls,THREE.OrthographicTrackballControls=function(e,t,n){this.icn3d;var r=this,i={NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN:4};this.object=e,this.domElement=void 0!==t?t:document,this.enabled=!0,this.screen={left:0,top:0,width:0,height:0},this.rotateSpeed=.5,this.zoomSpeed=1.2;this.zoomSpeed*=.01,this.panSpeed=.03,this.noRotate=!1,this.noZoom=!1,this.noPan=!1,this.noRoll=!1,this.staticMoving=!1,this.dynamicDampingFactor=.2,this.keys=[65,83,68],this.target=new THREE.Vector3;var o=new THREE.Vector3;this._state=i.NONE;var a=i.NONE,s=new THREE.Vector3;this._rotateStart=new THREE.Vector3,this._rotateEnd=new THREE.Vector3,this._zoomStart=new THREE.Vector2,this._zoomEnd=new THREE.Vector2;var c=1,u=0,d=0;this._panStart=new THREE.Vector2,this._panEnd=new THREE.Vector2,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone(),this.left0=this.object.left,this.right0=this.object.right,this.top0=this.object.top,this.bottom0=this.object.bottom,this.center0=new THREE.Vector2((this.left0+this.right0)/2,(this.top0+this.bottom0)/2);var l={type:"change"},f={type:"start"},p={type:"end"};this.handleResize=function(){if(this.domElement===document)this.screen.left=0,this.screen.top=0,this.screen.width=window.innerWidth,this.screen.height=window.innerHeight;else if(this.domElement){var e=this.domElement.getBoundingClientRect(),t=this.domElement.ownerDocument.documentElement;this.screen.left=e.left+window.pageXOffset-t.clientLeft,this.screen.top=e.top+window.pageYOffset-t.clientTop,this.screen.width=e.width,this.screen.height=e.height}this.left0=this.object.left,this.right0=this.object.right,this.top0=this.object.top,this.bottom0=this.object.bottom,this.center0.set((this.left0+this.right0)/2,(this.top0+this.bottom0)/2)},this.handleEvent=function(e){"function"==typeof this[e.type]&&this[e.type](e)};var h,g,v,m,y,E,w,b,_,T=(h=new THREE.Vector2,function(e,t){return h.set((e-r.screen.left)/r.screen.width,(t-r.screen.top)/r.screen.height),h}),S=(g=new THREE.Vector3,v=new THREE.Vector3,m=new THREE.Vector3,function(e,t){m.set((e-.5*r.screen.width-r.screen.left)/(.5*r.screen.width),(.5*r.screen.height+r.screen.top-t)/(.5*r.screen.height),0);var n=m.length();return r.noRoll?n1?m.normalize():m.z=Math.sqrt(1-n*n),s.copy(r.object.position).sub(r.target),g.copy(r.object.up).setLength(m.y),g.add(v.copy(r.object.up).cross(s).setLength(m.x)),g.add(s.setLength(m.z)),g});function C(e){!1===r.enabled||Object.keys(window).length<2||(window.removeEventListener("keydown",C),a=r._state,r._state===i.NONE&&(e.keyCode!==r.keys[i.ROTATE]||r.noRotate?e.keyCode!==r.keys[i.ZOOM]||r.noZoom?e.keyCode!==r.keys[i.PAN]||r.noPan||(r._state=i.PAN):r._state=i.ZOOM:r._state=i.ROTATE))}function x(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state!==i.ROTATE||r.noRotate?r._state!==i.ZOOM||r.noZoom?r._state!==i.PAN||r.noPan||r._panEnd.copy(T(e.pageX,e.pageY)):r._zoomEnd.copy(T(e.pageX,e.pageY)):r._rotateEnd.copy(S(e.pageX,e.pageY)))}function R(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state=i.NONE,document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",R),r.dispatchEvent(p))}function A(e){if(!(!1===r.enabled||Object.keys(window).length<2)){e.stopPropagation();var t=0;e.wheelDelta?t=e.wheelDelta/40:e.detail&&(t=-e.detail/3),r._zoomStart.y=.01*t,r.dispatchEvent(f),r.dispatchEvent(p)}}this.rotateCamera=(y=new THREE.Vector3,E=new THREE.Quaternion,function(e,t){var i;void 0===e&&(i=Math.acos(r._rotateStart.dot(r._rotateEnd)/r._rotateStart.length()/r._rotateEnd.length())),(i||void 0!==e)&&(void 0===e?(y.crossVectors(r._rotateStart,r._rotateEnd).normalize(),i*=r.rotateSpeed,E.setFromAxisAngle(y,-i)):E.copy(e),void 0===n||void 0===n.quaternion||void 0!==t&&!0!==t||n.quaternion.multiplyQuaternions(E,n.quaternion),s.applyQuaternion(E),r.object.up.applyQuaternion(E),r._rotateEnd.applyQuaternion(E),r.staticMoving?r._rotateStart.copy(r._rotateEnd):(E.setFromAxisAngle(y,i*(r.dynamicDampingFactor-1)),r._rotateStart.applyQuaternion(E)))}),this.zoomCamera=function(e,t){var o;r._state===i.TOUCH_ZOOM_PAN?void 0!==e?o=e:(o=u/d,u=d):o=void 0!==e?e:1+(r._zoomEnd.y-r._zoomStart.y)*r.zoomSpeed/.01,void 0===n||void 0===n._zoomFactor||void 0!==t&&!0!==t||(n._zoomFactor*=o),1!==o&&(c=o,r.object.left=c*r.left0+(1-c)*r.center0.x,r.object.right=c*r.right0+(1-c)*r.center0.x,r.object.top=c*r.top0+(1-c)*r.center0.y,r.object.bottom=c*r.bottom0+(1-c)*r.center0.y,r.staticMoving?r._zoomStart.copy(r._zoomEnd):r._zoomStart.y+=(r._zoomEnd.y-r._zoomStart.y)*this.dynamicDampingFactor)},this.panCamera=(w=new THREE.Vector2,b=new THREE.Vector3,_=new THREE.Vector3,function(e,t){void 0!==e?(w=e,void 0===n||void 0===n.mouseChange||void 0!==t&&!0!==t||n.mouseChange.add(e)):(w.copy(r._panEnd).sub(r._panStart),void 0===n||void 0===n.mouseChange||void 0!==t&&!0!==t||n.mouseChange.add(r._panEnd).sub(r._panStart)),w.lengthSq()&&(w.multiplyScalar(s.length()*r.panSpeed),_.copy(s).cross(r.object.up).setLength(w.x),_.add(b.copy(r.object.up).setLength(w.y)),r.object.position.add(_),r.target.add(_),r.staticMoving?r._panStart.copy(r._panEnd):r._panStart.add(w.subVectors(r._panEnd,r._panStart).multiplyScalar(r.dynamicDampingFactor)))}),this.update=function(e){s.subVectors(r.object.position,r.target),r.noRotate||(void 0!==e&&void 0!==e.quaternion?r.rotateCamera(e.quaternion,e.update):r.rotateCamera()),r.noZoom||(void 0!==e&&void 0!==e._zoomFactor?r.zoomCamera(e._zoomFactor,e.update):r.zoomCamera(),r.object.updateProjectionMatrix()),r.noPan||(void 0!==e&&void 0!==e.mouseChange?r.panCamera(e.mouseChange,e.update):r.panCamera()),r.object.position.addVectors(r.target,s),r.object.lookAt(r.target),o.distanceToSquared(r.object.position)>1e-6&&(r.dispatchEvent(l),o.copy(r.object.position))},this.reset=function(){r._state=i.NONE,a=i.NONE,r.target.copy(r.target0),r.object.position.copy(r.position0),r.object.up.copy(r.up0),s.subVectors(r.object.position,r.target),r.object.left=r.left0,r.object.right=r.right0,r.object.top=r.top0,r.object.bottom=r.bottom0,r.object.lookAt(r.target),r.dispatchEvent(l),o.copy(r.object.position)},Object.keys(window).length>=2&&this.domElement&&(this.domElement.addEventListener("contextmn",function(e){},!1),this.domElement.addEventListener("mousedown",function(e){!1===r.enabled||Object.keys(window).length<2||(e.stopPropagation(),r._state===i.NONE&&(r._state=e.button),r._state!==i.ROTATE||r.noRotate?r._state!==i.ZOOM||r.noZoom?r._state!==i.PAN||r.noPan||(r._panStart.copy(T(e.pageX,e.pageY)),r._panEnd.copy(r._panStart)):(r._zoomStart.copy(T(e.pageX,e.pageY)),r._zoomEnd.copy(r._zoomStart)):(r._rotateStart.copy(S(e.pageX,e.pageY)),r._rotateEnd.copy(r._rotateStart)),document.addEventListener("mousemove",x,!1),document.addEventListener("mouseup",R,!1),r.dispatchEvent(f))},!1),this.domElement.addEventListener("mousewheel",A,!1),this.domElement.addEventListener("DOMMouseScroll",A,!1),this.domElement.addEventListener("touchstart",function(e){if(!(!1===r.enabled||Object.keys(window).length<2)){switch(e.touches.length){case 1:r._state=i.TOUCH_ROTATE,r._rotateStart.copy(S(e.touches[0].pageX,e.touches[0].pageY)),r._rotateEnd.copy(r._rotateStart);break;case 2:r._state=i.TOUCH_ZOOM_PAN;var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;d=u=Math.sqrt(t*t+n*n);var o=(e.touches[0].pageX+e.touches[1].pageX)/2,a=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panStart.copy(T(o,a)),r._panEnd.copy(r._panStart);break;default:r._state=i.NONE}r.dispatchEvent(f)}},!1),this.domElement.addEventListener("touchend",function(e){if(!(!1===r.enabled||Object.keys(window).length<2)){switch(e.touches.length){case 1:r._rotateEnd.copy(S(e.touches[0].pageX,e.touches[0].pageY)),r._rotateStart.copy(r._rotateEnd);break;case 2:u=d=0;var t=(e.touches[0].pageX+e.touches[1].pageX)/2,n=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panEnd.copy(T(t,n)),r._panStart.copy(r._panEnd)}r._state=i.NONE,r.dispatchEvent(p)}},!1),this.domElement.addEventListener("touchmove",function(e){if(!(!1===r.enabled||Object.keys(window).length<2))switch(e.stopPropagation(),e.touches.length){case 1:r._rotateEnd.copy(S(e.touches[0].pageX,e.touches[0].pageY));break;case 2:var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;d=Math.sqrt(t*t+n*n);var o=(e.touches[0].pageX+e.touches[1].pageX)/2,a=(e.touches[0].pageY+e.touches[1].pageY)/2;r._panEnd.copy(T(o,a));break;default:r._state=i.NONE}},!1),window.addEventListener("keydown",C,!1),window.addEventListener("keyup",function(e){!1===r.enabled||Object.keys(window).length<2||(r._state=a,window.addEventListener("keydown",C,!1))},!1)),this.handleResize(),this.update()},THREE.OrthographicTrackballControls.prototype=Object.create(THREE.EventDispatcher.prototype),THREE.OrthographicTrackballControls.prototype.constructor=THREE.OrthographicTrackballControls,function(e){var t,n,r,i;e.VERSION={number:"1.1.7",date:"Oct 30 2018"},function(e){function t(e,t,n){(t|=0)<=0&&(t=1);var r=t*n,i=e(r);return{elementSize:n,chunkSize:r,creator:e,current:i,parts:[i],currentIndex:0,elementCount:0}}e.is=function(e){return e.creator&&e.chunkSize},e.add4=function(e,t,n,r,i){return e.currentIndex>=e.chunkSize&&(e.currentIndex=0,e.current=e.creator(e.chunkSize),e.parts[e.parts.length]=e.current),e.current[e.currentIndex++]=t,e.current[e.currentIndex++]=n,e.current[e.currentIndex++]=r,e.current[e.currentIndex++]=i,e.elementCount++},e.add3=function(e,t,n,r){return e.currentIndex>=e.chunkSize&&(e.currentIndex=0,e.current=e.creator(e.chunkSize),e.parts[e.parts.length]=e.current),e.current[e.currentIndex++]=t,e.current[e.currentIndex++]=n,e.current[e.currentIndex++]=r,e.elementCount++},e.add2=function(e,t,n){return e.currentIndex>=e.chunkSize&&(e.currentIndex=0,e.current=e.creator(e.chunkSize),e.parts[e.parts.length]=e.current),e.current[e.currentIndex++]=t,e.current[e.currentIndex++]=n,e.elementCount++},e.add=function(e,t){return e.currentIndex>=e.chunkSize&&(e.currentIndex=0,e.current=e.creator(e.chunkSize),e.parts[e.parts.length]=e.current),e.current[e.currentIndex++]=t,e.elementCount++},e.compact=function(e){var t,n=e.creator(e.elementSize*e.elementCount),r=(e.parts.length-1)*e.chunkSize,i=0;if(e.parts.length>1)if(e.parts[0].buffer)for(var o=0;o=e.chunkSize)n.set(e.current,e.chunkSize*(e.parts.length-1));else for(o=0;o9||o<0)return i*r|0;r=10*r+o|0}return i*r}function n(e,n,r,i){return 43===n.charCodeAt(r)&&r++,e*Math.pow(10,t(n,r,i))}function r(e,t,r){var i=1,o=0,a=0,s=1;for(45===e.charCodeAt(t)&&(i=-1,++t);t=0&&c<10)){if(-2===c){for(++t;t=0&&c<10))return 53===c||21===c?n(i*(o+a/s),e,t+1,r):i*(o+a/s);a=10*a+c,s*=10,++t}return i*(o+a/s)}if(53===c||21===c)return n(i*o,e,t+1,r);break}o=10*o+c,++t}return i*o}e.parseIntSkipTrailingWhitespace=function(e,n,r){for(;n0&&(e.data[e.data.length]=e.chunkData.splice(0,e.chunkOffset).join("")),e.data.join("")):e.chunkData.length===e.chunkOffset?e.chunkData.join(""):e.chunkData.splice(0,e.chunkOffset).join("")},e.writeTo=function(e,t){var n;(n=e).chunkOffset>0&&(n.chunkData.length===n.chunkOffset?n.data[n.data.length]=n.chunkData.join(""):n.data[n.data.length]=n.chunkData.splice(0,n.chunkOffset).join(""),n.chunkOffset=0);for(var r=0,i=e.data;r0&&t(e,i[o]),t(e,n)},e.writePadRight=function(e,n,r){void 0!==n&&null!==n||t(e,i[r]);var o=r-n.length;t(e,n),o>0&&t(e,i[o])},e.writeInteger=function(e,n){t(e,""+n)},e.writeIntegerPadLeft=function(e,n,r){var o=""+n,a=r-o.length;a>0&&t(e,i[a]),t(e,o)},e.writeIntegerPadRight=function(e,n,r){var o=""+n,a=r-o.length;t(e,o),a>0&&t(e,i[a])},e.writeFloat=function(e,n,r){t(e,""+Math.round(r*n)/r)},e.writeFloatPadLeft=function(e,n,r,o){var a=""+Math.round(r*n)/r,s=o-a.length;s>0&&t(e,i[s]),t(e,a)},e.writeFloatPadRight=function(e,n,r,o){var a=""+Math.round(r*n)/r,s=o-a.length;t(e,a),s>0&&t(e,i[s])}}(r.StringWriter||(r.StringWriter={}));var o=function(){function e(){this.isDefined=!1}return e.prototype.getString=function(e){return null},e.prototype.getInteger=function(e){return 0},e.prototype.getFloat=function(e){return 0},e.prototype.getValuePresence=function(e){return 1},e.prototype.areValuesEqual=function(e,t){return!0},e.prototype.stringEquals=function(e,t){return null===t},e}();e.UndefinedColumn=new o,function(e){e.getMatrix=function(e,t,n,r,i){for(var o=[],a=1;a<=n;a++){for(var s=[],c=1;c<=r;c++)s[c-1]=e.getColumn(t+"["+a+"]["+c+"]").getFloat(i);o[a-1]=s}return o},e.getVector=function(e,t,n,r,i){for(var o=[],a=1;a<=n;a++)o[a-1]=e.getColumn(t+"["+a+"]").getFloat(i);return o}}(e.Category||(e.Category={})),function(e){e.error=function(e,t){return void 0===t&&(t=-1),new a(e,t)},e.success=function(e,t){return void 0===t&&(t=[]),new l(e,t)}}(e.ParserResult||(e.ParserResult={}));var a=function(){function e(e,t){this.message=e,this.line=t,this.isError=!0}return e.prototype.toString=function(){return this.line>=0?"[Line "+this.line+"] "+this.message:this.message},e}();e.ParserError=a;var s,c,u,d,l=function(){return function(e,t){this.result=e,this.warnings=t,this.isError=!1}}();e.ParserSuccess=l,function(t){"use strict";var n;!function(e){e.create=function(){return Object.create(null)},e.get=function(e,t){if(t.length>6)return t;var n=e[t];return void 0!==n?n:(e[t]=t,t)}}(n||(n={}));var r=function(){function e(e){this.dataBlocks=[],this.data=e}return e.prototype.toJSON=function(){return this.dataBlocks.map(function(e){return e.toJSON()})},e}();t.File=r;var i=function(){function e(e,t){this.header=t,this.data=e,this.categoryList=[],this.additionalData={},this.categoryMap=new Map}return Object.defineProperty(e.prototype,"categories",{get:function(){return this.categoryList},enumerable:!0,configurable:!0}),e.prototype.getCategory=function(e){return this.categoryMap.get(e)},e.prototype.addCategory=function(e){this.categoryList[this.categoryList.length]=e,this.categoryMap.set(e.name,e)},e.prototype.toJSON=function(){return{id:this.header,categories:this.categoryList.map(function(e){return e.toJSON()}),additionalData:this.additionalData}},e}();t.DataBlock=i;var o=function(){function t(e,t,n,r,i,o,a){this.name=t,this.tokens=o,this.data=e,this.startIndex=n,this.endIndex=r,this.columnCount=i.length,this.rowCount=a/i.length|0,this.columnIndices=new Map,this.columnNameList=[];for(var s=0;s=e.length)e.currentTokenType=6;else{e.currentTokenStart=e.position,e.currentTokenEnd=e.position,e.isEscaped=!1;var n,i,o,a,s=e.data.charCodeAt(e.position);switch(s){case 35:!function(e){for(;e.position=5&&95===e.data.charCodeAt(e.currentTokenStart+4)?68!==(a=(o=e).data.charCodeAt(o.currentTokenStart))&&100!==a||65!==(a=o.data.charCodeAt(o.currentTokenStart+1))&&97!==a||84!==(a=o.data.charCodeAt(o.currentTokenStart+2))&&116!==a||65!==(a=o.data.charCodeAt(o.currentTokenStart+3))&&97!==a?83!==(i=(n=e).data.charCodeAt(n.currentTokenStart))&&115!==i||65!==(i=n.data.charCodeAt(n.currentTokenStart+1))&&97!==i||86!==(i=n.data.charCodeAt(n.currentTokenStart+2))&&118!==i||69!==(i=n.data.charCodeAt(n.currentTokenStart+3))&&101!==i?!function(e){if(e.currentTokenEnd-e.currentTokenStart!=5)return!1;var t=e.data.charCodeAt(e.currentTokenStart);return!(76!==t&&108!==t||79!==(t=e.data.charCodeAt(e.currentTokenStart+1))&&111!==t||79!==(t=e.data.charCodeAt(e.currentTokenStart+2))&&111!==t||80!==(t=e.data.charCodeAt(e.currentTokenStart+3))&&112!==t)}(e)?e.currentTokenType=3:e.currentTokenType=2:e.currentTokenType=1:e.currentTokenType=0:e.currentTokenType=3}}}function u(e){for(c(e);5===e.currentTokenType;)c(e)}function d(e,r){for(var c,d=e.currentTokenStart,l=o(e),f=a(e,l),p=[],h=n.create(512),g=0,v=!0;v;){if(4!==e.currentTokenType||!i(e,d,l)){v=!1;break}if(c=s(e),u(e),3!==e.currentTokenType)return{hasError:!0,errorLine:e.currentLineNumber,errorMessage:"Expected value."};p[p.length]=c,n.addToken(h,e.currentTokenStart,e.currentTokenEnd),g++,u(e)}return r.addCategory(new t.Category(r.data,f,d,e.currentTokenStart,p,h.tokens,g)),{hasError:!1,errorLine:0,errorMessage:""}}function l(e,r){var i=e.currentTokenStart,c=e.currentLineNumber;u(e);for(var d=a(e,o(e)),l=[],f=n.create("_atom_site"===d?r.data.length/1.85|0:1024),p=0;4===e.currentTokenType;)l[l.length]=s(e),u(e);for(;3===e.currentTokenType;)n.addToken(f,e.currentTokenStart,e.currentTokenEnd),p++,u(e);return p%l.length!=0?{hasError:!0,errorLine:e.currentLineNumber,errorMessage:"The number of values for loop starting at line "+c+" is not a multiple of the number of columns."}:(r.addCategory(new t.Category(r.data,d,i,e.currentTokenStart,l,f.tokens,p)),{hasError:!1,errorLine:0,errorMessage:""})}function f(t,n){return e.ParserResult.error(n,t)}function p(n){var r,i,o,a,s,c={data:a=n,length:a.length,position:0,currentTokenStart:0,currentTokenEnd:0,currentTokenType:6,currentLineNumber:1,isEscaped:!1},p=new t.File(n),h=new t.DataBlock(n,"default"),g=new t.DataBlock(n,"empty"),v=!1;for(u(c);6!==c.currentTokenType;){var m=c.currentTokenType;if(0===m){if(v)return f(c.currentLineNumber,"Unexpected data block inside a save frame.");h.categories.length>0&&p.dataBlocks.push(h),h=new t.DataBlock(n,n.substring(c.currentTokenStart+5,c.currentTokenEnd)),u(c)}else if(1===m){if(0===(i=n.substring(c.currentTokenStart+5,c.currentTokenEnd)).length)g.categories.length>0&&((o=h.additionalData.saveFrames)||(o=[],h.additionalData.saveFrames=o),o[o.length]=g),v=!1;else{if(v)return f(c.currentLineNumber,"Save frames cannot be nested.");v=!0,g=new t.DataBlock(n,i)}u(c)}else if(2===m){if((r=l(c,v?g:h)).hasError)return f(r.errorLine,r.errorMessage)}else{if(4!==m)return f(c.currentLineNumber,"Unexpected token. Expected data_, loop_, or data name.");if((r=d(c,v?g:h)).hasError)return f(r.errorLine,r.errorMessage)}}return v?f(c.currentLineNumber,"Unfinished save frame (`"+g.header+"`)."):(h.categories.length>0&&p.dataBlocks.push(h),s=p,e.ParserResult.success(s))}!function(e){e.addToken=function(e,t,n){var r,i;e.count>=e.tokensLenMinus2&&(r=e,(i=new Int32Array(1.61*r.tokens.length|0)).set(r.tokens),r.tokens=i,r.tokensLenMinus2=i.length-2|0),e.tokens[e.count++]=t,e.tokens[e.count++]=n},e.create=function(e){return{tokensLenMinus2:e-2|0,count:0,tokens:new Int32Array(e)}}}(n||(n={})),t.parse=function(e){return p(e)}}(e.Text||(e.Text={})),function(t){"use strict";var n=e.Utils.StringWriter,r=function(){function e(){this.writer=n.create(),this.encoded=!1,this.dataBlockCreated=!1}return e.prototype.startDataBlock=function(e){this.dataBlockCreated=!0,n.write(this.writer,"data_"+(e||"").replace(/[ \n\t]/g,"").toUpperCase()+"\n#\n")},e.prototype.writeCategory=function(e,t){if(this.encoded)throw new Error("The writer contents have already been encoded, no more writing.");if(!this.dataBlockCreated)throw new Error("No data block created.");var r=(t&&t.length?t.map(function(t){return e(t)}):[e(void 0)]).filter(function(e){return e&&e.count>0});if(r.length){var d=r.reduce(function(e,t){return e+(void 0===t.count?1:t.count)},0);d&&(1===d?function(e,t){for(var r=e.desc.fields,o=e.data,d=r.reduce(function(e,t){return Math.max(e,t.name.length)},0)+e.desc.name.length+5,l=0,f=r;l=0}function o(e,t){n.write(e,t),n.newline(e)}function a(e){n.writeSafe(e,". ")}function s(e){n.writeSafe(e,"? ")}function c(e,t){if(t){for(var r=!1,i="'",o="' ",a=!1,s=!1,c=!1,u=0,d=t.length-1;u=0){if(t<128)return 1;if(t<256)return 2;if(t<65536)return 3;if(t<4294967296)return 5;throw new Error("Number too big 0x"+t.toString(16))}if(t>=-32)return 1;if(t>=-128)return 2;if(t>=-32768)return 3;if(t>=-2147483648)return 5;throw new Error("Number too small -0x"+t.toString(16).substr(1))}if("boolean"===n||null===t||void 0===t)return 1;if("object"===n){var o,a=0;if(Array.isArray(t)){o=t.length;for(var s=0;s=0){if(t<128)return n.setUint8(i,t),1;if(t<256)return n.setUint8(i,204),n.setUint8(i+1,t),2;if(t<65536)return n.setUint8(i,205),n.setUint16(i+1,t),3;if(t<4294967296)return n.setUint8(i,206),n.setUint32(i+1,t),5;throw new Error("Number too big 0x"+t.toString(16))}if(t>=-32)return n.setInt8(i,t),1;if(t>=-128)return n.setUint8(i,208),n.setInt8(i+1,t),2;if(t>=-32768)return n.setUint8(i,209),n.setInt16(i+1,t),3;if(t>=-2147483648)return n.setUint8(i,210),n.setInt32(i+1,t),5;throw new Error("Number too small -0x"+(-t).toString(16).substr(1))}if(null===t||void 0===t)return n.setUint8(i,192),1;if("boolean"===o)return n.setUint8(i,t?195:194),1;if("object"===o){var d,l=0,f=Array.isArray(t),p=void 0;if(f?d=t.length:(p=Object.keys(t),d=p.length),d<16?(n.setUint8(i,d|(f?144:128)),l=1):d<65536?(n.setUint8(i,f?220:222),n.setUint16(i+1,d),l=3):d<4294967296&&(n.setUint8(i,f?221:223),n.setUint32(i+1,d),l=5),f)for(var h=0;h>>0&127|0;else if(o<2048)e[t++]=o>>>6&31|192,e[t++]=o>>>0&63|128;else if(o<65536)e[t++]=o>>>12&15|224,e[t++]=o>>>6&63|128,e[t++]=o>>>0&63|128;else{if(!(o<1114112))throw new Error("bad codepoint "+o);e[t++]=o>>>18&7|240,e[t++]=o>>>12&63|128,e[t++]=o>>>6&63|128,e[t++]=o>>>0&63|128}}};var t=function(){for(var e=[],t=0;t<1024;t++)e[t]=String.fromCharCode(t);return e}();function n(e){throw new Error(e)}e.utf8Read=function(e,r,i){for(var o=t,a=void 0,s=[],c=0,u=r,d=r+i;u0&&(a[a.length]=s.slice(0,c).join("")),a.join("")):s.slice(0,c).join("")},e.utf8ByteCount=function(e){for(var t=0,r=0,i=e.length;r=0;r--)t=n.decodeStep(t,e.encoding[r]);return t}var n;e.decode=t,function(e){function r(e,t){switch(e){case 1:return new Int8Array(t);case 2:return new Int16Array(t);case 3:return new Int32Array(t);case 4:return new Uint8Array(t);case 5:return new Uint16Array(t);case 6:return new Uint32Array(t);default:throw new Error("Unsupported integer data type.")}}function i(e,t){switch(e){case 32:return new Float32Array(t);case 33:return new Float64Array(t);default:throw new Error("Unsupported floating data type.")}}(n||(n={})).decodeStep=function(e,n){switch(n.kind){case"ByteArray":switch(n.type){case 4:return e;case 1:return s=e,new Int8Array(s.buffer,s.byteOffset);case 2:return u(e,2,Int16Array);case 5:return u(e,2,Uint16Array);case 3:return u(e,4,Int32Array);case 6:return u(e,4,Uint32Array);case 32:return u(e,4,Float32Array);case 33:return u(e,8,Float64Array);default:throw new Error("Unsupported ByteArray type.")}case"FixedPoint":return function(e,t){for(var n=e.length,r=i(t.srcType,n),o=1/t.factor,a=0;a0?(r+=Math.ceil(a/t),a%t==0&&(r+=1)):(r+=Math.ceil(a/n),a%n==0&&(r+=1))}return r}function l(e){if(!(e instanceof Int32Array))throw new Error("Integer packing can only be applied to Int32 data.");var t,n,r,i,o=(n=function(e){for(var t=0,n=e.length;t=0)for(;u>=n;)o[a]=n,++a,u-=n;else for(;u<=r;)o[a]=r,++a,u-=r;o[a]=u,++a}var d=s(o);return{encodings:[{kind:"IntegerPacking",byteCount:t.bytesPerElement,isUnsigned:!t.isSigned,srcSize:i},d.encodings[0]],data:d.data}}(e,o)}n.byteArray=s,n.fixedPoint=function(e){return function(n){return function(e,n){for(var r=t.Encoding.getDataType(e),i=new Int32Array(e.length),o=0,a=e.length;o=r?i:0|Math.round((f-n)/c)}return{encodings:[{kind:"IntervalQuantization",min:n,max:r,numSteps:i,srcType:a}],data:u}}(o,e,n,r,i)}},n.runLength=c,n.delta=u,n.integerPacking=l,n.stringArray=function(t){var r=Object.create(null),i=[],o=0,a=e.Utils.ChunkedArray.create(function(e){return new Int32Array(e)},1024,1),s=new Int32Array(t.length);e.Utils.ChunkedArray.add(a,0);for(var d=0,f=0,p=t;ft[n])return!1;return!0}(r,o.version.match(/(\d)\.(\d)\.\d/).slice(1)))return e.ParserResult.error("Unsupported format version. Current "+o.version+", required "+r.join(".")+".");var a=new t.File(o);return e.ParserResult.success(a)}catch(t){return e.ParserResult.error(""+t)}}}(e.Binary||(e.Binary={})),function(e){"use strict";function t(t,n,r){var i,o=!1;t.typedArray?i=new t.typedArray(r):(o=!0,i=new Array(r));for(var a=new Uint8Array(r),s=t.presence,c=t.number?t.number:t.string,u=!0,d=0,l=0,f=n;l0});if(r.length){var i=r.reduce(function(e,t){return e+t.count},0);if(i){for(var o=r[0],a={name:o.desc.name,columns:[],rowCount:i},s=r.map(function(e){return{data:e.data,count:e.count}}),c=0,u=o.desc.fields;cn?n:e}function l(e,t){return parseInt(e,t||10)}function f(e){return Math.round(e)}function p(e){var t,n,r,i,o,a,s,c,u=+e[0],d=+e[1],l=+e[2];switch(a=l*(1-d),s=l*(1-(o=6*u-(i=Math.floor(6*u)))*d),c=l*(1-(1-o)*d),i=i||0,s=s||0,c=c||0,i%6){case 0:t=l,n=c,r=a;break;case 1:t=s,n=l,r=a;break;case 2:t=a,n=l,r=c;break;case 3:t=a,n=s,r=l;break;case 4:t=c,n=a,r=l;break;case 5:t=l,n=a,r=s}return[f(255*t),f(255*n),f(255*r)]}function h(e){return v(p(e))}function g(e){var t,n=+e[0],r=+e[1],i=+e[2],o=Math.max(n,r,i),a=Math.min(n,r,i),s=o-a,c=0===o?0:s/o,u=o/255;switch(o){case a:t=0;break;case n:t=r-i+s*(r';var z,D=w[o].children,M=N([0,1,1]),H=D[0],F=D[1],V=H[o],j=F[o],U=0,B=0,G=0,q=0,X=0,W=0,Y=0,Z=0,Q=h(M);function K(e,t){e&&"h"!==e||L("change:h",t),e&&"sv"!==e||L("change:sv",t),L("change",t)}function $(){return w.parentNode}function J(i,o){i||((l||o||f).appendChild(w),v.visible=!0),Y=P(w).w,Z=P(w).h;var a=P(F),s=P(j),c=P(H).h,u=a.w,g=a.h,m=P(V).h,y=s.w,E=s.h;if(i){function A(e){var t=e.target,r=t===n||k(t,n)===n;r?J():v.exit(),L(r?"enter":"exit",[v])}w.style.left=w.style.top="-9999px",!1!==r&&C(r,n,A),v.create=function(){return J(1),L("create",[v]),v},v.destroy=function(){return!1!==r&&x(r,n,A),v.exit(),O(!1),L("destroy",[v]),v}}else ee();function D(e){p(M);var t=p([M[0],1,1]);F.style.backgroundColor="rgb("+t.join(",")+")",O(M),I(e)}function X(e){var t,n,r,i,o,a;G&&(n=d(R(H,t=e).y,0,c),M[0]=(c-n)/c,V.style.top=n-m/2+"px",D(t),Q=h(M),U||(L("drag:h",[Q,v]),L("drag",[Q,v]),K("h",[Q,v]))),q&&(i=R(F,r=e),o=d(i.x,0,u),a=d(i.y,0,g),M[1]=1-(u-o)/u,M[2]=(g-a)/g,j.style.right=u-o-y/2+"px",j.style.top=a-E/2+"px",D(r),Q=h(M),B||(L("drag:sv",[Q,v]),L("drag",[Q,v]),K("sv",[Q,v]))),U=0,B=0}function W(e){var t=e.target,i=G?"h":"sv",o=[h(M),v],a=t===n||k(t,n)===n,s=t===w||k(t,w)===w;a||s?s&&(L("stop:"+i,o),L("stop",o),K(i,o)):$()&&!1!==r&&(v.exit(),L("exit",[v]),K(0,o)),G=0,q=0}function te(e){U=1,G=1,X(e),I(e),L("start:h",[Q,v]),L("start",[Q,v]),K("h",[Q,v])}function ne(e){B=1,q=1,X(e),I(e),L("start:sv",[Q,v]),L("start",[Q,v]),K("sv",[Q,v])}z=function(){M=N(M),D(),V.style.top=c-m/2-c*+M[0]+"px",j.style.right=u-y/2-u*+M[1]+"px",j.style.top=g-E/2-g*+M[2]+"px"},v.exit=function(n){return $()&&($().removeChild(w),v.visible=!1),x(b,H,te),x(b,F,ne),x(_,t,X),x(T,t,W),x(S,e,ee),v},z(),i||(C(b,H,te),C(b,F,ne),C(_,t,X),C(T,t,W),C(S,e,ee))}function ee(){return v.fit()}return J(1),a(function(){var e=[h(M),v];L("create",e),K(0,e)},0),v.fit=function(t){var r=P(e),i=P(g),o=r.w-i.w,a=r.h-g.clientHeight,u=A(e),l=A(n);if(X=l.l+u.l,W=l.t+u.t+P(n).h,c(t))s(t[0])&&(X=t[0]),s(t[1])&&(W=t[1]);else{var f=u.l,p=u.t,h=u.l+r.w-Y-o,m=u.t+r.h-Z-a;X=d(X,f,h)>>0,W=d(W,p,m)>>0}return w.style.left=X+"px",w.style.top=W+"px",L("fit",[v]),v},v.set=function(e){return s(e)?("string"==typeof e&&(e=m.parse(e)),O(e),z(),v):N()},v.get=function(e){return N(e)},v.target=n,v.picker=w,v.visible=!1,v.on=function(e,t,n){return s(e)?s(t)?(s(E[e])||(E[e]={}),s(n)||(n=u(E[e])),E[e][n]=t,v):E[e]:E},v.off=function(e,t){return s(e)?s(t)?(delete E[e][t],v):(E[e]={},v):(E={},v)},v.fire=L,v.hooks=E,v.enter=function(e){return J(0,e)},v}).version="1.3.9",r[i]={},r.each=function(e,t){return a(function(){var t,n=r[i];for(t in n)e(n[t],t,n)},0===t?0:t||1),r},r.parse=b,r._HSV2RGB=p,r._HSV2HEX=h,r._RGB2HSV=g,r._HEX2HSV=m,r._HEX2RGB=function(e){return[+(t=y(e))[0]/255,+t[1]/255,+t[2]/255];var t},r.HSV2RGB=function(e){return p(E(e))},r.HSV2HEX=function(e){return h(E(e))},r.RGB2HSV=function(e){return w(g(e))},r.RGB2HEX=v,r.HEX2HSV=function(e){return w(m(e))},r.HEX2RGB=y}(window,document);var saveAs=function(e){"use strict";if(!(void 0===e||"undefined"!=typeof navigator&&/MSIE [1-9]\./.test(navigator.userAgent))){var t=function(){return e.URL||e.webkitURL||e},n=e.document.createElementNS("http://www.w3.org/1999/xhtml","a"),r="download"in n,i=/constructor/i.test(e.HTMLElement)||e.safari,o=/CriOS\/[\d]+/.test(navigator.userAgent),a=e.setImmediate||e.setTimeout,s=function(e){a(function(){throw e},0)},c=function(e){setTimeout(function(){"string"==typeof e?t().revokeObjectURL(e):e.remove()},4e4)},u=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e},d=function(d,l,f){f||(d=u(d));var p,h=this,g="application/octet-stream"===(d?d.type:void 0),v=function(){!function(e,t,n){for(var r=(t=[].concat(t)).length;r--;){var i=e["on"+t[r]];if("function"==typeof i)try{i.call(e,n||e)}catch(e){s(e)}}}(h,"writestart progress write writeend".split(" "))};if(h.readyState=h.INIT,r)return p||(p=t().createObjectURL(d)),void a(function(){var e,t;n.href=p,n.download=l,e=n,t=new MouseEvent("click"),e.dispatchEvent(t),v(),c(p),h.readyState=h.DONE},0);!function(){if((o||g&&i)&&e.FileReader){var n=new FileReader;return n.onloadend=function(){var t=o?n.result:n.result.replace(/^data:[^;]*;/,"data:attachment/file;");e.open(t,"_blank")||(e.location.href=t),t=void 0,h.readyState=h.DONE,v()},n.readAsDataURL(d),void(h.readyState=h.INIT)}p||(p=t().createObjectURL(d)),g?e.location.href=p:e.open(p,"_blank")||(e.location.href=p);h.readyState=h.DONE,v(),c(p)}()},l=d.prototype;return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t,n){return t=t||e.name||"download",n||(e=u(e)),navigator.msSaveOrOpenBlob(e,t)}:(l.abort=function(){},l.readyState=l.INIT=0,l.WRITING=1,l.DONE=2,l.error=l.onwritestart=l.onprogress=l.onwrite=l.onabort=l.onerror=l.onwriteend=null,function(e,t,n){return new d(e,t||e.name||"download",n)})}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this);!function(e){"use strict";var t=e.HTMLCanvasElement&&e.HTMLCanvasElement.prototype,n=e.Blob&&function(){try{return Boolean(new Blob)}catch(e){return!1}}(),r=n&&e.Uint8Array&&function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(e){return!1}}(),i=e.BlobBuilder||e.WebKitBlobBuilder||e.MozBlobBuilder||e.MSBlobBuilder,o=/^data:((.*?)(;charset=.*?)?)(;base64)?,/,a=(n||i)&&e.atob&&e.ArrayBuffer&&e.Uint8Array&&function(e){var t,a,s,c,u,d,l,f,p;if(!(t=e.match(o)))throw new Error("invalid data URI");for(a=t[2]?t[1]:"text/plain"+(t[3]||";charset=US-ASCII"),s=!!t[4],c=e.slice(t[0].length),u=s?atob(c):decodeURIComponent(c),d=new ArrayBuffer(u.length),l=new Uint8Array(d),f=0;f0||window.navigator.userAgent.match(/Trident.*rv\:11\./))}isMobile(){return this.icn3dui,/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent)}isMac(){return this.icn3dui,/Mac/i.test(window.navigator.userAgent)}isAndroid(){return this.icn3dui,/android/i.test(window.navigator.userAgent.toLowerCase())}isChrome(){return this.icn3dui,navigator.userAgent.includes("Chrome")&&navigator.vendor.includes("Google Inc")}isSessionStorageSupported(){return this.icn3dui,window.sessionStorage}isLocalStorageSupported(){return this.icn3dui,window.localStorage}hexToRgb(e,t){this.icn3dui;let s=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return s?{r:parseInt(s[1],16),g:parseInt(s[2],16),b:parseInt(s[3],16),a:t}:null}isCalphaPhosOnly(e){this.icn3dui;let t=!1,s=0,i=0;for(let t in e){if(!(s<100))break;{let s=e[t].name;if(!s)continue;s=s.trim(),"CA"!==s&&"P"!==s&&"O3'"!==s&&"O3*"!==s&&++i}++s}return i<.5*s&&(t=!0),t}hasCovalentBond(e,t){let s=this.icn3dui,i=s.parasCls.covalentRadii[e.elem.toUpperCase()]+s.parasCls.covalentRadii[t.elem.toUpperCase()],n=e.coord.x-t.coord.x,l=e.coord.y-t.coord.y,r=e.coord.z-t.coord.z;return n*n+l*l+r*r<("N"==e.elem&&"H"==t.elem.substr(0,1)||"N"==t.elem&&"H"==e.elem.substr(0,1)?2.2:1.3)*i*i}residueName2Abbr(e){this.icn3dui;let t=e.indexOf(" ");switch(t>0&&(e=e.substr(0,t)),e){case" A":case" DA":case"DA":case"ALA":return"A";case" C":case" DC":case"DC":case"CYS":return"C";case" G":case" DG":case"DG":case"GLY":return"G";case" T":case" DT":case"DT":case"THR":return"T";case" U":case" DU":case"DU":case"SEC":return"U";case" I":case" DI":case"DI":case"ILE":return"I";case"ARG":return"R";case"ASN":return"N";case"ASP":return"D";case"GLU":return"E";case"GLN":return"Q";case"HIS":return"H";case"LEU":return"L";case"LYS":return"K";case"MET":return"M";case"PHE":return"F";case"PRO":return"P";case"SER":return"S";case"TRP":return"W";case"TYR":return"Y";case"VAL":return"V";case"HOH":case"WAT":return"O";default:return e.trim()}}residueAbbr2Name(e){if(this.icn3dui,(e=e.toUpperCase()).length>1)return e;switch(e){case"A":return"ALA";case"R":return"ARG";case"N":return"ASN";case"D":return"ASP";case"C":return"CYS";case"E":return"GLU";case"Q":return"GLN";case"G":return"GLY";case"H":return"HIS";case"I":return"ILE";case"L":return"LEU";case"K":return"LYS";case"M":return"MET";case"F":return"PHE";case"P":return"PRO";case"S":return"SER";case"T":return"THR";case"W":return"TRP";case"Y":return"TYR";case"V":return"VAL";case"O":return"HOH";default:return e.trim()}}getJSONFromArray(e){this.icn3dui;let t="";for(let s=0,i=e.length;sd?1:ah?1:cs&&(e.htmlCls.WIDTH=s),i&&e.htmlCls.HEIGHT>i&&(e.htmlCls.HEIGHT=i)}sumArray(e){let t=0;for(let s=0,i=e.length;sRed and blue membranes indicate extracellular and intracellular membranes, respectively.

    "}getStructures(e){let t=this.icn3dui,s={};for(let i in e){s[t.icn3d.atoms[i].structure]=1}return s}getHlStructures(e){let t=this.icn3dui;return e||(e=t.icn3d.hAtoms),this.getStructures(e)}getDisplayedStructures(e){let t=this.icn3dui;return e||(e=t.icn3d.dAtoms),this.getStructures(e)}getDateDigitStr(){this.icn3dui;let e=new Date,t=(e.getMonth()+1).toString();e.getMonth()+1<10&&(t="0"+t);let s=e.getDate().toString();return e.getDate()<10&&(s="0"+s),e.getFullYear().toString()+t+s}}class i{constructor(e){this.icn3dui=e,this.glycanHash={GLC:{c:"1E90FF",s:"sphere"},BGC:{c:"1E90FF",s:"sphere"},NAG:{c:"1E90FF",s:"cube"},NDG:{c:"1E90FF",s:"cube"},GCS:{c:"1E90FF",s:"cube"},PA1:{c:"1E90FF",s:"cube"},GCU:{c:"1E90FF",s:"cone"},BDP:{c:"1E90FF",s:"cone"},G6D:{c:"1E90FF",s:"cone"},DDA:{c:"1E90FF",s:"cylinder"},B6D:{c:"1E90FF",s:"cylinder"},XXM:{c:"1E90FF",s:"cylinder"},MAN:{c:"00FF00",s:"sphere"},BMA:{c:"00FF00",s:"sphere"},BM3:{c:"00FF00",s:"cube"},"95Z":{c:"00FF00",s:"cube"},MAV:{c:"00FF00",s:"cone"},BEM:{c:"00FF00",s:"cone"},RAM:{c:"00FF00",s:"cone"},RM4:{c:"00FF00",s:"cone"},TYV:{c:"00FF00",s:"cylinder"},ARA:{c:"00FF00",s:"cylinder"},ARB:{c:"00FF00",s:"cylinder"},KDN:{c:"00FF00",s:"cylinder"},KDM:{c:"00FF00",s:"cylinder"},"6PZ":{c:"00FF00",s:"cylinder"},GMH:{c:"00FF00",s:"cylinder"},BDF:{c:"00FF00",s:"cylinder"},GAL:{c:"FFFF00",s:"sphere"},GLA:{c:"FFFF00",s:"sphere"},NGA:{c:"FFFF00",s:"cube"},A2G:{c:"FFFF00",s:"cube"},X6X:{c:"FFFF00",s:"cube"},"1GN":{c:"FFFF00",s:"cube"},ADA:{c:"FFFF00",s:"cone"},GTR:{c:"FFFF00",s:"cone"},LDY:{c:"FFFF00",s:"cylinder"},KDO:{c:"FFFF00",s:"cylinder"},T6T:{c:"FFFF00",s:"cylinder"},GUP:{c:"A52A2A",s:"sphere"},GL0:{c:"A52A2A",s:"sphere"},LGU:{c:"A52A2A",s:"cone"},ABE:{c:"A52A2A",s:"cylinder"},XYS:{c:"A52A2A",s:"cylinder"},XYP:{c:"A52A2A",s:"cylinder"},SOE:{c:"A52A2A",s:"cylinder"},PZU:{c:"FF69B4",s:"cylinder"},RIP:{c:"FF69B4",s:"cylinder"},"0MK":{c:"FF69B4",s:"cylinder"},ALL:{c:"8A2BE2",s:"sphere"},AFD:{c:"8A2BE2",s:"sphere"},NAA:{c:"8A2BE2",s:"cube"},SIA:{c:"8A2BE2",s:"cylinder"},SIB:{c:"8A2BE2",s:"cylinder"},AMU:{c:"8A2BE2",s:"cylinder"},X0X:{c:"1E90FF",s:"cone"},X1X:{c:"1E90FF",s:"cone"},NGC:{c:"1E90FF",s:"cylinder"},NGE:{c:"1E90FF",s:"cylinder"},"4N2":{c:"A0522D",s:"sphere"},HSQ:{c:"A0522D",s:"cube"},IDR:{c:"A0522D",s:"cone"},MUR:{c:"A0522D",s:"cylinder"},FUC:{c:"FF0000",s:"cone"},FUL:{c:"FF0000",s:"cone"}},this.nucleotidesArray=[" G"," A"," T"," C"," U"," DG"," DA"," DT"," DC"," DU","G","A","T","C","U","DG","DA","DT","DC","DU"],this.ionsArray=[" K"," NA"," MG"," AL"," CA"," TI"," MN"," FE"," NI"," CU"," ZN"," AG"," BA"," F"," CL"," BR"," I","K","NA","MG","AL","CA","TI","MN","FE","NI","CU","ZN","AG","BA","F","CL","BR","I"],this.cationsTrimArray=["K","NA","MG","AL","CA","TI","MN","FE","NI","CU","ZN","AG","BA"],this.anionsTrimArray=["F","CL","BR","I"],this.ionCharges={K:1,NA:1,MG:2,AL:3,CA:2,TI:3,MN:2,FE:3,NI:2,CU:2,ZN:2,AG:1,BA:2},this.vdwRadii={H:1.08,HE:1.34,LI:1.75,BE:2.05,B:1.47,C:1.49,N:1.41,O:1.4,F:1.39,NE:1.68,NA:1.84,MG:2.05,AL:2.11,SI:2.07,P:1.92,S:1.82,CL:1.83,AR:1.93,K:2.05,CA:2.21,SC:2.16,TI:1.87,V:1.79,CR:1.89,MN:1.97,FE:1.94,CO:1.92,NI:1.84,CU:1.86,ZN:2.1,GA:2.08,GE:2.15,AS:2.06,SE:1.93,BR:1.98,KR:2.12,RB:2.16,SR:2.24,Y:2.19,ZR:1.86,NB:2.07,MO:2.09,TC:2.09,RU:2.07,RH:1.95,PD:2.02,AG:2.03,CD:2.3,IN:2.36,SN:2.33,SB:2.25,TE:2.23,I:2.23,XE:2.21,CS:2.22,BA:2.51,LA:2.4,CE:2.35,PR:2.39,ND:2.29,PM:2.36,SM:2.29,EU:2.33,GD:2.37,TB:2.21,DY:2.29,HO:2.16,ER:2.35,TM:2.27,YB:2.42,LU:2.21,HF:2.12,TA:2.17,W:2.1,RE:2.17,OS:2.16,IR:2.02,PT:2.09,AU:2.17,HG:2.09,TL:2.35,PB:2.32,BI:2.43,PO:2.29,AT:2.36,RN:2.43,FR:2.56,RA:2.43,AC:2.6,TH:2.37,PA:2.43,U:2.4,NP:2.21,PU:2.56,AM:2.56,CM:2.56,BK:2.56,CF:2.56,ES:2.56,FM:2.56},this.covalentRadii={H:.31,HE:.28,LI:1.28,BE:.96,B:.84,C:.76,N:.71,O:.66,F:.57,NE:.58,NA:1.66,MG:1.41,AL:1.21,SI:1.11,P:1.07,S:1.05,CL:1.02,AR:1.06,K:2.03,CA:1.76,SC:1.7,TI:1.6,V:1.53,CR:1.39,MN:1.39,FE:1.32,CO:1.26,NI:1.24,CU:1.32,ZN:1.22,GA:1.22,GE:1.2,AS:1.19,SE:1.2,BR:1.2,KR:1.16,RB:2.2,SR:1.95,Y:1.9,ZR:1.75,NB:1.64,MO:1.54,TC:1.47,RU:1.46,RH:1.42,PD:1.39,AG:1.45,CD:1.44,IN:1.42,SN:1.39,SB:1.39,TE:1.38,I:1.39,XE:1.4,CS:2.44,BA:2.15,LA:2.07,CE:2.04,PR:2.03,ND:2.01,PM:1.99,SM:1.98,EU:1.98,GD:1.96,TB:1.94,DY:1.92,HO:1.92,ER:1.89,TM:1.9,YB:1.87,LU:1.87,HF:1.75,TA:1.7,W:1.62,RE:1.51,OS:1.44,IR:1.41,PT:1.36,AU:1.36,HG:1.32,TL:1.45,PB:1.46,BI:1.48,PO:1.4,AT:1.5,RN:1.5,FR:2.6,RA:2.21,AC:2.15,TH:2.06,PA:2,U:1.96,NP:1.9,PU:1.87,AM:1.8,CM:1.69},this.atomColors={H:this.thr(16777215),He:this.thr(16761035),HE:this.thr(16761035),Li:this.thr(11674146),LI:this.thr(11674146),B:this.thr(65280),C:this.thr(11184810),N:this.thr(255),O:this.thr(15728640),F:this.thr(14329120),Na:this.thr(255),NA:this.thr(255),Mg:this.thr(2263842),MG:this.thr(2263842),Al:this.thr(8421520),AL:this.thr(8421520),Si:this.thr(14329120),SI:this.thr(14329120),P:this.thr(16753920),S:this.thr(16762930),Cl:this.thr(65280),CL:this.thr(65280),Ca:this.thr(8421520),CA:this.thr(8421520),Ti:this.thr(8421520),TI:this.thr(8421520),Cr:this.thr(8421520),CR:this.thr(8421520),Mn:this.thr(8421520),MN:this.thr(8421520),Fe:this.thr(16753920),FE:this.thr(16753920),Ni:this.thr(10824234),NI:this.thr(10824234),Cu:this.thr(10824234),CU:this.thr(10824234),Zn:this.thr(10824234),ZN:this.thr(10824234),Br:this.thr(10824234),BR:this.thr(10824234),Ag:this.thr(8421520),AG:this.thr(8421520),I:this.thr(10494192),Ba:this.thr(16753920),BA:this.thr(16753920),Au:this.thr(14329120),AU:this.thr(14329120)},this.atomnames={H:"Hydrogen",HE:"Helium",LI:"Lithium",B:"Boron",C:"Carbon",N:"Nitrogen",O:"Oxygen",F:"Fluorine",NA:"Sodium",MG:"Magnesium",AL:"Aluminum",SI:"Silicon",P:"Phosphorus",S:"Sulfur",CL:"Chlorine",CA:"Calcium",TI:"Titanium",CR:"Chromium",MN:"Manganese",FE:"Iron",NI:"Nickel",CU:"Copper",ZN:"Zinc",BR:"Bromine",AG:"Silver",I:"Iodine",BA:"Barium",AU:"Gold"},this.defaultAtomColor=this.thr(13421772),this.stdChainColors=[this.thr(16711935),this.thr(255),this.thr(10053171),this.thr(65433),this.thr(16750848),this.thr(16737894),this.thr(3329330),this.thr(2003199),this.thr(16416882),this.thr(16753920),this.thr(52945),this.thr(16738740),this.thr(65280),this.thr(255),this.thr(16711680),this.thr(16776960),this.thr(65535),this.thr(16711935),this.thr(3978097),this.thr(4620980),this.thr(13458524),this.thr(16770229),this.thr(11529966),this.thr(15631086),this.thr(25600),this.thr(139),this.thr(9109504),this.thr(13468991),this.thr(35723),this.thr(9699539)],this.backgroundColors={black:this.thr(0),grey:this.thr(13421772),white:this.thr(16777215),transparent:this.thr(16777215)},this.residueColors={ALA:this.thr(13158600),ARG:this.thr(1334015),ASN:this.thr(56540),ASP:this.thr(15075850),CYS:this.thr(15132160),GLN:this.thr(56540),GLU:this.thr(15075850),GLY:this.thr(15461355),HIS:this.thr(8553170),ILE:this.thr(1016335),LEU:this.thr(1016335),LYS:this.thr(1334015),MET:this.thr(15132160),PHE:this.thr(3289770),PRO:this.thr(14456450),SER:this.thr(16422400),THR:this.thr(16422400),TRP:this.thr(11819700),TYR:this.thr(3289770),VAL:this.thr(1016335),ASX:this.thr(16738740),GLX:this.thr(16738740),G:this.thr(32768),A:this.thr(6324479),T:this.thr(16744448),C:this.thr(16711680),U:this.thr(16744448),DG:this.thr(32768),DA:this.thr(6324479),DT:this.thr(16744448),DC:this.thr(16711680),DU:this.thr(16744448)},this.residueArea={ALA:247,ARG:366,ASN:290,ASP:285,CYS:271,GLN:336,GLU:325,GLY:217,HIS:340,ILE:324,LEU:328,LYS:373,MET:346,PHE:366,PRO:285,SER:265,THR:288,TRP:414,TYR:387,VAL:293,ASX:290,GLX:336,G:520,A:507,T:515,C:467,U:482,DG:520,DA:507,DT:515,DC:467,DU:482},this.defaultResidueColor=this.thr(12492910),this.chargeColors={" G":this.thr(16711680)," A":this.thr(16711680)," T":this.thr(16711680)," C":this.thr(16711680)," U":this.thr(16711680)," DG":this.thr(16711680)," DA":this.thr(16711680)," DT":this.thr(16711680)," DC":this.thr(16711680)," DU":this.thr(16711680),G:this.thr(16711680),A:this.thr(16711680),T:this.thr(16711680),C:this.thr(16711680),U:this.thr(16711680),DG:this.thr(16711680),DA:this.thr(16711680),DT:this.thr(16711680),DC:this.thr(16711680),DU:this.thr(16711680),ARG:this.thr(255),LYS:this.thr(255),ASP:this.thr(16711680),GLU:this.thr(16711680),HIS:this.thr(8421631),GLY:this.thr(8947848),PRO:this.thr(8947848),ALA:this.thr(8947848),VAL:this.thr(8947848),LEU:this.thr(8947848),ILE:this.thr(8947848),PHE:this.thr(8947848),SER:this.thr(8947848),THR:this.thr(8947848),ASN:this.thr(8947848),GLN:this.thr(8947848),TYR:this.thr(8947848),MET:this.thr(8947848),CYS:this.thr(8947848),TRP:this.thr(8947848)},this.hydrophobicColors={" G":this.thr(16711680)," A":this.thr(16711680)," T":this.thr(16711680)," C":this.thr(16711680)," U":this.thr(16711680)," DG":this.thr(16711680)," DA":this.thr(16711680)," DT":this.thr(16711680)," DC":this.thr(16711680)," DU":this.thr(16711680),G:this.thr(16711680),A:this.thr(16711680),T:this.thr(16711680),C:this.thr(16711680),U:this.thr(16711680),DG:this.thr(16711680),DA:this.thr(16711680),DT:this.thr(16711680),DC:this.thr(16711680),DU:this.thr(16711680),ARG:this.thr(255),LYS:this.thr(255),ASP:this.thr(16711680),GLU:this.thr(16711680),HIS:this.thr(8421631),TRP:this.thr().setHSL(1/3,1,.5),PHE:this.thr().setHSL(1/3,1,.5909090909090908),LEU:this.thr().setHSL(1/3,1,.700956937799043),ILE:this.thr().setHSL(1/3,1,.7320574162679425),TYR:this.thr().setHSL(1/3,1,.5+.69/2.09),MET:this.thr().setHSL(1/3,1,.5+.71/2.09),VAL:this.thr().setHSL(1/3,1,.5+.815/2.09),CYS:this.thr().setHSL(1/3,1,.5+1.035/2.09),PRO:this.thr().setHSL(1/6,1,.9391304347826086),THR:this.thr().setHSL(1/6,1,.8913043478260869),SER:this.thr().setHSL(1/6,1,.8),ALA:this.thr().setHSL(1/6,1,.7826086956521738),GLN:this.thr().setHSL(1/6,1,.6652173913043478),ASN:this.thr().setHSL(1/6,1,.6304347826086956),GLY:this.thr().setHSL(1/6,1,.5)},this.normalizedHPColors={" G":this.thr(16777215)," A":this.thr(16777215)," T":this.thr(16777215)," C":this.thr(16777215)," U":this.thr(16777215)," DG":this.thr(16777215)," DA":this.thr(16777215)," DT":this.thr(16777215)," DC":this.thr(16777215)," DU":this.thr(16777215),G:this.thr(16777215),A:this.thr(16777215),T:this.thr(16777215),C:this.thr(16777215),U:this.thr(16777215),DG:this.thr(16777215),DA:this.thr(16777215),DT:this.thr(16777215),DC:this.thr(16777215),DU:this.thr(16777215),ARG:this.thr(16777215),LYS:this.thr(16777215),ASP:this.thr(16777215),GLU:this.thr(16777215),HIS:this.thr(16777215),TRP:this.thr().setHSL(1/3,1,.5),PHE:this.thr().setHSL(1/3,1,.558641975308642),LEU:this.thr().setHSL(1/3,1,.6296296296296295),ILE:this.thr().setHSL(1/3,1,.6496913580246912),TYR:this.thr().setHSL(1/3,1,.5+.69/3.24),MET:this.thr().setHSL(1/3,1,.5+.71/3.24),VAL:this.thr().setHSL(1/3,1,.5+.815/3.24),CYS:this.thr().setHSL(1/3,1,.5+1.035/3.24),PRO:this.thr().setHSL(1/3,1,.5+1.115/3.24),THR:this.thr().setHSL(1/3,1,.5+1.17/3.24),SER:this.thr().setHSL(1/3,1,.5+1.275/3.24),ALA:this.thr().setHSL(1/3,1,.5+1.295/3.24),GLN:this.thr().setHSL(1/3,1,.5+1.43/3.24),ASN:this.thr().setHSL(1/3,1,.5+1.47/3.24),GLY:this.thr().setHSL(1/3,1,1)},this.hydrophobicValues={" G":3," A":3," T":3," C":3," U":3," DG":3," DA":3," DT":3," DC":3," DU":3,G:3,A:3,T:3,C:3,U:3,DG:3,DA:3,DT:3,DC:3,DU:3,ARG:1.5,LYS:1.5,ASP:3,GLU:3,HIS:2,TRP:-2.09,PHE:-1.71,LEU:-1.25,ILE:-1.12,TYR:-.71,MET:-.67,VAL:-.46,CYS:-.02,PRO:.14,THR:.25,SER:.46,ALA:.5,GLN:.77,ASN:.85,GLY:1.15},this.residueAbbrev={ALA:"A (Ala)",ARG:"R (Arg)",ASN:"N (Asn)",ASP:"D (Asp)",CYS:"C (Cys)",GLN:"Q (Gln)",GLU:"E (Glu)",GLY:"G (Gly)",HIS:"H (His)",ILE:"I (Ile)",LEU:"L (Leu)",LYS:"K (Lys)",MET:"M (Met)",PHE:"F (Phe)",PRO:"P (Pro)",SER:"S (Ser)",THR:"T (Thr)",TRP:"W (Trp)",TYR:"Y (Tyr)",VAL:"V (Val)",ASX:"X (Asx)",GLX:"X (Glx)",G:"Guanine",A:"Adenine",T:"Thymine",C:"Cytosine",U:"Uracil",DG:"deoxy-Guanine",DA:"deoxy-Adenine",DT:"deoxy-Thymine",DC:"deoxy-Cytosine",DU:"deoxy-Uracil"},this.ssColors={helix:this.thr(16711680),sheet:this.thr(32768),coil:this.thr(6324479)},this.ssColors2={helix:this.thr(16711680),sheet:this.thr(16762880),coil:this.thr(6324479)},this.resn2restype={ALA:1,ARG:4,ASN:7,ASP:10,CYS:13,GLN:16,GLU:19,GLY:22,HIS:25,ILE:28,LEU:31,LYS:34,MET:37,PHE:40,PRO:43,SER:46,THR:49,TRP:52,TYR:55,VAL:58},this.nuclMainArray=["C1'","C1*","C2'","C2*","C3'","C3*","C4'","C4*","C5'","C5*","O3'","O3*","O4'","O4*","O5'","O5*","P","OP1","O1P","OP2","O2P"],this.b62ResArray=["A","R","N","D","C","Q","E","G","H","I","L","K","M","F","P","S","T","W","Y","V","B","Z","X","*"],this.b62Matrix=[[4,-1,-2,-2,0,-1,-1,0,-2,-1,-1,-1,-1,-2,-1,1,0,-3,-2,0,-2,-1,0,-4],[-1,5,0,-2,-3,1,0,-2,0,-3,-2,2,-1,-3,-2,-1,-1,-3,-2,-3,-1,0,-1,-4],[-2,0,6,1,-3,0,0,0,1,-3,-3,0,-2,-3,-2,1,0,-4,-2,-3,3,0,-1,-4],[-2,-2,1,6,-3,0,2,-1,-1,-3,-4,-1,-3,-3,-1,0,-1,-4,-3,-3,4,1,-1,-4],[0,-3,-3,-3,9,-3,-4,-3,-3,-1,-1,-3,-1,-2,-3,-1,-1,-2,-2,-1,-3,-3,-2,-4],[-1,1,0,0,-3,5,2,-2,0,-3,-2,1,0,-3,-1,0,-1,-2,-1,-2,0,3,-1,-4],[-1,0,0,2,-4,2,5,-2,0,-3,-3,1,-2,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-2,0,-1,-3,-2,-2,6,-2,-4,-4,-2,-3,-3,-2,0,-2,-2,-3,-3,-1,-2,-1,-4],[-2,0,1,-1,-3,0,0,-2,8,-3,-3,-1,-2,-1,-2,-1,-2,-2,2,-3,0,0,-1,-4],[-1,-3,-3,-3,-1,-3,-3,-4,-3,4,2,-3,1,0,-3,-2,-1,-3,-1,3,-3,-3,-1,-4],[-1,-2,-3,-4,-1,-2,-3,-4,-3,2,4,-2,2,0,-3,-2,-1,-2,-1,1,-4,-3,-1,-4],[-1,2,0,-1,-3,1,1,-2,-1,-3,-2,5,-1,-3,-1,0,-1,-3,-2,-2,0,1,-1,-4],[-1,-1,-2,-3,-1,0,-2,-3,-2,1,2,-1,5,0,-2,-1,-1,-1,-1,1,-3,-1,-1,-4],[-2,-3,-3,-3,-2,-3,-3,-3,-1,0,0,-3,0,6,-4,-2,-2,1,3,-1,-3,-3,-1,-4],[-1,-2,-2,-1,-3,-1,-1,-2,-2,-3,-3,-1,-2,-4,7,-1,-1,-4,-3,-2,-2,-1,-2,-4],[1,-1,1,0,-1,0,0,0,-1,-2,-2,0,-1,-2,-1,4,1,-3,-2,-2,0,0,0,-4],[0,-1,0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1,1,5,-2,-2,0,-1,-1,0,-4],[-3,-3,-4,-4,-2,-2,-3,-2,-2,-3,-2,-3,-1,1,-4,-3,-2,11,2,-3,-4,-3,-2,-4],[-2,-2,-2,-3,-2,-1,-2,-3,2,-1,-1,-2,-1,3,-3,-2,-2,2,7,-1,-3,-2,-1,-4],[0,-3,-3,-3,-1,-2,-2,-3,-3,3,1,-2,1,-1,-2,-2,0,-3,-1,4,-3,-2,-1,-4],[-2,-1,3,4,-3,0,1,-1,0,-3,-4,0,-3,-3,-2,0,-1,-4,-3,-3,4,1,-1,-4],[-1,0,0,1,-3,3,4,-2,0,-3,-3,1,-1,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,0,0,-2,-1,-1,-1,-1,-1,-4],[-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1]]}thr(e){return this.icn3dui,"#0"==e&&(e="#000"),new THREE.Color(e)}}class n{constructor(e){this.icn3dui=e}onId(e,t,s){if(this.icn3dui,!(Object.keys(window).length<2)&&("#"==e.substr(0,1)&&(e=e.substr(1)),document.getElementById(e))){t.split(" ").forEach((t=>{document.getElementById(e).addEventListener(t,s)}))}}onIds(e,t,s){let i=this.icn3dui;Array.isArray(e)?e.forEach((e=>{i.myEventCls.onId(e,t,s)})):i.myEventCls.onId(e,t,s)}}class l{constructor(e){this.icn3dui=e}getRmsdSuprCls(e,t,s){let i,n,l,r,o,a,d,c,h,p,m,u,g,f=this.icn3dui,C=new Array(9),b=new THREE.Vector3,y=new THREE.Vector3,v=[],_=[],w=new Array(3),S=new Array(3),A=new Array(3),x=new Array(3),k=new Array(3),O=new Array(3);if(i=0,s<=1)return{rot:void 0,trans1:void 0,trans2:void 0,rmsd:999};let R=s;for(n=0;n0?(C[0]=x[0]*w[0]+k[0]*S[0]+O[0]*A[0],C[1]=x[0]*w[1]+k[0]*S[1]+O[0]*A[1],C[2]=x[0]*w[2]+k[0]*S[2]+O[0]*A[2],C[3]=x[1]*w[0]+k[1]*S[0]+O[1]*A[0],C[4]=x[1]*w[1]+k[1]*S[1]+O[1]*A[1],C[5]=x[1]*w[2]+k[1]*S[2]+O[1]*A[2],C[6]=x[2]*w[0]+k[2]*S[0]+O[2]*A[0],C[7]=x[2]*w[1]+k[2]*S[1]+O[2]*A[1],C[8]=x[2]*w[2]+k[2]*S[2]+O[2]*A[2]):(C[0]=x[0]*w[0]+k[0]*S[0]-O[0]*A[0],C[1]=x[0]*w[1]+k[0]*S[1]-O[0]*A[1],C[2]=x[0]*w[2]+k[0]*S[2]-O[0]*A[2],C[3]=x[1]*w[0]+k[1]*S[0]-O[1]*A[0],C[4]=x[1]*w[1]+k[1]*S[1]-O[1]*A[1],C[5]=x[1]*w[2]+k[1]*S[2]-O[1]*A[2],C[6]=x[2]*w[0]+k[2]*S[0]-O[2]*A[0],C[7]=x[2]*w[1]+k[2]*S[1]-O[2]*A[1],C[8]=x[2]*w[2]+k[2]*S[2]-O[2]*A[2]),c=Math.sqrt(c),h=Math.sqrt(h),p=Math.sqrt(p),g=c+h+u*p,m=a+d-2*g,i=m>0?Math.sqrt(m):void 0,{rot:C,trans1:I,trans2:E,rmsd:i})}eigen_values(e){let t,s,i,n,l,r,o,a,d,c,h,p,m,u,g,f,C,b,y,v;if(this.icn3dui,t=e[0],s=e[1],i=e[2],n=e[3],l=e[4],r=e[5],o=e[6],a=e[7],d=e[8],c=-(t+l+d),h=t*l+(t+l)*d-r*a-s*n-i*o,p=-t*l*d+t*r*a+s*n*d-s*r*o-i*n*a+i*l*o,m=-c*c/3+h,u=c*c*c/13.5-c*h/3+p,g=.25*u*u+m*m*m/27,g<0){let e,t;e=Math.sqrt(.25*u*u-g),t=Math.acos(-.5*u/e),b=2*Math.cbrt(e)*Math.cos(t/3)}else f=Math.cbrt(-.5*u+Math.sqrt(g)),C=Math.cbrt(-.5*u-Math.sqrt(g)),b=f+C;return b-=c/3,c+=b,p/=-b,y=.5*(-c+Math.sqrt(c*c-4*p)),v=.5*(-c-Math.sqrt(c*c-4*p)),yw&&(w=Math.abs(d)),Math.abs(c)>w&&(w=Math.abs(c)),Math.abs(h)>w&&(w=Math.abs(h)),Math.abs(p)>w&&(w=Math.abs(p)),Math.abs(m)>w&&(w=Math.abs(m)),Math.abs(u)>w&&(w=Math.abs(u)),Math.abs(g)>w&&(w=Math.abs(g)),Math.abs(f)>w&&(w=Math.abs(f)),w<1e-10)return r=3,{k:r,v1:t,v2:s,v3:i};if(o=0,a/=w,d/=w,c/=w,h/=w,p/=w,m/=w,u/=w,g/=w,f/=w,Math.abs(a)w&&(_=a,a=h,h=_,_=d,d=p,p=_,_=c,c=m,m=_,w=Math.abs(d)),Math.abs(g)>w&&(_=a,a=u,u=_,_=d,d=g,g=_,_=c,c=f,f=_),y=m-p*c/d,v=f-g*c/d,Math.abs(y)w&&(_=a,a=h,h=_,_=d,d=p,p=_,_=c,c=m,m=_,w=Math.abs(a)),Math.abs(c)>w&&(_=a,a=u,u=_,_=d,d=g,g=_,_=c,c=f,f=_),C=p-h*d/a,b=m-h*c/a,y=g-u*d/a,v=f-u*c/a,Math.abs(C)0&&(1==o?(a=s[0],d=s[1],c=s[2],_=Math.sqrt(a*a+d*d+c*c),s[0]=a/_,s[1]=d/_,s[2]=c/_):2==o?(a=t[0],d=t[1],c=t[2],h=s[0],p=s[1],m=s[2],_=a*h+d*p+c*m,Math.abs(_)>=n&&(s[0]=a+_*h,s[1]=d+_*p,s[2]=c+_*m,h=s[0],p=s[1],m=s[2]),_=Math.sqrt(a*a+d*d+c*c),t[0]=a/_,t[1]=d/_,t[2]=c/_,_=Math.sqrt(h*h+p*p+m*m),s[0]=h/_,s[1]=p/_,s[2]=m/_):(a=t[0],d=t[1],c=t[2],_=Math.sqrt(a*a+d*d+c*c),t[0]=a/_,t[1]=d/_,t[2]=c/_)),{k:r,v1:t,v2:s,v3:i}}getEigenForSelection(e,t){let s,i=this.icn3dui,n=new THREE.Vector3,l=[];for(s=0;s0&&Math.abs(l[0].x-e[0].x)<=6&&Math.abs(l[0].y-e[0].y)<=6&&Math.abs(l[0].z-e[0].z)<=6?(p.push(l[0]),m=1):m=0,p.push(e[0]);for(let t=1,s=e.length-1;t0&&Math.abs(r[0].x-e[e.length-1].x)<=6&&Math.abs(r[0].y-e[e.length-1].y)<=6&&Math.abs(r[0].z-e[e.length-1].z)<=6&&(p.push(r[0]),++g),u>1&&Math.abs(r[0].x-r[1].x)<=6&&Math.abs(r[0].y-r[1].y)<=6&&Math.abs(r[0].z-r[1].z)<=6&&(p.push(r[1]),++g);let f=[],C=[],b=[];o&&(g=u>0?u-1:0);let y;for(let e=-1,n=p.length,l=1/s;e<=n-3;++e){y=e-m;let r=p[-1===e?0:e],o=p[e+1],u=p[e+2],v=p[e===n-3?n-1:e+3],_=0,w=a.subdivideCls.getKnot(1,_,r,o),S=a.subdivideCls.getKnot(1,w,o,u),A=a.subdivideCls.getKnot(1,S,u,v);w-_<1e-4&&(w=_+1),S-w<1e-4&&(S=w+1),A-S<1e-4&&(A=S+1),e>-1&&(void 0===i||i[y+1])&&e>=-1+m&&e<=n-3-g+1&&(d=d.concat(f),c=c.concat(C),h=h.concat(b)),f=[],C=[],b=[];let x=(S-w)*l;for(let l=0;l=-1+m&&e<=n-3-g&&i[y+1]&&l<=parseInt(s/2)&&(d.push(new THREE.Vector3(k,O,R)),c.push(i[y+1]),h.push(t[y+1])),e>=-1+m&&e<=n-3-g+1&&i[y+2]&&l>parseInt(s/2)&&(f.push(new THREE.Vector3(k,O,R)),C.push(i[y+2]),b.push(t[y+2]))):e>=-1+m&&e<=n-3-g&&(d.push(new THREE.Vector3(k,O,R)),c.push(y+1),h.push(t[y+1]))}}i&&!i[y+1]||(d=d.concat(f),c=c.concat(C),h=h.concat(b),d.push(p[p.length-1-g]),c.push(p.length-1-g),h.push(t[p.length-1-g])),f=[],C=[],b=[],p=[];let v=[];return v.push(d),v.push(c),v.push(h),v}getKnot(e,t,s,i){return this.icn3dui,s.distanceTo(i)+t}getValueFromKnot(e,t,s,i,n,l,r,o,a){this.icn3dui;let d,c,h=(r-l)/(s-t),p=(o-r)/(i-s),m=(a-o)/(n-i),u=(s+i)*(s+i)-4*(t*s+i*n-t*n);return 0==u?(d=9999,c=9999):(d=6*(3*p*s+2*h*n+m*s-2*h*s-2*p*n-p*i-m*s)/u,c=6*(3*p*i+2*m*t+h*s-2*p*t-2*m*i-h*i-p*s)/u),p*(e-s)+r+((2*d+c)/6/(s-i)*(e-s)*(e-i)*(e-i)+(2*c+d)/6/(i-s)*(e-s)*(e-s)*(e-i))}}class o{constructor(e){this.icn3dui=e}passFloat32(e,t){let s=this.icn3dui,i=e.length;t||(t=new Uint8Array(4*i));let n=s.convertTypeCls.getDataView(t);for(let t=0;t  Very high (pLDDT > 90)
      Confident (90 > pLDDT > 70)
      Low (70 > pLDDT > 50)
      Very low (pLDDT < 50)
    '}setLegendHtml(e){let t=this.icn3dui.icn3d,s="
    ";if(e)s+=this.setAlphaFoldLegend();else{s+="
    "+t.startValue+""+t.midValue+""+t.endValue+"
    "}return s}SetChainsAdvancedMenu(){let e=this.icn3dui,t=e.icn3d;if(void 0===t.bSetChainsAdvancedMenu||!t.bSetChainsAdvancedMenu){let s=e.hashUtilsCls.cloneHash(t.hAtoms);t.definedSetsCls.setPredefinedInMenu(),t.bSetChainsAdvancedMenu=!0,t.hAtoms=e.hashUtilsCls.cloneHash(s)}}setSetsMenus(e,t){let s=this.icn3dui,i=s.icn3d;this.SetChainsAdvancedMenu();let n=e,l=e+"2",r=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+s.pre+n).length&&$("#"+s.pre+n).html(" "+r),!t&&$("#"+s.pre+l).length&&$("#"+s.pre+l).html(" "+r),$("#"+s.pre+n).resizable(),t||$("#"+s.pre+l).resizable()}applyShownMenus(e){let t=this.icn3dui;t.icn3d;let s=[];for(let e in t.htmlCls.allMenus)t.htmlCls.shownMenus.hasOwnProperty(e)?$("#"+t.pre+e).parent().show():($("#"+t.pre+e).parent().hide(),s.push(e));Object.keys(t.htmlCls.shownMenus).length==Object.keys(t.htmlCls.allMenus).length?$(".icn3d-menusep").show():$(".icn3d-menusep").hide(),localStorage&&!e&&localStorage.setItem("hiddenmenus",JSON.stringify(s))}getHiddenMenusFromCache(){let e=this.icn3dui;e.icn3d,e.htmlCls.shownMenus={};let t=localStorage?localStorage.getItem("hiddenmenus"):"";if(t&&"[]"!=t){let s=JSON.parse(t);for(let t in e.htmlCls.allMenus)-1==s.indexOf(t)&&(e.htmlCls.shownMenus[t]=1)}else e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus)}displayShownMenus(){let e=this.icn3dui;e.icn3d;let t="
    ";t+="",t+="";for(let s in e.htmlCls.allMenusSel){if("uniclr"==s.substr(0,6)||"mn5_opacity"==s.substr(0,11)||"mn6_labelscale"==s.substr(0,14)||"faq_"==s.substr(0,4)||"dev_"==s.substr(0,4))continue;"mn1_searchgrooup"==s?t+="
    FileSelectViewStyleColorAnalysisHelp
    ":("mn2_definedsets"==s||"mn2_show_selected"==s||"mn3_proteinwrap"==s||e.cfg.cid&&"mn3_ligwrap"==s||"mn4_clrwrap"==s||"mn6_selectannotations"==s||"abouticn3d"==s)&&(t+="");let i=e.htmlCls.shownMenus.hasOwnProperty(s)?"checked":"",n=e.htmlCls.allMenusSel[s];t+=""+e.htmlCls.allMenus[s]+"
    "}t+="
    ",$("#"+e.pre+"menulist").html(t)}async setIgTemplate(e){let t=this.icn3dui.icn3d;t.bRunRefnumAgain=!0;let s=t.resid2specCls.atoms2residues(Object.keys(t.hAtoms));for(let e=0,i=s.length;e0?"_blank":"_self";window.open(n,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_mmciffile","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmciffile","Please append mmCIF File")})),e.myEventCls.onIds("#"+e.pre+"mn1_mmcifid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmcifid","Please input mmCIF ID")})),e.myEventCls.onIds("#"+e.pre+"mn1_mmdbid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmdbid","Please input MMDB or PDB ID")})),e.myEventCls.onIds(["#"+e.pre+"mn1_mmdbafid",,"#"+e.pre+"tool_mmdbafid"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmdbafid","Please input PDB/MMDB/AlphaFold UniProt IDs")})),e.myEventCls.onIds("#"+e.pre+"mn1_blast_rep_id","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_blast_rep_id","Align sequence to structure")})),e.myEventCls.onIds("#"+e.pre+"mn1_esmfold","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_esmfold","Sequence to structure prediction with ESMFold")})),e.myEventCls.onIds("#"+e.pre+"mn1_proteinname","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_proteinname","Please input protein or gene name")})),e.myEventCls.onIds("#"+e.pre+"mn1_cid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_cid","Please input PubChem Compound")})),e.myEventCls.onIds("#"+e.pre+"mn1_smiles","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_smiles","Please input a chemical SMILES")})),e.myEventCls.onIds("#"+e.pre+"mn1_pngimage","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_pngimage","Please append PNG images")})),e.myEventCls.onIds("#"+e.pre+"mn1_state","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_state","Please input the state file")})),e.myEventCls.onIds("#"+e.pre+"mn1_selection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_selection","Please input the selection file")})),e.myEventCls.onIds("#"+e.pre+"mn1_collection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_selectCollections","Select Collections")})),e.myEventCls.onIds("#"+e.pre+"mn1_dsn6","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_dsn6","Please input the map file to display electron density map")})),e.myEventCls.onIds(["#"+e.pre+"mn1_delphi","#"+e.pre+"mn1_delphi2","#"+e.pre+"tool_delphi"],"click",(function(t){e.icn3d.loadPhiFrom="delphi",$("#"+e.pre+"dl_delphi_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_delphi","Please set parameters to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_phi","click",(function(t){e.icn3d.loadPhiFrom="phi",$("#"+e.pre+"dl_phi_tabs").tabs(),$("#"+e.pre+"phitab1_tabs").tabs(),$("#"+e.pre+"phitab2_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_phi","Please input local phi or cube file to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_phiurl","click",(function(t){e.icn3d.loadPhiFrom="phiurl",$("#"+e.pre+"dl_phiurl_tabs").tabs(),$("#"+e.pre+"phiurltab1_tabs").tabs(),$("#"+e.pre+"phiurltab2_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_phiurl","Please input URL phi or cube file to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_dsn6url","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_dsn6url","Please input the map file to display electron density map")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportState","click",(function(s){let i=e.icn3d;t.setLogCmd("export state file",!1);let n=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(n+"_statefile.txt","command")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportPdbRes","click",(function(s){e.icn3d,e.htmlCls.setHtmlCls.exportPdb(),t.setLogCmd("export pdb",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSecondary","click",(function(s){e.icn3d,e.htmlCls.setHtmlCls.exportSecondary(),t.setLogCmd("export secondary structure",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphipdb","#"+e.pre+"phipdb"],"click",(function(s){let i=e.icn3d,n=i.saveFileCls.getSelectedResiduePDB();t.setLogCmd("export PDB of selected residues",!1);let l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_icn3d_residues.pdb","text",[n])})),e.myEventCls.onIds(["#"+e.pre+"delphipqr","#"+e.pre+"phipqr","#"+e.pre+"phiurlpqr"],"click",(async function(s){e.icn3d,await e.htmlCls.setHtmlCls.exportPqr(),t.setLogCmd("export pqr",!0)})),e.myEventCls.onIds("#"+e.pre+"profixpdb","click",(async function(s){let i=e.icn3d;await i.scapCls.exportPdbProfix(!1),t.setLogCmd("export pdb missing atoms",!0)})),e.myEventCls.onIds("#"+e.pre+"profixpdbh","click",(async function(s){let i=e.icn3d;await i.scapCls.exportPdbProfix(!0),t.setLogCmd("export pdb hydrogen",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportIgstrand","click",(async function(s){e.icn3d.refnumCls.exportRefnum("igstrand"),t.setLogCmd("export refnum igstrand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportKabat","click",(async function(s){e.icn3d.refnumCls.exportRefnum("kabat"),t.setLogCmd("export refnum kabat",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportImgt","click",(async function(s){e.icn3d.refnumCls.exportRefnum("imgt"),t.setLogCmd("export refnum imgt",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportStl","click",(function(s){let i=e.icn3d;t.setLogCmd("export stl file",!1),i.export3DCls.exportStlFile("")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportVrml","click",(function(s){let i=e.icn3d;t.setLogCmd("export vrml file",!1),i.export3DCls.exportVrmlFile("")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportStlStab","click",(function(s){let i=e.icn3d;t.setLogCmd("export stl stabilizer file",!1),i.threeDPrintCls.hideStabilizer(),i.threeDPrintCls.resetAfter3Dprint(),i.threeDPrintCls.addStabilizer(),i.export3DCls.exportStlFile("_stab")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportVrmlStab","click",(function(s){let i=e.icn3d;t.setLogCmd("export vrml stabilizer file",!1),i.threeDPrintCls.hideStabilizer(),i.threeDPrintCls.resetAfter3Dprint(),i.threeDPrintCls.addStabilizer(),i.export3DCls.exportVrmlFile("_stab")})),e.myEventCls.onIds("#"+e.pre+"mn6_exportInteraction","click",(async function(s){let i=e.icn3d;t.setLogCmd("export interactions",!1),void 0!==e.cfg.mmdbid&&await i.viewInterPairsCls.retrieveInteractionData(),i.viewInterPairsCls.exportInteractions()})),e.myEventCls.onIds(["#"+e.pre+"mn1_exportCanvas","#"+e.pre+"saveimage"],"click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas",!1);await i.shareLinkCls.shareLink(!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas1","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 1",!0),i.scaleFactor=1,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas2","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 2",!0),i.scaleFactor=2,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas4","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 4",!0),i.scaleFactor=4,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas8","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 8",!0),i.scaleFactor=8,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCounts","click",(function(s){let i=e.icn3d;t.setLogCmd("export counts",!1);let n='

    Total Count for atoms with coordinates:
    ';n+="",n+="
    Structure CountChain CountResidue CountAtom Count
    "+Object.keys(i.structures).length+""+Object.keys(i.chains).length+""+Object.keys(i.residues).length+""+Object.keys(i.atoms).length+"

    ",n+="Counts by Chain for atoms with coordinates:
    ";let l=Object.keys(i.chains);for(let e=0,t=l.length;e"}n+="
    StructureChainResidue CountAtom Count
    "+r+""+o+""+Object.keys(a).length+""+Object.keys(i.chains[t]).length+"

    ";let r=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(r+"_counts.html","html",n)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSelections","click",(function(s){let i=e.icn3d;t.setLogCmd("export all selections",!1),t.SetChainsAdvancedMenu();let n=i.saveFileCls.exportCustomAtoms(),l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_selections.txt","text",[n])})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSelDetails","click",(function(s){let i=e.icn3d;t.setLogCmd("export all selections with details",!1),t.SetChainsAdvancedMenu();let n=i.saveFileCls.exportCustomAtoms(!0),l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_sel_details.txt","text",[n])})),e.myEventCls.onIds(["#"+e.pre+"mn1_sharelink","#"+e.pre+"tool_sharelink"],"click",(async function(t){let s=e.icn3d;await s.shareLinkCls.shareLink()})),e.myEventCls.onIds("#"+e.pre+"mn1_replayon","click",(async function(s){let i=e.icn3d;await i.resizeCanvasCls.replayon(),t.setLogCmd("replay on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_replayoff","click",(async function(s){let i=e.icn3d;await i.resizeCanvasCls.replayoff(),t.setLogCmd("replay off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_menuall","click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus),t.applyShownMenus()})),e.myEventCls.onIds("#"+e.pre+"mn1_menusimple","click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.simpleMenus),t.applyShownMenus()})),e.myEventCls.onIds("#"+e.pre+"mn1_menupref","click",(function(s){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_menupref","Select Menus"),t.getHiddenMenusFromCache(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"apply_menupref","#"+e.pre+"apply_menupref2"],"click",(function(s){e.icn3d;var i=document.querySelectorAll('form[name="'+e.pre+'selmenu"] input:checked');for(var n of(e.htmlCls.shownMenus={},i))e.htmlCls.shownMenus[n.value]=1;t.applyShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"reset_menupref","#"+e.pre+"reset_menupref2"],"click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.simpleMenus),t.applyShownMenus(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"reset_menupref_all","#"+e.pre+"reset_menupref_all2"],"click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus),t.applyShownMenus(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"savepref","#"+e.pre+"savepref2"],"click",(function(t){let s=e.icn3d,i="[";var n=document.querySelectorAll('form[name="'+e.pre+'selmenu"] input:not(:checked)');let l=0;for(var r of n)l>0&&(i+=", "),i+='"'+r.value+'"',++l;i+="]",s.saveFileCls.saveFile("icn3d_menus_pref.txt","text",[i])})),e.myEventCls.onIds("#"+e.pre+"reload_menupreffile","click",(function(s){e.icn3d,s.preventDefault(),e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"menupreffile")[0].files[0];if(i){e.htmlCls.setHtmlCls.fileSupport();let s=new FileReader;s.onload=function(s){let i=s.target.result,n=JSON.parse(i);e.htmlCls.shownMenus={};for(let t in e.htmlCls.allMenus)-1==n.indexOf(t)&&(e.htmlCls.shownMenus[t]=1);t.applyShownMenus(),t.displayShownMenus()},s.readAsText(i)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"mn1_menuloadpref","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_menuloadpref","Please input the menu preference file")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_structure","click",(function(t){let s=e.icn3d,i=s.saveFileCls.getLinkToStructureSummary(!0),n=s.structures&&Object.keys(s.structures).length>0?"_blank":"_self";window.open(i,n)})),e.myEventCls.onIds("#"+e.pre+"mn1_alphafold","click",(function(t){e.icn3d;window.open("https://github.com/sokrypton/ColabFold","_blank")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_bind","click",(function(s){let i=e.icn3d,n="https://www.ncbi.nlm.nih.gov/pccompound?LinkName=pccompound_structure&from_uid="+i.inputid;t.setLogCmd("link to 3D protein structures bound to CID "+i.inputid+": "+n,!1);let l=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(n,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_link_vast","click",(function(s){let i,n=e.icn3d;if(void 0===n.inputid)i="https://www.ncbi.nlm.nih.gov/pccompound?term="+n.molTitle,t.setLogCmd("link to compounds "+n.molTitle+": "+i,!1);else if(void 0!==e.cfg.cid)i="https://www.ncbi.nlm.nih.gov/pccompound?LinkName=pccompound_pccompound_3d&from_uid="+n.inputid,t.setLogCmd("link to compounds with structure similar to CID "+n.inputid+": "+i,!1);else{let s=n.inputid.split("_");1===s.length?(i=e.htmlCls.baseUrl+"vastplus/vastplus.cgi?uid="+n.inputid,t.setLogCmd("link to structures similar to "+n.inputid+": "+i,!1)):2===s.length&&(i=e.htmlCls.baseUrl+"vastplus/vastplus.cgi?uid="+s[0],t.setLogCmd("link to structures similar to "+s[0]+": "+i,!1))}let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_link_pubmed","click",(function(s){let i,n=e.icn3d;if(void 0===n.inputid){i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+n.molTitle,t.setLogCmd("link to literature about "+n.molTitle+": "+i,!1);let e=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,e)}else if(n.pmid){let e=n.pmid.toString().split("_");1===e.length?(i="https://www.ncbi.nlm.nih.gov/pubmed/"+n.pmid,t.setLogCmd("link to PubMed ID "+n.pmid+": "+i,!1)):2===e.length&&(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+e[0]+" OR "+e[1],t.setLogCmd("link to PubMed IDs "+e[0]+", "+e[1]+": "+i,!1));let s=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,s)}else if(isNaN(n.inputid)){let e=n.inputid.toString().split("_");1===e.length?(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+n.inputid,t.setLogCmd("link to literature about PDB "+n.inputid+": "+i,!1)):2===e.length&&(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+e[0]+" OR "+e[1],t.setLogCmd("link to literature about PDB "+e[0]+" OR "+e[1]+": "+i,!1));let s=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,s)}else void 0!==e.cfg.cid?alert("No literature information is available for this compound in the SDF file."):alert("No literature information is available for this structure.")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_protein","click",(function(s){let i=e.icn3d,n=Object.keys(i.structures),l=Object.keys(i.chains),r="";for(let e=0,t=l.length;e0&&(r=r.substr(0,r.length-4));let o="https://www.ncbi.nlm.nih.gov/protein/?term="+r;t.setLogCmd("link to Entrez protein about PDB "+n+": "+o,!1);let a=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(o,a)}))}clickMenu2(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds(["#"+e.pre+"mn6_selectannotations","#"+e.pre+"tool_selectannotations"],"click",(async function(s){let i=e.icn3d;await i.showAnnoCls.showAnnotations(),t.setLogCmd("view annotations",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_selectall","click",(function(s){let i=e.icn3d;t.setLogCmd("select all",!0),i.selectionCls.selectAll(),i.hlUpdateCls.removeHlAll(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearall","click",(function(s){let i=e.icn3d;t.setLogCmd("clear all",!0),i.bSelectResidue=!1,i.selectionCls.selectAll(),i.hlUpdateCls.removeHlAll(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_selectdisplayed","click",(function(s){let i=e.icn3d;t.setLogCmd("select displayed set",!0),i.hAtoms=e.hashUtilsCls.cloneHash(i.viewSelectionAtoms),i.hlUpdateCls.updateHlAll()})),e.myEventCls.onIds("#"+e.pre+"mn2_clashedYes","click",(function(s){let i=e.icn3d;i.bHideClashed=!1,i.annoDomainCls.showHideClashedResidues(),i.drawCls.draw(),t.setLogCmd("clashed residues show",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_clashedNo","click",(function(s){let i=e.icn3d;i.bHideClashed=!0,t.setClashedResidues(),i.annoDomainCls.showHideClashedResidues(),i.drawCls.draw(),t.setLogCmd("clashed residues hide",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_fullstru","click",(function(s){let i=e.icn3d;t.setLogCmd("show all",!0),i.selectionCls.showAll()})),e.myEventCls.onIds("#"+e.pre+"mn2_selectcomplement","click",(function(s){let i=e.icn3d;Object.keys(i.hAtoms).lengthnon-selected"+n),$("#"+e.pre+"atomsCustomSphere2").length&&$("#"+e.pre+"atomsCustomSphere2").html(" "+n),e.htmlCls.dialogCls.openDlg("dl_aroundsphere","Select a sphere around a set of residues"),i.bSphereCalc=!1,$("#"+e.pre+"atomsCustomSphere").resizable(),$("#"+e.pre+"atomsCustomSphere2").resizable()})),e.myEventCls.onIds(["#"+e.pre+"mn2_select_chain","#"+e.pre+"definedSets"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_select_chain","Select Structure/Chain/Custom Selection")}))}clickMenu3(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsRibbon","#"+e.pre+"tool_proteinsRibbon"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","ribbon"),t.setLogCmd("style proteins ribbon",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsStrand","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","strand"),t.setLogCmd("style proteins strand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsCylinder","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","cylinder and plate"),t.setLogCmd("style proteins cylinder and plate",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","schematic"),t.setLogCmd("style proteins schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsCalpha","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","c alpha trace"),t.setLogCmd("style proteins c alpha trace",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsBackbone","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","backbone"),t.setLogCmd("style proteins backbone",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsBfactor","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","b factor tube"),t.setLogCmd("style proteins b factor tube",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsLines","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","lines"),t.setLogCmd("style proteins lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsStick","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","stick"),t.setLogCmd("style proteins stick",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsBallstick","#"+e.pre+"tool_proteinsBallstick"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","ball and stick"),t.setLogCmd("style proteins ball and stick",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsSphere","#"+e.pre+"tool_proteinsSphere"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","sphere"),t.setLogCmd("style proteins sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsNo","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","nothing"),t.setLogCmd("style proteins nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecLines","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","lines2"),t.setLogCmd("style sidec lines2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecStick","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","stick2"),t.setLogCmd("style sidec stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","ball and stick2"),t.setLogCmd("style sidec ball and stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","sphere2"),t.setLogCmd("style sidec sphere2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecNo","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","nothing"),t.setLogCmd("style sidec nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseLines","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","lines2"),t.setLogCmd("style ntbase lines2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseStick","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","stick2"),t.setLogCmd("style ntbase stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","ball and stick2"),t.setLogCmd("style ntbase ball and stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","sphere2"),t.setLogCmd("style ntbase sphere2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseNo","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","nothing"),t.setLogCmd("style ntbase nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclCartoon","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","nucleotide cartoon"),t.setLogCmd("style nucleotides nucleotide cartoon",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclBackbone","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","backbone"),t.setLogCmd("style nucleotides backbone",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","schematic"),t.setLogCmd("style nucleotides schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclPhos","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","o3 trace"),t.setLogCmd("style nucleotides o3 trace",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclLines","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","lines"),t.setLogCmd("style nucleotides lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclStick","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","stick"),t.setLogCmd("style nucleotides stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","ball and stick"),t.setLogCmd("style nucleotides ball and stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","sphere"),t.setLogCmd("style nucleotides sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclNo","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","nothing"),t.setLogCmd("style nucleotides nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligLines","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","lines"),t.setLogCmd("style chemicals lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligStick","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","stick"),t.setLogCmd("style chemicals stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","ball and stick"),t.setLogCmd("style chemicals ball and stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","schematic"),t.setLogCmd("style chemicals schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","sphere"),t.setLogCmd("style chemicals sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligNo","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","nothing"),t.setLogCmd("style chemicals nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_glycansCartYes","click",(function(s){let i=e.icn3d;i.bGlycansCartoon=!0,i.drawCls.draw(),t.setLogCmd("glycans cartoon yes",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_glycansCartNo","click",(function(s){let i=e.icn3d;i.bGlycansCartoon=!1,i.drawCls.draw(),t.setLogCmd("glycans cartoon no",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_hydrogensYes","click",(function(s){let i=e.icn3d;i.showInterCls.showHydrogens(),i.drawCls.draw(),t.setLogCmd("hydrogens",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_hydrogensNo","click",(function(s){let i=e.icn3d;i.showInterCls.hideHydrogens(),i.drawCls.draw(),t.setLogCmd("set hydrogens off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","sphere"),t.setLogCmd("style ions sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsDot","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","dot"),t.setLogCmd("style ions dot",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsNo","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","nothing"),t.setLogCmd("style ions nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("water","sphere"),t.setLogCmd("style water sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterDot","click",(function(s){e.icn3d.setOptionCls.setStyle("water","dot"),t.setLogCmd("style water dot",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterNo","click",(function(s){e.icn3d.setOptionCls.setStyle("water","nothing"),t.setLogCmd("style water nothing",!0)}))}clickMenu4(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrum","click",(function(s){e.icn3d.setOptionCls.setOption("color","spectrum"),t.setLogCmd("color spectrum",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumChain","click",(function(s){e.icn3d.setOptionCls.setOption("color","spectrum for chains"),t.setLogCmd("color spectrum for chains",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumAcrossSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorSpectrumAcross").length&&$("#"+e.pre+"atomsCustomColorSpectrumAcross").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorspectrumacrosssets","Please select sets to apply spectrum color for sets"),$("#"+e.pre+"atomsCustomColorSpectrumAcross").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorSpectrum").length&&$("#"+e.pre+"atomsCustomColorSpectrum").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorspectrumbysets","Please select sets to apply spectrum color for residues"),$("#"+e.pre+"atomsCustomColorSpectrum").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbowAcrossSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorRainbowAcross").length&&$("#"+e.pre+"atomsCustomColorRainbowAcross").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorrainbowacrosssets","Please select sets to apply rainbow color for sets"),$("#"+e.pre+"atomsCustomColorRainbowAcross").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbowSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorRainbow").length&&$("#"+e.pre+"atomsCustomColorRainbow").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorrainbowbysets","Please select sets to apply rainbow color for residues"),$("#"+e.pre+"atomsCustomColorRainbow").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbow","click",(function(s){e.icn3d.setOptionCls.setOption("color","rainbow"),t.setLogCmd("color rainbow",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrRainbowChain","#"+e.pre+"tool_clrRainbowChain"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","rainbow for chains"),t.setLogCmd("color rainbow for chains",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrChain","#"+e.pre+"tool_clrChain"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","chain"),t.setLogCmd("color chain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrStructure","click",(function(s){e.icn3d.setOptionCls.setOption("color","structure"),t.setLogCmd("color structure",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrdomain","click",(function(s){e.icn3d.setOptionCls.setOption("color","domain"),t.setLogCmd("color domain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrsets","click",(function(s){e.icn3d.setOptionCls.setOption("color","defined sets"),t.setLogCmd("color defined sets",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrSSGreen","#"+e.pre+"tool_clrSSGreen"],"click",(function(s){let i=e.icn3d;i.sheetcolor="green",i.setOptionCls.setOption("color","secondary structure green"),t.setLogCmd("color secondary structure green",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSSYellow","click",(function(s){let i=e.icn3d;i.sheetcolor="yellow",i.setOptionCls.setOption("color","secondary structure yellow"),t.setLogCmd("color secondary structure yellow",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSSSpectrum","click",(function(s){e.icn3d.setOptionCls.setOption("color","secondary structure spectrum"),t.setLogCmd("color secondary structure spectrum",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrResidue","click",(function(s){e.icn3d.setOptionCls.setOption("color","residue"),t.setLogCmd("color residue",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrResidueCustom","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_rescolorfile","Please input the file on residue colors")})),e.myEventCls.onIds("#"+e.pre+"reload_rescolorfile","click",(function(s){let i=e.icn3d;s.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"rescolorfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let s=new FileReader;s.onload=function(s){let n=s.target.result.replace(/#/g,"");i.customResidueColors=JSON.parse(n);for(let t in i.customResidueColors)i.customResidueColors[t.toUpperCase()]=e.parasCls.thr("#"+i.customResidueColors[t]);i.setOptionCls.setOption("color","residue custom"),t.setLogCmd("color residue custom | "+n,!0)},s.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_customcolorfile","click",(function(s){let i=e.icn3d;s.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.startColor=$("#"+e.pre+"startColor").val(),i.midColor=$("#"+e.pre+"midColor").val(),i.endColor=$("#"+e.pre+"endColor").val();let n=t.setLegendHtml();$("#"+e.pre+"dl_legend_html").html(n),e.htmlCls.dialogCls.openDlg("dl_legend","Color range"),i.addTrackCls.setCustomFile("color",i.startColor,i.midColor,i.endColor)})),e.myEventCls.onIds("#"+e.pre+"mn6_customref","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_customref","Set custom reference numbers")})),e.myEventCls.onIds("#"+e.pre+"reload_customreffile","click",(function(s){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=$("#"+i.pre+"cstreffile")[0].files[0];if(n){e.utilsCls.checkFileAPI();let s=new FileReader;s.onload=async function(e){let s=e.target.result;await i.refnumCls.parseCustomRefFile(s),s=s.replace(/\r/g,"").replace(/\n/g,"\\n"),t.setLogCmd("custom refnum | "+s,!0)},s.readAsText(n)}else alert("Please select a file before clicking 'Apply'")})),e.myEventCls.onIds("#"+e.pre+"remove_legend","click",(function(s){e.icn3d,s.preventDefault(),$("#"+e.pre+"legend").hide(),t.setLogCmd("remove legend",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_customtubefile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.addTrackCls.setCustomFile("tube")})),e.myEventCls.onIds("#"+e.pre+"mn4_clrCharge","click",(function(s){e.icn3d.setOptionCls.setOption("color","charge"),t.setLogCmd("color charge",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrHydrophobic","click",(function(s){e.icn3d.setOptionCls.setOption("color","hydrophobic"),t.setLogCmd("color hydrophobic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrNormalizedHP","click",(function(s){e.icn3d.setOptionCls.setOption("color","normalized hydrophobic"),t.setLogCmd("color normalized hydrophobic",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrAtom","#"+e.pre+"tool_clrAtom"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","atom"),t.setLogCmd("color atom",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrBfactor","click",(function(s){e.icn3d.setOptionCls.setOption("color","b factor"),t.setLogCmd("color b factor",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrConfidence","click",(function(s){e.icn3d.setOptionCls.setOption("color","confidence"),t.setLogCmd("color confidence",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIgstrand","click",(function(s){e.icn3d.setOptionCls.setOption("color","ig strand"),t.setLogCmd("color ig strand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIgproto","click",(function(s){e.icn3d.setOptionCls.setOption("color","ig protodomain"),t.setLogCmd("color ig protodomain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrArea","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_colorbyarea","Color based on residue's solvent accessibility")})),e.myEventCls.onIds("#"+e.pre+"applycolorbyarea","click",(function(s){let i=e.icn3d;i.midpercent=$("#"+e.pre+"midpercent").val(),i.setOptionCls.setOption("color","area"),t.setLogCmd("color area | "+i.midpercent,!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrBfactorNorm","click",(function(s){e.icn3d.setOptionCls.setOption("color","b factor percentile"),t.setLogCmd("color b factor percentile",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIdentity","click",(function(s){e.icn3d.setOptionCls.setOption("color","identity"),t.setLogCmd("color identity",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrConserved","click",(function(s){e.icn3d.setOptionCls.setOption("color","conservation"),t.setLogCmd("color conservation",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrCustom","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_clr","Color picker")})),$(document).on("click",".icn3d-color-rad-text",(function(s){let i=e.icn3d;s.stopImmediatePropagation();let n=$(this).attr("color");i.setOptionCls.setOption("color",n),t.setLogCmd("color "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSave","click",(function(s){e.icn3d.setOptionCls.saveColor(),t.setLogCmd("save color",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrApplySave","click",(function(s){e.icn3d.setOptionCls.applySavedColor(),t.setLogCmd("apply saved color",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_styleSave","click",(function(s){e.icn3d.setOptionCls.saveStyle(),t.setLogCmd("save style",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_styleApplySave","click",(function(s){e.icn3d.setOptionCls.applySavedStyle(),t.setLogCmd("apply saved style",!0)}))}clickMenu5(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds("#"+e.pre+"mn5_neighborsYes","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.applyMapCls.removeLastSurface(),i.applyMapCls.applySurfaceOptions(),i.bRender&&i.drawCls.render(),t.setLogCmd("set surface neighbors on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_neighborsNo","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.applyMapCls.removeLastSurface(),i.applyMapCls.applySurfaceOptions(),i.bRender&&i.drawCls.render(),t.setLogCmd("set surface neighbors off",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn5_surfaceVDW","#"+e.pre+"tool_surfaceVDW"],"click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","Van der Waals surface"),t.setLogCmd("set surface Van der Waals surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceSAS","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","solvent accessible surface"),t.setLogCmd("set surface solvent accessible surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceMolecular","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","molecular surface"),t.setLogCmd("set surface molecular surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceVDWContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","Van der Waals surface with context"),t.setLogCmd("set surface Van der Waals surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceSASContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","solvent accessible surface with context"),t.setLogCmd("set surface solvent accessible surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceMolecularContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","molecular surface with context"),t.setLogCmd("set surface molecular surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceNo","click",(function(s){e.icn3d.setOptionCls.setOption("surface","nothing"),t.setLogCmd("set surface nothing",!0)})),$(document).on("click","."+e.pre+"mn5_opacity",(function(s){let i=e.icn3d;i.transparentRenderOrder=!1;let n=$(this).attr("v");i.setOptionCls.setOption("opacity",n),t.setLogCmd("set surface opacity "+n,!0)})),$(document).on("click","."+e.pre+"mn5_opacityslow",(function(s){let i=e.icn3d;i.transparentRenderOrder=!0;let n=$(this).attr("v");i.setOptionCls.setOption("opacity",n),t.setLogCmd("set surface2 opacity "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_wireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("wireframe","yes"),t.setLogCmd("set surface wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_wireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("wireframe","no"),t.setLogCmd("set surface wireframe off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_elecmap2fofc","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_elecmap2fofc","2Fo-Fc Electron Density Map")})),e.myEventCls.onIds("#"+e.pre+"mn5_elecmapfofc","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_elecmapfofc","Fo-Fc Electron Density Map")})),e.myEventCls.onIds(["#"+e.pre+"mn5_elecmapNo","#"+e.pre+"elecmapNo2","#"+e.pre+"elecmapNo3","#"+e.pre+"elecmapNo4","#"+e.pre+"elecmapNo5"],"click",(function(s){e.icn3d.setOptionCls.setOption("map","nothing"),t.setLogCmd("setoption map nothing",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphimapNo","#"+e.pre+"phimapNo","#"+e.pre+"phiurlmapNo","#"+e.pre+"mn1_phimapNo"],"click",(function(s){e.icn3d.setOptionCls.setOption("phimap","nothing"),t.setLogCmd("setoption phimap nothing",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphimapNo2","#"+e.pre+"phimapNo2","#"+e.pre+"phiurlmapNo2"],"click",(function(s){e.icn3d.setOptionCls.setOption("phisurface","nothing"),t.setLogCmd("setoption phisurface nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"applymap2fofc","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"sigma2fofc").val());await i.densityCifParserCls.densityCifParser(i.inputid,"2fofc",n),t.setLogCmd("set map 2fofc sigma "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applymapfofc","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"sigmafofc").val());await i.densityCifParserCls.densityCifParser(i.inputid,"fofc",sigma2fofc),t.setLogCmd("set map fofc sigma "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_mapwireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("mapwireframe","yes"),t.setLogCmd("set map wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_mapwireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("mapwireframe","no"),t.setLogCmd("set map wireframe off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmap","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_emmap","EM Density Map")})),e.myEventCls.onIds(["#"+e.pre+"mn5_emmapNo","#"+e.pre+"emmapNo2"],"click",(function(s){e.icn3d.setOptionCls.setOption("emmap","nothing"),t.setLogCmd("setoption emmap nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"applyemmap","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"empercentage").val());await i.densityCifParserCls.densityCifParser(i.inputid,"em",n,i.emd),t.setLogCmd("set emmap percentage "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmapwireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("emmapwireframe","yes"),t.setLogCmd("set emmap wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmapwireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("emmapwireframe","no"),t.setLogCmd("set emmap wireframe off",!0)}))}clickMenu6(){let e=this.icn3dui,t=e.icn3d;if(e.bNode)return;let s=this;e.myEventCls.onIds("#"+e.pre+"mn6_assemblyYes","click",(function(t){let i=e.icn3d;i.bAssembly=!0,s.setLogCmd("set assembly on",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_assemblyNo","click",(function(t){let i=e.icn3d;i.bAssembly=!1,s.setLogCmd("set assembly off",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefYes","click",(async function(t){let i=e.icn3d;i.bRunRefnumAgain=!0,s.setLogCmd("ig refnum on",!0),i.bAnnoShown||await i.showAnnoCls.showAnnotations();await i.annotationCls.setAnnoTabIg(!0),i.bRunRefnumAgain=!1})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefTpl","click",(async function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_igrefTpl","Choose an Ig template")})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefTpl_apply","click",(async function(t){e.icn3d,e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"refTpl").val();await s.setIgTemplate(i),s.setLogCmd("ig template "+i,!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_alignrefTpl","click",(async function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_alignrefTpl","Align with an Ig template")})),e.myEventCls.onIds("#"+e.pre+"mn6_alignrefTpl_apply","click",(async function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"refTpl2").val(),l=e.hashUtilsCls.cloneHash(i.hAtoms),r=e.htmlCls.baseUrl+"icn3d/refpdb/"+n+".pdb";await i.pdbParserCls.downloadUrl(r,"pdb",void 0,n),s.setLogCmd("load url "+r+" | type pdb",!0);let o=n.replace(/_/g,"").substr(0,4),a=i.structures[o][0];i.hAtoms=e.hashUtilsCls.unionHash(l,i.chains[a]),e.cfg.aligntool="tmalign",await i.realignParserCls.realignOnStructAlign(),s.setLogCmd("realign on tmalign",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefNo","click",(async function(t){let i=e.icn3d;s.setLogCmd("ig refnum off",!0),await i.refnumCls.hideIgRefNum()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelAtoms","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addAtomLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add atom labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelElements","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addAtomLabels(i.hAtoms,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add element labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelResidues","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add residue labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelResnum","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms,void 0,void 0,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add residue number labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelRefnum","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms,void 0,void 0,void 0,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add reference number labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelIg","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addIgLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add ig labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelChains","click",(function(t){let i=e.icn3d;i.analysisCls.addChainLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add chain labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelTermini","click",(function(t){let i=e.icn3d;i.analysisCls.addTerminiLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add terminal labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelYes","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_addlabel","Add custom labels by selection"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelSelection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_addlabelselection","Add custom labels by the selected")})),e.myEventCls.onIds("#"+e.pre+"mn6_labelColor","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_labelColor","Change color for all labels")})),e.myEventCls.onIds(["#"+e.pre+"mn2_saveselection","#"+e.pre+"tool_saveselection"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_saveselection","Save the selected")})),e.myEventCls.onIds(["#"+e.pre+"mn6_addlabelNo","#"+e.pre+"removeLabels"],"click",(function(t){let i=e.icn3d;i.labelcolor=void 0,i.pickpair=!1;s.setLogCmd("set labels off",!0);for(let e in i.labels)i.labels[e]=[];i.drawCls.draw()})),$(document).on("click","."+e.pre+"mn6_labelscale",(function(t){let i=e.icn3d,n=$(this).attr("v");i.labelScale=n,i.drawCls.draw(),s.setLogCmd("set label scale "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_distanceYes","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_distance","Measure the distance of atoms"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0,s.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distTwoSets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_disttwosets","Measure the distance between two sets"),s.setSetsMenus("atomsCustomDist"),i.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distManySets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_distmanysets","Measure the pairwise distances among many sets"),s.setSetsMenus("atomsCustomDistTable"),i.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_angleManySets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_anglemanysets","Measure the pairwise angles among many sets"),s.setSetsMenus("atomsCustomAngleTable"),i.bMeasureAngle=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distanceNo","click",(function(t){let i=e.icn3d;i.pickpair=!1;s.setLogCmd("set lines off",!0),i.labels.distance=[],i.lines.distance=[],i.distPnts=[],i.pk=2,i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn5_cartoonshape","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_cartoonshape","Draw cartoon for a set");s.setSetsMenus("cartoonshape",!0),i.bCartoonshape=!0})),e.myEventCls.onIds("#"+e.pre+"mn5_linebtwsets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_linebtwsets","Draw a line between two sets"),s.setSetsMenus("linebtwsets"),i.bLinebtwsets=!0})),e.myEventCls.onIds(["#"+e.pre+"mn2_selectedcenter","#"+e.pre+"zoomin_selection","#"+e.pre+"tool_selectedcenter"],"click",(function(t){let i=e.icn3d;i.transformCls.zoominSelection(),i.drawCls.draw(),s.setLogCmd("zoom selection",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_center","click",(function(t){let i=e.icn3d;i.applyCenterCls.centerSelection(),i.drawCls.draw(),s.setLogCmd("center selection",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_resetOrientation","#"+e.pre+"resetOrientation","#"+e.pre+"tool_resetOrientation"],"click",(function(t){let i=e.icn3d;i.transformCls.resetOrientation(),i.drawCls.draw(),s.setLogCmd("reset orientation",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_chemicalbindingshow","#"+e.pre+"chemicalbindingshow"],"click",(function(t){e.icn3d.setOptionCls.setOption("chemicalbinding","show"),s.setLogCmd("set chemicalbinding show",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_chemicalbindinghide","#"+e.pre+"chemicalbindinghide"],"click",(function(t){e.icn3d.setOptionCls.setOption("chemicalbinding","hide"),s.setLogCmd("set chemicalbinding hide",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_sidebyside","click",(function(t){let i=e.icn3d;if(i.bInputfile)return void alert("Side-by-Side does NOT work when the input is from a local file.");let n=i.shareLinkCls.shareLinkUrl(void 0);n=n.replace("icn3d/full.html?","icn3d/full2.html?"),n=n.replace("icn3d/?","icn3d/full2.html?"),n+="&closepopup=1";let l=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(n,l),s.setLogCmd("side by side | "+n,!0)})),$(document).on("click","#"+e.pre+"mn2_translate",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_translate","Translate the X,Y,Z coordinates of the structure")})),$(document).on("click","#"+e.pre+"mn6_angleTwoSets",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_angle","Measure the angle between two vectors")})),$(document).on("click","#"+e.pre+"mn2_matrix",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_matrix","Apply matrix to the X,Y,Z coordinates of the structure")})),$(document).on("click","."+e.pre+"mn6_rotate",(function(t){let i=e.icn3d,n=$(this).attr("v").toLowerCase(),l=n.split(" ")[1];s.setLogCmd(n,!0),i.bStopRotate=!1,i.transformCls.rotateCount=0,i.transformCls.rotateCountMax=6e3,i.ROT_DIR=l,i.resizeCanvasCls.rotStruc(l)})),$(document).on("click","."+e.pre+"mn6_rotate90",(function(t){let i,n=e.icn3d,l=$(this).attr("v").toLowerCase(),r=l.split(" ")[1];s.setLogCmd(l,!0),"x"==r?i=new THREE.Vector3(1,0,0):"y"==r?i=new THREE.Vector3(0,1,0):"z"==r&&(i=new THREE.Vector3(0,0,1));let o=.5*Math.PI;n.transformCls.setRotation(i,o)})),e.myEventCls.onIds("#"+e.pre+"mn6_cameraPers","click",(function(t){e.icn3d.setOptionCls.setOption("camera","perspective"),s.setLogCmd("set camera perspective",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_cameraOrth","click",(function(t){e.icn3d.setOptionCls.setOption("camera","orthographic"),s.setLogCmd("set camera orthographic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdBlack","click",(function(t){e.icn3d.setStyleCls.setBackground("black")})),e.myEventCls.onIds("#"+e.pre+"tool_bkgd","click",(function(t){let s=e.icn3d;"black"==s.opts.background?s.setStyleCls.setBackground("white"):s.setStyleCls.setBackground("black")})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdGrey","click",(function(t){e.icn3d.setStyleCls.setBackground("grey")})),e.myEventCls.onIds(["#"+e.pre+"mn6_bkgdWhite","#"+e.pre+"tool_bkgdWhite"],"click",(function(t){e.icn3d.setStyleCls.setBackground("white")})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdTransparent","click",(function(t){e.icn3d.setStyleCls.setBackground("transparent")})),e.myEventCls.onIds("#"+e.pre+"mn6_showfogYes","click",(function(t){let i=e.icn3d;i.opts.fog="yes",i.fogCls.setFog(!0),i.drawCls.draw(),s.setLogCmd("set fog on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showfogNo","click",(function(t){let i=e.icn3d;i.opts.fog="no",i.fogCls.setFog(!0),i.drawCls.draw(),s.setLogCmd("set fog off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showslabYes","click",(function(t){e.icn3d.setOptionCls.setOption("slab","yes"),s.setLogCmd("set slab on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showslabNo","click",(function(t){e.icn3d.setOptionCls.setOption("slab","no"),s.setLogCmd("set slab off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisYes","click",(function(t){e.icn3d.setOptionCls.setOption("axis","yes"),s.setLogCmd("set axis on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisSel","click",(function(t){let i=e.icn3d;i.pc1=!0,i.axesCls.setPc1Axes(),s.setLogCmd("set pc1 axis",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisNo","click",(function(t){let i=e.icn3d;i.pc1=!1,i.axes=[],i.setOptionCls.setOption("axis","no"),s.setLogCmd("set axis off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_symmetry","click",(async function(t){let s=e.icn3d;s.bAxisOnly=!1,await s.symdCls.retrieveSymmetry(Object.keys(s.structures)[0])})),e.myEventCls.onIds("#"+e.pre+"mn6_symd","click",(async function(t){let i=e.icn3d;i.bAxisOnly=!1,await i.symdCls.retrieveSymd(),i.bSymd=!0,s.setLogCmd("symd symmetry",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_clear_sym","click",(function(t){let i=e.icn3d;i.symdArray=[],i.drawCls.draw(),s.setLogCmd("clear symd symmetry",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_axes_only","click",(function(t){let i=e.icn3d;i.bAxisOnly=!0,i.drawCls.draw(),s.setLogCmd("show axis",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_area","click",(function(t){e.icn3d.analysisCls.calculateArea(),s.setLogCmd("area",!0)})),e.myEventCls.onIds("#"+e.pre+"applysymmetry","click",(function(t){let i=e.icn3d;i.bAxisOnly=!1;let n=$("#"+e.pre+"selectSymmetry").val();i.symmetrytitle="none"===n?void 0:n,i.drawCls.draw(),s.setLogCmd("symmetry "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"clearsymmetry","click",(function(t){let i=e.icn3d;i.symmetrytitle=void 0,i.drawCls.draw(),s.setLogCmd("symmetry none",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_hbondsYes","#"+e.pre+"hbondsYes"],"click",(function(t){let i=e.icn3d;s.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomHbond").length&&$("#"+e.pre+"atomsCustomHbond").html(" "+n),$("#"+e.pre+"atomsCustomHbond2").length&&$("#"+e.pre+"atomsCustomHbond2").html(" "+n),e.htmlCls.dialogCls.openDlg("dl_hbonds","Hydrogen bonds/interactions between two sets of atoms"),i.bHbondCalc=!1,$("#"+e.pre+"atomsCustomHbond").resizable(),$("#"+e.pre+"atomsCustomHbond2").resizable()})),e.myEventCls.onIds(["#"+e.pre+"mn6_contactmap"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_contact","Set contact map")})),e.myEventCls.onIds(["#"+e.pre+"mn6_DSSP"],"click",(async function(t){let i=e.icn3d;s.setLogCmd("set dssp sse",!0),await i.pdbParserCls.applyCommandDssp(),i.bResetAnno=!0,i.bAnnoShown&&(await i.showAnnoCls.showAnnotations(),i.annotationCls.resetAnnoTabAll())})),e.myEventCls.onIds("#"+e.pre+"mn6_hbondsNo","click",(function(t){let s=e.icn3d;s.showInterCls.hideHbondsContacts(),s.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerYes","click",(function(t){let i=e.icn3d;i.threeDPrintCls.addStabilizer(),i.threeDPrintCls.prepareFor3Dprint(),s.setLogCmd("stabilizer",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerNo","click",(function(t){let i=e.icn3d;s.setLogCmd("set stabilizer off",!0),i.threeDPrintCls.hideStabilizer(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerOne","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_stabilizer","Add One Stabilizer"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerRmOne","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_stabilizer_rm","Remove One Stabilizer"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn1_thicknessSet","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_thickness","Set Thickness for 3D Printing")})),e.myEventCls.onIds("#"+e.pre+"mn3_setThickness","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_thickness2","Style Preferences")})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsYes","click",(function(t){let i=e.icn3d;s.setLogCmd("disulfide bonds",!0),i.showInterCls.showSsbonds()})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsExport","click",(function(t){e.icn3d.viewInterPairsCls.exportSsbondPairs(),s.setLogCmd("export disulfide bond pairs",!1)})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsNo","click",(function(t){let i=e.icn3d;i.opts.ssbonds="no";s.setLogCmd("set disulfide bonds off",!0),i.lines.ssbond=[],i.setOptionCls.setStyle("sidec","nothing")})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsYes","click",(function(t){let i=e.icn3d;s.setLogCmd("cross linkage",!0),i.showInterCls.showClbonds()})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsExport","click",(function(t){e.icn3d.viewInterPairsCls.exportClbondPairs(),s.setLogCmd("export cross linkage pairs",!1)})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsNo","click",(function(t){let i=e.icn3d;i.opts.clbonds="no";s.setLogCmd("set cross linkage off",!0),i.lines.clbond=[],i.setOptionCls.setStyle("sidec","nothing")})),$("#"+e.pre+"newvs2").on("submit",(function(){let s=t.saveFileCls.getAtomPDB(t.hAtoms,void 0,void 0,void 0,void 0,void 0,void 0,!0);return $("#"+e.pre+"pdbstr").val(s),!0})),$("#"+e.pre+"fssubmit").on("click",(function(){let e=t.saveFileCls.getAtomPDB(t.hAtoms),s=window.open("","_blank");s.document.body.innerHTML="\n\nLoading Foldseek\n\n\n\n
    Foldseek is loading...
    \n",$.ajax({url:"https://search.foldseek.com/api/ticket",type:"POST",data:{q:e,database:["afdb50","afdb-swissprot","gmgcl_id","pdb100","afdb-proteome","mgnify_esm30"],mode:"3diaa"},dataType:"text",success:function(e){s.location="https://search.foldseek.com/queue/"+JSON.parse(e).id},error:function(e,t,s){console.log("Error in submitting data to Foldseek...")}})})),e.myEventCls.onIds("#"+e.pre+"jn_copy","click",(function(t){e.icn3d;let s=$("#"+e.pre+"jn_commands").val();navigator.clipboard.writeText(s)}))}setLogCmd(e,t,s){var i=this.icn3dui,n=i.icn3d;if(""===e.trim())return!1;let l=e.indexOf("|||");-1!==l&&(e=e.substr(0,l));let r={};if(n.quaternion||(n._zoomFactor=1,n.mouseChange=new THREE.Vector2(0,0),n.quaternion=new THREE.Quaternion(0,0,0,1)),r.factor=n._zoomFactor,r.mouseChange=n.mouseChange,r.quaternion={},r.quaternion._x=parseFloat(n.quaternion._x).toPrecision(5),r.quaternion._y=parseFloat(n.quaternion._y).toPrecision(5),r.quaternion._z=parseFloat(n.quaternion._z).toPrecision(5),r.quaternion._w=parseFloat(n.quaternion._w).toPrecision(5),t&&n.bAddCommands)if(n.STATENUMBER "+n.logs.join("\n> ")+"\n> "),$("#"+i.pre+"logtext")[0]&&$("#"+i.pre+"logtext").scrollTop($("#"+i.pre+"logtext")[0].scrollHeight)}n.setStyleCls.adjustIcon()}}class d{constructor(e){this.icn3dui=e}getLink(e,t,s,i){return this.icn3dui.htmlCls.setHtmlCls.getLink(e,t,s,i)}getMenuText(e,t,s,i,n){return this.icn3dui.htmlCls.setHtmlCls.getMenuText(e,t,s,i,n)}getMenuUrl(e,t,s,i,n){return this.icn3dui.htmlCls.setHtmlCls.getMenuUrl(e,t,s,i,n)}getMenuSep(){return this.icn3dui.htmlCls.setHtmlCls.getMenuSep()}getLinkWrapper(e,t,s,i,n,l){let r=this.icn3dui;return r.icn3d,r.htmlCls.setHtmlCls.getLinkWrapper(e,t,s,i,n,l)}getLinkWrapper2(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.setHtmlCls.getLinkWrapper2(e,t,s,i,n)}getRadio(e,t,s,i,n,l){return this.icn3dui.htmlCls.setHtmlCls.getRadio(e,t,s,i,n,l)}getRadClr(e,t,s,i,n,l,r){return this.icn3dui.htmlCls.setHtmlCls.getRadioColor(e,t,s,i,n,l,r)}setTopMenusHtml(e,t,s){let i=this.icn3dui;if(i.bNode)return"";let n="black"==i.htmlCls.opts.background?i.htmlCls.GREYD:"black",l="";l+="
    ",l+=i.htmlCls.divStr+"popup' class='icn3d-text icn3d-popup'>
    ",l+=this.setReplayHtml(),l+="\x3c!--https://forum.jquery.com/topic/looking-for-a-jquery-horizontal-menu-bar--\x3e",l+=i.htmlCls.divStr+"mnlist' style='position:absolute; z-index:999; float:left; display:table-row; margin-top: -2px;'>",l+="";let r='",l+=r+this.setMenu2()+"",l+=r+this.setMenu2b()+"",l+=r+this.setMenu3()+"",l+=r+this.setMenu4()+"",l+=r+this.setMenu5()+"",l+=r+this.setMenu6()+"",i.htmlCls.shownMenus=i.hashUtilsCls.cloneHash(i.htmlCls.simpleMenus),l+=r+"
    "+t,l+="
    "+s,l+=r+'
    '+i.htmlCls.space2+'Toolbar '+i.htmlCls.space2+'
    ",l+=r+'
    '+i.htmlCls.space2+' ?
    ',l+="
    ",l+="
    ';if(l+=r+this.setMenu1()+"
    ",l+="",l+=this.setTools(),l+=i.htmlCls.divStr+"title' class='icn3d-commandTitle' style='font-size:1.2em; font-weight:normal; position:absolute; z-index:1; float:left; display:table-row; margin: 85px 0px 0px 5px; color:"+n+"; width:"+i.htmlCls.WIDTH+"px'>",l+=i.htmlCls.divStr+"viewer' style='position:relative; width:100%; height:100%; background-color: "+i.htmlCls.GREYD+";'>",l+=i.htmlCls.divStr+"mnLogSection'>",l+="
    ",l+=" ",void 0===i.cfg.mmtfid){let e="top:180px; font-size: 1.8em;";l+=i.htmlCls.divStr+"wait' style='position:absolute; left:50px; "+e+" color: #444444;'>Loading data..."}l+="Your browser does not support WebGL.",(void 0===i.cfg.showcommand||i.cfg.showcommand)&&(l+=this.setLogWindow()),l+="",l+="",l+=i.htmlCls.setDialogCls.setDialogs(),l+=i.htmlCls.setDialogCls.setCustomDialogs(),$("#"+e).html(l),$("accordion").accordion({collapsible:!0,active:!1,heightStyle:"content"}),$("accordion div").removeClass("ui-accordion-content ui-corner-all ui-corner-bottom ui-widget-content"),$(".icn3d-mn-item").menu({position:{my:"left top",at:"right top"}}),$(".icn3d-mn-item").hover((function(){}),(function(){$("accordion").accordion("option","active","none")})),$("#"+i.pre+"accordion1").hover((function(){$("#"+i.pre+"accordion1 div").css("display","block")}),(function(){$("#"+i.pre+"accordion1 div").css("display","none")})),$("#"+i.pre+"accordion2").hover((function(){$("#"+i.pre+"accordion2 div").css("display","block")}),(function(){$("#"+i.pre+"accordion2 div").css("display","none")})),$("#"+i.pre+"accordion2b").hover((function(){$("#"+i.pre+"accordion2b div").css("display","block")}),(function(){$("#"+i.pre+"accordion2b div").css("display","none")})),$("#"+i.pre+"accordion3").hover((function(){$("#"+i.pre+"accordion3 div").css("display","block")}),(function(){$("#"+i.pre+"accordion3 div").css("display","none")})),$("#"+i.pre+"accordion4").hover((function(){$("#"+i.pre+"accordion4 div").css("display","block")}),(function(){$("#"+i.pre+"accordion4 div").css("display","none")})),$("#"+i.pre+"accordion5").hover((function(){$("#"+i.pre+"accordion5 div").css("display","block")}),(function(){$("#"+i.pre+"accordion5 div").css("display","none")})),$("#"+i.pre+"accordion6").hover((function(){$("#"+i.pre+"accordion6 div").css("display","block")}),(function(){$("#"+i.pre+"accordion6 div").css("display","none")}))}setTopMenusHtmlMobile(e,t,s){let i=this.icn3dui;if(i.bNode)return"";let n="black"==i.htmlCls.opts.background?i.htmlCls.GREYD:"black",l="";if(l+="
    ",l+=i.htmlCls.divStr+"popup' class='icn3d-text icn3d-popup'>
    ",l+=this.setReplayHtml(),!i.utilsCls.isMobile()){let e=i.htmlCls.WIDTH-40+5;l+=i.htmlCls.buttonStr+"fullscreen' style='position:absolute; z-index:1999; display:block; padding:0px; margin: 12px 0px 0px "+e+"px; width:30px; height:34px; border-radius:4px; border:none; background-color:#f6f6f6;' title='Full screen'>",l+="",l+="",l+="",l+="",l+=""}l+="\x3c!--https://forum.jquery.com/topic/looking-for-a-jquery-horizontal-menu-bar--\x3e",l+=i.htmlCls.divStr+"mnlist' style='position:absolute; z-index:999; float:left; display:block; margin: 5px 0px 0px 5px;'>",l+="
    ",l+="",i.cfg.notebook?l+="

    ":l+="

    ",l+="
    ";let r="
  • File",l+=this.setMenu1_base(),l+=r+">Select",l+=this.setMenu2_base(),l+=r+">View",l+=this.setMenu2b_base(),l+=r+" id='"+i.pre+"style'>Style",l+=this.setMenu3_base(),l+=r+" id='"+i.pre+"color'>Color",l+=this.setMenu4_base(),l+=r+">Analysis",l+=this.setMenu5_base(),l+=r+">Help",l+=this.setMenu6_base(),i.htmlCls.shownMenus=i.hashUtilsCls.cloneHash(i.htmlCls.simpleMenus),l+="
  • "+t,l+="
    "+s,l+="
  • Alternate",l+="",l+="
  • ",l+="
    ",l+="
    ",l+="",l+=i.htmlCls.divStr+"title' class='icn3d-commandTitle' style='font-size:1.2em; font-weight:normal; position:absolute; z-index:1; float:left; display:block; margin: 12px 0px 0px 40px; color:"+n+"; width:"+(i.htmlCls.WIDTH-40).toString()+"px'>",l+=i.htmlCls.divStr+"viewer' style='position:relative; width:100%; height:100%; background-color: "+i.htmlCls.GREYD+";'>",l+=i.htmlCls.divStr+"mnLogSection'>",l+="
    ",l+="",void 0===i.cfg.mmtfid){let e="top:180px; font-size: 1.8em;";l+=i.htmlCls.divStr+"wait' style='position:absolute; left:50px; "+e+" color: #444444;'>Loading data..."}l+="Your browser does not support WebGL.",(void 0===i.cfg.showcommand||i.cfg.showcommand)&&(l+=this.setLogWindow()),l+="",l+="",l+=i.htmlCls.setDialogCls.setDialogs(),l+=i.htmlCls.setDialogCls.setCustomDialogs(),$("#"+e).html(l),$("accordion").accordion({collapsible:!0,active:!1,heightStyle:"content"}),$("accordion div").removeClass("ui-accordion-content ui-corner-all ui-corner-bottom ui-widget-content"),$(".icn3d-mn-item").menu({position:{my:"left top",at:"right top"}}),$(".icn3d-mn-item").hover((function(){}),(function(){$("accordion").accordion("option","active","none")})),$("#"+i.pre+"accordion0").hover((function(){$("#"+i.pre+"accordion0 div").css("display","block")}),(function(){$("#"+i.pre+"accordion0 div").css("display","none")}))}setReplayHtml(e){let t=this.icn3dui;if(t.bNode)return"";let s="";return s+=t.htmlCls.divStr+"replay' style='display:none; position:absolute; z-index:9999; top:"+parseInt(t.htmlCls.HEIGHT-100).toString()+"px; left:20px;'>",s+="
    ",s+='',s+="",s+='',s+='',s+="",s+="
    ",s+=t.htmlCls.divStr+"replay_menu' style='background-color:#DDDDDD; padding:3px; font-weight:bold;'>",s+=t.htmlCls.divStr+"replay_cmd' style='background-color:#DDDDDD; padding:3px; max-width:250px'>",s+="",s}setTools(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+=e.htmlCls.divStr+"selection' style='display:none;'>
    ",t+="",t+=this.setTools_base(),t+="
    ",t+="
    ",t}setButton(e,t,s,i,n){let l=this.icn3dui;return l.bNode?"":(n=void 0!==n?"color:"+n:"","
    ")}setIcon(e,t,s,i,n,l,r){let o=this.icn3dui;if(o.bNode)return"";let a,d=r?"color:#f8b84e; ":"color:#1c94c4; ",c=" background-color:#EEE; ",h="text"==e?"":"cursor:pointer;";return a=l?'
    '+i+"
    ":'',"link"==e?''+a+"":a}setTools_base(){if(this.icn3dui.bNode)return"";let e="",t="regular",s="",i="";return e+=s+this.setIcon(t,"tool_mmdbafid","Input PDB/MMDB/AlphaFold IDs","id",void 0,!0)+"",e+=s+this.setIcon(t,"tool_pdbfile","Input PDB Files (appendable)","file-alt")+"",e+=s+this.setIcon(t,"tool_sharelink","Get Share Link","link")+"",e+=s+this.setIcon(t,"saveimage","Save iCn3D PNG Image","camera")+"",e+=i+this.setIcon(t,"tool_definedsets","Defined Sets","object-group")+"",e+=s+this.setIcon(t,"tool_aroundsphere","Select by Distance","dot-circle")+"",e+=s+this.setIcon(t,"tool_saveselection","Save Selection as a Set","save")+"",e+=s+this.setIcon(t,"toggleHighlight","Toggle Highlight","highlighter")+"",e+=i+this.setIcon(t,"show_selected","View Selection","eye")+"",e+=s+this.setIcon(t,"tool_selectedcenter","Zoom in Selection","search-plus")+"",e+=s+this.setIcon(t,"alternate","Alternate the Structures by keying the letter 'a'","a",void 0,!0,!0)+"",e+=s+this.setIcon(t,"tool_resetOrientation","Reset Orientation","undo-alt")+"",e+=i+this.setIcon(t,"tool_proteinsRibbon","Style Ribbon for proteins","dna")+"",e+=s+this.setIcon(t,"tool_proteinsSphere","Style Sphere for proteins","volleyball-ball")+"",e+=s+this.setIcon(t,"tool_surfaceVDW","Show Van der Waals Surface","cloud")+"",e+=s+this.setIcon(t,"tool_bkgd","Toggle Background Color","adjust")+"",e+=i+this.setIcon(t,"tool_clrRainbowChain","Color Rainbow for Chains","rainbow")+"",e+=s+this.setIcon(t,"tool_clrSSGreen","Color by Secondary Structures","ring")+"",e+=s+this.setIcon(t,"tool_clrChain","Color by Chains","layer-group")+"",e+=s+this.setIcon(t,"tool_clrAtom","Color by Atoms","atom")+"",e+=i+this.setIcon(t,"tool_selectannotations","Sequences & Annotations","grip-lines")+"",e+=s+this.setIcon(t,"hbondsYes","Interactions","users")+"",e+=s+this.setIcon(t,"tool_delphi","Delphi Potentials","cloud-meatball")+"",e+=s+this.setIcon(t,"removeLabels","Remove Labels","remove-format")+"",e+=i+this.setIcon("link","tool-gallery","Gallery","image","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#gallery")+"",e+=s+this.setIcon("link","tool-video","Videos","file-video","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#videos")+"",e+=s+this.setIcon("link","tool-github","iCn3D GitHub","code","https://github.com/ncbi/icn3d")+"",e+=s+this.setIcon("link","tool-hints","Transform Hints","info-circle","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#useicn3d")+"",e+="",e}setTheme(e){let t,s,i,n,l,r=this.icn3dui;if(r.bNode)return"";r.htmlCls.themecolor=e,"orange"==e?(t="#e78f08",s="#f6a828",i="ui-bg_gloss-wave_35_f6a828_500x100.png",n="ui-icons_ef8c08_256x240.png",l="#eb8f00"):"black"==e?(t="#333333",s="#333333",i="ui-bg_gloss-wave_25_333333_500x100.png",n="ui-icons_222222_256x240.png",l="#222222"):"blue"==e&&(t="#4297d7",s="#5c9ccc",i="ui-bg_gloss-wave_55_5c9ccc_500x100.png",n="ui-icons_228ef1_256x240.png",l="#444"),$(".ui-widget-header").css({border:"1px solid "+t,background:s+' url("https://www.ncbi.nlm.nih.gov/Structure/icn3d/lib/images/'+i+'") 50% 50% repeat-x',color:"#fff","font-weight":"bold"}),$(".ui-button .ui-icon").css({"background-image":"url(https://www.ncbi.nlm.nih.gov/Structure/icn3d/lib/images/"+n+")"}),$(".ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited").css({color:l,"text-decoration":"none"})}setLogWindow(e,t){let s=this.icn3dui;if(s.bNode)return"";let i,n="",l=s.htmlCls.setHtmlCls.getCookie("cmdwindow");return""!=l?(i=void 0!==t?t:parseInt(l),1==i?(s.htmlCls.LOG_HEIGHT=180,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+=""):(s.htmlCls.LOG_HEIGHT=65,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+="")):(i=0,s.htmlCls.LOG_HEIGHT=65,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+=""),e||(n+=""),e&&(s.htmlCls.clickMenuCls.setLogCmd("set cmdwindow "+i,!0),$("#"+s.pre+"cmdlog").html(n)),n}setMenu1(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    File

    ",t+="
    ",t+=this.setMenu1_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu1_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuText("mn1_searchgrooup","Search Structure "+e.htmlCls.wifiStr,void 0,1,1),t+="
        ",t+=this.getMenuUrl("mn1_searchstru","https://www.ncbi.nlm.nih.gov/structure","PDB Structures "+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_proteinname","AlphaFold Structures "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("mn1_afdatabase","https://alphafold.ebi.ac.uk","AlphaFold UniProt Database "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_searchsimilar","Search Similar"+e.htmlCls.wifiStr,void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_vastplus","NCBI VAST+ (PDB Complex)"+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_vast","NCBI VAST (PDB Chain)"+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_foldseek","Foldseek (PDB & AlphaFold)"+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_retrievebyid","Retrieve by ID",void 0,1,1),t+="
        ",t+=this.getLink("mn1_mmdbafid","PDB/MMDB/AlphaFold IDs"+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_mmdbid","NCBI MMDB ID (annotation) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_mmtfid","RCSB BCIF/MMTF ID (fast) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_pdbid","RCSB PDB ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getMenuText("mn1_afwrap","AlphaFold Structures",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_afid","UniProt ID "+e.htmlCls.wifiStr,void 0,3),t+=this.getLink("mn1_refseqid","NCBI Protein Accession "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+=this.getLink("mn1_opmid","OPM PDB ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_mmcifid","RCSB mmCIF ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_cid","PubChem CID/Name/InchI "+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_smiles","Chemical SMILES ",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_openfile","Open File",void 0,1,1),t+="
        ",t+=this.getLink("mn1_pdbfile_app","PDB Files (appendable)",1,2),t+=this.getLink("mn1_mmciffile","mmCIF Files (appendable)",void 0,2),t+=this.getLink("mn1_mol2file","Mol2 File",void 0,2),t+=this.getLink("mn1_sdffile","SDF File",void 0,2),t+=this.getLink("mn1_xyzfile","XYZ File",void 0,2),t+=this.getLink("mn1_afmapfile","AlphaFold PAE File",void 0,2),t+=this.getLink("mn1_urlfile","URL(CORS) "+e.htmlCls.wifiStr,void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_pngimage","iCn3D PNG (appendable)",1,2),t+=this.getLink("mn1_state","State/Script File",void 0,2),t+=this.getLink("mn1_fixedversion","Share Link in Archived Ver. "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_selection","Selection File",void 0,2),t+=this.getLink("mn1_collection","Collection File",void 0,2),t+=this.getMenuSep(),t+=this.getMenuText("mn1_dsn6wrap","Electron Density",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_dsn6","Local File",void 0,3),t+=this.getLink("mn1_dsn6url","URL(CORS) "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+="

      • ",t+="
      ",t+="",t+=this.getMenuText("mn1_fold","Predict by Seq.",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_esmfold","ESMFold",void 0,2),t+=this.getLink("mn1_alphafold","AlphaFold2 via ColabFold"+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=this.getMenuText("mn1_alignwrap","Align",void 0,1,1),t+="
        ",t+=this.getMenuText("mn1_chainalignwrap","Multiple Chains",void 0,1,2),t+="
          ",t+=this.getRadio("mn1_chainalignRad","mn1_chainalign","by Structure Alignment "+e.htmlCls.wifiStr,void 0,1,3),t+=this.getRadio("mn1_chainalignRad","mn1_chainalign2","by Sequence Alignment "+e.htmlCls.wifiStr,void 0,1,3),t+=this.getRadio("mn1_chainalignRad","mn1_chainalign3","Residue by Residue",void 0,void 0,3),t+="
        ",t+="",t+=this.getMenuText("mn1_aligntwostru","Protein Complexes",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_align","Two PDB Structures "+e.htmlCls.wifiStr,void 0,3),t+=this.getLink("mn1_alignaf","Two AlphaFold Structures "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+=this.getLink("mn1_blast_rep_id","Sequence to Structure",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_realignWrap","Realign Selection",void 0,void 0,1),t+="
        ",t+=this.getMenuText("mn2_chainrealignwrap","Multiple Chains",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn2_realign","mn2_realignonstruct","by Structure Alignment "+e.htmlCls.wifiStr,void 0,void 0,3),t+=this.getRadio("mn2_realign","mn2_realignonseqalign","by Sequence Alignment "+e.htmlCls.wifiStr,void 0,void 0,3),t+=this.getRadio("mn2_realign","mn2_realignresbyres","Residue by Residue",void 0,void 0,3),t+="
        ",t+=this.getLink("mn2_realigntwostru","Protein Complexes",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_3dpprint","3D Printing",void 0,1,1),t+="
        ",void 0===e.cfg.cid?(t+=this.getLink("mn1_exportVrmlStab","WRL/VRML(Color, W/ Stab.)",1,2),t+=this.getLink("mn1_exportStlStab","STL(W/ Stabilizers)",1,2),t+=this.getMenuSep(),t+=this.getLink("mn1_exportVrml","WRL/VRML(Color)",void 0,2),t+=this.getLink("mn1_exportStl","STL",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_stabilizerYes","Add All Stabilizers",void 0,2),t+=this.getLink("mn1_stabilizerNo","Remove All Stabilizers",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_stabilizerOne","Add One Stabilizer",void 0,2),t+=this.getLink("mn1_stabilizerRmOne","Remove One Stabilizer",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_thicknessSet","Set Thickness",void 0,2)):(t+=this.getLink("mn1_exportVrml","VRML(Color)",1,2),t+=this.getLink("mn1_exportStl","STL",1,2)),t+="
      ",t+="",t+=this.getMenuText("mn1_savefile","Save File",void 0,1,1),t+="
        ",t+=this.getMenuText("mn1_savepngimage","iCn3D PNG Image",void 0,1,2),t+="
          ",t+=this.getLink("mn1_exportCanvas","Original Size & HTML",1,3),t+=this.getLink("mn1_exportCanvas1","Original Size",void 0,3),t+=this.getLink("mn1_exportCanvas2","2X Large",void 0,3),t+=this.getLink("mn1_exportCanvas4","4X Large",void 0,3),t+=this.getLink("mn1_exportCanvas8","8X Large",void 0,3),t+="
        ",t+="",t+=this.getLink("mn1_exportState","State File",void 0,2),t+=this.getLink("mn1_exportSelections","Selection File",void 0,2),t+=this.getLink("mn1_exportSelDetails","Selection Details",void 0,2),t+=this.getLink("mn1_exportCounts","Residue Counts",void 0,2),t+=this.getLink("mn1_exportPdbRes","PDB",1,2),t+=this.getLink("profixpdb","PDB with Missing Atoms",void 0,2),void 0===e.cfg.cid&&(t+=this.getLink("mn1_exportSecondary","Secondary Structure",void 0,2)),t+=this.getMenuText("m1_exportrefnum","Reference Numbers",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_exportIgstrand","Ig Strand",void 0,3),t+=this.getLink("mn1_exportKabat","Kabat",void 0,3),t+=this.getLink("mn1_exportImgt","IMGT",void 0,3),t+="
        ",t+="

      • ",t+="
      ",t+="",t+=this.getLink("mn1_sharelink","Share Link "+e.htmlCls.wifiStr,1,1),t+=this.getLink("mn1_replayon","Replay Each Step",void 0,1),t+=this.getMenuSep(),t+=this.getMenuText("mn1_menuwrap","Customize Menus",void 0,1,1),t+="
        ",t+=this.getLink("mn1_menuall","All Menus",1,2),t+=this.getLink("mn1_menusimple","Simple Menus",1,2),t+=this.getMenuSep(),t+=this.getLink("mn1_menupref","Preferences",1,2),t+=this.getLink("mn1_menuloadpref","Load Preferences",1,2),t+="
      ",t+="",t+="

    • ",t+="
    ",t}setMenu2(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Select

    ",t+="
    ",t+=this.setMenu2_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu2_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getLink("mn2_definedsets","Defined Sets",1,1),t+=this.getLink("mn2_selectall","All",void 0,1),t+=this.getLink("mn2_selectdisplayed","Displayed Set",void 0,1),t+=this.getLink("mn2_aroundsphere","by Distance",1,1),t+=this.getMenuText("mn2_selbyprop","by Property",void 0,void 0,1),t+="
        ",t+=this.getLink("mn2_propPos","Positive",void 0,2),t+=this.getLink("mn2_propNeg","Negative",void 0,2),t+=this.getLink("mn2_propHydro","Hydrophobic",void 0,2),t+=this.getLink("mn2_propPolar","Polar",void 0,2),t+=this.getLink("mn2_propBfactor","B-factor/pLDDT",void 0,2),t+=this.getLink("mn2_propSolAcc","Solvent Accessibility",void 0,2),t+="
      ",t+="",t+=this.getLink("mn2_selectcomplement","Inverse",void 0,1),t+=this.getLink("mn2_selectmainchains","Main Chains",void 0,1),t+=this.getLink("mn2_selectsidechains","Side Chains",void 0,1),t+=this.getLink("mn2_selectmainsidechains","Main & Side Chains",void 0,1),t+=this.getLink("mn2_command","Advanced",void 0,1),void 0===e.cfg.cid?(t+=this.getMenuText("mn2_selon3d","Select on 3D",void 0,1,1),t+="
        ",t+='
      • "Alt"+Click: start selection
      • ',t+='
      • "Ctrl"+Click: union selection
      • ',t+='
      • "Shift"+Click: range Selection
      • ',t+=this.getMenuSep(),t+=this.getRadio("mn2_pk","mn2_pkChain","Chain",void 0,1,2),void 0===e.cfg.mmdbid&&void 0===e.cfg.gi||(t+=this.getRadio("mn2_pk","mn2_pkDomain","3D Domain",void 0,void 0,2)),t+=this.getRadio("mn2_pk","mn2_pkStrand","Strand/Helix",void 0,void 0,2),t+=this.getRadio("mn2_pk","mn2_pkResidue","Residue",!0,1,2),t+=this.getRadio("mn2_pk","mn2_pkYes","Atom",void 0,1,2),t+=this.getRadio("mn2_pk","mn2_pkNo","None",void 0,void 0,2),t+="
      ",t+=""):e.utilsCls.isMobile()?t+="
    • Touch to pick
    • ":t+='
    • Picking with
      "Alt" + Click
    • ',t+=this.getMenuSep(),t+=this.getLink("mn2_saveselection","Save Selection",1,1),t+=this.getLink("clearall","Clear Selection",void 0,1),t+=this.getLink("mn2_saveresidue","Save Res. in Sel.",1,1),t+=this.getMenuSep(),t+=this.getMenuText("mn2_hlcolor","Highlight Color",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_hl_clr","mn2_hl_clrYellow","Yellow",!0,void 0,2),t+=this.getRadio("mn2_hl_clr","mn2_hl_clrGreen","Green",void 0,void 0,2),t+=this.getRadio("mn2_hl_clr","mn2_hl_clrRed","Red",void 0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_hlstyle","Highlight Style",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_hl_style","mn2_hl_styleOutline","Outline",!0,void 0,2),t+=this.getRadio("mn2_hl_style","mn2_hl_styleObject","3D Objects",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("toggleHighlight2","Toggle Highlight",1,1),t+="

    • ",t+="
    ",t}setMenu2b(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    View

    ",t+="
    ",t+=this.setMenu2b_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu2b_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getLink("mn2_show_selected","View Selection",1,1),t+=this.getLink("mn2_hide_selected","Hide Selection",1,1),t+=this.getLink("mn2_selectedcenter","Zoom in Selection",1,1),t+=this.getLink("mn6_center","Center Selection",1,1),t+=this.getLink("mn2_fullstru","View Full Structure"),t+=this.getLinkWrapper("mn2_alternate",'Alternate(Key "a")',"mn2_alternateWrap",void 0,1),void 0!==e.cfg.opmid?t+=this.getLinkWrapper("togglemem","Toggle Membrane","togglememli",void 0,1):void 0===e.cfg.cid&&(t+=this.getLinkWrapper("togglemem","Toggle Membrane","togglememli",void 0,1,!0)),void 0!==e.cfg.opmid&&(t+=this.getLinkWrapper("adjustmem","Adjust Membrane","adjustmemli",void 0,1),t+=this.getLinkWrapper("selectplane","Select between
      Two X-Y Planes","selectplaneli",void 0,1)),t+=this.getMenuSep(),t+=this.getMenuText("mn2_vrarhints","VR & AR Hints",void 0,1,1),t+="
        ",t+=this.getMenuUrl("vrhint",e.htmlCls.baseUrl+"icn3d/icn3d.html#vr","VR: VR Headsets",1,2),t+=this.getMenuUrl("arhint",e.htmlCls.baseUrl+"icn3d/icn3d.html#ar","AR: Chrome in Android",1,2),t+="
      ",t+="",t+=this.getLink("mn6_sidebyside","Side by Side",1,1),t+=this.getMenuText("mn2_rotate","Rotate",void 0,1,1),t+="
        ",t+=this.getMenuText("mn2_rotate90","Rotate 90°",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn6_rotate90","mn6_rotatex","rotate x",void 0,void 0,2),t+=this.getRadio("mn6_rotate90","mn6_rotatey","rotate y",void 0,void 0,2),t+=this.getRadio("mn6_rotate90","mn6_rotatez","rotate z",void 0,void 0,2),t+="
        ",t+="",t+=this.getMenuText("mn2_rotateauto","Auto Rotation",void 0,1,2),t+="
          ",t+=this.getRadio("mn6_rotate","mn6_rotateleft","Rotate Left",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotateright","Rotate Right",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotateup","Rotate Up",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotatedown","Rotate Down",void 0,1,3),t+="
        ",t+="",t+="
      ",t+="",t+=this.getLink("mn2_translate","Translate XYZ",void 0,1),t+=this.getLink("mn2_matrix","Rotate with Matrix",void 0,1),t+=this.getMenuText("mn2_camera","Camera",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_camera","mn6_cameraPers","Perspective",!0,void 0,2),t+=this.getRadio("mn6_camera","mn6_cameraOrth","Orthographic",void 0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_fog","Fog for Selection",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showfog","mn6_showfogYes","On",void 0,void 0,2),t+=this.getRadio("mn6_showfog","mn6_showfogNo","Off",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_slab","Slab for Selection",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showslab","mn6_showslabYes","On",void 0,void 0,2),t+=this.getRadio("mn6_showslab","mn6_showslabNo","Off",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_axes","XYZ-axes",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showaxis","mn6_showaxisYes","Original",void 0,void 0,2),t+=this.getRadio("mn6_showaxis","mn6_showaxisSel","Prin. Axes on Sel.",void 0,void 0,2),t+=this.getRadio("mn6_showaxis","mn6_showaxisNo","Hide",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuSep(),t+=this.getMenuText("mn2_resetwrap","Reset",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_reset","reset","All",void 0,1,2),t+=this.getRadio("mn6_reset","mn6_resetOrientation","Orientation",void 0,1,2),t+="
      ",t+="",t+=this.getLink("mn6_back","Undo",void 0,1),t+=this.getLink("mn6_forward","Redo",void 0,1),t+=this.getLink("mn6_fullscreen","Full Screen",void 0,1),t+="

    • ",t+="
    ",t}setMenu3(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Style

    ",t+="
    ",t+=this.setMenu3_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu3_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";t+="
      ",void 0===e.cfg.cid&&(t+=this.getMenuText("mn3_proteinwrap","Proteins",void 0,1,1),t+="
        ",void 0!==e.cfg.align||void 0!==e.cfg.chainalign?t+=this.getRadio("mn3_proteins","mn3_proteinsRibbon","Ribbon",void 0,1,2):t+=this.getRadio("mn3_proteins","mn3_proteinsRibbon","Ribbon",!0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsStrand","Strand",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsCylinder","Cylinder and Plate",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsSchematic","Schematic",void 0,1,2),void 0!==e.cfg.align||void 0!==e.cfg.chainalign?t+=this.getRadio("mn3_proteins","mn3_proteinsCalpha","C Alpha Trace",!0,1,2):t+=this.getRadio("mn3_proteins","mn3_proteinsCalpha","C Alpha Trace",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBackbone","Backbone",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBfactor","B-factor Tube",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsLines","Lines",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsStick","Stick",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_sidecwrap","Side Chains",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_sidec","mn3_sidecLines","Lines",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecStick","Stick",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecNo","Hide",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_nuclwrap","Nucleotides",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_nucl","mn3_nuclCartoon","Cartoon",!0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclPhos","O3' Trace",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclBackbone","Backbone",void 0,void 0,2),t+=this.getRadio("mn3_nucl","mn3_nuclSchematic","Schematic",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclLines","Lines",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclStick","Stick",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_ntbasewrap","Nucl. Bases",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_ntbase","mn3_ntbaseLines","Lines",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseStick","Stick",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseNo","Hide",!0,1,2),t+="
      ",t+=""),t+=this.getMenuText("mn3_ligwrap","Chemicals",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_lig","mn3_ligLines","Lines",void 0,1,2),void 0===e.cfg.cid?(t+=this.getRadio("mn3_lig","mn3_ligStick","Stick",!0,1,2),t+=this.getRadio("mn3_lig","mn3_ligBallstick","Ball and Stick",void 0,1,2)):(t+=this.getRadio("mn3_lig","mn3_ligStick","Stick",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligBallstick","BalHydrogensl and Stick",!0,1,2)),t+=this.getRadio("mn3_lig","mn3_ligSchematic","Schematic",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_hydrogenswrap","Hydrogens",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_hydrogens","mn3_hydrogensYes","Show",!0,1,2),t+=this.getRadio("mn3_hydrogens","mn3_hydrogensNo","Hide",void 0,1,2),t+="
      ",t+="",void 0===e.cfg.cid&&(t+=this.getMenuText("mn3_glycanwrap","Glycans",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn3_glycansCart","mn3_glycansCartYes","Show Cartoon",void 0,void 0,2),t+=this.getRadio("mn3_glycansCart","mn3_glycansCartNo","Hide Cartoon",!0,void 0,2),t+="
      ",t+=""),t+=this.getMenuText("mn3_ionswrap","Ions",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_ions","mn3_ionsSphere","Sphere",!0,1,2),t+=this.getRadio("mn3_ions","mn3_ionsDot","Dot",void 0,1,2),t+=this.getRadio("mn3_ions","mn3_ionsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_waterwrap","Water",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_water","mn3_waterSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_water","mn3_waterDot","Dot",void 0,1,2),t+=this.getRadio("mn3_water","mn3_waterNo","Hide",!0,1,2),t+="
      ",t+="",void 0===e.cfg.cid&&(t+=this.getMenuText("mn2_clashedwrap","Clashed Residues",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_clashed","mn2_clashedYes","Show",!0,void 0,2),t+=this.getRadio("mn2_clashed","mn2_clashedNo","Hide",void 0,void 0,2),t+="
      ",t+=""),t+=this.getLink("mn3_setThickness","Preferences",void 0,1),t+=this.getMenuSep(),t+=this.getLink("mn3_styleSave","Save Style",void 0,2),t+=this.getLink("mn3_styleApplySave","Apply Saved Style",void 0,2),t+=this.getMenuSep(),t+=this.getMenuText("mn5_surfacewrap","Surface Type",void 0,1,1),t+="
        ",t+=this.getRadio("mn5_surface","mn5_surfaceVDW","Van der Waals",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceVDWContext","VDW with Context",void 0,void 0,2),t+=this.getRadio("mn5_surface","mn5_surfaceMolecular","Molecular Surface",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceMolecularContext","MS with Context",void 0,void 0,2),t+=this.getRadio("mn5_surface","mn5_surfaceSAS","Solvent Accessible",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceSASContext","SA with Context",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn5_surfaceNo","Remove Surface",1,1),t+=this.getMenuText("mn5_surfaceop","Surface Opacity",void 0,1,1),t+="
        ",t+=this.getMenuText("mn5_surfaceopfast","Fast Transparency",void 0,1,2),t+="
          ",t+=this.getRadio("mn5_opacity","mn5_opacity10","1.0",!0,1,3);for(let e=9;e>0;--e)t+=this.getRadio("mn5_opacity","mn5_opacity0"+e,"0."+e,1,3);t+="
        ",t+="",t+=this.getMenuText("mn5_surfaceopslow","Slow Transparency",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn5_opacityslow","mn5_opacityslow10","1.0",!0,void 0,3);for(let e=9;e>0;--e)t+=this.getRadio("mn5_opacityslow","mn5_opacityslow0"+e,"0."+e,void 0,void 0,3);return t+="
        ",t+="",t+="
      ",t+=this.getMenuText("mn5_wireframewrap","Surface Wireframe",void 0,1,1),t+="
        ",t+=this.getRadio("mn5_wireframe","mn5_wireframeYes","Yes",void 0,1,2),t+=this.getRadio("mn5_wireframe","mn5_wireframeNo","No",!0,1,2),t+="
      ",t+="",t+=this.getMenuSep(),t+=this.getLink("mn5_cartoonshape","Cartoon for a Set",void 0,1),t+=this.getLink("mn5_linebtwsets","Line btw. Two Sets",void 0,1),void 0===e.cfg.cid&&void 0===e.cfg.align&&void 0===e.cfg.chainalign&&void 0===e.cfg.mmdbaf&&(t+=this.getMenuSep(),t+=this.getLinkWrapper2("mn5_map","Electron Density","mapWrapper1",void 0,1),t+="
        ",t+=this.getLink("mn5_elecmap2fofc","2Fo-Fc Map",void 0,2),t+=this.getLink("mn5_elecmapfofc","Fo-Fc Map",void 0,2),t+=this.getLinkWrapper("mn5_elecmapNo","Remove Map","mapWrapper2",void 0,2),t+="
      ",t+="",t+=this.getLinkWrapper2("mn5_map3","Map Wireframe","mapWrapper3",void 0,1),t+="
        ",t+=this.getRadio("mn5_mapwireframe","mn5_mapwireframeYes","Yes",!0,void 0,2),t+=this.getRadio("mn5_mapwireframe","mn5_mapwireframeNo","No",void 0,void 0,2),t+="
      ",t+="",void 0===e.cfg.mmtfid&&(t+=this.getLinkWrapper("mn5_emmap","EM Density Map","emmapWrapper1",void 0,1),t+=this.getLinkWrapper("mn5_emmapNo","Remove EM Map","emmapWrapper2",void 0,1),t+=this.getLinkWrapper2("mn5_emmap3","EM Map Wireframe","emmapWrapper3",void 0,1),t+="
        ",t+=this.getRadio("mn5_emmapwireframe","mn5_emmapwireframeYes","Yes",!0,void 0,2),t+=this.getRadio("mn5_emmapwireframe","mn5_emmapwireframeNo","No",void 0,void 0,2),t+="
      ",t+="")),t+=this.getMenuSep(),t+=this.getMenuText("mn6_bkgdwrap","Background",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_bkgd","mn6_bkgdTransparent","Transparent",void 0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdBlack","Black",!0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdGrey","Gray",void 0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdWhite","White",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_themewrap","Dialog Color",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_theme","mn6_themeBlue","Blue",!0,void 0,2),t+=this.getRadio("mn6_theme","mn6_themeOrange","Orange",void 0,void 0,2),t+=this.getRadio("mn6_theme","mn6_themeBlack","Black",void 0,void 0,2),t+="
      ",t+="",t+="

    • ",t+="
    ",t}setMenu4(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Color

    ",t+="
    ",t+=this.setMenu4_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu4_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuText("mn4_clrwrap","Unicolor","icn3d-menupd",1,1),t+="
        ",t+=this.getMenuText("uniclrRedwrap","Red",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrRed1","Red","F00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed2","Indian Red","CD5C5C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed3","Light Coral","F08080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed4","Salmon","FA8072",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed5","Dark Salmon","E9967A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed6","Light Salmon","FFA07A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed7","Crimson","DC143C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed8","Fire Brick","B22222",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed9","Dark Red","8B0000",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrPinkwrap","Pink",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrPink1","Pink","FFC0CB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink2","Light Pink","FFB6C1",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink3","Hot Pink","FF69B4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink4","Deep Pink","FF1493",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink5","Medium Violet Red","C71585",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink6","Pale Violet Red","DB7093",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrOrangewrap","Orange",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrOran1","Orange","FFA500",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran2","Dark Orange","FF8C00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran3","Orange Red","FF4500",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran4","Tomato","FF6347",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran5","Coral","FF7F50",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran6","Light Salmon","FFA07A",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrYellowwrap","Yellow",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrYllw1","Yellow","FF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw2","Gold","FFD700",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw3","Light Yellow","FFFFE0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw4","Lemon Chiffon","FFFACD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw5","Light Golden Rod","FAFAD2",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw6","Papaya Whip","FFEFD5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw7","Moccasin","FFE4B5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw8","Peach Puff","FFDAB9",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw9","Pale Golden Rod","EEE8AA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw10","Khaki","F0E68C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw11","Dark Khaki","BDB76B",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrMagentawrap","Magenta",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrMgnt1","Magenta","F0F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt2","Orchid","DA70D6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt3","Violet","EE82EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt4","Plum","DDA0DD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt5","Thistle","D8BFD8",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt6","Lavender","E6E6FA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt7","Medium Orchid","BA55D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt8","Medium Purple","9370DB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt9","Rebecca Purple","663399",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt10","Blue Violet","8A2BE2",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt11","Dark Violet","9400D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt12","Dark Orchid","9932CC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt13","Dark Magenta","8B008B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt14","Purple","800080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt15","Indigo","4B0082",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt16","Slat Blue","6A5ACD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt17","Dark Slate Blue","483D8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt18","Medium Slat Blue","6A5ACD",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrGreenwrap","Green",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrGrn1","Green","0F0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn2","Dark Green","006400",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn3","Yellow Green","9ACD32",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn4","Olive Drab","6B8E23",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn5","Olive","808000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn6","Dark Olive Green","556B2F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn7","Medium Aquamarine","66CDAA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn8","Dark Sea Green","8FBC8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn9","Lignt Sea Green","20B2AA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn10","Dark Cyan","008B8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn11","Teal","008080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn12","Forest Green","228B22",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn13","Sea Green","2E8B57",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn14","Medium Sea Green","3CB371",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn15","Spring Green","00FF7F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn16","Medium Spring","00FA9A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn17","Light Green","90EE90",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn18","Pale Green","98FB98",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn19","Lime Green","32CD32",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn20","Lawn Green","7CFC00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn21","Chartreuse","7FFF00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn22","Green Yellow","ADFF2F",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrCyanwrap","Cyan",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrCyan1","Cyan","0FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan2","Light Cyan","E0FFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan3","Pale Turquoise","AFEEEE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan4","Aquamarine","7FFFD4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan5","Turquoise","40E0D0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan6","Medium Turquoise","48D1CC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan7","Dark Turquoise","00CED1",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrBluewrap","Blue",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrBlue1","Blue","00F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue2","Medium Blue","0000CD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue3","Dark Blue","00008B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue4","Navy","000080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue5","Midnight Blue","191970",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue6","Royal Blue","4169E1",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue7","Medium Slate Blue","7B68EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue8","Corn Flower Blue","6495ED",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue9","Dodger Blue","1E90FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue10","Deep Sky Blue","00BFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue11","Light Sky Blue","87CEFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue12","Sky Blue","87CEEB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue13","Light Blue","ADD8E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue14","Powder Blue","B0E0E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue15","Light Steel Blue","B0C4DE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue16","Steel Blue","4682B4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue17","Cadet Blue","5F9EA0",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrBrownwrap","Brown",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrBrown1","Brown","A52A2A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown2","Maroon","800000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown3","Sienna","A0522D",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown4","Saddle Brown","8B4513",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown5","Chocolate","D2691E",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown6","Peru","CD853F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown7","Dark Golden Rod","B8860B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown8","Golden Rod","DAA520",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown9","Sandy Brown","F4A460",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown10","Rosy Brown","BC8F8F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown11","Tan","D2B48C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown12","Burlywood","DEB887",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown13","Wheat","F5DEB3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown14","Navajo White","FFDEAD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown15","Bisque","FFE4C4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown16","Blanched Almond","FFEBCD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown17","Corn Silk","FFF8DC",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrWhitewrap","White",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrWhite1","White","FFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite2","Snow","FFFAFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite3","Honey Dew","F0FFF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite4","Mint Cream","F5FFFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite5","Azure","F0FFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite6","Alice Blue","F0F8FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite7","Ghost White","F8F8FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite8","White Smoke","F5F5F5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite9","Sea Shell","FFF5EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite10","Beige","F5F5DC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite11","Old Lace","FDF5E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite12","Floral White","FFFAF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite13","Ivory","FFFFF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite14","Antique White","FAEBD7",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite15","Linen","FAF0E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite16","Lavenderblush","FFF0F5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite17","Misty Rose","FFE4E1",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrGraywrap","Gray",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrGray1","Gray","808080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray2","Dim Gray","696969",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray3","Light Slate Gray","778899",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray4","Slate Gray","708090",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray5","Dark Slate Gray","2F4F4F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray6","Black","000000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray7","Dark Gray","A9A9A9",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray8","Silver","C0C0C0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray9","Light Gray","D3D3D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray10","Gainsboro","DCDCDC",void 0,1,3),t+="
        ",t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrCustom","Color Picker",void 0,void 0,1),t+=this.getMenuSep(),void 0===e.cfg.cid?(t+=this.getMenuText("mn4_clrRainbowwrap","Rainbow (R-V)","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrRainbow","for Selection",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowChain","for Chains",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowSets","for Sets",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowAcrossSets","across Sets",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrSpectrumwrap","Spectrum (V-R)","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrSpectrum","for Selection",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumChain","for Chains",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumSets","for Sets",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumAcrossSets","across Sets",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrSSwrap","Secondary","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrSSGreen","Sheet in Green",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSSYellow","Sheet in Yellow",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSSSpectrum","Spectrum",void 0,void 0,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrCharge","Charge",void 0,1,1),t+=this.getMenuText("mn4_hydrophobicwrap","Hydrophobicity","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrNormalizedHP","Normalized",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrHydrophobic","Wimley-White",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrBfactorwrap","B-factor","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrBfactor","Original",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrBfactorNorm","Percentile",void 0,1,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrArea",'Solvent
      Accessibility',void 0,void 0,1),t+=this.getRadio("mn4_clr","mn4_clrStructure","Structure",void 0,1,1),void 0!==e.cfg.align||void 0!==e.cfg.chainalign||void 0!==e.cfg.blast_rep_id?t+=this.getRadio("mn4_clr","mn4_clrChain","Chain",void 0,1,1):t+=this.getRadio("mn4_clr","mn4_clrChain","Chain",!0,1,1),t+=this.getRadio("mn4_clr","mn4_clrdomain","3D Domain",void 0,void 0,1),void 0===e.cfg.cid&&(t+=this.getMenuText("mn4_clrsetswrap","Defined Sets","icn3d-menupd",void 0,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrsets",'Rainbow for Selected Sets
        in "Analysis > Defined Sets"',void 0,void 0,2),t+="
      ",t+=""),t+=this.getMenuText("mn4_clrResiduewrap","Residue","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrResidue","Default",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrResidueCustom","Custom",void 0,void 0,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrAtom","Atom",void 0,1,1),void 0!==e.cfg.align||void 0!==e.cfg.chainalign?(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",!0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",void 0,void 0,2)):void 0!==e.cfg.blast_rep_id?(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",!0,void 0,2)):(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",void 0,void 0,2)),t+=this.getRadio("mn4_clr","mn4_clrConfidence","pLDDT",void 0,1,1),t+=this.getRadio("mn4_clr","mn4_clrIgstrand","Ig Strand",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrIgproto","Ig Protodomain",void 0,void 0,2)):t+=this.getRadio("mn4_clr","mn4_clrAtom","Atom",!0,1,1),t+=this.getMenuSep(),t+=this.getLink("mn4_clrSave","Save Color",void 0,1),t+=this.getLink("mn4_clrApplySave","Apply Saved Color",void 0,1),t+="

    • ",t+="
    ",t}setMenu5(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

     Analysis

    ",t+="
    ",t+=this.setMenu5_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu5_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";t+="
      ",void 0===e.cfg.cid&&(t+=this.getLink("mn6_selectannotations","Seq. & Annotations "+e.htmlCls.wifiStr,1,1),t+=this.getLink("mn2_alignment","Aligned Seq. "+e.htmlCls.wifiStr,void 0,1),void 0===e.cfg.mmdbid&&void 0===e.cfg.gi&&void 0===e.cfg.blast_rep_id&&void 0===e.cfg.align&&void 0===e.cfg.chainalign||(t+=this.getLink("mn2_2ddgm","2D Diagram "+e.htmlCls.wifiStr,1,1)),t+=this.getMenuText("2dctnwrap","2D Cartoon",void 0,void 0,1),t+="
        ",t+=this.getLink("2dctn_chain","Chain Level",void 0,2),t+=this.getLink("2dctn_domain","Domain Level",void 0,2),t+=this.getLink("2dctn_secondary","Helix/Sheet Level",void 0,2),t+="
      ",t+="",t+=this.getLink("definedsets2","Defined Sets",1,1),t+=this.getMenuSep(),t+=this.getLink("mn6_hbondsYes","Interactions",1,1),t+=this.getMenuText("mn1_window","Bring to Front",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_window_table","Interaction Table",void 0,2),t+=this.getLink("mn1_window_linegraph","2D Interaction Network",void 0,2),t+=this.getLink("mn1_window_scatterplot","2D Interaction Map",void 0,2),t+=this.getLink("mn1_window_graph","2D Graph(Force-Directed)",void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_contactmap","Contact Map",void 0,1),t+=this.getLink("mn1_mutation","Mutation "+e.htmlCls.wifiStr,1,1)),e.cfg.hidelicense||(t+=this.getMenuText("mn1_delphiwrap","DelPhi Potential",void 0,1,1),t+="
        ",t+=this.getLink("mn1_delphi","DelPhi Potential "+e.htmlCls.licenseStr,1,2),t+=this.getMenuText("mn1_phiwrap","Load PQR/Phi",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_phi","Local PQR/Phi/Cube File",void 0,3),t+=this.getLink("mn1_phiurl","URL PQR/Phi/Cube File",void 0,3),t+="
        ",t+="",t+=this.getLink("delphipqr","Download PQR",void 0,2),t+="
      ",t+=""),t+=this.getMenuSep(),t+=this.getMenuText("mn6_distancewrap","Distance",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_distance","mn6_distanceYes","between Two Atoms",void 0,1,2),t+=this.getRadio("mn6_distance","mn6_distTwoSets","between Two Sets",void 0,void 0,2),t+=this.getRadio("mn6_distance","mn6_distManySets","among Many Sets",void 0,void 0,2),t+=this.getRadio("mn6_distance","mn6_distanceNo","Hide",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_anglewrap","Angle",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_angle","mn6_angleManySets","among Many Sets",void 0,1,2),t+=this.getRadio("mn6_angle","mn6_angleTwoSets","b/w Two Vectors",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_area","Surface Area",1,1),t+=this.getMenuText("mn6_addlabelwrap","Label",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_addlabel","mn6_addlabelYes","by Picking Atoms",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelSelection","per Selection",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelAtoms","per Atom",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelElements","per Atom Element",void 0,1,2),void 0===e.cfg.cid&&(t+=this.getRadio("mn6_addlabel","mn6_addlabelResidues","per Residue",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelResnum","per Residue & Number",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelRefnum","per Reference Number",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelIg","per Ig Domain",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelChains","per Chain",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelTermini","N- & C-Termini",void 0,1,2)),t+=this.getMenuSep(),t+=this.getRadio("mn6_addlabel","mn6_labelColor","Change Label Color",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelNo","Remove",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("labelscalewrap","Label Scale",void 0,1,1),t+="
        ";for(let e=1;e<=4;++e){let s=2*e;t+=this.getRadio("mn6_labelscale","mn6_labelscale0"+s,"0."+s,void 0,1,2)}for(let e=2;e<=10;++e){let s=(e/2).toFixed(1);t+=2==e?this.getRadio("mn6_labelscale","mn6_labelscale"+e+"0",s,!0,1,2):this.getRadio("mn6_labelscale","mn6_labelscale"+e+"0",s,void 0,1,2)}if(t+="
      ",t+="",t+=this.getMenuSep(),void 0===e.cfg.cid){t+=this.getMenuText("mn6_chemicalbindingwrap","Chem. Binding",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_chemicalbinding","mn6_chemicalbindingshow","Show",void 0,void 0,2),t+=this.getRadio("mn6_chemicalbinding","mn6_chemicalbindinghide","Hide",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn6_ssbondswrap","Disulfide Bonds",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_ssbonds","mn6_ssbondsYes","Show",!0,1,2),t+=this.getRadio("mn6_ssbonds","mn6_ssbondsExport","Export Pairs",void 0,void 0,2),t+=this.getRadio("mn6_ssbonds","mn6_ssbondsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_clbondswrap","Cross-Linkages",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_clbonds","mn6_clbondsYes","Show",!0,void 0,2),t+=this.getRadio("mn6_clbonds","mn6_clbondsExport","Export Pairs",void 0,void 0,2),t+=this.getRadio("mn6_clbonds","mn6_clbondsNo","Hide",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_DSSP","DSSP Secondary",void 0,1);let s=void 0!==e.cfg.mmtfid||void 0!==e.cfg.pdbid||void 0!==e.cfg.opmid||void 0!==e.cfg.mmcifid||void 0!==e.cfg.mmdbid||void 0!==e.cfg.mmdbafid||void 0!==e.cfg.gi||void 0!==e.cfg.blast_rep_id;s&&(t+=this.getMenuText("assemblyWrapper","Assembly",void 0,1,1),t+="
        ",e.cfg.bu?(t+=this.getRadio("mn6_assembly","mn6_assemblyYes","Biological Assembly",!0,1,2),t+=this.getRadio("mn6_assembly","mn6_assemblyNo","Asymmetric Unit",void 0,1,2)):(t+=this.getRadio("mn6_assembly","mn6_assemblyYes","Biological Assembly",void 0,1,2),t+=this.getRadio("mn6_assembly","mn6_assemblyNo","Asymmetric Unit",!0,1,2)),t+="
      ",t+=""),t+=this.getMenuText("mn6_symmetrywrap","Symmetry",void 0,void 0,1),t+="
        ",s&&(t+=this.getLink("mn6_symmetry","from PDB(precalculated) "+e.htmlCls.wifiStr,void 0,2)),t+=this.getLink("mn6_symd","from SymD(Dynamic) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn6_clear_sym","Clear SymD Symmetry",void 0,2),t+=this.getLink("mn6_axes_only","Show Axes Only",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn6_igrefwrap","Ref. Number",void 0,void 0,1),t+="
        ",t+=this.getLink("mn6_igrefYes","Show Ig for Selection",void 0,2),t+=this.getLink("mn6_igrefTpl","Ig w/ Specified Template",void 0,2),t+=this.getLink("mn6_alignrefTpl","Align w/ Specified Template",void 0,2),t+=this.getLink("mn6_igrefNo","Reset Ig Ref. Number",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn6_customref","Custom Ref. Number",void 0,2),t+="
      ",t+="",t+=this.getMenuSep()}return t+=this.getLink("mn6_yournote","Window Title",void 0,1),void 0!==e.cfg.cid?(t+=this.getMenuText("mn1_linkwrap","Links",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_link_structure","Compound Summary "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_vast","Similar Compounds "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_bind","Structures Bound "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=""):(t+=this.getMenuText("mn1_linkwrap","Links",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_link_structure","Structure Summary "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_vast","Similar Structures "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_pubmed","Literature "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_protein","Protein "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=""),t+="

    • ",t+="
    ",t}setMenu6(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Help

    ",t+="
    ",t+=this.setMenu6_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu6_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuUrl("abouticn3d",e.htmlCls.baseUrl+"icn3d/icn3d.html#about","About iCn3D "+e.REVISION+"",1,1),t+=this.getMenuUrl("gallery",e.htmlCls.baseUrl+"icn3d/icn3d.html#gallery","Live Gallery "+e.htmlCls.wifiStr,1,1),t+=this.getMenuUrl("video",e.htmlCls.baseUrl+"icn3d/icn3d.html#videos","Videos & Tutorials",1,1),t+=this.getMenuText("mn6_faq","FAQ",void 0,1,1),t+="
        ",t+=this.getMenuUrl("faq_viewstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#viewstru","View structure",1,2),t+=this.getMenuUrl("faq_tfstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#tfstru","Transform Structure",1,2),t+=this.getMenuUrl("faq_selsubset",e.htmlCls.baseUrl+"icn3d/icn3d.html#selsubset","Select Subsets",1,2),t+=this.getMenuUrl("faq_stylecolor",e.htmlCls.baseUrl+"icn3d/icn3d.html#changestylecolor","Change Style/Color",1,2),t+=this.getMenuUrl("faq_savework",e.htmlCls.baseUrl+"icn3d/icn3d.html#saveview","Save Work",1,2),t+=this.getMenuUrl("faq_showanno",e.htmlCls.baseUrl+"icn3d/icn3d.html#showanno","Show Annotations",1,2),t+=this.getMenuUrl("faq_exportanno",e.htmlCls.baseUrl+"icn3d/icn3d.html#exportanno","Export Annotations",1,2),t+=this.getMenuUrl("faq_interanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#interanalysis","Interaction Analysis",1,2),t+=this.getMenuUrl("faq_mutanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#mutationanalysis","Mutation Analysis",1,2),t+=this.getMenuUrl("faq_elecpot",e.htmlCls.baseUrl+"icn3d/icn3d.html#elecpot","Electrostatic Pot.",1,2),t+=this.getMenuUrl("faq_simipdb",e.htmlCls.baseUrl+"icn3d/icn3d.html#simivast","Similar PDB",1,2),t+=this.getMenuUrl("faq_simialphapdb",e.htmlCls.baseUrl+"icn3d/icn3d.html#simifoldseek","Similar AlphaFold/PDB",1,2),t+=this.getMenuUrl("faq_alnstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#alignmul","Align Multiple Structures",1,2),t+=this.getMenuUrl("faq_batchanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#batchanalysis","Batch Analysis",1,2),t+=this.getMenuUrl("faq_batchanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#igrefnum","Assign Ig Ref. Numbers",1,2),t+=this.getMenuUrl("faq_embedicn3d",e.htmlCls.baseUrl+"icn3d/icn3d.html#embedicn3d","Embed iCn3D",1,2),t+="
      ",t+="",t+=this.getMenuUrl("citing",e.htmlCls.baseUrl+"icn3d/icn3d.html#citing","Citing iCn3D",void 0,1),t+=this.getMenuText("mn6_source","Source Code",void 0,1,1),t+="
        ",t+=this.getMenuUrl("github","https://github.com/ncbi/icn3d","GitHub (browser) "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("npm","https://www.npmjs.com/package/icn3d","npm (Node.js) "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("notebook","https://pypi.org/project/icn3dpy","Jupyter Notebook "+e.htmlCls.wifiStr,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_develop","Develop",void 0,void 0,1),t+="
        ",t+=this.getMenuUrl("dev_embedicn3d2",e.htmlCls.baseUrl+"icn3d/icn3d.html#HowToUse","Embed iCn3D",void 0,2),t+=this.getMenuUrl("dev_urlpara",e.htmlCls.baseUrl+"icn3d/icn3d.html#parameters","URL Parameters",void 0,2),t+=this.getMenuUrl("dev_command",e.htmlCls.baseUrl+"icn3d/icn3d.html#commands","Commands",void 0,2),t+=this.getMenuUrl("dev_datastru",e.htmlCls.baseUrl+"icn3d/icn3d.html#datastructure","Data Structure",void 0,2),t+=this.getMenuUrl("dev_classstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#classstructure","Class Structure",void 0,2),t+=this.getMenuUrl("dev_addclass",e.htmlCls.baseUrl+"icn3d/icn3d.html#addclass","Add New Classes",void 0,2),t+=this.getMenuUrl("dev_modfunc",e.htmlCls.baseUrl+"icn3d/icn3d.html#modifyfunction","Modify Functions",void 0,2),t+=this.getMenuUrl("dev_restful",e.htmlCls.baseUrl+"icn3d/icn3d.html#restfulapi","RESTful APIs",void 0,2),t+=this.getMenuUrl("dev_contributor",e.htmlCls.baseUrl+"icn3d/icn3d.html#contributors","iCn3D Contributors",void 0,2),t+="
      ",t+="",t+=this.getMenuUrl("helpdoc",e.htmlCls.baseUrl+"icn3d/docs/icn3d_help.html","Help Doc "+e.htmlCls.wifiStr,1,1),t+=this.getMenuSep(),t+=this.getMenuText("mn6_tfhint","Transform Hints",void 0,1,1),t+="
        ",t+=this.getMenuText("mn6_rotate","Rotate",void 0,1,2),t+="
          ",t+="
        • Left Mouse (Click & Drag)
        • ",t+="
        • Key l: Left
        • ",t+="
        • Key j: Right
        • ",t+="
        • Key i: Up
        • ",t+="
        • Key m: Down
        • ",t+="
        • Shift + Key l: Left 90°
        • ",t+="
        • Shift + Key j: Right 90°
        • ",t+="
        • Shift + Key i: Up 90°
        • ",t+="
        • Shift + Key m: Down 90°
        • ",t+="
        ",t+="",t+=this.getMenuText("mn6_zoom","Zoom",void 0,1,2),t+="
          ",t+="
        • Middle Mouse
          (Pinch & Spread)
        • ",t+="
        • Key z: Zoom in
        • ",t+="
        • Key x: Zoom out
        • ",t+="
        ",t+="",t+=this.getMenuText("mn6_translate","Translate",void 0,1,2),t+="
          ",t+="
        • Right Mouse
          (Two Finger Click & Drag)
        • ",t+="
        ",t+="",t+="
      ",t+="",t+=this.getMenuUrl("selhints",e.htmlCls.baseUrl+"icn3d/icn3d.html#selsubset","Selection Hints",void 0,1),t+=this.getMenuUrl("helpdesk","https://support.nlm.nih.gov/support/create-case/","Write to Help Desk",1,1),t+="

    • ",t+="
    ",t}hideMenu(){let e=this.icn3dui;e.bNode||(void 0!==$("#"+e.pre+"mnlist")[0]&&($("#"+e.pre+"mnlist")[0].style.display="none"),void 0!==$("#"+e.pre+"mnLogSection")[0]&&($("#"+e.pre+"mnLogSection")[0].style.display="none"),void 0!==$("#"+e.pre+"cmdlog")[0]&&($("#"+e.pre+"cmdlog")[0].style.display="none"),$("#"+e.pre+"title")[0].style.margin="10px 0 0 10px")}showMenu(){let e=this.icn3dui;e.bNode||(void 0!==$("#"+e.pre+"mnlist")[0]&&($("#"+e.pre+"mnlist")[0].style.display="block"),void 0!==$("#"+e.pre+"mnLogSection")[0]&&($("#"+e.pre+"mnLogSection")[0].style.display="block"),void 0!==$("#"+e.pre+"cmdlog")[0]&&($("#"+e.pre+"cmdlog")[0].style.display="block"))}}class c{constructor(e){this.icn3dui=e}openDlg(e,t){let s=this.icn3dui;s.icn3d,s.bNode||(e=s.pre+e,s.cfg.notebook?this.openDlgNotebook(e,t):this.openDlgRegular(e,t),s.htmlCls.themecolor||(s.htmlCls.themecolor="blue"),s.htmlCls.setMenuCls.setTheme(s.htmlCls.themecolor))}addSaveButton(e){let t=this.icn3dui;t.icn3d,t.bNode||void 0!==this.dialogHashSave&&this.dialogHashSave.hasOwnProperty(e)||($("#"+e).parent().children(".ui-dialog-titlebar").append("
    "),void 0===this.dialogHashSave&&(this.dialogHashSave={}),this.dialogHashSave[e]=1)}addHideButton(e){let t=this.icn3dui;t.icn3d,t.bNode||void 0!==this.dialogHashHide&&this.dialogHashHide.hasOwnProperty(e)||($("#"+e).parent().children(".ui-dialog-titlebar").append("
    "),void 0===this.dialogHashHide&&(this.dialogHashHide={}),this.dialogHashHide[e]=1)}getDialogStatus(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t={},s={},i=$("#"+e.pre+"dl_selectannotations").hasClass("ui-dialog-content"),n=$("#"+e.pre+"dl_graph").hasClass("ui-dialog-content"),l=$("#"+e.pre+"dl_linegraph").hasClass("ui-dialog-content"),r=$("#"+e.pre+"dl_scatterplot").hasClass("ui-dialog-content"),o=$("#"+e.pre+"dl_ligplot").hasClass("ui-dialog-content"),a=$("#"+e.pre+"dl_contactmap").hasClass("ui-dialog-content"),d=$("#"+e.pre+"dl_alignerrormap").hasClass("ui-dialog-content"),c=$("#"+e.pre+"dl_interactionsorted").hasClass("ui-dialog-content"),h=$("#"+e.pre+"dl_alignment").hasClass("ui-dialog-content"),p=$("#"+e.pre+"dl_2ddgm").hasClass("ui-dialog-content"),m=$("#"+e.pre+"dl_2dctn").hasClass("ui-dialog-content"),u=$("#"+e.pre+"dl_definedsets").hasClass("ui-dialog-content");return t.bSelectannotationsInit2=!1,t.bGraph2=!1,t.bLineGraph2=!1,t.bScatterplot2=!1,t.bLigplot2=!1,t.bTable2=!1,t.bAlignmentInit2=!1,t.bTwoddgmInit2=!1,t.bTwodctnInit2=!1,t.bSetsInit2=!1,s.dl_selectannotations="bSelectannotationsInit2",s.dl_graph="bGraph2",s.dl_linegraph="bLineGraph2",s.dl_scatterplot="bScatterplot2",s.dl_ligplot="bLigplot2",s.dl_contactmap="bContactmap2",s.dl_alignerrormap="bAlignerrormap2",s.dl_interactionsorted="bTable2",s.dl_alignment="bAlignmentInit2",s.dl_2ddgm="bTwoddgmInit2",s.dl_2dctn="bTwodctnInit2",s.dl_definedsets="bSetsInit2",i&&(t.bSelectannotationsInit2=$("#"+e.pre+"dl_selectannotations").dialog("isOpen")),n&&(t.bGraph2=$("#"+e.pre+"dl_graph").dialog("isOpen")),l&&(t.bLineGraph2=$("#"+e.pre+"dl_linegraph").dialog("isOpen")),r&&(t.bScatterplot2=$("#"+e.pre+"dl_scatterplot").dialog("isOpen")),o&&(t.bLigplot2=$("#"+e.pre+"dl_ligplot").dialog("isOpen")),a&&(t.bContactmap2=$("#"+e.pre+"dl_contactmap").dialog("isOpen")),d&&(t.bAlignerror2=$("#"+e.pre+"dl_alignerrormap").dialog("isOpen")),c&&(t.bTable2=$("#"+e.pre+"dl_interactionsorted").dialog("isOpen")),h&&(t.bAlignmentInit2=$("#"+e.pre+"dl_alignment").dialog("isOpen")),p&&(t.bTwoddgmInit2=$("#"+e.pre+"dl_2ddgm").dialog("isOpen")),m&&(t.bTwodctnInit2=$("#"+e.pre+"dl_2dctn").dialog("isOpen")),u&&(t.bSetsInit2=$("#"+e.pre+"dl_definedsets").dialog("isOpen")),{status:t,id2flag:s}}openDlgHalfWindow(e,t,s,i){let n=this.icn3dui,l=n.icn3d;if(n.bNode)return;let r=this,o=n.htmlCls.width2d+20;l.resizeCanvasCls.resizeCanvas(n.htmlCls.WIDTH-s,n.htmlCls.HEIGHT,i);let a,d=n.htmlCls.HEIGHT,c=s;a=!n.cfg.showmenu||n.utilsCls.isMobile()||n.cfg.mobilemenu?{my:"left top",at:"right top",of:"#"+n.pre+"viewer",collision:"none"}:{my:"left top",at:"right top+40",of:"#"+n.pre+"viewer",collision:"none"},n.cfg.resize=!1,window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:d,width:c,modal:!1,position:a,close:function(t){let s=r.getDialogStatus(),i=s.status,a=s.id2flag,d=!1;for(let t in a){let s=e===n.pre+t;for(let e in i)i.hasOwnProperty(e)||(s=s&&!i[e]);d=d||s}if(d)if(i.bTwoddgmInit2||i.bTwodctnInit2||i.bSetsInit2){let e=n.utilsCls.isMobile()?n.htmlCls.WIDTH:n.htmlCls.WIDTH-o;l.resizeCanvasCls.resizeCanvas(e,n.htmlCls.HEIGHT,!0),i.bTwoddgmInit2&&r.openDlg2Ddgm(n.pre+"dl_2ddgm",void 0,i.bSetsInit2),i.bTwodctnInit2&&r.openDlg2Ddgm(n.pre+"dl_2dctn",void 0,i.bSetsInit2),i.bSetsInit2&&r.openDlg2Ddgm(n.pre+"dl_definedsets")}else l.resizeCanvasCls.resizeCanvas(n.htmlCls.WIDTH,n.htmlCls.HEIGHT,!0)},resize:function(t){if(e==n.pre+"dl_selectannotations")l.annotationCls.hideFixedTitle();else if(e==n.pre+"dl_graph"){let t=$("#"+e).width(),s=$("#"+e).height();d3.select("#"+n.svgid).attr("width",t).attr("height",s)}else if(e==n.pre+"dl_linegraph"||e==n.pre+"dl_scatterplot"||e==n.pre+"dl_ligplot"||e==n.pre+"dl_contactmap"||e==n.pre+"dl_alignerrormap"){let t=status.bTwoddgmInit2||status.bSetsInit2?(n.htmlCls.WIDTH-o)/2:n.htmlCls.WIDTH/2,s=$("#"+e).width()/t;if(e==n.pre+"dl_linegraph"){let e=l.linegraphWidth*s;$("#"+n.linegraphid).attr("width",e)}else if(e==n.pre+"dl_scatterplot"){let e=l.scatterplotWidth*s;$("#"+n.scatterplotid).attr("width",e)}else if(e==n.pre+"dl_ligplot"){let e=l.ligplotWidth*s;$("#"+n.ligplotid).attr("width",e)}else if(e==n.pre+"dl_ligplot"){let e=l.ligplotWidth*s;$("#"+n.ligplotid).attr("width",e)}else if(e==n.pre+"dl_contactmap"){let e=l.contactmapWidth*s;$("#"+n.contactmapid).attr("width",e)}else if(e==n.pre+"dl_alignerrormap"){let e=l.alignerrormapWidth*s;$("#"+n.alignerrormapid).attr("width",e)}}}}),this.addSaveButton(e),this.addHideButton(e)}openDlg2Ddgm(e,t,s){let i=this.icn3dui,n=i.icn3d;if(i.bNode)return;let l,r,o=this,a=i.htmlCls.width2d+20;e===i.pre+"dl_definedsets"?(l="right top",r="Select sets"):e!==i.pre+"dl_2ddgm"&&e!==i.pre+"dl_2dctn"||(l=s?"right top+240":"right top",r=e===i.pre+"dl_2ddgm"?"2D Diagram":"2D Cartoon");let d={my:"left top+"+i.htmlCls.MENU_HEIGHT,at:l,of:"#"+i.pre+"viewer",collision:"none"};window.dialog=$("#"+e).dialog({autoOpen:!0,title:r,height:"auto",width:a,modal:!1,position:d,close:function(e){let t=o.getDialogStatus().status;t.bSelectannotationsInit2||t.bGraph2||t.bLineGraph2||t.bScatterplot2||t.bLigplot2||t.bTable2||t.bAlignmentInit2||n.resizeCanvasCls.resizeCanvas(i.htmlCls.WIDTH,i.htmlCls.HEIGHT,!0)},resize:function(t,s){e==i.pre+"dl_2dctn"&&(n.resizeRatioX=s.size.width/i.htmlCls.width2d,n.resizeRatioY=s.size.height/(i.htmlCls.width2d+70))},resizeStop:function(e,t){n.resizeRatioX=t.size.width/i.htmlCls.width2d,n.resizeRatioY=t.size.height/(i.htmlCls.width2d+70)}}),this.addSaveButton(e),this.addHideButton(e)}openDlgRegular(e,t){let s=this.icn3dui,i=s.icn3d;if(s.bNode)return;let n=400,l=150,r=s.htmlCls.width2d+20,o=this.getDialogStatus().status;if(e===s.pre+"dl_selectannotations"||e===s.pre+"dl_graph"||e===s.pre+"dl_linegraph"||e===s.pre+"dl_scatterplot"||e===s.pre+"dl_ligplot"||e===s.pre+"dl_contactmap"||e===s.pre+"dl_alignerrormap"||e===s.pre+"dl_interactionsorted"||e===s.pre+"dl_alignment"){let a=.5*s.htmlCls.WIDTH-.5*r;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)this.openDlgHalfWindow(e,t,a,!0),(o.bTwoddgmInit2||o.bTwodctnInit2||o.bSetsInit2)&&(i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-a-r,s.htmlCls.HEIGHT,!0),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,o.bSetsInit2),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,o.bSetsInit2),o.bSetsInit2&&this.openDlg2Ddgm(s.pre+"dl_definedsets"));else{i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH,.5*s.htmlCls.HEIGHT,!0),l=.5*s.htmlCls.HEIGHT,n=s.htmlCls.WIDTH;let a={my:"left top",at:"left bottom+32",of:"#"+s.pre+"canvas",collision:"none"};window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:l,width:n,modal:!1,position:a,close:function(t){if(!((e!==s.pre+"dl_selectannotations"||o.bAlignmentInit2||o.bGraph2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_graph"||o.bSelectannotationsInit2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_alignment"||o.bSelectannotationsInit2||o.bGraph2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_interactionsorted"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_linegraph"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_scatterplot"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_ligplot"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_contactmap"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bAlignerrormap2)&&(e!==s.pre+"dl_alignerrormap"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2)))if(o.bTwoddgmInit2||o.bTwodctnInit2||o.bSetsInit2){let e=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(e,s.htmlCls.HEIGHT,!0),o.bTwoddgmInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,o.bSetsInit2),o.bTwodctnInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,o.bSetsInit2),o.bSetsInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_definedsets")}else i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH,s.htmlCls.HEIGHT,!0)},resize:function(t){if(e==s.pre+"dl_selectannotations")i.annotationCls.hideFixedTitle();else if(e==s.pre+"dl_graph"){let t=$("#"+e).width(),i=$("#"+e).height();d3.select("#"+s.svgid).attr("width",t).attr("height",i)}else if(e==s.pre+"dl_linegraph"||e==s.pre+"dl_scatterplot"||e==s.pre+"dl_ligplot"||e==s.pre+"dl_contactmap"||e==s.pre+"dl_alignerrormap"){let t=o.bTwoddgmInit2||o.bSetsInit2?(s.htmlCls.WIDTH-r)/2:s.htmlCls.WIDTH/2,n=$("#"+e).width()/t;if(e==s.pre+"dl_linegraph"){let e=i.linegraphWidth*n;$("#"+s.linegraphid).attr("width",e)}else if(e==s.pre+"dl_scatterplot"){let e=i.scatterplotWidth*n;$("#"+s.scatterplotid).attr("width",e)}else if(e==s.pre+"dl_ligplot"){let e=i.ligplotWidth*n;$("#"+s.ligplotid).attr("width",e)}else if(e==s.pre+"dl_contactmap"){let e=i.contactmapWidth*n;$("#"+s.contactmapid).attr("width",e)}else if(e==s.pre+"dl_alignerrormap"){let e=i.alignerrormapWidth*n;$("#"+s.alignerrormapid).attr("width",e)}}}}),this.addSaveButton(e),this.addHideButton(e)}}else if(e===s.pre+"dl_2ddgm"||e===s.pre+"dl_2dctn"){let t=0;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)(o.bSelectannotationsInit2||o.bGraph2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bTable2||o.bAlignmentInit2)&&(t=.5*s.htmlCls.WIDTH-.5*r),i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-t-r,s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,void 0,o.bSetsInit2);else{let t=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(t,.5*s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT,o.bSetsInit2)}}else{let a;if(l="auto",n="auto",e===s.pre+"dl_addtrack"?n="50%":e===s.pre+"dl_menupref"&&(n=600,l=500),e===s.pre+"dl_definedsets"){let t=0;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)(o.bSelectannotationsInit2||o.bGraph2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bTable2||o.bAlignmentInit2)&&(t=.5*s.htmlCls.WIDTH-.5*r),i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-t-r,s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,!0),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,!0);else{let t=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(t,.5*s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",.5*s.htmlCls.HEIGHT,!0),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",.5*s.htmlCls.HEIGHT,!0)}}else s.utilsCls.isMobile()?a={my:"left top",at:"left bottom-50",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_allinteraction"||e===s.pre+"dl_buriedarea"?(a={my:"right top",at:"right top+50",of:"#"+i.divid,collision:"none"},n=700,l=500):a=e===s.pre+"dl_rmsd"||e===s.pre+"dl_legend"?{my:"left bottom",at:"left+20 bottom-20",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_symd"?{my:"left top",at:"right-200 bottom-200",of:"#"+s.pre+"canvas",collision:"none"}:s.cfg.align?{my:"left top",at:"left top+90",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_mmdbafid"?{my:"left top",at:"left top+130",of:"#"+s.pre+"canvas",collision:"none"}:{my:"left top",at:"left top+50",of:"#"+s.pre+"canvas",collision:"none"},window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:l,width:n,modal:!1,position:a}),this.addSaveButton(e),this.addHideButton(e)}$(".ui-dialog .ui-button span").removeClass("ui-icon-closethick").addClass("ui-icon-close")}openDlgNotebook(e,t){let s=this.icn3dui,i=s.icn3d;if(s.bNode)return;let n=400,l=150,r=s.htmlCls.width2d+20;e===s.pre+"dl_selectannotations"||e===s.pre+"dl_graph"||e===s.pre+"dl_linegraph"||e===s.pre+"dl_scatterplot"||e===s.pre+"dl_ligplot"||e===s.pre+"dl_contactmap"||e===s.pre+"dl_alignerrormap"||e===s.pre+"dl_interactionsorted"||e===s.pre+"dl_alignment"?($("#"+e).show(),$("#"+e+"_nb").show(),$("#"+e+"_title").html(t),l=.5*s.htmlCls.HEIGHT,n=s.htmlCls.WIDTH,$("#"+e).width(n),$("#"+e).height(l),$("#"+e).resize((function(t){let n=s.htmlCls.WIDTH/2,l=$("#"+e).width()/n;if(e==s.pre+"dl_selectannotations")i.annotationCls.hideFixedTitle();else if(e==s.pre+"dl_graph"){let t=$("#"+e).width(),i=$("#"+e).height();d3.select("#"+s.svgid).attr("width",t).attr("height",i)}else if(e==s.pre+"dl_linegraph"){let e=i.linegraphWidth*l;$("#"+s.linegraphid).attr("width",e)}else if(e==s.pre+"dl_scatterplot"){let e=i.scatterplotWidth*l;$("#"+s.scatterplotid).attr("width",e)}else if(e==s.pre+"dl_ligplot"){let e=i.ligplotWidth*l;$("#"+s.ligplotid).attr("width",e)}else if(e==s.pre+"dl_contactmap"){let e=i.contactmapWidth*l;$("#"+s.contactmapid).attr("width",e)}else if(e==s.pre+"dl_alignerrormap"){let e=i.alignerrormapWidth*l;$("#"+s.alignerrormapid).attr("width",e)}}))):(i.bRender&&($("#"+e).show(),$("#"+e+"_nb").show(),$("#"+e+"_title").html(t)),l="auto",n="auto",e===s.pre+"dl_addtrack"?n="50%":e===s.pre+"dl_2ddgm"||e===s.pre+"dl_2dctn"||e===s.pre+"dl_definedsets"?n=r:e!==s.pre+"dl_allinteraction"&&e!==s.pre+"dl_buriedarea"||(n=700,l=500),$("#"+e).width(n),$("#"+e).height(l))}}class h{constructor(e){this.icn3dui=e}setCustomDialogs(){let e=this.icn3dui;if(e.icn3d,e.bNode)return"";return""}getHtmlAlignResidueByResidue(e,t,s){let i=this.icn3dui;i.icn3d;let n="";return n+="All chains will be aligned to the first chain in the comma-separated chain IDs. Each chain ID has the form of PDBID_chain (e.g., 1HHO_A, case sensitive) or UniprotID (e.g., P69905 for AlphaFold structures).

    ",n+="Chain IDs: "+i.htmlCls.inputTextStr+"id='"+i.pre+e+"' value='P69905,P01942,1HHO_A' size=50>

    ",n+='Each alignment is defined as " | "-separated residue lists in one line. "10-50" means a range of residues from 10 to 50.

    ",n+=i.htmlCls.buttonStr+s+"'>Align Residue by Residue
    ",n}addNotebookTitle(e,t,s){let i=this.icn3dui;i.icn3d;let n='';return s&&(n+='
    '),n}setDialogs(){let e=this.icn3dui,t=e.icn3d;if(e.bNode)return"";let s="";e.htmlCls.optionStr="";for(let l=0,r=t[n].length;l"+r+", Strands: "+s[r]+""}i+=""}return i}getAnnoHeader(){let e=this.icn3dui;e.icn3d;let t="";t+="
    Annotations: 
    ",t+="
    ";let s="",t+=i+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_cdd' checked>Conserved Domains"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_clinvar'>ClinVar"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_binding'>Functional Sites"+e.htmlCls.space2+"",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_custom'>Custom"+e.htmlCls.space2+"",t+=i+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_3dd'>3D Domains"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_snp'>SNPs"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ptm'>PTM (UniProt)"+e.htmlCls.space2+"",t+="",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ssbond'>Disulfide Bonds"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_interact'>Interactions"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_crosslink'>Cross-Linkages"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_transmem'>Transmembrane"+e.htmlCls.space2+"",t+="",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ig'>Ig Domains"+e.htmlCls.space2+"",t+="",t+="
    ",i="";return t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_all'>All"+e.htmlCls.space2+"
    ",t}}class p{constructor(e){this.icn3dui=e}setLogCmd(e,t,s){var i=this.icn3dui;i.icn3d,i.htmlCls.clickMenuCls.setLogCmd(e,t,s)}fullScreenChange(){let e=this.icn3dui,t=e.icn3d,s=this;e.bNode||document.fullscreenElement||document.webkitFullscreenElement||document.mozFullscreenElement||document.msFullscreenElement||(s.setLogCmd("exit full screen",!1),t.bFullscreen=!1,e.utilsCls.setViewerWidthHeight(e,!0),t.applyCenterCls.setWidthHeight(e.htmlCls.WIDTH,e.htmlCls.HEIGHT),t.drawCls.draw())}convertUniProtInChains(e){this.icn3dui.icn3d;let t=e.split(","),s="";for(let e=0,i=t.length;e0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(l)),s.cfg.aligntool=e;let r="vast"==e?"structure align":"tmalign";if(r+=t?" msa":"",l.length>0?n.setLogCmd("realign on "+r+" | "+l,!0):n.setLogCmd("realign on "+r,!0),t){if(0==l.length){l=[];let e={};for(let t in i.chains){let s=i.firstAtomObjCls.getFirstAtomObj(i.chains[t]);e.hasOwnProperty(s.structure)||!i.proteins.hasOwnProperty(s.serial)&&!i.nucleotides.hasOwnProperty(s.serial)||(l.push(t),e[s.structure]=1)}}await i.realignParserCls.realignOnStructAlignMsa(l)}else await i.realignParserCls.realignOnStructAlign()}async readFile(e,t,s,i,n,l){let r=this.icn3dui,o=r.icn3d,a=this,d=t[s],c=e?"append":"load";c+=n?" mmcif file ":l?" png file ":" pdb file ";let h=new FileReader;h.onload=async function(h){let p=h.target.result;if(a.setLogCmd(c+d.name,!1),e?(o.resetConfig(),o.bResetAnno=!0,o.bResetSets=!0):o.init(),o.bInputfile=!0,o.InputfileType=n?"mmcif":l?"png":"pdb",l){let e=await r.htmlCls.setHtmlCls.loadPng(p);if(p=e.pdb,!p)return;o.statefileArray||(o.statefileArray=[]),o.statefileArray.push(e.statefile)}o.InputfileData=o.InputfileData?o.InputfileData+"\nENDMDL\n"+p:p,i=s>0?i+"\nENDMDL\n"+p:p,Object.keys(t).length==s+1?(e&&(o.hAtoms={},o.dAtoms={}),n?await o.mmcifParserCls.loadMultipleMmcifData(i,void 0,e):await o.pdbParserCls.loadPdbData(i,void 0,void 0,e)):await a.readFile(e,t,s+1,i,n,l),e&&(o.bSetChainsAdvancedMenu&&o.definedSetsCls.showSets(),o.bResetAnno=!0,o.bAnnoShown&&(await o.showAnnoCls.showAnnotations(),o.annotationCls.resetAnnoTabAll()))},"object"==typeof d&&h.readAsText(d)}async loadPdbFile(e,t,s){let i=this.icn3dui,n=i.icn3d;n.bInitial=!0,i.cfg.notebook||dialog.dialog("close"),i.cfg.notebook?n.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let l=$("#"+i.pre+t)[0].files;l[0]?(i.htmlCls.setHtmlCls.fileSupport(),n.molTitle="",n.dataStrAll="",await this.readFile(e,l,0,"",s)):alert("Please select a file before clicking 'Load'")}saveHtml(e){let t=this.icn3dui.icn3d,s="";s+='\n',s+='\n',s+=$("#"+e).html();let i=e.split("_"),n=i.length>2?i[2]:e,l=Object.keys(t.structures)[0];Object.keys(t.structures).length>1&&(l+="-"+Object.keys(t.structures)[1]),t.saveFileCls.saveFile(l+"-"+n+".html","html",encodeURIComponent(s))}setPredefinedMenu(e){let t=this.icn3dui,s=t.icn3d;if(Object.keys(s.chains).length<2)return void alert("At least two chains are required for alignment...");t.htmlCls.clickMenuCls.SetChainsAdvancedMenu();let i=s.definedSetsCls.setAtomMenu(["protein"]);$("#"+t.pre+e).length&&$("#"+t.pre+e).html(i),$("#"+t.pre+e).resizable()}async launchMmdb(e,t,s,i){let n=this.icn3dui,l=n.icn3d,r=this;n.cfg.notebook||dialog.dialog("close");let o=t?1:0;if(!(e=e.replace(/,/g," ").replace(/\s+/g,",").trim()))return void alert("Please enter a list of PDB IDs or AlphaFold UniProt IDs...");let a=e.split(",");if(i)if(l.structures||1!=a.length||4!=a[0].length&&isNaN(a[0])){n.cfg.mmdbafid=e,n.cfg.bu=o,l.bMmdbafid=!0,l.inputid=l.inputid?l.inputid+n.cfg.mmdbafid:n.cfg.mmdbafid,1==n.cfg.bu?l.loadCmd="load mmdbaf1 "+n.cfg.mmdbafid:l.loadCmd="load mmdbaf0 "+n.cfg.mmdbafid,n.htmlCls.clickMenuCls.setLogCmd(l.loadCmd,!0);let t=!!(l.structures&&Object.keys(l.structures).length>0);await l.chainalignParserCls.downloadMmdbAf(n.cfg.mmdbafid),t&&(l.bSetChainsAdvancedMenu&&l.definedSetsCls.showSets(),l.bAnnoShown&&(await l.showAnnoCls.showAnnotations(),l.annotationCls.resetAnnoTabAll()))}else{r.setLogCmd("load mmdb"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbid="+e+"&bu="+o,t)}else if(1!=a.length||4!=a[0].length&&isNaN(a[0])){r.setLogCmd("load mmdbaf"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbafid="+e+"&bu="+o,t)}else{r.setLogCmd("load mmdb"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbid="+e+"&bu="+o,t)}}allEventFunctions(){let e=this.icn3dui,t=e.icn3d,s=this;if(e.bNode)return;let i=document.URL,n=i.indexOf("?");i=-1==n?i:i.substr(0,n),i.indexOf("/vast/icn3d/")&&(i=i.replace(/\/vast\/icn3d\//g,"/icn3d/")),t.definedSetsCls.clickCustomAtoms(),t.definedSetsCls.clickCommand_apply(),t.definedSetsCls.clickModeswitch(),t.selectionCls.clickShow_selected(),t.selectionCls.clickHide_selected(),t.diagram2dCls.click2Ddgm(),t.cartoon2dCls.click2Dcartoon(),t.ligplotCls.clickLigplot(),t.addTrackCls.clickAddTrackButton(),t.resizeCanvasCls.windowResize(),t.annotationCls.setTabs(),t.resid2specCls.switchHighlightLevel(),e.utilsCls.isMobile()?(t.hlSeqCls.selectSequenceMobile(),t.hlSeqCls.selectChainMobile()):t.hlSeqCls.selectSequenceNonMobile(),e.htmlCls.clickMenuCls.clickMenu1(),e.htmlCls.clickMenuCls.clickMenu2(),e.htmlCls.clickMenuCls.clickMenu3(),e.htmlCls.clickMenuCls.clickMenu4(),e.htmlCls.clickMenuCls.clickMenu5(),e.htmlCls.clickMenuCls.clickMenu6(),e.myEventCls.onIds(["#"+e.pre+"back","#"+e.pre+"mn6_back"],"click",(async function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("back",!1),await i.resizeCanvasCls.back()})),e.myEventCls.onIds(["#"+e.pre+"forward","#"+e.pre+"mn6_forward"],"click",(async function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("forward",!1),await i.resizeCanvasCls.forward()})),e.myEventCls.onIds(["#"+e.pre+"fullscreen","#"+e.pre+"mn6_fullscreen"],"click",(function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("enter full screen",!1),i.bFullscreen=!0,e.htmlCls.WIDTH=$(window).width(),e.htmlCls.HEIGHT=$(window).height(),i.applyCenterCls.setWidthHeight(e.htmlCls.WIDTH,e.htmlCls.HEIGHT),i.drawCls.draw(),i.resizeCanvasCls.openFullscreen($("#"+e.pre+"canvas")[0])})),document.addEventListener("fullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("webkitfullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("mozfullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("msfullscreenchange",this.fullScreenChange.bind(this)),e.myEventCls.onIds(["#"+e.pre+"toggle","#"+e.pre+"mn2_toggle"],"click",(function(t){e.icn3d.selectionCls.toggleSelection(),s.setLogCmd("toggle selection",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrYellow","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color yellow",!0),i.hColor=e.parasCls.thr(16776960),i.matShader=i.setColorCls.setOutlineColor("yellow"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrGreen","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color green",!0),i.hColor=e.parasCls.thr(65280),i.matShader=i.setColorCls.setOutlineColor("green"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrRed","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color red",!0),i.hColor=e.parasCls.thr(16711680),i.matShader=i.setColorCls.setOutlineColor("red"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleOutline","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight style outline",!0),i.bHighlight=1,i.hlUpdateCls.showHighlight()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleObject","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight style 3d",!0),i.bHighlight=2,i.hlUpdateCls.showHighlight()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleNone","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds(["#"+e.pre+"alternate","#"+e.pre+"mn2_alternate","#"+e.pre+"alternate2"],"click",(async function(t){let i=e.icn3d;i.bAlternate=!0,await i.alternateCls.alternateStructures(),i.bAlternate=!1,s.setLogCmd("alternate structures",!1)})),e.myEventCls.onIds("#"+e.pre+"mn2_realignresbyres","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_realignresbyres","Align multiple chains residue by residue")})),e.myEventCls.onIds("#"+e.pre+"realignSelection","click",(function(t){let i=e.icn3d;Object.keys(i.chains).length<2?alert("At least two chains are required for alignment..."):(i.realignParserCls.realign(),s.setLogCmd("realign",!0))})),e.myEventCls.onIds("#"+e.pre+"mn2_realignonseqalign","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realign","Please select chains to realign"),s.setPredefinedMenu("atomsCustomRealign")})),e.myEventCls.onIds("#"+e.pre+"mn2_realignonstruct","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realignbystruct","Please select chains to realign"),s.setPredefinedMenu("atomsCustomRealignByStruct")})),e.myEventCls.onIds("#"+e.pre+"mn2_realigntwostru","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realigntwostru","Please select structures to realign"),s.setPredefinedMenu("atomsCustomRealignByStruct2")})),e.myEventCls.onIds("#"+e.pre+"applyRealign","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomRealign").val();n.length>0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(n)),await i.realignParserCls.realignOnSeqAlign(),n.length>0?s.setLogCmd("realign on seq align | "+n,!0):s.setLogCmd("realign on seq align",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("vast",!1)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct_tmalign","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("tmalign",!1)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStructMsa","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("vast",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStructMsa_tmalign","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("tmalign",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct_vastplus","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomRealignByStruct2").val();n.length>0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(n)),await i.vastplusCls.realignOnVastplus(),n.length>0?s.setLogCmd("realign on vastplus | "+n,!0):s.setLogCmd("realign on vastplus",!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorSpectrumAcrossSets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorSpectrumAcross").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorAcrossSets(n,!0),s.setLogCmd("set color spectrum | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorSpectrumBySets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorSpectrum").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorBySets(n,!0),s.setLogCmd("set residues color spectrum | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorRainbowAcrossSets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorRainbowAcross").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorAcrossSets(n,!1),s.setLogCmd("set color rainbow | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorRainbowBySets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorRainbow").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorBySets(n,!1),s.setLogCmd("set residues color rainbow | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"anno_summary","click",(function(t){let i=e.icn3d;t.preventDefault(),i.annotationCls.setAnnoViewAndDisplay("overview"),s.setLogCmd("set view overview",!0)})),e.myEventCls.onIds("#"+e.pre+"anno_details","click",(function(t){let i=e.icn3d;t.preventDefault(),i.annotationCls.setAnnoViewAndDisplay("detailed view"),s.setLogCmd("set view detailed view",!0)})),e.myEventCls.onIds("#"+e.pre+"show_annotations","click",(async function(t){let i=e.icn3d;await i.showAnnoCls.showAnnotations(),s.setLogCmd("view annotations",!0)})),e.myEventCls.onIds("#"+e.pre+"showallchains","click",(function(t){e.icn3d.annotationCls.showAnnoAllChains(),s.setLogCmd("show annotations all chains",!0)})),e.myEventCls.onIds("#"+e.pre+"show_alignsequences","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_alignment","Select residues in aligned sequences")})),e.myEventCls.onIds(["#"+e.pre+"show_2ddgm","#"+e.pre+"mn2_2ddgm"],"click",(async function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_2ddgm","2D Diagram"),await i.viewInterPairsCls.retrieveInteractionData(),s.setLogCmd("view interactions",!0)})),e.myEventCls.onIds("#"+e.pre+"search_seq_button","click",(async function(t){e.icn3d,t.stopImmediatePropagation(),await s.searchSeq()})),e.myEventCls.onIds("#"+e.pre+"search_seq","keyup",(async function(t){e.icn3d,13===t.keyCode&&(t.preventDefault(),await s.searchSeq())})),e.myEventCls.onIds("#"+e.pre+"reload_vastplus","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("vast+ search "+$("#"+e.pre+"vastpluspdbid").val(),!1);let n=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open("https://www.ncbi.nlm.nih.gov/Structure/vastplus/vastplus.cgi?uid="+$("#"+e.pre+"vastpluspdbid").val(),n)})),e.myEventCls.onIds("#"+e.pre+"reload_vast","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("vast search "+$("#"+e.pre+"vastpdbid").val()+"_"+$("#"+e.pre+"vastchainid").val(),!1);let n=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open("https://www.ncbi.nlm.nih.gov/Structure/vast/vastsrv.cgi?pdbid="+$("#"+e.pre+"vastpdbid").val()+"&chain="+$("#"+e.pre+"vastchainid").val(),n)})),e.myEventCls.onIds("#"+e.pre+"reload_foldseek","click",(function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"foldseekchainids").val(),l=s.convertUniProtInChains(n);s.setLogCmd("load chainalignment "+l,!0),window.open(i+"?chainalign="+l+"&aligntool=tmalign&showalignseq=1&bu=0","_self")})),e.myEventCls.onIds("#"+e.pre+"reload_mmtf","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load bcif "+$("#"+e.pre+"mmtfid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?bcifid="+$("#"+e.pre+"mmtfid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"mmtfid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmtf "+$("#"+e.pre+"mmtfid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmtfid="+$("#"+e.pre+"mmtfid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_pdb","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load pdb "+$("#"+e.pre+"pdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?pdbid="+$("#"+e.pre+"pdbid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"translate_pdb","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"translateX").val(),l=$("#"+e.pre+"translateY").val(),r=$("#"+e.pre+"translateZ").val();i.transformCls.translateCoord(i.hAtoms,parseFloat(n),parseFloat(l),parseFloat(r)),i.drawCls.draw(),s.setLogCmd("translate pdb "+n+" "+l+" "+r,!0)})),e.myEventCls.onIds("#"+e.pre+"measure_angle","click",(function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"v1X").val(),n=$("#"+e.pre+"v1Y").val(),l=$("#"+e.pre+"v1Z").val(),r=$("#"+e.pre+"v2X").val(),o=$("#"+e.pre+"v2Y").val(),a=$("#"+e.pre+"v2Z").val(),d=new THREE.Vector3(parseFloat(i),parseFloat(n),parseFloat(l)).angleTo(new THREE.Vector3(parseFloat(r),parseFloat(o),parseFloat(a)))/3.1416*180;d=Math.abs(d).toFixed(0),d>180&&(d-=180),d>90&&(d=180-d),s.setLogCmd("The angle is "+d+" degree",!1),$("#"+e.pre+"angle_value").val(d)})),e.myEventCls.onIds("#"+e.pre+"matrix_pdb","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=[];for(let t=0;t<16;++t)n.push(parseFloat($("#"+e.pre+"matrix"+t).val()));i.transformCls.rotateCoord(i.hAtoms,n),i.drawCls.draw(),s.setLogCmd("rotate pdb "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"pdbid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load pdb "+$("#"+e.pre+"pdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?pdbid="+$("#"+e.pre+"pdbid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_af","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load af "+$("#"+e.pre+"afid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?afid="+$("#"+e.pre+"afid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_afmap","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=e.cfg.afid?e.cfg.afid:$("#"+e.pre+"afid").val();s.setLogCmd("set half pae map "+n,!0),await i.contactMapCls.afErrorMap(n)})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfull","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=e.cfg.afid?e.cfg.afid:$("#"+e.pre+"afid").val();s.setLogCmd("set full pae map "+n,!0),await i.contactMapCls.afErrorMap(n,!0)})),e.myEventCls.onIds("#"+e.pre+"afid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load af "+$("#"+e.pre+"afid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?afid="+$("#"+e.pre+"afid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_opm","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load opm "+$("#"+e.pre+"opmid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?opmid="+$("#"+e.pre+"opmid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"opmid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load opm "+$("#"+e.pre+"opmid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?opmid="+$("#"+e.pre+"opmid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_align_refined","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=1&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=1&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_align_ori","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=0&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=0&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_align_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=2&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=2&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_alignaf","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignafid1").val()+"_A,"+$("#"+e.pre+"alignafid2").val()+"_A";s.setLogCmd("load chains "+l+" | residues | resdef ",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+l+"&resnum=&resdef=&showalignseq=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_alignaf_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignafid1").val()+"_A,"+$("#"+e.pre+"alignafid2").val()+"_A";s.setLogCmd("load chains "+l+" | residues | resdef | align tmalign",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+l+"&aligntool=tmalign&resnum=&resdef=&showalignseq=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids").val(),r=s.convertUniProtInChains(l);s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef ",!1);let o=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum=&resdef=&showalignseq=1&bu=0",o)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym2","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids2").val(),r=s.convertUniProtInChains(l),o=$("#"+e.pre+"resalignids").val();s.setLogCmd("load chains "+r+" on asymmetric unit | residues "+o+" | resdef ",!1);let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum="+o+"&resdef=&showalignseq=1&bu=0",a)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym3","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids3").val(),r=s.convertUniProtInChains(l),o=$("#"+e.pre+"predefinedres").val().trim().replace(/\n/g,": ");if(o&&r.split(",").length-1!=o.split(": ").length)return void alert("Please make sure the number of chains and the lines of predefined residues are the same...");s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef "+o,!1);let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum=&resdef="+o+"&showalignseq=1&bu=0",a)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym4","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"chainalignids4").val(),l=s.convertUniProtInChains(n),r=$("#"+e.pre+"predefinedres2").val().trim().replace(/\n/g,": ");if(r&&l.split(",").length-1!=r.split(": ").length)return void alert("Please make sure the number of chains and the lines of predefined residues are the same...");e.cfg.resdef=r.replace(/:/gi,";");let o=l.split(",");await i.realignParserCls.realignChainOnSeqAlign(void 0,o,!0,!0),s.setLogCmd("realign predefined "+l+" "+r,!0)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids").val(),r=s.convertUniProtInChains(l);s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef | align tmalign",!1);let o=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&aligntool=tmalign&resnum=&resdef=&showalignseq=1&bu=0",o)})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_3d","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o;await n.scapCls.retrieveScap(e),s.setLogCmd("scap 3d "+e,!0),s.setLogCmd("select displayed set",!0)}else{let e=o.substr(0,o.indexOf("_"));s.setLogCmd("3d of mutation "+o,!1);let t=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?"+l+"="+e+"&command=scap 3d "+o+"; select displayed set",t)}})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_pdb","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o,t=!0;await n.scapCls.retrieveScap(e,void 0,t),s.setLogCmd("scap pdb "+e,!0)}else{let e=o.substr(0,o.indexOf("_"));s.setLogCmd("pdb of mutation "+o,!1);let t=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?"+l+"="+e+"&command=scap pdb "+o+"; select displayed set",t)}})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_inter","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o,t=!0;await n.scapCls.retrieveScap(e,t),s.setLogCmd("scap interaction "+e,!0);let i=e.split("_"),l="."+i[1]+":"+i[2],r="snp_"+i[1]+"_"+i[2];s.setLogCmd("select "+l+" | name "+r,!0),s.setLogCmd("line graph interaction pairs | selected non-selected | hbonds,salt bridge,interactions,halogen,pi-cation,pi-stacking | false | threshold 3.8 6 4 3.8 6 5.5",!0),s.setLogCmd("adjust dialog dl_linegraph",!0),s.setLogCmd("select displayed set",!0)}else{let e=o.split(","),t=[];for(let s=0,i=e.length;s0?"_blank":"_self";window.open(i+"?"+l+"="+r+"&command=scap interaction "+o,a)}})),e.myEventCls.onIds("#"+e.pre+"reload_mmcif","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmcif "+$("#"+e.pre+"mmcifid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmcifid="+$("#"+e.pre+"mmcifid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"mmcifid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmcif "+$("#"+e.pre+"mmcifid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmcifid="+$("#"+e.pre+"mmcifid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_mmdb","click",(function(t){let n=e.icn3d;t.preventDefault(),s.setLogCmd("load mmdb1 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=1",l)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdb_asym","click",(function(t){let n=e.icn3d;t.preventDefault(),s.setLogCmd("load mmdb0 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=0",l)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_asym","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,0,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_append","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i,!0)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_asym_append","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,0,i,!0)})),e.myEventCls.onIds("#"+e.pre+"mmdbid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),s.setLogCmd("load mmdb1 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=1",l)}})),e.myEventCls.onIds("#"+e.pre+"mmdbafid","keyup",(function(t){if(e.icn3d,13===t.keyCode){t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i)}})),e.myEventCls.onIds("#"+e.pre+"reload_blast_rep_id","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=blast&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"run_esmfold","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),$("#"+e.pre+"dl_mmdbafid").hasClass("ui-dialog-content")&&$("#"+e.pre+"dl_mmdbafid").dialog("close");let n=$("#"+e.pre+"esmfold_fasta").val(),l="stru--";if(-1!=n.indexOf(">")){let e=n.indexOf("\n");if(i.esmTitle=n.substr(1,e-1).trim(),-1!=i.esmTitle.indexOf("|")){let e=i.esmTitle.split("|");l=e.length>2?e[1]:i.esmTitle}else l=-1!=i.esmTitle.indexOf(" ")?i.esmTitle.substr(0,i.esmTitle.indexOf(" ")):i.esmTitle;l.length<6&&(l=l.padEnd(6,"-")),n=n.substr(e+1)}if(n=n.replace(/\s/g,""),n.length>400)return void alert("Your sequence is larger than 400 characters. Please consider to split it as described at https://github.com/facebookresearch/esm/issues/21.");s.setLogCmd("Run ESMFold with the sequence "+n,!1);let r=await e.getAjaxPostPromise("https://api.esmatlas.com/foldSequence/v1/pdb/",n,!0,"Problem in returning PDB from ESMFold server...",void 0,!0,"text");i.bResetAnno=!0,i.bInputfile=!0,i.InputfileType="pdb",i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+r:r,i.bEsmfold=!0;await i.pdbParserCls.loadPdbData(r,l,void 0,!0,void 0,void 0,void 0,i.bEsmfold)})),e.myEventCls.onIds("#"+e.pre+"reload_alignsw","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids_smithwm "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=smithwm&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"reload_alignswlocal","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids_local_smithwm "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=local_smithwm&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"reload_proteinname","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load protein "+$("#"+e.pre+"proteinname").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?protein="+$("#"+e.pre+"proteinname").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_refseq","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load refseq "+$("#"+e.pre+"refseqid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?refseqid="+$("#"+e.pre+"refseqid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"gi","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load gi "+$("#"+e.pre+"gi").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?gi="+$("#"+e.pre+"gi").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_uniprotid","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load uniprotid "+$("#"+e.pre+"uniprotid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?uniprotid="+$("#"+e.pre+"uniprotid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"uniprotid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load uniprotid "+$("#"+e.pre+"uniprotid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?uniprotid="+$("#"+e.pre+"uniprotid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_cid","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load cid "+$("#"+e.pre+"cid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?cid="+$("#"+e.pre+"cid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_smiles","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=s.structures&&Object.keys(s.structures).length>0?"_blank":"_self";n="_blank",window.open(i+"?smiles="+encodeURIComponent($("#"+e.pre+"smiles").val()),"_blank")})),e.myEventCls.onIds("#"+e.pre+"cid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load cid "+$("#"+e.pre+"cid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?cid="+$("#"+e.pre+"cid").val(),l)}})),e.htmlCls.setHtmlCls.clickReload_pngimage(),e.myEventCls.onIds("#"+e.pre+"reload_state","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close"),i.bInputfile||i.init();let n=$("#"+e.pre+"state")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){i.bStatefile=!0;let n=t.target.result;s.setLogCmd("load state file "+$("#"+e.pre+"state").val(),!1),i.commands=[],i.optsHistory=[],await i.loadScriptCls.loadScript(n,!0)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_selectionfile","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"selectionfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;await i.selectionCls.loadSelection(n),s.setLogCmd("load selection file "+$("#"+e.pre+"selectionfile").val(),!1)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_collectionfile","click",(function(t){let s=e.icn3d;t.preventDefault();let i=$("#"+e.pre+"collectionfile")[0].files[0];if(i){e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?s.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close"),s.bInputfile=!1,s.pdbCollection=[],s.allData={},s.allData.all={atoms:{},proteins:{},nucleotides:{},chemicals:{},ions:{},water:{},structures:{},ssbondpnts:{},residues:{},chains:{},chainsSeq:{},defNames2Atoms:{},defNames2Residues:{}},s.allData.prev={},s.selectCollectionsCls.reset(),s.dAtoms=e.hashUtilsCls.cloneHash(s.atoms),s.hAtoms=e.hashUtilsCls.cloneHash(s.atoms),e.htmlCls.setHtmlCls.fileSupport();let t=i.name.split(".").pop().toLowerCase();function n(e){return JSON.parse(e).structures.map((({id:e,title:t,description:s,commands:i})=>(e&&e.includes(".pdb")&&(e=e.split(".pdb")[0]),[e,t,s,i,!1])))}function l(e,t="",i=[]){let n=e.split("\n"),l=[],r=[];n.forEach((e=>{e.startsWith("HEADER")&&(r=[],l.push(r)),r.push(e)}));let o=[],a=[];return l.forEach((e=>{let t=e[0];t=t.replace(/[\n\r]/g,"").trim();let s=t.split(" ").filter(Boolean),i=s[s.length-1];o.push(i),a.push(e[1].startsWith("TITLE")?e[1].split("TITLE").pop().trim():i)})),l.length>0&&s.pdbCollection.push(...l),o.map(((e,t,s,i)=>[e,a[t],s,i,!0]))}$("#"+s.pre+"collections_menu").empty(),$("#"+s.pre+"collections_menu").off("change");let r=[];if("json"===t||"pdb"===t){let o=new FileReader;o.onload=async function(i){"json"===t?r=n(i.target.result):"pdb"===t&&(s.bInputfile=!0,r=l(i.target.result));let o=await s.selectCollectionsCls.setAtomMenu(r);$("#"+s.pre+"collections_menu").html(o),await s.selectCollectionsCls.clickStructure(r),$("#"+s.pre+"collections_menu").trigger("change"),e.htmlCls.clickMenuCls.setLogCmd("load collection file "+$("#"+e.pre+"collectionfile").val(),!1)},o.readAsText(i)}else{if("zip"!==t&&"gz"!==t)throw new Error("Invalid file type");{s.bInputfile=!0;let o=new FileReader;o.onload=async function(i){if("zip"===t){let t="./script/jszip.js";await e.getAjaxPromise(t,"script");let s=new JSZip;try{let t=await s.loadAsync(i.target.result),o=!1,a=!1,d=!1,c=[],h=[],p=[];for(let e in t.files){let s=t.files[e];s.dir||(e.endsWith(".json")?(o=!0,c.push(s)):e.endsWith(".pdb")?(a=!0,h.push(s)):e.endsWith(".gz")&&(d=!0,p.push(s)))}if(o&&a){let e=[];for(const t of c){n(await t.async("text")).forEach((t=>{e.push(t)}))}for(const[t,s,i,n,o]of e){let e=h.find((e=>e.name.toLowerCase().includes(t.toLowerCase())));if(e){l(await e.async("text"),i,n).forEach((e=>{r.push(e)}))}}}else if(o)c.forEach((async e=>{n(await e.async("text")).forEach((e=>{r.push(e)}))}));else if(a)h.forEach((async e=>{l(await e.async("text")).forEach((e=>{r.push(e)}))}));else if(d){let t="./script/pako.js";await e.getAjaxPromise(t,"script");try{for(const e of p){let t=await e.async("uint8array");l(pako.inflate(t,{to:"string"})).forEach((e=>{r.push(e)}))}}catch(e){console.error("Error loading GZ file",e)}}}catch(e){console.error("Error loading ZIP file",e)}}else if("gz"===t){let t="./script/pako.js";await e.getAjaxPromise(t,"script");try{const e=new Uint8Array(i.target.result),t=pako.inflate(e,{to:"string"});r=l(t)}catch(e){console.error("Error loading GZ file",e)}}let o=await s.selectCollectionsCls.setAtomMenu(r);$("#"+s.pre+"collections_menu").html(o),await s.selectCollectionsCls.clickStructure(r),$("#"+s.pre+"collections_menu").trigger("change"),e.htmlCls.clickMenuCls.setLogCmd("load collection file "+$("#"+e.pre+"collectionfile").val(),!1)},o.onerror=function(e){console.error("Error reading file",e)},o.readAsArrayBuffer(i)}}Object.keys(e.utilsCls.getStructures(s.dAtoms))?($("#"+e.pre+"dl_collection_file").hide(),$("#"+e.pre+"dl_collection_structures").show(),$("#"+e.pre+"dl_collection_file_expand").show(),$("#"+e.pre+"dl_collection_file_shrink").hide(),$("#"+e.pre+"dl_collection_structures_expand").hide(),$("#"+e.pre+"dl_collection_structures_shrink").show()):($("#"+e.pre+"dl_collection_file").show(),$("#"+e.pre+"dl_collection_structures").hide(),$("#"+e.pre+"dl_collection_file_expand").hide(),$("#"+e.pre+"dl_collection_file_shrink").hide(),$("#"+e.pre+"dl_collection_structures_expand").show(),$("#"+e.pre+"dl_collection_structures_shrink").hide()),e.htmlCls.dialogCls.openDlg("dl_selectCollections","Select Collections")}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"opendl_export_collections","click",(function(t){e.htmlCls.dialogCls.openDlg("dl_export_collections","Export Collections")})),e.myEventCls.onIds("#"+e.pre+"export_collections","click",(function(t){let s=e.icn3d;const i=document.getElementById(e.pre+"collections_menu"),n=[],l=document.getElementById("dl_collectionExportSelected"),r=document.getElementById("dl_collectionExportAll");l.checked?Array.from(i.options).filter((e=>e.selected)).forEach((e=>{const t=e.value,i=e.textContent.trim(),l=e.getAttribute("data-description");n.push({id:t,title:i,description:l||"",commands:s.allData[t]&&s.allData[t].commands?s.allData[t].commands:[]})})):r.checked&&Array.from(i.options).forEach((e=>{const t=e.value,i=e.textContent.trim(),l=e.getAttribute("data-description");n.push({name:t,title:i,description:l||"",commands:s.allData[t]&&s.allData[t].commands?s.allData[t].commands:[]})}));const o=new Date,a=`${o.getMonth()+1}_${o.getDate()}_${o.getFullYear()}`,d={collectionTitle:document.getElementById("dl_collectionTitle").value,collectionDescription:document.getElementById("dl_collectionDescription").value,structures:n},c=`${d.collectionTitle.replace(/\s+/g,"_")}_${a}.json`,h=JSON.stringify(d,null,2),p=new Blob([h],{type:"application/json"}),m=URL.createObjectURL(p),u=document.createElement("a");u.href=m,u.download=c,document.body.appendChild(u),u.click(),document.body.removeChild(u),URL.revokeObjectURL(m)})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6file2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6File("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6filefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6File("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4file2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4File("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4filefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4File("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfile2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfilefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfile2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("2fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfilefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_delphifile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadDelphiFile("delphi")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrfile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("pqr")})),e.myEventCls.onIds("#"+e.pre+"reload_phifile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("phi")})),e.myEventCls.onIds("#"+e.pre+"reload_cubefile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("cube")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("pqrurl")})),e.myEventCls.onIds("#"+e.pre+"reload_phiurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("phiurl")})),e.myEventCls.onIds("#"+e.pre+"reload_cubeurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("cubeurl")})),e.myEventCls.onIds("#"+e.pre+"reload_delphifile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("delphi"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadDelphiFile("delphi2")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrfile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("pqr2")})),e.myEventCls.onIds("#"+e.pre+"reload_phifile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("phi2")})),e.myEventCls.onIds("#"+e.pre+"reload_cubefile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("cube2")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("pqrurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_phiurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("phiurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_cubeurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("cubeurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6fileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6FileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6fileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6FileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4fileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4FileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4fileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4FileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfileurl2fofc","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.mtzParserCls.loadMtzFileUrl("2fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfileurlfofc","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.mtzParserCls.loadMtzFileUrl("fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_pdbfile","click",(async function(t){e.icn3d,t.preventDefault();await s.loadPdbFile(!1,"pdbfile")})),e.myEventCls.onIds("#"+e.pre+"reload_pdbfile_app","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bAppend=!0,await s.loadPdbFile(i.bAppend,"pdbfile_app")})),e.myEventCls.onIds("#"+e.pre+"reload_mol2file","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"mol2file")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load mol2 file "+$("#"+e.pre+"mol2file").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="mol2",await i.mol2ParserCls.loadMol2Data(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_sdffile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"sdffile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load sdf file "+$("#"+e.pre+"sdffile").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="sdf",await i.sdfParserCls.loadSdfData(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_xyzfile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"xyzfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load xyz file "+$("#"+e.pre+"xyzfile").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="xyz",await i.xyzParserCls.loadXyzData(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"afmapfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=function(t){let n=t.target.result;s.setLogCmd("load AlphaFold PAE file "+$("#"+e.pre+"afmapfile").val(),!1),e.htmlCls.dialogCls.openDlg("dl_alignerrormap","Show Predicted Aligned Error (PAE) map"),i.contactMapCls.processAfErrorMap(JSON.parse(n))},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfilefull","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"afmapfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=function(t){let n=t.target.result;s.setLogCmd("load AlphaFold PAE file "+$("#"+e.pre+"afmapfile").val(),!1),e.htmlCls.dialogCls.openDlg("dl_alignerrormap","Show Predicted Aligned Error (PAE) map"),i.contactMapCls.processAfErrorMap(JSON.parse(n),!0)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_urlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),s.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?s.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let i=$("#"+e.pre+"filetype").val(),n=$("#"+e.pre+"urlfile").val();s.inputurl="type="+i+"&url="+encodeURIComponent(n),s.init(),s.bInputfile=!0,s.bInputUrlfile=!0,await s.pdbParserCls.downloadUrl(n,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmciffile","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bAppend=!0;await s.loadPdbFile(i.bAppend,"mmciffile",!0)})),e.myEventCls.onIds("#"+e.pre+"applycustomcolor","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.setOptionCls.setOption("color",$("#"+e.pre+"colorcustom").val()),s.setLogCmd("color "+$("#"+e.pre+"colorcustom").val(),!0)})),e.myEventCls.onIds(["#"+e.pre+"atomsCustomSphere2","#"+e.pre+"atomsCustomSphere","#"+e.pre+"radius_aroundsphere"],"change",(function(t){e.icn3d.bSphereCalc=!1})),e.myEventCls.onIds("#"+e.pre+"applypick_aroundsphere","click",(function(t){let i=e.icn3d,n=parseFloat($("#"+e.pre+"radius_aroundsphere").val()),l=$("#"+e.pre+"atomsCustomSphere").val(),r=$("#"+e.pre+"atomsCustomSphere2").val();if(0==r.length)alert("Please select the first set at step #1");else{let e="select zone cutoff "+n+" | sets "+r+" "+l+" | "+i.bSphereCalc;i.bSphereCalc||i.showInterCls.pickCustomSphere(n,r,l,i.bSphereCalc),i.bSphereCalc=!0,i.hlUpdateCls.updateHlAll(),s.setLogCmd(e,!0)}})),e.myEventCls.onIds("#"+e.pre+"sphereExport","click",(function(t){let i=e.icn3d;t.preventDefault();let n=parseFloat($("#"+e.pre+"radius_aroundsphere").val()),l=$("#"+e.pre+"atomsCustomSphere").val(),r=$("#"+e.pre+"atomsCustomSphere2").val();if(0==r.length)alert("Please select the first set at step #1");else{i.showInterCls.pickCustomSphere(n,r,l,i.bSphereCalc),i.bSphereCalc=!0;let t=i.viewInterPairsCls.exportSpherePairs(),o=Object.keys(e.utilsCls.getHlStructures()).join(",");i.saveFileCls.saveFile(o+"_sphere_pairs.html","html",t),s.setLogCmd("export pairs | "+r+" "+l+" | dist "+n,!0)}})),e.myEventCls.onIds("#"+e.pre+"apply_adjustmem","click",(function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+e.pre+"extra_mem_z").val()),l=parseFloat($("#"+e.pre+"intra_mem_z").val());i.selectionCls.adjustMembrane(n,l);let r="adjust membrane z-axis "+n+" "+l;s.setLogCmd(r,!0)})),e.myEventCls.onIds("#"+e.pre+"apply_selectplane","click",(function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+e.pre+"selectplane_z1").val()),l=parseFloat($("#"+e.pre+"selectplane_z2").val());i.selectionCls.selectBtwPlanes(n,l);let r="select planes z-axis "+n+" "+l;s.setLogCmd(r,!0)})),e.myEventCls.onIds(["#"+e.pre+"atomsCustomHbond2","#"+e.pre+"atomsCustomHbond","#"+e.pre+"analysis_hbond","#"+e.pre+"analysis_saltbridge","#"+e.pre+"analysis_contact","#"+e.pre+"hbondthreshold","#"+e.pre+"saltbridgethreshold","#"+e.pre+"contactthreshold"],"change",(function(t){e.icn3d.bHbondCalc=!1})),e.myEventCls.onIds("#"+e.pre+"crossstrucinter","change",(function(t){let i=e.icn3d;t.preventDefault(),i.crossstrucinter=parseInt($("#"+e.pre+"crossstrucinter").val()),s.setLogCmd("cross structure interaction "+i.crossstrucinter,!0)})),e.myEventCls.onIds("#"+e.pre+"applyhbonds","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("3d")})),e.myEventCls.onIds("#"+e.pre+"applycontactmap","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+i.pre+"contactdist").val()),l=$("#"+i.pre+"contacttype").val();await i.contactMapCls.contactMap(n,l),s.setLogCmd("contact map | dist "+n+" | type "+l,!0)})),e.myEventCls.onIds("#"+e.pre+"hbondWindow","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("view")})),e.myEventCls.onIds("#"+e.pre+"areaWindow","click",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.pre+"atomsCustomHbond").val(),l=$("#"+e.pre+"atomsCustomHbond2").val();i.analysisCls.calcBuriedSurface(l,n),s.setLogCmd("calc buried surface | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"sortSet1","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("save1")})),$(document).on("click","."+e.pre+"showintercntonly",(function(t){e.icn3d,t.stopImmediatePropagation(),$(".icn3d-border").hide(),s.setLogCmd("table inter count only",!0)})),$(document).on("click","."+e.pre+"showinterdetails",(function(t){e.icn3d,t.stopImmediatePropagation(),$(".icn3d-border").show(),s.setLogCmd("table inter details",!0)})),e.myEventCls.onIds("#"+e.pre+"sortSet2","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("save2")})),e.myEventCls.onIds("#"+e.pre+"hbondGraph","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("graph")})),e.myEventCls.onIds("#"+e.pre+"hbondLineGraph","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("linegraph")})),e.myEventCls.onIds("#"+e.pre+"hbondLineGraph2","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!0,s.setLogCmd("show ref number",!0),await i.showInterCls.showInteractions("linegraph")})),e.myEventCls.onIds("#"+e.pre+"hbondScatterplot","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("scatterplot")})),e.myEventCls.onIds("#"+e.pre+"hbondScatterplot2","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!0,s.setLogCmd("show ref number",!0),await i.showInterCls.showInteractions("scatterplot")})),e.myEventCls.onIds("#"+e.pre+"hbondLigplot","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("ligplot")})),$(document).on("click","#"+e.svgid+" circle.selected",(function(t){let s=e.icn3d;t.stopImmediatePropagation();let i=$(this).attr("res");!1!==s.bSelectResidue||s.bShift||s.bCtrl||s.selectionCls.removeSelection(),void 0!==i&&(s.hlSeqCls.selectResidues(i,this),s.hlObjectsCls.addHlObjects())})),e.myEventCls.onIds("#"+e.svgid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.svgid,s.inputid+"_force_directed_graph.svg")})),e.myEventCls.onIds("#"+e.svgid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.svgid,s.inputid+"_force_directed_graph.png")})),e.myEventCls.onIds("#"+e.svgid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.graphStr.substr(0,s.graphStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_force_directed_graph.json","text",[i])})),$(document).on("click","#"+e.svgid_ct+"_svg",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.svgid_ct,s.inputid+"_cartoon.svg")})),$(document).on("click","#"+e.svgid_ct+"_png",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.svgid_ct,s.inputid+"_cartoon.png")})),$(document).on("click","#"+e.svgid_ct+"_json",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveFile(s.inputid+"_cartoon.json","text",[s.graphStr])})),$(document).on("change","#"+e.svgid_ct+"_label",(function(t){e.icn3d,t.preventDefault();let i=$("#"+e.svgid_ct+"_label").val();$("#"+e.svgid_ct+" text").removeClass(),$("#"+e.svgid_ct+" text").addClass(i),s.setLogCmd("cartoon label "+i,!0)})),e.myEventCls.onIds("#"+e.linegraphid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.linegraphid,s.inputid+"_line_graph.svg")})),e.myEventCls.onIds("#"+e.linegraphid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.linegraphid,s.inputid+"_line_graph.png")})),e.myEventCls.onIds("#"+e.linegraphid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.lineGraphStr.substr(0,s.lineGraphStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_line_graph.json","text",[i])})),e.myEventCls.onIds("#"+e.linegraphid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.linegraphid+"_scale").val();$("#"+e.linegraphid).attr("width",(i.linegraphWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("line graph scale "+n,!0)})),e.myEventCls.onIds("#"+e.scatterplotid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.scatterplotid,s.inputid+"_scatterplot.svg")})),e.myEventCls.onIds("#"+e.scatterplotid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.scatterplotid,s.inputid+"_scatterplot.png")})),e.myEventCls.onIds("#"+e.scatterplotid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.scatterplotStr.substr(0,s.scatterplotStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_scatterplot.json","text",[i])})),e.myEventCls.onIds("#"+e.scatterplotid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.scatterplotid+"_scale").val();$("#"+e.scatterplotid).attr("width",(i.scatterplotWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("scatterplot scale "+n,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.ligplotid,s.inputid+"_ligplot.svg",void 0,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.ligplotid,s.inputid+"_ligplot.png",void 0,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.ligplotid+"_scale").val();$("#"+e.ligplotid).attr("width",(i.ligplotWidth*parseFloat(n)).toString()+"px"),i.ligplotScale=parseFloat(n),s.setLogCmd("ligplot scale "+n,!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.contactmapid,s.inputid+"_contactmap.svg",!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.contactmapid,s.inputid+"_contactmap.png",!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.contactmapStr.substr(0,s.contactmapStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_contactmap.json","text",[i])})),e.myEventCls.onIds("#"+e.contactmapid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.contactmapid+"_scale").val();$("#"+e.contactmapid).attr("width",(i.contactmapWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("contactmap scale "+n,!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault();$("#"+e.alignerrormapid+"_scale").val(1),$("#"+e.alignerrormapid).attr("width",(s.alignerrormapWidth*parseFloat(1)).toString()+"px"),s.saveFileCls.saveSvg(e.alignerrormapid,s.inputid+"_alignerrormap.svg",!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault();$("#"+e.alignerrormapid+"_scale").val(1),$("#"+e.alignerrormapid).attr("width",(s.alignerrormapWidth*parseFloat(1)).toString()+"px"),s.saveFileCls.savePng(e.alignerrormapid,s.inputid+"_alignerrormap.png",!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_full","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.contactMapCls.afErrorMap(afid,!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.alignerrormapStr.substr(0,s.alignerrormapStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_alignerrormap.json","text",[i])})),e.myEventCls.onIds("#"+e.alignerrormapid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.alignerrormapid+"_scale").val();$("#"+e.alignerrormapid).attr("width",(i.alignerrormapWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("alignerrormap scale "+n,!0)})),e.myEventCls.onIds("#"+e.svgid+"_label","change",(function(t){e.icn3d,t.preventDefault();let i=$("#"+e.svgid+"_label").val();$("#"+e.svgid+" text").removeClass(),$("#"+e.svgid+" text").addClass(i),s.setLogCmd("graph label "+i,!0)})),e.myEventCls.onIds("#"+e.svgid+"_hideedges","change",(function(t){let i=e.icn3d;t.preventDefault(),e.htmlCls.hideedges=parseInt($("#"+e.svgid+"_hideedges").val()),e.htmlCls.hideedges?(e.htmlCls.contactInsideColor="FFF",e.htmlCls.hbondInsideColor="FFF",e.htmlCls.ionicInsideColor="FFF"):(e.htmlCls.contactInsideColor="DDD",e.htmlCls.hbondInsideColor="AFA",e.htmlCls.ionicInsideColor="8FF"),void 0!==i.graphStr&&(i.bRender&&e.htmlCls.force&&e.drawGraph(i.graphStr,e.pre+"dl_graph"),s.setLogCmd("hide edges "+e.htmlCls.hideedges,!0))})),e.myEventCls.onIds("#"+e.svgid+"_force","change",(function(t){let i=e.icn3d;t.preventDefault(),e.htmlCls.force=parseInt($("#"+e.svgid+"_force").val()),void 0!==i.graphStr&&(s.setLogCmd("graph force "+e.htmlCls.force,!0),i.getGraphCls.handleForce())})),e.myEventCls.onIds("#"+e.pre+"hbondReset","click",(function(t){let i=e.icn3d;t.preventDefault(),i.viewInterPairsCls.resetInteractionPairs(),s.setLogCmd("reset interaction pairs",!0)})),e.myEventCls.onIds("#"+e.pre+"applypick_labels","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"labeltext").val(),l=$("#"+e.pre+"labelsize").val(),r=$("#"+e.pre+"labelcolor").val(),o=$("#"+e.pre+"labelbkgd").val();if("0"!==l&&""!==l&&"undefined"!==l||(l=0),"0"!==r&&""!==r&&"undefined"!==r||(r=0),"0"!==o&&""!==o&&"undefined"!==o||(o=0),void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{let e=(i.pAtom.coord.x+i.pAtom2.coord.x)/2,t=(i.pAtom.coord.y+i.pAtom2.coord.y)/2,a=(i.pAtom.coord.z+i.pAtom2.coord.z)/2;i.analysisCls.addLabel(n,e,t,a,l,r,o,"custom"),i.pickpair=!1;let d="",c="",h="";0!=l&&(d=" | size "+l),0!=r&&(c=" | color "+r),0!=o&&(h=" | background "+o),s.setLogCmd("add label "+n+" | x "+e.toPrecision(4)+" y "+t.toPrecision(4)+" z "+a.toPrecision(4)+d+c+h+" | type custom",!0),i.drawCls.draw()}})),e.myEventCls.onIds("#"+e.pre+"applyselection_labels","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"labeltext2").val(),l=$("#"+e.pre+"labelsize2").val(),r=$("#"+e.pre+"labelcolor2").val(),o=$("#"+e.pre+"labelbkgd2").val();"0"!==l&&""!==l&&"undefined"!==l||(l=0),"0"!==r&&""!==r&&"undefined"!==r||(r=0),"0"!==o&&""!==o&&"undefined"!==o||(o=0);let a=i.applyCenterCls.centerAtoms(e.hashUtilsCls.hash2Atoms(i.hAtoms,i.atoms)),d=a.center.x,c=a.center.y,h=a.center.z;i.analysisCls.addLabel(n,d,c,h,l,r,o,"custom");let p="",m="",u="";0!=l&&(p=" | size "+l),0!=r&&(m=" | color "+r),0!=o&&(u=" | background "+o),s.setLogCmd("add label "+n+" | x "+d.toPrecision(4)+" y "+c.toPrecision(4)+" z "+h.toPrecision(4)+p+m+u+" | type custom",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applylabelcolor","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.labelcolor=$("#"+e.pre+"labelcolorall").val(),s.setLogCmd("set label color "+i.labelcolor,!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applypick_stabilizer","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),void 0===i.pAtom||void 0===i.pAtom2?alert("Please pick another atom"):(i.pickpair=!1,s.setLogCmd("add one stabilizer | "+i.pAtom.serial+" "+i.pAtom2.serial,!0),void 0===i.pairArray&&(i.pairArray=[]),i.pairArray.push(i.pAtom.serial),i.pairArray.push(i.pAtom2.serial),i.threeDPrintCls.setThichknessFor3Dprint(),i.drawCls.draw())}));let l=new CP(document.querySelector("#"+e.pre+"colorcustom"));l.on("change",(function(e){this.target.value=e})),e.myEventCls.onIds("#"+e.pre+"colorcustom","input",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","keyup",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","paste",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","cut",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()}));let r=new CP(document.querySelector("#"+e.pre+"labelcolorall"));r.on("change",(function(e){this.target.value=e})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","input",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","keyup",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","paste",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","cut",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"applypick_stabilizer_rm","click",(function(t){let i=e.icn3d;if(t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{i.pickpair=!1,s.setLogCmd("remove one stabilizer | "+i.pAtom.serial+" "+i.pAtom2.serial,!0);let e=[];e.push(i.pAtom.serial),e.push(i.pAtom2.serial),i.threeDPrintCls.removeOneStabilizer(e),i.drawCls.draw()}})),e.myEventCls.onIds("#"+e.pre+"applypick_measuredistance","click",(function(t){let i=e.icn3d;if(t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1,void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{let t=0,n=0,l=$("#"+e.pre+"linecolor").val(),r=(i.pAtom.coord.x+i.pAtom2.coord.x)/2,o=(i.pAtom.coord.y+i.pAtom2.coord.y)/2,a=(i.pAtom.coord.z+i.pAtom2.coord.z)/2;i.analysisCls.addLineFromPicking("distance");let d=(parseInt(10*i.pAtom.coord.distanceTo(i.pAtom2.coord))/10).toString()+" A";i.analysisCls.addLabel(d,r,o,a,t,l,n,"distance");let c="",h="",p="";0!=l&&(h=" | color "+l),s.setLogCmd("add label "+d+" | x "+r.toPrecision(4)+" y "+o.toPrecision(4)+" z "+a.toPrecision(4)+c+h+p+" | type distance",!0),i.drawCls.draw(),i.pk=2}})),e.myEventCls.onIds("#"+e.pre+"applydist2","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1;let n=$("#"+e.pre+"atomsCustomDist").val(),l=$("#"+e.pre+"atomsCustomDist2").val();i.analysisCls.measureDistTwoSets(n,l),s.setLogCmd("dist | "+l+" "+n,!0)})),$(document).on("click",".icn3d-distance",(function(t){let i=e.icn3d;t.preventDefault(),i.bMeasureDistance=!1,i.distPnts=[],i.labels.distance=[],i.lines.distance=[];let n=$(this).attr("sets").split("|"),l=[n[0]],r=[n[1]];i.analysisCls.measureDistTwoSets(l,r),s.setLogCmd("dist | "+r+" "+l,!0)})),e.myEventCls.onIds("#"+e.pre+"applydisttable","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1;let n=$("#"+e.pre+"atomsCustomDistTable").val(),l=$("#"+e.pre+"atomsCustomDistTable2").val();i.analysisCls.measureDistManySets(n,l),e.htmlCls.dialogCls.openDlg("dl_disttable","Distance among the sets"),s.setLogCmd("disttable | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyangletable","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureAngle=!1;let n=$("#"+e.pre+"atomsCustomAngleTable").val(),l=$("#"+e.pre+"atomsCustomAngleTable2").val();i.analysisCls.measureAngleManySets(n,l),e.htmlCls.dialogCls.openDlg("dl_angletable","Angles among the sets"),s.setLogCmd("angletable | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applylinebtwsets","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bLinebtwsets=!1;let n=$("#"+e.pre+"linebtwsets").val(),l=$("#"+e.pre+"linebtwsets2").val(),r=i.definedSetsCls.getAtomsFromNameArray(n),o=i.definedSetsCls.getAtomsFromNameArray(l),a=i.contactCls.getExtent(r),d=i.contactCls.getExtent(o),c=new THREE.Vector3(a[2][0],a[2][1],a[2][2]),h=new THREE.Vector3(d[2][0],d[2][1],d[2][2]),p=$("#"+e.pre+"linebtwsets_radius").val(),m=$("#"+e.pre+"linebtwsets_customcolor").val(),u=$("#"+e.pre+"linebtwsets_opacity").val(),g="Solid"!=$("#"+e.pre+"linebtwsets_style").val(),f="cylinder",C="add line | x1 "+c.x.toPrecision(4)+" y1 "+c.y.toPrecision(4)+" z1 "+c.z.toPrecision(4)+" | x2 "+h.x.toPrecision(4)+" y2 "+h.y.toPrecision(4)+" z2 "+h.z.toPrecision(4)+" | color "+m+" | dashed "+g+" | type "+f+" | radius "+p+" | opacity "+u;s.setLogCmd(C,!0),i.analysisCls.addLine(c.x,c.y,c.z,h.x,h.y,h.z,m,g,f,p,u),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applycartoonshape","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bCartoonshape=!1;let n=$("#"+e.pre+"cartoonshape").val(),l=i.definedSetsCls.getAtomsFromNameArray(n),r=i.contactCls.getExtent(l),o=new THREE.Vector3(r[2][0],r[2][1],r[2][2]),a=$("#"+e.pre+"cartoonshape_shape").val(),d=$("#"+e.pre+"cartoonshape_radius").val(),c=$("#"+e.pre+"cartoonshape_customcolor").val(),h=$("#"+e.pre+"cartoonshape_opacity").val();c="#"+c.replace(/\#/g,"");let p,m=e.parasCls.thr(c);"Sphere"==a?(i.sphereCls.createSphereBase(o,m,d,void 0,void 0,void 0,h),p="add sphere | "+n+" | color "+c+" | opacity "+h+" | radius "+d):(i.boxCls.createBox_base(o,d,m,void 0,void 0,void 0,h),p="add cube | "+n+" | color "+c+" | opacity "+h+" | radius "+d),s.setLogCmd(p,!0),i.shapeCmdHash[p]=1,i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearlinebtwsets","click",(function(t){let i=e.icn3d;t.preventDefault(),i.lines.cylinder=[],s.setLogCmd("clear line between sets",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearcartoonshape","click",(function(t){let i=e.icn3d;t.preventDefault(),i.shapeCmdHash={},s.setLogCmd("clear shape",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"apply_thickness_3dprint","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("3dprint")})),e.myEventCls.onIds("#"+e.pre+"apply_thickness_style","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("style"),e.htmlCls.setMenuCls.setLogWindow(!0)})),e.myEventCls.onIds("#"+e.pre+"reset_thickness_3dprint","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("3dprint",!0)})),e.myEventCls.onIds("#"+e.pre+"reset_thickness_style","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("style",!0),e.htmlCls.setMenuCls.setLogWindow(!0)})),e.myEventCls.onIds("#"+e.pre+"reset","click",(function(t){let s=e.icn3d;s.selectionCls.resetAll(),s.bRender&&s.drawCls.draw()})),e.myEventCls.onIds(["#"+e.pre+"toggleHighlight","#"+e.pre+"toggleHighlight2"],"click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.toggleHighlight(),s.setLogCmd("toggle highlight",!0)})),e.myEventCls.onIds("#"+e.pre+"seq_clearselection","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"seq_clearselection2","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),t.preventDefault(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"alignseq_clearselection","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"replay","click",(async function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.CURRENTNUMBER++;let n=e.cfg.replay?i.STATENUMBER:i.STATENUMBER-1;if(i.CURRENTNUMBER==n)i.bReplay=0,$("#"+e.pre+"replay").hide();else if(i.commands.length>0&&i.commands[i.CURRENTNUMBER]){await i.loadScriptCls.execCommandsBase(i.CURRENTNUMBER,i.CURRENTNUMBER,i.STATENUMBER);let t=i.commands[i.CURRENTNUMBER].indexOf("|||"),n=-1!=t?i.commands[i.CURRENTNUMBER].substr(0,t):i.commands[i.CURRENTNUMBER],l=30,r=n.length>l?n.substr(0,l)+"...":n,o=i.applyCommandCls.getMenuFromCmd(r);$("#"+e.pre+"replay_cmd").html("Cmd: "+r),$("#"+e.pre+"replay_menu").html("Menu: "+o),s.setLogCmd(n,!0),i.drawCls.draw()}})),t.loadScriptCls.pressCommandtext(),e.myEventCls.onIds("#"+e.pre+"seq_saveselection","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"seq_command_name").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),e.myEventCls.onIds("#"+e.pre+"seq_saveselection2","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"seq_command_name2").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),e.myEventCls.onIds("#"+e.pre+"mn2_saveresidue","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),i.selectionCls.saveEachResiInSel(),s.setLogCmd("select each residue",!0)})),e.myEventCls.onIds("#"+e.pre+"alignseq_saveselection","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"alignseq_command_name").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),$(document).on("click","."+e.pre+"outputselection",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelectResidue=!1,i.bSelectAlignResidue=!1,s.setLogCmd("output selection",!0),i.threeDPrintCls.outputSelection()})),$(document).on("click",".icn3d-saveicon",(function(t){e.icn3d,t.stopImmediatePropagation();let i=$(this).attr("pid");s.saveHtml(i),s.setLogCmd("save html "+i,!0)})),$(document).on("click",".icn3d-hideicon",(function(t){let s=e.icn3d;t.stopImmediatePropagation();let i=$(this).attr("pid");if(!e.cfg.notebook)if(void 0===s.dialogHashHideDone&&(s.dialogHashHideDone={}),void 0===s.dialogHashPosToRight&&(s.dialogHashPosToRight={}),s.dialogHashHideDone.hasOwnProperty(i)){let e=s.dialogHashHideDone[i].width,t=s.dialogHashHideDone[i].height,n=s.dialogHashHideDone[i].position;$("#"+i).dialog("option","width",e),$("#"+i).dialog("option","height",t),$("#"+i).dialog("option","position",n),delete s.dialogHashHideDone[i]}else{s.dialogHashHideDone[i]={width:$("#"+i).dialog("option","width"),height:$("#"+i).dialog("option","height"),position:$("#"+i).dialog("option","position")};let e,t=160,n=80;$("#"+i).dialog("option","width",t),$("#"+i).dialog("option","height",n),s.dialogHashPosToRight.hasOwnProperty(i)?e=s.dialogHashPosToRight[i]:(e=Object.keys(s.dialogHashPosToRight).length*(t+10),s.dialogHashPosToRight[i]=e);let l={my:"right bottom",at:"right-"+e+" bottom+60",of:"#"+s.divid,collision:"none"};$("#"+i).dialog("option","position",l)}})),$(document).on("click","."+e.pre+"selres",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelOneRes=!1;let n=$("."+e.pre+"seloneres");for(let e=0,t=n.length;e0&&(r+=" or "),r+=i.selectionCls.selectOneResid(t)}i.hlUpdateCls.updateHlAll(),s.setLogCmd(r,!0)})),$(document).on("click","."+e.pre+"seloneres",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.bSelOneRes||(s.hAtoms={},s.selectedResidues={},s.bSelOneRes=!0);let i=$(this).attr("resid"),n=$(this).attr("id");$("#"+n).length&&$("#"+n)[0].checked?s.selectionCls.selectOneResid(i):$("#"+n).length&&!$("#"+n)[0].checked&&s.selectionCls.selectOneResid(i,!0),s.hlUpdateCls.updateHlAll()})),$(document).on("click","."+e.pre+"selset",(async function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelOneRes=!1;let n=$("."+e.pre+"seloneres");for(let e=0,t=n.length;e0))return{sequencesHtml:a,maxSeqCnt:d};c[s]=1}let h,p=void 0===t||t;p&&(o.hAtoms={});let m,u,g=0,f=0;for(let t=0,l=e.length;t0?m:l,p&&(o.hAtoms=r.hashUtilsCls.unionHash(o.hAtoms,o.alnChains[l]));let C=[],b="",y=void 0!==o.alnChainsSeq[l]?o.alnChainsSeq[l].length:0;y>d&&(d=y);let v,_,w=u.indexOf("_"),S=u.substr(0,w),A=u.substr(w+1);for(let e=0,t=y;e=0;--e)if("-"!=o.alnChainsSeq[l][e].resn){_=o.alnChainsSeq[l][e].resi;break}b+=""+v+"",h=!(void 0===e||!c.hasOwnProperty(u));for(let e=0,t=y;e"}""!==a?-1!=o.alnChainsSeq[l][e].resi?b+=""+o.alnChainsSeq[l][e].resn+"":b+=""+o.alnChainsSeq[l][e].resn+"":b+=""+o.alnChainsSeq[l][e].resn+""}b+=""+_+"";let x=e.length,k=void 0!==o.alnChainsAnno[l]?o.alnChainsAnno[l].length:0;for(let t=0,s=k;t";for(let e=0,i=o.alnChainsAnno[l][t].length;e ':' ';else if("E"==i)if(void 0!==o.alnChainsSeq[s][e]){let i=s+"_"+o.alnChainsSeq[s][e].resi;if(o.residues.hasOwnProperty(i)){o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[i]).ssend?C[t]+=' ':C[t]+=' '}else C[t]+=' '}else C[t]+=' ';else C[t]+="c"==i?' ':"o"==i?' ':"";else C[t]+=""+i+""}C[t]+=""}let O=l,R=void 0!==o.pdbid_chain2title?o.pdbid_chain2title[u]:"";for(let e=k-1;e>=0;--e){let t=o.alnChainsAnTtl[l][e][0];"SS"==t&&(t=""),a+="
    "+t+"
    "+C[e]+"
    "}a+=''+b+"
    ",g>0&&(f+=y),++g}return{sequencesHtml:a,maxSeqCnt:d}}}class u{constructor(e){this.icn3dui=e}getLink(e,t,s,i){let n=this.icn3dui;return n.icn3d,n.htmlCls.allMenus[e]=t,i&&(n.htmlCls.allMenusSel[e]=i),s&&(n.htmlCls.simpleMenus[e]=1),"
  • "+t+"
  • "}getMenuText(e,t,s,i,n){let l=this.icn3dui;l.icn3d,l.htmlCls.allMenus[e]=t,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1);let r="icn3d-menupd"==s?" style='padding-left:1.5em!important;'":"";return"
  • "+t+""}getMenuUrl(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.allMenus[e]=s,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1),"
  • "+s+"
  • "}getMenuSep(){return this.icn3dui.icn3d,"
  • -
  • "}getLinkWrapper(e,t,s,i,n,l){let r=this.icn3dui;r.icn3d,r.htmlCls.allMenus[e]=t,n&&(r.htmlCls.allMenusSel[e]=n),i&&(r.htmlCls.simpleMenus[e]=1);let o=l?' style="display:none"':"";return"
  • "+t+"
  • "}getLinkWrapper2(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.allMenus[e]=t,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1),"
  • "+t+""}getRadio(e,t,s,i,n,l){let r=this.icn3dui;r.icn3d,r.htmlCls.allMenus[t]=s,l&&(r.htmlCls.allMenusSel[t]=l),n&&(r.htmlCls.simpleMenus[t]=1);let o=i?" checked":"";return"
  • "}getRadioColor(e,t,s,i,n,l,r){let o=this.icn3dui;o.icn3d,o.htmlCls.allMenus[t]=s,r&&(o.htmlCls.allMenusSel[t]=r),l&&(o.htmlCls.simpleMenus[t]=1);let a=n?" checked":"";return"
  • "}setAdvanced(e){let t=this.icn3dui;t.icn3d;let s=void 0===e?"":e,i=t.cfg.notebook?"icn3d-hidden":"",n=t.htmlCls.divStr+"dl_advanced"+s+"' class='"+i+"'>";return n+="",n+="",n+="
    ",n+="",n+="",n+="",n+="
    Select:"+t.htmlCls.inputTextStr+"id='"+t.pre+"command"+s+"' placeholder='$[structures].[chains]:[residues]@[atoms]' size='60'>
    Name:"+t.htmlCls.inputTextStr+"id='"+t.pre+"command_name"+s+"' placeholder='my_selection' size='60'>
    "+t.htmlCls.space3+t.htmlCls.buttonStr+"command_apply"+s+"'>Save Selection to Defined Sets
    ",n+='Specification Tips:

    ',n+=t.htmlCls.divStr+"specguide"+s+"' style='display:none; width:500px' class='icn3d-box'>",n+='Specification: In the selection "$1HHO,4N7N.A,B,C:5-10,LV,3AlaVal,chemicals@CA,C,C*":',n+='
    • "$1HHO,4N7N" uses "$" to indicate structure selection.
      ',n+='
    • ".A,B,C" uses "." to indicate chain selection.
      ',n+='
    • ":5-10,LV,3LeuVal,chemicals" uses the colon ":" to indicate residue selection. Residue selection could be residue number(5-10), one-letter IUPAC residue name abbreviations(LV), three-letter residue names(AlaVal, "3" indicates each residue name has three letters), or predefined names: "proteins", "nucleotides", "chemicals", "ions", and "water". IUPAC abbreviations can be written either as a contiguous string(e.g., ":LV"), in order to find all instances of that sequence in the structure, or they can be separated by commas(e.g., ":L,V") to select all residues of a given type in the structure(in the latter case, select all Leucine and Valine in the structure).
      ',n+='
    • "@CA,C,C*" uses "@" to indicate atom name selection. "C*" selects any atom names starting with "C".
      ',n+='
    • Partial definition is allowed, e.g., ":1-10" selects all residue IDs 1-10 in all chains.
      ',n+='
    • Different selections can be unioned(with "or", default), intersected(with "and"), or negated(with "not"). For example, ":1-10 or :K" selects all residues 1-10 and all Lys residues. ":1-10 and :K" selects all Lys residues in the range of residue number 1-10. ":1-10 or not :K" selects all residues 1-10, which are not Lys residues.
      ',n+='
    • The wild card character "X" or "x" can be used to represent any character.',n+="
    ",n+="Set Operation:",n+='
    • Users can select multiple sets in the menu "Select > Defined Sets".
      ',n+='
    • Different sets can be unioned(with "or", default), intersected(with "and"), or negated(with "not"). For example, if the "Defined Sets" menu has four sets ":1-10", ":11-20", ":5-15", and ":7-8", the command "saved atoms :1-10 or :11-20 and :5-15 not :7-8" unions all residues 1-10 and 11-20 to get the residues 1-20, then intersects with the residues 5-15 to get the residues 5-15, then exclude the residues 7-8 to get the final residues 5-6 and 9-15.
    ',n+="Full commands in url or command window:",n+="
    • Select without saving the set: select $1HHO,4N7N.A,B,C:5-10,LV,chemicals@CA,C,C*
      ",n+="
    • Select and save: select $1HHO,4N7N.A,B,C:5-10,LV,chemicals@CA,C,C* | name my_name
    ",n+="",n+="
    ",n+="",n}getOptionHtml(e,t){let s=this.icn3dui;s.icn3d;let i="";for(let n=0,l=e.length;n"+l+"":s.htmlCls.optionStr+"'"+l+"'>"+l+""}return i}setColorHints(){let e=this.icn3dui;e.icn3d;let t="";return t+=e.htmlCls.divNowrapStr+'Green: H-Bonds; ',t+='Cyan: Salt Bridge/Ionic; ',t+='Grey: Contacts',t+=e.htmlCls.divNowrapStr+'Magenta: Halogen Bonds; ',t+='Red: π-Cation; ',t+='Blue: π-Stacking',t}setThicknessHtml(e){let t=this.icn3dui,s=t.icn3d,i="",n="3dprint"==e?"1":"0.1",l="3dprint"==e?"1.2":"0.3",r="3dprint"==e?"0.8":"0.4",o="3dprint"==e?"0.8":"0.4",a="3dprint"==e?"1":"0.4",d="3dprint"==e?"0.6":"0.3",c="3dprint"==e?"1":"0.2",h="3dprint"==e?"2":"1.3",p="3dprint"==e?"1.4":"0.8",m=40,u=.8,g=.4,f=.2,C=0,b=1,y=0;if("style"==e){if(""!=this.getCookie("shininess")&&(m=parseFloat(this.getCookie("shininess"))),""!=this.getCookie("light1")&&(u=parseFloat(this.getCookie("light1")),g=parseFloat(this.getCookie("light2")),f=parseFloat(this.getCookie("light3"))),""!=this.getCookie("lineRadius")){n=parseFloat(this.getCookie("lineRadius")),l=parseFloat(this.getCookie("coilWidth")),r=parseFloat(this.getCookie("cylinderRadius"));let e=this.getCookie("crosslinkRadius");o=isNaN(e)?s.crosslinkRadius:parseFloat(e),a=parseFloat(this.getCookie("traceRadius")),d=parseFloat(this.getCookie("dotSphereScale")),c=parseFloat(this.getCookie("ribbonthickness")),h=parseFloat(this.getCookie("helixSheetWidth")),p=parseFloat(this.getCookie("nucleicAcidWidth"))}""!=this.getCookie("glycan")&&(C=parseFloat(this.getCookie("glycan"))),""!=this.getCookie("membrane")&&(b=parseFloat(this.getCookie("membrane"))),""!=this.getCookie("cmdwindow")&&(y=parseFloat(this.getCookie("cmdwindow"))),i+="Note: The following parameters will be saved in cache. You just need to set them once.

    ",i+="1. Shininess: "+t.htmlCls.inputTextStr+"id='"+t.pre+"shininess' value='"+m+"' size=4>"+t.htmlCls.space3+"(for the shininess of the 3D objects, default 40)

    ",i+="2. Three directional lights:
    ",i+="Key Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light1' value='"+u+"' size=4>"+t.htmlCls.space3+"(for the light strength of the key light, default 0.8)
    ",i+="Fill Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light2' value='"+g+"' size=4>"+t.htmlCls.space3+"(for the light strength of the fill light, default 0.4)
    ",i+="Back Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light3' value='"+f+"' size=4>"+t.htmlCls.space3+"(for the light strength of the back light, default 0.2)

    ",i+="3. Thickness:
    "}return i+="Line Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"linerad_"+e+"' value='"+n+"' size=4>"+t.htmlCls.space3+"(for stabilizers, hydrogen bonds, distance lines, default 0.1)
    ",i+="Coil Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"coilrad_"+e+"' value='"+l+"' size=4>"+t.htmlCls.space3+"(for coils, default 0.3)
    ",i+="Stick Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"stickrad_"+e+"' value='"+r+"' size=4>"+t.htmlCls.space3+"(for sticks, default 0.4)
    ",i+="Cross-Linkage Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"crosslinkrad_"+e+"' value='"+o+"' size=4>"+t.htmlCls.space3+"(for cross-linkages, default 0.4)
    ",i+="Trace Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"tracerad_"+e+"' value='"+a+"' size=4>"+t.htmlCls.space3+"(for C alpha trace, O3' trace, default 0.4)
    ",i+="Ribbon Thickness: "+t.htmlCls.inputTextStr+"id='"+t.pre+"ribbonthick_"+e+"' value='"+c+"' size=4>"+t.htmlCls.space3+"(for helix and sheet ribbons, nucleotide ribbons, default 0.2)
    ",i+="Protein Ribbon Width: "+t.htmlCls.inputTextStr+"id='"+t.pre+"prtribbonwidth_"+e+"' value='"+h+"' size=4>"+t.htmlCls.space3+"(for helix and sheet ribbons, default 1.3)
    ",i+="Nucleotide Ribbon Width: "+t.htmlCls.inputTextStr+"id='"+t.pre+"nucleotideribbonwidth_"+e+"' value='"+p+"' size=4>"+t.htmlCls.space3+"(for nucleotide ribbons, default 0.8)
    ",i+="Ball Scale: "+t.htmlCls.inputTextStr+"id='"+t.pre+"ballscale_"+e+"' value='"+d+"' size=4>"+t.htmlCls.space3+"(for styles 'Ball and Stick' and 'Dot', default 0.3)
    ","style"==e&&(i+="
    4. Show Glycan Cartoon: "+t.htmlCls.inputTextStr+"id='"+t.pre+"glycan' value='"+C+"' size=4>"+t.htmlCls.space3+"(0: hide, 1: show, default 0)
    ",i+="
    5. Show Membrane: "+t.htmlCls.inputTextStr+"id='"+t.pre+"membrane' value='"+b+"' size=4>"+t.htmlCls.space3+"(0: hide, 1: show, default 1)
    ",i+="
    6. Enlarge Command Window: "+t.htmlCls.inputTextStr+"id='"+t.pre+"cmdwindow' value='"+y+"' size=4>"+t.htmlCls.space3+"(0: Regular, 1: Large, default 0)

    "),i+=t.htmlCls.spanNowrapStr+""+t.htmlCls.buttonStr+"apply_thickness_"+e+"'>Apply   ",i+=t.htmlCls.spanNowrapStr+""+t.htmlCls.buttonStr+"reset_thickness_"+e+"'>Reset",i}getCookie(e){let t=e+"=",s=decodeURIComponent(document.cookie).split(";");for(let e=0;e":(n+='
    ',n+="
    Selection: Name: "+s.htmlCls.inputTextStr+"id='"+s.pre+"seq_command_name"+e+"' value='seq_"+l+"' size='5'> "+s.htmlCls.space2+"

    ",n+=s.htmlCls.divStr+"seqguide"+e+"' style='display:none; white-space:normal;' class='icn3d-box'>"),n+=this.getSelectionHints();return n+="Residue labeling: standard residue with coordinates: UPPER case letter; nonstandard residue with coordinates: the first UPPER case letter plus a period except that water residue uses the letter 'O'; residue missing coordinates: lower case letter."+(s.utilsCls.isMac()&&!s.utilsCls.isMobile()?"

    Turn on scroll bar: System preferences -> General -> show scroll bars -> check Always":"")+"
    ",n}setAlignSequenceGuide(e,t){let s=this.icn3dui,i=s.icn3d,n="";let l=i&&i.defNames2Atoms?Object.keys(i.defNames2Atoms).length:1;n+='
    ',n+="
    Selection: Name: "+s.htmlCls.inputTextStr+"id='"+s.pre+"alignseq_command_name' value='alseq_"+l+"' size='10'> "+s.htmlCls.space2+"

    ",n+=s.htmlCls.divStr+"alignseqguide' style='display:none; white-space:normal;' class='icn3d-box'>",n+=this.getSelectionHints();return n+="Residue labeling: aligned residue with coordinates: UPPER case letter; non-aligned residue with coordinates: lower case letter which can be highlighted; residue missing coordinates: lower case letter which can NOT be highlighted."+(s.utilsCls.isMac()&&!s.utilsCls.isMobile()?"

    Turn on scroll bar: System preferences -> General -> show scroll bars -> check Always":"")+"
    ",n}getSelectionHints(){let e=this.icn3dui;e.icn3d;let t="";if(e.utilsCls.isMobile())t+='Select Aligned Sequences: touch to select, touch again to deselect, multiple selection is allowed without Ctrl key, click "Save Selection" to save the current selection.
    ';else{t+='Select on 1D sequences: drag to select, drag again to deselect, multiple selection is allowed without Ctrl key, click "Save Selection" to save the current selection.

    ',t+="Select on 2D interaction diagram: click on the nodes or lines. The nodes are chains and can be united with the Ctrl key. The lines are interactions and can NOT be united. Each click on the lines selects half of the lines, i.e., select the interacting residues in one of the two chains.

    ",t+="Select on 3D structures: "+(e.utilsCls.isMobile()?"use finger to pick":'hold "Alt" and use mouse to pick')+', click the second time to deselect, hold "Ctrl" to union selection, hold "Shift" to select a range, press the up/down arrow to switch among atom/residue/strand/chain/structure, click "Save Selection" to save the current selection.

    ',t+='Save the current selection(either on 3D structure, 2D interactions, or 1D sequence): open the menu "Select -> Save Selection", specify the name and description for the selection, and click "Save".

    '}return t}addGsizeSalt(e){let t=this.icn3dui;t.icn3d;let s="";s+="Grid Size: ",s+="Salt Concentration: M
    ",s}getFootHtml(e,t){let s=this.icn3dui;s.icn3d;let i="
    ";return"delphi"==e?s.cfg.cid?i+="Note: Partial charges(MMFF94) are from PubChem Compound SDF files.

    ":(i+="Note: Only the selected residues are used for DelPhi potential calculation by solving linear Poisson-Boltzmann equation.",i+='

    ',i+=s.htmlCls.divStr+t+"' style='display:none;'>",i+="
    The hydrogens and partial charges of proteins and nucleotides are added using DelPhiPKa with the Amber charge and size files. The hydrogens of ligands are added using Open Babel. The partial charges of ligands are calculated using Antechamber with the Gasteiger charge method. All partial charges are calculated at pH 7.

    ",i+='Lipids are treated as ligands. Please use "HETATM" instead of "ATOM " for each lipid atom in your PDB file. Each phosphate in lipids is assigned with a charge of -1. You can download PQR and modify it, or prepare your PQR file using other tools. Then load the PQR file at the menu "Analysis > Load PQR/Potential".

    ',i+="
    "):(i+="Note: Always load a PDB file before loading a PQR or DelPhi potential file.",i+='

    ',i+=s.htmlCls.divStr+t+"' style='display:none;'>",i+='The PDB file can be loaded in the URL with "pdbid=" or at "File > Open File". The PQR file can be prepared at the menu "Analysis > Download PQR" with your modification or using other tools. The DelPhi potential file can be calculated at DelPhi Web Server and be exported as a Cube file. ',"url"==e&&(i+="The PQR or potential file can be accessed in a URL if it is located in the same host as iCn3D."),i+="

    ",i+=""),i+="",i}getPotentialHtml(e,t){let s=this.icn3dui;s.icn3d;let i,n,l,r,o,a="";r="Equipotential Map",o="Surface with Potential","delphi"==e?n="delphi":"local"==e?(i="pqr",n="phi",l="cube"):"url"==e&&(i="pqrurl",n="phiurl",l="cubeurl"),a+=s.htmlCls.divStr+"dl_"+n+"' class='"+t+"'>",a+=s.htmlCls.setDialogCls.addNotebookTitle("dl_"+n,"DelPhi Potential"),a+=s.htmlCls.divStr+"dl_"+n+"_tabs' style='border:0px;'>",a+="",a+=s.htmlCls.divStr+n+"tab1'>","delphi"==e&&(a+=this.addGsizeSalt(n+"1")+"
    "),a+="Potential contour at: kT/e(25.6mV at 298K)

    ","delphi"==e?(a+=s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map",a+=s.htmlCls.buttonStr+n+"mapNo' style='margin-left:30px;'>Remove Map
    "):"local"==e?(a+=s.htmlCls.divStr+n+"tab1_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo'>Remove Map",a+=s.htmlCls.divStr+n+"tab1_"+i+"'>",a+=this.addGsizeSalt(i)+"
    ",a+="PQR File: "+s.htmlCls.inputFileStr+"id='"+s.pre+i+"file'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+n+"'>",a+="Phi File: "+s.htmlCls.inputFileStr+"id='"+s.pre+n+"file'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+l+"'>",a+="Cube File: "+s.htmlCls.inputFileStr+"id='"+s.pre+l+"file'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=""):"url"==e&&(a+=s.htmlCls.divStr+n+"tab1_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo'>Remove Map",a+=s.htmlCls.divStr+n+"tab1_"+i+"2'>",a+=this.addGsizeSalt(i)+"
    ",a+="PQR URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+i+"file'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+n+"2'>",a+="Phi URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+n+"file'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+l+"2'>",a+="Cube URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+l+"file'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=""),a+="
    "+this.getFootHtml(e,n+"tab1_foot"),a+="",a+=s.htmlCls.divStr+n+"tab2'>","delphi"==e&&(a+=this.addGsizeSalt(n+"2")+"
    "),a+="Surface with max potential at: kT/e(25.6mV at 298K)

    ",a+="Surface: ",a+="Opacity: ",a+="Wireframe:
    ",a+="
    ","delphi"==e?(a+=s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential",a+=s.htmlCls.buttonStr+n+"mapNo2' style='margin-left:30px;'>Remove Surface
    "):"local"==e?(a+=s.htmlCls.divStr+n+"tab2_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo2'>Remove Surface",a+=s.htmlCls.divStr+n+"tab2_"+i+"'>",a+=this.addGsizeSalt(i+"2")+"
    ",a+="PQR File: "+s.htmlCls.inputFileStr+"id='"+s.pre+i+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+n+"'>",a+="Phi File: "+s.htmlCls.inputFileStr+"id='"+s.pre+n+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+l+"'>",a+="Cube File: "+s.htmlCls.inputFileStr+"id='"+s.pre+l+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=""):"url"==e&&(a+=s.htmlCls.divStr+n+"tab2_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo2'>Remove Surface",a+=s.htmlCls.divStr+n+"tab2_"+i+"2'>",a+=this.addGsizeSalt(i+"2")+"
    ",a+="PQR URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+i+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+n+"2'>",a+="Phi URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+n+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+l+"2'>",a+="Cube URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+l+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=""),a+="
    "+this.getFootHtml(e,n+"tab2_foot"),a+="",a+="",a+="",a}async exportPqr(e){let t=this.icn3dui,s=t.icn3d,i={},n={},l=t.hashUtilsCls.intHash(s.dAtoms,s.hAtoms);for(let e in l)s.atoms[e],s.ions.hasOwnProperty(e)?i[e]=1:n[e]=1;let r=e?"pdb":"pqr";if(t.cfg.cid){let l="",o=!e;l+=s.saveFileCls.getAtomPDB(n,o)+s.saveFileCls.getAtomPDB(i,o);let a=Object.keys(t.utilsCls.getHlStructures()).join(",");s.saveFileCls.saveFile(a+"_icn3d."+r,"text",[l])}else{if(t.utilsCls.isCalphaPhosOnly(t.hashUtilsCls.hash2Atoms(n,s.atoms)))return void alert("The potential will not be shown because the side chains are missing in the structure...");let l="",o=!0;l+=s.saveFileCls.getAtomPDB(n,void 0,void 0,void 0,void 0,void 0,o),l+=s.saveFileCls.getAtomPDB(i,!0,void 0,!0);let a=t.htmlCls.baseUrl+"delphi/delphi.cgi",d={pdb2pqr:l,pdbid:t.cfg.cid?t.cfg.cid:Object.keys(s.structures).toString()},c=await t.getAjaxPostPromise(a,d,!0,void 0,void 0,!0,"text");if(e){let e=c.split("\n"),s="";for(let i=0,n=e.length;i Save File > iCn3D PNG Image"...');else if(-1!=r){let t=e.substr(r+l.length);i.htmlCls.clickMenuCls.setLogCmd("load iCn3D PNG image "+$("#"+i.pre+"pngimage").val(),!1),window.open(t,"_self")}else if(-1!=a){let i="Start of data file======\n",l=e.indexOf(i);n.bInputfile=-1!=l,n.bInputPNGWithData=n.bInputfile;let r=t?t.replace(/;/g,"\n"):"",h=e.indexOf("End of data file======\n");d=e.substr(l+i.length,h-l-i.length);let p="Start of type file======\n",m=e.indexOf(p),u=e.indexOf("End of type file======\n"),g=e.substr(m+p.length,u-m-p.length-1);n.InputfileType=g;let f=e.indexOf("End of state file======\n");c=e.substr(a+o.length,f-a-o.length),c=decodeURIComponent(c+"\n"+r),s&&("pdb"===g?(await n.pdbParserCls.loadPdbData(d),n.commands=[],n.optsHistory=[]):("mol2"===g?await n.mol2ParserCls.loadMol2Data(d):"sdf"===g?await n.sdfParserCls.loadSdfData(d):"xyz"===g?await n.xyzParserCls.loadXyzData(d):"mmcif"===g&&await n.mmcifParserCls.loadMmcifData(d),n.commands=[],n.optsHistory=[]),await n.loadScriptCls.loadScript(c,!0))}return{pdb:d,statefile:c}}fileSupport(){window.File&&window.FileReader&&window.FileList&&window.Blob||alert("The File APIs are not fully supported in this browser.")}getLinkColor(){let e="";return e+=", linkmap: {\n",e+='3: {"type": "peptidebond", "c":""},\n',e+='4: {"type": "ssbond", "c":"FFA500"},\n',e+='5: {"type": "ionic", "c":"0FF"},\n',e+='6: {"type": "ionicInside", "c":"FFF"},\n',e+='11: {"type": "contact", "c":"888"},\n',e+='12: {"type": "contactInside", "c":"FFF"},\n',e+='13: {"type": "hbond", "c":"0F0"},\n',e+='14: {"type": "hbondInside", "c":"FFF"},\n',e+='15: {"type": "clbond", "c":"006400"},\n',e+='17: {"type": "halogen", "c":"F0F"},\n',e+='18: {"type": "halogenInside", "c":"FFF"},\n',e+='19: {"type": "pication", "c":"F00"},\n',e+='20: {"type": "picationInside", "c":"FFF"},\n',e+='21: {"type": "pistacking", "c":"00F"},\n',e+='22: {"type": "pistackingInside", "c":"FFF"}\n',e+="}}\n",', linkmap: {\n3: {"type": "peptidebond", "c":""},\n4: {"type": "ssbond", "c":"FFA500"},\n5: {"type": "ionic", "c":"0FF"},\n6: {"type": "ionicInside", "c":"FFF"},\n11: {"type": "contact", "c":"888"},\n12: {"type": "contactInside", "c":"FFF"},\n13: {"type": "hbond", "c":"0F0"},\n14: {"type": "hbondInside", "c":"FFF"},\n15: {"type": "clbond", "c":"006400"},\n17: {"type": "halogen", "c":"F0F"},\n18: {"type": "halogenInside", "c":"FFF"},\n19: {"type": "pication", "c":"F00"},\n20: {"type": "picationInside", "c":"FFF"},\n21: {"type": "pistacking", "c":"00F"},\n22: {"type": "pistackingInside", "c":"FFF"}\n}}\n'}setCookieForThickness(){let e=this.icn3dui,t=e.icn3d;if(!e.bNode){let e=3650;this.setCookie("lineRadius",t.lineRadius,e),this.setCookie("coilWidth",t.coilWidth,e),this.setCookie("cylinderRadius",t.cylinderRadius,e),this.setCookie("crosslinkRadius",t.crosslinkRadius,e),this.setCookie("traceRadius",t.traceRadius,e),this.setCookie("dotSphereScale",t.dotSphereScale,e),this.setCookie("ribbonthickness",t.ribbonthickness,e),this.setCookie("helixSheetWidth",t.helixSheetWidth,e),this.setCookie("nucleicAcidWidth",t.nucleicAcidWidth,e)}}setLineThickness(e,t){let s=this.icn3dui,i=s.icn3d;if(i.bSetThickness=!0,"style"==e&&(t&&($("#"+s.pre+"shininess").val("40"),$("#"+s.pre+"light1").val("0.8"),$("#"+s.pre+"light2").val("0.4"),$("#"+s.pre+"light3").val("0.2"),$("#"+s.pre+"glycan").val("0"),$("#"+s.pre+"membrane").val("1"),$("#"+s.pre+"cmdwindow").val("0")),i.shininess=parseFloat($("#"+s.pre+"shininess").val()),i.light1=parseFloat($("#"+s.pre+"light1").val()),i.light2=parseFloat($("#"+s.pre+"light2").val()),i.light3=parseFloat($("#"+s.pre+"light3").val()),i.bGlycansCartoon=parseInt($("#"+s.pre+"glycan").val()),i.bMembrane=parseInt($("#"+s.pre+"membrane").val()),i.bCmdWindow=parseInt($("#"+s.pre+"cmdwindow").val())),t&&($("#"+s.pre+"linerad_"+e).val(.1),$("#"+s.pre+"coilrad_"+e).val(.3),$("#"+s.pre+"stickrad_"+e).val(.4),$("#"+s.pre+"crosslinkrad_"+e).val(.4),$("#"+s.pre+"tracerad_"+e).val(.4),$("#"+s.pre+"ballscale_"+e).val(.3),$("#"+s.pre+"ribbonthick_"+e).val(.2),$("#"+s.pre+"prtribbonwidth_"+e).val(1.3),$("#"+s.pre+"nucleotideribbonwidth_"+e).val(.8)),i.lineRadius=parseFloat($("#"+s.pre+"linerad_"+e).val()),i.coilWidth=parseFloat($("#"+s.pre+"coilrad_"+e).val()),i.cylinderRadius=parseFloat($("#"+s.pre+"stickrad_"+e).val()),i.crosslinkRadius=parseFloat($("#"+s.pre+"crosslinkrad_"+e).val()),i.traceRadius=parseFloat($("#"+s.pre+"tracerad_"+e).val()),i.dotSphereScale=parseFloat($("#"+s.pre+"ballscale_"+e).val()),i.ribbonthickness=parseFloat($("#"+s.pre+"ribbonthick_"+e).val()),i.helixSheetWidth=parseFloat($("#"+s.pre+"prtribbonwidth_"+e).val()),i.nucleicAcidWidth=parseFloat($("#"+s.pre+"nucleotideribbonwidth_"+e).val()),!s.bNode){let e=3650;this.setCookie("shininess",i.shininess,e),this.setCookie("light1",i.light1,e),this.setCookie("light2",i.light2,e),this.setCookie("light3",i.light3,e),this.setCookie("glycan",i.bGlycansCartoon,e),this.setCookie("membrane",i.bMembrane,e),this.setCookie("cmdwindow",i.bCmdWindow,e)}if(this.setCookieForThickness(),e=t){let e="reset thickness";s.htmlCls.clickMenuCls.setLogCmd(e,!0),i.bSetThickness=!1,i.threeDPrintCls.resetAfter3Dprint()}else s.htmlCls.clickMenuCls.setLogCmd("set thickness | linerad "+i.lineRadius+" | coilrad "+i.coilWidth+" | stickrad "+i.cylinderRadius+" | crosslinkrad "+i.crosslinkRadius+" | tracerad "+i.traceRadius+" | ribbonthick "+i.ribbonthickness+" | proteinwidth "+i.helixSheetWidth+" | nucleotidewidth "+i.nucleicAcidWidth+" | ballscale "+i.dotSphereScale,!0),s.htmlCls.clickMenuCls.setLogCmd("set glycan "+i.bGlycansCartoon,!0),s.htmlCls.clickMenuCls.setLogCmd("set membrane "+i.bMembrane,!0),s.htmlCls.clickMenuCls.setLogCmd("set cmdwindow "+i.bCmdWindow,!0);i.drawCls.draw()}setCookie(e,t,s){let i=new Date;i.setTime(i.getTime()+24*s*60*60*1e3);let n="expires="+i.toUTCString();document.cookie=e+"="+t+";"+n+";path=/"}updateSurfPara(e){let t=this.icn3dui,s=t.icn3d;s.phisurftype=$("#"+t.pre+e+"surftype").val(),s.phisurfop=$("#"+t.pre+e+"surfop").val(),s.phisurfwf=$("#"+t.pre+e+"surfwf").val()}exportPdb(){let e=this.icn3dui,t=e.icn3d,s="",i=e.hashUtilsCls.intHash(t.dAtoms,t.hAtoms);if(s+=t.saveFileCls.getAtomPDB(i),!e.bNode){let i=Object.keys(e.utilsCls.getHlStructures()).join(",");t.saveFileCls.saveFile(i+"_icn3d.pdb","text",[s])}return s}exportSecondary(){let e=this.icn3dui,t=e.icn3d,s="",i=e.hashUtilsCls.intHash(t.dAtoms,t.hAtoms);if(s+=t.saveFileCls.getSecondary(i),!e.bNode){let i=Object.keys(e.utilsCls.getHlStructures()).join(",");t.saveFileCls.saveFile(i+"_icn3d_ss.txt","text",[s])}return s}}class g{constructor(e){let t=e;this.icn3dui=e,this.cfg=this.icn3dui.cfg,this.opts={},this.opts.background="black",this.allMenus={},this.allMenusSel={},this.simpleMenus={},this.shownMenus={},this.WIDTH=400,this.HEIGHT=400,this.RESIDUE_WIDTH=10,t.utilsCls.isMobile()||this.cfg.mobilemenu?this.MENU_HEIGHT=0:this.MENU_HEIGHT=40,this.LOG_HEIGHT=65,this.MENU_WIDTH=750,this.LESSWIDTH=20,this.LESSWIDTH_RESIZE=20,this.LESSHEIGHT=20,this.width2d=200,this.CMD_HEIGHT=.8*this.LOG_HEIGHT,this.EXTRAHEIGHT=this.MENU_HEIGHT+this.CMD_HEIGHT,null!=this.cfg.showmenu&&0==this.cfg.showmenu&&(this.EXTRAHEIGHT-=this.MENU_HEIGHT),null!=this.cfg.showcommand&&0==this.cfg.showcommand&&(this.EXTRAHEIGHT-=this.CMD_HEIGHT),this.GREY8="#AAAAAA",this.GREYB="#CCCCCC",this.GREYC="#DDDDDD",this.GREYD="#EEEEEE",this.ORANGE="#FFA500",this.themecolor="blue",this.defaultValue=1,this.ssValue=3,this.coilValue=3,this.contactValue=11,this.contactInsideValue=12,this.hbondValue=13,this.hbondInsideValue=14,this.ssbondValue=4,this.ionicValue=5,this.ionicInsideValue=6,this.clbondValue=15,this.halogenValue=17,this.halogenInsideValue=18,this.picationValue=19,this.picationInsideValue=20,this.pistackingValue=21,this.pistackingInsideValue=22,this.contactColor="888",this.contactInsideColor="FFF",this.hbondColor="0F0",this.hbondInsideColor="FFF",this.ssbondColor="FFA500",this.ionicColor="0FF",this.ionicInsideColor="FFF",this.clbondColor="006400",this.halogenColor="F0F",this.halogenInsideColor="FFF",this.picationColor="F00",this.picationInsideColor="FFF",this.pistackingColor="00F",this.pistackingInsideColor="FFF",this.hideedges=1,this.force=4,this.simulation=void 0,this.baseUrl=window&&window.location&&"structure.ncbi.nlm.nih.gov"==window.location.hostname?"https://structure.ncbi.nlm.nih.gov/Structure/":"https://www.ncbi.nlm.nih.gov/Structure/",this.tmalignUrl=this.baseUrl+"tmalign/tmalign.cgi",this.divStr="
    ",this.spanNowrapStr="",this.inputTextStr="=2.0 are supported.")));const a=new pe(o,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});a.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e=0&&void 0===r[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}a.setExtensions(l),a.setPlugins(r),a.parse(s,i)}parseAsync(e,t){const s=this;return new Promise((function(i,n){s.parse(e,t,i,n)}))}}function C(){let e={};return{get:function(t){return e[t]},add:function(t,s){e[t]=s},remove:function(t){delete e[t]},removeAll:function(){e={}}}}const b={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression"};class y{constructor(e){this.parser=e,this.name=b.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let s=0,i=t.length;s=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,n.source,l)}}class R{constructor(e){this.parser=e,this.name=b.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,s=this.parser,i=s.json,n=i.textures[e];if(!n.extensions||!n.extensions[t])return null;const l=n.extensions[t],r=i.images[l.source];let o=s.textureLoader;if(r.uri){const e=s.options.manager.getHandler(r.uri);null!==e&&(o=e)}return this.detectSupport().then((function(n){if(n)return s.loadTextureImage(e,l.source,o);if(i.extensionsRequired&&i.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return s.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}}class I{constructor(e){this.name=b.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,s=t.bufferViews[e];if(s.extensions&&s.extensions[this.name]){const e=s.extensions[this.name],i=this.parser.getDependency("buffer",e.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return Promise.all([i,n.ready]).then((function(t){const s=e.byteOffset||0,i=e.byteLength||0,l=e.count,r=e.byteStride,o=new ArrayBuffer(l*r),a=new Uint8Array(t[0],s,i);return n.decodeGltfBuffer(new Uint8Array(o),l,r,a,e.mode,e.filter),o}))}return null}}const E="glTF",T=1313821514,P=5130562;class D{constructor(e){this.name=b.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,12);if(this.header={magic:THREE.LoaderUtils.decodeText(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==E)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const s=this.header.length-12,i=new DataView(e,12);let n=0;for(;n",t).replace("#include ",s).replace("#include ",i).replace("#include ",n).replace("#include ",l)},Object.defineProperties(this,{specular:{get:function(){return r.specular.value},set:function(e){r.specular.value=e}},specularMap:{get:function(){return r.specularMap.value},set:function(e){r.specularMap.value=e,e?this.defines.USE_SPECULARMAP="":delete this.defines.USE_SPECULARMAP}},glossiness:{get:function(){return r.glossiness.value},set:function(e){r.glossiness.value=e}},glossinessMap:{get:function(){return r.glossinessMap.value},set:function(e){r.glossinessMap.value=e,e?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_UV=""):(delete this.defines.USE_GLOSSINESSMAP,delete this.defines.USE_UV)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(e)}copy(e){return super.copy(e),this.specularMap=e.specularMap,this.specular.copy(e.specular),this.glossinessMap=e.glossinessMap,this.glossiness=e.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this}}class L{constructor(){this.name=b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,this.specularGlossinessParams=["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity"]}getMaterialType(){return H}extendParams(e,t,s){const i=t.extensions[this.name];e.color=new Color(1,1,1),e.opacity=1;const n=[];if(Array.isArray(i.diffuseFactor)){const t=i.diffuseFactor;e.color.fromArray(t),e.opacity=t[3]}if(void 0!==i.diffuseTexture&&n.push(s.assignTexture(e,"map",i.diffuseTexture,sRGBEncoding)),e.emissive=new Color(0,0,0),e.glossiness=void 0!==i.glossinessFactor?i.glossinessFactor:1,e.specular=new Color(1,1,1),Array.isArray(i.specularFactor)&&e.specular.fromArray(i.specularFactor),void 0!==i.specularGlossinessTexture){const t=i.specularGlossinessTexture;n.push(s.assignTexture(e,"glossinessMap",t)),n.push(s.assignTexture(e,"specularMap",t,sRGBEncoding))}return Promise.all(n)}createMaterial(e){const t=new H(e);return t.fog=!0,t.color=e.color,t.map=void 0===e.map?null:e.map,t.lightMap=null,t.lightMapIntensity=1,t.aoMap=void 0===e.aoMap?null:e.aoMap,t.aoMapIntensity=1,t.emissive=e.emissive,t.emissiveIntensity=1,t.emissiveMap=void 0===e.emissiveMap?null:e.emissiveMap,t.bumpMap=void 0===e.bumpMap?null:e.bumpMap,t.bumpScale=1,t.normalMap=void 0===e.normalMap?null:e.normalMap,t.normalMapType=TangentSpaceNormalMap,e.normalScale&&(t.normalScale=e.normalScale),t.displacementMap=null,t.displacementScale=1,t.displacementBias=0,t.specularMap=void 0===e.specularMap?null:e.specularMap,t.specular=e.specular,t.glossinessMap=void 0===e.glossinessMap?null:e.glossinessMap,t.glossiness=e.glossiness,t.alphaMap=null,t.envMap=void 0===e.envMap?null:e.envMap,t.envMapIntensity=1,t}}class N{constructor(){this.name=b.KHR_MESH_QUANTIZATION}}class q extends THREE.Interpolant{constructor(e,t,s,i){super(e,t,s,i)}copySampleValue_(e){const t=this.resultBuffer,s=this.sampleValues,i=this.valueSize,n=e*i*3+i;for(let e=0;e!==i;e++)t[e]=s[n+e];return t}}q.prototype.beforeStart_=q.prototype.copySampleValue_,q.prototype.afterEnd_=q.prototype.copySampleValue_,q.prototype.interpolate_=function(e,t,s,i){const n=this.resultBuffer,l=this.sampleValues,r=this.valueSize,o=2*r,a=3*r,d=i-t,c=(s-t)/d,h=c*c,p=h*c,m=e*a,u=m-a,g=-2*p+3*h,f=p-h,C=1-g,b=f-h+c;for(let e=0;e!==r;e++){const t=l[u+e+r],s=l[u+e+o]*d,i=l[m+e+r],a=l[m+e]*d;n[e]=C*t+b*s+g*i+f*a}return n};const U=new THREE.Quaternion;class B extends q{interpolate_(e,t,s,i){const n=super.interpolate_(e,t,s,i);return U.fromArray(n).normalize().toArray(n),n}}const j=0,z=1,G=2,V=3,W=4,Y=5,X=6,K={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},J={9728:THREE.NearestFilter,9729:THREE.LinearFilter,9984:THREE.NearestMipmapNearestFilter,9985:THREE.LinearMipmapNearestFilter,9986:THREE.NearestMipmapLinearFilter,9987:THREE.LinearMipmapLinearFilter},Z={33071:THREE.ClampToEdgeWrapping,33648:THREE.MirroredRepeatWrapping,10497:THREE.RepeatWrapping},Q={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},ee={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},te={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},se={CUBICSPLINE:void 0,LINEAR:THREE.InterpolateLinear,STEP:THREE.InterpolateDiscrete},ie="OPAQUE",ne="MASK",le="BLEND";function re(e,t,s){for(const i in s.extensions)void 0===e[i]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[i]=s.extensions[i])}function oe(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function ae(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let s=0,i=t.weights.length;s{const s=this.associations.get(e);null!=s&&this.associations.set(t,s);for(const[s,i]of e.children.entries())n(i,t.children[s])};return n(s,i),i.name+="_instance_"+e.uses[t]++,i}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let s=0;s=2&&m.setY(t,c[e*l+1]),l>=3&&m.setZ(t,c[e*l+2]),l>=4&&m.setW(t,c[e*l+3]),l>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return m}))}loadTexture(e){const t=this.json,s=this.options,i=t.textures[e].source,n=t.images[i];let l=this.textureLoader;if(n.uri){const e=s.manager.getHandler(n.uri);null!==e&&(l=e)}return this.loadTextureImage(e,i,l)}loadTextureImage(e,t,s){const i=this,n=this.json,l=n.textures[e],r=n.images[t],o=(r.uri||r.bufferView)+":"+l.sampler;if(this.textureCache[o])return this.textureCache[o];const a=this.loadImageSource(t,s).then((function(t){t.flipY=!1,l.name&&(t.name=l.name);const s=(n.samplers||{})[l.sampler]||{};return t.magFilter=J[s.magFilter]||LinearFilter,t.minFilter=J[s.minFilter]||LinearMipmapLinearFilter,t.wrapS=Z[s.wrapS]||RepeatWrapping,t.wrapT=Z[s.wrapT]||RepeatWrapping,i.associations.set(t,{textures:e}),t})).catch((function(){return null}));return this.textureCache[o]=a,a}loadImageSource(e,t){const s=this,i=this.json,n=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then((e=>e.clone()));const l=i.images[e],r=self.URL||self.webkitURL;let o=l.uri||"",a=!1;if(void 0!==l.bufferView)o=s.getDependency("bufferView",l.bufferView).then((function(e){a=!0;const t=new Blob([e],{type:l.mimeType});return o=r.createObjectURL(t),o}));else if(void 0===l.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const d=Promise.resolve(o).then((function(e){return new Promise((function(s,i){let l=s;!0===t.isImageBitmapLoader&&(l=function(e){const t=new Texture(e);t.needsUpdate=!0,s(t)}),t.load(THREE.LoaderUtils.resolveURL(e,n.path),l,void 0,i)}))})).then((function(e){var t;return!0===a&&r.revokeObjectURL(o),e.userData.mimeType=l.mimeType||((t=l.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e})).catch((function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),e}));return this.sourceCache[e]=d,d}assignTexture(e,t,s,i){const n=this;return this.getDependency("texture",s.index).then((function(l){if(void 0===s.texCoord||0==s.texCoord||"aoMap"===t&&1==s.texCoord||console.warn("THREE.GLTFLoader: Custom UV set "+s.texCoord+" for texture "+t+" not yet supported."),n.extensions[b.KHR_TEXTURE_TRANSFORM]){const e=void 0!==s.extensions?s.extensions[b.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=n.associations.get(l);l=n.extensions[b.KHR_TEXTURE_TRANSFORM].extendTexture(l,e),n.associations.set(l,t)}}return void 0!==i&&(l.encoding=i),e[t]=l,l}))}assignFinalMaterial(e){const t=e.geometry;let s=e.material;const i=void 0===t.attributes.tangent,n=void 0!==t.attributes.color,l=void 0===t.attributes.normal;if(e.isPoints){const e="PointsMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new PointsMaterial,Material.prototype.copy.call(t,s),t.color.copy(s.color),t.map=s.map,t.sizeAttenuation=!1,this.cache.add(e,t)),s=t}else if(e.isLine){const e="LineBasicMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new LineBasicMaterial,Material.prototype.copy.call(t,s),t.color.copy(s.color),this.cache.add(e,t)),s=t}if(i||n||l){let e="ClonedMaterial:"+s.uuid+":";s.isGLTFSpecularGlossinessMaterial&&(e+="specular-glossiness:"),i&&(e+="derivative-tangents:"),n&&(e+="vertex-colors:"),l&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=s.clone(),n&&(t.vertexColors=!0),l&&(t.flatShading=!0),i&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(s))),s=t}s.aoMap&&void 0===t.attributes.uv2&&void 0!==t.attributes.uv&&t.setAttribute("uv2",t.attributes.uv),e.material=s}getMaterialType(){return MeshStandardMaterial}loadMaterial(e){const t=this,s=this.json,i=this.extensions,n=s.materials[e];let l;const r={},o=n.extensions||{},a=[];if(o[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){const e=i[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];l=e.getMaterialType(),a.push(e.extendParams(r,n,t))}else if(o[b.KHR_MATERIALS_UNLIT]){const e=i[b.KHR_MATERIALS_UNLIT];l=e.getMaterialType(),a.push(e.extendParams(r,n,t))}else{const s=n.pbrMetallicRoughness||{};if(r.color=new Color(1,1,1),r.opacity=1,Array.isArray(s.baseColorFactor)){const e=s.baseColorFactor;r.color.fromArray(e),r.opacity=e[3]}void 0!==s.baseColorTexture&&a.push(t.assignTexture(r,"map",s.baseColorTexture,sRGBEncoding)),r.metalness=void 0!==s.metallicFactor?s.metallicFactor:1,r.roughness=void 0!==s.roughnessFactor?s.roughnessFactor:1,void 0!==s.metallicRoughnessTexture&&(a.push(t.assignTexture(r,"metalnessMap",s.metallicRoughnessTexture)),a.push(t.assignTexture(r,"roughnessMap",s.metallicRoughnessTexture))),l=this._invokeOne((function(t){return t.getMaterialType&&t.getMaterialType(e)})),a.push(Promise.all(this._invokeAll((function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,r)}))))}!0===n.doubleSided&&(r.side=DoubleSide);const d=n.alphaMode||ie;if(d===le?(r.transparent=!0,r.depthWrite=!1):(r.transparent=!1,d===ne&&(r.alphaTest=void 0!==n.alphaCutoff?n.alphaCutoff:.5)),void 0!==n.normalTexture&&l!==MeshBasicMaterial&&(a.push(t.assignTexture(r,"normalMap",n.normalTexture)),r.normalScale=new Vector2(1,1),void 0!==n.normalTexture.scale)){const e=n.normalTexture.scale;r.normalScale.set(e,e)}return void 0!==n.occlusionTexture&&l!==MeshBasicMaterial&&(a.push(t.assignTexture(r,"aoMap",n.occlusionTexture)),void 0!==n.occlusionTexture.strength&&(r.aoMapIntensity=n.occlusionTexture.strength)),void 0!==n.emissiveFactor&&l!==MeshBasicMaterial&&(r.emissive=(new Color).fromArray(n.emissiveFactor)),void 0!==n.emissiveTexture&&l!==MeshBasicMaterial&&a.push(t.assignTexture(r,"emissiveMap",n.emissiveTexture,sRGBEncoding)),Promise.all(a).then((function(){let s;return s=l===H?i[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(r):new l(r),n.name&&(s.name=n.name),oe(s,n),t.associations.set(s,{materials:e}),n.extensions&&re(i,s,n),s}))}createUniqueName(e){const t=PropertyBinding.sanitizeNodeName(e||"");let s=t;for(let e=1;this.nodeNamesUsed[s];++e)s=t+"_"+e;return this.nodeNamesUsed[s]=!0,s}loadGeometries(e){const t=this,s=this.extensions,i=this.primitiveCache;function n(e){return s[b.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then((function(s){return ue(s,e,t)}))}const l=[];for(let s=0,r=e.length;s0&&ae(h,n),h.name=t.createUniqueName(n.name||"mesh_"+e),oe(h,n),c.extensions&&re(i,h,c),t.assignFinalMaterial(h),a.push(h)}for(let s=0,i=a.length;s1?new Group:1===t.length?t[0]:new Object3D,r!==t[0])for(let e=0,s=t.length;e{const t=new Map;for(const[e,s]of n.associations)(e instanceof Material||e instanceof Texture)&&t.set(e,s);return e.traverse((e=>{const s=n.associations.get(e);null!=s&&t.set(e,s)})),t})(l),l}))}}function me(e,t,s,i){const n=s.nodes[e];return i.getDependency("node",e).then((function(e){if(void 0===n.skin)return e;let t;return i.getDependency("skin",n.skin).then((function(e){t=e;const s=[];for(let e=0,n=t.joints.length;e{const s=n[e];return s&&(l={profileId:e,profilePath:`${t}/${s.path}`,deprecated:!!s.deprecated}),!!l})),!l){if(!s)throw new Error("No matching profile name found");const e=n[s];if(!e)throw new Error(`No matching profile name found and default profile "${s}" missing.`);l={profileId:s,profilePath:`${t}/${e.path}`,deprecated:!!e.deprecated}}const r=await Ce(l.profilePath);let o;if(i){let t;if(t="any"===e.handedness?r.layouts[Object.keys(r.layouts)[0]]:r.layouts[e.handedness],!t)throw new Error(`No matching handedness, ${e.handedness}, in profile ${l.profileId}`);t.assetPath&&(o=l.profilePath.replace("profile.json",t.assetPath))}return{profile:r,assetPath:o}}const ye={xAxis:0,yAxis:0,button:0,state:fe.ComponentState.DEFAULT};class ve{constructor(e){this.componentProperty=e.componentProperty,this.states=e.states,this.valueNodeName=e.valueNodeName,this.valueNodeProperty=e.valueNodeProperty,this.valueNodeProperty===fe.VisualResponseProperty.TRANSFORM&&(this.minNodeName=e.minNodeName,this.maxNodeName=e.maxNodeName),this.value=0,this.updateFromComponent(ye)}updateFromComponent({xAxis:e,yAxis:t,button:s,state:i}){const{normalizedXAxis:n,normalizedYAxis:l}=function(e=0,t=0){let s=e,i=t;if(Math.sqrt(e*e+t*t)>1){const n=Math.atan2(t,e);s=Math.cos(n),i=Math.sin(n)}return{normalizedXAxis:.5*s+.5,normalizedYAxis:.5*i+.5}}(e,t);switch(this.componentProperty){case fe.ComponentProperty.X_AXIS:this.value=this.states.includes(i)?n:.5;break;case fe.ComponentProperty.Y_AXIS:this.value=this.states.includes(i)?l:.5;break;case fe.ComponentProperty.BUTTON:this.value=this.states.includes(i)?s:0;break;case fe.ComponentProperty.STATE:this.valueNodeProperty===fe.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(i):this.value=this.states.includes(i)?1:0;break;default:throw new Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`)}}}class _e{constructor(e,t){if(!(e&&t&&t.visualResponses&&t.gamepadIndices&&0!==Object.keys(t.gamepadIndices).length))throw new Error("Invalid arguments supplied");this.id=e,this.type=t.type,this.rootNodeName=t.rootNodeName,this.touchPointNodeName=t.touchPointNodeName,this.visualResponses={},Object.keys(t.visualResponses).forEach((e=>{const s=new ve(t.visualResponses[e]);this.visualResponses[e]=s})),this.gamepadIndices=Object.assign({},t.gamepadIndices),this.values={state:fe.ComponentState.DEFAULT,button:void 0!==this.gamepadIndices.button?0:void 0,xAxis:void 0!==this.gamepadIndices.xAxis?0:void 0,yAxis:void 0!==this.gamepadIndices.yAxis?0:void 0}}get data(){return{id:this.id,...this.values}}updateFromGamepad(e){if(this.values.state=fe.ComponentState.DEFAULT,void 0!==this.gamepadIndices.button&&e.buttons.length>this.gamepadIndices.button){const t=e.buttons[this.gamepadIndices.button];this.values.button=t.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,t.pressed||1===this.values.button?this.values.state=fe.ComponentState.PRESSED:(t.touched||this.values.button>fe.ButtonTouchThreshold)&&(this.values.state=fe.ComponentState.TOUCHED)}void 0!==this.gamepadIndices.xAxis&&e.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=e.axes[this.gamepadIndices.xAxis],this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis,this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis,this.values.state===fe.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>fe.AxisTouchThreshold&&(this.values.state=fe.ComponentState.TOUCHED)),void 0!==this.gamepadIndices.yAxis&&e.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=e.axes[this.gamepadIndices.yAxis],this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis,this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis,this.values.state===fe.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>fe.AxisTouchThreshold&&(this.values.state=fe.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach((e=>{e.updateFromComponent(this.values)}))}}class we{constructor(e,t,s){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No profile supplied");this.xrInputSource=e,this.assetUrl=s,this.id=t.profileId,this.layoutDescription=t.layouts[e.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach((e=>{const t=this.layoutDescription.components[e];this.components[e]=new _e(e,t)})),this.updateFromGamepad()}get gripSpace(){return this.xrInputSource.gripSpace}get targetRaySpace(){return this.xrInputSource.targetRaySpace}get data(){const e=[];return Object.values(this.components).forEach((t=>{e.push(t.data)})),e}updateFromGamepad(){Object.values(this.components).forEach((e=>{e.updateFromGamepad(this.xrInputSource.gamepad)}))}}class Se extends THREE.Object3D{constructor(){super(),this.motionController=null,this.envMap=null}setEnvironmentMap(e){return this.envMap==e||(this.envMap=e,this.traverse((e=>{e.isMesh&&(e.material.envMap=this.envMap,e.material.needsUpdate=!0)}))),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach((e=>{Object.values(e.visualResponses).forEach((e=>{const{valueNode:t,minNode:s,maxNode:i,value:n,valueNodeProperty:l}=e;t&&(l===fe.VisualResponseProperty.VISIBILITY?t.visible=n:l===fe.VisualResponseProperty.TRANSFORM&&(t.quaternion.slerpQuaternions(s.quaternion,i.quaternion,n),t.position.lerpVectors(s.position,i.position,n)))}))})))}}function Ae(e,t){!function(e,t){Object.values(e.components).forEach((e=>{const{type:s,touchPointNodeName:i,visualResponses:n}=e;if(s===fe.ComponentType.TOUCHPAD)if(e.touchPointNode=t.getObjectByName(i),e.touchPointNode){const t=new SphereGeometry(.001),s=new MeshBasicMaterial({color:255}),i=new Mesh(t,s);e.touchPointNode.add(i)}else console.warn(`Could not find touch dot, ${e.touchPointNodeName}, in touchpad component ${e.id}`);Object.values(n).forEach((e=>{const{valueNodeName:s,minNodeName:i,maxNodeName:n,valueNodeProperty:l}=e;if(l===fe.VisualResponseProperty.TRANSFORM){if(e.minNode=t.getObjectByName(i),e.maxNode=t.getObjectByName(n),!e.minNode)return void console.warn(`Could not find ${i} in the model`);if(!e.maxNode)return void console.warn(`Could not find ${n} in the model`)}e.valueNode=t.getObjectByName(s),e.valueNode||console.warn(`Could not find ${s} in the model`)}))}))}(e.motionController,t),e.envMap&&t.traverse((t=>{t.isMesh&&(t.material.envMap=e.envMap,t.material.needsUpdate=!0)})),e.add(t)}class xe{constructor(e=null){this.gltfLoader=e,this.path="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",this._assetCache={},this.gltfLoader||(this.gltfLoader=new f)}createControllerModel(e){const t=new Se;let s=null;return e.addEventListener("connected",(e=>{const i=e.data;"tracked-pointer"===i.targetRayMode&&i.gamepad&&be(i,this.path,"generic-trigger").then((({profile:e,assetPath:n})=>{t.motionController=new we(i,e,n);const l=this._assetCache[t.motionController.assetUrl];if(l)s=l.scene.clone(),Ae(t,s);else{if(!this.gltfLoader)throw new Error("GLTFLoader not set.");this.gltfLoader.setPath(""),this.gltfLoader.load(t.motionController.assetUrl,(e=>{this._assetCache[t.motionController.assetUrl]=e,s=e.scene.clone(),Ae(t,s)}),null,(()=>{throw new Error(`Asset ${t.motionController.assetUrl} missing or malformed.`)}))}})).catch((e=>{console.warn(e)}))})),e.addEventListener("disconnected",(()=>{t.motionController=null,t.remove(s),s=null})),t}}class ke extends THREE.EventDispatcher{constructor(e){if(super(),void 0===e)return void console.error("ControllerGestures must be passed a renderer");const t=new THREE.Clock;this.controller1=e.xr.getController(0),this.controller1.userData.gestures={index:0},this.controller1.userData.selectPressed=!1,this.controller1.addEventListener("selectstart",i),this.controller1.addEventListener("selectend",n),this.controller2=e.xr.getController(1),this.controller2.userData.gestures={index:1},this.controller2.userData.selectPressed=!1,this.controller2.addEventListener("selectstart",i),this.controller2.addEventListener("selectend",n),this.doubleClickLimit=.2,this.pressMinimum=.4,this.right=new THREE.Vector3(1,0,0),this.up=new THREE.Vector3(0,1,0),this.type="unknown",this.prevTap="none",this.clock=t;const s=this;function i(){const e=this.userData.gestures;e.startPosition=void 0,e.startTime=t.getElapsedTime(),-1==s.type.indexOf("tap")&&(e.taps=0),s.type="unknown",this.userData.selectPressed=!0}function n(){const e=this.userData.gestures;e.endTime=t.getElapsedTime();e.endTime-e.startTime.05&&(e.startPosition=this.controller1.position.clone())),this.controller2.userData.selectPressed&&void 0===t.startPosition&&(i=s-t.startTime,i>.05&&(t.startPosition=this.controller2.position.clone())),!this.controller1.userData.selectPressed&&"tap"===this.type&&(i=this.clock.getElapsedTime()-e.endTime,i>this.doubleClickLimit)){switch(e.taps){case 1:self.prevTap="tap";break;case 2:this.dispatchEvent({type:"doubletap",position:this.controller1.position,matrixWorld:this.controller1.matrixWorld}),self.prevTap="doubletap"}this.type="unknown",e.taps=0}if("unknown"===this.type&&this.touch)"doubletap"==self.prevTap?(this.type="pinch",this.startDistance=this.controller1.position.distanceTo(this.controller2.position),this.dispatchEvent({type:"pinch",delta:new THREE.Vector3(0,0,0),scale:1,initialise:!0})):(this.type="pan",this.startPosition=this.controller1.position.clone(),this.dispatchEvent({type:"pan",delta:new THREE.Vector3(0,0,0),initialise:!0}));else if(("pinch"===this.type||"pan"===this.type)&&"doubletap"==self.prevTap&&this.controller2.position){const e=this.controller1.position.distanceTo(this.controller2.position)/this.startDistance,t=this.controller1.position.clone().sub(this.startPosition);this.dispatchEvent({type:"pinch",delta:t,scale:e})}}}class Oe{constructor(e,t){this.config=void 0===t?{panelSize:{width:1,height:1},width:512,height:512,opacity:.7,body:{fontFamily:"Arial",fontSize:30,padding:2,backgroundColor:"#000",fontColor:"#fff",borderRadius:6}}:t,void 0===this.config.width&&(this.config.width=512),void 0===this.config.height&&(this.config.height=512),void 0===this.config.body&&(this.config.body={fontFamily:"Arial",size:30,padding:2,backgroundColor:"#000",fontColor:"#fff",borderRadius:6});const s=this.config.body;void 0===s.borderRadius&&(s.borderRadius=6),void 0===s.fontFamily&&(s.fontFamily="Arial"),void 0===s.padding&&(s.padding=2),void 0===s.fontSize&&(s.fontSize=30),void 0===s.backgroundColor&&(s.backgroundColor="#000"),void 0===s.fontColor&&(s.fontColor="#fff"),Object.entries(this.config).forEach((([e,t])=>{if(!("object"!=typeof t||"panelSize"===e||t instanceof THREE.WebGLRenderer||t instanceof THREE.Scene)){const e=void 0!==t.position?t.position:{x:0,y:0};void 0!==e.left&&void 0===e.x&&(e.x=e.left),void 0!==e.top&&void 0===e.y&&(e.y=e.top);const s=void 0!==t.width?t.width:this.config.width,i=void 0!==t.height?t.height:this.config.height;void 0!==e.right&&void 0===e.x&&(e.x=this.config.width-e.right-s),void 0!==e.bottom&&void 0===e.y&&(e.y=this.config.height-e.bottom-i),void 0===e.x&&(e.x=0),void 0===e.y&&(e.y=0),t.position=e,void 0===t.type&&(t.type="text")}}));const i=this.createOffscreenCanvas(this.config.width,this.config.height);this.context=i.getContext("2d"),this.context.save();const n=void 0!==this.config.opacity?this.config.opacity:.7,l=new THREE.MeshBasicMaterial({transparent:!0,opacity:n});this.panelSize=void 0!==this.config.panelSize?this.config.panelSize:{width:1,height:1};const r=new THREE.PlaneGeometry(this.panelSize.width,this.panelSize.height);this.mesh=new THREE.Mesh(r,l),this.texture=new THREE.CanvasTexture(i),this.mesh.material.map=this.texture,this.scene=this.config.scene;if(Object.values(this.config).filter((e=>"input-text"===e.type)).length>0){this.keyboard=new Re(this.panelSize.width,this.config.renderer);this.keyboard.mesh.position.set(0,-.3,.2),this.mesh.add(this.keyboard.mesh)}if(void 0===e)this.content={body:""},this.config.body.type="text";else{this.content=e;Object.values(t).filter((e=>"button"===e.type||"scroll"===e.overflow||"input-text"===e.type)).length>0&&(void 0===t||void 0===t.renderer?console.warn("CanvasUI: button, scroll or input-text in the config but no renderer"):(this.renderer=t.renderer,this.initControllers()))}this.selectedElements=[void 0,void 0],this.selectPressed=[!1,!1],this.scrollData=[void 0,void 0],this.intersects=[void 0,void 0],this.needsUpdate=!0,this.update()}getIntersectY(e){const t=this.config.height||512,s=this.intersects[e];return void 0===s||void 0===s.uv?0:(1-s.uv.y)*t}initControllers(){this.vec3=new THREE.Vector3,this.mat4=new THREE.Matrix4,this.raycaster=new THREE.Raycaster;const e=this;function t(t){const s=t.target===e.controller?0:1,i=e.selectedElements[s];if(void 0!==i)if("button"==i.type)e.select(s);else if("input-text"==i.type&&e.keyboard)if(e.keyboard.visible)e.keyboard.linkedUI=void 0,e.keyboard.linkedText=void 0,e.keyboard.linkedElement=void 0,e.keyboard.visible=!1;else{let t;e.keyboard.linkedUI=e,Object.entries(e.config).forEach((([e,s])=>{s==i&&(t=e)}));const s=(.5-(i.position.y+i.height+e.config.body.padding)/e.config.height)*e.panelSize.height,n=Math.max(e.panelSize.width,e.panelSize.height)/2;e.keyboard.position.set(0,-n/1.5-s,.1),e.keyboard.linkedText=e.content[t],e.keyboard.linkedName=t,e.keyboard.linkedElement=i,e.keyboard.visible=!0}}function s(t){const s=t.target===e.controller?0:1;if(e.selectPressed[s]=!0,void 0!==e.selectedElements[s]&&"scroll"==e.selectedElements[s].overflow){const t=e.selectedElements[s];e.scrollData[s]={scrollY:t.scrollY,rayY:e.getIntersectY(s)}}}function i(t){const s=t.target===e.controller?0:1;e.selectPressed[s]=!1,void 0!==e.selectedElements[s]&&"scroll"==e.selectedElements[s].overflow&&(e.scrollData[s]=void 0)}if(this.controller=this.renderer.xr.getController(0),this.controller.addEventListener("select",t),this.controller.addEventListener("selectstart",s),this.controller.addEventListener("selectend",i),this.controller1=this.renderer.xr.getController(1),this.controller1.addEventListener("select",t),this.controller1.addEventListener("selectstart",s),this.controller1.addEventListener("selectend",i),this.scene){const e=.015,t=new THREE.IcosahedronBufferGeometry(e),s=new THREE.MeshBasicMaterial({color:170}),i=new THREE.Mesh(t,s);i.visible=!1,this.scene.add(i);const n=new THREE.Mesh(t,s);n.visible=!1,this.scene.add(n),this.intersectMesh=[i,n]}}setClip(e){const t=this.context;if(t.restore(),t.save(),void 0!==e.clipPath){const s=new Path2D(e.clipPath);t.clip(s)}else{const s=void 0!==e.position?e.position:{x:0,y:0},i=e.borderRadius||0,n=e.width||this.config.width,l=e.height||this.config.height;if(t.beginPath(),0!==i){const e=Math.PI/2;t.moveTo(s.x+i,s.y),t.arc(s.x+i,s.y+i,i,e,2*e,!0),t.lineTo(s.x,s.y+l-i),t.arc(s.x+i,s.y+l-i,i,0,e,!0),t.lineTo(s.x+n-i,s.y+l),t.arc(s.x+n-i,s.y+l-i,i,3*e,4*e,!0),t.lineTo(s.x+n,s.y+i),t.arc(s.x+n-i,s.y+i,i,2*e,3*e,!0),t.closePath(),t.clip()}else t.rect(s.x,s.y,n,l),t.clip()}}setPosition(e,t,s){void 0!==this.mesh&&this.mesh.position.set(e,t,s)}setRotation(e,t,s){void 0!==this.mesh&&this.mesh.rotation.set(e,t,s)}updateElement(e,t){let s=this.content[e];void 0!==s?("object"==typeof s?s.content=t:s=t,this.content[e]=s,this.needsUpdate=!0):console.warn(`CanvasGUI.updateElement: No ${e} found`)}get panel(){return this.mesh}getElementAtLocation(e,t){const s=this,i=Object.entries(this.config).filter((([i,n])=>{if(!("object"!=typeof n||"panelSize"===i||"body"===i||n instanceof THREE.WebGLRenderer||n instanceof THREE.Scene)){const i=n.position,l=void 0!==n.width?n.width:s.config.width,r=void 0!==n.height?n.height:s.config.height;return e>=i.x&&e=i.y&&t0?(this.hover(t,s[0].uv),this.intersects[t]=s[0],this.scroll(t)):(this.hover(t),this.intersects[t]=void 0,this.scroll(t))}update(){if(void 0===this.mesh)return;if(this.controller&&this.handleController(this.controller,0),this.controller1&&this.handleController(this.controller1,1),this.keyboard&&this.keyboard.visible&&this.keyboard.update(),!this.needsUpdate)return;let e=this.context;e.clearRect(0,0,this.config.width,this.config.height);const t=this.config.body.backgroundColor?this.config.body.backgroundColor:"#000";!this.config.body.fontFamily||this.config.body.fontFamily;const s=this.config.body.fontColor?this.config.body.fontColor:"#fff";!this.config.body.fontSize||this.config.body.fontSize,this.setClip(this.config.body),e.fillStyle=t,e.fillRect(0,0,this.config.width,this.config.height);const i=this;Object.entries(this.content).forEach((([t,n])=>{const l=void 0!==i.config[t]?i.config[t]:i.config.body;if("none"!==(void 0!==l.display?l.display:"block")){const r=void 0!==l.position?l.position:{x:0,y:0},o=void 0!==l.width?l.width:i.config.width,a=void 0!==l.height?l.height:i.config.height;"button"!=l.type||n.toLowerCase().startsWith("")||(void 0===l.borderRadius&&(l.borderRadius=6),void 0===l.textAlign&&(l.textAlign="center")),i.setClip(l);const d=n.toLowerCase().startsWith(""),c=void 0!==i.selectedElements[0]&&this.selectedElements[0]===l||void 0!==i.selectedElements[1]&&this.selectedElements[1]===l;if(void 0!==l.backgroundColor&&(c&&"button"==l.type&&void 0!==l.hover?e.fillStyle=l.hover:e.fillStyle=l.backgroundColor,e.fillRect(r.x,r.y,o,a)),"text"==l.type||"button"==l.type||"input-text"==l.type){let h=!1;if(c?(d||"button"!=l.type?e.fillStyle=void 0!==l.hover?l.hover:void 0!==l.fontColor?l.fontColor:s:e.fillStyle=void 0!==l.fontColor?l.fontColor:s,h=void 0===l.hover):e.fillStyle=void 0!==l.fontColor?l.fontColor:s,d){const t=n.toUpperCase().substring(6,n.length-7);e.save(),e.translate(r.x,r.y);const s=new Path2D(t);e.fill(s),e.restore()}else i.wrapText(t,n);h&&(e.beginPath(),e.strokeStyle="#fff",e.lineWidth=2,e.rect(r.x,r.y,o,a),e.stroke())}else if("img"==l.type)if(void 0===l.img)this.loadImage(n).then((e=>{console.log(`w: ${e.width} | h: ${e.height}`),l.img=e,i.needsUpdate=!0,i.update()})).catch((e=>console.error(e)));else{const t=o/(l.img.width/l.img.height);e.drawImage(l.img,r.x,r.y,o,t)}}})),this.needsUpdate=!1,this.texture.needsUpdate=!0}loadImage(e){return new Promise(((t,s)=>{const i=new THREE.Image;i.addEventListener("load",(()=>t(i))),i.addEventListener("error",(e=>s(e))),i.src=e}))}createOffscreenCanvas(e,t){const s=document.createElement("canvas");return s.width=e,s.height=t,s}fillRoundedRect(e,t,s,i,n){const l=this.context;l.beginPath(),l.moveTo(e+n,t),l.lineTo(e+s-n,t),l.quadraticCurveTo(e+s,t,e+s,t+n),l.lineTo(e+s,t+i-n),l.quadraticCurveTo(e+s,t+i,e+s-n,t+i),l.lineTo(e+n,t+i),l.quadraticCurveTo(e,t+i,e,t+i-n),l.lineTo(e,t+n),l.quadraticCurveTo(e,t,e+n,t),l.closePath(),l.fill()}lookAt(e){void 0!==this.mesh&&(e instanceof Vector3?this.mesh.lookAt(e):console.error("CanvasUI lookAt called parameter not a THREE.Vector3"))}get visible(){return void 0!==this.mesh&&this.mesh.visible}set visible(e){this.mesh&&(this.mesh.visible=e)}get position(){if(void 0!==this.mesh)return this.mesh.position}set position(e){void 0!==this.mesh&&(e instanceof Vector3?this.mesh.position.copy(e):console.error("CanvasUI trying to set the mesh position using a parameter that is not a THREE.Vector3"))}get quaternion(){if(void 0!==this.mesh)return this.mesh.quaternion}set quaternion(e){void 0!==this.mesh&&(e instanceof QUaternion?this.mesh.quaternion.copy(e):console.error("CanvasUI trying to set the mesh quaternion using a parameter that is not a THREE.Quaternion"))}wrapText(e,t){const s=t.split(" ");let i="";const n=[],l=void 0!==this.config[e]?this.config[e]:this.config.body,r=void 0!==l.width?l.width:this.config.width,o=void 0!==l.height?l.height:this.config.height,a=void 0!==l.position?l.position:{x:0,y:0},d=void 0!==l.padding?l.padding:void 0!==this.config.body.padding?this.config.body.padding:10,c=void 0!==l.paddingTop?l.paddingTop:d,h=void 0!==l.paddingLeft?l.paddingLeft:d,p=void 0!==l.paddingBottom?l.paddingBottom:d,m=void 0!==l.paddingRight?l.paddingRight:d,u={x:a.x+h,y:a.y+c,width:r-h-m,height:o-c-p},g=void 0!==l.textAlign?l.textAlign:void 0!==this.config.body.textAlign?this.config.body.textAlign:"left",f=void 0!==l.fontSize?l.fontSize:void 0!==this.config.body.fontSize?this.config.body.fontSize:30,C=void 0!==l.fontFamily?l.fontFamily:void 0!==this.config.body.fontFamily?this.config.body.fontFamily:"Arial",b=f+(void 0!==l.leading?l.leading:void 0!==this.config.body.leading?this.config.body.leading:8),y=this.context;y.textAlign=g,y.font=`${f}px '${C}'`,s.forEach((function(e){let t=s.length>1?`${i}${e} `:e,l=y.measureText(t);if(l.width>u.width&&e.length>1)if(0==i.length&&l.width>u.width){for(;l.width>u.width;){let s=0;do{s++,t=e.substr(0,s),l=y.measureText(t)}while(l.widthu.height&&"scroll"===l.overflow){void 0===l.scrollY&&(l.scrollY=0);const e=void 0!==l.fontColor?l.fontColor:this.config.body.fontColor;y.fillStyle="#aaa",this.fillRoundedRect(a.x+r-12,a.y,12,o,6),y.fillStyle="#666";const t=u.height/v,s=t*o,i=-l.scrollY*t;this.fillRoundedRect(a.x+r-12,a.y+i,12,s,6),y.fillStyle=e,_=l.scrollY,l.minScrollY=u.height-v}let w,S=_+u.y+f/2;switch(g){case"center":w=u.x+u.width/2;break;case"right":w=u.x+u.width;break;default:w=u.x}n.forEach((e=>{S+b>0&&y.fillText(e,w,S),S+=b}))}}class Re{constructor(e,t,s="EN"){const i=this.getConfig(s);i.panelSize={width:e,height:.5*e},i.height=256,i.body={backgroundColor:"#555"},i.renderer=t;const n=this.getContent(s);this.keyboard=new Oe(n,i),this.keyboard.mesh.visible=!1,this.shift=!1}get mesh(){return this.keyboard.mesh}getConfig(e){const t={};let s=10;const i=39.2,n=49,l="#333",r="#000";let o=s,a=s;for(let e=0;e<10;e++){const d={type:"button",position:{x:a,y:o},width:i,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e)};t[`btn${e}`]=d,a+=49.2}o+=59,a=s;for(let e=0;e<10;e++){const d={type:"button",position:{x:a,y:o},width:i,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+10)};t[`btn${e+10}`]=d,a+=49.2}o+=59,a=s;for(let e=0;e<9;e++){const d=0==e||8==e?1.5*i+5:i,c={type:"button",position:{x:a,y:o},width:d,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+20)};t[`btn${e+20}`]=c,a+=d+s}o+=59,a=s;for(let e=0;e<5;e++){const d=0==e||4==e?88.4:2==e?186.8:i,c={type:"button",position:{x:a,y:o},width:d,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+30)};0==e&&(c.fontSize=20),t[`btn${e+30}`]=c,a+=d+s}return t}getContent(e,t=0){let s,i={};switch(this.language=e,this.keyboardIndex=t,t){case 0:s=["q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","@","⇧","z","x","c","v","b","n","m","⇦","","?123",","," ",".","↲"];for(let e=0;e","_","`","~",":",";","⇦","","abc",","," ",".","↲"];for(let e=0;e=0;e--){let s=t.scene.children[e];t.scene.remove(s)}else t.scene=new THREE.Scene;if(void 0!==t.scene_ghost)for(let e=t.scene_ghost.children.length-1;e>=0;e--){let s=t.scene_ghost.children[e];t.scene_ghost.remove(s)}else t.scene_ghost=new THREE.Scene;if(""!=s.htmlCls.setHtmlCls.getCookie("shininess")){let e=parseFloat(s.htmlCls.setHtmlCls.getCookie("shininess"));t.shininess!=e&&s.htmlCls.clickMenuCls.setLogCmd("set shininess "+e,!0),t.shininess=e}if(!s.bNode&&""!=s.htmlCls.setHtmlCls.getCookie("light1")){let e=parseFloat(s.htmlCls.setHtmlCls.getCookie("light1")),i=parseFloat(s.htmlCls.setHtmlCls.getCookie("light2")),n=parseFloat(s.htmlCls.setHtmlCls.getCookie("light3"));t.light1==e&&t.light2==i&&t.light3==n||s.htmlCls.clickMenuCls.setLogCmd("set light | light1 "+e+" | light2 "+i+" | light3 "+n,!0),t.light1=e,t.light2=i,t.light3=n}t.directionalLight=new THREE.DirectionalLight(16777215,t.light1),t.directionalLight2=new THREE.DirectionalLight(16777215,t.light2),t.directionalLight3=new THREE.DirectionalLight(16777215,t.light3),t.cam_z>0?(t.directionalLight.position.set(-1,1,1),t.directionalLight2.position.set(1,1,1),t.directionalLight3.position.set(1,1,-1),t.lightPos=new THREE.Vector3(-1,1,1),t.lightPos2=new THREE.Vector3(1,1,1),t.lightPos3=new THREE.Vector3(1,1,-1)):(t.directionalLight.position.set(-1,1,-1),t.directionalLight2.position.set(1,1,-1),t.directionalLight3.position.set(1,1,1),t.lightPos=new THREE.Vector3(-1,1,-1),t.lightPos2=new THREE.Vector3(1,1,-1),t.lightPos3=new THREE.Vector3(1,1,1));let i=new THREE.AmbientLight(4210752);if(t.scene.add(t.directionalLight),t.scene.add(i),void 0!==t.mdl)for(let e=t.mdl.children.length-1;e>=0;e--){let s=t.mdl.children[e];s.geometry&&s.geometry.dispose(),s.material&&s.material.dispose(),t.mdl.remove(s)}if(void 0!==t.mdlImpostor){for(let e=t.mdlImpostor.children.length-1;e>=0;e--){let s=t.mdlImpostor.children[e];s.geometry&&s.geometry.dispose(),s.material&&s.material.dispose(),t.mdlImpostor.remove(s)}t.mdlImpostor.children.length=0}s.bNode||t.renderer.renderLists.dispose(),t.mdl=new THREE.Object3D,t.mdlImpostor=new THREE.Object3D,t.scene.add(t.mdl),t.scene.add(t.mdlImpostor),t.mdl_ghost=new THREE.Object3D,t.scene_ghost.add(t.mdl_ghost),t.objects=[],t.objects_ghost=[],t.raycaster=new THREE.Raycaster,t.projector=new THREE.Projector,t.mouse=new THREE.Vector2;let n=s.parasCls.backgroundColors[t.opts.background.toLowerCase()];s.bNode||("transparent"===t.opts.background.toLowerCase()?t.renderer.setClearColor(n,0):t.renderer.setClearColor(n,1)),t.perspectiveCamera=new THREE.PerspectiveCamera(20,t.container.whratio,.1,1e4),t.perspectiveCamera.position.set(0,0,t.cam_z),t.perspectiveCamera.lookAt(new THREE.Vector3(0,0,0)),t.orthographicCamera=new THREE.OrthographicCamera,t.orthographicCamera.position.set(0,0,t.cam_z),t.orthographicCamera.lookAt(new THREE.Vector3(0,0,0)),t.cams={perspective:t.perspectiveCamera,orthographic:t.orthographicCamera}}setVrAr(){let e=this.icn3d;e.icn3dui;let t=this;e.bSetVrAr=!0,e.bVr?(e.canvasUI=this.createUI(),e.raycasterVR=new THREE.Raycaster,e.workingMatrix=new THREE.Matrix4,e.workingVector=new THREE.Vector3,e.origin=new THREE.Vector3,e.dolly=new THREE.Object3D,e.dolly.position.z=5,e.dolly.add(e.cam),e.scene.add(e.dolly),e.dollyId=e.dolly.id,e.dummyCam=new THREE.Object3D,e.cam.add(e.dummyCam),e.clock=new THREE.Clock,e.controllers=this.getControllers(),e.controllers.forEach((s=>{s.addEventListener("connected",(function(e){try{const s={},i="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",n="generic-trigger";be(e.data,i,n).then((({profile:i,assetPath:n})=>{s.name=i.profileId,s.targetRayMode=e.data.targetRayMode,Object.entries(i.layouts).forEach((([e,t])=>{const i={};Object.values(t.components).forEach((e=>{i[e.rootNodeName]=e.gamepadIndices})),s[e]=i})),t.updateControllers(s)}))}catch(e){}})),s.addEventListener("disconnected",(function(){this.remove(this.children[0]),e.controllers.forEach((e=>{}))}))}))):e.bAr&&(e.gestures=new ke(e.renderer),e.scene.add(e.gestures.controller1),e.scene.add(e.gestures.controller2),e.gestures.addEventListener("doubletap",(e=>{t.positionCenter()})),e.gestures.addEventListener("pinch",(s=>{if(void 0!==s.initialise)t.startPosition=e.mdl.position.clone(),t.startScale=e.mdl.scale.clone();else{let i=1;const n=t.startScale.clone().multiplyScalar(s.scale*i);e.mdl.scale.copy(n)}})))}positionCenter(){let e=this.icn3d;e.icn3dui;const t=e.gestures.controller1;e.mdl.position.set(-.06,0,-.6).applyMatrix4(t.matrixWorld),e.mdl.scale.copy(new THREE.Vector3(.005,.005,.005))}setVrArButtons(){let e=this.icn3d,t=e.icn3dui;e.bSetVrArButtons=!0,t.bNode||($("#"+t.pre+"VRButton").remove(),$("#"+t.pre+"viewer").get(0).appendChild(e.VRButtonCls.createButton(e.renderer)),$("#"+t.pre+"ARButton").remove(),$("#"+t.pre+"viewer").get(0).appendChild(e.ARButtonCls.createButton(e.renderer)))}updateControllers(e){this.icn3d.icn3dui,this.addEventForController(e,"right"),this.addEventForController(e,"left")}addEventForController(e,t){let s=this.icn3d;s.icn3dui;const i="right"==t?s.renderer.xr.getController(0):s.renderer.xr.getController(1),n="right"==t?e.right:e.left;if(i&&void 0!==n){let e=!1,t=!1;Object.keys(n).forEach((i=>{-1!=i.indexOf("trigger")&&(e=!0),-1!=i.indexOf("squeeze")&&(t=!0),-1==i.indexOf("thumbstick")&&-1==i.indexOf("touchpad")||(s.xAxisIndex=n[i].xAxis,s.yAxisIndex=n[i].yAxis)})),e&&(i.addEventListener("selectstart",(function(){this.userData.selectPressed=!0})),i.addEventListener("selectend",(function(){this.userData.selectPressed=!1,this.userData.selected=void 0}))),t&&(i.addEventListener("squeezestart",(function(){this.userData.squeezePressed=!0,s.cam.add(s.canvasUI.mesh)})),i.addEventListener("squeezeend",(function(){this.userData.squeezePressed=!1,s.cam.remove(s.canvasUI.mesh)})))}}createUI(){let e=this.icn3d,t=e.icn3dui,s=94,i=50,n=94,l=34,r=12,o="#1c94c4",a="#ccc",d="#fbcb09",c=20;const h={panelSize:{width:2,height:1.6},height:400,select:{type:"button",paddingTop:c,position:{top:6,left:6},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},residue:{type:"button",paddingTop:c,position:{top:62,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=2,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},secondarySelect:{type:"button",paddingTop:12,position:{top:118,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=3,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},chainSelect:{type:"button",paddingTop:c,position:{top:174,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=5,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},atom:{type:"button",paddingTop:c,position:{top:230,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=1,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},reset:{type:"button",paddingTop:c,position:{top:286,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.viewInterPairsCls.resetInteractionPairs(),e.selectionCls.resetAll(),e.cam.remove(e.canvasUI.mesh)}},togglehl:{type:"button",paddingTop:12,position:{top:342,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.hlUpdateCls.toggleHighlight(),e.cam.remove(e.canvasUI.mesh)}},style:{type:"button",paddingTop:c,position:{top:6,left:106},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},ribbon:{type:"button",paddingTop:c,position:{top:62,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","ribbon"),e.setOptionCls.setStyle("nucleotides","nucleotide cartoon"),e.cam.remove(e.canvasUI.mesh)}},schematic:{type:"button",paddingTop:c,position:{top:118,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","schematic"),e.setOptionCls.setStyle("nucleotides","schematic"),e.cam.remove(e.canvasUI.mesh)}},stick:{type:"button",paddingTop:c,position:{top:174,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","stick"),e.setOptionCls.setStyle("nucleotides","stick"),e.cam.remove(e.canvasUI.mesh)}},sphere:{type:"button",paddingTop:c,position:{top:230,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","sphere"),e.setOptionCls.setStyle("nucleotides","sphere"),e.cam.remove(e.canvasUI.mesh)}},surface:{type:"button",paddingTop:c,position:{top:286,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.opts.surface="molecular surface",e.applyMapCls.applySurfaceOptions(),e.cam.remove(e.canvasUI.mesh)}},surfaceTrn:{type:"button",paddingTop:12,position:{top:342,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.opts.surface="molecular surface",e.opts.opacity="0.2",e.applyMapCls.applySurfaceOptions(),e.cam.remove(e.canvasUI.mesh)}},color:{type:"button",paddingTop:c,position:{top:6,left:206},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},rainbow:{type:"button",paddingTop:c,position:{top:62,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","rainbow for chains"),e.cam.remove(e.canvasUI.mesh)}},atomColor:{type:"button",paddingTop:c,position:{top:118,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","atom"),e.cam.remove(e.canvasUI.mesh)}},chainColor:{type:"button",paddingTop:c,position:{top:174,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","chain"),e.cam.remove(e.canvasUI.mesh)}},secondaryColor:{type:"button",paddingTop:12,position:{top:230,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","secondary structure green"),e.cam.remove(e.canvasUI.mesh)}},charge:{type:"button",paddingTop:c,position:{top:342,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","charge"),e.cam.remove(e.canvasUI.mesh)}},AlphaFold:{type:"button",paddingTop:c,position:{top:286,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","confidence"),e.cam.remove(e.canvasUI.mesh)}},unicolor:{type:"button",paddingTop:c,position:{top:6,left:306},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},red:{type:"button",position:{top:i,left:300},width:n,height:l,fontColor:"red",hover:d,onSelect:function(){e.setOptionCls.setOption("color","red"),e.cam.remove(e.canvasUI.mesh)}},green:{type:"button",position:{top:78,left:300},width:n,height:l,fontColor:"green",hover:d,onSelect:function(){e.setOptionCls.setOption("color","green"),e.cam.remove(e.canvasUI.mesh)}},blue:{type:"button",position:{top:106,left:300},width:n,height:l,fontColor:"blue",hover:d,onSelect:function(){e.setOptionCls.setOption("color","blue"),e.cam.remove(e.canvasUI.mesh)}},blueviolet:{type:"button",position:{top:134,left:300},width:n,height:l,fontColor:"#8A2BE2",hover:d,onSelect:function(){e.setOptionCls.setOption("color","8A2BE2"),e.cam.remove(e.canvasUI.mesh)}},magenta:{type:"button",position:{top:162,left:300},width:n,height:l,fontColor:"magenta",hover:d,onSelect:function(){e.setOptionCls.setOption("color","magenta"),e.cam.remove(e.canvasUI.mesh)}},yellow:{type:"button",position:{top:190,left:300},width:n,height:l,fontColor:"yellow",hover:d,onSelect:function(){e.setOptionCls.setOption("color","yellow"),e.cam.remove(e.canvasUI.mesh)}},orange:{type:"button",position:{top:218,left:300},width:n,height:l,fontColor:"orange",hover:d,onSelect:function(){e.setOptionCls.setOption("color","FFA500"),e.cam.remove(e.canvasUI.mesh)}},cyan:{type:"button",position:{top:246,left:300},width:n,height:l,fontColor:"cyan",hover:d,onSelect:function(){e.setOptionCls.setOption("color","cyan"),e.cam.remove(e.canvasUI.mesh)}},gray:{type:"button",position:{top:274,left:300},width:n,height:l,fontColor:"gray",hover:d,onSelect:function(){e.setOptionCls.setOption("color","888888"),e.cam.remove(e.canvasUI.mesh)}},white:{type:"button",position:{top:302,left:300},width:n,height:l,fontColor:"white",hover:d,onSelect:function(){e.setOptionCls.setOption("color","white"),e.cam.remove(e.canvasUI.mesh)}},analysis:{type:"button",paddingTop:c,position:{top:6,left:406},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},distance:{type:"button",paddingTop:c,position:{top:62,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){try{e.bMeasureDistance=!0;let s=e.pickingCls.getPickedAtomList(e.pk,e.pAtom),i=e.pickingCls.getPickedAtomList(e.pk,e.pAtom2),n=e.applyCenterCls.centerAtoms(t.hashUtilsCls.hash2Atoms(s,e.atoms)).center,l=e.applyCenterCls.centerAtoms(t.hashUtilsCls.hash2Atoms(i,e.atoms)).center,r=0,o=0,a="#FFFF00",d=(n.x+l.x)/2,c=(n.y+l.y)/2,h=(n.z+l.z)/2,p=!0;e.analysisCls.addLine(n.x,n.y,n.z,l.x,l.y,l.z,a,p,"distance");let m=(parseInt(10*n.distanceTo(l))/10).toString()+" A";e.analysisCls.addLabel(m,d,c,h,r,a,o,"distance"),e.drawCls.draw(),e.cam.remove(e.canvasUI.mesh)}catch(e){}}},interaction:{type:"button",paddingTop:c,position:{top:118,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){try{e.viewInterPairsCls.viewInteractionPairs(["selected"],["non-selected"],!1,"3d",1,1,1,1,1,1),e.cam.remove(e.canvasUI.mesh)}catch(e){}}},delphi:{type:"button",paddingTop:c,position:{top:174,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:async function(){e.phisurftype=22,e.phisurfop=1,e.phisurfwf="no",await e.delphiCls.CalcPhi(65,.15,2,!0),e.cam.remove(e.canvasUI.mesh)}},removeLabel:{type:"button",paddingTop:c,position:{top:230,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){for(let t in e.labels)e.labels[t]=[];e.drawCls.draw(),e.cam.remove(e.canvasUI.mesh)}},renderer:e.renderer},p=new Oe({select:"Select",residue:"Residue",secondarySelect:"Secondary Structure",chainSelect:"Chain",atom:"Atom",reset:"Reset",togglehl:"Toggle Highlight",style:"Style",ribbon:"Ribbon",schematic:"Schematic",stick:"Stick",sphere:"Sphere",surface:"Surface",surfaceTrn:"Transparent Surface",color:"Color",rainbow:"Rainbow",atomColor:"Atom",chainColor:"Chain",secondaryColor:"Secondary Structure",AlphaFold:"AlphaFold",charge:"Charge",unicolor:"UniColor",red:"M 100 15 L 15 15 L 15 100 L 100 100 Z",green:"M 100 15 L 15 15 L 15 100 L 100 100 Z",blue:"M 100 15 L 15 15 L 15 100 L 100 100 Z",blueviolet:"M 100 15 L 15 15 L 15 100 L 100 100 Z",magenta:"M 100 15 L 15 15 L 15 100 L 100 100 Z",yellow:"M 100 15 L 15 15 L 15 100 L 100 100 Z",orange:"M 100 15 L 15 15 L 15 100 L 100 100 Z",cyan:"M 100 15 L 15 15 L 15 100 L 100 100 Z",gray:"M 100 15 L 15 15 L 15 100 L 100 100 Z",white:"M 100 15 L 15 15 L 15 100 L 100 100 Z",analysis:"Analysis",distance:"Distance",interaction:"Interaction",delphi:"DelPhi Potential",removeLabel:"Remove Label"},h);return p.mesh.position.set(0,0,-3),p}createUILog(){let e=this.icn3d;e.icn3dui;const t={panelSize:{width:2,height:2},height:512,info:{type:"text",overflow:"scroll",position:{top:6,left:6},width:506,height:506,backgroundColor:"#aaa",fontColor:"#000"},renderer:e.renderer},s=new Oe({info:"Debug info"},t);return s.mesh.position.set(0,-1,-2),s}getControllers(){let e=this.icn3d;e.icn3dui;const t=new xe,s=(new THREE.BufferGeometry).setFromPoints([new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,-1)]),i=new THREE.Line(s);i.name="line",i.scale.z=50;const n=[];for(let s=0;s<=1;s++){const l=e.renderer.xr.getController(s);if(!l)continue;e.dolly.add(l),l.add(i.clone()),l.userData.selectPressed=!1,e.cam.add(l),n.push(l);const r=e.renderer.xr.getControllerGrip(s);r.add(t.createControllerModel(r)),e.scene.add(r)}return n}}class Ee{constructor(e){this.icn3d=e}setCamera(){let e=this.icn3d,t=e.icn3dui;if(e.bControlGl&&!t.bNode){window.cam=e.cams[e.opts.camera.toLowerCase()];let s=e.maxD;if(window.cam===e.perspectiveCamera){let i=void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>e.maxatomcnt;i?window.camMaxDFactor=1:void 0!==window.camMaxDFactorFog?window.camMaxDFactor=window.camMaxDFactorFog:window.camMaxDFactor=3,window.cam_z>0?window.cam.position.z=s*window.camMaxDFactor:window.cam.position.z=-s*window.camMaxDFactor,"yes"===e.opts.slab?i?window.cam.near=.1:void 0!==window.camMaxDFactorFog?window.cam.near=s*window.camMaxDFactorFog-10:window.cam.near=s*window.camMaxDFactor:window.cam.near=.1,window.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.TrackballControls(window.cam,void 0,e):t.bNode?e.controls=new THREE.TrackballControls(e.cam,document,e):e.controls=new THREE.TrackballControls(e.cam,document.getElementById(e.id),e)}else window.cam===e.orthographicCamera&&(void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>10*e.maxatomcnt?window.cam.right=e.maxD/2*1.5:window.cam.right=e.maxD/2*2.5,window.cam.left=-window.cam.right,window.cam.top=window.cam.right/e.container.whratio,window.cam.bottom=-window.cam.right/e.container.whratio,"yes"===e.opts.slab?window.cam.near=2*e.maxD:window.cam.near=0,window.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.OrthographicTrackballControls(window.cam,void 0,e):t.bNode?e.controls=new THREE.OrthographicTrackballControls(e.cam,document,e):e.controls=new THREE.OrthographicTrackballControls(e.cam,document.getElementById(e.id),e));window.cam.updateProjectionMatrix()}e.cam=e.cams[e.opts.camera.toLowerCase()];let s=e.maxD;if(e.cam===e.perspectiveCamera){let i=void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>e.maxatomcnt;i?e.camMaxDFactor=1:void 0!==e.camMaxDFactorFog?e.camMaxDFactor=e.camMaxDFactorFog:e.camMaxDFactor=3,e.cam_z>0?e.cam.position.z=s*e.camMaxDFactor:e.cam.position.z=-s*e.camMaxDFactor,"yes"===e.opts.slab?i?e.cam.near=.1:void 0!==e.camMaxDFactorFog?e.cam.near=s*e.camMaxDFactorFog-10:e.cam.near=s*e.camMaxDFactor:e.cam.near=.1,e.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.TrackballControls(e.cam,void 0,e):t.bNode?e.controls=new THREE.TrackballControls(e.cam,document,e):e.controls=new THREE.TrackballControls(e.cam,document.getElementById(e.id),e)}else e.cam===e.orthographicCamera&&(void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>10*e.maxatomcnt?e.cam.right=e.maxD/2*1.5:e.cam.right=e.maxD/2*2.5,e.cam.left=-e.cam.right,e.cam.top=e.cam.right/e.container.whratio,e.cam.bottom=-e.cam.right/e.container.whratio,"yes"===e.opts.slab?e.cam.near=2*e.maxD:e.cam.near=0,e.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.OrthographicTrackballControls(e.cam,void 0,e):t.bNode?e.controls=new THREE.OrthographicTrackballControls(e.cam,document,e):e.controls=new THREE.OrthographicTrackballControls(e.cam,document.getElementById(e.id),e));e.cam.updateProjectionMatrix()}}class Te{constructor(e){this.icn3d=e}setFog(e){let t=this.icn3d,s=t.icn3dui.parasCls.backgroundColors[t.opts.background.toLowerCase()];if(e){let e=t.applyCenterCls.centerAtoms(t.hAtoms);t.maxD=e.maxD,t.maxD<25&&(t.maxD=25)}let i=void 0!==t.biomtMatrices&&t.biomtMatrices.length*t.cnt>t.maxatomcnt;if("yes"===t.opts.fog)if("perspective"===t.opts.camera)if(i)t.scene.fog=void 0,t.bSetFog=!1;else{let e=t._zoomFactor>1?1*t._zoomFactor:t._zoomFactor;t.scene.fog=new THREE.Fog(s,2.5*t.maxD*e,4*t.maxD*e),t.bSetFog=!0,t.camMaxDFactorFog=3}else"orthographic"===t.opts.camera&&(t.scene.fog=void 0,t.bSetFog=!1);else t.scene.fog=void 0,t.bSetFog=!1}}class Pe{constructor(e){this.icn3d=e}createBox(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(o.bNode)return;void 0===t&&(t=.8),void 0===s&&(s=!1),void 0===i&&(i=.8),l?void 0===n&&(n=r.hColor):void 0===n&&(n=e.color);let a=s?t:(o.parasCls.vdwRadii[e.elem.toUpperCase()]||t)*(i||1);this.createBox_base(e.coord,a,n,l)}createBox_base(e,t,s,i,n,l,r){let o,a=this.icn3d;a.icn3dui.bNode||(void 0===r&&(r=l?.5:1),new THREE.BoxGeometry(1,1,1),o=new THREE.Mesh(a.boxGeometry,new THREE.MeshPhongMaterial({transparent:!0,opacity:r,specular:a.frac,shininess:a.shininess,emissive:a.emissive,color:s})),o.scale.x=o.scale.y=o.scale.z=t,o.position.copy(e),a.mdl.add(o),i?a.prevHighlightObjects.push(o):n?a.prevOtherMesh.push(o):a.objects.push(o))}createBoxRepresentation_P_CA(e,t,s){let i=this.icn3d;if(i.icn3dui.bNode)return;let n=this;i.reprSubCls.createRepresentationSub(e,(function(e){"CA"!==e.name&&"O3'"!==e.name&&"O3*"!==e.name||n.createBox(e,void 0,void 0,t,void 0,s)}))}}class De{constructor(e){this.icn3d=e}createBrick(e,t,s,i){let n=this.icn3d;if(n.icn3dui.bNode)return;let l=new THREE.CylinderGeometry(1,1,1,4,1),r=new THREE.Mesh(l,new THREE.MeshPhongMaterial({specular:n.frac,shininess:n.shininess,emissive:n.emissive,color:i}));r.position.copy(e).add(t).multiplyScalar(.5),r.matrixAutoUpdate=!1,r.lookAt(t.clone().sub(e)),r.updateMatrix(),r.matrix.multiply((new THREE.Matrix4).makeScale(s,s,e.distanceTo(t))).multiply((new THREE.Matrix4).makeRotationX(.5*Math.PI)),n.mdl.add(r)}}class Me{constructor(e){this.icn3d=e}createCurveSubArrow(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u){if(this.icn3d.icn3dui.bNode)return;let g=[],f=[];g.push(e),f.push(o),this.prepareStrand(g,f,t,s,i,void 0,n,l,r,a,d,!1,c,h,p,m,u),g=[],f=[]}createStripArrow(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g){if(this.icn3d.icn3dui.bNode)return;let f=[],C=[];f.push(e),f.push(t),C.push(o),C.push(a),this.prepareStrand(f,C,void 0,s,i,n,l,void 0,r,d,c,!0,h,p,m,u,g),f=[],C=[]}prepareStrand(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g,f){let C=this.icn3d,b=C.icn3dui;if(1===d.length)return;let y=i,v=!u,_=[];_.push(i[i.length-2]),_.push(i[i.length-1]),n=n||C.axisDIV;let w,S,A,x,k=2/(a-1),O={};for(let e=0,s=t.length;e1)if(void 0!==d){let i,n,l=[];for(let r=0,o=p.length;r0&&i.tubeCls.createTube(a,"CA",i.coilWidth,s),Object.keys(d).length>0&&i.strandCls.createStrand(d,void 0,void 0,!0,0,i.helixSheetWidth,!1,2*i.ribbonthickness,s)):(Object.keys(a).length>0&&i.tubeCls.createTube(a,"CA",i.coilWidth),Object.keys(d).length>0&&i.strandCls.createStrand(d,void 0,void 0,!0,0,i.helixSheetWidth,!1,2*i.ribbonthickness))}createCylinderCurve(e,t,s,i,n){let l=this.icn3d;if(l.icn3dui.bNode)return;let r,o,a,d,c,h,p=null;for(a in e)if(d=e[a],!d.het&&(c=d.structure+"_"+d.chain,h=d.structure+"_"+r,-1!=t.indexOf(d.name))){if(null!==p&&r===d.chain&&l.ParserUtilsCls.getResiNCBI(h,o)+1===l.ParserUtilsCls.getResiNCBI(c,d.resi)&&Math.abs(p.coord.x-d.coord.x)<8&&Math.abs(p.coord.y-d.coord.y)<8&&Math.abs(p.coord.z-d.coord.z)<8){let e=p.coord.clone().add(d.coord).multiplyScalar(.5);if(n)1===n&&(this.createCylinder(p.coord,e,s,p.color,n),this.createCylinder(e,d.coord,s,d.color,n),l.sphereCls.createSphere(d,s,!0,1,n));else if(i){let t=l.lineCls.createSingleLine(p.coord,e,p.color,!1);l.mdl.add(t),l.objects.push(t),t=l.lineCls.createSingleLine(e,d.coord,d.color,!1),l.mdl.add(t),l.objects.push(t)}else this.createCylinder(p.coord,e,s,p.color),this.createCylinder(e,d.coord,s,d.color),l.sphereCls.createSphere(d,s,!0,1,n)}p=d,r=d.chain,o=d.resi,l.sphereCls.createSphere(d,s,!0,1,n),2===n&&l.boxCls.createBox(d,void 0,void 0,void 0,void 0,n)}if(null!==p&&r===d.chain&&l.ParserUtilsCls.getResiNCBI(h,o)+1===l.ParserUtilsCls.getResiNCBI(c,d.resi)&&Math.abs(p.coord.x-d.coord.x)<8&&Math.abs(p.coord.y-d.coord.y)<8&&Math.abs(p.coord.z-d.coord.z)<8){let e=p.coord.add(d.coord).multiplyScalar(.5);if(n)1===n&&(this.createCylinder(p.coord,e,s,p.color,n),this.createCylinder(e,d.coord,s,d.color,n),l.sphereCls.createSphere(d,s,!0,1,n));else if(i){let t=l.lineCls.createSingleLine(p.coord,e,p.color,!1);l.mdl.add(t),l.objects.push(t),t=l.lineCls.createSingleLine(e,d.coord,d.color,!1),l.mdl.add(t),l.objects.push(t)}else this.createCylinder(p.coord,e,s,p.color),this.createCylinder(e,d.coord,s,d.color)}}}class Le{constructor(e){this.icn3d=e}createLineRepresentation(e,t){let s=this.icn3d;if(s.icn3dui.bNode)return;let i=new THREE.BufferGeometry,n=[],l=[],r=0,o=0;s.reprSubCls.createRepresentationSub(e,void 0,(function(e,t){if(e.color===t.color)n[r++]=e.coord.x,n[r++]=e.coord.y,n[r++]=e.coord.z,n[r++]=t.coord.x,n[r++]=t.coord.y,n[r++]=t.coord.z,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b;else{let s=e.coord.clone().add(t.coord).multiplyScalar(.5);n[r++]=e.coord.x,n[r++]=e.coord.y,n[r++]=e.coord.z,n[r++]=s.x,n[r++]=s.y,n[r++]=s.z,n[r++]=t.coord.x,n[r++]=t.coord.y,n[r++]=t.coord.z,n[r++]=s.x,n[r++]=s.y,n[r++]=s.z,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b}}));if(i.setAttribute("position",new THREE.BufferAttribute(new Float32Array(n),3)),i.setAttribute("color",new THREE.BufferAttribute(new Float32Array(l),3)),2!==t){let e;1===t||(e=new THREE.LineSegments(i,new THREE.LineBasicMaterial({linewidth:s.linewidth,vertexColors:!0})),s.mdl.add(e)),1===t?s.prevHighlightObjects.push(e):s.objects.push(e)}else 2===t&&s.boxCls.createBoxRepresentation_P_CA(e,.8,t)}createConnCalphSidechain(e,t){let s=this.icn3d;if(s.icn3dui.bNode)return;let i={};for(let s in e){let n=e[s];if(!n.het&&n.style2===t){i[n.structure+"_"+n.chain+"_"+n.resi]=1}}let n=[],l=[];for(let e in i){let t=s.firstAtomObjCls.getFirstAtomObjByName(s.residues[e],"CA");if(void 0!==t)for(let e=0,i=t.bonds.length;e=t.bonds.length&&e.bonds.length>1)s=e.serial,l=e.bonds[0],d=e.bonds[1];else{if(!(t.bonds.length>=e.bonds.length&&t.bonds.length>1))return void console.log("Double bond was not drawn due to the undefined cross plane");s=t.serial,l=t.bonds[0],d=t.bonds[1]}let i=r.atoms[s].coord.clone();i.sub(r.atoms[l].coord);let n=r.atoms[s].coord.clone();n.sub(r.atoms[d].coord),i.cross(n),0==parseInt(1e4*i.length())&&(i=new THREE.Vector3(.2,.3,.5)),c=t.coord.clone(),c.sub(e.coord),c.cross(i).normalize().multiplyScalar(.2*o),0==parseInt(1e4*c.length())&&(i=new THREE.Vector3(.5,.3,.2),c.cross(i).normalize().multiplyScalar(.2*o))}e.color===t.color?r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),t.coord.clone().add(c),a,e.color,n),r.cylinderCls.createCylinder(e.coord.clone().sub(c),t.coord.clone().sub(c),a,e.color,n)):r.bImpo?r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),t.coord.clone().add(c),a,e.color,n,t.color),r.cylinderCls.createCylinder(e.coord.clone().sub(c),t.coord.clone().sub(c),a,e.color,n,t.color)):r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),i.clone().add(c),a,e.color,n),r.cylinderCls.createCylinder(t.coord.clone().add(c),i.clone().add(c),a,t.color,n),r.cylinderCls.createCylinder(e.coord.clone().sub(c),i.clone().sub(c),a,e.color,n),r.cylinderCls.createCylinder(t.coord.clone().sub(c),i.clone().sub(c),a,t.color,n))}else if(r.aromaticbonds.hasOwnProperty(l)){let s,l,d;if(e.bonds.length>t.bonds.length&&e.bonds.length>1)s=e.serial,l=e.bonds[0],d=e.bonds[1];else{if(!(t.bonds.length>1))return;s=t.serial,l=t.bonds[0],d=t.bonds[1]}let c=r.atoms[s].coord.clone();c.sub(r.atoms[l].coord);let h=r.atoms[s].coord.clone();h.sub(r.atoms[d].coord),c.cross(h);let p=t.coord.clone();p.sub(e.coord),p.cross(c).normalize().multiplyScalar(.2*o);let m=0;for(let s=0,i=e.bondOrder.length;so+1?(s=k.clone(),i=d.atoms[j[j.length-1-o-1]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random()))):U[m]&&"CA"===p.name&&(j.length>o+1?(s=k.clone(),i=d.atoms[j[j.length-1-o-1]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random())),s.normalize(),s.multiplyScalar(C),null!==I&&s.dot(I)<0&&s.negate(),I=s;for(let e=0,s=2/(t-1);e6||c&&Math.abs(S.y-c.y)>6||c&&Math.abs(S.z-c.z)>6;if((g!==p.chain||p.ssbegin||p.ssend||z||$==W&&"coil"!=p.ss)&&u[0].length>0){let c="CA",g=[],f=[];if(isNaN(d.atoms[D].resi))g=[];else{let e=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)-1).toString(),t=d.firstAtomObjCls.getAtomCoordFromResi(e,c);g=void 0!==t?[t]:[]}if(!isNaN(d.atoms[D].resi)){let e=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)+1).toString(),t=d.firstAtomObjCls.getAtomCoordFromResi(e,c);void 0!==t&&f.push(t);let s=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)+2).toString(),i=d.firstAtomObjCls.getAtomCoordFromResi(s,c);void 0!==i&&f.push(i)}if(!z){1===a||2===a?w.push(d.hColor):w.push(R),C=p.ssend&&"sheet"===p.ss?0:"coil"===E&&p.ssbegin||T&&p.ssbegin||"coil"===p.ss?n:l;let s,i,o=4;"O"===p.name?(s=A.clone(),s.sub(S)):U[m]&&"CA"===p.name&&(j.length>o?(s=S.clone(),i=d.atoms[j[j.length-1-o]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random())),s.normalize(),s.multiplyScalar(C),null!==I&&s.dot(I)<0&&s.negate(),I=s;for(let e=0,s=2/(t-1);e0){let e="CA",n=[],l=[];if(isNaN(d.atoms[D].resi))n=[];else{let t=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)-1).toString();d.firstAtomObjCls.getAtomCoordFromResi(t,e)}for(let e=0;!i&&e0&&(o!==c.chain||Math.abs(c.coord.x-h.coord.x)>6||Math.abs(c.coord.y-h.coord.y)>6||Math.abs(c.coord.z-h.coord.z)>6||r.ParserUtilsCls.getResiNCBI(c.structure+"_"+o,a)+13||Math.abs(c.coord.y-h.coord.y)>3||Math.abs(c.coord.z-h.coord.z)>3))){if(2!==i){if(!isNaN(d.resi)&&!isNaN(h.resi)){let e=d.structure+"_"+d.chain+"_"+(parseInt(d.resi)-1).toString(),i=r.firstAtomObjCls.getAtomCoordFromResi(e,t);g=void 0!==i?[i]:[];let l=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+1).toString(),o=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+2).toString(),a=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+3).toString();if(r.residues.hasOwnProperty(l)){let e=r.firstAtomObjCls.getAtomFromResi(l,t);void 0!==e&&e.ssbegin&&(l=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+2).toString(),o=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+3).toString(),p.push(e.coord),n?u.push(this.getCustomtubesize(l)):u.push(this.getRadius(s,e)),m.push(e.color))}if(1==p.length&&r.residues.hasOwnProperty(l)){let e=r.firstAtomObjCls.getAtomFromResi(l,t);if(e){p.push(e.coord),m.push(e.color);let t=this.getRadius(s,c);u.push(t),l=o,o=a}}let C=r.firstAtomObjCls.getAtomCoordFromResi(l,t);void 0!==C&&f.push(C);let b=r.firstAtomObjCls.getAtomCoordFromResi(o,t);void 0!==b&&f.push(b)}b.push({pnts:p,colors:m,radii:u,prevone:g,nexttwo:f})}p=[],m=[],u=[],g=[],f=[],d=c,C=0}if(0==p.length&&!isNaN(c.resi)){let e=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)-1).toString();r.residues.hasOwnProperty(e)&&(h=r.firstAtomObjCls.getAtomFromResi(e,t),void 0!==h&&h.ssend&&(p.push(h.coord),n?u.push(this.getCustomtubesize(e)):u.push(this.getRadius(s,h)),m.push(h.color)))}let e;p.push(c.coord),e=n?this.getCustomtubesize(c.structure+"_"+c.chain+"_"+c.resi):this.getRadius(s,c),l||"coil"==c.ss||c.ssbegin||c.ssend||(e=0),u.push(e),m.push(c.color),1===C&&(m[m.length-2]=c.color),o=c.chain,a=c.resi;let y=1.2;2!==i||c.ssbegin||r.boxCls.createBox(c,void 0,void 0,y,void 0,i),++C,h=c}if(2!==i){if(g=[],void 0!==d&&!isNaN(d.resi)){let e=d.structure+"_"+d.chain+"_"+(parseInt(d.resi)-1).toString(),s=r.firstAtomObjCls.getAtomCoordFromResi(e,t);g=void 0!==s?[s]:[]}if(f=[],void 0!==c&&!isNaN(c.resi)){let e=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+1).toString(),i=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+2).toString(),n=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+3).toString();if(1==p.length&&r.residues.hasOwnProperty(e)){let l=r.firstAtomObjCls.getAtomFromResi(e,t);if(l){p.push(l.coord),m.push(l.color);let t=this.getRadius(s,c);u.push(t),e=i,i=n}}let l=r.firstAtomObjCls.getAtomCoordFromResi(e,t);void 0!==l&&f.push(l);let o=r.firstAtomObjCls.getAtomCoordFromResi(i,t);void 0!==o&&f.push(o)}b.push({pnts:p,colors:m,radii:u,prevone:g,nexttwo:f})}for(let e=0,t=b.length;e0&&(c=n);else if(g%1==0)n=s[g],n>0&&(c=n);else{let e=Math.floor(g),t=g-e;n=s[e]*(1-t)+s[e+1]*t,r||n<1*c&&(n=0)}e1?a.parasCls.thr(t[t.length-2]):a.parasCls.thr(t[e]),C[v++]=d.r,C[v++]=d.g,C[v++]=d.b}}let k,O=0;for(let e=0,t=S.length-1;er&&(l=r,e=1);for(let t=0;t0&&t.b<=100?.01*t.b:t.b>100?1:s.coilWidth),i}}class ze{constructor(e){this.icn3d=e}drawCartoonNucleicAcid(e,t,s,i){this.drawStrandNucleicAcid(e,2,t,!0,void 0,s,i)}drawStrandNucleicAcid(e,t,s,i,n,l,r){let o,a,d,c=this.icn3d;if(c.icn3dui.bNode)return;2===r&&(t=void 0,l=void 0),n=n||c.nucleicAcidWidth,s=s||c.axisDIV,t=t||c.nucleicAcidStrandDIV;let h=[];for(d=0;dy?y=b:b=y);let v=.8*C/y;if(g.width=b,g.height=y,f.clearRect(0,0,b,y),h)if(f.fillStyle="rgba("+n.r+","+n.g+","+n.b+","+n.a+")",f.strokeStyle="rgba("+l.r+","+l.g+","+l.b+","+l.a+")",f.lineWidth=r,p){let e=.4*b;this.circle(f,0,0,b,y,e)}else{let e=0;this.roundRect(f,0,0,b,y,e)}f.font="Bold "+a+"px "+o,f.textAlign="center",f.textBaseline="middle",f.fillStyle="rgba("+u.r+", "+u.g+", "+u.b+", 1.0)",f.strokeStyle="rgba("+u.r+", "+u.g+", "+u.b+", 1.0)",f.fillText(e,.5*b,.5*y);let _=new THREE.Texture(g);_.needsUpdate=!0;let w=new THREE.SpriteMaterial({map:_,depthTest:!1,depthWrite:!1});w.map.minFilter=THREE.LinearFilter;let S=new THREE.Sprite(w);return p?S.scale.set(.3*d,.3*d,1):S.scale.set(v*d,d,1),S.renderOrder=1,S}roundRect(e,t,s,i,n,l){e.beginPath(),e.moveTo(t+l,s),e.lineTo(t+i-l,s),e.quadraticCurveTo(t+i,s,t+i,s+l),e.lineTo(t+i,s+n-l),e.quadraticCurveTo(t+i,s+n,t+i-l,s+n),e.lineTo(t+l,s+n),e.quadraticCurveTo(t,s+n,t,s+n-l),e.lineTo(t,s+l),e.quadraticCurveTo(t,s,t+l,s),e.closePath(),e.fill(),e.stroke()}circle(e,t,s,i,n,l){e.beginPath(),e.arc(t+i/2,.9*(s+n/2),l,0,2*Math.PI,!0),e.closePath(),e.fill(),e.stroke()}}class Ve{constructor(e){this.icn3d=e,this.textSpriteCls=new Ge(e)}createLabelRepresentation(e){let t=this.icn3d;t.icn3dui;let s=t.oriMaxD/100;s<.4&&(s=.4);let i=3*s*t.labelScale;for(let s in e){let n=void 0!==e[s]?e[s]:[],l="black"!=t.opts.background?t.colorWhitebkgd:t.colorBlackbkgd;for(let e=0,r=n.length;e.99999)h.set(0,0,0,1);else if(e.y<-.99999)h.set(1,0,0,0);else{let t=new THREE.Vector3;t.set(e.z,0,-e.x).normalize();let s=Math.acos(e.y);h.setFromAxisAngle(t,s)}return c.applyQuaternion(h),c.scale.set(l,n,l),c.position.copy(t),c}setPc1Axes(e){let t=this.icn3d,s=t.icn3dui;if(s.bNode)return;let i=s.hashUtilsCls.intHash(t.hAtoms,t.dAtoms),n=[],l=Object.keys(i).length<100;for(let e in i){let s=t.atoms[e],i=s.structure+"_"+s.chain+"_"+s.resi;(l||""!=i)&&n.push(s.coord.clone())}let r=s.rmsdSuprCls.getEigenForSelection(n,n.length),o=new THREE.Vector3(r.h1[0],r.h1[1],r.h1[2]);if(0==r.k&&t.bRender)return void alert("Can't determine the first principal component. Please select a subset and try it again.");let a=t.applyCenterCls.centerAtoms(i),d=a.maxD,c=a.center,h=c.clone().add(o.normalize().multiplyScalar(.4*d)),p=o.normalize();if(s.htmlCls.clickMenuCls.setLogCmd("Principle X-Axis: "+p.x.toFixed(3)+" "+p.y.toFixed(3)+" "+p.z.toFixed(3),!1),e)return p;let m=new THREE.Vector3(r.h2[0],r.h2[1],r.h2[2]),u=c.clone().add(m.normalize().multiplyScalar(.3*d)),g=new THREE.Vector3(r.h3[0],r.h3[1],r.h3[2]),f=c.clone().add(g.normalize().multiplyScalar(.3*d));this.buildAxes(void 0,c,h,u,f,!0);let C=[c,h,u,f];return t.axes.push(C),t.drawCls.draw(),C}}class Ye{constructor(e){this.icn3d=e}showGlycans(){let e=this.icn3d,t=e.icn3dui;if(t.bNode)return;let s={},i=e.dAtoms;for(let n in i){let i=e.atoms[n];i.het&&-1!=t.parasCls.glycanHash.hasOwnProperty(i.resn)&&(void 0===s[i.resn]&&(s[i.resn]={}),"Misc"!=i.chain&&(s[i.resn][i.structure+"_"+i.chain+"_"+i.resi]=1))}let n=Object.keys(s);for(let i=0,l=n.length;i>2))+i+((2&t)>>1))*c+n+(1&t)]&this.ISDONE)<=3&&(t.push(t[i]),i=t.length-1,t.push(t[n]),n=t.length-1,t.push(t[l]),l=t.length-1),s.push(i),s.push(n),s.push(l)}}},Xe.prototype.laplacianSmooth=function(e,t,s){let i,n,l,r,o,a=new Array(t.length);for(i=0,n=t.length;ithis.origextent[1][0])&&(!(tthis.origextent[1][1])&&!(sthis.origextent[1][2]))},Ke.prototype.getFacesAndVertices=function(){let e,t,s=this.verts;for(e=0,t=s.length;eh&&(h=this.pmaxy-this.pminy),this.pmaxz-this.pminz>h&&(h=this.pmaxz-this.pminz),this.scaleFactor=(c-1)/h,this.scaleFactor=this.defaultScaleFactor,this.defaultScaleFactor*h>this.threshbox&&(c=Math.floor(this.threshbox),this.scaleFactor=(this.threshbox-1)/h),this.bCalcArea&&(this.scaleFactor=this.defaultScaleFactor),this.pLength=Math.ceil(this.scaleFactor*(this.pmaxx-this.pminx))+1,this.pWidth=Math.ceil(this.scaleFactor*(this.pmaxy-this.pminy))+1,this.pHeight=Math.ceil(this.scaleFactor*(this.pmaxz-this.pminz))+1,this.boundingatom(t),this.cutRadius=this.probeRadius*this.scaleFactor,this.vpBits=new Uint8Array(this.pLength*this.pWidth*this.pHeight),this.vpDistance=new Float64Array(this.pLength*this.pWidth*this.pHeight),this.vpAtomID=new Int32Array(this.pLength*this.pWidth*this.pHeight),this.vpColor=[],this.vpPot=[]},Ke.prototype.boundingatom=function(e){let t,s,i,n,l=[];for(let r in this.vdwRadii){if(!this.vdwRadii.hasOwnProperty(r))continue;let o=this.vdwRadii[r];l[r]=e?(o+this.probeRadius)*this.scaleFactor+.5:o*this.scaleFactor+.5,i=l[r]*l[r],this.widxz[r]=Math.floor(l[r])+1,this.depty[r]=new Int32Array(this.widxz[r]*this.widxz[r]),n=0;for(let e=0;ei?this.depty[r][n]=-1:(s=Math.sqrt(i-t),this.depty[r][n]=Math.floor(s)),n++}},Ke.prototype.fillvoxels=function(e,t){let s,i,n,l;for(s=0,l=this.vpBits.length;sc&&(a=c),b>h&&(b=h),v>p&&(v=p);let _,w=g[o*m+d*u+y],S=g[a*m+d*u+y],A=g[o*m+b*u+y],x=g[o*m+d*u+v],k=g[a*m+b*u+y],O=g[o*m+b*u+v],R=g[a*m+d*u+v],I=g[a*m+b*u+v],E=r.x-o,T=r.y-d,P=r.z-y,D=((w*(1-E)+S*E)*(1-T)+(A*(1-E)+k*E)*T)*(1-P)+((x*(1-E)+R*E)*(1-T)+(O*(1-E)+I*E)*T)*P,M=s*f+i*C+n;this.vpPot[M]=D,D>this.isovalue&&(D=this.isovalue),D<-this.isovalue&&(D=-this.isovalue),D>0?(D/=1*this.isovalue,_=new THREE.Color(1-D,1-D,1)):(D/=-1*this.isovalue,_=new THREE.Color(1,1-D,1-D)),this.vpColor[M]=_}}for(s=0,l=this.vpBits.length;s=this.pLength||g>=this.pWidth||f>=this.pHeight)continue;let h=u*S+g*this.pHeight+f;if(this.vpBits[h]&this.INOUT){let p=t[this.vpAtomID[h]];p.serial!=e.serial&&(l=s+a-Math.floor(.5+this.scaleFactor*(p.x+this.ptranx)),r=i+d-Math.floor(.5+this.scaleFactor*(p.y+this.ptrany)),o=n+c-Math.floor(.5+this.scaleFactor*(p.z+this.ptranz)),a*a+d*d+c*c=this.pLength||p>=this.pWidth||m>=this.pHeight)continue;let u=h*S+p*this.pHeight+m;if(this.vpBits[u]&this.ISDONE){let h=t[this.vpAtomID[u]];h.serial!=e.serial&&(l=s+a-Math.floor(.5+this.scaleFactor*(h.x+this.ptranx)),r=i+d-Math.floor(.5+this.scaleFactor*(h.y+this.ptrany)),o=n+c-Math.floor(.5+this.scaleFactor*(h.z+this.ptranz)),a*a+d*d+c*c-1&&r-1&&a-1&&o=h)||(this.vpBits[n]|=this.ISBOUND))},Ke.prototype.fastoneshell=function(e,t){let s,i,n,l,r,o,a,d,c,h,p,m,u=[];if(0===e.length)return u;let g={ix:-1,iy:-1,iz:-1},f=this.pWidth*this.pHeight;for(a=0,c=e.length;a-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,h-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,h-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,hm&&(m=this.pmaxy-this.pminy),this.pmaxz-this.pminz>m&&(m=this.pmaxz-this.pminz),this.scaleFactor=1,this.pLength=Math.floor(.5+this.scaleFactor*(this.pmaxx-this.pminx))+1,this.pWidth=Math.floor(.5+this.scaleFactor*(this.pmaxy-this.pminy))+1,this.pHeight=Math.floor(.5+this.scaleFactor*(this.pmaxz-this.pminz))+1,this.cutRadius=this.probeRadius*this.scaleFactor,this.vpBits=new Uint8Array(this.pLength*this.pWidth*this.pHeight),this.ccp4&&(this.vpGridTrans=new Array(this.pLength*this.pWidth*this.pHeight)),this.vpAtomID=new Uint8Array(this.pLength*this.pWidth*this.pHeight)},Je.prototype.transformMemPro=function(e,t,s,i){let n=e.clone();n.sub(s);let l=n.x*t[0]+n.y*t[1]+n.z*t[2]+i.x,r=n.x*t[3]+n.y*t[4]+n.z*t[5]+i.y,o=n.x*t[6]+n.y*t[7]+n.z*t[8]+i.z;return n.x=l,n.y=r,n.z=o,n},Je.prototype.fillvoxels=function(e,t){let s,i,n,l,r,o;for(s=0,l=this.vpBits.length;sthis.pLength&&(o=this.pLength),p>this.pWidth&&(p=this.pWidth),C>this.pHeight&&(C=this.pHeight);let b,y=l[r*a+h*d+f],v=l[o*a+h*d+f],_=l[r*a+p*d+f],w=l[r*a+h*d+C],S=l[o*a+p*d+f],A=l[r*a+p*d+C],x=l[o*a+h*d+C],k=l[o*a+p*d+C],O=n.x-r,R=n.y-h,I=n.z-f,E=((y*(1-O)+v*O)*(1-R)+(_*(1-O)+S*O)*R)*(1-I)+((w*(1-O)+x*O)*(1-R)+(A*(1-O)+k*O)*R)*I;E>this.isovalue&&(E=this.isovalue),E<-this.isovalue&&(E=-this.isovalue),E>0?(E/=1*this.isovalue,b=new THREE.Color(1-E,1-E,1)):(E/=-1*this.isovalue,b=new THREE.Color(1,1-E,1-E)),this.icn3d.atoms[t[s]].color=b,this.icn3d.atomPrevColors[t[s]]=b}}else{for(let p in t){let f,C=e[t[p]];if("DUM"!==C.resn){if(void 0!==this.rmsd_supr&&void 0!==this.rmsd_supr.rot){f=this.transformMemPro(C.coord,g,u,m).applyMatrix4(c)}else f=C.coord.clone().applyMatrix4(c);for(s=Math.floor(f.x)-this.maxdist,l=Math.ceil(f.x)+this.maxdist;s<=l;++s)if(!(s<0||s>this.header.xExtent*this.scaleFactor-1))for(i=Math.floor(f.y)-this.maxdist,r=Math.ceil(f.y)+this.maxdist;i<=r;++i)if(!(i<0||i>this.header.yExtent*this.scaleFactor-1))for(n=Math.floor(f.z)-this.maxdist,o=Math.ceil(f.z)+this.maxdist;n<=o;++n){if(n<0||n>this.header.zExtent*this.scaleFactor-1)continue;let e=s*a+i*d+n;h.push(e)}}}for(s=0,l=h.length;s=this.isovalue?1:0:"fofc"==this.type?(this.vpBits[e]=this.dataArray[e]>=this.isovalue||this.dataArray[e]<=-this.isovalue?1:0,this.vpAtomID[e]=this.dataArray[e]>=0?1:0):"em"==this.type&&(this.vpBits[e]=this.dataArray[e]>=this.isovalue?1:0)}}}else for(s=0;s=this.isovalue||this.dataArray[e]<=-this.isovalue?1:0,this.vpAtomID[t]=this.dataArray[e]>=0?1:0)}for(s=0,l=this.vpBits.length;s-1&&r-1&&a-1&&o1?"Structure":"",a=Object.keys(i).length>1?"Chain":"";n+=""+o+a+"ResidueNumberSASA (Å2)Percent OutIn/Out";for(let e in l.resid2area){let d=e.lastIndexOf("_"),c=e.substr(d+1),h=r.utilsCls.getIdArray(e.substr(0,d));o=Object.keys(s).length>1?""+h[0]+"":"",a=Object.keys(i).length>1?""+h[1]+"":"";let p="",m="";l.resid2area[e]=(l.resid2area[e]/t).toFixed(2),r.parasCls.residueArea.hasOwnProperty(c)&&(m=parseInt(l.resid2area[e]/r.parasCls.residueArea[c]*100),m>100&&(m=100),m>=50&&(p="out"),m<20&&(p="in")),n+=''+o+a+""+c+''+h[2]+''+l.resid2area[e]+''+m+"%"+p+""}return n+="",void(l.areahtml=n)}let p,m,u,g=c.vertices,f=c.faces,C=r.parasCls.thr("#00FFFF"),b=r.parasCls.thr("#00FF00"),y=r.parasCls.thr("#ff0000"),v=r.parasCls.thr("#00FFFF"),_=r.parasCls.thr("#0000FF"),w=r.parasCls.thr("#FF0000");11!=t&&12!=t&&13!=t&&14!=t||void 0===l.rmsd_supr||void 0===l.rmsd_supr.rot||(p=l.rmsd_supr.rot,m=l.rmsd_supr.trans1,u=l.rmsd_supr.trans2);let S=(11==t||12==t||13==t||14==t&&"delphi"!=l.loadPhiFrom)&&void 0!==l.rmsd_supr&&void 0!==l.rmsd_supr.rot;n=new THREE.BufferGeometry;let A,x=[],k=[],O=[],R=0;for(let e=0,s=g.length;e0?-parseInt(b.z):parseInt(b.z),y.onBeforeRender=function(e,t,s,i,n,o){let a,d=new THREE.Vector3(0,0,0),c=i.getAttribute("position").array;for(let e=0,t=c.length;e0?-parseInt(a.z):parseInt(a.z)},l.mdl.add(y),11==t||12==t?l.prevMaps.push(y):13==t?l.prevEmmaps.push(y):14==t?l.prevPhimaps.push(y):l.prevSurfaces.push(y)}}else{let e=new THREE.Mesh(n,new THREE.MeshPhongMaterial({specular:l.frac,shininess:20,emissive:l.emissive,vertexColors:!0,wireframe:s,opacity:i,transparent:!0,depthWrite:10==parseInt(10*i),side:THREE.DoubleSide}));e.renderOrder=-2,l.mdl.add(e),11==t||12==t?l.prevMaps.push(e):13==t?l.prevEmmaps.push(e):14==t?l.prevPhimaps.push(e):l.prevSurfaces.push(e)}c=null,g=null,f=null,n=null}transformMemPro(e,t,s,i,n){this.icn3d.icn3dui;let l=e.clone();l.sub(s),n&&console.log("sub coord: "+JSON.stringify(l));let r=l.x*t[0]+l.y*t[1]+l.z*t[2]+i.x,o=l.x*t[3]+l.y*t[4]+l.z*t[5]+i.y,a=l.x*t[6]+l.y*t[7]+l.z*t[8]+i.z;return l.x=r,l.y=o,l.z=a,n&&console.log("out coord: "+JSON.stringify(l)),l}SetupSurface(e){let t=this.icn3d;t.icn3dui;let s=e.threshbox,i=new Ke(t,s);i.initparm(e.extent,1!==e.type,e.bCalcArea,e.atomsToShow,e.header,e.data,e.matrix,e.isovalue,e.loadPhiFrom),i.fillvoxels(e.allatoms,e.extendedAtoms),i.buildboundary(),2===e.type&&(i.fastdistancemap(),i.boundingatom(!1),i.fillvoxelswaals(e.allatoms,e.extendedAtoms));let n=i.marchingcube();i.vpBits=null,i.vpDistance=null,i.vpAtomID=null;let l=i.getFacesAndVertices(e.atomsToShow);return l.area=n.area,l.serial2area=n.serial2area,l.scaleFactor=n.scaleFactor,i.faces=null,i.verts=null,l}SetupMap(e){let t=this.icn3d;if(t.icn3dui,!e.ccp4){let s,i=new Je(t);return i.initparm(e.header,e.data,e.matrix,e.isovalue,e.center,e.maxdist,e.pmin,e.pmax,e.water,e.type,e.rmsd_supr,e.loadPhiFrom,e.icn3d),i.fillvoxels(e.allatoms,e.extendedAtoms),e.header.bSurface||i.buildboundary(),e.header.bSurface||i.marchingcube(),i.vpBits=null,i.vpAtomID=null,e.header.bSurface||(s=i.getFacesAndVertices(e.allatoms,e.atomsToShow)),i.faces=null,i.verts=null,s}{let s,i=10,n=t.center?[t.center.x,t.center.y,t.center.z]:[0,0,0];if("2fofc"==e.type){s="2fofc";let l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes");t.ccp4ParserCls.makeChickenWire(r,s),l=null,r=null}else if("fofc"==e.type){s="fofc_neg";let l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes");t.ccp4ParserCls.makeChickenWire(r,s),s="fofc_pos",l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes"),t.ccp4ParserCls.makeChickenWire(r,s),l=null,r=null}}}}class Qe{constructor(e){this.icn3d=e}applyCenterOptions(e){let t,s=this.icn3d;switch(s.icn3dui,void 0===e&&(e=s.opts),e.rotationcenter.toLowerCase()){case"molecule center":void 0!==s.center&&this.setRotationCenter(s.center);break;case"pick center":void 0!==s.pAtom&&this.setRotationCenter(s.pAtom.coord);break;case"display center":t=this.centerAtoms(s.dAtoms).center,this.setRotationCenter(t);break;case"highlight center":t=this.centerAtoms(s.hAtoms).center,this.setRotationCenter(t)}}setRotationCenter(e){this.icn3d.icn3dui,this.setCenter(e)}setCenter(e){let t=this.icn3d;t.icn3dui,t.mdl.position.set(0,0,0),t.mdlImpostor.position.set(0,0,0),t.mdl_ghost.position.set(0,0,0),t.mdl.position.sub(e),t.mdlImpostor.position.sub(e),t.mdl_ghost.position.sub(e)}centerSelection(e,t){let s=this.icn3d,i=s.icn3dui;if(s.opts.rotationcenter="highlight center",void 0===e&&(e=i.hashUtilsCls.hash2Atoms(s.hAtoms,s.atoms)),t||(s._zoomFactor=1,s.mouseChange=new THREE.Vector2(0,0),s.quaternion=new THREE.Quaternion(0,0,0,1)),Object.keys(e).length>1){let t=this.centerAtoms(e);s.center=t.center,this.setCenter(s.center),s.cameraCls.setCamera()}}centerAtoms(e){let t=this.icn3d;t.icn3dui;let s=new THREE.Vector3(9999,9999,9999),i=new THREE.Vector3(-9999,-9999,-9999),n=new THREE.Vector3;for(let l in e){let e=t.atoms[l].coord;n.add(e),s.min(e),i.max(e)}let l=t.ParserUtilsCls.getGeoCenter(s,i);return{center:l,maxD:t.ParserUtilsCls.getStructureSize(e,s,i,l),pmin:s,pmax:i}}setWidthHeight(e,t){let s=this.icn3d;s.icn3dui,void 0===s.scaleFactor&&(s.scaleFactor=1),s.renderer.setSize(e*s.scaleFactor,t*s.scaleFactor),s.renderer.domElement.style.width=e*s.scaleFactor+"px",s.renderer.domElement.style.height=t*s.scaleFactor+"px",s.renderer.domElement.width=e*s.scaleFactor,s.renderer.domElement.height=t*s.scaleFactor,s.container.whratio=e/t}}class et{constructor(e){this.icn3d=e}applyClbondsOptions(e){let t=this.icn3d,s=t.icn3dui;if(void 0===e&&(e=t.opts),t.bCalcCrossLink||(t.clbondpnts={},t.clbondResid2serial={},this.applyClbondsOptions_base("chemical"),this.applyClbondsOptions_base("all"),t.bCalcCrossLink=!0),"yes"===e.clbonds.toLowerCase()&&"nothing"!==e.chemicals){let e="#006400";if(s.parasCls.thr(25600),t.lines.clbond=[],t.residuesHashClbonds={},t.structures){let i=Object.keys(t.structures);for(let n=0,l=i.length;n1&&"sphere"!==a[Object.keys(a)[0]].style&&"dot"!==a[Object.keys(a)[0]].style){if(void 0===i.bCid||!i.bCid)for(let e in a){let t=a[e],n=1;i.boxCls.createBox(t,void 0,void 0,n,void 0,s)}}else for(let e in o){let l=i.firstAtomObjCls.getFirstCalphaAtomObj(i.residues[e]),r=l,o=r.structure+"_"+r.chain+"_"+(parseInt(r.resi)-1).toString(),a=r.structure+"_"+r.chain+"_"+(parseInt(r.resi)+1).toString();if("cylinder and plate"===r.style&&"helix"===r.ss)for(let t in i.residues[e]){let e=i.atoms[t],n=1;i.boxCls.createBox(e,void 0,void 0,n,void 0,s)}else if("ribbon"===r.style&&"coil"===r.ss||"strand"===r.style&&"coil"===r.ss||"o3 trace"===r.style||"schematic"===r.style||"c alpha trace"===r.style||"b factor tube"===r.style||"cylinder and plate"===r.style&&"helix"!==r.ss){if(void 0!==l&&void 0!==l.style2&&"nothing"!==l.style2)continue;let e=!1;if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(a)){let s=Object.keys(i.residues[a])[0],l=n.hashUtilsCls.hash2Atoms(i.residues[a],i.atoms)[s];if(r.style===l.style&&!l.ssbegin||l.ssbegin){let s=i.residues[a];if(t=n.hashUtilsCls.unionHash(t,s),e=!0,l.ssbegin)for(let e in s)i.atoms[e].notshow=!0}}if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(o)){let s=Object.keys(i.residues[o])[0],l=n.hashUtilsCls.hash2Atoms(i.residues[o],i.atoms)[s];r.style===l.style&&(t=n.hashUtilsCls.unionHash(t,i.residues[o]),e=!0)}}else if("ribbon"===r.style&&"coil"!==r.ss&&r.ssend||"strand"===r.style&&"coil"!==r.ss&&r.ssend){if(void 0!==l&&void 0!==l.style2&&"nothing"!==l.style2)continue;let e=!1;if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(a)){let s=Object.keys(i.residues[a])[0];n.hashUtilsCls.hash2Atoms(i.residues[a],i.atoms)[s],t=n.hashUtilsCls.unionHash(t,i.residues[a]),e=!0}}}a={}}if(i.bInitial&&void 0===i.bMembrane){if(""!=n.htmlCls.setHtmlCls.getCookie("membrane")){let e=parseInt(n.htmlCls.setHtmlCls.getCookie("membrane"));i.bMembrane!=e&&n.htmlCls.clickMenuCls.setLogCmd("set membrane "+e,!0),i.bMembrane=isNaN(e)?0:parseInt(e)}i.bMembrane?i.selectionCls.toggleMembrane(!0):i.selectionCls.toggleMembrane(!1)}i.setStyleCls.setStyle2Atoms(t);let d=.5*i.cylinderRadius;void 0!==i.labels&&delete i.labels.schematic;for(let e in i.style2atoms){let t=i.style2atoms[e],l=n.hashUtilsCls.intHash(t,i.nucleotides),r=n.utilsCls.isCalphaPhosOnly(n.hashUtilsCls.hash2Atoms(l,i.atoms));if("ribbon"===e)i.strandCls.createStrand(n.hashUtilsCls.hash2Atoms(t,i.atoms),2,void 0,!0,void 0,void 0,!1,i.ribbonthickness,s);else if("strand"===e)i.strandCls.createStrand(n.hashUtilsCls.hash2Atoms(t,i.atoms),null,null,null,null,null,!1,void 0,s);else if("cylinder and plate"===e)i.cylinderCls.createCylinderHelix(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderHelixRadius,s);else if("nucleotide cartoon"===e)r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):(i.cartoonNuclCls.drawCartoonNucleicAcid(n.hashUtilsCls.hash2Atoms(t,i.atoms),null,i.ribbonthickness,s),2!==s&&i.cartoonNuclCls.drawNucleicAcidStick(n.hashUtilsCls.hash2Atoms(t,i.atoms),s));else if("o3 trace"===e)r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["O3'","O3*"],i.traceRadius,!1,s);else if("schematic"===e){let e=i.firstAtomObjCls.getFirstAtomObj(t);if(i.chemicals.hasOwnProperty(e.serial)){i.residueLabelsCls.addNonCarbonAtomLabels(n.hashUtilsCls.hash2Atoms(t,i.atoms));let e=!0;i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),d,d,void 0,s,e)}else i.residueLabelsCls.addResidueLabels(n.hashUtilsCls.hash2Atoms(t,i.atoms),!0),r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["O3'","O3*"],i.traceRadius,!1,s),i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["CA"],i.traceRadius,!1,s)}else"c alpha trace"===e?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["CA"],i.traceRadius,!1,s):"b factor tube"===e?i.tubeCls.createTube(n.hashUtilsCls.hash2Atoms(t,i.atoms),"CA",null,s,!1,!0):"custom tube"===e?i.tubeCls.createTube(n.hashUtilsCls.hash2Atoms(t,i.atoms),"CA",null,s,!0,!0):"lines"===e||"lines2"===e?(1===s?i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.hlLineRadius,i.hlLineRadius,void 0,s):i.lineCls.createLineRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),s),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"stick"===e||"stick2"===e?(i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,i.cylinderRadius,void 0,s,void 0),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"backbone"===e?(t=this.selectMainChainSubset(t),i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,i.cylinderRadius,void 0,s,void 0)):"ball and stick"===e||"ball and stick2"===e?(i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,.5*i.cylinderRadius,i.dotSphereScale,s,void 0),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"sphere"===e||"sphere2"===e?i.sphereCls.createSphereRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.sphereRadius,void 0,void 0,s):"dot"===e&&i.sphereCls.createSphereRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.sphereRadius,!1,i.dotSphereScale,s)}if(i.cnt>i.maxmaxatomcnt&&i.init_base(),void 0!==i.labels&&Object.keys(i.labels).length>0){i.labelCls.hideLabels();for(let e in i.labels)"schematic"!=e&&this.changeLabelColor(i.labels[e]);i.labelCls.createLabelRepresentation(i.labels)}}changeLabelColor(e){let t=this.icn3d;if(t.icn3dui,e)for(let s=0,i=e.length;s0){this.updateStabilizer();let e="#FFFFFF",s=t.stabilizerpnts;t.lines.stabilizer=[];for(let i=0,n=Math.floor(s.length/2);i0)for(let e=0,s=t.distPnts.length;e0&&t.applySymdCls.applySymd(),void 0!==t.prevOtherMesh)for(let e=0,s=t.prevOtherMesh.length;e0&&(e=s.hashUtilsCls.hash2Atoms(t.chemicals,t.atoms));let i=4;if(void 0!==e){let n=t.contactCls.getAtomsWithinAtom(t.atoms,e,i),l=3.5;t.opts.hbonds="yes",Object.keys(n).length>0&&t.hBondCls.calculateChemicalHbonds(e,n,parseFloat(l)),t.bSetFog||t.transformCls.zoominSelection(s.hashUtilsCls.unionHash(e,n))}}else"hide"===e.chemicalbinding&&(t.hBondCls.hideHbonds(),t.showInterCls.hideExtraBonds(),t.bSetFog||t.transformCls.zoominSelection(t.atoms))}updateStabilizer(){let e=this.icn3d;if(e.icn3dui,e.stabilizerpnts=[],void 0!==e.pairArray)for(let t=0,s=e.pairArray.length;t=0;i--){let r=t.ssbondpnts[e][2*i],o=t.ssbondpnts[e][2*i+1],a={};a.color=n,a.dashed=!1;let d=[],c=[],h=[],p=[],m=!1,u=!1;for(let e in t.residues[r])"SG"===t.atoms[e].name&&(h.push(t.atoms[e].coord),d.push(t.atoms[e].serial),m=!0);if(!m)for(let e in t.residues[r])if("CA"===t.atoms[e].name){h.push(t.atoms[e].coord),d.push(t.atoms[e].serial),m=!0,u=!0;break}m=!1;for(let e in t.residues[o])"SG"===t.atoms[e].name&&(p.push(t.atoms[e].coord),c.push(t.atoms[e].serial),m=!0);if(!m)for(let e in t.residues[o])if("CA"===t.atoms[e].name){p.push(t.atoms[e].coord),c.push(t.atoms[e].serial),m=!0,u=!0;break}let g=u?7:3,f=!1;for(let e=0,t=h.length;e1&&(l=!0)}if(t)if(l){let t=Object.keys(r)[0];e=i.chains[t]}else{0==Object.keys(i.hAtoms).length&&(i.hAtoms=n.hashUtilsCls.cloneHash(i.dAtoms));let t,s=parseInt(Object.keys(i.hAtoms).length/u),l=0;for(let n in i.hAtoms)if(e[n]=1,t=n,++l,l>s)break;let r=i.atoms[t].structure+"_"+i.atoms[t].chain+"_"+i.atoms[t].resi;e=n.hashUtilsCls.unionHash(e,i.residues[r])}else{let t=Object.keys(i.structures)[0]+"_"+g;if(i.chains.hasOwnProperty(t)||(t=Object.keys(i.structures)[0]+"_"+g.toLowerCase()),!i.chains.hasOwnProperty(t)){t=Object.keys(i.chains)[0];for(let e in i.chains){let s=Object.keys(i.chains[e])[0];if(i.proteins.hasOwnProperty(s)){t=e;break}}}e=i.chains[t]}let a=s.clone().add(h).multiplyScalar(.5),c=new THREE.Vector3,p=0,f=h.clone().sub(s).normalize(),C=new THREE.Vector3(0,0,1),b=new THREE.Quaternion;b.setFromUnitVectors(f,C);let y=-9999;for(let t in e){let e=i.atoms[t].coord.clone();c.add(e),e.sub(a).applyQuaternion(b);let s=e.x*e.x+e.y*e.y;s>y&&(y=s),++p}let v=i.ParserUtilsCls.getMassCenter(c,p),_=new THREE.Line3(s,h),w=new THREE.Vector3;_.closestPointToPoint(v,!0,w);let S,A,x,k,O=Math.sqrt(y),R=v.clone().sub(w).normalize().multiplyScalar(O),I=a.clone().add(s.clone().sub(a).multiplyScalar(.83)).add(R),E=a.clone().add(h.clone().sub(a).multiplyScalar(.83)).add(R),T=2*Math.PI/o;for(let e=0;et&&(i.sphereCls.createSphereBase(r,m,d,1,0),i.cylinderCls.createCylinder(e,r,d,m,0),i.cylinderCls.createCylinder(s,r,d,m,0),void 0!==n&&i.cylinderCls.createCylinder(c[n],r,d,m,0),n=l)}}else if("O"==r)for(let e=0,t=c.length;e0&&(e.mdl.remove(e.prevSurfaces[e.prevSurfaces.length-1]),e.prevSurfaces.slice(e.prevSurfaces.length-1,1))}removeMaps(){let e=this.icn3d;e.icn3dui;for(let t=0,s=e.prevMaps.length;t0&&(e.mdl.remove(e.prevMaps[e.prevMaps.length-1]),e.prevMaps.slice(e.prevMaps.length-1,1))}removeLastEmmap(){let e=this.icn3d;e.icn3dui,e.prevEmmaps.length>0&&(e.mdl.remove(e.prevEmmaps[e.prevEmmaps.length-1]),e.prevEmmaps.slice(e.prevEmmaps.length-1,1))}removeLastPhimap(){let e=this.icn3d;e.icn3dui,e.prevPhimaps.length>0&&(e.mdl.remove(e.prevPhimaps[e.prevPhimaps.length-1]),e.prevPhimaps.slice(e.prevPhimaps.length-1,1))}}class ot{constructor(e){this.icn3d=e}addResidueLabels(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui;if(r.bNode)return;let o=r.hashUtilsCls.intHash(l.hAtoms,e);t?void 0===l.labels.schematic&&(l.labels.schematic=[]):void 0===l.labels.residue&&(l.labels.residue=[]);let a="";for(let e in o){let s=l.atoms[e],o={},d=s.structure+"_"+s.chain+"_"+s.resi;if(!s.het&&("CA"===s.name||"O3'"===s.name||"O3*"===s.name)||l.water.hasOwnProperty(s.serial)||l.ions.hasOwnProperty(s.serial)||l.chemicals.hasOwnProperty(s.serial)&&d!==a){if(o.position=s.coord,o.bSchematic=0,t&&(o.bSchematic=1),o.text=r.utilsCls.residueName2Abbr(s.resn),i)o.text+=s.resi;else if(n){let e=s.structure+"_"+s.chain+"_"+s.resi,t="";l.resid2refnum[e]&&(t=" "==l.resid2refnum[e].substr(0,1)?"":l.resid2refnum[e]),o.text=t}o.size=18,o.factor=.3;let e=s.color.getHexString().toUpperCase();o.color=i?"black"!=l.opts.background?l.colorWhitebkgd:l.colorBlackbkgd:n?"#00FFFF":"CCCCCC"===e||"C8C8C8"===e?"#888888":"#"+e,o.background="#FFFFFF",t?l.labels.schematic.push(o):l.labels.residue.push(o)}a=d}l.hlObjectsCls.removeHlObjects()}addIgLabels(e){let t=this.icn3d;if(t.icn3dui.bNode)return;t.labels.ig=[];let s=t.firstAtomObjCls.getChainsFromAtoms(e);for(let e in t.igLabel2Pos)if(s.hasOwnProperty(e))for(let s in t.igLabel2Pos[e]){let i={};i.position=t.igLabel2Pos[e][s],i.text=s,i.size=60,i.color="#00FFFF",t.labels.ig.push(i)}t.hlObjectsCls.removeHlObjects()}addNonCarbonAtomLabels(e){let t=this.icn3d,s=t.icn3dui;if(s.bNode)return;let i=s.hashUtilsCls.intHash(t.hAtoms,e);void 0===t.labels.schematic&&(t.labels.schematic=[]);for(let e in i){let s=t.atoms[e];if(!t.residues.hasOwnProperty(s.structure+"_"+s.chain+"_"+s.resi))continue;if("C"===s.elem)continue;let i={};i.position=s.coord,i.bSchematic=1,i.text=s.elem,i.size=18,i.color="black"!=t.opts.background?t.colorWhitebkgd:s.color.getHexString(),i.background="#FFFFFF",t.labels.schematic.push(i)}t.hlObjectsCls.removeHlObjects()}addAtomLabels(e,t){let s=this.icn3d,i=s.icn3dui;if(i.bNode)return;let n=i.hashUtilsCls.intHash(s.hAtoms,e);n=i.hashUtilsCls.intHash(s.dAtoms,n),void 0===s.labels.residue&&(s.labels.residue=[]);for(let e in n){let i=s.atoms[e],n={};n.position=i.coord,n.bSchematic=0,n.text=t?i.elem:i.name.padEnd(2," "),n.size=18,t&&(n.bSchematic=!0);let l=i.color.getHexString().toUpperCase();n.color="black"!=s.opts.background?s.colorWhitebkgd:s.colorBlackbkgd,t&&(n.color="CCCCCC"===l||"C8C8C8"===l?"#888888":"#"+l),n.background="#FFFFFF",s.labels.residue.push(n)}s.hlObjectsCls.removeHlObjects()}}class at{constructor(e){this.icn3d=e}onBeforeRender(e,t,s,i,n,l){let r=n.uniforms,o=[];if(r.objectId&&(r.objectId.value=SupportsReadPixelsFloat?this.id:this.id/255,o.push("objectId")),(r.modelViewMatrixInverse||r.modelViewMatrixInverseTranspose||r.modelViewProjectionMatrix||r.modelViewProjectionMatrixInverse)&&this.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,this.matrixWorld),r.modelViewMatrixInverse&&(r.modelViewMatrixInverse.value.copy(this.modelViewMatrix).invert(),o.push("modelViewMatrixInverse")),r.modelViewMatrixInverseTranspose&&(r.modelViewMatrixInverse?r.modelViewMatrixInverseTranspose.value.copy(r.modelViewMatrixInverse.value).transpose():r.modelViewMatrixInverseTranspose.value.copy(this.modelViewMatrix).invert().transpose(),o.push("modelViewMatrixInverseTranspose")),r.modelViewProjectionMatrix&&(s.updateProjectionMatrix(),r.modelViewProjectionMatrix.value.multiplyMatrices(s.projectionMatrix,this.modelViewMatrix),o.push("modelViewProjectionMatrix")),r.modelViewProjectionMatrixInverse){let e=new THREE.Matrix4;r.modelViewProjectionMatrix?(e.copy(r.modelViewProjectionMatrix.value),r.modelViewProjectionMatrixInverse.value.copy(e).invert()):(s.updateProjectionMatrix(),e.multiplyMatrices(s.projectionMatrix,this.modelViewMatrix),r.modelViewProjectionMatrixInverse.value.copy(e).invert()),o.push("modelViewProjectionMatrixInverse")}if(r.projectionMatrix&&(s.updateProjectionMatrix(),r.projectionMatrix.value.copy(s.projectionMatrix),o.push("projectionMatrix")),r.projectionMatrixInverse&&(s.updateProjectionMatrix(),r.projectionMatrixInverse.value.copy(s.projectionMatrix).invert(),o.push("projectionMatrixInverse")),o.length){let t=e.properties.get(n);if(t.program){let s=e.getContext(),i=t.program;s.useProgram(i.program);let n=i.getUniforms();o.forEach((function(e){n.setValue(s,e,r[e].value)}))}}}setParametersForShader(e){let t,s=this.icn3d,i=s.icn3dui.parasCls.backgroundColors[s.opts.background.toLowerCase()],n=2.5*s.maxD,l=4*s.maxD,r=void 0!==s.biomtMatrices&&s.biomtMatrices.length*s.cnt>s.maxatomcnt;"yes"===s.opts.slab?r?t=.1:void 0!==s.camMaxDFactorFog?(t=s.maxD*s.camMaxDFactorFog-10,n=2.5*s.maxD-t<0?0:2.5*s.maxD-t,l=4*s.maxD-t):t=s.maxD*s.camMaxDFactor:t=.1;let o=void 0!==e?e:1,a=s.shininess/100*.5;s.uniforms=THREE.UniformsUtils.merge([THREE.UniformsLib.common,{modelViewMatrix:{value:new THREE.Matrix4},modelViewMatrixInverse:{value:new THREE.Matrix4},modelViewMatrixInverseTranspose:{value:new THREE.Matrix4},modelViewProjectionMatrix:{value:new THREE.Matrix4},modelViewProjectionMatrixInverse:{value:new THREE.Matrix4},projectionMatrix:{value:new THREE.Matrix4},projectionMatrixInverse:{value:new THREE.Matrix4},diffuse:{type:"v3",value:[1,1,1]},emissive:{type:"v3",value:[.06,.06,.06]},roughness:{type:"f",value:.5},metalness:{type:"f",value:a},opacity:{type:"f",value:o},nearClip:{type:"f",value:t},ortho:{type:"f",value:0},shrink:{type:"f",value:.13},fogColor:{type:"v3",value:[i.r,i.g,i.b]},fogNear:{type:"f",value:n},fogFar:{type:"f",value:l},fogDensity:{type:"f",value:2}},THREE.UniformsLib.ambient,THREE.UniformsLib.lights]),s.defines={USE_COLOR:1,NEAR_CLIP:1,CAP:1},"yes"!==s.opts.fog||r||(s.defines.USE_FOG=1,"orthographic"===s.opts.camera&&(s.defines.FOG_EXP2=1)),s.bExtFragDepth&&(s.defines.USE_LOGDEPTHBUF_EXT=1)}drawImpostorShader(){this.icn3d.icn3dui.bNode||(this.setParametersForShader(),this.createImpostorShaderSphere("SphereImpostor"),this.createImpostorShaderCylinder("CylinderImpostor"))}getShader(e){this.icn3d.icn3dui;let t=$NGL_shaderTextHash[e];return t=t.replace(/#include\s+(\S+)/gim,(function(e,t){let s;return THREE.ShaderChunk.hasOwnProperty(t)&&(s=THREE.ShaderChunk[t]),s||""})),t}createImpostorShaderBase(e,t,s,i,n,l,r,o,a){let d=this.icn3d;d.icn3dui;let c=new THREE.ShaderMaterial({defines:d.defines,uniforms:d.uniforms,vertexShader:this.getShader(e+".vert"),fragmentShader:this.getShader(e+".frag"),depthTest:!0,depthWrite:!0,lights:!0});c.extensions.fragDepth=!0,"CylinderImpostor"==e?d.CylinderImpostorMaterial=c:"SphereImpostor"==e&&(d.SphereImpostorMaterial=c);let h,p,m=l*r,u=l*o,g=new(m>65535?Uint32Array:Uint16Array)(u);for(let e=0;e=0;t--){let s=a.children[t];s.onBeforeRender=e.impostorCls.onBeforeRender,s.frustumCulled=!1}l.add(a)}void 0!==e.mdl_ghost&&(a=e.mdl_ghost.clone(),this.applyMat(a,d),r.add(a));let c=e.center.clone();this.applyMat(c,d,!0),s.add(c),++t}e.mdl.add(n),e.mdlImpostor.add(l),e.mdl_ghost.add(r),void 0!==e.bSetInstancing&&e.bSetInstancing?(e.maxD=e.maxDAssembly,e.center=e.centerAssembly.clone(),e.applyCenterCls.setCenter(e.center),e.cameraCls.setCamera()):(e.maxD*=Math.sqrt(t),e.center=e.ParserUtilsCls.getMassCenter(s,t),e.maxDAssembly=e.maxD,e.centerAssembly=e.center.clone(),e.applyCenterCls.setCenter(e.center),e.cameraCls.setCamera()),e.bSetInstancing=!0}createInstancedGeometry(e){let t=this.icn3d,s=t.icn3dui,i=e.geometry,n=new THREE.InstancedBufferGeometry,l=[],r=[],o=[],a=[],d=[],c=[],h=[],p=[];if(t.bImpo&&"Cylinder"==e.type){t.instancedMaterial=this.getInstancedMaterial("CylinderInstancing");let e=s.hashUtilsCls.hashvalue2array(i.attributes.position1.array),r=s.hashUtilsCls.hashvalue2array(i.attributes.color.array),m=s.hashUtilsCls.hashvalue2array(i.attributes.position2.array),u=s.hashUtilsCls.hashvalue2array(i.attributes.color2.array),g=s.hashUtilsCls.hashvalue2array(i.index.array),f=s.hashUtilsCls.hashvalue2array(i.attributes.radius.array),C=s.hashUtilsCls.hashvalue2array(i.attributes.mapping.array);l=l.concat(e),o=o.concat(r),h=h.concat(m),p=p.concat(u),a=a.concat(g),d=d.concat(f),c=c.concat(C),n.setAttribute("position1",new THREE.BufferAttribute(new Float32Array(l),3)),n.setAttribute("color",new THREE.BufferAttribute(new Float32Array(o),3)),n.setAttribute("position2",new THREE.BufferAttribute(new Float32Array(h),3)),n.setAttribute("color2",new THREE.BufferAttribute(new Float32Array(p),3)),n.setAttribute("radius",new THREE.BufferAttribute(new Float32Array(d),1)),n.setAttribute("mapping",new THREE.BufferAttribute(new Float32Array(c),3)),n.setIndex(new THREE.BufferAttribute(new Uint32Array(a),1)),e=null,r=null,m=null,u=null,g=null,f=null,C=null}else if(t.bImpo&&"Sphere"==e.type){t.instancedMaterial=this.getInstancedMaterial("SphereInstancing");let e=s.hashUtilsCls.hashvalue2array(i.attributes.position.array),r=s.hashUtilsCls.hashvalue2array(i.attributes.color.array),h=s.hashUtilsCls.hashvalue2array(i.index.array),p=s.hashUtilsCls.hashvalue2array(i.attributes.radius.array),m=s.hashUtilsCls.hashvalue2array(i.attributes.mapping.array);l=l.concat(e),o=o.concat(r),a=a.concat(h),d=d.concat(p),c=c.concat(m),n.setAttribute("position",new THREE.BufferAttribute(new Float32Array(l),3)),n.setAttribute("color",new THREE.BufferAttribute(new Float32Array(o),3)),n.setAttribute("radius",new THREE.BufferAttribute(new Float32Array(d),1)),n.setAttribute("mapping",new THREE.BufferAttribute(new Float32Array(c),2)),n.setIndex(new THREE.BufferAttribute(new Uint32Array(a),1)),e=null,r=null,h=null,p=null,m=null}else{t.instancedMaterial=this.getInstancedMaterial("Instancing");let e=i.attributes.position?s.hashUtilsCls.hashvalue2array(i.attributes.position.array):[],d=i.attributes.normal?s.hashUtilsCls.hashvalue2array(i.attributes.normal.array):[],c=i.attributes.color?s.hashUtilsCls.hashvalue2array(i.attributes.color.array):[],h=i.index?s.hashUtilsCls.hashvalue2array(i.index.array):[];l=l.concat(e),r=r.concat(d),o=o.concat(c),a=a.concat(h);let p=[],m="CylinderGeometry"==i.type?1:0;for(let e=0,t=l.length/3;e0&&(e.dAtoms=t.hashUtilsCls.cloneHash(s)),e.bShowHighlight=!1}e.applyMapCls.removeSurfaces(),e.applyMapCls.applySurfaceOptions(),e.applyMapCls.removeMaps(),e.applyMapCls.applyMapOptions(),e.applyMapCls.removeEmmaps(),e.applyMapCls.applyEmmapOptions(),e.applyMapCls.removePhimaps(),e.applyMapCls.applyPhimapOptions(),e.applyMapCls.removeSurfaces(),e.applyMapCls.applyphisurfaceOptions(),e.axes=[],e.pc1&&e.axesCls.setPc1Axes(),e.opts.rotationcenter="highlight center",e.drawCls.draw(),e.bShowHighlight=!0}async alternateWrapper(){let e=this.icn3d;e.icn3dui,e.bAlternate=!0,await this.alternateStructures(),e.bAlternate=!1}}class ht{constructor(e){this.icn3d=e}draw(e){let t=this.icn3d,s=t.icn3dui;if(t.impostorCls.clearImpostors(),!t.bRender||t.hAtoms&&0!=Object.keys(t.hAtoms)||(t.hAtoms=s.hashUtilsCls.cloneHash(t.atoms)),t.sceneCls.rebuildScene(),t.bImpo&&t.impostorCls.drawImpostorShader(),t.setColorCls.applyPrevColor(),void 0!==t.biomtMatrices&&t.biomtMatrices.length>1)if(t.bAssembly&&1==Object.keys(t.structures).length&&(void 0===s.cfg.mmdbid&&1==s.cfg.bu||void 0!==s.cfg.mmdbid&&1==s.cfg.bu&&Object.keys(t.atoms).length*t.biomtMatrices.length>t.maxatomcnt))t.instancingCls.drawSymmetryMates();else{let e=!0;t.applyCenterCls.centerSelection(void 0,e)}let i=void 0!==t.hAtoms?Object.keys(t.hAtoms).length:0;if(i>0&&i0){e.children[0].scale.z=t[0].distance,t[0].point.sub(r.mdl.position);let s=r.rayThreshold,i=r.rayCls.getAtomsFromPosition(t[0].point,s);for(;!i&&s<10;)s+=.5,i=r.rayCls.getAtomsFromPosition(t[0].point,s);i&&(r.pAtomNum%2==0?r.pAtom=i:r.pAtom2=i,++r.pAtomNum,this.showPickingVr(r.pk,i))}}}}catch(e){}}showPickingVr(e,t){let s=this.icn3d;s.icn3dui,e||(e=2),s.hAtoms=s.pickingCls.getPickedAtomList(e,t),2===e?s.residueLabelsCls.addResidueLabels(s.hAtoms,void 0,void 0,!0):1===e&&s.residueLabelsCls.addAtomLabels(s.hAtoms),s.setOptionCls.setStyle("proteins",t.style)}render_base(){let e=this.icn3d,t=e.icn3dui,s=this;if(t.bNode)return;let i=e.bControlGl&&!t.bNode?window.cam:e.cam;if(e.directionalLight){let t=new THREE.Quaternion;t.setFromUnitVectors(new THREE.Vector3(0,0,e.cam_z).normalize(),i.position.clone().normalize()),e.directionalLight.position.copy(e.lightPos.clone().applyQuaternion(t).normalize()),e.directionalLight2.position.copy(e.lightPos2.clone().applyQuaternion(t).normalize()),e.directionalLight3.position.copy(e.lightPos3.clone().applyQuaternion(t).normalize())}if(e.bVr||e.renderer.setPixelRatio(window.devicePixelRatio),e.bVr){let t=.04;if(e.controllers){let i=this.updateGamepadState();for(let n=0,l=e.controllers.length;n{const i=e.gamepad.axes;let r=parseInt(1e3*i[t]),o=parseInt(-1e3*i[s]);n.push(r),l.push(o)})),{xArray:n,yArray:l}}return{xArray:[0,0],yArray:[0,0]}}}class pt{constructor(e){this.icn3d=e}getAtomsWithinAtom(e,t,s,i,n,l,r){let o=this.icn3d,a=o.icn3dui,d=this.getNeighboringAtoms(e,t,s,r);i&&(o.resid2Residhash={});let c={};for(let e in t){let h=o.atoms[e];if(n&&"H"==h.elem)continue;let p,m,u=a.parasCls.vdwRadii[h.elem.toUpperCase()],g=h.structure+"_"+h.chain,f=h.structure+"_"+h.chain+"_"+h.resi;for(let e in o.residues[f])if(o.atoms[e]&&("CA"===o.atoms[e].name&&"C"===o.atoms[e].elem||"O3'"===o.atoms[e].name||"O3*"===o.atoms[e].name)){p=o.atoms[e];break}if(void 0===p&&(p=h),i){let e=0==h.name.indexOf("pi")&&h.ring?h.ring.join(","):h.serial;m=h.resn+" $"+h.structure+"."+h.chain+":"+h.resi+" "+e,void 0===o.resid2Residhash[m]&&(o.resid2Residhash[m]={})}let C=h.structure+"_"+h.chain+"_"+h.resi;for(let e in d){let f=d[e];if(n&&"H"==f.elem)continue;let b=a.parasCls.vdwRadii[f.elem.toUpperCase()],y=f.structure+"_"+f.chain;if(n&&!o.crossstrucinter&&h.structure!=f.structure)continue;if(!r&&f.serial in t)continue;if(o.bOpm&&"DUM"===f.resn)continue;let v=f.coord.distanceTo(h.coord);if(n&&vo?r:o,d=Math.sqrt(a),c=(d+s)*(d+s),h={};for(let r in e){let e=n.atoms[r];!i&&t.hasOwnProperty(e.serial)||(this.bOpm&&"DUM"===e.resn||e.coord.xl[1][0]+s||e.coord.yl[1][1]+s||e.coord.zl[1][2]+s||(e.coord.x-l[2][0])*(e.coord.x-l[2][0])+(e.coord.y-l[2][1])*(e.coord.y-l[2][1])+(e.coord.z-l[2][2])*(e.coord.z-l[2][2])e.coord.x?n:e.coord.x,l=l>e.coord.y?l:e.coord.y,r=r>e.coord.z?r:e.coord.z}return[[t,s,i],[n,l,r],[o/c,a/c,d/c]]}hideContact(){let e=this.icn3d;e.icn3dui,e.opts.contact="no",void 0===e.lines&&(e.lines={}),e.lines.contact=[],e.contactpnts=[]}}class mt{constructor(e){this.icn3d=e}isHbondDonorAcceptor(e){let t=this.icn3d;if(t.icn3dui,"N"==e.name&&!e.het||"N"==e.elem&&"Arg"==e.resn||"N"==e.elem&&"Asn"==e.resn||"N"==e.elem&&"Gln"==e.resn||"N"==e.elem&&"Lys"==e.resn||"N"==e.elem&&"Trp"==e.resn)return"donor";if("O"==e.name&&!e.het||"S"==e.elem&&"Met"==e.resn||"O"==e.elem&&"Asn"==e.resn||"O"==e.elem&&"Asp"==e.resn||"O"==e.elem&&"Gln"==e.resn||"O"==e.elem&&"Glu"==e.resn)return"acceptor";if("S"==e.elem&&"Cys"==e.resn||"N"==e.elem&&"His"==e.resn||"O"==e.elem&&"Ser"==e.resn||"O"==e.elem&&"Thr"==e.resn||"O"==e.elem&&"Tyr"==e.resn)return"both";if("Pro"==e.resn)return"none";if("N"==e.elem){if("Asn"==e.resn||"Gln"==e.resn)return"both";let s=0,i=0;for(let i=0,n=e.bonds.length;i1?"ring":"donor":"none"}if("O"==e.elem&&1==e.bonds.length){if("Asn"==e.resn||"Gln"==e.resn)return"both";for(let s=0,i=e.bonds.length;s=2?"acceptor":"both"}if("O"==e.elem&&2==e.bonds.length){for(let s=0,i=e.bonds.length;s1);++t)"H"!=s.atoms[e.bonds[t]].elem&&(i=s.atoms[e.bonds[t]],l[r++].subVectors(s.atoms[e.bonds[t]].coord,e.coord));if(1===r)for(let t=0,n=i.bonds.length;t1);++t)"H"!=s.atoms[i.bonds[t]].elem&&s.atoms[i.bonds[t]].serial!=e.serial&&l[r++].subVectors(s.atoms[i.bonds[t]].coord,e.coord);if(2!==r)return;let o=l[0].cross(l[1]);return Math.abs(Math.PI/2-o.angleTo(n))}isValidHbond(e,t,s){let i=this.icn3d;i.icn3dui;let n,l,r=this.isHbondDonorAcceptor(e),o=this.isHbondDonorAcceptor(t),a=50*Math.PI/180,d=50*Math.PI/180,c=90*Math.PI/180,h=30*Math.PI/180;if("donor"==r&&("acceptor"==o||"both"==o||"ring"==o)||"acceptor"==o&&("donor"==r||"both"==r||"ring"==r))n=e,l=t;else if("acceptor"==r&&("donor"==o||"both"==o||"ring"==o)||"donor"==o&&("acceptor"==r||"both"==r||"ring"==r))l=e,n=t;else{if("both"!=r&&"ring"!=r||"both"!=o&&"ring"!=o)return!1;n=e,l=t,i.nucleotides.hasOwnProperty(e.serial)&&i.nucleotides.hasOwnProperty(t.serial)&&("ring"==r||"ring"==o)||(e.het||t.het)&&"ring"==r&&"ring"==o||(h=90*Math.PI/180)}let p=this.calcAngles(n,l),m=90*Math.PI/180;for(let e=0,t=p.length;ed)return!1;let u=this.calcPlaneAngle(n,l);if(void 0!==u&&u>h)return!1;let g=this.calcAngles(l,n),f=90*Math.PI/180;for(let e=0,t=g.length;ea)return!1;let C=this.calcPlaneAngle(l,n);return!(void 0!==C&&C>c)}calculateChemicalHbonds(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(0===Object.keys(e).length||0===Object.keys(t).length)return;r.resid2Residhash={};let a,d,c={},h=s*s;for(let t in e){let s=e[t],n=i?"LYS"===s.resn&&"N"===s.elem&&"N"!==s.name||"ARG"===s.resn&&("NH1"===s.name||"NH2"===s.name)||("GLU"===s.resn||"ASP"===s.resn)&&"O"===s.elem&&"O"!==s.name||s.het&&("N"===s.elem||"O"===s.elem||"S"===s.elem):"N"===s.elem||"O"===s.elem||"S"===s.elem&&(s.het||"Cys"===s.resn||"Met"===s.resn);n=r.bOpm?n&&"DUM"!==s.resn:n,n&&(a=s.structure+"_"+s.chain+"_"+s.resi,d=a+"_"+s.name,c[d]=s)}let p={},m={},u=.5,g=-27.888,f={};for(let e in t){let C=t[e],b=i?"LYS"===C.resn&&"N"===C.elem&&"N"!==C.name||"ARG"===C.resn&&("NH1"===C.name||"NH2"===C.name)||("GLU"===C.resn||"ASP"===C.resn)&&"O"===C.elem&&"O"!==C.name||C.het&&("N"===C.elem||"O"===C.elem||"S"===C.elem):"N"===C.elem||"O"===C.elem||"S"===C.elem&&(C.het||"Cys"===C.resn||"Met"===C.resn);if(b=r.bOpm?b&&"DUM"!==C.resn:b,b){a=C.structure+"_"+C.chain+"_"+C.resi,d=a+"_"+C.name;let e=0==C.name.indexOf("pi")&&C.ring?C.ring.join(","):C.serial,t=C.resn+" $"+C.structure+"."+C.chain+":"+C.resi+"@"+C.name+" "+e;void 0===r.resid2Residhash[t]&&(r.resid2Residhash[t]={});for(let e in c){if(i&&!(("LYS"!==C.resn&&"ARG"!==C.resn||"LYS"!==c[e].resn&&"ARG"!==c[e].resn)&&("GLU"!==C.resn&&"ASP"!==C.resn||"GLU"!==c[e].resn&&"ASP"!==c[e].resn)))continue;if(!r.crossstrucinter&&C.structure!=c[e].structure)continue;if(a==e.substr(0,e.lastIndexOf("_")))continue;let d=Math.abs(C.coord.x-c[e].coord.x);if(d>s)continue;let b=Math.abs(C.coord.y-c[e].coord.y);if(b>s)continue;let y=Math.abs(C.coord.z-c[e].coord.z);if(y>s)continue;let v=d*d+b*b+y*y;if(v>h)continue;if(!r.proteins.hasOwnProperty(C.serial)||!r.proteins.hasOwnProperty(c[e].serial)||"N"!==C.name&&"O"!==C.name||"O"!==c[e].name&&"N"!==c[e].name){if(!this.isValidHbond(C,c[e],s))continue}else{if(C.name===c[e].name)continue;if(C.structure==c[e].structure&&C.chain==c[e].chain&&Math.abs(C.resi-c[e].resi)<=1)continue;let t,i="N"===C.name?C:c[e],n="O"===C.name?C:c[e];if("Pro"===i.resn)continue;if(void 0===i.hcoord){if(!this.isValidHbond(C,c[e],s))continue}else{let s,l=i.hcoord,o=i.coord,a=n.structure+"_"+n.chain+"_"+n.resi;for(let e in r.residues[a])if("C"===r.atoms[e].name){s=r.atoms[e];break}if(!s)continue;let d=s.coord,h=n.coord,p=l.distanceTo(h),m=l.distanceTo(d),f=o.distanceTo(d),b=o.distanceTo(h);t=p2||f[c[e].serial]>2)continue;void 0===f[C.serial]?f[C.serial]=1:++f[C.serial],void 0===f[c[e].serial]?f[c[e].serial]=1:++f[c[e].serial],"graph"!==n&&(i?(r.saltbridgepnts.push({serial:C.serial,coord:C.coord}),r.saltbridgepnts.push({serial:c[e].serial,coord:c[e].coord})):(r.hbondpnts.push({serial:C.serial,coord:C.coord}),r.hbondpnts.push({serial:c[e].serial,coord:c[e].coord})));let _=c[e].structure+"_"+c[e].chain+"_"+c[e].resi;p=o.hashUtilsCls.unionHash(p,r.residues[a]),p=o.hashUtilsCls.unionHash(p,r.residues[_]),m[a]=1,m[_]=1;let w=0==c[e].name.indexOf("pi")&&c[e].ring?c[e].ring.join(","):c[e].serial,S=c[e].resn+" $"+c[e].structure+"."+c[e].chain+":"+c[e].resi+"@"+c[e].name+" "+w,A=a+"_"+C.resn+","+_+"_"+c[e].resn;void 0!==r.resids2interAll[A]&&void 0!==r.resids2interAll[A].ionic&&r.resids2interAll[A].ionic.hasOwnProperty(t+"|"+S)||(r.resid2Residhash[t][S]=v.toFixed(1),l||(void 0===r.resids2inter[A]&&(r.resids2inter[A]={}),void 0===r.resids2inter[A].hbond&&(r.resids2inter[A].hbond={}),r.resids2inter[A].hbond[t+"|"+S]=v.toFixed(1)),void 0===r.resids2interAll[A]&&(r.resids2interAll[A]={}),void 0===r.resids2interAll[A].hbond&&(r.resids2interAll[A].hbond={}),r.resids2interAll[A].hbond[t+"|"+S]=v.toFixed(1))}}}let C=Object.keys(m);if("graph"!==n)for(let e=0,t=C.length;en)return!1;let c=Math.abs(e.coord.y-t.coord.y);if(c>n)return!1;let h=Math.abs(e.coord.z-t.coord.z);if(h>n)return!1;let p=d*d+c*c+h*h;if(p>l)return!1;"graph"!==s&&("halogen"==i?(a.halogenpnts.push({serial:e.serial,coord:e.coord}),a.halogenpnts.push({serial:t.serial,coord:t.coord})):"pi-cation"==i?(a.picationpnts.push({serial:e.serial,coord:e.coord}),a.picationpnts.push({serial:t.serial,coord:t.coord})):"pi-stacking"==i&&(a.pistackingpnts.push({serial:e.serial,coord:e.coord}),a.pistackingpnts.push({serial:t.serial,coord:t.coord})));let m=0==t.name.indexOf("pi")&&t.ring?t.ring.join(","):t.serial,u=t.resn+" $"+t.structure+"."+t.chain+":"+t.resi+"@"+t.name+" "+m;a.resid2Residhash[r][u]=p.toFixed(1);let g=e.structure+"_"+e.chain+"_"+e.resi+"_"+e.resn+","+t.structure+"_"+t.chain+"_"+t.resi+"_"+t.resn;return o||(void 0===a.resids2inter[g]&&(a.resids2inter[g]={}),void 0===a.resids2inter[g][i]&&(a.resids2inter[g][i]={}),a.resids2inter[g][i][r+"|"+u]=p.toFixed(1)),void 0===a.resids2interAll[g]&&(a.resids2interAll[g]={}),void 0===a.resids2interAll[g][i]&&(a.resids2interAll[g][i]={}),a.resids2interAll[g][i][r+"|"+u]=p.toFixed(1),!0}getRingNormal(e){if(this.icn3d.icn3dui,e.length<3)return;let t=e[0].clone().sub(e[1]),s=e[1].clone().sub(e[2]);return t.cross(s).normalize()}getAromaticRings(e,t,s){let i=this.icn3d;i.icn3dui;let n=[],l=[],r=[],o=[];if("nucleotide"==s){let s=new THREE.Vector3,a=new THREE.Vector3;if("A"==e.trim().toUpperCase()||"DA"==e.trim().toUpperCase()||"G"==e.trim().toUpperCase()||"DG"==e.trim().toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"N1"==t.name||"C2"==t.name||"N3"==t.name||"C6"==t.name?(s.add(t.coord),r.push(t.coord)):"C4"==t.name||"C5"==t.name?(s.add(t.coord),a.add(t.coord),r.push(t.coord),o.push(t.coord)):"N7"!=t.name&&"C8"!=t.name&&"N9"!=t.name||(a.add(t.coord),o.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r))),5==o.length&&(a.multiplyScalar(.2),n.push(a),l.push(this.getRingNormal(o)))}else if("C"==e.trim().toUpperCase()||"DC"==e.trim().toUpperCase()||"T"==e.trim().toUpperCase()||"DT"==e.trim().toUpperCase()||"U"==e.trim().toUpperCase()||"DU"==e.trim().toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"N1"==t.name||"C2"==t.name||"N3"==t.name||"C6"==t.name?(s.add(t.coord),r.push(t.coord)):"C4"!=t.name&&"C5"!=t.name||(s.add(t.coord),r.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r)))}}else if("protein"==s){let s=new THREE.Vector3,a=new THREE.Vector3;if("PHE"==e.toUpperCase()||"TYR"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CG"!=t.name&&"CD1"!=t.name&&"CE1"!=t.name&&"CZ"!=t.name&&"CE2"!=t.name&&"CD2"!=t.name||(s.add(t.coord),r.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r)))}else if("HIS"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CG"!=t.name&&"ND1"!=t.name&&"CE1"!=t.name&&"NE2"!=t.name&&"CD2"!=t.name||(s.add(t.coord),r.push(t.coord))}5==r.length&&(s.multiplyScalar(.2),n.push(s),l.push(this.getRingNormal(r)))}else if("TRP"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CZ2"==t.name||"CH2"==t.name||"CZ3"==t.name||"CE3"==t.name?(s.add(t.coord),r.push(t.coord)):"CD2"==t.name||"CE2"==t.name?(s.add(t.coord),a.add(t.coord),r.push(t.coord),o.push(t.coord)):"CG"!=t.name&&"CD1"!=t.name&&"NE1"!=t.name||(a.add(t.coord),o.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r))),5==o.length&&(a.multiplyScalar(.2),n.push(a),l.push(this.getRingNormal(o)))}}return{piPosArray:n,normalArray:l}}dfs_cycle(e,t,s){let i=this.icn3d;if(i.icn3dui,2==i.ring_color[e])return s;if(1==i.ring_color[e]){s++;let n=t;for(i.ring_mark[n]=s;n!=e;)n=i.ring_par[n],i.ring_mark[n]=s;return s}if(i.ring_par[e]=t,i.ring_color[e]=1,void 0!==i.atoms[e])for(let t=0,n=i.atoms[e].bonds.length;t=3&&o<=6&&a[0]&&a[1]&&a[2]&&a[3]){let i=a[0].clone().sub(a[1]).normalize(),r=a[1].clone().sub(a[2]).normalize(),c=a[2].clone().sub(a[3]).normalize(),h=i.cross(r).normalize(),p=h.dot(c);if(Math.abs(p)<.052){l.multiplyScalar(1/o);let i=t.atoms[n];s[e+"_pi"+n]={resn:i.resn,name:"pi"+n,coord:l,serial:i.serial,structure:i.structure,chain:i.chain,resi:i.resi,normal:h,ring:d}}}}return s}hideHalogenPi(){let e=this.icn3d;e.icn3dui,e.opts.halogen="no",e.opts["pi-cation"]="no",e.opts["pi-stacking"]="no",void 0===e.lines&&(e.lines={}),e.lines.halogen=[],e.lines["pi-cation"]=[],e.lines["pi-stacking"]=[],e.halogenpnts=[],e.picationpnts=[],e.pistackingpnts=[]}}class gt{constructor(e){this.icn3d=e}calculateIonicInteractions(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(0===Object.keys(e).length||0===Object.keys(t).length)return;r.resid2Residhash={};let a,d,c={},h={},p=s*s;for(let t in e){let s=e[t];if("ARG"===s.resn&&"NH2"===s.name||"GLU"===s.resn&&"OE2"===s.name||"ASP"===s.resn&&"OD2"===s.name)continue;let i=("LYS"===s.resn||"HIS"===s.resn)&&"N"===s.elem&&"N"!==s.name||"ARG"===s.resn&&("NH1"===s.name||"NH2"===s.name)||s.het&&-1!==o.parasCls.cationsTrimArray.indexOf(s.elem)||s.het&&"N"===s.elem&&1==s.bonds.length,n=this.isAnion(s);i=r.bOpm?i&&"DUM"!==s.resn:i,n=r.bOpm?n&&"DUM"!==s.resn:n,(i||n)&&(a=s.structure+"_"+s.chain+"_"+s.resi,d=a+"_"+s.name,i&&(c[d]=s),n&&(h[d]=s))}let m={},u={};for(let e in t){let i=t[e];if("ARG"===i.resn&&"NH2"===i.name||"GLU"===i.resn&&"OE2"===i.name||"ASP"===i.resn&&"OD2"===i.name)continue;let g=("LYS"===i.resn||"HIS"===i.resn)&&"N"===i.elem&&"N"!==i.name||"ARG"===i.resn&&("NH1"===i.name||"NH2"===i.name)||i.het&&-1!==o.parasCls.cationsTrimArray.indexOf(i.elem),f=this.isAnion(i);if(g=r.bOpm?g&&"DUM"!==i.resn:g,f=r.bOpm?f&&"DUM"!==i.resn:f,g||f){a=i.structure+"_"+i.chain+"_"+i.resi,d=a+"_"+i.name;let e=0==i.name.indexOf("pi")&&i.ring?i.ring.join(","):i.serial,t=i.resn+" $"+i.structure+"."+i.chain+":"+i.resi+"@"+i.name+" "+e;void 0===r.resid2Residhash[t]&&(r.resid2Residhash[t]={});let C={};g?C=h:f&&(C=c);let b,y=i.structure+"_"+i.chain+"_"+i.resi;g&&"ARG"===i.resn&&"NH1"===i.name?b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"NH2"):f&&"GLU"===i.resn&&"OE1"===i.name?b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"OE2"):f&&"ASP"===i.resn&&"OD1"===i.name&&(b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"OD2"));let v=void 0===b?i.coord:i.coord.clone().add(b.coord).multiplyScalar(.5);for(let e in C){if(a==e.substr(0,e.lastIndexOf("_")))continue;if(!r.crossstrucinter&&i.structure!=C[e].structure)continue;let d,c=C[e].structure+"_"+C[e].chain+"_"+C[e].resi;f&&"ARG"===C[e].resn&&"NH1"===C[e].name?d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"NH2"):g&&"GLU"===C[e].resn&&"OE1"===C[e].name?d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"OE2"):g&&"ASP"===C[e].resn&&"OD1"===C[e].name&&(d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"OD2"));let h=void 0===d?C[e].coord:C[e].coord.clone().add(d.coord).multiplyScalar(.5),b=Math.abs(v.x-h.x);if(b>s)continue;let y=Math.abs(v.y-h.y);if(y>s)continue;let _=Math.abs(v.z-h.z);if(_>s)continue;let w=b*b+y*y+_*_;if(w>p)continue;"graph"!==n&&(r.saltbridgepnts.push({serial:i.serial,coord:v}),r.saltbridgepnts.push({serial:C[e].serial,coord:h}));let S=C[e].structure+"_"+C[e].chain+"_"+C[e].resi;m=o.hashUtilsCls.unionHash(m,r.residues[a]),m=o.hashUtilsCls.unionHash(m,r.residues[S]),u[a]=1,u[S]=1;let A=0==C[e].name.indexOf("pi")&&C[e].ring?C[e].ring.join(","):C[e].serial,x=C[e].resn+" $"+C[e].structure+"."+C[e].chain+":"+C[e].resi+"@"+C[e].name+" "+A;r.resid2Residhash[t][x]=w.toFixed(1);let k=a+"_"+i.resn+","+S+"_"+C[e].resn;l||(void 0===r.resids2inter[k]&&(r.resids2inter[k]={}),void 0===r.resids2inter[k].ionic&&(r.resids2inter[k].ionic={}),r.resids2inter[k].ionic[t+"|"+x]=w.toFixed(1)),void 0===r.resids2interAll[k]&&(r.resids2interAll[k]={}),void 0===r.resids2interAll[k].ionic&&(r.resids2interAll[k].ionic={}),r.resids2interAll[k].ionic[t+"|"+x]=w.toFixed(1)}}}let g=Object.keys(u);if("graph"!==n)for(let e=0,t=g.length;e1?1/(n-1):1;for(let n in e){let e=t.atoms[n];e.color=s.parasCls.thr().setHSL(3/4*(1-i++*l),1,.45),t.atomPrevColors[n]=e.color}}colorRainbow(e){let t=this.icn3d,s=t.icn3dui,i=0,n=0;e=s.hashUtilsCls.intHash(e,t.hAtoms);for(let s in e)t.atoms[s],++n;let l=n>1?1/(n-1):1;for(let n in e){let e=t.atoms[n];e.color=s.parasCls.thr().setHSL(3/4*i++*l,1,.45),t.atomPrevColors[n]=e.color}}setColorAcrossSets(e,t){let s=this.icn3d,i=s.icn3dui,n=0,l=e.length,r=l>1?1/(l-1):1;for(let l=0,o=e.length;l0)this.setMmdbChainColor();else{let e=-1,s="",l=n.parasCls.stdChainColors.length;for(let r in t){let t=i.atoms[r];t.chain!=s&&(++e,e%=l),t.het?(t.color=n.parasCls.atomColors[t.elem],i.atomPrevColors[r]=t.color):(t.color=n.parasCls.stdChainColors[e],Object.keys(i.chainsColor).length>0&&this.updateChainsColor(t),i.atomPrevColors[r]=t.color),s=t.chain}}break;case"domain":s=0,l=0;let m=Object.keys(i.tddomains);l=m.length,r=l>1?1/(l-1):1;for(let e=0,t=m.length;e1?1/(l-1):1;for(let e=0;e Defined Sets", and try it again.');break;case"secondary structure green":case"secondary structure":i.sheetcolor="green";for(let e in t){let t=i.atoms[e];t.color=t.het?n.parasCls.atomColors[t.elem]||n.parasCls.defaultAtomColor:n.parasCls.ssColors[t.ss]||n.parasCls.thr(16711935),i.atomPrevColors[e]=t.color}break;case"secondary structure yellow":i.sheetcolor="yellow";for(let e in t){let t=i.atoms[e];t.color=t.het?n.parasCls.atomColors[t.elem]||n.parasCls.defaultAtomColor:n.parasCls.ssColors2[t.ss]||n.parasCls.thr(16711935),i.atomPrevColors[e]=t.color}break;case"secondary structure spectrum":s=0,l=0;let u,g,f=[],C=-9999;for(let e in t){if(!i.proteins.hasOwnProperty(e))continue;let t=i.atoms[e];-9999==C&&(u=parseInt(e)),-9999!=C&&(t.ss!=g.ss||Math.abs(t.resi-g.resi)>1||t.ssbegin&&g.ssend)&&("coil"==g.ss||f.push([u,C]),u=e),C=parseInt(e),g=t}"coil"==g.ss||f.push([u,C]),l=f.length,r=l>1?1/(l-1):1;for(let e=0,t=f.length;e100&&(e=100);let r=(i.middB-e)*i.spanBinv1,o=(e-i.middB)*i.spanBinv2;e=90?t.color=n.parasCls.thr().setRGB(0,.325,.839):e>=70&&e<90?t.color=n.parasCls.thr().setRGB(.396,.572,.953):e>=50&&e<70?t.color=n.parasCls.thr().setRGB(1,.859,.075):e<50&&(t.color=n.parasCls.thr().setRGB(1,.49,.271))}i.atomPrevColors[e]=t.color}break;case"b factor":i.middB=50,i.spanBinv1=.02,i.spanBinv2=.02;for(let e in t){let t=i.atoms[e];if(void 0===t.b||isNaN(t.b)||0==parseInt(1e3*t.b))t.color=n.parasCls.thr().setRGB(0,1,0);else{let e=t.b;e>100&&(e=100),e=t.structure.substr(0,4)!=i.defaultPdbId&&t.structure.length>5?100-e:e;let s=(i.middB-e)*i.spanBinv1,l=(e-i.middB)*i.spanBinv2;t.color=et.b&&(o=t.b),a5?100-t.b:t.b,s=i.bfactorArray.indexOf(e)/b;t.color=s<.5?n.parasCls.thr().setRGB(2*s,2*s,1):n.parasCls.thr().setRGB(1,2*(1-s),2*(1-s))}i.atomPrevColors[e]=t.color}break;case"area":if(void 0===i.resid2area){let e=n.hashUtilsCls.cloneHash(i.hAtoms);i.hAtoms=n.hashUtilsCls.cloneHash(i.atoms),i.bCalcArea=!0,i.opts.surface="solvent accessible surface",i.applyMapCls.applySurfaceOptions(),i.bCalcArea=!1,i.hAtoms=n.hashUtilsCls.cloneHash(e)}let y=void 0!==i.midpercent?i.midpercent:35;i.spanBinv1=.02,i.spanBinv2=.02;for(let e in t){let t=i.atoms[e],s=t.structure+"_"+t.chain+"_"+t.resi+"_"+t.resn,l=n.parasCls.residueArea.hasOwnProperty(t.resn)?i.resid2area[s]/n.parasCls.residueArea[t.resn]*100:y;l>100&&(l=100);let r=(y-l)*i.spanBinv1,o=(l-y)*i.spanBinv2;t.color=l

    ";if("atom"==e){let e=["proteins","nucleotides","chemicals","ions","water"];for(let i=0,l=e.length;i[e,s.parasCls.hydrophobicValues[e]]));l.sort(((e,t)=>parseFloat(e[1])-parseFloat(t[1])));var r=l.map((e=>[e[0],Object.keys(o[e[0]])[0]]));n+="
    ","normalized hydrophobic"==e?(n+="Dark green (W, F, L, I, Y, M, V, C): Hydrophobic
    ",n+="Light green (P, T, S, A, Q, N, G): Polar
    ",n+="Grey: Charged, not hydrophobic

    "):(n+="Green (W, F, L, I, Y, M, V, C): Hydrophobic
    ",n+="Yellow (P, T, S, A, Q, N, G): Polar
    ",n+="Red: Negatively Charged
    ",n+="Blue: Positively Charged

    ");let a=0;for(let e of r)s.parasCls.residueAbbrev[e[0]]&&(n+="
    ",n+="
    ",n+=s.parasCls.residueAbbrev[e[0]]+"
    ",a%4==3&&(n+="
    "),++a);n+="
    "}else"b factor"==e?(n+="
    B factor quantitates the uncertainty for each atom. A high B factor reflects that the position is less certain.

    ",n+=s.htmlCls.clickMenuCls.setLegendHtml()):"confidence"==e?n+=s.htmlCls.clickMenuCls.setLegendHtml(!0):"exon"==e?(t.startColor="red",t.midColor="white",t.endColor="blue",t.startValue="Start",t.midValue="Middle",t.endValue="End",n+=s.htmlCls.clickMenuCls.setLegendHtml()):n="";n?($("#"+s.pre+"dl_legend_html").html(n),s.htmlCls.dialogCls.openDlg("dl_legend","Color Legend")):$("#"+s.pre+"dl_legend").hasClass("ui-dialog-content")&&$("#"+s.pre+"dl_legend").dialog("isOpen")&&$("#"+s.pre+"dl_legend").dialog("close")}getColorLegendForElem(e,t){let s=this.icn3d,i=s.icn3dui,n="",l={};for(let e in t){let t=s.atoms[e],i=void 0===t||void 0===t.color||"FFFFFF"===t.color.getHexString().toUpperCase()?"DDDDDD":t.color.getHexString();void 0===l[t.elem]&&(l[t.elem]={}),l[t.elem][i]=1}if(Object.keys(l).length>0){n+=""+e+"
    ";let t=Object.keys(l).sort();for(let e=0,s=t.length;e";for(let e in l[s])n+="
    ";n+=i.parasCls.atomnames[s.toUpperCase()]+"

    "}n+="
    "}return n}getRes2color(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=s.firstAtomObjCls.getResiduesFromAtoms(e);for(let e in l){let l=s.residues[e],r=s.firstAtomObjCls.getFirstAtomObj(l),o=t?r.resn:i.parasCls.residueAbbrev[r.resn],a=void 0===r||void 0===r.color||"FFFFFF"===r.color.getHexString().toUpperCase()?"DDDDDD":r.color.getHexString();null!=o&&(void 0===n[o]&&(n[o]={}),n[o][a]=1)}return n}getColorLegendForResidue(e){this.icn3d.icn3dui;let t="",s=this.getRes2color(e);if(Object.keys(s).length>0){t+="
    ";let e=Object.keys(s).sort(),i="",n=0;for(let l=0,r=e.length;l";for(let e in s[o])r+="
    ";r+=o+"
    ",n%4==3&&(r+="
    "),-1!=o.indexOf("(")?(t+=r,++n):i+=r}i&&(t+="
    "+i),t+="
    "}return t}getColorLegendForCharge(e){let t=this.icn3d;t.icn3dui;let s="",i=t.firstAtomObjCls.getResiduesFromAtoms(e),n={};for(let e in i){let s=t.residues[e],i=t.firstAtomObjCls.getFirstAtomObj(s);"ARG"==i.resn||"LYS"==i.resn?n.Positive=1:"HIS"==i.resn?n["Partial-Positive"]=1:"ASP"==i.resn||"GLU"==i.resn||t.nucleotides[i.serial]?n.Negative=1:n.Neutral=1}const l={Positive:"0000ff","Partial-Positive":"8080ff",Negative:"ff0000",Neutral:"888888"};let r=["Positive","Partial-Positive","Negative","Neutral"];s+="
    ";for(let e=0,t=r.length;e",s+="
    ",s+=t,s+="
    ")}return s+="
    (Charges are at pH 7)",s+="
    ",s}getColorLegendForIgstrand(e){this.icn3d.icn3dui;let t="";const s={"A Strand":"9400D3","B Strand":"ba55d3","C Strand":"0000FF","C' Strand":"6495ED","C'' Strand":"006400","D Strand":"00FF00","E Strand":"FFD700","F Strand":"FF8C00","G Strand":"FF0000",Loop:"CCCCCC"};t+="
    ";for(let e in s){t+="",t+="
    ",t+=e,t+="

    "}return t+="
    ",t}getColorLegendForIgproto(e){this.icn3d.icn3dui;let t="";const s={"Protodomain 1":"","A Strand":"0000FF","B Strand":"006400","C Strand":"FFD700","C' Strand":"FF8C00","
    Linker":"","C'' Strand":"FF0000","
    Protodomain 2":"","D Strand":"0000FF","E Strand":"006400","F Strand":"FFD700","G Strand":"FF8C00","":"",Loop:"CCCCCC"};t+="
    A protodomain is a supersecondary structure
    that by its duplication, symmetry operations
    can generate a structural domain.

    ";for(let e in s){let i=s[e];t+="",i&&(t+="
    "),t+=e,t+="

    "}return t+="
    ",t}}class vt{constructor(e){this.icn3d=e}async showCddSiteAll(){let e=this.icn3d,t=e.icn3dui,s=this;e.chainid2pssmid={};let i=$.map(e.protein_chainid,(function(e){return e})),n=Object.keys(e.protein_chainid),l="https://www.ncbi.nlm.nih.gov/Structure/cdannots/cdannots.fcgi?fmt&frclive&live=lcl&queries="+i;if(1==Object.keys(e.structures).length&&!t.cfg.afid&&(t.cfg.mmtfid||t.cfg.pdbid||t.cfg.opmid||t.cfg.mmdbid||t.cfg.gi||t.cfg.uniprotid||t.cfg.blast_rep_id||t.cfg.cid||t.cfg.mmcifid)||2==Object.keys(e.structures).length&&t.cfg.align){let e={};try{t.bNode?e=await t.getAjaxPromise(l,"jsonp"):e.value=await t.getAjaxPromise(l,"jsonp"),s.parseCddData([e],n)}catch(e){return void s.getNoCdd(i)}}else{let i=[];for(let s=0,r=n.length;s',p=h,m=h,u=d.doms;n.bNode&&!i.resid2cdd[c]&&(i.resid2cdd[c]=[]),n.bNode&&!i.chainid2cdd[c]&&(i.chainid2cdd[c]=[]);let g=l.setDomainFeature(u,c,"domain",h,p,m);i.chainid2pssmid[c]={pssmid2name:g.pssmid2name,pssmid2fromArray:g.pssmid2fromArray,pssmid2toArray:g.pssmid2toArray};let f=g.acc2domain;h=g.html+"",p=g.html2+"",m=g.html3+"",$("#"+i.pre+"dt_cdd_"+c).html(h),$("#"+i.pre+"ov_cdd_"+c).html(p),$("#"+i.pre+"tt_cdd_"+c).html(m),h='
    ',p=h,m=h;let C=d.motifs;n.bNode&&!i.resid2site[c]&&(i.resid2site[c]=[]),g=l.setDomainFeature(C,c,"feat",h,p,m,f),h=g.html,p=g.html2,m=g.html3;let b=a.data[e].sites,y=void 0!==b?b.length:0;for(let e=0;e17&&(s=s.substr(0,17)+"...");let l,r=b[e].title,o=[];for(let t=0,s=b[e].locs.length;t'+s+"
    ",u=''+t.toString()+" Res",g='';m+=d+u+"
    ",h+=d+u+g,p+=d+u+g;let f="site"+e.toString(),C=0,y=0,v=1;i.seqStartLen&&i.seqStartLen[c]&&(p+=i.showSeqCls.insertMulGapOverview(c,i.seqStartLen[c])),i.seqStartLen&&i.seqStartLen[c]&&(h+=i.showSeqCls.insertMulGap(i.seqStartLen[c],"-"));for(let t=0,s=i.giSeq[c].length;t1&&(l=s[0]+"..");let r=i.ParserUtilsCls.getResi(c,t);if(h+=''+s+"",n.bNode){let t={};t[c+"_"+r]="site: "+b[e].title,i.resid2site[c].push(t)}p+=i.showSeqCls.insertGapOverview(c,t);let o=n.cfg.blast_rep_id==c?Math.round(i.seqAnnWidth*t/(i.maxAnnoLength+i.nTotalGap)-C-y):Math.round(i.seqAnnWidth*t/i.maxAnnoLength-C-y);o>=0&&(p+='
     
    ',p+='
     
    ',C+=o,y+=v)}else h+="-";i.seqStartLen&&i.seqStartLen[c]&&(h+=i.showSeqCls.insertMulGap(i.seqEndLen[c],"-")),g=' '+t.toString()+" Residues",g+="
    ",g+="
    ",h+=g,p+=g}h+="",p+="",m+="",$("#"+i.pre+"dt_site_"+c).html(h),$("#"+i.pre+"ov_site_"+c).html(p),$("#"+i.pre+"tt_site_"+c).html(m)}}for(let e in i.protein_chainid)r.hasOwnProperty(e)||($("#"+i.pre+"dt_cdd_"+e).html(""),$("#"+i.pre+"ov_cdd_"+e).html(""),$("#"+i.pre+"tt_cdd_"+e).html(""),$("#"+i.pre+"dt_site_"+e).html(""),$("#"+i.pre+"ov_site_"+e).html(""),$("#"+i.pre+"tt_site_"+e).html(""));i.showAnnoCls.enableHlSeq(),i.bAjaxCddSite=!0}getNoCdd(e){let t=this.icn3d;t.icn3dui,console.log("No CDD data were found for the protein "+e+"...");for(let e in t.protein_chainid)$("#"+t.pre+"dt_cdd_"+e).html(""),$("#"+t.pre+"ov_cdd_"+e).html(""),$("#"+t.pre+"tt_cdd_"+e).html(""),$("#"+t.pre+"dt_site_"+e).html(""),$("#"+t.pre+"ov_site_"+e).html(""),$("#"+t.pre+"tt_site_"+e).html("");t.showAnnoCls.enableHlSeq(),t.bAjaxCddSite=!0}getResiArrayStr(e,t){let s=this.icn3d;s.icn3dui;let i="";for(let n=0,l=e.length;n0&&(i+=","),i+=r.split("_")[2]}return i}setDomainFeature(e,t,s,i,n,l,r,o,a){let d,c,h,p=this.icn3d,m=p.icn3dui,u="domain"!=s&&"feat"!=s;"domain"==s&&(r={},d={},c={},h={}),void 0===e&&(e=[]);let g=e.length,f="domain"==s?14:19,C="domain"==s?100:120;e.sort((function(e,t){let i=e.locs,n="domain"==s||"ig"==s?i[0].segs:[i[0]],l=Math.round(n[0].from);return i=t.locs,n="domain"==s||"ig"==s?i[0].segs:[i[0]],l-Math.round(n[0].from)}));for(let b=0;bf&&(w=w.substr(0,f)+"...");let S=u?a[b]:s+": "+v;"domain"==s&&(d[g]=v);let A=e[b].locs;if(A)for(let e=0,r=A.length;e'+w+" ",I=''+u.toString()+" Res";l+=R+I+"
    ";let E='';i+=R+I+E,"domain"==s&&(n+='
    '),n+='
    '+w+"
    ",n+=I+E;let T=s+b.toString();if(p.seqStartLen&&p.seqStartLen[t]&&(i+=p.showSeqCls.insertMulGap(p.seqStartLen[t],"-")),m.bNode&&"domain"==s){let e=this.getResiArrayStr(r,t),s=this.getResiArrayStr(a,t);p.chainid2cdd[t].push(S+"_from_"+e+"_to_"+s)}for(let e=0,n=p.giSeq[t].length;e1&&(l=n[0]+"..");let r=p.ParserUtilsCls.getResi(t,e);if(i+=''+n+"",m.bNode){let e={};e[t+"_"+r]=S,"domain"==s?p.resid2cdd[t].push(e):p.resid2site[t].push(e)}}else i+="-";if(p.seqStartLen&&p.seqStartLen[t]&&(i+=p.showSeqCls.insertMulGap(p.seqEndLen[t],"-")),p.seqStartLen&&p.seqStartLen[t]&&(n+=p.showSeqCls.insertMulGapOverview(t,p.seqStartLen[t])),m.cfg.blast_rep_id!=t){let i;for(let l=0,d=r.length;l ',n+='
    '+v+"
    "}}else{let i=[],l=[];for(let e=0,t=r.length;e ',n+='
    '+v+"
    "}}E=' '+u.toString()+" Residues",E+="
    ",E+="
    ",i+=E,n+=E,"domain"==s&&(n+='')}}return{html:i,html2:n,html3:l,acc2domain:r,pssmid2name:d,pssmid2fromArray:c,pssmid2toArray:h}}getColorFromPos(e,t,s){let i,n=this.icn3d;n.icn3dui;let l=e+"_"+n.ParserUtilsCls.getResi(e,t),r=n.firstAtomObjCls.getFirstAtomObj(n.residues[l]),o=r&&void 0!==r.color&&"FFFFFF"!==r.color.getHexString()?r.color.getHexString():"DDDDDD";return i=r&&void 0!==r.color?o:"CCCCCC",i}showAnnoType(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui,a='
    ',d=a,c=a;if(0==n.length)return $("#"+r.pre+"dt_"+s+"_"+e).html(""),$("#"+r.pre+"ov_"+s+"_"+e).html(""),void $("#"+r.pre+"tt_"+s+"_"+e).html("");let h=i;i.length>17&&(i=i.substr(0,17)+"...");let p=[];for(let e=0,t=n.length;e'+i+"
    ",f=''+m.toString()+" Res";c+=g+f+"
    ";let C='';a+=g+f+C,d+=g+f+C;let b=s,y=0,v=0;r.seqStartLen&&r.seqStartLen[e]&&(d+=r.showSeqCls.insertMulGapOverview(e,r.seqStartLen[e])),r.seqStartLen&&r.seqStartLen[e]&&(a+=r.showSeqCls.insertMulGap(r.seqStartLen[e],"-"));for(let t=0,i=r.giSeq[e].length;t1&&(c=n[0]+"..");let h=i,p=e+"_"+i,m=n+i;if("ssbond"==s){m="Residue "+p+" has disulfide bond with";let t="";if(void 0!==l[p])for(let e=0,s=l[p].length;e'+c+"",d+=r.showSeqCls.insertGapOverview(e,t);let u=o.cfg.blast_rep_id==e?Math.round(r.seqAnnWidth*t/(r.maxAnnoLength+r.nTotalGap)-y-v):Math.round(r.seqAnnWidth*t/r.maxAnnoLength-y-v);u>=0&&(d+='
     
    ',d+='
     
    ',y+=u,v+=1)}else a+="-"}r.seqStartLen&&r.seqStartLen[e]&&(a+=r.showSeqCls.insertMulGap(r.seqEndLen[e],"-")),C=' '+m.toString()+" Residues",C+="",C+="
    ",a+=C,d+=C,a+="",d+="",c+="",$("#"+r.pre+"dt_"+s+"_"+e).html(a),$("#"+r.pre+"ov_"+s+"_"+e).html(d),$("#"+r.pre+"tt_"+s+"_"+e).html(c)}setToolTip(){let e=this.icn3d;e.icn3dui,$("[id^="+e.pre+"snp]").add("[id^="+e.pre+"clinvar]").add("[id^="+e.pre+"ssbond]").add("[id^="+e.pre+"crosslink]").tooltip({content:function(){return $(this).prop("title")},show:null,close:function(e,t){t.tooltip.hover((function(){$(this).stop(!0).fadeTo(400,1)}),(function(){$(this).fadeOut("400",(function(){$(this).remove()}))}))}})}}class _t{constructor(e){this.icn3d=e}showInteraction(e,t){this.icn3d.icn3dui,this.showInteraction_base(e,t)}showInteraction_base(e,t){let s=this.icn3d,i=s.icn3dui;i.bNode&&(s.resid2contact||(s.resid2contact={}),s.resid2contact[e]||(s.resid2contact[e]=[])),void 0===s.chainname2residues&&(s.chainname2residues={});let n=Object.keys(s.chains),l=e,r=Math.round(l.indexOf("_"));if(s.firstAtomObjCls.getFirstCalphaAtomObj(s.chains[l]),void 0===s.chainname2residues[l]){s.chainname2residues[l]={};let t=n.length;if(t>100&&void 0===i.cfg.mmdbid&&void 0===i.cfg.gi&&void 0===i.cfg.blast_rep_id&&void 0===i.cfg.align&&void 0===i.cfg.chainalign)return $("#"+s.pre+"dt_interaction_"+e).html(""),void $("#"+s.pre+"ov_interaction_"+e).html("");for(let e=0;e4)continue;let o,a=s.firstAtomObjCls.getFirstCalphaAtomObj(s.chains[t]);s.chemicals.hasOwnProperty(a.serial)?o="chemical":s.nucleotides.hasOwnProperty(a.serial)?o="nucleotide":s.ions.hasOwnProperty(a.serial)?o="ion":s.proteins.hasOwnProperty(a.serial)?o="protein":s.water.hasOwnProperty(a.serial)&&(o="water");let d=s.contactCls.getAtomsWithinAtom(i.hashUtilsCls.hash2Atoms(s.chains[l],s.atoms),i.hashUtilsCls.hash2Atoms(s.chains[t],s.atoms),4);if(0==Object.keys(d).length)continue;let c={};for(let e in d){let t=s.atoms[e];c[t.structure+"_"+t.chain+"_"+t.resi]=1}let h=t.substr(t.indexOf("_")+1)+"("+o+")";s.chainname2residues[l][h]=Object.keys(c)}}let o='
    ',a=o,d=o,c=0;for(let t in s.chainname2residues[e]){let n=s.chainname2residues[e][t];if(!n)continue;let l="Interact ."+t;l.length>17&&(l=l.substr(0,17)+"...");let r="Interact ."+t,h=[];for(let e=0,t=n.length;e'+l+"
    ",g=''+p.toString()+" Res";d+=u+g+"
    ";let f='';o+=u+g+f,a+=u+g+f;let C="inter"+c.toString(),b=0,y=0,v=1;s.seqStartLen&&s.seqStartLen[e]&&(a+=s.showSeqCls.insertMulGapOverview(e,s.seqStartLen[e])),s.seqStartLen&&s.seqStartLen[e]&&(o+=s.showSeqCls.insertMulGap(s.seqStartLen[e],"-"));for(let t=0,n=s.giSeq[e].length;t1&&(d=l[0]+"..");let c=n;if(o+=''+d+"",i.bNode){let t={};t[e+"_"+c]=r,s.resid2contact[e].push(t)}a+=s.showSeqCls.insertGapOverview(e,t);let h=i.cfg.blast_rep_id==e?Math.round(s.seqAnnWidth*t/(s.maxAnnoLength+s.nTotalGap)-b-y):Math.round(s.seqAnnWidth*t/s.maxAnnoLength-b-y);h>=0&&(a+='
     
    ',a+='
     
    ',b+=h,y+=v)}else o+="-"}s.seqStartLen&&s.seqStartLen[e]&&(o+=s.showSeqCls.insertMulGap(s.seqEndLen[e],"-")),f=' '+p.toString()+" Residues",f+="
    ",f+="
    ",o+=f,a+=f,++c}o+="",a+="",d+="",$("#"+s.pre+"dt_interaction_"+e).html(o),$("#"+s.pre+"ov_interaction_"+e).html(a),$("#"+s.pre+"tt_interaction_"+e).html(d),i.utilsCls.isMobile()?(s.hlSeqCls.selectSequenceMobile(),s.hlSeqCls.selectChainMobile()):s.hlSeqCls.selectSequenceNonMobile()}}class wt{constructor(e){this.icn3d=e}async showPTM(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui,o=this,a=e.substr(0,e.indexOf("_")),d=e.substr(e.indexOf("_")+1);if("afmem"==s){let t={Transmembrane:[{begin:i,end:n}]};this.setAnnoPtmTransmem("transmem",t,e)}else if(a.length>5){let t,i="https://www.ebi.ac.uk/proteins/api/features/"+a;try{t=await r.getAjaxPromise(i,"json"),o.parsePTM(t,e,s)}catch{return void o.getNoPTM(e,s)}}else{let t,i=a.substr(0,4).toLowerCase(),n="https://www.ebi.ac.uk/pdbe/api/mappings/uniprot/"+i;try{t=await r.getAjaxPromise(n,"json");let a="";l.UPResi2ResiPosPerChain||(l.UPResi2ResiPosPerChain={}),l.UPResi2ResiPosPerChain[e]={};let c=t[i].UniProt,h=!1;for(let t in c){let s=c[t].mappings;for(let i=0,n=s.length;i',o+=r,a+=r,s.substr(0,s.indexOf("_"));for(let d in t){let c=t[d],h=[],p=!1;for(let e=0,t=c.length;e5?h.push(e-1):i.UPResi2ResiPosPerChain&&i.UPResi2ResiPosPerChain[s][e]&&h.push(i.UPResi2ResiPosPerChain[s][e]),!p&&i.residues.hasOwnProperty(s+"_"+e)&&(p=!0)}if(0==h.length)continue;let m=h.length,u="ptm"==e?"PTM: "+d:"Transmembrane";u.length>17&&(u=u.substr(0,17)+"...");let g=d,f='
    '+u+"
    ",C=''+m.toString()+" Res",b='';a+=f+C+"
    ",r+=f+C+b,o+=f+C+b;let y=e+l.toString(),v=0,_=0,w=1;i.seqStartLen&&i.seqStartLen[s]&&(o+=i.showSeqCls.insertMulGapOverview(s,i.seqStartLen[s])),i.seqStartLen&&i.seqStartLen[s]&&(r+=i.showSeqCls.insertMulGap(i.seqStartLen[s],"-"));for(let e=0,t=i.giSeq[s].length;e1&&(l=t[0]+"..");let a=i.ParserUtilsCls.getResi(s,e);if(r+=''+t+"",n.bNode){let e={};e[s+"_"+a]=u,i.resid2ptm[s].push(e)}o+=i.showSeqCls.insertGapOverview(s,e);let d=n.cfg.blast_rep_id==s?Math.round(i.seqAnnWidth*e/(i.maxAnnoLength+i.nTotalGap)-v-_):Math.round(i.seqAnnWidth*e/i.maxAnnoLength-v-_);d>=0&&(o+='
     
    ',o+='
     
    ',v+=d,_+=w)}else r+="-";i.seqStartLen&&i.seqStartLen[s]&&(r+=i.showSeqCls.insertMulGap(i.seqEndLen[s],"-")),b=' '+m.toString()+" Residues",b+="
    ",b+="
    ",r+=b,o+=b,++l}r+="",o+="",a+="",$("#"+i.pre+"dt_"+e+"_"+s).html(r),$("#"+i.pre+"ov_"+e+"_"+s).html(o),$("#"+i.pre+"tt_"+e+"_"+s).html(a)}getNoPTM(e,t){let s=this.icn3d;s.icn3dui,console.log("No PTM data were found for the chain "+e+"...");let i="ptm"==t?"ptm":"transmem";$("#"+s.pre+"dt_"+i+"_"+e).html(""),$("#"+s.pre+"ov_"+i+"_"+e).html(""),$("#"+s.pre+"tt_"+i+"_"+e).html(""),s.showAnnoCls.enableHlSeq(),s.bAjaxPTM=!0}}class St{constructor(e){this.icn3d=e}async showIg(e,t){let s=this.icn3d;s.icn3dui,s.bRunRefnumAgain&&await s.refnumCls.showIgRefNum(t);let i="",n="",l="";if(s.bShowRefnum&&s.chainid2refpdbname.hasOwnProperty(e)&&s.chainid2refpdbname[e].length>0){let t=s.showSeqCls.getSeq(e),r=s.annoIgCls.showAllRefNum(t,e);i+=r.html,n+=r.html2,l+=r.html3}$("#"+s.pre+"dt_"+"ig_"+e).html(i),$("#"+s.pre+"ov_"+"ig_"+e).html(n),$("#"+s.pre+"tt_"+"ig_"+e).html(l)}showAllRefNum(e,t){let s=this.icn3d;s.icn3dui;let i="",n="",l="",r=!1;for(let i=0,n=e.length;i0){r=!0;break}}let o=!1;for(let i=0,n=e.length;i0){o=!0;break}}let a=this.showRefNum(e,t);i+=a.html,n+=a.html2,l+=a.html3;let d=1;return r&&(a=this.showRefNum(e,t,d),i+=a.html,n+=a.html2,l+=a.html3),d=2,o&&(a=this.showRefNum(e,t,d),i+=a.html,n+=a.html2,l+=a.html3),{html:i,html2:n,html3:l}}showRefNum(e,t,s,i){let n=this.icn3d;if(n.icn3dui,n.chainid2igtrack){if(!n.chainid2igtrack[t])return{html:"",html2:"",html3:""}}let l=this.getIgAnnoHtml(t,e,i,s);return n.bShowRefnum&&(n.opts.color="ig strand",n.setColorCls.setColorByOptions(n.opts,n.chains[t])),l}setChain2igArray(e,t,s){let i,n=this.icn3d;n.icn3dui;let l={};for(let r=0,o=t.length;r0&&s!=i+1&&(a.push(i),o.push(s)),i=s;a.push(s);let d={};d.domainid=t,d.startPosArray=o,d.endPosArray=a,n.chain2igArray[e].push(d)}}getIgAnnoHtml(e,t,s,i){let n=this.icn3d,l=n.icn3dui,r="",o="",a="";n.chain2igArray||(n.chain2igArray={});let d,c,h,p=!1,m="";n.chain2igArray[e]=[],this.setChain2igArray(e,t,s);let u=n.chain2igArray[e];for(let t=0,s=u.length;t=0;--t){let s=e+"_"+n.chainsSeq[e][t].resi;if(!n.residIgLoop.hasOwnProperty(s))break;delete n.resid2refnum[s],delete n.residIgLoop[s],delete n.resid2domainid[s]}}}n.chain2igArray[e]=[],this.setChain2igArray(e,t,s);let g="";for(let l=0,r=t.length;l'+h+"":' '}else g+="";else if(1==i||2==i)if(h){let e=parseInt(h).toString(),t='style="color:'+this.getRefnumColor(m,!0)+'"';g+=parseInt(e.substr(e.length-2,2))%2==0?"'+h+"":" '}else g+="";else" "!=m?(p=n.residIgLoop[t],g+=this.getRefnumHtml(t,h,c,d,m,p,o)):g+="";else g+=""}if(l.bNode)return{html:r,html2:o,html3:a};let f="icn3d-link icn3d-blue",C="IgStRAnD Ref. No.",b=n.chain2igArray[e].length,y=[],v=[],_={};n.igLabel2Pos||(n.igLabel2Pos={}),n.igLabel2Pos[e]={};for(let t=0;t",S='
    ';s&&(S='
    ');let A='
    '+C+"
    ";if(S+='
    ',s?(S+='
    Custom Ref. No.
    ',S+=''):1==i?(S+='
    Kabat Ref. No.
    ',S+=''):2==i?(S+='
    IMGT Ref. No.
    ',S+=''):(S+=A,S+=w),a+=S+"
    ",r+=S+'',n.seqStartLen&&n.seqStartLen[e]&&(r+=n.showSeqCls.insertMulGap(n.seqStartLen[e],"-")),r+=g,n.seqStartLen&&n.seqStartLen[e]&&(r+=n.showSeqCls.insertMulGap(n.seqEndLen[e],"-")),s||(r+=w),r+="",r+="
    ",r+="
    ",r+="
    ",u=n.chain2igArray[e],0==u.length)return{html:r,html2:o,html3:a};let x=[],k=[],O=[],R=[],I=e.substr(e.lastIndexOf("_")+1);for(let e=0,t=u.length;e',n.seqStartLen&&n.seqStartLen[e]&&(o+=n.showSeqCls.insertMulGapOverview(e,n.seqStartLen[e]));for(let i=0,l=y.length;i 
    ',o+='
    '+R[r]+"
    ",t=r}o+=w,o+="",a+="",S='
    ';let i=S,l=S,d=n.annoCddSiteCls.setDomainFeature(x,e,"ig",S,i,l,void 0,k,O);r+=d.html+"
    ",o+=d.html2+"",a+=d.html3+""}return{html:r,html2:o,html3:a}}getRefnumHtml(e,t,s,i,n,l,r){let o=this.icn3d,a=o.icn3dui,d=parseInt(t).toString(),c=(d-1e3*parseInt(d/1e3)).toString(),h=parseInt(d.toString().substr(0,2)),p="5"!=c.substr(0,1)&&"18"!=h,m=this.getRefnumColor(n,!0),u=l?'style="color:'+m+'"':'style="color:'+m+'; text-decoration: underline overline;"',g=d.substr(d.length-2,2),f=parseInt(g);parseInt(d.substr(d.length-3,3));let C="";return!i||50!=f||p||l?i&&f%2==0&&52!=f&&!r?(g=isNaN(t)?g+t.substr(t.length-1,1):g,C+="'+g+""):C+=" ':(o.hAtomsRefnum=a.hashUtilsCls.unionHash(o.hAtomsRefnum,o.residues[e]),C+="'+i.substr(0,1)+""+i.substr(1)+""),C}getRefnumColor(e,t){let s=this.icn3d.icn3dui,i=e?e.substr(0,1):"";return"C"==e?"#0000FF":"C'"==e?"#6495ED":"C''"==e?"#006400":"A"==i?"#9400D3":"B"==i?"#ba55d3":"D"==i?"#00FF00":"E"==i?"#FFD700":"F"==i?"#FF8C00":"G"==i?"#FF0000":s.htmlCls.GREYB}getProtodomainColor(e){let t=this.icn3d.icn3dui,s=e?e.substr(0,1):"";return"A"==s||"D"==s?"#0000FF":"B"==s||"E"==s?"#006400":"C"==e||"F"==s?"#FFD700":"C'"==e||"G"==s?"#FF8C00":"C''"==e?"#FF0000":t.htmlCls.GREYB}}class At{constructor(e){this.icn3d=e}showCrosslink(e,t){let s=this.icn3d;s.icn3dui;let i=this;void 0===s.clbondpnts?setTimeout((function(){i.showCrosslink_base(e,t)}),1e3):this.showCrosslink_base(e,t)}showCrosslink_base(e,t){let s=this.icn3d;s.icn3dui.bNode&&(s.resid2crosslink||(s.resid2crosslink={}),s.resid2crosslink[e]||(s.resid2crosslink[e]=[]));let i=t,n={},l=i.substr(0,i.indexOf("_")),r=s.clbondpnts[l];if(void 0===r)return $("#"+s.pre+"dt_crosslink_"+e).html(""),$("#"+s.pre+"ov_crosslink_"+e).html(""),void $("#"+s.pre+"tt_crosslink_"+e).html("");for(let e=0,t=r.length;e',a=o,d=o,c=e.indexOf("_"),h=e.substr(c+1);h.length>1&&"1"==h.substr(h.length-1)&&(h=h.substr(0,h.length-1)),n=e,i=t.domains[e]?t.domains[e].domains:[];for(let t=0,c=i.length;t17?c.substr(0,17)+"...":c,p=i[t].intervals,m=[],u=[],g={},f=0;for(let t=0,s=p.length;t'+h+" ",b=''+f.toString()+" Res";d+=C+b+"
    ";let y='';o+=C+b+y,a+=C+b+y;let v="domain3d"+t.toString();l.seqStartLen&&l.seqStartLen[e]&&(o+=l.showSeqCls.insertMulGap(l.seqStartLen[e],"-"));for(let t=0,s=l.giSeq[e].length;t1&&(n=i[0]+"..");let r=s;o+=''+i+""}else o+="-"}l.seqStartLen&&l.seqStartLen[e]&&(o+=l.showSeqCls.insertMulGap(l.seqEndLen[e],"-"));let _=l.firstAtomObjCls.getFirstCalphaAtomObj(l.chains[e]),w=void 0===_.color||"FFFFFF"===_.color.getHexString()?"DDDDDD":_.color.getHexString(),S=void 0!==_.color?w:"CCCCCC";if(l.seqStartLen&&l.seqStartLen[e]&&(a+=l.showSeqCls.insertMulGapOverview(e,l.seqStartLen[e])),r.cfg.blast_rep_id!=e)for(let s=0,i=m.length;s ',a+='"}else{let s=[],i=[];for(let e=0,t=m.length;e ',a+='"}}y=' '+f.toString()+" Residues",y+="",y+="
    ",o+=y,a+=y}if(s||(o+="",a+="",d+="",$("#"+l.pre+"dt_domain_"+e).html(o),$("#"+l.pre+"ov_domain_"+e).html(a),$("#"+l.pre+"tt_domain_"+e).html(d)),s&&l.chainid2clashedResidpair){l.clashedResidHash={};for(let e in l.chainid2clashedResidpair){let t=e.split("|"),s=l.chainid2clashedResidpair[e].split("|");parseInt(s[0])0){let s={};for(let i in e.clashedResidHash)s=t.hashUtilsCls.unionHash(s,e.residues[i]);e.bHideClashed?e.hAtoms=t.hashUtilsCls.exclHash(e.hAtoms,s):e.hAtoms=t.hashUtilsCls.unionHash(e.hAtoms,s),e.dAtoms=t.hashUtilsCls.cloneHash(e.hAtoms)}}getMoreResidues(e,t,s,i){let n=this.icn3d;n.icn3dui;let l={};for(let r=1;r<100;++r){let o=t+"_"+(e+s*r).toString(),a=n.firstAtomObjCls.getFirstAtomObj(n.residues[o]);if(a){let e=!1;if("not coil"==i?e="coil"!=a.ss:"ssbegin"==i?e=a.ssbegin:"ssend"==i&&(e=a.ssend),e)break;l[o]=1}}return l}}class kt{constructor(e){this.icn3d=e}async showSnp(e,t){this.icn3d.icn3dui,await this.showSnpClinvar(e,t,!0)}async showClinvar(e,t){this.icn3d.icn3dui,await this.showSnpClinvar(e,t,!1)}async showSnpClinvar(e,t,s){let i=this.icn3d.icn3dui,n=this,l=i.htmlCls.baseUrl+"vastdyn/vastdyn.cgi?chainid="+t;try{let r=await i.getAjaxPromise(l,"jsonp"),o=r.snpgi,a=r.gi;if(s)await n.showSnpPart2(e,t,o);else{let s=o;[6137708,1942289,224510717,2624886,253723219,2554905,75765331,3660278,312207882,319443632,342350956,1827805,109157826,1065265,40889086,6730307,163931185,494469,163931091,60594093,55669745,18655489,17942684,6980537,166235465,6435586,4139398,4389047,364506122,78101667,262118402,20664221,2624640,158430173,494395,28948777,34810587,13399647,3660342,261278854,342350965,384482350,378792570,15988303,213424334,4558333,2098365,10835631,3318817,374074330,332639529,122919696,4389286,319443573,2781341,67464020,194709238,210061039,364506106,28949044,40889076,161172338,17943181,4557976,62738484,365813173,6137343,350610552,17942703,576308,223674070,15826518,1310997,93279697,4139395,255311799,157837067,361132363,357380836,146387678,383280379,1127268,299856826,13786789,1311054,46015217,3402130,381353319,30750059,218766885,340707375,27065817,355333104,2624634,62738384,241913553,304446010].includes(a)&&(s=a),await n.showClinvarPart2(e,t,s)}}catch(t){return void(s?n.processNoSnp(e):n.processNoClinvar(e))}}navClinVar(e){let t=this.icn3d;t.icn3dui;let s=this;t.currClin[e]=-1,$(document).on("click","#"+t.pre+e+"_prevclin",(function(t){let i=s.icn3d;t.stopImmediatePropagation();let n=void 0!==i.resi2disease_nonempty[e]?Object.keys(i.resi2disease_nonempty[e]).length:0;--i.currClin[e],i.currClin[e]<0&&(i.currClin[e]=n-1),s.showClinVarLabelOn3D(e)})),$(document).on("click","#"+t.pre+e+"_nextclin",(function(t){let i=s.icn3d;t.stopImmediatePropagation();let n=void 0!==i.resi2disease_nonempty[e]?Object.keys(i.resi2disease_nonempty[e]).length:0;++i.currClin[e],i.currClin[e]>n-1&&(i.currClin[e]=0),s.showClinVarLabelOn3D(e)}))}showClinVarLabelOn3D(e){let t,s,i=this.icn3d,n=i.icn3dui,l=Object.keys(i.resi2disease_nonempty[e]);t=e,s=t+"_"+(parseInt(l[i.currClin[e]])+i.baseResi[e]).toString();let r="",o=i.resi2disease_nonempty[e][l[i.currClin[e]]];for(let e=0,t=o.length;e0?o[0]:"N/A");let a=i.applyCenterCls.centerAtoms(n.hashUtilsCls.hash2Atoms(i.residues[s],i.atoms));r.length>30&&(r=r.substr(0,30)+"..."),i.selectionCls.removeSelection(),null==i.labels&&(i.labels={}),i.labels.clinvar=[];let d=i.LABELSIZE,c="black"!=i.opts.background?i.colorWhitebkgd:i.colorBlackbkgd;i.analysisCls.addLabel(r,a.center.x+1,a.center.y+1,a.center.z+1,d,c,void 0,"clinvar"),i.hAtoms={};for(let e in i.residues[s])i.hAtoms[e]=1;$("#clinvar_"+i.pre+s).addClass("icn3d-highlightSeq"),void 0===$("#"+i.pre+"modeswitch")[0]||$("#"+i.pre+"modeswitch")[0].checked||i.definedSetsCls.setMode("selection"),i.drawCls.draw()}getSnpLine(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g){let f=this.icn3d,C=f.icn3dui,b="",y=m?"clinvar":"snp",v=!1;for(let e in i){for(let t=0,s=i[e].length;t(from human)",i=" (based on human sequences and mapped to this structure by sequence similarity)"),b+=m?'":'"}else if(2==e&&m){let e=C.utilsCls.isMobile()?"none":"button";b+='
    ',b+='
    '}else b+='
    ';let _=y,w=0,S=0,A={},x={},k=f.firstAtomObjCls.getResiduesFromAtoms(f.chains[h]);for(let t in k){let i=t.split("_")[2];if(void 0!==r[i]){++w;let t="";for(let n=0,r=s[i].length;n'+O+" Res":'',u)return b+"
    ";b+='';let R="",I=0,E=0;p?f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGapOverview(h,f.seqStartLen[h])):f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGap(f.seqStartLen[h],"-"));for(let t=1,a=f.giSeq[h].length;t<=a;++t){let a=f.ParserUtilsCls.getResi(h,t-1),d=a;if(p){if(void 0!==r[d]){let e=f.giSeq[h][t-1],i=e;e.length>1&&(i=e[0]+"..");let n=a+i+">";for(let e=0,t=s[d].length;e=0&&(b+='
     
    ',b+='
     
    ',I+=r,E+=1):r>0&&(b+='
     
    ',b+='
     
    ',I+=r,E+=1)}}else if(b+=f.showSeqCls.insertGap(h,t-1,"-"),void 0!==r[d])if(m||1!=e){let r=f.giSeq[h][t-1],c=r;r.length>1&&(c=r[0]+"..");let p,u="",y="
    ",v=s[d].length,w=0,S=0;if(2==e&&(w=0,S=v),m){p=1;let t=0;for(let e=w;e0?w+="; ":0!==e&&1!==e||(R='disease="'+b[t]+'"'),w+=b[t],""!=_[t]&&(w+="("+_[t]+")"),++S;t"+s[d][e],y+=": "+w,g&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(r,"snpin3d","3D with scap","SNP in 3D with scap",70,m)+"  ",y+=f.showAnnoCls.addSnpButton(r,"snpinter","Interactions","SNP Interactions in 3D",70,m)+"  ",y+=f.showAnnoCls.addSnpButton(r,"snppdb","PDB","Download SNP PDB",35,m)),y+="
    Links: ClinVar",0!=i[d][e]&&(y+=", dbSNP(rs"+i[d][e]+")"),e
    "),++t}t>p&&2==e&&(u+="..")}else{p=1;for(let e=w;e"+s[d][e],g)m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),0!=i[d][e]&&(y+="
    Link: dbSNP(rs"+i[d][e]+")"),e
    ");else{let s=l[d][e].split("; "),a=o[d][e].split("; "),c="",h=0;for(let t=0,i=s.length;t0?c+="; ":0!==e&&1!==e||(R='disease="'+s[t]+'"'),c+=s[t],""!=a[t]&&(c+="("+a[t]+")"),++h;""!=c?(y+=": "+c,m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),y+="
    Links: ClinVar, dbSNP(rs"+i[d][e]+")"):(m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),y+="
    Link: dbSNP(rs"+i[d][e]+")"),e
    ")}}v>p&&2==e&&(u+="..")}y+="
    ",b+=m?1==e?"":""==u||" "==u?"-":''+u+"":""==u||" "==u?"-":g?''+u+"":''+u+""}else b+="";else b+="-"}return p||f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGap(f.seqEndLen[h],"-")),b+=1==e?' '+O+" Residues":'',b+="
    ",b+="
    ",b}processSnpClinvar(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui,o='
    ',a=o,d=o,c='
    ',h=c,p=c,m=!i||n?e.data:e.split("\n"),u={},g={},f={};void 0===l.resi2disease_nonempty[t]&&(l.resi2disease_nonempty[t]={});let C={},b={},y={},v={},_={},w="";r.bNode&&(i?(l.resid2snp||(l.resid2snp={}),l.resid2snp[t]||(l.resid2snp[t]=[])):(l.resid2clinvar||(l.resid2clinvar={}),l.resid2clinvar[t]||(l.resid2clinvar[t]=[])));let S={};for(let e=0,s=m.length;e5&&(d=parseInt(s[5])):s.length>8&&(d=parseInt(s[8])),o==w)continue;w=o;let c=o.indexOf(">"),h=o.substr(0,c-1),p=Math.round(h),A=d?p:l.ParserUtilsCls.getResi(t,p-1),x=A+o.substr(c-1);if(S.hasOwnProperty(x))continue;S[x]=1;let k=o.substr(c-1,1),O=l.firstAtomObjCls.getFirstAtomObj(l.residues[t+"_"+A]),R=O?r.utilsCls.residueName2Abbr(O.resn.substr(0,3)):"";if(d||(R=l.chainsSeq[t][p-1].name),k!=R)continue;if(r.bNode){let e={};e[t+"_"+A]=x,i?l.resid2snp[t].push(e):l.resid2clinvar[t].push(e)}let I=x.substr(x.indexOf(">")+1),E=i?"":s[5],T=i?"":s[6],P=i?"":s[7];v[A]=1,""!=T&&(_[A]=1),g[A]=e+1,void 0===u[A]&&(u[A]=[]),u[A].push(I),void 0===b[A]&&(b[A]=[]),b[A].push(a),void 0===y[A]&&(y[A]=[]),y[A].push(E),void 0===f[A]&&(f[A]=[]),f[A].push(T),""!=T&&(void 0===l.resi2disease_nonempty[t][A]&&(l.resi2disease_nonempty[t][A]=[]),l.resi2disease_nonempty[t][A].push(T)),void 0===C[A]&&(C[A]=[]),C[A].push(P)}let A=Object.keys(v),x=Object.keys(_);if(i){let e=!1;o+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,void 0,i),o+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,void 0,i),d+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,!0,i),d+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,!0,i),a+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!0,e,void 0,i),o+="
    ",a+="
    ",d+="",$("#"+l.pre+"dt_snp_"+t).html(o),$("#"+l.pre+"ov_snp_"+t).html(a),$("#"+l.pre+"tt_snp_"+t).html(d)}else{let e=!0;c+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,void 0,i),c+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,void 0,i),p+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,!0,i),p+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,!0,i),h+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!0,e,void 0,i),c+="",h+="",p+="",$("#"+l.pre+"dt_clinvar_"+t).html(c),$("#"+l.pre+"ov_clinvar_"+t).html(h),$("#"+l.pre+"tt_clinvar_"+t).html(p),this.navClinVar(t,s)}l.showAnnoCls.enableHlSeq(),i?l.bAjaxSnp=!0:l.bAjaxClinvar=!0}async showClinvarPart2(e,t,s){let i=this.icn3d,n=i.icn3dui,l=this;i.chainid2uniport||await this.getUniprotForAllStructures();let r=n.htmlCls.baseUrl+"vastdyn/vastdyn.cgi?chainid_clinvar="+t+"&uniprot="+i.chainid2uniport[t];i.chainsGene[e]&&i.chainsGene[e].geneSymbol&&(r+="&gene="+i.chainsGene[e].geneSymbol);try{let s=await n.getAjaxPromise(r,"jsonp");if(s&&s.data&&s.data.length>0){let i=!1,n=s;l.processSnpClinvar(n,e,t,i)}else l.processNoClinvar(e)}catch(t){return void l.processNoClinvar(e)}}async getUniprotForAllStructures(){let e=this.icn3d,t=e.icn3dui;e.chainid2uniport={};for(let s in e.structures)if(s.length>5){let t=e.structures[s];for(let i=0,n=t.length;i0){let s=!0,n=!0;l.processSnpClinvar(i,e,t,s,n)}else l.processNoSnp(e)}catch(t){return void l.processNoSnp(e)}}else this.processNoSnp(e),console.log("No gi was found for the chain "+t+"...")}processNoClinvar(e){let t=this.icn3d;t.icn3dui,console.log("No ClinVar data were found for the protein "+e+"..."),$("#"+t.pre+"dt_clinvar_"+e).html(""),$("#"+t.pre+"ov_clinvar_"+e).html(""),t.showAnnoCls.enableHlSeq(),t.bAjaxClinvar=!0}processNoSnp(e){let t=this.icn3d;t.icn3dui,console.log("No SNP data were found for the protein "+e+"..."),$("#"+t.pre+"dt_snp_"+e).html(""),$("#"+t.pre+"ov_snp_"+e).html(""),t.showAnnoCls.enableHlSeq(),t.bAjaxSnp=!0}}class Ot{constructor(e){this.icn3d=e}showSsbond(e,t){let s=this.icn3d;s.icn3dui;let i=this;void 0===s.ssbondpnts?setTimeout((function(){i.showSsbond_base(e,t)}),1e3):this.showSsbond_base(e,t)}showSsbond_base(e,t){let s=this.icn3d;s.icn3dui.bNode&&(s.resid2ssbond||(s.resid2ssbond={}),s.resid2ssbond[e]||(s.resid2ssbond[e]=[]));let i=t,n={},l=i.substr(0,i.indexOf("_")),r=s.ssbondpnts[l];if(void 0===r)return $("#"+s.pre+"dt_ssbond_"+e).html(""),$("#"+s.pre+"ov_ssbond_"+e).html(""),void $("#"+s.pre+"tt_ssbond_"+e).html("");for(let e=0,t=r.length;e-s.halfBilayerSize){i[t.structure+"_"+t.chain+"_"+t.resi]=1}}let n=Object.keys(i);s.annoCddSiteCls.showAnnoType(e,t,"transmem","Transmembrane",n)}}class It{constructor(e){this.icn3d=e,this.init3ddomain()}init3ddomain(){this.icn3d.icn3dui,this.dcut=8,this.min_contacts=2,this.MAX_SSE=512,this.ctc_cnt=[];for(let e=0;e=this.curr_ratio+.01||f>this.split_ratio)return e;if(f>this.curr_ratio-.01&&Math.min(m,u)=0&&l[i]==t-e+i;i--);if(i<0)break;for(l[i]++,s=i+1;s-1;i++);for(l=Math.min(i-1,this.max_csz),this.curr_ne0=this.curr_ne1=0,this.curr_ratio=100,s=1;s<=l;s++)this.cut_size(s,i);if(this.top--,0==this.curr_ne0){for(n=this.stack[this.top],e=n;e-1;e++)this.parts[this.np++]=this.elements[e];this.parts[this.np++]=-1,this.n_doms++}else{if(this.save_ratios[this.saved++]=this.curr_ratio,this.curr_ne0>this.min_sse){for(n=this.stack[this.top],e=0;ethis.min_sse){for(n=this.stack[this.top],e=0;e0;)this.process_set()}output(e){let t,s;this.icn3d.icn3dui;let i=[];for(t=0;t<2*e;t++)i.push(0);for(t=s=0;st+n)break;let p=(t-a)*(t-a);p+=(s-c)*(s-c),p+=(i-h)*(i-h);let m=Math.sqrt(p);if(m>n)continue;let u={},g={};parseInt(e.rnum)this.MAX_SSE)return o=this.standardizeSubstruct(p,o,u),{subdomains:a,substruct:o};let f=h.length,C=f,b=this.c2b_AlphaContacts(f,i,n,l,t,r),y=[];for(let e=0;e=this.min_contacts&&(k[s]||(k[s]={}),k[i]||(k[i]={}),k[s][i]=1,k[i][s]=1)}let O=0,R={};this.groupnum2sheet={},this.visited={};for(let e in k)this.visited[e]=!1;for(let e in k)0==this.visited[e]&&(O++,this.countUtil(e,k,O));for(let e in this.groupnum2sheet){let t=this.groupnum2sheet[e].sort((function(e,t){return e-t}));for(let e=0,s=t.length;e0&&this.elt_size[s.sse-1]>=6&&0!=s.adj_strand2&&e++}for(let e=0;e0)for(let e=0;e0){let e=0;for(let t=0;t<=T;t++){let t=[];for(;e<2*g;){let s=this.parts[e++];if(0==s){P.push(t);break}t.push(s)}}}P.sort((function(e,t){return e[0]-t[0]}));let D=[];for(let e=0,t=P.length;e=this.min_sse&&D.push(P[e])}if(P=D,0==P.length){let e={},t={},s=0;for(let i=0,n=this.group_num.length;i=3&&(s=n)):e[n]=1)}if(0!=s){let e=[s].concat(t[s]);P.push(e)}}for(let e=0,t=P.length;e=o.length)return o=this.standardizeSubstruct(p,o,u),{subdomains:a,substruct:o};let n=o[i],l=n.From,r=n.To;for(let e=l;e<=r;e++)s[e]=1;if(0==i&&l>1)for(let e=1;e0){let e=o[i-1].To,t=parseInt(.5*(l-e-1));if(t>0)for(let e=l-t;e<=l-1;e++)s[e]=1}if(i0)for(let e=r+1;e<=r+t;e++)s[e]=1}}let i,n=!1,l=[];for(let e=0;ec&&(c=p),i.ssend&&(o.To=e+1,o.x2=i.coord.x,o.y2=i.coord.y,o.z2=i.coord.z,o.Sheet="sheet"==i.ss,r.push(o),o={}),i.ssbegin&&(o.From=e+1,o.x1=i.coord.x,o.y1=i.coord.y,o.z1=i.coord.z)}r=this.standardizeSubstruct(l,r,a);let h='{"data": [';h+='{"ss": [';let p=0;for(let e=0,s=r.length;e0&&(h+=", "),h+="["+s+","+i+","+n+","+r[e].x1.toFixed(2)+","+r[e].y1.toFixed(2)+",",h+=r[e].z1.toFixed(2)+","+r[e].x2.toFixed(2)+","+r[e].y2.toFixed(2)+","+r[e].z2.toFixed(2)+"]",++p)}h+="]",h+=', "domain": [';let m=0;for(let e=d;e<=c;++e){let n=l+"_"+e,r=t.ncbi2resid[n];r.split("_")[2];let o=e;if(m>0&&(h+=", "),i.hasOwnProperty(r)){let e=t.firstAtomObjCls.getFirstCalphaAtomObj(t.residues[r]);h+="["+o+","+(s.parasCls.resn2restype[e.resn]?s.parasCls.resn2restype[e.resn]:0)+","+e.coord.x.toFixed(2)+","+e.coord.y.toFixed(2)+","+e.coord.z.toFixed(2)+"]"}else h+="["+o+",0,0,0,0]";++m}return h+="]}",h+="]}",h}}class Et{constructor(e){this.icn3d=e}clickAddTrackButton(){let e=this.icn3d,t=e.icn3dui,s=this;t.myEventCls.onIds("#"+e.pre+"addtrack_button1","click",(async function(e){let i=s.icn3d;e.stopImmediatePropagation(),dialog.dialog("close");let n=$("#"+i.pre+"track_chainid").val(),l=$("#"+i.pre+"track_gi").val(),r=isNaN(l)?"Acc "+l:"gi "+l,o=t.htmlCls.baseUrl+"pwaln/pwaln.fcgi?from=track",a={targets:n,queries:l},d=await t.getAjaxPostPromise(o,a);s.alignSequenceToStructure(n,d,r)})),t.myEventCls.onIds("#"+e.pre+"addtrack_button2","click",(async function(e){let i=s.icn3d;e.stopImmediatePropagation(),dialog.dialog("close");let n=$("#"+i.pre+"track_chainid").val(),l=$("#"+i.pre+"track_fasta").val(),r=$("#"+i.pre+"fasta_title").val(),o=n.substr(0,n.indexOf("_")),a=n;if(5==o.length)a=a.substr(0,4);else if(o.length>5){a="";for(let e=0,t=i.chainsSeq[n].length;e8||d.length<6)&&(a=!1),d.length<9&&(o=!1),d[0];let c,h,p=d[1],m=d[2],u=d[3];d.length,d.length>5&&(c=d[5]),d.length,d.length,d.length>8&&(h=d[8]),d.length,d.length,d.length;let g=u,f="51,51,51";o?f=h:a&&("+"==c&&l.length>0?f=l[0]:"-"==c&&l.length>1?f=l[1]:"."==c&&l.length>2&&(f=l[2]));let C="",b=[];for(let e=0,t=m;e1&&(s=t[0]);let l=i.ParserUtilsCls.getResi(n,e);if(a.hasOwnProperty(n+"_"+l)){let e=i.firstAtomObjCls.getFirstCalphaAtomObj(i.residues[n+"_"+l]),t=void 0===e.color||"FFFFFF"===e.color.getHexString().toUpperCase()?"DDDDDD":e.color.getHexString(),o=void 0!==e.color?t:"CCCCCC";r+=s,d.push("#"+o)}else r+="-",d.push("")}s.showNewTrack(n,l,r,d,void 0,"selection",void 0),t.htmlCls.clickMenuCls.setLogCmd("add track | chainid "+n+" | title "+l+" | text "+s.simplifyText(r)+" | type selection",!0)}))}showNewTrack(e,t,s,i,n,l,r,o,a,d,c,h,p){let m=this.icn3d,u=m.icn3dui,g=!1;"cannot be aligned"==s&&(g=!0);let f=s.replace(/-/g,"").length;if(!o)if(s.length>m.giSeq[e].length)s=s.substr(0,m.giSeq[e].length);else if(s.length20&&(C=C.substr(0,20));let b=u.htmlCls.RESIDUE_WIDTH*s.length+200;$("#"+m.pre+"dt_custom_"+e).append("
    "),$("#"+m.pre+"dt_custom_"+e+"_"+C).width(b),$("#"+m.pre+"ov_custom_"+e).append("
    "),$("#"+m.pre+"ov_custom_"+e+"_"+C).width(b),$("#"+m.pre+"tt_custom_"+e).append("
    "),$("#"+m.pre+"tt_custom_"+e+"_"+C).width(b);let y='
    ',v=y,_=y,w=y,S=y,A=parseInt(10*Math.random()),x='",k='
    Exons
    ',O=''+f.toString()+" Pos";w+=x+O+"
    ",S+=k+O+"
    ";let R='';y+=x+O+R,v+=k+O+R,_+=x+O+R;let I=e.indexOf("_"),E="cst"+e.substr(I+1),T=0,P=0,D=(void 0===l||"seq"===l||"custom"===l)&&-1==s.indexOf("cannot-be-aligned")&&-1==s.indexOf("cannot be aligned"),M="identity"===l&&-1==s.indexOf("cannot-be-aligned")&&-1==s.indexOf("cannot be aligned"),F={},H=0;x="";let L={},N={},q={},U=0;if(h)for(let e=0,t=h.length;e"+d+"",h){let t='style="background-color:'+L[U]+'"';v+=' ";for(let t in m.residues[e+"_"+g]){let e=m.atoms[t];e.color=u.parasCls.thr(L[U]),m.atomPrevColors[t]=e.color}}x+=m.showSeqCls.insertGapOverview(e,t);let f=Math.round(m.seqAnnWidth*t/(m.maxAnnoLength+m.nTotalGap)-T-P);f<0&&(f=0),x+='
     
    ',s=void 0!==i&&""!=i[t]?i[t]:r?"rgb("+r+")":D?"#"+c:"#333",x+='
     
    ',T+=f,P+=1,++U}else g?y+=""+d+"":(y+="-",v+="")}if(void 0!==a){x="";let s=[],i=[],n=[];for(let e=0,t=a.length;e 
    ',h){let t,s,i=n[r];l=d[r]-a[r]+1;let o,c,p,m=g,u=g+l-1;g+=l;for(let e=0,i=h.length;e=i&&m<=n&&(t={exonIndex:e,rangeStart:i,rangeEnd:n,from:m,genomeRange:h[e].genomeRange}),u>=i&&u<=n&&(s={exonIndex:e,rangeStart:i,rangeEnd:n,to:u,genomeRange:h[e].genomeRange})}if(t&&s&&t.exonIndex==s.exonIndex)o=this.getExonColor(t.rangeStart,t.rangeEnd,m),c=this.getExonColor(t.rangeStart,t.rangeEnd,u),p=o+" 0%, #FFF 50%, "+c+" 100%",x+=this.getExonHtml(t.exonIndex,p,t.from,s.to,t.genomeRange,e,C,i);else if(t&&(o=this.getExonColor(t.rangeStart,t.rangeEnd,m),p=o+" 0%, #FFF 50%, #00F 100%",x+=this.getExonHtml(t.exonIndex,p,t.from,t.rangeEnd,t.genomeRange,e,C,i)),t&&s){for(let n=t.exonIndex+1;n'+t+""}}R=''+f.toString()+" Pos",R+="",R+="
    ",R+="",y+=R,_+=x+R,v+=R,w+="",S+="",h?($("#"+m.pre+"dt_custom_"+e+"_"+C).html(v+y),$("#"+m.pre+"ov_custom_"+e+"_"+C).html(_),$("#"+m.pre+"tt_custom_"+e+"_"+C).html(S+w)):($("#"+m.pre+"dt_custom_"+e+"_"+C).html(y),$("#"+m.pre+"ov_custom_"+e+"_"+C).html(_),$("#"+m.pre+"tt_custom_"+e+"_"+C).html(w))}getExonHtml(e,t,s,i,n,l,r,o){let a=this.icn3d;return a.icn3dui,''}getExonColor(e,t,s){this.icn3d.icn3dui;let i=.5*(e+t);if(s1e-200&&(h=parseFloat(h).toExponential()),n.scores.bit_score;let p=t.targets[l].seqdata,m=i.seqdata,u=n.segs;for(let e=0,t=u.length;e0&&(l=n+"H"+d.toString().padStart(2,"0")+")","coil"==t&&(s.selectionCls.selectResidueList(r,l,l,o,a),o||(o=!0)),r={})),n=e+"_H"+d.toString().padStart(2,"0"),r[p]=1,i.ssend&&(h=e+"_C(H"+d.toString().padStart(2,"0"),"helix"==t&&(s.selectionCls.selectResidueList(r,n,n,o,a),o||(o=!0)),r={})):"E"==m?(i.ssbegin&&(++c,Object.keys(r).length>0&&(l=n+"S"+c.toString().padStart(2,"0")+")","coil"==t&&(s.selectionCls.selectResidueList(r,l,l,o,a),o||(o=!0)),r={})),n=e+"_S"+c.toString().padStart(2,"0"),r[p]=1,i.ssend&&(h=e+"_C(S"+c.toString().padStart(2,"0"),"sheet"==t&&(s.selectionCls.selectResidueList(r,n,n,o,a),o||(o=!0)),r={})):(n=h+"-",r[p]=1)}}Object.keys(r).length>0&&(l=n+"Cterm)","coil"==t&&s.selectionCls.selectResidueList(r,l,l,o,a))}defineIgstrand(e,t){let s=this.icn3d,i=s.icn3dui;$("#"+s.pre+"dl_definedsets").hasClass("ui-dialog-content")&&$("#"+s.pre+"dl_definedsets").dialog("isOpen")||(i.htmlCls.dialogCls.openDlg("dl_definedsets","Select sets"),$("#"+s.pre+"atomsCustom").resizable());let n={},l=!1,r=!0;if(s.hAtoms={},"igdomain"==t){let t=s.chain2igArray[e];if(t&&t.length>0)for(let i=0,o=t.length;i1e3&&"50"==C.substr(C.length-2,2)&&(n[y]=1):(d=s.residIgLoop.hasOwnProperty(y)?"igloop":"igstrand",u&&d!=c&&Object.keys(n).length>0&&("igstrand"==c?(++h,i="Strand-"+a+"-"+e+"-"+h.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igstrand"==t&&(s.selectionCls.selectResidueList(n,i,i,l,r),l||(l=!0)),m=a):"igloop"==c&&(++p,i="Loop-"+m+"_"+o+"-"+e+"-"+p.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igloop"==t&&(s.selectionCls.selectResidueList(n,i,i,l,r),l||(l=!0))),n={}),n[y]=1,a=o,c=d,u=!0)))}"iganchor"==t?(i="Anchor-"+e,s.selectionCls.selectResidueList(n,i,i,l,r)):"igstrand"==c?(++h,i="Strand-"+a+"-"+e+"-"+h.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igstrand"==t&&s.selectionCls.selectResidueList(n,i,i,l,r)):"igloop"==c&&(++p,o="CT",i="Loop-"+m+"_"+o+"-"+e+"-"+p.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igloop"==t&&s.selectionCls.selectResidueList(n,i,i,l,r))}}simplifyText(e){this.icn3d.icn3dui;let t,s,i="",n=!1,l=-1;for(t=0,s=(e=e.replace(/undefined/g," ")).length;t20)return!1;if(void 0!==o.giSeq&&void 0!==o.giSeq[e]){let r=this.getFullText(s);return s=r.text,this.showNewTrack(e,t,s,void 0,void 0,i,n,l),!1}setTimeout((function(){a.checkGiSeq(e,t,s,i,n,l,r+1)}),100)}getFullText(e){this.icn3d.icn3dui;let t="",s=[],i=[],n=e.split(","),l=-1;for(let e=0,r=n.length;ep?t+=c.substr(0,p):t+=c;for(let e=0;ed&&(d=t.length,c=h),++h}o=n.htmlCls.baseUrl+"pwaln/pwaln.fcgi?from=msa";let p=e.split(","),m={};m[t]=0;for(let e=0,t=p.length;e0&&(g+=","+p.join(","));let f={targets:u,queries:g},C=await n.getAjaxPostPromise(o,f);if(!C.data)return void console.log("The protein accessions "+u+","+g+" can not be aligned...");let b=[];i.qt_start_end={};let y=[],v=[],_=Object.keys(C.targets)[0],w=C.targets[_].seqdata;p.splice(0,0,t);for(let e=0,s=p.length;eA&&(A=e)}let x=S,k=w.length-(A+1),O=[],R=[];for(let e=0,t=p.length;ea&&(a=t.length,d=c),++c}s.qt_start_end={};let m="genomeRes",u={};for(let e=0,i=h.length;ef&&(f=e)}for(let e=0,t=h.length;e0&&(d=h,o.targetGapHash[a+o.startposGiSeq]={from:a+o.startposGiSeq,to:d+m-1+o.startposGiSeq}),c=t[s],h=p,"-"!=t[s]?(++p,f=s,o.seqEndLen[e]=C-1-f,u||(g=s,o.seqStartLen[e]=g,u=!0)):++m;o.maxAnnoLength0&&(b+=" "),b+=e+"_"+o.targetGapHash[e].from+"_"+o.targetGapHash[e].to,++y;let v={};for(let a=0,d=i.length;a=o.seqStartLen[e]&&("-"==t[s]&&b--,"-"==h&&b++),c+=h,"-"!=t[s]&&(t[s]==i[a][s]&&++v[d],++d),p=h;"-"!=p&&u.push(C-1);let _=s[a].length<20?s[a]:s[a].substr(0,20)+"...",w=!0,S=r?r[s[a]]:void 0;this.showNewTrack(e,_,c,void 0,void 0,l,void 0,w,m,u,f,S,y)}o.opts.color="exon",o.legendTableCls.showColorLegend(o.opts.color),o.hlUpdateCls.updateHlAll(),o.drawCls.draw()}processAccList(e){this.icn3d.icn3dui;let t=e.split(","),s={},i="";for(let e=0,n=t.length;e5?(l.uniprot2acc&&l.uniprot2acc[y]&&(y=l.uniprot2acc[y]),f=y):f=e,y.length>5){let e="";for(let t=0,s=l.chainsSeq.length;t"),d=a[1].indexOf("\n");n=a[1].substr(d+1).replace(/\n/g,"");for(let e=2,t=a.length;e0&&($("#"+e.pre+"anno_cdd")[0].checked?(this.setAnnoTabCdd(),t.htmlCls.clickMenuCls.setLogCmd("set annotation cdd",!0)):(this.hideAnnoTabCdd(),t.htmlCls.clickMenuCls.setLogCmd("hide annotation cdd",!0)))}showAnnoSelectedChains(){let e=this.icn3d,t=e.icn3dui,s={};for(let t in e.hAtoms){let i=e.atoms[t];s[i.structure+"_"+i.chain]=1}$("#"+e.pre+"dl_annotations > .icn3d-annotation").hide();for(let i in s){$("#"+e.pre+"anno_"+i).length&&$("#"+e.pre+"anno_"+i).show();let s=e.firstAtomObjCls.getFirstCalphaAtomObj(e.chains[i]);if(s&&void 0!==s.resn){let i=t.utilsCls.residueName2Abbr(s.resn.substr(0,3));$("#"+e.pre+"anno_"+i).show()}}}showAnnoAllChains(){let e=this.icn3d;e.icn3dui,$("#"+e.pre+"dl_annotations > .icn3d-annotation").show()}setAnnoView(e){let t=this.icn3d;t.icn3dui.bNode||("detailed view"===e?(t.view="detailed view",$("#"+t.pre+"dl_anno_view_tabs").tabs("option","active",1)):(t.view="overview",$("#"+t.pre+"dl_anno_view_tabs").tabs("option","active",0)))}setAnnoDisplay(e,t){let s=this.icn3d;s.icn3dui;let i=["giseq","custom","site","ptm","snp","clinvar","cdd","domain","interaction","ssbond","crosslink","transmem","ig"];for(let n in i){let l=i[n];$("[id^="+s.pre+t+"_"+l+"]").attr("style",e)}}showFixedTitle(){this.icn3d.icn3dui;this.setAnnoDisplay("display:block;","tt")}hideFixedTitle(){this.icn3d.icn3dui;this.setAnnoDisplay("display:none!important;","tt")}setAnnoViewAndDisplay(e){let t=this.icn3d;if(t.icn3dui,"detailed view"===e){this.setAnnoView("detailed view");let e="display:block;";this.setAnnoDisplay(e,"dt"),$("#"+t.pre+"seqguide_wrapper").attr("style",e),e="display:none;",this.setAnnoDisplay(e,"ov")}else{this.setAnnoView("overview"),this.hideFixedTitle();let e="display:none;";this.setAnnoDisplay(e,"dt"),$("#"+t.pre+"seqguide_wrapper").attr("style",e),e="display:block;",this.setAnnoDisplay(e,"ov")}}async updateClinvar(){let e=this.icn3d;if(e.icn3dui,void 0===e.bClinvarShown||!e.bClinvarShown)for(let t in e.protein_chainid){let s=e.protein_chainid[t];await e.annoSnpClinVarCls.showClinvar(t,s)}e.bClinvarShown=!0}async updateSnp(){let e=this.icn3d;if(e.icn3dui,void 0===e.bSnpShown||!e.bSnpShown)for(let t in e.protein_chainid){let s=e.protein_chainid[t];await e.annoSnpClinVarCls.showSnp(t,s)}e.bSnpShown=!0}updateDomain(){let e=this.icn3d;e.icn3dui,void 0!==e.bDomainShown&&e.bDomainShown||e.annoDomainCls.showDomainAll(),e.bDomainShown=!0}updateInteraction(){let e=this.icn3d;if(e.icn3dui,void 0===e.bInteractionShown||!e.bInteractionShown)for(let t in e.interactChainbase){let s=e.interactChainbase[t];e.annoContactCls.showInteraction(t,s)}e.bInteractionShown=!0}async updatePTM(){let e=this.icn3d;if(e.icn3dui,void 0===e.bPTMShown||!e.bPTMShown)for(let t in e.PTMChainbase){let s=e.PTMChainbase[t];await e.annoPTMCls.showPTM(t,s,"ptm")}e.bPTMShown=!0}updateSsbond(){let e=this.icn3d;if(e.icn3dui,void 0===e.bSSbondShown||!e.bSSbondShown)for(let t in e.ssbondChainbase){let s=e.ssbondChainbase[t];e.annoSsbondCls.showSsbond(t,s)}e.bSSbondShown=!0}updateCrosslink(){let e=this.icn3d;if(e.icn3dui,void 0===e.bCrosslinkShown||!e.bCrosslinkShown)for(let t in e.crosslinkChainbase){let s=e.crosslinkChainbase[t];e.annoCrossLinkCls.showCrosslink(t,s)}e.bCrosslinkShown=!0}async updateTransmem(){let e=this.icn3d,t=e.icn3dui;if(void 0===e.bTranememShown||!e.bTranememShown)for(let s in e.protein_chainid){let i=e.protein_chainid[s];if(void 0!==t.cfg.opmid)e.annoTransMemCls.showTransmem(s,i);else if(e.bAfMem&&e.afmem_start_end){let t=e.afmem_start_end[0],n=e.afmem_start_end[1];await e.annoPTMCls.showPTM(s,i,"afmem",t,n)}else await e.annoPTMCls.showPTM(s,i,"transmem")}e.bTranememShown=!0}async updateIg(e,t){let s=this.icn3d,i=s.icn3dui;if(s.opts.color="ig strand",!e){s.hAtoms={};for(let e in s.protein_chainid)s.hAtoms=i.hashUtilsCls.unionHash(s.hAtoms,s.chains[e])}let n=s.firstAtomObjCls.getResiduesFromAtoms(s.hAtoms);for(let e in n)s.resid2refnum&&delete s.resid2refnum[e],s.residIgLoop&&delete s.residIgLoop[e],s.resid2domainid&&delete s.resid2domainid[e];s.bRunRefnumAgain=!0;let l=e?s.firstAtomObjCls.getChainsFromAtoms(s.hAtoms):s.protein_chainid;for(let e in l)await s.annoIgCls.showIg(e,t),s.bRunRefnumAgain=!1;s.bShowRefnum&&(s.hlUpdateCls.updateHlAll(),s.drawCls.draw())}}class Pt{constructor(e){this.icn3d=e}showAnnotations_part1(e){let t=this.icn3d,s=t.icn3dui;if(s.htmlCls.dialogCls.openDlg("dl_selectannotations","Sequences and Annotations"),(void 0===t.bAssemblyNote||!t.bAssemblyNote)&&void 0!==t.asuCnt){let e="
    Assembly Tips: Only the asymmetric unit is shown in the sequence window.
    Click \"Assembly\" in the menu \"View\" to switch between asymmetric unit and biological assembly("+t.asuCnt+" asymmetric unit).
    ";$("#"+t.pre+"dl_annotations_tabs").append(e),t.bAssemblyNote=!0}t.bResetAnno&&(t.giSeq={},t.currClin={},t.resi2disease_nonempty={},t.baseResi={},t.matchedPos={},$("#"+s.pre+"dl_annotations").empty(),t.annotationCls.setAnnoView("overview"));let i={},n={},l={};if(void 0===t.bAnnoShown||!t.bAnnoShown||t.bResetAnno){t.protein_chainid={};let r,o=Object.keys(t.chains);if(e){let s=t.resid2specCls.atoms2structureArray(e);o=[];for(let e=0,i=s.length;e1&&"1"==d.substr(d.length-1)?(d=d.substr(0,d.length-1),a=o[e].substr(0,o[e].indexOf("_"))+"_"+d):a=o[e],t.proteins.hasOwnProperty(r.serial)&&t.chainsSeq[o[e]].length>1)t.protein_chainid[o[e]]=a;else if(t.nucleotides.hasOwnProperty(r.serial)&&t.chainsSeq[o[e]].length>1)i[o[e]]=a;else if(t.chainsSeq[o[e]].length>1)n[o[e]]=a;else{let s=t.chainsSeq[o[e]][0].name,i=o[e]+"_"+t.chainsSeq[o[e]][0].resi;void 0===l[s]&&(l[s]=[]),l[s].push(i)}if((void 0!==s.cfg.pdbid||void 0!==s.cfg.opmid||void 0!==s.cfg.mmcifid||void 0!==s.cfg.mmtfid)&&(t.proteins.hasOwnProperty(r.serial)||t.nucleotides.hasOwnProperty(r.serial)))for(let s=0,i=t.chainsSeq[o[e]].length;st.maxAnnoLengthOri&&(t.protein_chainid.hasOwnProperty(e)||i.hasOwnProperty(e))&&(t.maxAnnoLengthOri=t.chainsSeq[e].length);t.maxAnnoLength=t.maxAnnoLengthOri}return{nucleotide_chainid:i,chemical_chainid:n,chemical_set:l}}async showAnnotations(e){let t=this.icn3d,s=t.icn3dui,i=this,n=this.showAnnotations_part1(e),l=n.nucleotide_chainid,r=n.chemical_chainid,o=n.chemical_set;if(!t.bAnnoShown||t.bResetAnno)if(t.bAnnoShown=!0,void 0===s.cfg.blast_rep_id){if(t.bFullUi){if(void 0!==s.cfg.mmtfid){let e=Object.keys(t.structures)[0];await t.mmcifParserCls.downloadMmcifSymmetry(e,"mmtfid")}await this.showAnnoSeqData(l,r,o)}}else if(void 0===s.cfg.blast_rep_id||t.bSmithwm||t.bLocalSmithwm){if(void 0!==s.cfg.blast_rep_id&&(t.bSmithwm||t.bLocalSmithwm)){let e,n,a=[s.cfg.blast_rep_id];if(-1!=s.cfg.query_id.indexOf(">")?n=s.cfg.query_id.substr(s.cfg.query_id.indexOf("\n")+1):!/\d/.test(s.cfg.query_id)||s.cfg.query_id.length>50?n=s.cfg.query_id:a.push(s.cfg.query_id),t.blastAcxn){let i=s.cfg.afid+"_A",n="";for(let e=0,s=t.chainsSeq[i].length;e5){let n;e.uniprot2acc&&e.uniprot2acc[i]?e.uniprot2acc[i]:e.uniprot2acc={},n="https://rest.uniprot.org/uniprotkb/search?format=json&fields=xref_geneid,gene_names&query="+i;let l=await t.getAjaxPromise(n,"json"),r=l.results[0]&&l.results[0].uniProtKBCrossReferences&&l.results[0].uniProtKBCrossReferences[0]?l.results[0].uniProtKBCrossReferences[0].id:void 0,o=l.results[0]&&l.results[0].genes&&l.results[0].genes[0]&&l.results[0].genes[0].geneName?l.results[0].genes[0].geneName.value:"ID "+r;e.chainsGene[s]={geneId:r,geneSymbol:o}}}for(let s in e.protein_chainid){let i=t.utilsCls.isMobile()?"none":"button",l=e.showSeqCls.getProteinName(s),r=l,o=0==n?"Proteins:

    ":"",a=e.chainsGene[s]&&e.chainsGene[s].geneId&&e.chainsGene[s].geneDesc?"(Gene: "+e.chainsGene[s].geneSymbol+")":"",d=s.substr(0,s.indexOf("_")),c=d.length>5?''+s+"":s,h="
    "+o+"Annotations of "+c+": "+r+""+a+"   "+this.addButton(s,"icn3d-addtrack","Add Track","Add a custom track",60,i)+"   ";h+=this.addButton(s,"icn3d-customcolor","Custom Color/Tube","Use a custom file to define the colors or tubes in 3D structure",110,i)+"   ",h+=this.addButton(s,"icn3d-helixsets","Helix Sets",'Define sets for each helix in this chain and add them to the menu of "Defined Sets"',60,i)+" "+this.addButton(s,"icn3d-sheetsets","Sheet Sets",'Define sets for each sheet in this chain and add them to the menu of "Defined Sets"',60,i)+" "+this.addButton(s,"icn3d-coilsets","Coil Sets",'Define sets for each coil in this chain and add them to the menu of "Defined Sets"',60,i),h+="   "+this.addButton(s,"icn3d-iganchorsets","Ig Anchor Set",'Define the set for all Ig anchors in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igstrandsets","Ig Strand Sets",'Define sets for each Ig strand in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igloopsets","Ig Loop Sets",'Define sets for each Ig loop in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igdomainsets","Ig Domain Sets",'Define sets for each Ig domain in this chain and add them to the menu of "Defined Sets"',80,i),$("#"+e.pre+"dl_annotations").append(h);let p=["giseq","cdd","clinvar","snp","site","ptm","ssbond","crosslink","transmem","domain","custom","interaction","ig"];for(let t in p){let i=p[t];$("#"+e.pre+"anno_"+s).append(this.getAnDiv(s,i))}$("#"+e.pre+"anno_"+s).append("


    "),++n}if(t.bNode||e.annoCddSiteCls.setToolTip(),void 0!==e.chainid_seq)await this.processSeqData(e.chainid_seq);else try{let n=[],l=[];for(let e=0,t=i.length;e=6?l.push(i[e]):n.push(i[e])}if(n.length>0){let s=t.htmlCls.baseUrl+"/vastdyn/vastdyn.cgi?chainlist="+n;e.chainid_seq=await t.getAjaxPromise(s,"jsonp")}else e.chainid_seq={};for(let t=0,s=l.length;t40&&(r=r.substr(0,40)+"...");let o="";0==i&&("protein"==s?o="Proteins:

    ":"nucleotide"==s?o="Nucleotides:

    ":"chemical"==s&&(o="Chemicals/Ions/Water:

    ")),$("#"+n.pre+"dl_annotations").append("
    "+o+""+e+": "+r+"
    "),$("#"+n.pre+"anno_"+e).append(this.getAnDiv(e,"giseq")),$("#"+n.pre+"anno_"+e).append(this.getAnDiv(e,"interaction")),$("#"+n.pre+"anno_"+e).append("


    "),n.giSeq[e]=[];for(let t=0;tChemicals/Ions/Water:

    ":"",o=t[0].lastIndexOf("_"),a=t[0].substr(0,o),d=void 0!==l.cfg.mmdbid&&void 0!==n.chainid2sid?n.chainid2sid[a]:void 0;i=void 0!==d?""+e+" ":""+e+"",$("#"+n.pre+"dl_annotations").append("
    "+r+i+"
    "),$("#"+n.pre+"anno_"+e).append("
    "),$("#"+n.pre+"anno_"+e).append("


    ");let c='
    ';c+='",c+='Count: '+t.length+"",c+='';let h=c,p=c;for(let s=0,i=t.length;s3&&(l=i.substr(0,3)),s'+l+""}let m=l.htmlCls.GREY8,u=Math.round(n.seqAnnWidth*t.length/n.maxAnnoLength);u<1&&(u=1),p+='
     
    ',c="",c+="
    ",c+="
    ",h+=c,p+=c,$("#"+n.pre+"dt_giseq_"+e).html(h),$("#"+n.pre+"ov_giseq_"+e).html(p)}async processSeqData(e){let t=this.icn3d,s=t.icn3dui;t.bAnnoShown=!0;for(let i in t.protein_chainid){let n=t.protein_chainid[i];if(e.hasOwnProperty(n)){let s=e[n];t.giSeq[i]=s;let l="";for(let e=0;e<10&&e14?"Query: "+o.substr(0,6)+"...":isNaN(s.cfg.query_id)?"Query: "+o:"Query: gi "+o;let a="cannot be aligned";t.queryStart="",t.queryEnd="",t.bRender&&alert("The sequence can NOT be aligned to the structure"),t.showSeqCls.showSeq(i,n,void 0,e,l,a,r)}else if(s.cfg.blast_rep_id==i&&(void 0!==t.seqStructAlignData||void 0!==t.seqStructAlignDataSmithwm)){let e,l,r,o,a,d=s.cfg.oriQuery_id?s.cfg.oriQuery_id:s.cfg.query_id;if(e=d.length>14?"Query: "+d.substr(0,6)+"...":isNaN(s.cfg.query_id)?"Query: "+d:"Query: gi "+d,void 0!==t.seqStructAlignData){let e,s,i=t.seqStructAlignData;if(void 0!==i.data){e=i.data[0].query;let t=Object.keys(i.data[0].targets);s=i.data[0].targets[t[0]],s=void 0!==s&&s.hsps.length>0?s.hsps[0]:void 0}if(void 0!==e&&void 0!==s){l=s.scores.e_value.toPrecision(2),l>1e-200&&(l=parseFloat(l).toExponential()),s.scores.bit_score;let t=Object.keys(i.targets);r=i.targets[t[0]].seqdata,o=e.seqdata,a=s.segs}}else{let e=t.seqStructAlignDataSmithwm;l=e.score,r=e.target.replace(/-/g,""),o=e.query.replace(/-/g,""),a=[];let s=-1,i=-1,n=!1,d={};for(let t=0,l=e.target.length;t0)if(i.orifrom-ni.from-l)for(let t=n+1;t
    "+i+"
    "}addButton(e,t,s,i,n,l){return this.icn3d.icn3dui,"
    "}addSnpButton(e,t,s,i,n,l){let r=this.icn3d;return r.icn3dui,"
    "}conservativeReplacement(e,t){let s=this.icn3d.icn3dui,i=-1!==s.parasCls.b62ResArray.indexOf(e)?s.parasCls.b62ResArray.indexOf(e):s.parasCls.b62ResArray.length-1,n=-1!==s.parasCls.b62ResArray.indexOf(t)?s.parasCls.b62ResArray.indexOf(t):s.parasCls.b62ResArray.length-1;return s.parasCls.b62Matrix[i][n]>0}getColorhexFromBlosum62(e,t){let s=this.icn3d.icn3dui,i="333333";if(!e||!t)return i;e=e.toUpperCase(),t=t.toUpperCase();let n=-1!==s.parasCls.b62ResArray.indexOf(e)?s.parasCls.b62ResArray.indexOf(e):s.parasCls.b62ResArray.length-1,l=-1!==s.parasCls.b62ResArray.indexOf(t)?s.parasCls.b62ResArray.indexOf(t):s.parasCls.b62ResArray.length-1,r=s.parasCls.b62Matrix[n][l];if(void 0===r)return"333333";if(r>0){let e=221-parseInt(r/11*221),t=e<10?"0"+e.toString(16):e.toString(16);i="DD"+t+t}else{let e=221-parseInt(-1*r/4*221),t=e<10?"0"+e.toString(16):e.toString(16);i=t+t+"DD"}return i}}class Dt{constructor(e){this.icn3d=e}getSeq(e){let t,s=this.icn3d,i=s.icn3dui;if(void 0===i.cfg.mmdbid&&void 0===i.cfg.gi&&void 0===i.cfg.blast_rep_id&&void 0===i.cfg.align&&void 0===i.cfg.chainalign&&void 0===i.cfg.mmdbafid){t=[];for(let i=0;i10){m='
    ';let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]);void 0===a.cfg.mmdbid&&void 0===a.cfg.gi&&void 0===a.cfg.blast_rep_id&&void 0===a.cfg.align&&void 0===a.cfg.chainalign&&void 0===a.cfg.mmdbafid||void 0===t.resi_ori||t.resi_ori==t.resi||-1!=e.indexOf("Misc")?m+='
    ':m+='
    NCBI Residue Numbers
    ',m+='',f+=m+"
    ",u+=m+'';let s=0,i=0,n="";o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e]," "));for(let t=0,l=d.length;t",l%10==0&&(u+=l);let r=e+"_"+l,a=l%10!=0&&l%10!=1&&l%10!=9;if(o.residues.hasOwnProperty(r)){let e=o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[r]);"H"==o.secondaries[r]&&e.ssbegin?(++s,n='H'+s+"",a&&(u+=n,n="")):"E"==o.secondaries[r]&&e.ssbegin?(++i,"green"==o.sheetcolor?n='S'+i+"":"yellow"==o.sheetcolor&&(n='S'+i+""),a&&(u+=n,n="")):e.ssend&&(n=""),""!=n&&a&&(u+=n,n="")}u+=""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e]," ")),u+='',u+="",u+="
    ",u+="
    ",f+=""}m='
    ',m+='
    ',m+='',f+=m+"
    ",u+=m+'',o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t':'',u+=" ";else if("E"==o.secondaries[s]){o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[s]).ssend?"green"==o.sheetcolor?u+='':"yellow"==o.sheetcolor&&(u+=''):"green"==o.sheetcolor?u+='':"yellow"==o.sheetcolor&&(u+=''),u+=" "}else"c"==o.secondaries[s]?u+=' ':"o"==o.secondaries[s]&&(u+=' ');else u+="-"}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),u+='',u+="",u+="
    ",u+="
    ",u+="",f+="",m=a.cfg.blast_rep_id===e?'
    ':'
    ';let C="Protein",b="Protein";void 0!==s&&("nucleotide"==s?(C="Nucl.",b="Nucleotide"):"chemical"==s&&(C="Chem.",b="Chemical")),m+='",m+=''+(o.baseResi[e]+1).toString()+"",f+=m+"
    ";let y='';u+=m+y,g+=m+y;let v,_=0;o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t1&&(i=s[0]+".."),v=o.ParserUtilsCls.getResi(e,t),o.residues.hasOwnProperty(e+"_"+v)){let n="333333";if(a.cfg.blast_rep_id==e&&void 0!==o.fullpos2ConsTargetpos&&void 0!==o.fullpos2ConsTargetpos[t+_])n=o.fullpos2ConsTargetpos[t+_].color;else{let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[e+"_"+v]),s=void 0===t.color||"FFFFFF"===t.color.getHexString().toUpperCase()||"FFF"===t.color.getHexString().toUpperCase()?"DDDDDD":t.color.getHexString();n=void 0!==t.color?s:"CCCCCC"}u+=''+i+""}else i=i.toLowerCase(),u+=''+i+""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),a.cfg.blast_rep_id==e&&(o.opts.color=o.blastAcxn?"confidence":"conservation",o.setColorCls.setColorByOptions(o.opts,o.atoms));let w=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]),S=w.color?w.color.getHexString():"CCCCCC",A=Math.round(o.seqAnnWidth*d.length/(o.maxAnnoLength+o.nTotalGap));if(A<1&&(A=1),o.seqStartLen&&o.seqStartLen[e]&&(g+=this.insertMulGapOverview(e,o.seqStartLen[e])),a.cfg.blast_rep_id!=e)g+='";else{let t=[],s=[];t.push(0);for(let e=0,i=d.length;e';for(let i=0,n=t.length;i'+e+"
    ";g+="
    "}if(m=''+v+"",m+="",m+="
    ",u+=m,g+=m,a.cfg.blast_rep_id==e){if(void 0!==r&&""!==r){m='",m+='',f+=m+"
    ";let t='';u+=m+t,g+=m+t;let s=0,i=0,l=1;o.queryStart;for(let t=0,n=r.length;t-";else if(" "==n)u+=" ";else{let r=o.fullpos2ConsTargetpos[t].pos;if(o.residues.hasOwnProperty(e+"_"+r)){let s=o.fullpos2ConsTargetpos[t].color;u+=''+n+""}else n=n.toLowerCase(),u+=''+n+"";g+=this.insertGapOverview(e,t);let a=Math.round(o.seqAnnWidth*t/(o.maxAnnoLength+o.nTotalGap)-s-i);a>=0&&(g+='
     
    ',g+='
     
    ',s+=a,i+=l)}}m='',m+="",m+="
    ",u+=m,g+=m}m='
    '+i+"
    ",m+=''+o.queryStart+"",f+=m+"
    ";let t='';u+=m+t,g+=m+t;let s=o.queryStart;for(let t=0,i=l.length;t-":(void 0===o.fullpos2ConsTargetpos||void 0===o.fullpos2ConsTargetpos[t]||o.residues.hasOwnProperty(e+"_"+o.fullpos2ConsTargetpos[t].pos)||(i=i.toLowerCase()),u+=''+i+"",++s)}let a=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]),d=void 0===a.color||"FFFFFF"===a.color.getHexString()?"DDDDDD":a.color.getHexString(),c=void 0!==a.color?d:"CCCCCC",h=[],p=[],C="-";for(let e=0,t=l.length;e ',g+='
    '+i+"
    "}m=''+o.queryEnd+"",m+="",m+="
    ",u+=m,g+=m}if(u+="",g+="",f+="",d.length>10){let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]);if((void 0!==a.cfg.mmdbid||void 0!==a.cfg.gi||void 0!==a.cfg.blast_rep_id||void 0!==a.cfg.align||void 0!==a.cfg.chainalign||void 0!==a.cfg.mmdbafid)&&void 0!==t.resi_ori&&t.resi_ori!=t.resi&&-1==e.indexOf("Misc")){m='
    ',m+='
    ',m+='
    PDB Residue Numbers
    ',m+='',f+=m+"
    ",u+=m+'',o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t",e%10==0&&(u+=e+" "),u+=""}else u+=""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),u+='',u+="",u+="
    ",u+="
    ",u+="
    ",f+=""}if(o.bShowCustomRefnum&&o.chainsMapping.hasOwnProperty(e)){let t=!0,s=o.annoIgCls.showRefNum(d,e,void 0,t);u+=s.html,f+=s.html3}}o.bShowRefnum&&o.hlUpdateCls.updateHlAll(),$("#"+o.pre+"dt_giseq_"+e).html(u),$("#"+o.pre+"ov_giseq_"+e).html(g),$("#"+o.pre+"tt_giseq_"+e).html(f)}insertGap(e,t,s,i){let n=this.icn3d;n.icn3dui;let l="";return void 0!==n.targetGapHash&&n.targetGapHash.hasOwnProperty(t)&&(l+=this.insertMulGap(n.targetGapHash[t].to-n.targetGapHash[t].from+1,s,i)),l}insertMulGap(e,t,s){this.icn3d.icn3dui;let i="";for(let n=0;n"+t+"";return i}insertGapOverview(e,t){let s=this.icn3d;s.icn3dui;let i="";return void 0!==s.targetGapHash&&s.targetGapHash.hasOwnProperty(t)&&(i+=this.insertMulGapOverview(e,s.targetGapHash[t].to-s.targetGapHash[t].from+1)),i}insertMulGapOverview(e,t){let s=this.icn3d;s.icn3dui;let i="",n=s.seqAnnWidth*t/(s.maxAnnoLength+s.nTotalGap);return n=parseInt(n),i+='
     
    ',i}setAlternativeSeq(e,t){let s=this.icn3d;s.icn3dui;let i=s.chainsSeq[e];s.giSeq[e]=[];for(let t=0,n=i.length;t1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+e,!0)}else{let o={};if(void 0!==$(e).attr("domain")||void 0!==$(e).attr("feat")||void 0!==$(e).attr("3ddomain")||void 0!==$(e).attr("custom")||void 0!==$(e).attr("ig")){t.hlUpdateCls.hlSummaryDomain3ddomain(e);let a,d,c,h=$(e).attr("from").split(","),p=$(e).attr("to").split(",");r.substr(0,r.indexOf("_"));for(let s=0,i=h.length;s1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+c,!0)}}else{t.bCtrl||t.bShift?(t.currSelectedSets.push(i),t.selectionCls.selectAChain(r,i,!0,!0)):(t.currSelectedSets=[i],t.selectionCls.selectAChain(r,i,t.bAlignSeq)),t.bAlignSeq?s.htmlCls.clickMenuCls.setLogCmd("select alignChain "+r,!0):s.htmlCls.clickMenuCls.setLogCmd("select chain "+r,!0);let e=t.currSelectedSets.join(" or ");t.currSelectedSets.length>1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+e,!0)}else t.hlObjectsCls.removeHlObjects(),t.hlUpdateCls.removeHl2D(),$("#"+t.pre+"atomsCustom").val("")}}selectResidues(e,t){let s=this.icn3d,i=s.icn3dui;if(!i.bNode&&(!1!==s.bSelectResidue||s.bShift||s.bCtrl||s.selectionCls.removeSelection(),void 0!==e&&""!==e)){e=e.substr(e.indexOf("_")+1),s.bSelectResidue=!0,$(t).toggleClass("icn3d-highlightSeq");let n=e.substr(e.indexOf("_")+1);if(s.residues.hasOwnProperty(n))if($(t).hasClass("icn3d-highlightSeq")){for(let e in s.residues[n])s.hAtoms[e]=1;if(s.selectedResidues[n]=1,s.bAnnotations&&void 0!==$(t).attr("disease")){let e=$(t).attr("disease"),l=s.applyCenterCls.centerAtoms(i.hashUtilsCls.hash2Atoms(s.residues[n],s.atoms)),r=15;e.length>r&&(e=e.substr(0,r)+"...");let o=s.LABELSIZE,a=i.htmlCls.GREYD;s.analysisCls.addLabel(e,l.center.x,l.center.y,l.center.z,o,a,void 0,"custom")}}else{for(let e in s.residues[n])delete s.hAtoms[e];delete s.selectedResidues[n],s.hlObjectsCls.removeHlObjects()}}}}class Ft{constructor(e){this.icn3d=e}update2DdgmContent(){let e=this.icn3d,t=e.icn3dui,s="";void 0!==t.cfg.mmdbid||void 0!==t.cfg.gi?(s+=e.diagram2dCls.draw2Ddgm(e.interactionData,e.inputid,void 0,!0),s+=e.diagram2dCls.set2DdgmNote(),$("#"+e.pre+"dl_2ddgm_html").html(s)):e.mmdbidArray&&(void 0!==t.cfg.align||void 0!==t.cfg.chainalign||e.bRealign)&&(s+=e.diagram2dCls.draw2Ddgm(e.interactionData1,e.mmdbidArray[0].toUpperCase(),0,!0),void 0!==e.mmdbid_q&&e.mmdbid_q===e.mmdbid_t?s+=e.diagram2dCls.draw2Ddgm(e.interactionData2,e.mmdbidArray[0].toUpperCase(),1,!0):s+=e.diagram2dCls.draw2Ddgm(e.interactionData2,e.mmdbidArray[1].toUpperCase(),1,!0),s+=e.diagram2dCls.set2DdgmNote(!0),$("#"+e.pre+"dl_2ddgm_html").html(s))}changeSeqColor(e){let t=this.icn3d,s=t.icn3dui;for(let i=0,n=e.length;i0&&($("#"+t.pre+"dl_2ddgm svg line").attr("stroke","#000000"),$("#"+t.pre+"dl_2ddgm line").attr("stroke-width",1)),e||($("#"+t.pre+"dl_linegraph circle").attr("stroke","#000000"),$("#"+t.pre+"dl_linegraph circle").attr("stroke-width",1),$("#"+t.pre+"dl_scatterplot rect").attr("stroke","#000000"),$("#"+t.pre+"dl_scatterplot circle").attr("stroke","#000000"),$("#"+t.pre+"dl_scatterplot rect").attr("stroke-width",1),$("#"+t.pre+"dl_scatterplot circle").attr("stroke-width",1))}removeHlMenus(){let e=this.icn3d;e.icn3dui,$("#"+e.pre+"atomsCustom").val(""),$("#"+e.pre+"atomsCustom")[0].blur()}updateHlAll(e,t,s,i){let n=this.icn3d,l=n.icn3dui;n.prevHighlightAtoms=l.hashUtilsCls.cloneHash(n.hAtoms),this.updateHlObjects(i),void 0!==e?this.updateHlSeqInChain(e,s):this.updateHlSeq(void 0,void 0,s),this.updateHl2D(),(void 0===t||t)&&this.updateHlMenus(e)}updateHlObjects(e){let t=this.icn3d;t.icn3dui,t.hlObjectsCls.removeHlObjects(),(t.hAtoms&&t.atoms&&Object.keys(t.hAtoms).length0&&(e=s.defNames2Residues[i]);let t={};if(void 0!==s.defNames2Atoms[i]&&s.defNames2Atoms[i].length>0){for(let e=0,n=s.defNames2Atoms[i].length;e0&&(r=t.firstAtomObjCls.getFirstCalphaAtomObj(l))}let o=void 0!==r&&void 0!==r.color?"#"+r.color.getHexString():"#FFFFFF",a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] rect[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] rect[class='icn3d-basenode']");void 0!==a&&(t.diagram2dCls.highlightNode("rect",a,d,l),$(a).attr("fill",o)),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] circle[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] circle[class='icn3d-basenode']"),void 0!==a&&(t.diagram2dCls.highlightNode("circle",a,d,l),$(a).attr("fill",o)),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] ellipse[class='icn3d-hlnode']"),void 0!==a&&t.diagram2dCls.highlightNode("ellipse",a,void 0,l),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] polygon[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] polygon[class='icn3d-basenode']"),void 0!==a&&(t.diagram2dCls.highlightNode("polygon",a,d,l),$(a).attr("fill",o))}if(void 0!==t.lineArray2d)for(let e=0,i=t.lineArray2d.length;e1){let e={},l=[],o=[],a=[],c=[],h=[],m=[],u=[],g=[],f=[],C=[],b=[],y=[],v={},_={},w={};for(let t=0,s=p.length;t4&&!isNaN(parseInt(e.substr(-4,4)))||t.length>4&&!isNaN(parseInt(t.substr(-4,4))),c=e+"_"+t+"_"+s.c,h=n.hashUtilsCls.cloneHash(s);h.source+=S+i.chainsMapping[r][d],h.target+=S+i.chainsMapping[o][C];let m=n.hashUtilsCls.cloneHash(s);m.source+=A+i.chainsMapping[r][d],m.target+=A+i.chainsMapping[o][C],v[c]!=p.length||!a&&0!=w[c]?b[f].push(m):u[f].push(h),g[f][s.source]=i.chainsMapping[r][d],g[f][s.target]=i.chainsMapping[o][C],y[f][s.source]=i.chainsMapping[r][d],y[f][s.target]=i.chainsMapping[o][C]}else{let e=n.hashUtilsCls.cloneHash(s);e.source+=i.chainsMapping[r]&&i.chainsMapping[r][d]?A+i.chainsMapping[r][d]:A+k,e.target+=i.chainsMapping[o]&&i.chainsMapping[o][C]?A+i.chainsMapping[o][C]:A+k,b[f].push(e),g[f][s.source]=i.chainsMapping[r]&&i.chainsMapping[r][d]?i.chainsMapping[r][d]:x,g[f][s.target]=i.chainsMapping[o]&&i.chainsMapping[o][C]?i.chainsMapping[o][C]:x,y[f][s.source]=i.chainsMapping[r]&&i.chainsMapping[r][d]?i.chainsMapping[r][d]:k,y[f][s.target]=i.chainsMapping[o]&&i.chainsMapping[o][C]?i.chainsMapping[o][C]:k}}}let O=[],R=[],I=0,E=[],T=1;for(let e=0,t=p.length;e0&&(T=1,t=i.getGraphCls.getNodeTopBottom(c[e],d,void 0,T,g[e]),h[e]=t.nodeArray1,m[e]=t.nodeArray2,d=n.hashUtilsCls.unionHash(d,t.name2node),T=2,t=i.getGraphCls.getNodeTopBottom(c[e],d,void 0,T,y[e]),f[e]=t.nodeArray1,C[e]=t.nodeArray2,d=n.hashUtilsCls.unionHash(d,t.name2node)),O[e]=l[e].length,R[e]=o[e].length,I=Math.max(I,R[e]),E.push(p[e])}let P,D,M,F,H,L=1,N=3*L,q=7*L,U=10,$=10,B=30,j=20;t?(M=(n.utilsCls.sumArray(O)+2*E.length)*(N+q)+4*$+2*B+j*E.length,D=(I+2)*(N+q)+2*U+B):(P=110+j,M=P*E.length,D=(I+2)*(N+q)+2*U,D+=20),Object.keys(i.chainsMapping).length>0&&(M*=3),t?(i.scatterplotWidth=2*D,H=i.scatterplotWidth,F=n.scatterplotid):(i.linegraphWidth=2*D,H=i.linegraphWidth,F=n.linegraphid),s=0==E.length?"No interactions found for each structure

    ":"2D integration graph for "+E.length+" structure(s) "+E+'. There are three sections: "Interactions", "Common interactions", and "Different interactions". Each section has '+E.length+" graphs.

    ",s+="";let z,G=0;T=0,z=this.drawGraphPerType(T,p,t,l,o,a,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html,Object.keys(i.chainsMapping).length>0&&(T=1,z=this.drawGraphPerType(T,p,t,h,m,u,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html,T=2,z=this.drawGraphPerType(T,p,t,f,C,b,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html),s+=""}else if(t){let e,t,l,c,h=p[0],m=o.length,u=a.length,g=1,f=3*g,C=7*g,b=30;t=(m+2)*(f+C)+2*10+b,e=(u+2)*(f+C)+2*10+b,i.scatterplotWidth=2*e,c=i.scatterplotWidth,l=n.scatterplotid,s=r.length>0?"":"No interactions found for these two sets

    ",s+="",s+=this.drawScatterplot_base(o,a,r,d,0),i.lineGraphStr+=i.getGraphCls.updateGraphJson(h,1,o,a,r),s+=""}else{let e=p[0],t=o.length,l=a.length,c=1,h=3*c,m=7*c,u=110,g=10,f=t>l?t*(h+m)+2*g:l*(h+m)+2*g;i.linegraphWidth=2*f,s=r.length>0?"":"No interactions found for these two sets

    ",s+="",s+=this.drawLineGraph_base(o,a,r,d,0),i.lineGraphStr+=i.getGraphCls.updateGraphJson(e,1,o,a,r),s+=""}return i.lineGraphStr+="}\n",i.scatterplotStr=i.lineGraphStr,t?$("#"+i.pre+"scatterplotDiv").html(s):$("#"+i.pre+"linegraphDiv").html(s),s}drawGraphPerType(e,t,s,i,n,l,r,o,a,d,c,h,p,m){let u=this.icn3d;u.icn3dui;let g,f,C="",b=2==t.length&&"2"==t[1].replace(t[0],"");0==e?(g="Interactions in ",f=""):1==e?(g="Common interactions in ",f="_common"):2==e&&(g="Different interactions in ",f="_diff");for(let y=0,v=t.length;y0&&(u.lineGraphStr+=", \n"):u.lineGraphStr+=", \n",u.lineGraphStr+=u.getGraphCls.updateGraphJson(t[y],y+f,i[y],n[y],l[y])}return{heightFinal:o,html:C}}getIdArrayFromNode(e){let t=this.icn3d.icn3dui,s=[];s.push(""),s.push("");let i=e.r.substr(4);return s=s.concat(t.utilsCls.getIdArray(i)),s}drawLineGraph_base(e,t,s,i,n,l,r){let o,a,d=this.icn3d,c=d.icn3dui,h="",p=e.length,m=t.length;p>m?(o=10,a=10*Math.abs(p-m)*.5+10):(a=10,o=10*Math.abs(p-m)*.5+10),l&&(h+=""+l+"");let u=30+n,g=80+n,f="",C={},b={};for(let t=0;t";let u=1==t.n?"Interaction":t.n+" interactions";t.n>1&&(h+=""+u+" of residue "+n.id+" with residue "+l.id+""),h+=""}return h+=f,h}drawScatterplot_base(e,t,s,i,n,l,r,o,a){let d=this.icn3d;d.icn3dui;let c="",h=e.length,p=t.length,m=l?3:7,u=(h+1)*(3+m)+30+40;r&&(c+=""+r+"");let g=n+u-(50+(3+m)),f=40+(3+m),C="",b={},y={};for(let t=0;t";else{d+="";let i=1==e.n?"Interaction":e.n+" interactions";e.n>1&&(d+=""+i+" of residue "+t.id+" with residue "+s.id+""),d+=l?"":"",d+=""}return d}copyStylesInline(e,t){this.icn3d.icn3dui;let s=["svg","g"];for(let i=0;i",b=e.id;return c.resid2refnum[p]&&(b+="=>"+c.resid2refnum[p]),C+=""+b+"",o?(C+="",C+=""+g+""):(C+="",C+=""+g+""),C+="",C}getNodeTopBottom(e,t,s,i,n){let l=this.icn3d.icn3dui,r=this,o=[],a=[],d={};for(let s in e){let e=t[s];if(e){if(1==i||2==i){if(e=l.hashUtilsCls.cloneHash(e),1==i){let t=n[s]?n[s]:"-";e.id+="=>"+t}else{let t=n[s]?n[s]:"--";e.id+="==>"+t}d[e.id]=e}"a"==e.s?o.push(e):"b"==e.s?a.push(e):"ab"==e.s&&(o.push(e),a.push(e))}}return o.sort((function(e,t){return r.compNode(e,t)})),a.sort((function(e,t){return r.compNode(e,t,s)})),{nodeArray1:o,nodeArray2:a,name2node:d}}updateGraphJson(e,t,s,i,n){let l=this.icn3d.icn3dui,r="";return r+='"structure'+t+'": {"id": "'+e+'", "nodes1":[',r+=l.utilsCls.getJSONFromArray(s),r+='], \n"nodes2":[',r+=l.utilsCls.getJSONFromArray(i),r+='], \n"links":[',r+=l.utilsCls.getJSONFromArray(n),r+="]}",r}updateGraphColor(){this.icn3d.icn3dui}handleForce(){let e=this.icn3d;0==e.icn3dui.htmlCls.force&&void 0!==e.simulation?(e.simulation.stop(),e.simulation.force("charge",null),e.simulation.force("x",null),e.simulation.force("y",null),e.simulation.force("r",null),e.simulation.force("link",null)):e.drawGraphCls.drawGraph(e.graphStr,e.pre+"dl_graph")}getNodesLinksForSet(e,t,s,i){let n=this.icn3d,l=n.icn3dui,r=[],o=[],a=0,d=l.htmlCls.coilValue,c="",h="",p=0,m={};for(let u in e){let e=n.atoms[u];if("DUM"!=e.chain&&(i||e.het||"CA"==e.name&&"C"==e.elem||"O3'"==e.name||"O3*"==e.name||"P"==e.name)){let i=e.structure+"_"+e.chain+"_"+e.resi;if(m.hasOwnProperty(i))continue;m[i]=1;let u=l.utilsCls.residueName2Abbr(e.resn)+e.resi;"chain"!=t&&"structure"!=t||(u+="."+e.chain),"structure"==t&&(u+="."+e.structure);let g="1_1_"+i,f=e.color?e.color.getHexString().toUpperCase():"000";r.push('{"id": "'+u+'", "r": "'+g+'", "s": "'+s+'", "x": '+e.coord.x.toFixed(0)+', "y": '+e.coord.y.toFixed(0)+', "c": "'+f+'"}'),a>0&&c==e.chain&&(n.resid2ncbi[e.resi]==n.resid2ncbi[p]+1||n.resid2ncbi[e.resi]==n.resid2ncbi[p])&&(o.push('{"source": "'+h+'", "target": "'+u+'", "v": '+d+', "c": "'+f+'"}'),e.ssbegin&&(d=l.htmlCls.ssValue),e.ssend&&(d=l.htmlCls.coilValue)),c=e.chain,h=u,p=e.resi,++a}}return{node:r,link:o}}getHbondLinksForSet(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=parseFloat($("#"+s.pre+"hbondthreshold").val()),r=e,o=r;if(Object.keys(o).length>0&&Object.keys(r).length>0){let e=!1;s.hBondCls.calculateChemicalHbonds(i.hashUtilsCls.hash2Atoms(o,s.atoms),i.hashUtilsCls.hash2Atoms(r,s.atoms),parseFloat(l),e,"graph",!0),n=i.hashUtilsCls.cloneHash(s.resid2Residhash)}return this.getGraphLinks(n,n,i.htmlCls.hbondInsideColor,t,i.htmlCls.hbondInsideValue)}getIonicLinksForSet(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=parseFloat($("#"+s.pre+"saltbridgethreshold").val()),r=e,o=r;if(Object.keys(o).length>0&&Object.keys(r).length>0){let e=!1;s.saltbridgeCls.calculateIonicInteractions(i.hashUtilsCls.hash2Atoms(o,s.atoms),i.hashUtilsCls.hash2Atoms(r,s.atoms),parseFloat(l),e,"graph",!0),n=i.hashUtilsCls.cloneHash(s.resid2Residhash)}return this.getGraphLinks(n,n,i.htmlCls.ionicInsideColor,t,i.htmlCls.ionicInsideValue)}getHalogenPiLinksForSet(e,t){let s,i=this.icn3d,n=i.icn3dui,l={},r=e,o=r,a="";return s=parseFloat($("#"+i.pre+"halogenthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","halogen",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.halogenInsideColor,t,n.htmlCls.halogenInsideValue),s=parseFloat($("#"+i.pre+"picationthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","pi-cation",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.picationInsideColor,t,n.htmlCls.picationInsideValue),s=parseFloat($("#"+i.pre+"pistackingthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","pi-stacking",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.pistackingInsideColor,t,n.htmlCls.pistackingInsideValue),a}getContactLinksForSet(e,t,s){let i=this.icn3d;i.icn3dui;let n=[],l="",r="",o={};for(let t in e){let e=i.atoms[t];e.ss==l&&e.chain==r||(Object.keys(o).length>0&&n.push(o),o={}),o[e.serial]=1,l=e.ss,r=e.chain}Object.keys(o).length>0&&n.push(o);let a=n.length,d="";for(let e=0;ed?s?-1:1:ah?1:c1&&Object.keys(n).length>1)return void alert("Please select one ligand or residue as one of the interaction sets...");Object.keys(e).length0&&Object.keys(a).length>0)){let t,s=c.hBondCls.calculateChemicalHbonds(h.hashUtilsCls.hash2Atoms(d,c.atoms),h.hashUtilsCls.hash2Atoms(a,c.atoms),parseFloat(e),n);n?(c.resid2ResidhashSaltbridge=h.hashUtilsCls.cloneHash(c.resid2Residhash),t="all atoms that have salt bridges with the selected atoms"):(c.resid2ResidhashHbond=h.hashUtilsCls.cloneHash(c.resid2Residhash),t="all atoms that are hydrogen-bonded with the selected atoms");let i={};for(let e in s){i[c.atoms[e].structure+"_"+c.atoms[e].chain+"_"+c.atoms[e].resi]=1}c.hAtoms={};for(let e in i)for(let t in c.residues[e])c.hAtoms[t]=1,c.atoms[t].style2="stick";let l=r+"_auto";c.selectionCls.addCustomSelection(Object.keys(i),l,t,o,!0),c.selectionCls.saveSelectionIfSelected(),c.drawCls.draw()}}showHydrogens(){let e=this.icn3d;if(void 0!==e.icn3dui.cfg.cid)for(let t in e.hAtoms){let s=e.atoms[t];if("H"!==s.elem.substr(0,1)){e.atoms[s.serial].bonds=e.atoms[s.serial].bonds2.concat(),e.atoms[s.serial].bondOrder=e.atoms[s.serial].bondOrder2.concat();for(let t=0,i=e.atoms[s.serial].bonds.length;t0){let i=e.atoms[t].bonds[0];e.atoms[i].bonds.push(s.serial),e.atoms[i].bondOrder&&e.atoms[i].bondOrder.push(1)}e.dAtoms[t]=1}} +var icn3d=function(e){"use strict";class t{constructor(e){this.icn3dui=e}cloneHash(e){this.icn3dui;let t={};void 0===e&&(e={});for(let s in e)t[s]=e[s];return t}intHash(e,t){this.icn3dui;let s={};if(void 0===e&&(e={}),void 0===t&&(t={}),Object.keys(e).length0||window.navigator.userAgent.match(/Trident.*rv\:11\./))}isMobile(){return this.icn3dui,/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent)}isMac(){return this.icn3dui,/Mac/i.test(window.navigator.userAgent)}isAndroid(){return this.icn3dui,/android/i.test(window.navigator.userAgent.toLowerCase())}isChrome(){return this.icn3dui,navigator.userAgent.includes("Chrome")&&navigator.vendor.includes("Google Inc")}isSessionStorageSupported(){return this.icn3dui,window.sessionStorage}isLocalStorageSupported(){return this.icn3dui,window.localStorage}hexToRgb(e,t){this.icn3dui;let s=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return s?{r:parseInt(s[1],16),g:parseInt(s[2],16),b:parseInt(s[3],16),a:t}:null}isCalphaPhosOnly(e){this.icn3dui;let t=!1,s=0,i=0;for(let t in e){if(!(s<100))break;{let s=e[t].name;if(!s)continue;s=s.trim(),"CA"!==s&&"P"!==s&&"O3'"!==s&&"O3*"!==s&&++i}++s}return i<.5*s&&(t=!0),t}hasCovalentBond(e,t){let s=this.icn3dui,i=s.parasCls.covalentRadii[e.elem.toUpperCase()]+s.parasCls.covalentRadii[t.elem.toUpperCase()],n=e.coord.x-t.coord.x,l=e.coord.y-t.coord.y,r=e.coord.z-t.coord.z;return n*n+l*l+r*r<("N"==e.elem&&"H"==t.elem.substr(0,1)||"N"==t.elem&&"H"==e.elem.substr(0,1)?2.2:1.3)*i*i}residueName2Abbr(e){this.icn3dui;let t=e.indexOf(" ");switch(t>0&&(e=e.substr(0,t)),e){case" A":case" DA":case"DA":case"ALA":return"A";case" C":case" DC":case"DC":case"CYS":return"C";case" G":case" DG":case"DG":case"GLY":return"G";case" T":case" DT":case"DT":case"THR":return"T";case" U":case" DU":case"DU":case"SEC":return"U";case" I":case" DI":case"DI":case"ILE":return"I";case"ARG":return"R";case"ASN":return"N";case"ASP":return"D";case"GLU":return"E";case"GLN":return"Q";case"HIS":return"H";case"LEU":return"L";case"LYS":return"K";case"MET":return"M";case"PHE":return"F";case"PRO":return"P";case"SER":return"S";case"TRP":return"W";case"TYR":return"Y";case"VAL":return"V";case"HOH":case"WAT":return"O";default:return e.trim()}}residueAbbr2Name(e){if(this.icn3dui,(e=e.toUpperCase()).length>1)return e;switch(e){case"A":return"ALA";case"R":return"ARG";case"N":return"ASN";case"D":return"ASP";case"C":return"CYS";case"E":return"GLU";case"Q":return"GLN";case"G":return"GLY";case"H":return"HIS";case"I":return"ILE";case"L":return"LEU";case"K":return"LYS";case"M":return"MET";case"F":return"PHE";case"P":return"PRO";case"S":return"SER";case"T":return"THR";case"W":return"TRP";case"Y":return"TYR";case"V":return"VAL";case"O":return"HOH";default:return e.trim()}}getJSONFromArray(e){this.icn3dui;let t="";for(let s=0,i=e.length;sd?1:ah?1:cs&&(e.htmlCls.WIDTH=s),i&&e.htmlCls.HEIGHT>i&&(e.htmlCls.HEIGHT=i)}sumArray(e){let t=0;for(let s=0,i=e.length;sRed and blue membranes indicate extracellular and intracellular membranes, respectively.

    "}getStructures(e){let t=this.icn3dui,s={};for(let i in e){s[t.icn3d.atoms[i].structure]=1}return s}getHlStructures(e){let t=this.icn3dui;return e||(e=t.icn3d.hAtoms),this.getStructures(e)}getDisplayedStructures(e){let t=this.icn3dui;return e||(e=t.icn3d.dAtoms),this.getStructures(e)}getDateDigitStr(){this.icn3dui;let e=new Date,t=(e.getMonth()+1).toString();e.getMonth()+1<10&&(t="0"+t);let s=e.getDate().toString();return e.getDate()<10&&(s="0"+s),e.getFullYear().toString()+t+s}}class i{constructor(e){this.icn3dui=e,this.glycanHash={GLC:{c:"1E90FF",s:"sphere"},BGC:{c:"1E90FF",s:"sphere"},NAG:{c:"1E90FF",s:"cube"},NDG:{c:"1E90FF",s:"cube"},GCS:{c:"1E90FF",s:"cube"},PA1:{c:"1E90FF",s:"cube"},GCU:{c:"1E90FF",s:"cone"},BDP:{c:"1E90FF",s:"cone"},G6D:{c:"1E90FF",s:"cone"},DDA:{c:"1E90FF",s:"cylinder"},B6D:{c:"1E90FF",s:"cylinder"},XXM:{c:"1E90FF",s:"cylinder"},MAN:{c:"00FF00",s:"sphere"},BMA:{c:"00FF00",s:"sphere"},BM3:{c:"00FF00",s:"cube"},"95Z":{c:"00FF00",s:"cube"},MAV:{c:"00FF00",s:"cone"},BEM:{c:"00FF00",s:"cone"},RAM:{c:"00FF00",s:"cone"},RM4:{c:"00FF00",s:"cone"},TYV:{c:"00FF00",s:"cylinder"},ARA:{c:"00FF00",s:"cylinder"},ARB:{c:"00FF00",s:"cylinder"},KDN:{c:"00FF00",s:"cylinder"},KDM:{c:"00FF00",s:"cylinder"},"6PZ":{c:"00FF00",s:"cylinder"},GMH:{c:"00FF00",s:"cylinder"},BDF:{c:"00FF00",s:"cylinder"},GAL:{c:"FFFF00",s:"sphere"},GLA:{c:"FFFF00",s:"sphere"},NGA:{c:"FFFF00",s:"cube"},A2G:{c:"FFFF00",s:"cube"},X6X:{c:"FFFF00",s:"cube"},"1GN":{c:"FFFF00",s:"cube"},ADA:{c:"FFFF00",s:"cone"},GTR:{c:"FFFF00",s:"cone"},LDY:{c:"FFFF00",s:"cylinder"},KDO:{c:"FFFF00",s:"cylinder"},T6T:{c:"FFFF00",s:"cylinder"},GUP:{c:"A52A2A",s:"sphere"},GL0:{c:"A52A2A",s:"sphere"},LGU:{c:"A52A2A",s:"cone"},ABE:{c:"A52A2A",s:"cylinder"},XYS:{c:"A52A2A",s:"cylinder"},XYP:{c:"A52A2A",s:"cylinder"},SOE:{c:"A52A2A",s:"cylinder"},PZU:{c:"FF69B4",s:"cylinder"},RIP:{c:"FF69B4",s:"cylinder"},"0MK":{c:"FF69B4",s:"cylinder"},ALL:{c:"8A2BE2",s:"sphere"},AFD:{c:"8A2BE2",s:"sphere"},NAA:{c:"8A2BE2",s:"cube"},SIA:{c:"8A2BE2",s:"cylinder"},SIB:{c:"8A2BE2",s:"cylinder"},AMU:{c:"8A2BE2",s:"cylinder"},X0X:{c:"1E90FF",s:"cone"},X1X:{c:"1E90FF",s:"cone"},NGC:{c:"1E90FF",s:"cylinder"},NGE:{c:"1E90FF",s:"cylinder"},"4N2":{c:"A0522D",s:"sphere"},HSQ:{c:"A0522D",s:"cube"},IDR:{c:"A0522D",s:"cone"},MUR:{c:"A0522D",s:"cylinder"},FUC:{c:"FF0000",s:"cone"},FUL:{c:"FF0000",s:"cone"}},this.nucleotidesArray=[" G"," A"," T"," C"," U"," DG"," DA"," DT"," DC"," DU","G","A","T","C","U","DG","DA","DT","DC","DU"],this.ionsArray=[" K"," NA"," MG"," AL"," CA"," TI"," MN"," FE"," NI"," CU"," ZN"," AG"," BA"," F"," CL"," BR"," I","K","NA","MG","AL","CA","TI","MN","FE","NI","CU","ZN","AG","BA","F","CL","BR","I"],this.cationsTrimArray=["K","NA","MG","AL","CA","TI","MN","FE","NI","CU","ZN","AG","BA"],this.anionsTrimArray=["F","CL","BR","I"],this.ionCharges={K:1,NA:1,MG:2,AL:3,CA:2,TI:3,MN:2,FE:3,NI:2,CU:2,ZN:2,AG:1,BA:2},this.vdwRadii={H:1.08,HE:1.34,LI:1.75,BE:2.05,B:1.47,C:1.49,N:1.41,O:1.4,F:1.39,NE:1.68,NA:1.84,MG:2.05,AL:2.11,SI:2.07,P:1.92,S:1.82,CL:1.83,AR:1.93,K:2.05,CA:2.21,SC:2.16,TI:1.87,V:1.79,CR:1.89,MN:1.97,FE:1.94,CO:1.92,NI:1.84,CU:1.86,ZN:2.1,GA:2.08,GE:2.15,AS:2.06,SE:1.93,BR:1.98,KR:2.12,RB:2.16,SR:2.24,Y:2.19,ZR:1.86,NB:2.07,MO:2.09,TC:2.09,RU:2.07,RH:1.95,PD:2.02,AG:2.03,CD:2.3,IN:2.36,SN:2.33,SB:2.25,TE:2.23,I:2.23,XE:2.21,CS:2.22,BA:2.51,LA:2.4,CE:2.35,PR:2.39,ND:2.29,PM:2.36,SM:2.29,EU:2.33,GD:2.37,TB:2.21,DY:2.29,HO:2.16,ER:2.35,TM:2.27,YB:2.42,LU:2.21,HF:2.12,TA:2.17,W:2.1,RE:2.17,OS:2.16,IR:2.02,PT:2.09,AU:2.17,HG:2.09,TL:2.35,PB:2.32,BI:2.43,PO:2.29,AT:2.36,RN:2.43,FR:2.56,RA:2.43,AC:2.6,TH:2.37,PA:2.43,U:2.4,NP:2.21,PU:2.56,AM:2.56,CM:2.56,BK:2.56,CF:2.56,ES:2.56,FM:2.56},this.covalentRadii={H:.31,HE:.28,LI:1.28,BE:.96,B:.84,C:.76,N:.71,O:.66,F:.57,NE:.58,NA:1.66,MG:1.41,AL:1.21,SI:1.11,P:1.07,S:1.05,CL:1.02,AR:1.06,K:2.03,CA:1.76,SC:1.7,TI:1.6,V:1.53,CR:1.39,MN:1.39,FE:1.32,CO:1.26,NI:1.24,CU:1.32,ZN:1.22,GA:1.22,GE:1.2,AS:1.19,SE:1.2,BR:1.2,KR:1.16,RB:2.2,SR:1.95,Y:1.9,ZR:1.75,NB:1.64,MO:1.54,TC:1.47,RU:1.46,RH:1.42,PD:1.39,AG:1.45,CD:1.44,IN:1.42,SN:1.39,SB:1.39,TE:1.38,I:1.39,XE:1.4,CS:2.44,BA:2.15,LA:2.07,CE:2.04,PR:2.03,ND:2.01,PM:1.99,SM:1.98,EU:1.98,GD:1.96,TB:1.94,DY:1.92,HO:1.92,ER:1.89,TM:1.9,YB:1.87,LU:1.87,HF:1.75,TA:1.7,W:1.62,RE:1.51,OS:1.44,IR:1.41,PT:1.36,AU:1.36,HG:1.32,TL:1.45,PB:1.46,BI:1.48,PO:1.4,AT:1.5,RN:1.5,FR:2.6,RA:2.21,AC:2.15,TH:2.06,PA:2,U:1.96,NP:1.9,PU:1.87,AM:1.8,CM:1.69},this.atomColors={H:this.thr(16777215),He:this.thr(16761035),HE:this.thr(16761035),Li:this.thr(11674146),LI:this.thr(11674146),B:this.thr(65280),C:this.thr(11184810),N:this.thr(255),O:this.thr(15728640),F:this.thr(14329120),Na:this.thr(255),NA:this.thr(255),Mg:this.thr(2263842),MG:this.thr(2263842),Al:this.thr(8421520),AL:this.thr(8421520),Si:this.thr(14329120),SI:this.thr(14329120),P:this.thr(16753920),S:this.thr(16762930),Cl:this.thr(65280),CL:this.thr(65280),Ca:this.thr(8421520),CA:this.thr(8421520),Ti:this.thr(8421520),TI:this.thr(8421520),Cr:this.thr(8421520),CR:this.thr(8421520),Mn:this.thr(8421520),MN:this.thr(8421520),Fe:this.thr(16753920),FE:this.thr(16753920),Ni:this.thr(10824234),NI:this.thr(10824234),Cu:this.thr(10824234),CU:this.thr(10824234),Zn:this.thr(10824234),ZN:this.thr(10824234),Br:this.thr(10824234),BR:this.thr(10824234),Ag:this.thr(8421520),AG:this.thr(8421520),I:this.thr(10494192),Ba:this.thr(16753920),BA:this.thr(16753920),Au:this.thr(14329120),AU:this.thr(14329120)},this.atomnames={H:"Hydrogen",HE:"Helium",LI:"Lithium",B:"Boron",C:"Carbon",N:"Nitrogen",O:"Oxygen",F:"Fluorine",NA:"Sodium",MG:"Magnesium",AL:"Aluminum",SI:"Silicon",P:"Phosphorus",S:"Sulfur",CL:"Chlorine",CA:"Calcium",TI:"Titanium",CR:"Chromium",MN:"Manganese",FE:"Iron",NI:"Nickel",CU:"Copper",ZN:"Zinc",BR:"Bromine",AG:"Silver",I:"Iodine",BA:"Barium",AU:"Gold"},this.defaultAtomColor=this.thr(13421772),this.stdChainColors=[this.thr(16711935),this.thr(255),this.thr(10053171),this.thr(65433),this.thr(16750848),this.thr(16737894),this.thr(3329330),this.thr(2003199),this.thr(16416882),this.thr(16753920),this.thr(52945),this.thr(16738740),this.thr(65280),this.thr(255),this.thr(16711680),this.thr(16776960),this.thr(65535),this.thr(16711935),this.thr(3978097),this.thr(4620980),this.thr(13458524),this.thr(16770229),this.thr(11529966),this.thr(15631086),this.thr(25600),this.thr(139),this.thr(9109504),this.thr(13468991),this.thr(35723),this.thr(9699539)],this.backgroundColors={black:this.thr(0),grey:this.thr(13421772),white:this.thr(16777215),transparent:this.thr(16777215)},this.residueColors={ALA:this.thr(13158600),ARG:this.thr(1334015),ASN:this.thr(56540),ASP:this.thr(15075850),CYS:this.thr(15132160),GLN:this.thr(56540),GLU:this.thr(15075850),GLY:this.thr(15461355),HIS:this.thr(8553170),ILE:this.thr(1016335),LEU:this.thr(1016335),LYS:this.thr(1334015),MET:this.thr(15132160),PHE:this.thr(3289770),PRO:this.thr(14456450),SER:this.thr(16422400),THR:this.thr(16422400),TRP:this.thr(11819700),TYR:this.thr(3289770),VAL:this.thr(1016335),ASX:this.thr(16738740),GLX:this.thr(16738740),G:this.thr(32768),A:this.thr(6324479),T:this.thr(16744448),C:this.thr(16711680),U:this.thr(16744448),DG:this.thr(32768),DA:this.thr(6324479),DT:this.thr(16744448),DC:this.thr(16711680),DU:this.thr(16744448)},this.residueArea={ALA:247,ARG:366,ASN:290,ASP:285,CYS:271,GLN:336,GLU:325,GLY:217,HIS:340,ILE:324,LEU:328,LYS:373,MET:346,PHE:366,PRO:285,SER:265,THR:288,TRP:414,TYR:387,VAL:293,ASX:290,GLX:336,G:520,A:507,T:515,C:467,U:482,DG:520,DA:507,DT:515,DC:467,DU:482},this.defaultResidueColor=this.thr(12492910),this.chargeColors={" G":this.thr(16711680)," A":this.thr(16711680)," T":this.thr(16711680)," C":this.thr(16711680)," U":this.thr(16711680)," DG":this.thr(16711680)," DA":this.thr(16711680)," DT":this.thr(16711680)," DC":this.thr(16711680)," DU":this.thr(16711680),G:this.thr(16711680),A:this.thr(16711680),T:this.thr(16711680),C:this.thr(16711680),U:this.thr(16711680),DG:this.thr(16711680),DA:this.thr(16711680),DT:this.thr(16711680),DC:this.thr(16711680),DU:this.thr(16711680),ARG:this.thr(255),LYS:this.thr(255),ASP:this.thr(16711680),GLU:this.thr(16711680),HIS:this.thr(8421631),GLY:this.thr(8947848),PRO:this.thr(8947848),ALA:this.thr(8947848),VAL:this.thr(8947848),LEU:this.thr(8947848),ILE:this.thr(8947848),PHE:this.thr(8947848),SER:this.thr(8947848),THR:this.thr(8947848),ASN:this.thr(8947848),GLN:this.thr(8947848),TYR:this.thr(8947848),MET:this.thr(8947848),CYS:this.thr(8947848),TRP:this.thr(8947848)},this.hydrophobicColors={" G":this.thr(16711680)," A":this.thr(16711680)," T":this.thr(16711680)," C":this.thr(16711680)," U":this.thr(16711680)," DG":this.thr(16711680)," DA":this.thr(16711680)," DT":this.thr(16711680)," DC":this.thr(16711680)," DU":this.thr(16711680),G:this.thr(16711680),A:this.thr(16711680),T:this.thr(16711680),C:this.thr(16711680),U:this.thr(16711680),DG:this.thr(16711680),DA:this.thr(16711680),DT:this.thr(16711680),DC:this.thr(16711680),DU:this.thr(16711680),ARG:this.thr(255),LYS:this.thr(255),ASP:this.thr(16711680),GLU:this.thr(16711680),HIS:this.thr(8421631),TRP:this.thr().setHSL(1/3,1,.5),PHE:this.thr().setHSL(1/3,1,.5909090909090908),LEU:this.thr().setHSL(1/3,1,.700956937799043),ILE:this.thr().setHSL(1/3,1,.7320574162679425),TYR:this.thr().setHSL(1/3,1,.5+.69/2.09),MET:this.thr().setHSL(1/3,1,.5+.71/2.09),VAL:this.thr().setHSL(1/3,1,.5+.815/2.09),CYS:this.thr().setHSL(1/3,1,.5+1.035/2.09),PRO:this.thr().setHSL(1/6,1,.9391304347826086),THR:this.thr().setHSL(1/6,1,.8913043478260869),SER:this.thr().setHSL(1/6,1,.8),ALA:this.thr().setHSL(1/6,1,.7826086956521738),GLN:this.thr().setHSL(1/6,1,.6652173913043478),ASN:this.thr().setHSL(1/6,1,.6304347826086956),GLY:this.thr().setHSL(1/6,1,.5)},this.normalizedHPColors={" G":this.thr(16777215)," A":this.thr(16777215)," T":this.thr(16777215)," C":this.thr(16777215)," U":this.thr(16777215)," DG":this.thr(16777215)," DA":this.thr(16777215)," DT":this.thr(16777215)," DC":this.thr(16777215)," DU":this.thr(16777215),G:this.thr(16777215),A:this.thr(16777215),T:this.thr(16777215),C:this.thr(16777215),U:this.thr(16777215),DG:this.thr(16777215),DA:this.thr(16777215),DT:this.thr(16777215),DC:this.thr(16777215),DU:this.thr(16777215),ARG:this.thr(16777215),LYS:this.thr(16777215),ASP:this.thr(16777215),GLU:this.thr(16777215),HIS:this.thr(16777215),TRP:this.thr().setHSL(1/3,1,.5),PHE:this.thr().setHSL(1/3,1,.558641975308642),LEU:this.thr().setHSL(1/3,1,.6296296296296295),ILE:this.thr().setHSL(1/3,1,.6496913580246912),TYR:this.thr().setHSL(1/3,1,.5+.69/3.24),MET:this.thr().setHSL(1/3,1,.5+.71/3.24),VAL:this.thr().setHSL(1/3,1,.5+.815/3.24),CYS:this.thr().setHSL(1/3,1,.5+1.035/3.24),PRO:this.thr().setHSL(1/3,1,.5+1.115/3.24),THR:this.thr().setHSL(1/3,1,.5+1.17/3.24),SER:this.thr().setHSL(1/3,1,.5+1.275/3.24),ALA:this.thr().setHSL(1/3,1,.5+1.295/3.24),GLN:this.thr().setHSL(1/3,1,.5+1.43/3.24),ASN:this.thr().setHSL(1/3,1,.5+1.47/3.24),GLY:this.thr().setHSL(1/3,1,1)},this.hydrophobicValues={" G":3," A":3," T":3," C":3," U":3," DG":3," DA":3," DT":3," DC":3," DU":3,G:3,A:3,T:3,C:3,U:3,DG:3,DA:3,DT:3,DC:3,DU:3,ARG:1.5,LYS:1.5,ASP:3,GLU:3,HIS:2,TRP:-2.09,PHE:-1.71,LEU:-1.25,ILE:-1.12,TYR:-.71,MET:-.67,VAL:-.46,CYS:-.02,PRO:.14,THR:.25,SER:.46,ALA:.5,GLN:.77,ASN:.85,GLY:1.15},this.residueAbbrev={ALA:"A (Ala)",ARG:"R (Arg)",ASN:"N (Asn)",ASP:"D (Asp)",CYS:"C (Cys)",GLN:"Q (Gln)",GLU:"E (Glu)",GLY:"G (Gly)",HIS:"H (His)",ILE:"I (Ile)",LEU:"L (Leu)",LYS:"K (Lys)",MET:"M (Met)",PHE:"F (Phe)",PRO:"P (Pro)",SER:"S (Ser)",THR:"T (Thr)",TRP:"W (Trp)",TYR:"Y (Tyr)",VAL:"V (Val)",ASX:"X (Asx)",GLX:"X (Glx)",G:"Guanine",A:"Adenine",T:"Thymine",C:"Cytosine",U:"Uracil",DG:"deoxy-Guanine",DA:"deoxy-Adenine",DT:"deoxy-Thymine",DC:"deoxy-Cytosine",DU:"deoxy-Uracil"},this.ssColors={helix:this.thr(16711680),sheet:this.thr(32768),coil:this.thr(6324479)},this.ssColors2={helix:this.thr(16711680),sheet:this.thr(16762880),coil:this.thr(6324479)},this.resn2restype={ALA:1,ARG:4,ASN:7,ASP:10,CYS:13,GLN:16,GLU:19,GLY:22,HIS:25,ILE:28,LEU:31,LYS:34,MET:37,PHE:40,PRO:43,SER:46,THR:49,TRP:52,TYR:55,VAL:58},this.nuclMainArray=["C1'","C1*","C2'","C2*","C3'","C3*","C4'","C4*","C5'","C5*","O3'","O3*","O4'","O4*","O5'","O5*","P","OP1","O1P","OP2","O2P"],this.b62ResArray=["A","R","N","D","C","Q","E","G","H","I","L","K","M","F","P","S","T","W","Y","V","B","Z","X","*"],this.b62Matrix=[[4,-1,-2,-2,0,-1,-1,0,-2,-1,-1,-1,-1,-2,-1,1,0,-3,-2,0,-2,-1,0,-4],[-1,5,0,-2,-3,1,0,-2,0,-3,-2,2,-1,-3,-2,-1,-1,-3,-2,-3,-1,0,-1,-4],[-2,0,6,1,-3,0,0,0,1,-3,-3,0,-2,-3,-2,1,0,-4,-2,-3,3,0,-1,-4],[-2,-2,1,6,-3,0,2,-1,-1,-3,-4,-1,-3,-3,-1,0,-1,-4,-3,-3,4,1,-1,-4],[0,-3,-3,-3,9,-3,-4,-3,-3,-1,-1,-3,-1,-2,-3,-1,-1,-2,-2,-1,-3,-3,-2,-4],[-1,1,0,0,-3,5,2,-2,0,-3,-2,1,0,-3,-1,0,-1,-2,-1,-2,0,3,-1,-4],[-1,0,0,2,-4,2,5,-2,0,-3,-3,1,-2,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-2,0,-1,-3,-2,-2,6,-2,-4,-4,-2,-3,-3,-2,0,-2,-2,-3,-3,-1,-2,-1,-4],[-2,0,1,-1,-3,0,0,-2,8,-3,-3,-1,-2,-1,-2,-1,-2,-2,2,-3,0,0,-1,-4],[-1,-3,-3,-3,-1,-3,-3,-4,-3,4,2,-3,1,0,-3,-2,-1,-3,-1,3,-3,-3,-1,-4],[-1,-2,-3,-4,-1,-2,-3,-4,-3,2,4,-2,2,0,-3,-2,-1,-2,-1,1,-4,-3,-1,-4],[-1,2,0,-1,-3,1,1,-2,-1,-3,-2,5,-1,-3,-1,0,-1,-3,-2,-2,0,1,-1,-4],[-1,-1,-2,-3,-1,0,-2,-3,-2,1,2,-1,5,0,-2,-1,-1,-1,-1,1,-3,-1,-1,-4],[-2,-3,-3,-3,-2,-3,-3,-3,-1,0,0,-3,0,6,-4,-2,-2,1,3,-1,-3,-3,-1,-4],[-1,-2,-2,-1,-3,-1,-1,-2,-2,-3,-3,-1,-2,-4,7,-1,-1,-4,-3,-2,-2,-1,-2,-4],[1,-1,1,0,-1,0,0,0,-1,-2,-2,0,-1,-2,-1,4,1,-3,-2,-2,0,0,0,-4],[0,-1,0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1,1,5,-2,-2,0,-1,-1,0,-4],[-3,-3,-4,-4,-2,-2,-3,-2,-2,-3,-2,-3,-1,1,-4,-3,-2,11,2,-3,-4,-3,-2,-4],[-2,-2,-2,-3,-2,-1,-2,-3,2,-1,-1,-2,-1,3,-3,-2,-2,2,7,-1,-3,-2,-1,-4],[0,-3,-3,-3,-1,-2,-2,-3,-3,3,1,-2,1,-1,-2,-2,0,-3,-1,4,-3,-2,-1,-4],[-2,-1,3,4,-3,0,1,-1,0,-3,-4,0,-3,-3,-2,0,-1,-4,-3,-3,4,1,-1,-4],[-1,0,0,1,-3,3,4,-2,0,-3,-3,1,-1,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,0,0,-2,-1,-1,-1,-1,-1,-4],[-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1]]}thr(e){return this.icn3dui,"#0"==e&&(e="#000"),new THREE.Color(e)}}class n{constructor(e){this.icn3dui=e}onId(e,t,s){if(this.icn3dui,!(Object.keys(window).length<2)&&("#"==e.substr(0,1)&&(e=e.substr(1)),document.getElementById(e))){t.split(" ").forEach((t=>{document.getElementById(e).addEventListener(t,s)}))}}onIds(e,t,s){let i=this.icn3dui;Array.isArray(e)?e.forEach((e=>{i.myEventCls.onId(e,t,s)})):i.myEventCls.onId(e,t,s)}}class l{constructor(e){this.icn3dui=e}getRmsdSuprCls(e,t,s){let i,n,l,r,o,a,d,c,h,p,m,u,g,f=this.icn3dui,C=new Array(9),b=new THREE.Vector3,y=new THREE.Vector3,v=[],_=[],w=new Array(3),S=new Array(3),A=new Array(3),x=new Array(3),k=new Array(3),O=new Array(3);if(i=0,s<=1)return{rot:void 0,trans1:void 0,trans2:void 0,rmsd:999};let R=s;for(n=0;n0?(C[0]=x[0]*w[0]+k[0]*S[0]+O[0]*A[0],C[1]=x[0]*w[1]+k[0]*S[1]+O[0]*A[1],C[2]=x[0]*w[2]+k[0]*S[2]+O[0]*A[2],C[3]=x[1]*w[0]+k[1]*S[0]+O[1]*A[0],C[4]=x[1]*w[1]+k[1]*S[1]+O[1]*A[1],C[5]=x[1]*w[2]+k[1]*S[2]+O[1]*A[2],C[6]=x[2]*w[0]+k[2]*S[0]+O[2]*A[0],C[7]=x[2]*w[1]+k[2]*S[1]+O[2]*A[1],C[8]=x[2]*w[2]+k[2]*S[2]+O[2]*A[2]):(C[0]=x[0]*w[0]+k[0]*S[0]-O[0]*A[0],C[1]=x[0]*w[1]+k[0]*S[1]-O[0]*A[1],C[2]=x[0]*w[2]+k[0]*S[2]-O[0]*A[2],C[3]=x[1]*w[0]+k[1]*S[0]-O[1]*A[0],C[4]=x[1]*w[1]+k[1]*S[1]-O[1]*A[1],C[5]=x[1]*w[2]+k[1]*S[2]-O[1]*A[2],C[6]=x[2]*w[0]+k[2]*S[0]-O[2]*A[0],C[7]=x[2]*w[1]+k[2]*S[1]-O[2]*A[1],C[8]=x[2]*w[2]+k[2]*S[2]-O[2]*A[2]),c=Math.sqrt(c),h=Math.sqrt(h),p=Math.sqrt(p),g=c+h+u*p,m=a+d-2*g,i=m>0?Math.sqrt(m):void 0,{rot:C,trans1:I,trans2:E,rmsd:i})}eigen_values(e){let t,s,i,n,l,r,o,a,d,c,h,p,m,u,g,f,C,b,y,v;if(this.icn3dui,t=e[0],s=e[1],i=e[2],n=e[3],l=e[4],r=e[5],o=e[6],a=e[7],d=e[8],c=-(t+l+d),h=t*l+(t+l)*d-r*a-s*n-i*o,p=-t*l*d+t*r*a+s*n*d-s*r*o-i*n*a+i*l*o,m=-c*c/3+h,u=c*c*c/13.5-c*h/3+p,g=.25*u*u+m*m*m/27,g<0){let e,t;e=Math.sqrt(.25*u*u-g),t=Math.acos(-.5*u/e),b=2*Math.cbrt(e)*Math.cos(t/3)}else f=Math.cbrt(-.5*u+Math.sqrt(g)),C=Math.cbrt(-.5*u-Math.sqrt(g)),b=f+C;return b-=c/3,c+=b,p/=-b,y=.5*(-c+Math.sqrt(c*c-4*p)),v=.5*(-c-Math.sqrt(c*c-4*p)),yw&&(w=Math.abs(d)),Math.abs(c)>w&&(w=Math.abs(c)),Math.abs(h)>w&&(w=Math.abs(h)),Math.abs(p)>w&&(w=Math.abs(p)),Math.abs(m)>w&&(w=Math.abs(m)),Math.abs(u)>w&&(w=Math.abs(u)),Math.abs(g)>w&&(w=Math.abs(g)),Math.abs(f)>w&&(w=Math.abs(f)),w<1e-10)return r=3,{k:r,v1:t,v2:s,v3:i};if(o=0,a/=w,d/=w,c/=w,h/=w,p/=w,m/=w,u/=w,g/=w,f/=w,Math.abs(a)w&&(_=a,a=h,h=_,_=d,d=p,p=_,_=c,c=m,m=_,w=Math.abs(d)),Math.abs(g)>w&&(_=a,a=u,u=_,_=d,d=g,g=_,_=c,c=f,f=_),y=m-p*c/d,v=f-g*c/d,Math.abs(y)w&&(_=a,a=h,h=_,_=d,d=p,p=_,_=c,c=m,m=_,w=Math.abs(a)),Math.abs(c)>w&&(_=a,a=u,u=_,_=d,d=g,g=_,_=c,c=f,f=_),C=p-h*d/a,b=m-h*c/a,y=g-u*d/a,v=f-u*c/a,Math.abs(C)0&&(1==o?(a=s[0],d=s[1],c=s[2],_=Math.sqrt(a*a+d*d+c*c),s[0]=a/_,s[1]=d/_,s[2]=c/_):2==o?(a=t[0],d=t[1],c=t[2],h=s[0],p=s[1],m=s[2],_=a*h+d*p+c*m,Math.abs(_)>=n&&(s[0]=a+_*h,s[1]=d+_*p,s[2]=c+_*m,h=s[0],p=s[1],m=s[2]),_=Math.sqrt(a*a+d*d+c*c),t[0]=a/_,t[1]=d/_,t[2]=c/_,_=Math.sqrt(h*h+p*p+m*m),s[0]=h/_,s[1]=p/_,s[2]=m/_):(a=t[0],d=t[1],c=t[2],_=Math.sqrt(a*a+d*d+c*c),t[0]=a/_,t[1]=d/_,t[2]=c/_)),{k:r,v1:t,v2:s,v3:i}}getEigenForSelection(e,t){let s,i=this.icn3dui,n=new THREE.Vector3,l=[];for(s=0;s0&&Math.abs(l[0].x-e[0].x)<=6&&Math.abs(l[0].y-e[0].y)<=6&&Math.abs(l[0].z-e[0].z)<=6?(p.push(l[0]),m=1):m=0,p.push(e[0]);for(let t=1,s=e.length-1;t0&&Math.abs(r[0].x-e[e.length-1].x)<=6&&Math.abs(r[0].y-e[e.length-1].y)<=6&&Math.abs(r[0].z-e[e.length-1].z)<=6&&(p.push(r[0]),++g),u>1&&Math.abs(r[0].x-r[1].x)<=6&&Math.abs(r[0].y-r[1].y)<=6&&Math.abs(r[0].z-r[1].z)<=6&&(p.push(r[1]),++g);let f=[],C=[],b=[];o&&(g=u>0?u-1:0);let y;for(let e=-1,n=p.length,l=1/s;e<=n-3;++e){y=e-m;let r=p[-1===e?0:e],o=p[e+1],u=p[e+2],v=p[e===n-3?n-1:e+3],_=0,w=a.subdivideCls.getKnot(1,_,r,o),S=a.subdivideCls.getKnot(1,w,o,u),A=a.subdivideCls.getKnot(1,S,u,v);w-_<1e-4&&(w=_+1),S-w<1e-4&&(S=w+1),A-S<1e-4&&(A=S+1),e>-1&&(void 0===i||i[y+1])&&e>=-1+m&&e<=n-3-g+1&&(d=d.concat(f),c=c.concat(C),h=h.concat(b)),f=[],C=[],b=[];let x=(S-w)*l;for(let l=0;l=-1+m&&e<=n-3-g&&i[y+1]&&l<=parseInt(s/2)&&(d.push(new THREE.Vector3(k,O,R)),c.push(i[y+1]),h.push(t[y+1])),e>=-1+m&&e<=n-3-g+1&&i[y+2]&&l>parseInt(s/2)&&(f.push(new THREE.Vector3(k,O,R)),C.push(i[y+2]),b.push(t[y+2]))):e>=-1+m&&e<=n-3-g&&(d.push(new THREE.Vector3(k,O,R)),c.push(y+1),h.push(t[y+1]))}}i&&!i[y+1]||(d=d.concat(f),c=c.concat(C),h=h.concat(b),d.push(p[p.length-1-g]),c.push(p.length-1-g),h.push(t[p.length-1-g])),f=[],C=[],b=[],p=[];let v=[];return v.push(d),v.push(c),v.push(h),v}getKnot(e,t,s,i){return this.icn3dui,s.distanceTo(i)+t}getValueFromKnot(e,t,s,i,n,l,r,o,a){this.icn3dui;let d,c,h=(r-l)/(s-t),p=(o-r)/(i-s),m=(a-o)/(n-i),u=(s+i)*(s+i)-4*(t*s+i*n-t*n);return 0==u?(d=9999,c=9999):(d=6*(3*p*s+2*h*n+m*s-2*h*s-2*p*n-p*i-m*s)/u,c=6*(3*p*i+2*m*t+h*s-2*p*t-2*m*i-h*i-p*s)/u),p*(e-s)+r+((2*d+c)/6/(s-i)*(e-s)*(e-i)*(e-i)+(2*c+d)/6/(i-s)*(e-s)*(e-s)*(e-i))}}class o{constructor(e){this.icn3dui=e}passFloat32(e,t){let s=this.icn3dui,i=e.length;t||(t=new Uint8Array(4*i));let n=s.convertTypeCls.getDataView(t);for(let t=0;t  Very high (pLDDT > 90)
      Confident (90 > pLDDT > 70)
      Low (70 > pLDDT > 50)
      Very low (pLDDT < 50)
    '}setLegendHtml(e){let t=this.icn3dui.icn3d,s="
    ";if(e)s+=this.setAlphaFoldLegend();else{s+="
    "+t.startValue+""+t.midValue+""+t.endValue+"
    "}return s}SetChainsAdvancedMenu(){let e=this.icn3dui,t=e.icn3d;if(void 0===t.bSetChainsAdvancedMenu||!t.bSetChainsAdvancedMenu){let s=e.hashUtilsCls.cloneHash(t.hAtoms);t.definedSetsCls.setPredefinedInMenu(),t.bSetChainsAdvancedMenu=!0,t.hAtoms=e.hashUtilsCls.cloneHash(s)}}setSetsMenus(e,t){let s=this.icn3dui,i=s.icn3d;this.SetChainsAdvancedMenu();let n=e,l=e+"2",r=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+s.pre+n).length&&$("#"+s.pre+n).html(" "+r),!t&&$("#"+s.pre+l).length&&$("#"+s.pre+l).html(" "+r),$("#"+s.pre+n).resizable(),t||$("#"+s.pre+l).resizable()}applyShownMenus(e){let t=this.icn3dui;t.icn3d;let s=[];for(let e in t.htmlCls.allMenus)t.htmlCls.shownMenus.hasOwnProperty(e)?$("#"+t.pre+e).parent().show():($("#"+t.pre+e).parent().hide(),s.push(e));Object.keys(t.htmlCls.shownMenus).length==Object.keys(t.htmlCls.allMenus).length?$(".icn3d-menusep").show():$(".icn3d-menusep").hide(),localStorage&&!e&&localStorage.setItem("hiddenmenus",JSON.stringify(s))}getHiddenMenusFromCache(){let e=this.icn3dui;e.icn3d,e.htmlCls.shownMenus={};let t=localStorage?localStorage.getItem("hiddenmenus"):"";if(t&&"[]"!=t){let s=JSON.parse(t);for(let t in e.htmlCls.allMenus)-1==s.indexOf(t)&&(e.htmlCls.shownMenus[t]=1)}else e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus)}displayShownMenus(){let e=this.icn3dui;e.icn3d;let t="
    ";t+="",t+="";for(let s in e.htmlCls.allMenusSel){if("uniclr"==s.substr(0,6)||"mn5_opacity"==s.substr(0,11)||"mn6_labelscale"==s.substr(0,14)||"faq_"==s.substr(0,4)||"dev_"==s.substr(0,4))continue;"mn1_searchgrooup"==s?t+="
    FileSelectViewStyleColorAnalysisHelp
    ":("mn2_definedsets"==s||"mn2_show_selected"==s||"mn3_proteinwrap"==s||e.cfg.cid&&"mn3_ligwrap"==s||"mn4_clrwrap"==s||"mn6_selectannotations"==s||"abouticn3d"==s)&&(t+="");let i=e.htmlCls.shownMenus.hasOwnProperty(s)?"checked":"",n=e.htmlCls.allMenusSel[s];t+=""+e.htmlCls.allMenus[s]+"
    "}t+="
    ",$("#"+e.pre+"menulist").html(t)}async setIgTemplate(e){let t=this.icn3dui.icn3d;t.bRunRefnumAgain=!0;let s=t.resid2specCls.atoms2residues(Object.keys(t.hAtoms));for(let e=0,i=s.length;e0?"_blank":"_self";window.open(n,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_mmciffile","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmciffile","Please append mmCIF File")})),e.myEventCls.onIds("#"+e.pre+"mn1_mmcifid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmcifid","Please input mmCIF ID")})),e.myEventCls.onIds("#"+e.pre+"mn1_mmdbid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmdbid","Please input MMDB or PDB ID")})),e.myEventCls.onIds(["#"+e.pre+"mn1_mmdbafid",,"#"+e.pre+"tool_mmdbafid"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_mmdbafid","Please input PDB/MMDB/AlphaFold UniProt IDs")})),e.myEventCls.onIds("#"+e.pre+"mn1_blast_rep_id","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_blast_rep_id","Align sequence to structure")})),e.myEventCls.onIds("#"+e.pre+"mn1_esmfold","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_esmfold","Sequence to structure prediction with ESMFold")})),e.myEventCls.onIds("#"+e.pre+"mn1_proteinname","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_proteinname","Please input protein or gene name")})),e.myEventCls.onIds("#"+e.pre+"mn1_cid","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_cid","Please input PubChem Compound")})),e.myEventCls.onIds("#"+e.pre+"mn1_smiles","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_smiles","Please input a chemical SMILES")})),e.myEventCls.onIds("#"+e.pre+"mn1_pngimage","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_pngimage","Please append PNG images")})),e.myEventCls.onIds("#"+e.pre+"mn1_state","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_state","Please input the state file")})),e.myEventCls.onIds("#"+e.pre+"mn1_selection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_selection","Please input the selection file")})),e.myEventCls.onIds("#"+e.pre+"mn1_collection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_selectCollections","Select Collections")})),e.myEventCls.onIds("#"+e.pre+"mn1_dsn6","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_dsn6","Please input the map file to display electron density map")})),e.myEventCls.onIds(["#"+e.pre+"mn1_delphi","#"+e.pre+"mn1_delphi2","#"+e.pre+"tool_delphi"],"click",(function(t){e.icn3d.loadPhiFrom="delphi",$("#"+e.pre+"dl_delphi_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_delphi","Please set parameters to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_phi","click",(function(t){e.icn3d.loadPhiFrom="phi",$("#"+e.pre+"dl_phi_tabs").tabs(),$("#"+e.pre+"phitab1_tabs").tabs(),$("#"+e.pre+"phitab2_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_phi","Please input local phi or cube file to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_phiurl","click",(function(t){e.icn3d.loadPhiFrom="phiurl",$("#"+e.pre+"dl_phiurl_tabs").tabs(),$("#"+e.pre+"phiurltab1_tabs").tabs(),$("#"+e.pre+"phiurltab2_tabs").tabs(),e.htmlCls.dialogCls.openDlg("dl_phiurl","Please input URL phi or cube file to display DelPhi potential map")})),e.myEventCls.onIds("#"+e.pre+"mn1_dsn6url","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_dsn6url","Please input the map file to display electron density map")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportState","click",(function(s){let i=e.icn3d;t.setLogCmd("export state file",!1);let n=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(n+"_statefile.txt","command")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportPdbRes","click",(function(s){e.icn3d,e.htmlCls.setHtmlCls.exportPdb(),t.setLogCmd("export pdb",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSecondary","click",(function(s){e.icn3d,e.htmlCls.setHtmlCls.exportSecondary(),t.setLogCmd("export secondary structure",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphipdb","#"+e.pre+"phipdb"],"click",(function(s){let i=e.icn3d,n=i.saveFileCls.getSelectedResiduePDB();t.setLogCmd("export PDB of selected residues",!1);let l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_icn3d_residues.pdb","text",[n])})),e.myEventCls.onIds(["#"+e.pre+"delphipqr","#"+e.pre+"phipqr","#"+e.pre+"phiurlpqr"],"click",(async function(s){e.icn3d,await e.htmlCls.setHtmlCls.exportPqr(),t.setLogCmd("export pqr",!0)})),e.myEventCls.onIds("#"+e.pre+"profixpdb","click",(async function(s){let i=e.icn3d;await i.scapCls.exportPdbProfix(!1),t.setLogCmd("export pdb missing atoms",!0)})),e.myEventCls.onIds("#"+e.pre+"profixpdbh","click",(async function(s){let i=e.icn3d;await i.scapCls.exportPdbProfix(!0),t.setLogCmd("export pdb hydrogen",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportIgstrand","click",(async function(s){e.icn3d.refnumCls.exportRefnum("igstrand"),t.setLogCmd("export refnum igstrand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportKabat","click",(async function(s){e.icn3d.refnumCls.exportRefnum("kabat"),t.setLogCmd("export refnum kabat",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportImgt","click",(async function(s){e.icn3d.refnumCls.exportRefnum("imgt"),t.setLogCmd("export refnum imgt",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportStl","click",(function(s){let i=e.icn3d;t.setLogCmd("export stl file",!1),i.export3DCls.exportStlFile("")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportVrml","click",(function(s){let i=e.icn3d;t.setLogCmd("export vrml file",!1),i.export3DCls.exportVrmlFile("")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportStlStab","click",(function(s){let i=e.icn3d;t.setLogCmd("export stl stabilizer file",!1),i.threeDPrintCls.hideStabilizer(),i.threeDPrintCls.resetAfter3Dprint(),i.threeDPrintCls.addStabilizer(),i.export3DCls.exportStlFile("_stab")})),e.myEventCls.onIds("#"+e.pre+"mn1_exportVrmlStab","click",(function(s){let i=e.icn3d;t.setLogCmd("export vrml stabilizer file",!1),i.threeDPrintCls.hideStabilizer(),i.threeDPrintCls.resetAfter3Dprint(),i.threeDPrintCls.addStabilizer(),i.export3DCls.exportVrmlFile("_stab")})),e.myEventCls.onIds("#"+e.pre+"mn6_exportInteraction","click",(async function(s){let i=e.icn3d;t.setLogCmd("export interactions",!1),void 0!==e.cfg.mmdbid&&await i.viewInterPairsCls.retrieveInteractionData(),i.viewInterPairsCls.exportInteractions()})),e.myEventCls.onIds(["#"+e.pre+"mn1_exportCanvas","#"+e.pre+"saveimage"],"click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas",!1);await i.shareLinkCls.shareLink(!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas1","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 1",!0),i.scaleFactor=1,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas2","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 2",!0),i.scaleFactor=2,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas4","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 4",!0),i.scaleFactor=4,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCanvas8","click",(async function(s){let i=e.icn3d;t.setLogCmd("export canvas 8",!0),i.scaleFactor=8,await i.shareLinkCls.shareLink(!0,!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportCounts","click",(function(s){let i=e.icn3d;t.setLogCmd("export counts",!1);let n='

    Total Count for atoms with coordinates:
    ';n+="",n+="
    Structure CountChain CountResidue CountAtom Count
    "+Object.keys(i.structures).length+""+Object.keys(i.chains).length+""+Object.keys(i.residues).length+""+Object.keys(i.atoms).length+"

    ",n+="Counts by Chain for atoms with coordinates:
    ";let l=Object.keys(i.chains);for(let e=0,t=l.length;e"}n+="
    StructureChainResidue CountAtom Count
    "+r+""+o+""+Object.keys(a).length+""+Object.keys(i.chains[t]).length+"

    ";let r=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(r+"_counts.html","html",n)})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSelections","click",(function(s){let i=e.icn3d;t.setLogCmd("export all selections",!1),t.SetChainsAdvancedMenu();let n=i.saveFileCls.exportCustomAtoms(),l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_selections.txt","text",[n])})),e.myEventCls.onIds("#"+e.pre+"mn1_exportSelDetails","click",(function(s){let i=e.icn3d;t.setLogCmd("export all selections with details",!1),t.SetChainsAdvancedMenu();let n=i.saveFileCls.exportCustomAtoms(!0),l=Object.keys(i.structures).join(",");i.saveFileCls.saveFile(l+"_sel_details.txt","text",[n])})),e.myEventCls.onIds(["#"+e.pre+"mn1_sharelink","#"+e.pre+"tool_sharelink"],"click",(async function(t){let s=e.icn3d;await s.shareLinkCls.shareLink()})),e.myEventCls.onIds("#"+e.pre+"mn1_replayon","click",(async function(s){let i=e.icn3d;await i.resizeCanvasCls.replayon(),t.setLogCmd("replay on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_replayoff","click",(async function(s){let i=e.icn3d;await i.resizeCanvasCls.replayoff(),t.setLogCmd("replay off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_menuall","click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus),t.applyShownMenus()})),e.myEventCls.onIds("#"+e.pre+"mn1_menusimple","click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.simpleMenus),t.applyShownMenus()})),e.myEventCls.onIds("#"+e.pre+"mn1_menupref","click",(function(s){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_menupref","Select Menus"),t.getHiddenMenusFromCache(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"apply_menupref","#"+e.pre+"apply_menupref2"],"click",(function(s){e.icn3d;var i=document.querySelectorAll('form[name="'+e.pre+'selmenu"] input:checked');for(var n of(e.htmlCls.shownMenus={},i))e.htmlCls.shownMenus[n.value]=1;t.applyShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"reset_menupref","#"+e.pre+"reset_menupref2"],"click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.simpleMenus),t.applyShownMenus(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"reset_menupref_all","#"+e.pre+"reset_menupref_all2"],"click",(function(s){e.icn3d,e.htmlCls.shownMenus=e.hashUtilsCls.cloneHash(e.htmlCls.allMenus),t.applyShownMenus(),t.displayShownMenus()})),e.myEventCls.onIds(["#"+e.pre+"savepref","#"+e.pre+"savepref2"],"click",(function(t){let s=e.icn3d,i="[";var n=document.querySelectorAll('form[name="'+e.pre+'selmenu"] input:not(:checked)');let l=0;for(var r of n)l>0&&(i+=", "),i+='"'+r.value+'"',++l;i+="]",s.saveFileCls.saveFile("icn3d_menus_pref.txt","text",[i])})),e.myEventCls.onIds("#"+e.pre+"reload_menupreffile","click",(function(s){e.icn3d,s.preventDefault(),e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"menupreffile")[0].files[0];if(i){e.htmlCls.setHtmlCls.fileSupport();let s=new FileReader;s.onload=function(s){let i=s.target.result,n=JSON.parse(i);e.htmlCls.shownMenus={};for(let t in e.htmlCls.allMenus)-1==n.indexOf(t)&&(e.htmlCls.shownMenus[t]=1);t.applyShownMenus(),t.displayShownMenus()},s.readAsText(i)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"mn1_menuloadpref","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_menuloadpref","Please input the menu preference file")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_structure","click",(function(t){let s=e.icn3d,i=s.saveFileCls.getLinkToStructureSummary(!0),n=s.structures&&Object.keys(s.structures).length>0?"_blank":"_self";window.open(i,n)})),e.myEventCls.onIds("#"+e.pre+"mn1_alphafold","click",(function(t){e.icn3d;window.open("https://github.com/sokrypton/ColabFold","_blank")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_bind","click",(function(s){let i=e.icn3d,n="https://www.ncbi.nlm.nih.gov/pccompound?LinkName=pccompound_structure&from_uid="+i.inputid;t.setLogCmd("link to 3D protein structures bound to CID "+i.inputid+": "+n,!1);let l=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(n,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_link_vast","click",(function(s){let i,n=e.icn3d;if(void 0===n.inputid)i="https://www.ncbi.nlm.nih.gov/pccompound?term="+n.molTitle,t.setLogCmd("link to compounds "+n.molTitle+": "+i,!1);else if(void 0!==e.cfg.cid)i="https://www.ncbi.nlm.nih.gov/pccompound?LinkName=pccompound_pccompound_3d&from_uid="+n.inputid,t.setLogCmd("link to compounds with structure similar to CID "+n.inputid+": "+i,!1);else{let s=n.inputid.split("_");1===s.length?(i=e.htmlCls.baseUrl+"vastplus/vastplus.cgi?uid="+n.inputid,t.setLogCmd("link to structures similar to "+n.inputid+": "+i,!1)):2===s.length&&(i=e.htmlCls.baseUrl+"vastplus/vastplus.cgi?uid="+s[0],t.setLogCmd("link to structures similar to "+s[0]+": "+i,!1))}let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,l)})),e.myEventCls.onIds("#"+e.pre+"mn1_link_pubmed","click",(function(s){let i,n=e.icn3d;if(void 0===n.inputid){i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+n.molTitle,t.setLogCmd("link to literature about "+n.molTitle+": "+i,!1);let e=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,e)}else if(n.pmid){let e=n.pmid.toString().split("_");1===e.length?(i="https://www.ncbi.nlm.nih.gov/pubmed/"+n.pmid,t.setLogCmd("link to PubMed ID "+n.pmid+": "+i,!1)):2===e.length&&(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+e[0]+" OR "+e[1],t.setLogCmd("link to PubMed IDs "+e[0]+", "+e[1]+": "+i,!1));let s=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,s)}else if(isNaN(n.inputid)){let e=n.inputid.toString().split("_");1===e.length?(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+n.inputid,t.setLogCmd("link to literature about PDB "+n.inputid+": "+i,!1)):2===e.length&&(i="https://www.ncbi.nlm.nih.gov/pubmed/?term="+e[0]+" OR "+e[1],t.setLogCmd("link to literature about PDB "+e[0]+" OR "+e[1]+": "+i,!1));let s=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i,s)}else void 0!==e.cfg.cid?alert("No literature information is available for this compound in the SDF file."):alert("No literature information is available for this structure.")})),e.myEventCls.onIds("#"+e.pre+"mn1_link_protein","click",(function(s){let i=e.icn3d,n=Object.keys(i.structures),l=Object.keys(i.chains),r="";for(let e=0,t=l.length;e0&&(r=r.substr(0,r.length-4));let o="https://www.ncbi.nlm.nih.gov/protein/?term="+r;t.setLogCmd("link to Entrez protein about PDB "+n+": "+o,!1);let a=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(o,a)}))}clickMenu2(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds(["#"+e.pre+"mn6_selectannotations","#"+e.pre+"tool_selectannotations"],"click",(async function(s){let i=e.icn3d;await i.showAnnoCls.showAnnotations(),t.setLogCmd("view annotations",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_selectall","click",(function(s){let i=e.icn3d;t.setLogCmd("select all",!0),i.selectionCls.selectAll(),i.hlUpdateCls.removeHlAll(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearall","click",(function(s){let i=e.icn3d;t.setLogCmd("clear all",!0),i.bSelectResidue=!1,i.selectionCls.selectAll(),i.hlUpdateCls.removeHlAll(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_selectdisplayed","click",(function(s){let i=e.icn3d;t.setLogCmd("select displayed set",!0),i.hAtoms=e.hashUtilsCls.cloneHash(i.viewSelectionAtoms),i.hlUpdateCls.updateHlAll()})),e.myEventCls.onIds("#"+e.pre+"mn2_clashedYes","click",(function(s){let i=e.icn3d;i.bHideClashed=!1,i.annoDomainCls.showHideClashedResidues(),i.drawCls.draw(),t.setLogCmd("clashed residues show",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_clashedNo","click",(function(s){let i=e.icn3d;i.bHideClashed=!0,t.setClashedResidues(),i.annoDomainCls.showHideClashedResidues(),i.drawCls.draw(),t.setLogCmd("clashed residues hide",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_fullstru","click",(function(s){let i=e.icn3d;t.setLogCmd("show all",!0),i.selectionCls.showAll()})),e.myEventCls.onIds("#"+e.pre+"mn2_selectcomplement","click",(function(s){let i=e.icn3d;Object.keys(i.hAtoms).lengthnon-selected"+n),$("#"+e.pre+"atomsCustomSphere2").length&&$("#"+e.pre+"atomsCustomSphere2").html(" "+n),e.htmlCls.dialogCls.openDlg("dl_aroundsphere","Select a sphere around a set of residues"),i.bSphereCalc=!1,$("#"+e.pre+"atomsCustomSphere").resizable(),$("#"+e.pre+"atomsCustomSphere2").resizable()})),e.myEventCls.onIds(["#"+e.pre+"mn2_select_chain","#"+e.pre+"definedSets"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_select_chain","Select Structure/Chain/Custom Selection")}))}clickMenu3(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsRibbon","#"+e.pre+"tool_proteinsRibbon"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","ribbon"),t.setLogCmd("style proteins ribbon",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsStrand","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","strand"),t.setLogCmd("style proteins strand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsCylinder","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","cylinder and plate"),t.setLogCmd("style proteins cylinder and plate",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","schematic"),t.setLogCmd("style proteins schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsCalpha","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","c alpha trace"),t.setLogCmd("style proteins c alpha trace",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsBackbone","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","backbone"),t.setLogCmd("style proteins backbone",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsBfactor","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","b factor tube"),t.setLogCmd("style proteins b factor tube",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsLines","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","lines"),t.setLogCmd("style proteins lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsStick","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","stick"),t.setLogCmd("style proteins stick",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsBallstick","#"+e.pre+"tool_proteinsBallstick"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","ball and stick"),t.setLogCmd("style proteins ball and stick",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn3_proteinsSphere","#"+e.pre+"tool_proteinsSphere"],"click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","sphere"),t.setLogCmd("style proteins sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_proteinsNo","click",(function(s){e.icn3d.setOptionCls.setStyle("proteins","nothing"),t.setLogCmd("style proteins nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecLines","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","lines2"),t.setLogCmd("style sidec lines2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecStick","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","stick2"),t.setLogCmd("style sidec stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","ball and stick2"),t.setLogCmd("style sidec ball and stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","sphere2"),t.setLogCmd("style sidec sphere2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_sidecNo","click",(function(s){e.icn3d.setOptionCls.setStyle("sidec","nothing"),t.setLogCmd("style sidec nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseLines","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","lines2"),t.setLogCmd("style ntbase lines2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseStick","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","stick2"),t.setLogCmd("style ntbase stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","ball and stick2"),t.setLogCmd("style ntbase ball and stick2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","sphere2"),t.setLogCmd("style ntbase sphere2",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ntbaseNo","click",(function(s){e.icn3d.setOptionCls.setStyle("ntbase","nothing"),t.setLogCmd("style ntbase nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclCartoon","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","nucleotide cartoon"),t.setLogCmd("style nucleotides nucleotide cartoon",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclBackbone","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","backbone"),t.setLogCmd("style nucleotides backbone",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","schematic"),t.setLogCmd("style nucleotides schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclPhos","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","o3 trace"),t.setLogCmd("style nucleotides o3 trace",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclLines","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","lines"),t.setLogCmd("style nucleotides lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclStick","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","stick"),t.setLogCmd("style nucleotides stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","ball and stick"),t.setLogCmd("style nucleotides ball and stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","sphere"),t.setLogCmd("style nucleotides sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_nuclNo","click",(function(s){e.icn3d.setOptionCls.setStyle("nucleotides","nothing"),t.setLogCmd("style nucleotides nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligLines","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","lines"),t.setLogCmd("style chemicals lines",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligStick","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","stick"),t.setLogCmd("style chemicals stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligBallstick","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","ball and stick"),t.setLogCmd("style chemicals ball and stick",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligSchematic","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","schematic"),t.setLogCmd("style chemicals schematic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","sphere"),t.setLogCmd("style chemicals sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ligNo","click",(function(s){e.icn3d.setOptionCls.setStyle("chemicals","nothing"),t.setLogCmd("style chemicals nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_glycansCartYes","click",(function(s){let i=e.icn3d;i.bGlycansCartoon=!0,i.drawCls.draw(),t.setLogCmd("glycans cartoon yes",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_glycansCartNo","click",(function(s){let i=e.icn3d;i.bGlycansCartoon=!1,i.drawCls.draw(),t.setLogCmd("glycans cartoon no",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_hydrogensYes","click",(function(s){let i=e.icn3d;i.showInterCls.showHydrogens(),i.drawCls.draw(),t.setLogCmd("hydrogens",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_hydrogensNo","click",(function(s){let i=e.icn3d;i.showInterCls.hideHydrogens(),i.drawCls.draw(),t.setLogCmd("set hydrogens off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","sphere"),t.setLogCmd("style ions sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsDot","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","dot"),t.setLogCmd("style ions dot",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_ionsNo","click",(function(s){e.icn3d.setOptionCls.setStyle("ions","nothing"),t.setLogCmd("style ions nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterSphere","click",(function(s){e.icn3d.setOptionCls.setStyle("water","sphere"),t.setLogCmd("style water sphere",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterDot","click",(function(s){e.icn3d.setOptionCls.setStyle("water","dot"),t.setLogCmd("style water dot",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_waterNo","click",(function(s){e.icn3d.setOptionCls.setStyle("water","nothing"),t.setLogCmd("style water nothing",!0)}))}clickMenu4(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrum","click",(function(s){e.icn3d.setOptionCls.setOption("color","spectrum"),t.setLogCmd("color spectrum",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumChain","click",(function(s){e.icn3d.setOptionCls.setOption("color","spectrum for chains"),t.setLogCmd("color spectrum for chains",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumAcrossSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorSpectrumAcross").length&&$("#"+e.pre+"atomsCustomColorSpectrumAcross").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorspectrumacrosssets","Please select sets to apply spectrum color for sets"),$("#"+e.pre+"atomsCustomColorSpectrumAcross").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSpectrumSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorSpectrum").length&&$("#"+e.pre+"atomsCustomColorSpectrum").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorspectrumbysets","Please select sets to apply spectrum color for residues"),$("#"+e.pre+"atomsCustomColorSpectrum").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbowAcrossSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorRainbowAcross").length&&$("#"+e.pre+"atomsCustomColorRainbowAcross").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorrainbowacrosssets","Please select sets to apply rainbow color for sets"),$("#"+e.pre+"atomsCustomColorRainbowAcross").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbowSets","click",(function(s){let i=e.icn3d;t.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomColorRainbow").length&&$("#"+e.pre+"atomsCustomColorRainbow").html(n),i.bRender&&e.htmlCls.dialogCls.openDlg("dl_colorrainbowbysets","Please select sets to apply rainbow color for residues"),$("#"+e.pre+"atomsCustomColorRainbow").resizable()})),e.myEventCls.onIds("#"+e.pre+"mn4_clrRainbow","click",(function(s){e.icn3d.setOptionCls.setOption("color","rainbow"),t.setLogCmd("color rainbow",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrRainbowChain","#"+e.pre+"tool_clrRainbowChain"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","rainbow for chains"),t.setLogCmd("color rainbow for chains",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrChain","#"+e.pre+"tool_clrChain"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","chain"),t.setLogCmd("color chain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrStructure","click",(function(s){e.icn3d.setOptionCls.setOption("color","structure"),t.setLogCmd("color structure",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrdomain","click",(function(s){e.icn3d.setOptionCls.setOption("color","domain"),t.setLogCmd("color domain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrsets","click",(function(s){e.icn3d.setOptionCls.setOption("color","defined sets"),t.setLogCmd("color defined sets",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrSSGreen","#"+e.pre+"tool_clrSSGreen"],"click",(function(s){let i=e.icn3d;i.sheetcolor="green",i.setOptionCls.setOption("color","secondary structure green"),t.setLogCmd("color secondary structure green",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSSYellow","click",(function(s){let i=e.icn3d;i.sheetcolor="yellow",i.setOptionCls.setOption("color","secondary structure yellow"),t.setLogCmd("color secondary structure yellow",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSSSpectrum","click",(function(s){e.icn3d.setOptionCls.setOption("color","secondary structure spectrum"),t.setLogCmd("color secondary structure spectrum",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrResidue","click",(function(s){e.icn3d.setOptionCls.setOption("color","residue"),t.setLogCmd("color residue",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrResidueCustom","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_rescolorfile","Please input the file on residue colors")})),e.myEventCls.onIds("#"+e.pre+"reload_rescolorfile","click",(function(s){let i=e.icn3d;s.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"rescolorfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let s=new FileReader;s.onload=function(s){let n=s.target.result.replace(/#/g,"");i.customResidueColors=JSON.parse(n);for(let t in i.customResidueColors)i.customResidueColors[t.toUpperCase()]=e.parasCls.thr("#"+i.customResidueColors[t]);i.setOptionCls.setOption("color","residue custom"),t.setLogCmd("color residue custom | "+n,!0)},s.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_customcolorfile","click",(function(s){let i=e.icn3d;s.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.startColor=$("#"+e.pre+"startColor").val(),i.midColor=$("#"+e.pre+"midColor").val(),i.endColor=$("#"+e.pre+"endColor").val();let n=t.setLegendHtml();$("#"+e.pre+"dl_legend_html").html(n),e.htmlCls.dialogCls.openDlg("dl_legend","Color range"),i.addTrackCls.setCustomFile("color",i.startColor,i.midColor,i.endColor)})),e.myEventCls.onIds("#"+e.pre+"mn6_customref","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_customref","Set custom reference numbers")})),e.myEventCls.onIds("#"+e.pre+"reload_customreffile","click",(function(s){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=$("#"+i.pre+"cstreffile")[0].files[0];if(n){e.utilsCls.checkFileAPI();let s=new FileReader;s.onload=async function(e){let s=e.target.result;await i.refnumCls.parseCustomRefFile(s),s=s.replace(/\r/g,"").replace(/\n/g,"\\n"),t.setLogCmd("custom refnum | "+s,!0)},s.readAsText(n)}else alert("Please select a file before clicking 'Apply'")})),e.myEventCls.onIds("#"+e.pre+"remove_legend","click",(function(s){e.icn3d,s.preventDefault(),$("#"+e.pre+"legend").hide(),t.setLogCmd("remove legend",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_customtubefile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.addTrackCls.setCustomFile("tube")})),e.myEventCls.onIds("#"+e.pre+"mn4_clrCharge","click",(function(s){e.icn3d.setOptionCls.setOption("color","charge"),t.setLogCmd("color charge",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrHydrophobic","click",(function(s){e.icn3d.setOptionCls.setOption("color","hydrophobic"),t.setLogCmd("color hydrophobic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrNormalizedHP","click",(function(s){e.icn3d.setOptionCls.setOption("color","normalized hydrophobic"),t.setLogCmd("color normalized hydrophobic",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn4_clrAtom","#"+e.pre+"tool_clrAtom"],"click",(function(s){e.icn3d.setOptionCls.setOption("color","atom"),t.setLogCmd("color atom",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrBfactor","click",(function(s){e.icn3d.setOptionCls.setOption("color","b factor"),t.setLogCmd("color b factor",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrConfidence","click",(function(s){e.icn3d.setOptionCls.setOption("color","confidence"),t.setLogCmd("color confidence",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIgstrand","click",(function(s){e.icn3d.setOptionCls.setOption("color","ig strand"),t.setLogCmd("color ig strand",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIgproto","click",(function(s){e.icn3d.setOptionCls.setOption("color","ig protodomain"),t.setLogCmd("color ig protodomain",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrArea","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_colorbyarea","Color based on residue's solvent accessibility")})),e.myEventCls.onIds("#"+e.pre+"applycolorbyarea","click",(function(s){let i=e.icn3d;i.midpercent=$("#"+e.pre+"midpercent").val(),i.setOptionCls.setOption("color","area"),t.setLogCmd("color area | "+i.midpercent,!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrBfactorNorm","click",(function(s){e.icn3d.setOptionCls.setOption("color","b factor percentile"),t.setLogCmd("color b factor percentile",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrIdentity","click",(function(s){e.icn3d.setOptionCls.setOption("color","identity"),t.setLogCmd("color identity",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrConserved","click",(function(s){e.icn3d.setOptionCls.setOption("color","conservation"),t.setLogCmd("color conservation",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrCustom","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_clr","Color picker")})),$(document).on("click",".icn3d-color-rad-text",(function(s){let i=e.icn3d;s.stopImmediatePropagation();let n=$(this).attr("color");i.setOptionCls.setOption("color",n),t.setLogCmd("color "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrSave","click",(function(s){e.icn3d.setOptionCls.saveColor(),t.setLogCmd("save color",!0)})),e.myEventCls.onIds("#"+e.pre+"mn4_clrApplySave","click",(function(s){e.icn3d.setOptionCls.applySavedColor(),t.setLogCmd("apply saved color",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_styleSave","click",(function(s){e.icn3d.setOptionCls.saveStyle(),t.setLogCmd("save style",!0)})),e.myEventCls.onIds("#"+e.pre+"mn3_styleApplySave","click",(function(s){e.icn3d.setOptionCls.applySavedStyle(),t.setLogCmd("apply saved style",!0)}))}clickMenu5(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t=this;e.myEventCls.onIds("#"+e.pre+"mn5_neighborsYes","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.applyMapCls.removeLastSurface(),i.applyMapCls.applySurfaceOptions(),i.bRender&&i.drawCls.render(),t.setLogCmd("set surface neighbors on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_neighborsNo","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.applyMapCls.removeLastSurface(),i.applyMapCls.applySurfaceOptions(),i.bRender&&i.drawCls.render(),t.setLogCmd("set surface neighbors off",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn5_surfaceVDW","#"+e.pre+"tool_surfaceVDW"],"click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","Van der Waals surface"),t.setLogCmd("set surface Van der Waals surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceSAS","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","solvent accessible surface"),t.setLogCmd("set surface solvent accessible surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceMolecular","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!1,i.setOptionCls.setOption("surface","molecular surface"),t.setLogCmd("set surface molecular surface",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceVDWContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","Van der Waals surface with context"),t.setLogCmd("set surface Van der Waals surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceSASContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","solvent accessible surface with context"),t.setLogCmd("set surface solvent accessible surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceMolecularContext","click",(function(s){let i=e.icn3d;i.bConsiderNeighbors=!0,i.setOptionCls.setOption("surface","molecular surface with context"),t.setLogCmd("set surface molecular surface with context",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_surfaceNo","click",(function(s){e.icn3d.setOptionCls.setOption("surface","nothing"),t.setLogCmd("set surface nothing",!0)})),$(document).on("click","."+e.pre+"mn5_opacity",(function(s){let i=e.icn3d;i.transparentRenderOrder=!1;let n=$(this).attr("v");i.setOptionCls.setOption("opacity",n),t.setLogCmd("set surface opacity "+n,!0)})),$(document).on("click","."+e.pre+"mn5_opacityslow",(function(s){let i=e.icn3d;i.transparentRenderOrder=!0;let n=$(this).attr("v");i.setOptionCls.setOption("opacity",n),t.setLogCmd("set surface2 opacity "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_wireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("wireframe","yes"),t.setLogCmd("set surface wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_wireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("wireframe","no"),t.setLogCmd("set surface wireframe off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_elecmap2fofc","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_elecmap2fofc","2Fo-Fc Electron Density Map")})),e.myEventCls.onIds("#"+e.pre+"mn5_elecmapfofc","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_elecmapfofc","Fo-Fc Electron Density Map")})),e.myEventCls.onIds(["#"+e.pre+"mn5_elecmapNo","#"+e.pre+"elecmapNo2","#"+e.pre+"elecmapNo3","#"+e.pre+"elecmapNo4","#"+e.pre+"elecmapNo5"],"click",(function(s){e.icn3d.setOptionCls.setOption("map","nothing"),t.setLogCmd("setoption map nothing",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphimapNo","#"+e.pre+"phimapNo","#"+e.pre+"phiurlmapNo","#"+e.pre+"mn1_phimapNo"],"click",(function(s){e.icn3d.setOptionCls.setOption("phimap","nothing"),t.setLogCmd("setoption phimap nothing",!0)})),e.myEventCls.onIds(["#"+e.pre+"delphimapNo2","#"+e.pre+"phimapNo2","#"+e.pre+"phiurlmapNo2"],"click",(function(s){e.icn3d.setOptionCls.setOption("phisurface","nothing"),t.setLogCmd("setoption phisurface nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"applymap2fofc","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"sigma2fofc").val());await i.densityCifParserCls.densityCifParser(i.inputid,"2fofc",n),t.setLogCmd("set map 2fofc sigma "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applymapfofc","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"sigmafofc").val());await i.densityCifParserCls.densityCifParser(i.inputid,"fofc",sigma2fofc),t.setLogCmd("set map fofc sigma "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_mapwireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("mapwireframe","yes"),t.setLogCmd("set map wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_mapwireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("mapwireframe","no"),t.setLogCmd("set map wireframe off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmap","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_emmap","EM Density Map")})),e.myEventCls.onIds(["#"+e.pre+"mn5_emmapNo","#"+e.pre+"emmapNo2"],"click",(function(s){e.icn3d.setOptionCls.setOption("emmap","nothing"),t.setLogCmd("setoption emmap nothing",!0)})),e.myEventCls.onIds("#"+e.pre+"applyemmap","click",(async function(s){let i=e.icn3d;s.preventDefault();let n=parseFloat($("#"+e.pre+"empercentage").val());await i.densityCifParserCls.densityCifParser(i.inputid,"em",n,i.emd),t.setLogCmd("set emmap percentage "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmapwireframeYes","click",(function(s){e.icn3d.setOptionCls.setOption("emmapwireframe","yes"),t.setLogCmd("set emmap wireframe on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn5_emmapwireframeNo","click",(function(s){e.icn3d.setOptionCls.setOption("emmapwireframe","no"),t.setLogCmd("set emmap wireframe off",!0)}))}clickMenu6(){let e=this.icn3dui,t=e.icn3d;if(e.bNode)return;let s=this;e.myEventCls.onIds("#"+e.pre+"mn6_assemblyYes","click",(function(t){let i=e.icn3d;i.bAssembly=!0,s.setLogCmd("set assembly on",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_assemblyNo","click",(function(t){let i=e.icn3d;i.bAssembly=!1,s.setLogCmd("set assembly off",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefYes","click",(async function(t){let i=e.icn3d;i.bRunRefnumAgain=!0,s.setLogCmd("ig refnum on",!0),i.bAnnoShown||await i.showAnnoCls.showAnnotations();await i.annotationCls.setAnnoTabIg(!0),i.bRunRefnumAgain=!1})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefTpl","click",(async function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_igrefTpl","Choose an Ig template")})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefTpl_apply","click",(async function(t){e.icn3d,e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"refTpl").val();await s.setIgTemplate(i),s.setLogCmd("ig template "+i,!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_alignrefTpl","click",(async function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_alignrefTpl","Align with an Ig template")})),e.myEventCls.onIds("#"+e.pre+"mn6_alignrefTpl_apply","click",(async function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"refTpl2").val(),l=e.hashUtilsCls.cloneHash(i.hAtoms),r=e.htmlCls.baseUrl+"icn3d/refpdb/"+n+".pdb";await i.pdbParserCls.downloadUrl(r,"pdb",void 0,n),s.setLogCmd("load url "+r+" | type pdb",!0);let o=n.replace(/_/g,"").substr(0,4),a=i.structures[o][0];i.hAtoms=e.hashUtilsCls.unionHash(l,i.chains[a]),e.cfg.aligntool="tmalign",await i.realignParserCls.realignOnStructAlign(),s.setLogCmd("realign on tmalign",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_igrefNo","click",(async function(t){let i=e.icn3d;s.setLogCmd("ig refnum off",!0),await i.refnumCls.hideIgRefNum()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelAtoms","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addAtomLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add atom labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelElements","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addAtomLabels(i.hAtoms,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add element labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelResidues","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add residue labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelResnum","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms,void 0,void 0,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add residue number labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelRefnum","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addResidueLabels(i.hAtoms,void 0,void 0,void 0,!0),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add reference number labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelIg","click",(function(t){let i=e.icn3d;i.residueLabelsCls.addIgLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add ig labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelChains","click",(function(t){let i=e.icn3d;i.analysisCls.addChainLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add chain labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelTermini","click",(function(t){let i=e.icn3d;i.analysisCls.addTerminiLabels(i.hAtoms),i.selectionCls.saveSelectionIfSelected(),s.setLogCmd("add terminal labels",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelYes","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_addlabel","Add custom labels by selection"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn6_addlabelSelection","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_addlabelselection","Add custom labels by the selected")})),e.myEventCls.onIds("#"+e.pre+"mn6_labelColor","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_labelColor","Change color for all labels")})),e.myEventCls.onIds(["#"+e.pre+"mn2_saveselection","#"+e.pre+"tool_saveselection"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_saveselection","Save the selected")})),e.myEventCls.onIds(["#"+e.pre+"mn6_addlabelNo","#"+e.pre+"removeLabels"],"click",(function(t){let i=e.icn3d;i.labelcolor=void 0,i.pickpair=!1;s.setLogCmd("set labels off",!0);for(let e in i.labels)i.labels[e]=[];i.drawCls.draw()})),$(document).on("click","."+e.pre+"mn6_labelscale",(function(t){let i=e.icn3d,n=$(this).attr("v");i.labelScale=n,i.drawCls.draw(),s.setLogCmd("set label scale "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_distanceYes","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_distance","Measure the distance of atoms"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0,s.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distTwoSets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_disttwosets","Measure the distance between two sets"),s.setSetsMenus("atomsCustomDist"),i.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distManySets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_distmanysets","Measure the pairwise distances among many sets"),s.setSetsMenus("atomsCustomDistTable"),i.bMeasureDistance=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_angleManySets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_anglemanysets","Measure the pairwise angles among many sets"),s.setSetsMenus("atomsCustomAngleTable"),i.bMeasureAngle=!0})),e.myEventCls.onIds("#"+e.pre+"mn6_distanceNo","click",(function(t){let i=e.icn3d;i.pickpair=!1;s.setLogCmd("set lines off",!0),i.labels.distance=[],i.lines.distance=[],i.distPnts=[],i.pk=2,i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn5_cartoonshape","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_cartoonshape","Draw cartoon for a set");s.setSetsMenus("cartoonshape",!0),i.bCartoonshape=!0})),e.myEventCls.onIds("#"+e.pre+"mn5_linebtwsets","click",(function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_linebtwsets","Draw a line between two sets"),s.setSetsMenus("linebtwsets"),i.bLinebtwsets=!0})),e.myEventCls.onIds(["#"+e.pre+"mn2_selectedcenter","#"+e.pre+"zoomin_selection","#"+e.pre+"tool_selectedcenter"],"click",(function(t){let i=e.icn3d;i.transformCls.zoominSelection(),i.drawCls.draw(),s.setLogCmd("zoom selection",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_center","click",(function(t){let i=e.icn3d;i.applyCenterCls.centerSelection(),i.drawCls.draw(),s.setLogCmd("center selection",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_resetOrientation","#"+e.pre+"resetOrientation","#"+e.pre+"tool_resetOrientation"],"click",(function(t){let i=e.icn3d;i.transformCls.resetOrientation(),i.drawCls.draw(),s.setLogCmd("reset orientation",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_chemicalbindingshow","#"+e.pre+"chemicalbindingshow"],"click",(function(t){e.icn3d.setOptionCls.setOption("chemicalbinding","show"),s.setLogCmd("set chemicalbinding show",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_chemicalbindinghide","#"+e.pre+"chemicalbindinghide"],"click",(function(t){e.icn3d.setOptionCls.setOption("chemicalbinding","hide"),s.setLogCmd("set chemicalbinding hide",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_sidebyside","click",(function(t){let i=e.icn3d;if(i.bInputfile)return void alert("Side-by-Side does NOT work when the input is from a local file.");let n=i.shareLinkCls.shareLinkUrl(void 0);n=n.replace("icn3d/full.html?","icn3d/full2.html?"),n=n.replace("icn3d/?","icn3d/full2.html?"),n+="&closepopup=1";let l=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open(n,l),s.setLogCmd("side by side | "+n,!0)})),$(document).on("click","#"+e.pre+"mn2_translate",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_translate","Translate the X,Y,Z coordinates of the structure")})),$(document).on("click","#"+e.pre+"mn6_angleTwoSets",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_angle","Measure the angle between two vectors")})),$(document).on("click","#"+e.pre+"mn2_matrix",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_matrix","Apply matrix to the X,Y,Z coordinates of the structure")})),$(document).on("click","."+e.pre+"mn6_rotate",(function(t){let i=e.icn3d,n=$(this).attr("v").toLowerCase(),l=n.split(" ")[1];s.setLogCmd(n,!0),i.bStopRotate=!1,i.transformCls.rotateCount=0,i.transformCls.rotateCountMax=6e3,i.ROT_DIR=l,i.resizeCanvasCls.rotStruc(l)})),$(document).on("click","."+e.pre+"mn6_rotate90",(function(t){let i,n=e.icn3d,l=$(this).attr("v").toLowerCase(),r=l.split(" ")[1];s.setLogCmd(l,!0),"x"==r?i=new THREE.Vector3(1,0,0):"y"==r?i=new THREE.Vector3(0,1,0):"z"==r&&(i=new THREE.Vector3(0,0,1));let o=.5*Math.PI;n.transformCls.setRotation(i,o)})),e.myEventCls.onIds("#"+e.pre+"mn6_cameraPers","click",(function(t){e.icn3d.setOptionCls.setOption("camera","perspective"),s.setLogCmd("set camera perspective",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_cameraOrth","click",(function(t){e.icn3d.setOptionCls.setOption("camera","orthographic"),s.setLogCmd("set camera orthographic",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdBlack","click",(function(t){e.icn3d.setStyleCls.setBackground("black")})),e.myEventCls.onIds("#"+e.pre+"tool_bkgd","click",(function(t){let s=e.icn3d;"black"==s.opts.background?s.setStyleCls.setBackground("white"):s.setStyleCls.setBackground("black")})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdGrey","click",(function(t){e.icn3d.setStyleCls.setBackground("grey")})),e.myEventCls.onIds(["#"+e.pre+"mn6_bkgdWhite","#"+e.pre+"tool_bkgdWhite"],"click",(function(t){e.icn3d.setStyleCls.setBackground("white")})),e.myEventCls.onIds("#"+e.pre+"mn6_bkgdTransparent","click",(function(t){e.icn3d.setStyleCls.setBackground("transparent")})),e.myEventCls.onIds("#"+e.pre+"mn6_showfogYes","click",(function(t){let i=e.icn3d;i.opts.fog="yes",i.fogCls.setFog(!0),i.drawCls.draw(),s.setLogCmd("set fog on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showfogNo","click",(function(t){let i=e.icn3d;i.opts.fog="no",i.fogCls.setFog(!0),i.drawCls.draw(),s.setLogCmd("set fog off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showslabYes","click",(function(t){e.icn3d.setOptionCls.setOption("slab","yes"),s.setLogCmd("set slab on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showslabNo","click",(function(t){e.icn3d.setOptionCls.setOption("slab","no"),s.setLogCmd("set slab off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisYes","click",(function(t){e.icn3d.setOptionCls.setOption("axis","yes"),s.setLogCmd("set axis on",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisSel","click",(function(t){let i=e.icn3d;i.pc1=!0,i.axesCls.setPc1Axes(),s.setLogCmd("set pc1 axis",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_showaxisNo","click",(function(t){let i=e.icn3d;i.pc1=!1,i.axes=[],i.setOptionCls.setOption("axis","no"),s.setLogCmd("set axis off",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_symmetry","click",(async function(t){let s=e.icn3d;s.bAxisOnly=!1,await s.symdCls.retrieveSymmetry(Object.keys(s.structures)[0])})),e.myEventCls.onIds("#"+e.pre+"mn6_symd","click",(async function(t){let i=e.icn3d;i.bAxisOnly=!1,await i.symdCls.retrieveSymd(),i.bSymd=!0,s.setLogCmd("symd symmetry",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_clear_sym","click",(function(t){let i=e.icn3d;i.symdArray=[],i.drawCls.draw(),s.setLogCmd("clear symd symmetry",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_axes_only","click",(function(t){let i=e.icn3d;i.bAxisOnly=!0,i.drawCls.draw(),s.setLogCmd("show axis",!0)})),e.myEventCls.onIds("#"+e.pre+"mn6_area","click",(function(t){e.icn3d.analysisCls.calculateArea(),s.setLogCmd("area",!0)})),e.myEventCls.onIds("#"+e.pre+"applysymmetry","click",(function(t){let i=e.icn3d;i.bAxisOnly=!1;let n=$("#"+e.pre+"selectSymmetry").val();i.symmetrytitle="none"===n?void 0:n,i.drawCls.draw(),s.setLogCmd("symmetry "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"clearsymmetry","click",(function(t){let i=e.icn3d;i.symmetrytitle=void 0,i.drawCls.draw(),s.setLogCmd("symmetry none",!0)})),e.myEventCls.onIds(["#"+e.pre+"mn6_hbondsYes","#"+e.pre+"hbondsYes"],"click",(function(t){let i=e.icn3d;s.SetChainsAdvancedMenu();let n=i.definedSetsCls.setAtomMenu(["protein"]);$("#"+e.pre+"atomsCustomHbond").length&&$("#"+e.pre+"atomsCustomHbond").html(" "+n),$("#"+e.pre+"atomsCustomHbond2").length&&$("#"+e.pre+"atomsCustomHbond2").html(" "+n),e.htmlCls.dialogCls.openDlg("dl_hbonds","Hydrogen bonds/interactions between two sets of atoms"),i.bHbondCalc=!1,$("#"+e.pre+"atomsCustomHbond").resizable(),$("#"+e.pre+"atomsCustomHbond2").resizable()})),e.myEventCls.onIds(["#"+e.pre+"mn6_contactmap"],"click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_contact","Set contact map")})),e.myEventCls.onIds(["#"+e.pre+"mn6_DSSP"],"click",(async function(t){let i=e.icn3d;s.setLogCmd("set dssp sse",!0),await i.pdbParserCls.applyCommandDssp(),i.bResetAnno=!0,i.bAnnoShown&&(await i.showAnnoCls.showAnnotations(),i.annotationCls.resetAnnoTabAll())})),e.myEventCls.onIds("#"+e.pre+"mn6_hbondsNo","click",(function(t){let s=e.icn3d;s.showInterCls.hideHbondsContacts(),s.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerYes","click",(function(t){let i=e.icn3d;i.threeDPrintCls.addStabilizer(),i.threeDPrintCls.prepareFor3Dprint(),s.setLogCmd("stabilizer",!0)})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerNo","click",(function(t){let i=e.icn3d;s.setLogCmd("set stabilizer off",!0),i.threeDPrintCls.hideStabilizer(),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerOne","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_stabilizer","Add One Stabilizer"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn1_stabilizerRmOne","click",(function(t){let s=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_stabilizer_rm","Remove One Stabilizer"),s.pk=1,s.opts.pk="atom",s.pickpair=!0,s.pAtomNum=0})),e.myEventCls.onIds("#"+e.pre+"mn1_thicknessSet","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_thickness","Set Thickness for 3D Printing")})),e.myEventCls.onIds("#"+e.pre+"mn3_setThickness","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_thickness2","Style Preferences")})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsYes","click",(function(t){let i=e.icn3d;s.setLogCmd("disulfide bonds",!0),i.showInterCls.showSsbonds()})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsExport","click",(function(t){e.icn3d.viewInterPairsCls.exportSsbondPairs(),s.setLogCmd("export disulfide bond pairs",!1)})),e.myEventCls.onIds("#"+e.pre+"mn6_ssbondsNo","click",(function(t){let i=e.icn3d;i.opts.ssbonds="no";s.setLogCmd("set disulfide bonds off",!0),i.lines.ssbond=[],i.setOptionCls.setStyle("sidec","nothing")})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsYes","click",(function(t){let i=e.icn3d;s.setLogCmd("cross linkage",!0),i.showInterCls.showClbonds()})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsExport","click",(function(t){e.icn3d.viewInterPairsCls.exportClbondPairs(),s.setLogCmd("export cross linkage pairs",!1)})),e.myEventCls.onIds("#"+e.pre+"mn6_clbondsNo","click",(function(t){let i=e.icn3d;i.opts.clbonds="no";s.setLogCmd("set cross linkage off",!0),i.lines.clbond=[],i.setOptionCls.setStyle("sidec","nothing")})),$("#"+e.pre+"newvs2").on("submit",(function(){let s=t.saveFileCls.getAtomPDB(t.hAtoms,void 0,void 0,void 0,void 0,void 0,void 0,!0);return $("#"+e.pre+"pdbstr").val(s),!0})),$("#"+e.pre+"fssubmit").on("click",(function(){let e=t.saveFileCls.getAtomPDB(t.hAtoms),s=window.open("","_blank");s.document.body.innerHTML="\n\nLoading Foldseek\n\n\n\n
    Foldseek is loading...
    \n",$.ajax({url:"https://search.foldseek.com/api/ticket",type:"POST",data:{q:e,database:["afdb50","afdb-swissprot","gmgcl_id","pdb100","afdb-proteome","mgnify_esm30"],mode:"3diaa"},dataType:"text",success:function(e){s.location="https://search.foldseek.com/queue/"+JSON.parse(e).id},error:function(e,t,s){console.log("Error in submitting data to Foldseek...")}})})),e.myEventCls.onIds("#"+e.pre+"jn_copy","click",(function(t){e.icn3d;let s=$("#"+e.pre+"jn_commands").val();navigator.clipboard.writeText(s)}))}setLogCmd(e,t,s){var i=this.icn3dui,n=i.icn3d;if(""===e.trim())return!1;let l=e.indexOf("|||");-1!==l&&(e=e.substr(0,l));let r={};if(n.quaternion||(n._zoomFactor=1,n.mouseChange=new THREE.Vector2(0,0),n.quaternion=new THREE.Quaternion(0,0,0,1)),r.factor=n._zoomFactor,r.mouseChange=n.mouseChange,r.quaternion={},r.quaternion._x=parseFloat(n.quaternion._x).toPrecision(5),r.quaternion._y=parseFloat(n.quaternion._y).toPrecision(5),r.quaternion._z=parseFloat(n.quaternion._z).toPrecision(5),r.quaternion._w=parseFloat(n.quaternion._w).toPrecision(5),t&&n.bAddCommands)if(n.STATENUMBER "+n.logs.join("\n> ")+"\n> "),$("#"+i.pre+"logtext")[0]&&$("#"+i.pre+"logtext").scrollTop($("#"+i.pre+"logtext")[0].scrollHeight)}n.setStyleCls.adjustIcon()}}class d{constructor(e){this.icn3dui=e}getLink(e,t,s,i){return this.icn3dui.htmlCls.setHtmlCls.getLink(e,t,s,i)}getMenuText(e,t,s,i,n){return this.icn3dui.htmlCls.setHtmlCls.getMenuText(e,t,s,i,n)}getMenuUrl(e,t,s,i,n){return this.icn3dui.htmlCls.setHtmlCls.getMenuUrl(e,t,s,i,n)}getMenuSep(){return this.icn3dui.htmlCls.setHtmlCls.getMenuSep()}getLinkWrapper(e,t,s,i,n,l){let r=this.icn3dui;return r.icn3d,r.htmlCls.setHtmlCls.getLinkWrapper(e,t,s,i,n,l)}getLinkWrapper2(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.setHtmlCls.getLinkWrapper2(e,t,s,i,n)}getRadio(e,t,s,i,n,l){return this.icn3dui.htmlCls.setHtmlCls.getRadio(e,t,s,i,n,l)}getRadClr(e,t,s,i,n,l,r){return this.icn3dui.htmlCls.setHtmlCls.getRadioColor(e,t,s,i,n,l,r)}setTopMenusHtml(e,t,s){let i=this.icn3dui;if(i.bNode)return"";let n="black"==i.htmlCls.opts.background?i.htmlCls.GREYD:"black",l="";l+="
    ",l+=i.htmlCls.divStr+"popup' class='icn3d-text icn3d-popup'>
    ",l+=this.setReplayHtml(),l+="\x3c!--https://forum.jquery.com/topic/looking-for-a-jquery-horizontal-menu-bar--\x3e",l+=i.htmlCls.divStr+"mnlist' style='position:absolute; z-index:999; float:left; display:table-row; margin-top: -2px;'>",l+="";let r='",l+=r+this.setMenu2()+"",l+=r+this.setMenu2b()+"",l+=r+this.setMenu3()+"",l+=r+this.setMenu4()+"",l+=r+this.setMenu5()+"",l+=r+this.setMenu6()+"",i.htmlCls.shownMenus=i.hashUtilsCls.cloneHash(i.htmlCls.simpleMenus),l+=r+"
    "+t,l+="
    "+s,l+=r+'
    '+i.htmlCls.space2+'Toolbar '+i.htmlCls.space2+'
    ",l+=r+'
    '+i.htmlCls.space2+' ?
    ',l+="
    ",l+="
    ';if(l+=r+this.setMenu1()+"
    ",l+="",l+=this.setTools(),l+=i.htmlCls.divStr+"title' class='icn3d-commandTitle' style='font-size:1.2em; font-weight:normal; position:absolute; z-index:1; float:left; display:table-row; margin: 85px 0px 0px 5px; color:"+n+"; width:"+i.htmlCls.WIDTH+"px'>",l+=i.htmlCls.divStr+"viewer' style='position:relative; width:100%; height:100%; background-color: "+i.htmlCls.GREYD+";'>",l+=i.htmlCls.divStr+"mnLogSection'>",l+="
    ",l+=" ",void 0===i.cfg.mmtfid){let e="top:180px; font-size: 1.8em;";l+=i.htmlCls.divStr+"wait' style='position:absolute; left:50px; "+e+" color: #444444;'>Loading data..."}l+="Your browser does not support WebGL.",(void 0===i.cfg.showcommand||i.cfg.showcommand)&&(l+=this.setLogWindow()),l+="",l+="",l+=i.htmlCls.setDialogCls.setDialogs(),l+=i.htmlCls.setDialogCls.setCustomDialogs(),$("#"+e).html(l),$("accordion").accordion({collapsible:!0,active:!1,heightStyle:"content"}),$("accordion div").removeClass("ui-accordion-content ui-corner-all ui-corner-bottom ui-widget-content"),$(".icn3d-mn-item").menu({position:{my:"left top",at:"right top"}}),$(".icn3d-mn-item").hover((function(){}),(function(){$("accordion").accordion("option","active","none")})),$("#"+i.pre+"accordion1").hover((function(){$("#"+i.pre+"accordion1 div").css("display","block")}),(function(){$("#"+i.pre+"accordion1 div").css("display","none")})),$("#"+i.pre+"accordion2").hover((function(){$("#"+i.pre+"accordion2 div").css("display","block")}),(function(){$("#"+i.pre+"accordion2 div").css("display","none")})),$("#"+i.pre+"accordion2b").hover((function(){$("#"+i.pre+"accordion2b div").css("display","block")}),(function(){$("#"+i.pre+"accordion2b div").css("display","none")})),$("#"+i.pre+"accordion3").hover((function(){$("#"+i.pre+"accordion3 div").css("display","block")}),(function(){$("#"+i.pre+"accordion3 div").css("display","none")})),$("#"+i.pre+"accordion4").hover((function(){$("#"+i.pre+"accordion4 div").css("display","block")}),(function(){$("#"+i.pre+"accordion4 div").css("display","none")})),$("#"+i.pre+"accordion5").hover((function(){$("#"+i.pre+"accordion5 div").css("display","block")}),(function(){$("#"+i.pre+"accordion5 div").css("display","none")})),$("#"+i.pre+"accordion6").hover((function(){$("#"+i.pre+"accordion6 div").css("display","block")}),(function(){$("#"+i.pre+"accordion6 div").css("display","none")}))}setTopMenusHtmlMobile(e,t,s){let i=this.icn3dui;if(i.bNode)return"";let n="black"==i.htmlCls.opts.background?i.htmlCls.GREYD:"black",l="";if(l+="
    ",l+=i.htmlCls.divStr+"popup' class='icn3d-text icn3d-popup'>
    ",l+=this.setReplayHtml(),!i.utilsCls.isMobile()){let e=i.htmlCls.WIDTH-40+5;l+=i.htmlCls.buttonStr+"fullscreen' style='position:absolute; z-index:1999; display:block; padding:0px; margin: 12px 0px 0px "+e+"px; width:30px; height:34px; border-radius:4px; border:none; background-color:#f6f6f6;' title='Full screen'>",l+="",l+="",l+="",l+="",l+=""}l+="\x3c!--https://forum.jquery.com/topic/looking-for-a-jquery-horizontal-menu-bar--\x3e",l+=i.htmlCls.divStr+"mnlist' style='position:absolute; z-index:999; float:left; display:block; margin: 5px 0px 0px 5px;'>",l+="
    ",l+="",i.cfg.notebook?l+="

    ":l+="

    ",l+="
    ";let r="
  • File",l+=this.setMenu1_base(),l+=r+">Select",l+=this.setMenu2_base(),l+=r+">View",l+=this.setMenu2b_base(),l+=r+" id='"+i.pre+"style'>Style",l+=this.setMenu3_base(),l+=r+" id='"+i.pre+"color'>Color",l+=this.setMenu4_base(),l+=r+">Analysis",l+=this.setMenu5_base(),l+=r+">Help",l+=this.setMenu6_base(),i.htmlCls.shownMenus=i.hashUtilsCls.cloneHash(i.htmlCls.simpleMenus),l+="
  • "+t,l+="
    "+s,l+="
  • Alternate",l+="",l+="
  • ",l+="
    ",l+="
    ",l+="",l+=i.htmlCls.divStr+"title' class='icn3d-commandTitle' style='font-size:1.2em; font-weight:normal; position:absolute; z-index:1; float:left; display:block; margin: 12px 0px 0px 40px; color:"+n+"; width:"+(i.htmlCls.WIDTH-40).toString()+"px'>",l+=i.htmlCls.divStr+"viewer' style='position:relative; width:100%; height:100%; background-color: "+i.htmlCls.GREYD+";'>",l+=i.htmlCls.divStr+"mnLogSection'>",l+="
    ",l+="",void 0===i.cfg.mmtfid){let e="top:180px; font-size: 1.8em;";l+=i.htmlCls.divStr+"wait' style='position:absolute; left:50px; "+e+" color: #444444;'>Loading data..."}l+="Your browser does not support WebGL.",(void 0===i.cfg.showcommand||i.cfg.showcommand)&&(l+=this.setLogWindow()),l+="",l+="",l+=i.htmlCls.setDialogCls.setDialogs(),l+=i.htmlCls.setDialogCls.setCustomDialogs(),$("#"+e).html(l),$("accordion").accordion({collapsible:!0,active:!1,heightStyle:"content"}),$("accordion div").removeClass("ui-accordion-content ui-corner-all ui-corner-bottom ui-widget-content"),$(".icn3d-mn-item").menu({position:{my:"left top",at:"right top"}}),$(".icn3d-mn-item").hover((function(){}),(function(){$("accordion").accordion("option","active","none")})),$("#"+i.pre+"accordion0").hover((function(){$("#"+i.pre+"accordion0 div").css("display","block")}),(function(){$("#"+i.pre+"accordion0 div").css("display","none")}))}setReplayHtml(e){let t=this.icn3dui;if(t.bNode)return"";let s="";return s+=t.htmlCls.divStr+"replay' style='display:none; position:absolute; z-index:9999; top:"+parseInt(t.htmlCls.HEIGHT-100).toString()+"px; left:20px;'>",s+="
    ",s+='',s+="",s+='',s+='',s+="",s+="
    ",s+=t.htmlCls.divStr+"replay_menu' style='background-color:#DDDDDD; padding:3px; font-weight:bold;'>",s+=t.htmlCls.divStr+"replay_cmd' style='background-color:#DDDDDD; padding:3px; max-width:250px'>",s+="",s}setTools(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+=e.htmlCls.divStr+"selection' style='display:none;'>
    ",t+="",t+=this.setTools_base(),t+="
    ",t+="
    ",t}setButton(e,t,s,i,n){let l=this.icn3dui;return l.bNode?"":(n=void 0!==n?"color:"+n:"","
    ")}setIcon(e,t,s,i,n,l,r){let o=this.icn3dui;if(o.bNode)return"";let a,d=r?"color:#f8b84e; ":"color:#1c94c4; ",c=" background-color:#EEE; ",h="text"==e?"":"cursor:pointer;";return a=l?'
    '+i+"
    ":'',"link"==e?''+a+"":a}setTools_base(){if(this.icn3dui.bNode)return"";let e="",t="regular",s="",i="";return e+=s+this.setIcon(t,"tool_mmdbafid","Input PDB/MMDB/AlphaFold IDs","id",void 0,!0)+"",e+=s+this.setIcon(t,"tool_pdbfile","Input PDB Files (appendable)","file-alt")+"",e+=s+this.setIcon(t,"tool_sharelink","Get Share Link","link")+"",e+=s+this.setIcon(t,"saveimage","Save iCn3D PNG Image","camera")+"",e+=i+this.setIcon(t,"tool_definedsets","Defined Sets","object-group")+"",e+=s+this.setIcon(t,"tool_aroundsphere","Select by Distance","dot-circle")+"",e+=s+this.setIcon(t,"tool_saveselection","Save Selection as a Set","save")+"",e+=s+this.setIcon(t,"toggleHighlight","Toggle Highlight","highlighter")+"",e+=i+this.setIcon(t,"show_selected","View Selection","eye")+"",e+=s+this.setIcon(t,"tool_selectedcenter","Zoom in Selection","search-plus")+"",e+=s+this.setIcon(t,"alternate","Alternate the Structures by keying the letter 'a'","a",void 0,!0,!0)+"",e+=s+this.setIcon(t,"tool_resetOrientation","Reset Orientation","undo-alt")+"",e+=i+this.setIcon(t,"tool_proteinsRibbon","Style Ribbon for proteins","dna")+"",e+=s+this.setIcon(t,"tool_proteinsSphere","Style Sphere for proteins","volleyball-ball")+"",e+=s+this.setIcon(t,"tool_surfaceVDW","Show Van der Waals Surface","cloud")+"",e+=s+this.setIcon(t,"tool_bkgd","Toggle Background Color","adjust")+"",e+=i+this.setIcon(t,"tool_clrRainbowChain","Color Rainbow for Chains","rainbow")+"",e+=s+this.setIcon(t,"tool_clrSSGreen","Color by Secondary Structures","ring")+"",e+=s+this.setIcon(t,"tool_clrChain","Color by Chains","layer-group")+"",e+=s+this.setIcon(t,"tool_clrAtom","Color by Atoms","atom")+"",e+=i+this.setIcon(t,"tool_selectannotations","Sequences & Annotations","grip-lines")+"",e+=s+this.setIcon(t,"hbondsYes","Interactions","users")+"",e+=s+this.setIcon(t,"tool_delphi","Delphi Potentials","cloud-meatball")+"",e+=s+this.setIcon(t,"removeLabels","Remove Labels","remove-format")+"",e+=i+this.setIcon("link","tool-gallery","Gallery","image","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#gallery")+"",e+=s+this.setIcon("link","tool-video","Videos","file-video","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#videos")+"",e+=s+this.setIcon("link","tool-github","iCn3D GitHub","code","https://github.com/ncbi/icn3d")+"",e+=s+this.setIcon("link","tool-hints","Transform Hints","info-circle","https://www.ncbi.nlm.nih.gov/Structure/icn3d/icn3d.html#useicn3d")+"",e+="",e}setTheme(e){let t,s,i,n,l,r=this.icn3dui;if(r.bNode)return"";r.htmlCls.themecolor=e,"orange"==e?(t="#e78f08",s="#f6a828",i="ui-bg_gloss-wave_35_f6a828_500x100.png",n="ui-icons_ef8c08_256x240.png",l="#eb8f00"):"black"==e?(t="#333333",s="#333333",i="ui-bg_gloss-wave_25_333333_500x100.png",n="ui-icons_222222_256x240.png",l="#222222"):"blue"==e&&(t="#4297d7",s="#5c9ccc",i="ui-bg_gloss-wave_55_5c9ccc_500x100.png",n="ui-icons_228ef1_256x240.png",l="#444"),$(".ui-widget-header").css({border:"1px solid "+t,background:s+' url("https://www.ncbi.nlm.nih.gov/Structure/icn3d/lib/images/'+i+'") 50% 50% repeat-x',color:"#fff","font-weight":"bold"}),$(".ui-button .ui-icon").css({"background-image":"url(https://www.ncbi.nlm.nih.gov/Structure/icn3d/lib/images/"+n+")"}),$(".ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited").css({color:l,"text-decoration":"none"})}setLogWindow(e,t){let s=this.icn3dui;if(s.bNode)return"";let i,n="",l=s.htmlCls.setHtmlCls.getCookie("cmdwindow");return""!=l?(i=void 0!==t?t:parseInt(l),1==i?(s.htmlCls.LOG_HEIGHT=180,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+=""):(s.htmlCls.LOG_HEIGHT=65,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+="")):(i=0,s.htmlCls.LOG_HEIGHT=65,s.htmlCls.CMD_HEIGHT=.8*s.htmlCls.LOG_HEIGHT,e||(n+=s.htmlCls.divStr+"cmdlog' style='float:left; margin-top: 5px; width: 100%;'>"),n+=""),e||(n+=""),e&&(s.htmlCls.clickMenuCls.setLogCmd("set cmdwindow "+i,!0),$("#"+s.pre+"cmdlog").html(n)),n}setMenu1(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    File

    ",t+="
    ",t+=this.setMenu1_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu1_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuText("mn1_searchgrooup","Search Structure "+e.htmlCls.wifiStr,void 0,1,1),t+="
        ",t+=this.getMenuUrl("mn1_searchstru","https://www.ncbi.nlm.nih.gov/structure","PDB Structures "+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_proteinname","AlphaFold Structures "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("mn1_afdatabase","https://alphafold.ebi.ac.uk","AlphaFold UniProt Database "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_searchsimilar","Search Similar"+e.htmlCls.wifiStr,void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_vastplus","NCBI VAST+ (PDB Complex)"+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_vast","NCBI VAST (PDB Chain)"+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_foldseek","Foldseek (PDB & AlphaFold)"+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_retrievebyid","Retrieve by ID",void 0,1,1),t+="
        ",t+=this.getLink("mn1_mmdbafid","PDB/MMDB/AlphaFold IDs"+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_mmdbid","NCBI MMDB ID (annotation) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_mmtfid","RCSB BCIF/MMTF ID (fast) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_pdbid","RCSB PDB ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getMenuText("mn1_afwrap","AlphaFold Structures",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_afid","UniProt ID "+e.htmlCls.wifiStr,void 0,3),t+=this.getLink("mn1_refseqid","NCBI Protein Accession "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+=this.getLink("mn1_opmid","OPM PDB ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_mmcifid","RCSB mmCIF ID "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_cid","PubChem CID/Name/InchI "+e.htmlCls.wifiStr,1,2),t+=this.getLink("mn1_smiles","Chemical SMILES ",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_openfile","Open File",void 0,1,1),t+="
        ",t+=this.getLink("mn1_pdbfile_app","PDB Files (appendable)",1,2),t+=this.getLink("mn1_mmciffile","mmCIF Files (appendable)",void 0,2),t+=this.getLink("mn1_mol2file","Mol2 File",void 0,2),t+=this.getLink("mn1_sdffile","SDF File",void 0,2),t+=this.getLink("mn1_xyzfile","XYZ File",void 0,2),t+=this.getLink("mn1_afmapfile","AlphaFold PAE File",void 0,2),t+=this.getLink("mn1_urlfile","URL(CORS) "+e.htmlCls.wifiStr,void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_pngimage","iCn3D PNG (appendable)",1,2),t+=this.getLink("mn1_state","State/Script File",void 0,2),t+=this.getLink("mn1_fixedversion","Share Link in Archived Ver. "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_selection","Selection File",void 0,2),t+=this.getLink("mn1_collection","Collection File",void 0,2),t+=this.getMenuSep(),t+=this.getMenuText("mn1_dsn6wrap","Electron Density",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_dsn6","Local File",void 0,3),t+=this.getLink("mn1_dsn6url","URL(CORS) "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+="

      • ",t+="
      ",t+="",t+=this.getMenuText("mn1_fold","Predict by Seq.",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_esmfold","ESMFold",void 0,2),t+=this.getLink("mn1_alphafold","AlphaFold2 via ColabFold"+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=this.getMenuText("mn1_alignwrap","Align",void 0,1,1),t+="
        ",t+=this.getMenuText("mn1_chainalignwrap","Multiple Chains",void 0,1,2),t+="
          ",t+=this.getRadio("mn1_chainalignRad","mn1_chainalign","by Structure Alignment "+e.htmlCls.wifiStr,void 0,1,3),t+=this.getRadio("mn1_chainalignRad","mn1_chainalign2","by Sequence Alignment "+e.htmlCls.wifiStr,void 0,1,3),t+=this.getRadio("mn1_chainalignRad","mn1_chainalign3","Residue by Residue",void 0,void 0,3),t+="
        ",t+="",t+=this.getMenuText("mn1_aligntwostru","Protein Complexes",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_align","Two PDB Structures "+e.htmlCls.wifiStr,void 0,3),t+=this.getLink("mn1_alignaf","Two AlphaFold Structures "+e.htmlCls.wifiStr,void 0,3),t+="
        ",t+=this.getLink("mn1_blast_rep_id","Sequence to Structure",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_realignWrap","Realign Selection",void 0,void 0,1),t+="
        ",t+=this.getMenuText("mn2_chainrealignwrap","Multiple Chains",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn2_realign","mn2_realignonstruct","by Structure Alignment "+e.htmlCls.wifiStr,void 0,void 0,3),t+=this.getRadio("mn2_realign","mn2_realignonseqalign","by Sequence Alignment "+e.htmlCls.wifiStr,void 0,void 0,3),t+=this.getRadio("mn2_realign","mn2_realignresbyres","Residue by Residue",void 0,void 0,3),t+="
        ",t+=this.getLink("mn2_realigntwostru","Protein Complexes",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn1_3dpprint","3D Printing",void 0,1,1),t+="
        ",void 0===e.cfg.cid?(t+=this.getLink("mn1_exportVrmlStab","WRL/VRML(Color, W/ Stab.)",1,2),t+=this.getLink("mn1_exportStlStab","STL(W/ Stabilizers)",1,2),t+=this.getMenuSep(),t+=this.getLink("mn1_exportVrml","WRL/VRML(Color)",void 0,2),t+=this.getLink("mn1_exportStl","STL",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_stabilizerYes","Add All Stabilizers",void 0,2),t+=this.getLink("mn1_stabilizerNo","Remove All Stabilizers",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_stabilizerOne","Add One Stabilizer",void 0,2),t+=this.getLink("mn1_stabilizerRmOne","Remove One Stabilizer",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn1_thicknessSet","Set Thickness",void 0,2)):(t+=this.getLink("mn1_exportVrml","VRML(Color)",1,2),t+=this.getLink("mn1_exportStl","STL",1,2)),t+="
      ",t+="",t+=this.getMenuText("mn1_savefile","Save File",void 0,1,1),t+="
        ",t+=this.getMenuText("mn1_savepngimage","iCn3D PNG Image",void 0,1,2),t+="
          ",t+=this.getLink("mn1_exportCanvas","Original Size & HTML",1,3),t+=this.getLink("mn1_exportCanvas1","Original Size",void 0,3),t+=this.getLink("mn1_exportCanvas2","2X Large",void 0,3),t+=this.getLink("mn1_exportCanvas4","4X Large",void 0,3),t+=this.getLink("mn1_exportCanvas8","8X Large",void 0,3),t+="
        ",t+="",t+=this.getLink("mn1_exportState","State File",void 0,2),t+=this.getLink("mn1_exportSelections","Selection File",void 0,2),t+=this.getLink("mn1_exportSelDetails","Selection Details",void 0,2),t+=this.getLink("mn1_exportCounts","Residue Counts",void 0,2),t+=this.getLink("mn1_exportPdbRes","PDB",1,2),t+=this.getLink("profixpdb","PDB with Missing Atoms",void 0,2),void 0===e.cfg.cid&&(t+=this.getLink("mn1_exportSecondary","Secondary Structure",void 0,2)),t+=this.getMenuText("m1_exportrefnum","Reference Numbers",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_exportIgstrand","Ig Strand",void 0,3),t+=this.getLink("mn1_exportKabat","Kabat",void 0,3),t+=this.getLink("mn1_exportImgt","IMGT",void 0,3),t+="
        ",t+="

      • ",t+="
      ",t+="",t+=this.getLink("mn1_sharelink","Share Link "+e.htmlCls.wifiStr,1,1),t+=this.getLink("mn1_replayon","Replay Each Step",void 0,1),t+=this.getMenuSep(),t+=this.getMenuText("mn1_menuwrap","Customize Menus",void 0,1,1),t+="
        ",t+=this.getLink("mn1_menuall","All Menus",1,2),t+=this.getLink("mn1_menusimple","Simple Menus",1,2),t+=this.getMenuSep(),t+=this.getLink("mn1_menupref","Preferences",1,2),t+=this.getLink("mn1_menuloadpref","Load Preferences",1,2),t+="
      ",t+="",t+="

    • ",t+="
    ",t}setMenu2(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Select

    ",t+="
    ",t+=this.setMenu2_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu2_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getLink("mn2_definedsets","Defined Sets",1,1),t+=this.getLink("mn2_selectall","All",void 0,1),t+=this.getLink("mn2_selectdisplayed","Displayed Set",void 0,1),t+=this.getLink("mn2_aroundsphere","by Distance",1,1),t+=this.getMenuText("mn2_selbyprop","by Property",void 0,void 0,1),t+="
        ",t+=this.getLink("mn2_propPos","Positive",void 0,2),t+=this.getLink("mn2_propNeg","Negative",void 0,2),t+=this.getLink("mn2_propHydro","Hydrophobic",void 0,2),t+=this.getLink("mn2_propPolar","Polar",void 0,2),t+=this.getLink("mn2_propBfactor","B-factor/pLDDT",void 0,2),t+=this.getLink("mn2_propSolAcc","Solvent Accessibility",void 0,2),t+="
      ",t+="",t+=this.getLink("mn2_selectcomplement","Inverse",void 0,1),t+=this.getLink("mn2_selectmainchains","Main Chains",void 0,1),t+=this.getLink("mn2_selectsidechains","Side Chains",void 0,1),t+=this.getLink("mn2_selectmainsidechains","Main & Side Chains",void 0,1),t+=this.getLink("mn2_command","Advanced",void 0,1),void 0===e.cfg.cid?(t+=this.getMenuText("mn2_selon3d","Select on 3D",void 0,1,1),t+="
        ",t+='
      • "Alt"+Click: start selection
      • ',t+='
      • "Ctrl"+Click: union selection
      • ',t+='
      • "Shift"+Click: range Selection
      • ',t+=this.getMenuSep(),t+=this.getRadio("mn2_pk","mn2_pkChain","Chain",void 0,1,2),void 0===e.cfg.mmdbid&&void 0===e.cfg.gi||(t+=this.getRadio("mn2_pk","mn2_pkDomain","3D Domain",void 0,void 0,2)),t+=this.getRadio("mn2_pk","mn2_pkStrand","Strand/Helix",void 0,void 0,2),t+=this.getRadio("mn2_pk","mn2_pkResidue","Residue",!0,1,2),t+=this.getRadio("mn2_pk","mn2_pkYes","Atom",void 0,1,2),t+=this.getRadio("mn2_pk","mn2_pkNo","None",void 0,void 0,2),t+="
      ",t+=""):e.utilsCls.isMobile()?t+="
    • Touch to pick
    • ":t+='
    • Picking with
      "Alt" + Click
    • ',t+=this.getMenuSep(),t+=this.getLink("mn2_saveselection","Save Selection",1,1),t+=this.getLink("clearall","Clear Selection",void 0,1),t+=this.getLink("mn2_saveresidue","Save Res. in Sel.",1,1),t+=this.getMenuSep(),t+=this.getMenuText("mn2_hlcolor","Highlight Color",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_hl_clr","mn2_hl_clrYellow","Yellow",!0,void 0,2),t+=this.getRadio("mn2_hl_clr","mn2_hl_clrGreen","Green",void 0,void 0,2),t+=this.getRadio("mn2_hl_clr","mn2_hl_clrRed","Red",void 0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_hlstyle","Highlight Style",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_hl_style","mn2_hl_styleOutline","Outline",!0,void 0,2),t+=this.getRadio("mn2_hl_style","mn2_hl_styleObject","3D Objects",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("toggleHighlight2","Toggle Highlight",1,1),t+="

    • ",t+="
    ",t}setMenu2b(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    View

    ",t+="
    ",t+=this.setMenu2b_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu2b_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getLink("mn2_show_selected","View Selection",1,1),t+=this.getLink("mn2_hide_selected","Hide Selection",1,1),t+=this.getLink("mn2_selectedcenter","Zoom in Selection",1,1),t+=this.getLink("mn6_center","Center Selection",1,1),t+=this.getLink("mn2_fullstru","View Full Structure"),t+=this.getLinkWrapper("mn2_alternate",'Alternate(Key "a")',"mn2_alternateWrap",void 0,1),void 0!==e.cfg.opmid?t+=this.getLinkWrapper("togglemem","Toggle Membrane","togglememli",void 0,1):void 0===e.cfg.cid&&(t+=this.getLinkWrapper("togglemem","Toggle Membrane","togglememli",void 0,1,!0)),void 0!==e.cfg.opmid&&(t+=this.getLinkWrapper("adjustmem","Adjust Membrane","adjustmemli",void 0,1),t+=this.getLinkWrapper("selectplane","Select between
      Two X-Y Planes","selectplaneli",void 0,1)),t+=this.getMenuSep(),t+=this.getMenuText("mn2_vrarhints","VR & AR Hints",void 0,1,1),t+="
        ",t+=this.getMenuUrl("vrhint",e.htmlCls.baseUrl+"icn3d/icn3d.html#vr","VR: VR Headsets",1,2),t+=this.getMenuUrl("arhint",e.htmlCls.baseUrl+"icn3d/icn3d.html#ar","AR: Chrome in Android",1,2),t+="
      ",t+="",t+=this.getLink("mn6_sidebyside","Side by Side",1,1),t+=this.getMenuText("mn2_rotate","Rotate",void 0,1,1),t+="
        ",t+=this.getMenuText("mn2_rotate90","Rotate 90°",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn6_rotate90","mn6_rotatex","rotate x",void 0,void 0,2),t+=this.getRadio("mn6_rotate90","mn6_rotatey","rotate y",void 0,void 0,2),t+=this.getRadio("mn6_rotate90","mn6_rotatez","rotate z",void 0,void 0,2),t+="
        ",t+="",t+=this.getMenuText("mn2_rotateauto","Auto Rotation",void 0,1,2),t+="
          ",t+=this.getRadio("mn6_rotate","mn6_rotateleft","Rotate Left",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotateright","Rotate Right",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotateup","Rotate Up",void 0,1,3),t+=this.getRadio("mn6_rotate","mn6_rotatedown","Rotate Down",void 0,1,3),t+="
        ",t+="",t+="
      ",t+="",t+=this.getLink("mn2_translate","Translate XYZ",void 0,1),t+=this.getLink("mn2_matrix","Rotate with Matrix",void 0,1),t+=this.getMenuText("mn2_camera","Camera",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_camera","mn6_cameraPers","Perspective",!0,void 0,2),t+=this.getRadio("mn6_camera","mn6_cameraOrth","Orthographic",void 0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_fog","Fog for Selection",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showfog","mn6_showfogYes","On",void 0,void 0,2),t+=this.getRadio("mn6_showfog","mn6_showfogNo","Off",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_slab","Slab for Selection",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showslab","mn6_showslabYes","On",void 0,void 0,2),t+=this.getRadio("mn6_showslab","mn6_showslabNo","Off",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn2_axes","XYZ-axes",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_showaxis","mn6_showaxisYes","Original",void 0,void 0,2),t+=this.getRadio("mn6_showaxis","mn6_showaxisSel","Prin. Axes on Sel.",void 0,void 0,2),t+=this.getRadio("mn6_showaxis","mn6_showaxisNo","Hide",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuSep(),t+=this.getMenuText("mn2_resetwrap","Reset",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_reset","reset","All",void 0,1,2),t+=this.getRadio("mn6_reset","mn6_resetOrientation","Orientation",void 0,1,2),t+="
      ",t+="",t+=this.getLink("mn6_back","Undo",void 0,1),t+=this.getLink("mn6_forward","Redo",void 0,1),t+=this.getLink("mn6_fullscreen","Full Screen",void 0,1),t+="

    • ",t+="
    ",t}setMenu3(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Style

    ",t+="
    ",t+=this.setMenu3_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu3_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";t+="
      ",void 0===e.cfg.cid&&(t+=this.getMenuText("mn3_proteinwrap","Proteins",void 0,1,1),t+="
        ",void 0!==e.cfg.align||void 0!==e.cfg.chainalign?t+=this.getRadio("mn3_proteins","mn3_proteinsRibbon","Ribbon",void 0,1,2):t+=this.getRadio("mn3_proteins","mn3_proteinsRibbon","Ribbon",!0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsStrand","Strand",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsCylinder","Cylinder and Plate",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsSchematic","Schematic",void 0,1,2),void 0!==e.cfg.align||void 0!==e.cfg.chainalign?t+=this.getRadio("mn3_proteins","mn3_proteinsCalpha","C Alpha Trace",!0,1,2):t+=this.getRadio("mn3_proteins","mn3_proteinsCalpha","C Alpha Trace",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBackbone","Backbone",void 0,void 0,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBfactor","B-factor Tube",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsLines","Lines",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsStick","Stick",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_proteins","mn3_proteinsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_sidecwrap","Side Chains",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_sidec","mn3_sidecLines","Lines",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecStick","Stick",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_sidec","mn3_sidecNo","Hide",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_nuclwrap","Nucleotides",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_nucl","mn3_nuclCartoon","Cartoon",!0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclPhos","O3' Trace",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclBackbone","Backbone",void 0,void 0,2),t+=this.getRadio("mn3_nucl","mn3_nuclSchematic","Schematic",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclLines","Lines",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclStick","Stick",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_nucl","mn3_nuclNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_ntbasewrap","Nucl. Bases",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_ntbase","mn3_ntbaseLines","Lines",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseStick","Stick",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseBallstick","Ball and Stick",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_ntbase","mn3_ntbaseNo","Hide",!0,1,2),t+="
      ",t+=""),t+=this.getMenuText("mn3_ligwrap","Chemicals",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_lig","mn3_ligLines","Lines",void 0,1,2),void 0===e.cfg.cid?(t+=this.getRadio("mn3_lig","mn3_ligStick","Stick",!0,1,2),t+=this.getRadio("mn3_lig","mn3_ligBallstick","Ball and Stick",void 0,1,2)):(t+=this.getRadio("mn3_lig","mn3_ligStick","Stick",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligBallstick","BalHydrogensl and Stick",!0,1,2)),t+=this.getRadio("mn3_lig","mn3_ligSchematic","Schematic",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_lig","mn3_ligNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_hydrogenswrap","Hydrogens",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_hydrogens","mn3_hydrogensYes","Show",!0,1,2),t+=this.getRadio("mn3_hydrogens","mn3_hydrogensNo","Hide",void 0,1,2),t+="
      ",t+="",void 0===e.cfg.cid&&(t+=this.getMenuText("mn3_glycanwrap","Glycans",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn3_glycansCart","mn3_glycansCartYes","Show Cartoon",void 0,void 0,2),t+=this.getRadio("mn3_glycansCart","mn3_glycansCartNo","Hide Cartoon",!0,void 0,2),t+="
      ",t+=""),t+=this.getMenuText("mn3_ionswrap","Ions",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_ions","mn3_ionsSphere","Sphere",!0,1,2),t+=this.getRadio("mn3_ions","mn3_ionsDot","Dot",void 0,1,2),t+=this.getRadio("mn3_ions","mn3_ionsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn3_waterwrap","Water",void 0,1,1),t+="
        ",t+=this.getRadio("mn3_water","mn3_waterSphere","Sphere",void 0,1,2),t+=this.getRadio("mn3_water","mn3_waterDot","Dot",void 0,1,2),t+=this.getRadio("mn3_water","mn3_waterNo","Hide",!0,1,2),t+="
      ",t+="",void 0===e.cfg.cid&&(t+=this.getMenuText("mn2_clashedwrap","Clashed Residues",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn2_clashed","mn2_clashedYes","Show",!0,void 0,2),t+=this.getRadio("mn2_clashed","mn2_clashedNo","Hide",void 0,void 0,2),t+="
      ",t+=""),t+=this.getLink("mn3_setThickness","Preferences",void 0,1),t+=this.getMenuSep(),t+=this.getLink("mn3_styleSave","Save Style",void 0,2),t+=this.getLink("mn3_styleApplySave","Apply Saved Style",void 0,2),t+=this.getMenuSep(),t+=this.getMenuText("mn5_surfacewrap","Surface Type",void 0,1,1),t+="
        ",t+=this.getRadio("mn5_surface","mn5_surfaceVDW","Van der Waals",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceVDWContext","VDW with Context",void 0,void 0,2),t+=this.getRadio("mn5_surface","mn5_surfaceMolecular","Molecular Surface",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceMolecularContext","MS with Context",void 0,void 0,2),t+=this.getRadio("mn5_surface","mn5_surfaceSAS","Solvent Accessible",void 0,1,2),t+=this.getRadio("mn5_surface","mn5_surfaceSASContext","SA with Context",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn5_surfaceNo","Remove Surface",1,1),t+=this.getMenuText("mn5_surfaceop","Surface Opacity",void 0,1,1),t+="
        ",t+=this.getMenuText("mn5_surfaceopfast","Fast Transparency",void 0,1,2),t+="
          ",t+=this.getRadio("mn5_opacity","mn5_opacity10","1.0",!0,1,3);for(let e=9;e>0;--e)t+=this.getRadio("mn5_opacity","mn5_opacity0"+e,"0."+e,1,3);t+="
        ",t+="",t+=this.getMenuText("mn5_surfaceopslow","Slow Transparency",void 0,void 0,2),t+="
          ",t+=this.getRadio("mn5_opacityslow","mn5_opacityslow10","1.0",!0,void 0,3);for(let e=9;e>0;--e)t+=this.getRadio("mn5_opacityslow","mn5_opacityslow0"+e,"0."+e,void 0,void 0,3);return t+="
        ",t+="",t+="
      ",t+=this.getMenuText("mn5_wireframewrap","Surface Wireframe",void 0,1,1),t+="
        ",t+=this.getRadio("mn5_wireframe","mn5_wireframeYes","Yes",void 0,1,2),t+=this.getRadio("mn5_wireframe","mn5_wireframeNo","No",!0,1,2),t+="
      ",t+="",t+=this.getMenuSep(),t+=this.getLink("mn5_cartoonshape","Cartoon for a Set",void 0,1),t+=this.getLink("mn5_linebtwsets","Line btw. Two Sets",void 0,1),void 0===e.cfg.cid&&void 0===e.cfg.align&&void 0===e.cfg.chainalign&&void 0===e.cfg.mmdbaf&&(t+=this.getMenuSep(),t+=this.getLinkWrapper2("mn5_map","Electron Density","mapWrapper1",void 0,1),t+="
        ",t+=this.getLink("mn5_elecmap2fofc","2Fo-Fc Map",void 0,2),t+=this.getLink("mn5_elecmapfofc","Fo-Fc Map",void 0,2),t+=this.getLinkWrapper("mn5_elecmapNo","Remove Map","mapWrapper2",void 0,2),t+="
      ",t+="",t+=this.getLinkWrapper2("mn5_map3","Map Wireframe","mapWrapper3",void 0,1),t+="
        ",t+=this.getRadio("mn5_mapwireframe","mn5_mapwireframeYes","Yes",!0,void 0,2),t+=this.getRadio("mn5_mapwireframe","mn5_mapwireframeNo","No",void 0,void 0,2),t+="
      ",t+="",void 0===e.cfg.mmtfid&&(t+=this.getLinkWrapper("mn5_emmap","EM Density Map","emmapWrapper1",void 0,1),t+=this.getLinkWrapper("mn5_emmapNo","Remove EM Map","emmapWrapper2",void 0,1),t+=this.getLinkWrapper2("mn5_emmap3","EM Map Wireframe","emmapWrapper3",void 0,1),t+="
        ",t+=this.getRadio("mn5_emmapwireframe","mn5_emmapwireframeYes","Yes",!0,void 0,2),t+=this.getRadio("mn5_emmapwireframe","mn5_emmapwireframeNo","No",void 0,void 0,2),t+="
      ",t+="")),t+=this.getMenuSep(),t+=this.getMenuText("mn6_bkgdwrap","Background",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_bkgd","mn6_bkgdTransparent","Transparent",void 0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdBlack","Black",!0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdGrey","Gray",void 0,1,2),t+=this.getRadio("mn6_bkgd","mn6_bkgdWhite","White",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_themewrap","Dialog Color",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_theme","mn6_themeBlue","Blue",!0,void 0,2),t+=this.getRadio("mn6_theme","mn6_themeOrange","Orange",void 0,void 0,2),t+=this.getRadio("mn6_theme","mn6_themeBlack","Black",void 0,void 0,2),t+="
      ",t+="",t+="

    • ",t+="
    ",t}setMenu4(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Color

    ",t+="
    ",t+=this.setMenu4_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu4_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuText("mn4_clrwrap","Unicolor","icn3d-menupd",1,1),t+="
        ",t+=this.getMenuText("uniclrRedwrap","Red",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrRed1","Red","F00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed2","Indian Red","CD5C5C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed3","Light Coral","F08080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed4","Salmon","FA8072",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed5","Dark Salmon","E9967A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed6","Light Salmon","FFA07A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed7","Crimson","DC143C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed8","Fire Brick","B22222",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrRed9","Dark Red","8B0000",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrPinkwrap","Pink",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrPink1","Pink","FFC0CB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink2","Light Pink","FFB6C1",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink3","Hot Pink","FF69B4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink4","Deep Pink","FF1493",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink5","Medium Violet Red","C71585",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrPink6","Pale Violet Red","DB7093",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrOrangewrap","Orange",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrOran1","Orange","FFA500",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran2","Dark Orange","FF8C00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran3","Orange Red","FF4500",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran4","Tomato","FF6347",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran5","Coral","FF7F50",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrOran6","Light Salmon","FFA07A",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrYellowwrap","Yellow",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrYllw1","Yellow","FF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw2","Gold","FFD700",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw3","Light Yellow","FFFFE0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw4","Lemon Chiffon","FFFACD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw5","Light Golden Rod","FAFAD2",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw6","Papaya Whip","FFEFD5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw7","Moccasin","FFE4B5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw8","Peach Puff","FFDAB9",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw9","Pale Golden Rod","EEE8AA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw10","Khaki","F0E68C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrYllw11","Dark Khaki","BDB76B",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrMagentawrap","Magenta",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrMgnt1","Magenta","F0F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt2","Orchid","DA70D6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt3","Violet","EE82EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt4","Plum","DDA0DD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt5","Thistle","D8BFD8",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt6","Lavender","E6E6FA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt7","Medium Orchid","BA55D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt8","Medium Purple","9370DB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt9","Rebecca Purple","663399",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt10","Blue Violet","8A2BE2",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt11","Dark Violet","9400D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt12","Dark Orchid","9932CC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt13","Dark Magenta","8B008B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt14","Purple","800080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt15","Indigo","4B0082",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt16","Slat Blue","6A5ACD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt17","Dark Slate Blue","483D8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrMgnt18","Medium Slat Blue","6A5ACD",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrGreenwrap","Green",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrGrn1","Green","0F0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn2","Dark Green","006400",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn3","Yellow Green","9ACD32",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn4","Olive Drab","6B8E23",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn5","Olive","808000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn6","Dark Olive Green","556B2F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn7","Medium Aquamarine","66CDAA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn8","Dark Sea Green","8FBC8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn9","Lignt Sea Green","20B2AA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn10","Dark Cyan","008B8B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn11","Teal","008080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn12","Forest Green","228B22",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn13","Sea Green","2E8B57",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn14","Medium Sea Green","3CB371",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn15","Spring Green","00FF7F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn16","Medium Spring","00FA9A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn17","Light Green","90EE90",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn18","Pale Green","98FB98",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn19","Lime Green","32CD32",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn20","Lawn Green","7CFC00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn21","Chartreuse","7FFF00",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGrn22","Green Yellow","ADFF2F",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrCyanwrap","Cyan",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrCyan1","Cyan","0FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan2","Light Cyan","E0FFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan3","Pale Turquoise","AFEEEE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan4","Aquamarine","7FFFD4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan5","Turquoise","40E0D0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan6","Medium Turquoise","48D1CC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrCyan7","Dark Turquoise","00CED1",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrBluewrap","Blue",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrBlue1","Blue","00F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue2","Medium Blue","0000CD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue3","Dark Blue","00008B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue4","Navy","000080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue5","Midnight Blue","191970",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue6","Royal Blue","4169E1",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue7","Medium Slate Blue","7B68EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue8","Corn Flower Blue","6495ED",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue9","Dodger Blue","1E90FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue10","Deep Sky Blue","00BFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue11","Light Sky Blue","87CEFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue12","Sky Blue","87CEEB",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue13","Light Blue","ADD8E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue14","Powder Blue","B0E0E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue15","Light Steel Blue","B0C4DE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue16","Steel Blue","4682B4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBlue17","Cadet Blue","5F9EA0",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrBrownwrap","Brown",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrBrown1","Brown","A52A2A",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown2","Maroon","800000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown3","Sienna","A0522D",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown4","Saddle Brown","8B4513",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown5","Chocolate","D2691E",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown6","Peru","CD853F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown7","Dark Golden Rod","B8860B",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown8","Golden Rod","DAA520",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown9","Sandy Brown","F4A460",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown10","Rosy Brown","BC8F8F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown11","Tan","D2B48C",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown12","Burlywood","DEB887",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown13","Wheat","F5DEB3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown14","Navajo White","FFDEAD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown15","Bisque","FFE4C4",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown16","Blanched Almond","FFEBCD",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrBrown17","Corn Silk","FFF8DC",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrWhitewrap","White",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrWhite1","White","FFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite2","Snow","FFFAFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite3","Honey Dew","F0FFF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite4","Mint Cream","F5FFFA",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite5","Azure","F0FFFF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite6","Alice Blue","F0F8FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite7","Ghost White","F8F8FF",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite8","White Smoke","F5F5F5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite9","Sea Shell","FFF5EE",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite10","Beige","F5F5DC",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite11","Old Lace","FDF5E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite12","Floral White","FFFAF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite13","Ivory","FFFFF0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite14","Antique White","FAEBD7",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite15","Linen","FAF0E6",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite16","Lavenderblush","FFF0F5",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrWhite17","Misty Rose","FFE4E1",void 0,1,3),t+="
        ",t+=this.getMenuText("uniclrGraywrap","Gray",void 0,1,2),t+="
          ",t+=this.getRadClr("mn4_clr","uniclrGray1","Gray","808080",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray2","Dim Gray","696969",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray3","Light Slate Gray","778899",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray4","Slate Gray","708090",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray5","Dark Slate Gray","2F4F4F",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray6","Black","000000",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray7","Dark Gray","A9A9A9",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray8","Silver","C0C0C0",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray9","Light Gray","D3D3D3",void 0,1,3),t+=this.getRadClr("mn4_clr","uniclrGray10","Gainsboro","DCDCDC",void 0,1,3),t+="
        ",t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrCustom","Color Picker",void 0,void 0,1),t+=this.getMenuSep(),void 0===e.cfg.cid?(t+=this.getMenuText("mn4_clrRainbowwrap","Rainbow (R-V)","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrRainbow","for Selection",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowChain","for Chains",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowSets","for Sets",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrRainbowAcrossSets","across Sets",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrSpectrumwrap","Spectrum (V-R)","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrSpectrum","for Selection",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumChain","for Chains",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumSets","for Sets",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrSpectrumAcrossSets","across Sets",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrSSwrap","Secondary","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrSSGreen","Sheet in Green",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSSYellow","Sheet in Yellow",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrSSSpectrum","Spectrum",void 0,void 0,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrCharge","Charge",void 0,1,1),t+=this.getMenuText("mn4_hydrophobicwrap","Hydrophobicity","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrNormalizedHP","Normalized",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrHydrophobic","Wimley-White",void 0,void 0,2),t+="
      ",t+=this.getMenuText("mn4_clrBfactorwrap","B-factor","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrBfactor","Original",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrBfactorNorm","Percentile",void 0,1,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrArea",'Solvent
      Accessibility',void 0,void 0,1),t+=this.getRadio("mn4_clr","mn4_clrStructure","Structure",void 0,1,1),void 0!==e.cfg.align||void 0!==e.cfg.chainalign||void 0!==e.cfg.blast_rep_id?t+=this.getRadio("mn4_clr","mn4_clrChain","Chain",void 0,1,1):t+=this.getRadio("mn4_clr","mn4_clrChain","Chain",!0,1,1),t+=this.getRadio("mn4_clr","mn4_clrdomain","3D Domain",void 0,void 0,1),void 0===e.cfg.cid&&(t+=this.getMenuText("mn4_clrsetswrap","Defined Sets","icn3d-menupd",void 0,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrsets",'Rainbow for Selected Sets
        in "Analysis > Defined Sets"',void 0,void 0,2),t+="
      ",t+=""),t+=this.getMenuText("mn4_clrResiduewrap","Residue","icn3d-menupd",1,1),t+="
        ",t+=this.getRadio("mn4_clr","mn4_clrResidue","Default",void 0,1,2),t+=this.getRadio("mn4_clr","mn4_clrResidueCustom","Custom",void 0,void 0,2),t+="
      ",t+=this.getRadio("mn4_clr","mn4_clrAtom","Atom",void 0,1,1),void 0!==e.cfg.align||void 0!==e.cfg.chainalign?(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",!0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",void 0,void 0,2)):void 0!==e.cfg.blast_rep_id?(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",!0,void 0,2)):(t+=this.getRadio("mn4_clr","mn4_clrIdentity","Identity",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrConserved","Conservation",void 0,void 0,2)),t+=this.getRadio("mn4_clr","mn4_clrConfidence","pLDDT",void 0,1,1),t+=this.getRadio("mn4_clr","mn4_clrIgstrand","Ig Strand",void 0,void 0,2),t+=this.getRadio("mn4_clr","mn4_clrIgproto","Ig Protodomain",void 0,void 0,2)):t+=this.getRadio("mn4_clr","mn4_clrAtom","Atom",!0,1,1),t+=this.getMenuSep(),t+=this.getLink("mn4_clrSave","Save Color",void 0,1),t+=this.getLink("mn4_clrApplySave","Apply Saved Color",void 0,1),t+="

    • ",t+="
    ",t}setMenu5(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

     Analysis

    ",t+="
    ",t+=this.setMenu5_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu5_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";t+="
      ",void 0===e.cfg.cid&&(t+=this.getLink("mn6_selectannotations","Seq. & Annotations "+e.htmlCls.wifiStr,1,1),t+=this.getLink("mn2_alignment","Aligned Seq. "+e.htmlCls.wifiStr,void 0,1),void 0===e.cfg.mmdbid&&void 0===e.cfg.gi&&void 0===e.cfg.blast_rep_id&&void 0===e.cfg.align&&void 0===e.cfg.chainalign||(t+=this.getLink("mn2_2ddgm","2D Diagram "+e.htmlCls.wifiStr,1,1)),t+=this.getMenuText("2dctnwrap","2D Cartoon",void 0,void 0,1),t+="
        ",t+=this.getLink("2dctn_chain","Chain Level",void 0,2),t+=this.getLink("2dctn_domain","Domain Level",void 0,2),t+=this.getLink("2dctn_secondary","Helix/Sheet Level",void 0,2),t+="
      ",t+="",t+=this.getLink("definedsets2","Defined Sets",1,1),t+=this.getMenuSep(),t+=this.getLink("mn6_hbondsYes","Interactions",1,1),t+=this.getMenuText("mn1_window","Bring to Front",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_window_table","Interaction Table",void 0,2),t+=this.getLink("mn1_window_linegraph","2D Interaction Network",void 0,2),t+=this.getLink("mn1_window_scatterplot","2D Interaction Map",void 0,2),t+=this.getLink("mn1_window_graph","2D Graph(Force-Directed)",void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_contactmap","Contact Map",void 0,1),t+=this.getLink("mn1_mutation","Mutation "+e.htmlCls.wifiStr,1,1)),e.cfg.hidelicense||(t+=this.getMenuText("mn1_delphiwrap","DelPhi Potential",void 0,1,1),t+="
        ",t+=this.getLink("mn1_delphi","DelPhi Potential "+e.htmlCls.licenseStr,1,2),t+=this.getMenuText("mn1_phiwrap","Load PQR/Phi",void 0,void 0,2),t+="
          ",t+=this.getLink("mn1_phi","Local PQR/Phi/Cube File",void 0,3),t+=this.getLink("mn1_phiurl","URL PQR/Phi/Cube File",void 0,3),t+="
        ",t+="",t+=this.getLink("delphipqr","Download PQR",void 0,2),t+="
      ",t+=""),t+=this.getMenuSep(),t+=this.getMenuText("mn6_distancewrap","Distance",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_distance","mn6_distanceYes","between Two Atoms",void 0,1,2),t+=this.getRadio("mn6_distance","mn6_distTwoSets","between Two Sets",void 0,void 0,2),t+=this.getRadio("mn6_distance","mn6_distManySets","among Many Sets",void 0,void 0,2),t+=this.getRadio("mn6_distance","mn6_distanceNo","Hide",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_anglewrap","Angle",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_angle","mn6_angleManySets","among Many Sets",void 0,1,2),t+=this.getRadio("mn6_angle","mn6_angleTwoSets","b/w Two Vectors",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_area","Surface Area",1,1),t+=this.getMenuText("mn6_addlabelwrap","Label",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_addlabel","mn6_addlabelYes","by Picking Atoms",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelSelection","per Selection",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelAtoms","per Atom",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelElements","per Atom Element",void 0,1,2),void 0===e.cfg.cid&&(t+=this.getRadio("mn6_addlabel","mn6_addlabelResidues","per Residue",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelResnum","per Residue & Number",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelRefnum","per Reference Number",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelIg","per Ig Domain",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelChains","per Chain",void 0,void 0,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelTermini","N- & C-Termini",void 0,1,2)),t+=this.getMenuSep(),t+=this.getRadio("mn6_addlabel","mn6_labelColor","Change Label Color",void 0,1,2),t+=this.getRadio("mn6_addlabel","mn6_addlabelNo","Remove",!0,1,2),t+="
      ",t+="",t+=this.getMenuText("labelscalewrap","Label Scale",void 0,1,1),t+="
        ";for(let e=1;e<=4;++e){let s=2*e;t+=this.getRadio("mn6_labelscale","mn6_labelscale0"+s,"0."+s,void 0,1,2)}for(let e=2;e<=10;++e){let s=(e/2).toFixed(1);t+=2==e?this.getRadio("mn6_labelscale","mn6_labelscale"+e+"0",s,!0,1,2):this.getRadio("mn6_labelscale","mn6_labelscale"+e+"0",s,void 0,1,2)}if(t+="
      ",t+="",t+=this.getMenuSep(),void 0===e.cfg.cid){t+=this.getMenuText("mn6_chemicalbindingwrap","Chem. Binding",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_chemicalbinding","mn6_chemicalbindingshow","Show",void 0,void 0,2),t+=this.getRadio("mn6_chemicalbinding","mn6_chemicalbindinghide","Hide",!0,void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn6_ssbondswrap","Disulfide Bonds",void 0,1,1),t+="
        ",t+=this.getRadio("mn6_ssbonds","mn6_ssbondsYes","Show",!0,1,2),t+=this.getRadio("mn6_ssbonds","mn6_ssbondsExport","Export Pairs",void 0,void 0,2),t+=this.getRadio("mn6_ssbonds","mn6_ssbondsNo","Hide",void 0,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_clbondswrap","Cross-Linkages",void 0,void 0,1),t+="
        ",t+=this.getRadio("mn6_clbonds","mn6_clbondsYes","Show",!0,void 0,2),t+=this.getRadio("mn6_clbonds","mn6_clbondsExport","Export Pairs",void 0,void 0,2),t+=this.getRadio("mn6_clbonds","mn6_clbondsNo","Hide",void 0,void 0,2),t+="
      ",t+="",t+=this.getLink("mn6_DSSP","DSSP Secondary",void 0,1);let s=void 0!==e.cfg.mmtfid||void 0!==e.cfg.pdbid||void 0!==e.cfg.opmid||void 0!==e.cfg.mmcifid||void 0!==e.cfg.mmdbid||void 0!==e.cfg.mmdbafid||void 0!==e.cfg.gi||void 0!==e.cfg.blast_rep_id;s&&(t+=this.getMenuText("assemblyWrapper","Assembly",void 0,1,1),t+="
        ",e.cfg.bu?(t+=this.getRadio("mn6_assembly","mn6_assemblyYes","Biological Assembly",!0,1,2),t+=this.getRadio("mn6_assembly","mn6_assemblyNo","Asymmetric Unit",void 0,1,2)):(t+=this.getRadio("mn6_assembly","mn6_assemblyYes","Biological Assembly",void 0,1,2),t+=this.getRadio("mn6_assembly","mn6_assemblyNo","Asymmetric Unit",!0,1,2)),t+="
      ",t+=""),t+=this.getMenuText("mn6_symmetrywrap","Symmetry",void 0,void 0,1),t+="
        ",s&&(t+=this.getLink("mn6_symmetry","from PDB(precalculated) "+e.htmlCls.wifiStr,void 0,2)),t+=this.getLink("mn6_symd","from SymD(Dynamic) "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn6_clear_sym","Clear SymD Symmetry",void 0,2),t+=this.getLink("mn6_axes_only","Show Axes Only",void 0,2),t+="
      ",t+="",t+=this.getMenuText("mn6_igrefwrap","Ref. Number",void 0,void 0,1),t+="
        ",t+=this.getLink("mn6_igrefYes","Show Ig for Selection",void 0,2),t+=this.getLink("mn6_igrefTpl","Ig w/ Specified Template",void 0,2),t+=this.getLink("mn6_alignrefTpl","Align w/ Specified Template",void 0,2),t+=this.getLink("mn6_igrefNo","Reset Ig Ref. Number",void 0,2),t+=this.getMenuSep(),t+=this.getLink("mn6_customref","Custom Ref. Number",void 0,2),t+="
      ",t+="",t+=this.getMenuSep()}return t+=this.getLink("mn6_yournote","Window Title",void 0,1),void 0!==e.cfg.cid?(t+=this.getMenuText("mn1_linkwrap","Links",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_link_structure","Compound Summary "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_vast","Similar Compounds "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_bind","Structures Bound "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=""):(t+=this.getMenuText("mn1_linkwrap","Links",void 0,void 0,1),t+="
        ",t+=this.getLink("mn1_link_structure","Structure Summary "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_vast","Similar Structures "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_pubmed","Literature "+e.htmlCls.wifiStr,void 0,2),t+=this.getLink("mn1_link_protein","Protein "+e.htmlCls.wifiStr,void 0,2),t+="
      ",t+=""),t+="

    • ",t+="
    ",t}setMenu6(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
    ",t+="",t+="

    Help

    ",t+="
    ",t+=this.setMenu6_base(),t+="
    ",t+="
    ",t+="
    ",t}setMenu6_base(){let e=this.icn3dui;if(e.bNode)return"";let t="";return t+="
      ",t+=this.getMenuUrl("abouticn3d",e.htmlCls.baseUrl+"icn3d/icn3d.html#about","About iCn3D "+e.REVISION+"",1,1),t+=this.getMenuUrl("gallery",e.htmlCls.baseUrl+"icn3d/icn3d.html#gallery","Live Gallery "+e.htmlCls.wifiStr,1,1),t+=this.getMenuUrl("video",e.htmlCls.baseUrl+"icn3d/icn3d.html#videos","Videos & Tutorials",1,1),t+=this.getMenuText("mn6_faq","FAQ",void 0,1,1),t+="
        ",t+=this.getMenuUrl("faq_viewstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#viewstru","View structure",1,2),t+=this.getMenuUrl("faq_tfstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#tfstru","Transform Structure",1,2),t+=this.getMenuUrl("faq_selsubset",e.htmlCls.baseUrl+"icn3d/icn3d.html#selsubset","Select Subsets",1,2),t+=this.getMenuUrl("faq_stylecolor",e.htmlCls.baseUrl+"icn3d/icn3d.html#changestylecolor","Change Style/Color",1,2),t+=this.getMenuUrl("faq_savework",e.htmlCls.baseUrl+"icn3d/icn3d.html#saveview","Save Work",1,2),t+=this.getMenuUrl("faq_showanno",e.htmlCls.baseUrl+"icn3d/icn3d.html#showanno","Show Annotations",1,2),t+=this.getMenuUrl("faq_exportanno",e.htmlCls.baseUrl+"icn3d/icn3d.html#exportanno","Export Annotations",1,2),t+=this.getMenuUrl("faq_interanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#interanalysis","Interaction Analysis",1,2),t+=this.getMenuUrl("faq_mutanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#mutationanalysis","Mutation Analysis",1,2),t+=this.getMenuUrl("faq_elecpot",e.htmlCls.baseUrl+"icn3d/icn3d.html#elecpot","Electrostatic Pot.",1,2),t+=this.getMenuUrl("faq_simipdb",e.htmlCls.baseUrl+"icn3d/icn3d.html#simivast","Similar PDB",1,2),t+=this.getMenuUrl("faq_simialphapdb",e.htmlCls.baseUrl+"icn3d/icn3d.html#simifoldseek","Similar AlphaFold/PDB",1,2),t+=this.getMenuUrl("faq_alnstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#alignmul","Align Multiple Structures",1,2),t+=this.getMenuUrl("faq_batchanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#batchanalysis","Batch Analysis",1,2),t+=this.getMenuUrl("faq_batchanal",e.htmlCls.baseUrl+"icn3d/icn3d.html#igrefnum","Assign Ig Ref. Numbers",1,2),t+=this.getMenuUrl("faq_embedicn3d",e.htmlCls.baseUrl+"icn3d/icn3d.html#embedicn3d","Embed iCn3D",1,2),t+="
      ",t+="",t+=this.getMenuUrl("citing",e.htmlCls.baseUrl+"icn3d/icn3d.html#citing","Citing iCn3D",void 0,1),t+=this.getMenuText("mn6_source","Source Code",void 0,1,1),t+="
        ",t+=this.getMenuUrl("github","https://github.com/ncbi/icn3d","GitHub (browser) "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("npm","https://www.npmjs.com/package/icn3d","npm (Node.js) "+e.htmlCls.wifiStr,1,2),t+=this.getMenuUrl("notebook","https://pypi.org/project/icn3dpy","Jupyter Notebook "+e.htmlCls.wifiStr,1,2),t+="
      ",t+="",t+=this.getMenuText("mn6_develop","Develop",void 0,void 0,1),t+="
        ",t+=this.getMenuUrl("dev_embedicn3d2",e.htmlCls.baseUrl+"icn3d/icn3d.html#HowToUse","Embed iCn3D",void 0,2),t+=this.getMenuUrl("dev_urlpara",e.htmlCls.baseUrl+"icn3d/icn3d.html#parameters","URL Parameters",void 0,2),t+=this.getMenuUrl("dev_command",e.htmlCls.baseUrl+"icn3d/icn3d.html#commands","Commands",void 0,2),t+=this.getMenuUrl("dev_datastru",e.htmlCls.baseUrl+"icn3d/icn3d.html#datastructure","Data Structure",void 0,2),t+=this.getMenuUrl("dev_classstru",e.htmlCls.baseUrl+"icn3d/icn3d.html#classstructure","Class Structure",void 0,2),t+=this.getMenuUrl("dev_addclass",e.htmlCls.baseUrl+"icn3d/icn3d.html#addclass","Add New Classes",void 0,2),t+=this.getMenuUrl("dev_modfunc",e.htmlCls.baseUrl+"icn3d/icn3d.html#modifyfunction","Modify Functions",void 0,2),t+=this.getMenuUrl("dev_restful",e.htmlCls.baseUrl+"icn3d/icn3d.html#restfulapi","RESTful APIs",void 0,2),t+=this.getMenuUrl("dev_contributor",e.htmlCls.baseUrl+"icn3d/icn3d.html#contributors","iCn3D Contributors",void 0,2),t+="
      ",t+="",t+=this.getMenuUrl("helpdoc",e.htmlCls.baseUrl+"icn3d/docs/icn3d_help.html","Help Doc "+e.htmlCls.wifiStr,1,1),t+=this.getMenuSep(),t+=this.getMenuText("mn6_tfhint","Transform Hints",void 0,1,1),t+="
        ",t+=this.getMenuText("mn6_rotate","Rotate",void 0,1,2),t+="
          ",t+="
        • Left Mouse (Click & Drag)
        • ",t+="
        • Key l: Left
        • ",t+="
        • Key j: Right
        • ",t+="
        • Key i: Up
        • ",t+="
        • Key m: Down
        • ",t+="
        • Shift + Key l: Left 90°
        • ",t+="
        • Shift + Key j: Right 90°
        • ",t+="
        • Shift + Key i: Up 90°
        • ",t+="
        • Shift + Key m: Down 90°
        • ",t+="
        ",t+="",t+=this.getMenuText("mn6_zoom","Zoom",void 0,1,2),t+="
          ",t+="
        • Middle Mouse
          (Pinch & Spread)
        • ",t+="
        • Key z: Zoom in
        • ",t+="
        • Key x: Zoom out
        • ",t+="
        ",t+="",t+=this.getMenuText("mn6_translate","Translate",void 0,1,2),t+="
          ",t+="
        • Right Mouse
          (Two Finger Click & Drag)
        • ",t+="
        ",t+="",t+="
      ",t+="",t+=this.getMenuUrl("selhints",e.htmlCls.baseUrl+"icn3d/icn3d.html#selsubset","Selection Hints",void 0,1),t+=this.getMenuUrl("helpdesk","https://support.nlm.nih.gov/support/create-case/","Write to Help Desk",1,1),t+="

    • ",t+="
    ",t}hideMenu(){let e=this.icn3dui;e.bNode||(void 0!==$("#"+e.pre+"mnlist")[0]&&($("#"+e.pre+"mnlist")[0].style.display="none"),void 0!==$("#"+e.pre+"mnLogSection")[0]&&($("#"+e.pre+"mnLogSection")[0].style.display="none"),void 0!==$("#"+e.pre+"cmdlog")[0]&&($("#"+e.pre+"cmdlog")[0].style.display="none"),$("#"+e.pre+"title")[0].style.margin="10px 0 0 10px")}showMenu(){let e=this.icn3dui;e.bNode||(void 0!==$("#"+e.pre+"mnlist")[0]&&($("#"+e.pre+"mnlist")[0].style.display="block"),void 0!==$("#"+e.pre+"mnLogSection")[0]&&($("#"+e.pre+"mnLogSection")[0].style.display="block"),void 0!==$("#"+e.pre+"cmdlog")[0]&&($("#"+e.pre+"cmdlog")[0].style.display="block"))}}class c{constructor(e){this.icn3dui=e}openDlg(e,t){let s=this.icn3dui;s.icn3d,s.bNode||(e=s.pre+e,s.cfg.notebook?this.openDlgNotebook(e,t):this.openDlgRegular(e,t),s.htmlCls.themecolor||(s.htmlCls.themecolor="blue"),s.htmlCls.setMenuCls.setTheme(s.htmlCls.themecolor))}addSaveButton(e){let t=this.icn3dui;t.icn3d,t.bNode||void 0!==this.dialogHashSave&&this.dialogHashSave.hasOwnProperty(e)||($("#"+e).parent().children(".ui-dialog-titlebar").append("
    "),void 0===this.dialogHashSave&&(this.dialogHashSave={}),this.dialogHashSave[e]=1)}addHideButton(e){let t=this.icn3dui;t.icn3d,t.bNode||void 0!==this.dialogHashHide&&this.dialogHashHide.hasOwnProperty(e)||($("#"+e).parent().children(".ui-dialog-titlebar").append("
    "),void 0===this.dialogHashHide&&(this.dialogHashHide={}),this.dialogHashHide[e]=1)}getDialogStatus(){let e=this.icn3dui;if(e.icn3d,e.bNode)return;let t={},s={},i=$("#"+e.pre+"dl_selectannotations").hasClass("ui-dialog-content"),n=$("#"+e.pre+"dl_graph").hasClass("ui-dialog-content"),l=$("#"+e.pre+"dl_linegraph").hasClass("ui-dialog-content"),r=$("#"+e.pre+"dl_scatterplot").hasClass("ui-dialog-content"),o=$("#"+e.pre+"dl_ligplot").hasClass("ui-dialog-content"),a=$("#"+e.pre+"dl_contactmap").hasClass("ui-dialog-content"),d=$("#"+e.pre+"dl_alignerrormap").hasClass("ui-dialog-content"),c=$("#"+e.pre+"dl_interactionsorted").hasClass("ui-dialog-content"),h=$("#"+e.pre+"dl_alignment").hasClass("ui-dialog-content"),p=$("#"+e.pre+"dl_2ddgm").hasClass("ui-dialog-content"),m=$("#"+e.pre+"dl_2dctn").hasClass("ui-dialog-content"),u=$("#"+e.pre+"dl_definedsets").hasClass("ui-dialog-content");return t.bSelectannotationsInit2=!1,t.bGraph2=!1,t.bLineGraph2=!1,t.bScatterplot2=!1,t.bLigplot2=!1,t.bTable2=!1,t.bAlignmentInit2=!1,t.bTwoddgmInit2=!1,t.bTwodctnInit2=!1,t.bSetsInit2=!1,s.dl_selectannotations="bSelectannotationsInit2",s.dl_graph="bGraph2",s.dl_linegraph="bLineGraph2",s.dl_scatterplot="bScatterplot2",s.dl_ligplot="bLigplot2",s.dl_contactmap="bContactmap2",s.dl_alignerrormap="bAlignerrormap2",s.dl_interactionsorted="bTable2",s.dl_alignment="bAlignmentInit2",s.dl_2ddgm="bTwoddgmInit2",s.dl_2dctn="bTwodctnInit2",s.dl_definedsets="bSetsInit2",i&&(t.bSelectannotationsInit2=$("#"+e.pre+"dl_selectannotations").dialog("isOpen")),n&&(t.bGraph2=$("#"+e.pre+"dl_graph").dialog("isOpen")),l&&(t.bLineGraph2=$("#"+e.pre+"dl_linegraph").dialog("isOpen")),r&&(t.bScatterplot2=$("#"+e.pre+"dl_scatterplot").dialog("isOpen")),o&&(t.bLigplot2=$("#"+e.pre+"dl_ligplot").dialog("isOpen")),a&&(t.bContactmap2=$("#"+e.pre+"dl_contactmap").dialog("isOpen")),d&&(t.bAlignerror2=$("#"+e.pre+"dl_alignerrormap").dialog("isOpen")),c&&(t.bTable2=$("#"+e.pre+"dl_interactionsorted").dialog("isOpen")),h&&(t.bAlignmentInit2=$("#"+e.pre+"dl_alignment").dialog("isOpen")),p&&(t.bTwoddgmInit2=$("#"+e.pre+"dl_2ddgm").dialog("isOpen")),m&&(t.bTwodctnInit2=$("#"+e.pre+"dl_2dctn").dialog("isOpen")),u&&(t.bSetsInit2=$("#"+e.pre+"dl_definedsets").dialog("isOpen")),{status:t,id2flag:s}}openDlgHalfWindow(e,t,s,i){let n=this.icn3dui,l=n.icn3d;if(n.bNode)return;let r=this,o=n.htmlCls.width2d+20;l.resizeCanvasCls.resizeCanvas(n.htmlCls.WIDTH-s,n.htmlCls.HEIGHT,i);let a,d=n.htmlCls.HEIGHT,c=s;a=!n.cfg.showmenu||n.utilsCls.isMobile()||n.cfg.mobilemenu?{my:"left top",at:"right top",of:"#"+n.pre+"viewer",collision:"none"}:{my:"left top",at:"right top+40",of:"#"+n.pre+"viewer",collision:"none"},n.cfg.resize=!1,window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:d,width:c,modal:!1,position:a,close:function(t){let s=r.getDialogStatus(),i=s.status,a=s.id2flag,d=!1;for(let t in a){let s=e===n.pre+t;for(let e in i)i.hasOwnProperty(e)||(s=s&&!i[e]);d=d||s}if(d)if(i.bTwoddgmInit2||i.bTwodctnInit2||i.bSetsInit2){let e=n.utilsCls.isMobile()?n.htmlCls.WIDTH:n.htmlCls.WIDTH-o;l.resizeCanvasCls.resizeCanvas(e,n.htmlCls.HEIGHT,!0),i.bTwoddgmInit2&&r.openDlg2Ddgm(n.pre+"dl_2ddgm",void 0,i.bSetsInit2),i.bTwodctnInit2&&r.openDlg2Ddgm(n.pre+"dl_2dctn",void 0,i.bSetsInit2),i.bSetsInit2&&r.openDlg2Ddgm(n.pre+"dl_definedsets")}else l.resizeCanvasCls.resizeCanvas(n.htmlCls.WIDTH,n.htmlCls.HEIGHT,!0)},resize:function(t){if(e==n.pre+"dl_selectannotations")l.annotationCls.hideFixedTitle();else if(e==n.pre+"dl_graph"){let t=$("#"+e).width(),s=$("#"+e).height();d3.select("#"+n.svgid).attr("width",t).attr("height",s)}else if(e==n.pre+"dl_linegraph"||e==n.pre+"dl_scatterplot"||e==n.pre+"dl_ligplot"||e==n.pre+"dl_contactmap"||e==n.pre+"dl_alignerrormap"){let t=status.bTwoddgmInit2||status.bSetsInit2?(n.htmlCls.WIDTH-o)/2:n.htmlCls.WIDTH/2,s=$("#"+e).width()/t;if(e==n.pre+"dl_linegraph"){let e=l.linegraphWidth*s;$("#"+n.linegraphid).attr("width",e)}else if(e==n.pre+"dl_scatterplot"){let e=l.scatterplotWidth*s;$("#"+n.scatterplotid).attr("width",e)}else if(e==n.pre+"dl_ligplot"){let e=l.ligplotWidth*s;$("#"+n.ligplotid).attr("width",e)}else if(e==n.pre+"dl_ligplot"){let e=l.ligplotWidth*s;$("#"+n.ligplotid).attr("width",e)}else if(e==n.pre+"dl_contactmap"){let e=l.contactmapWidth*s;$("#"+n.contactmapid).attr("width",e)}else if(e==n.pre+"dl_alignerrormap"){let e=l.alignerrormapWidth*s;$("#"+n.alignerrormapid).attr("width",e)}}}}),this.addSaveButton(e),this.addHideButton(e)}openDlg2Ddgm(e,t,s){let i=this.icn3dui,n=i.icn3d;if(i.bNode)return;let l,r,o=this,a=i.htmlCls.width2d+20;e===i.pre+"dl_definedsets"?(l="right top",r="Select sets"):e!==i.pre+"dl_2ddgm"&&e!==i.pre+"dl_2dctn"||(l=s?"right top+240":"right top",r=e===i.pre+"dl_2ddgm"?"2D Diagram":"2D Cartoon");let d={my:"left top+"+i.htmlCls.MENU_HEIGHT,at:l,of:"#"+i.pre+"viewer",collision:"none"};window.dialog=$("#"+e).dialog({autoOpen:!0,title:r,height:"auto",width:a,modal:!1,position:d,close:function(e){let t=o.getDialogStatus().status;t.bSelectannotationsInit2||t.bGraph2||t.bLineGraph2||t.bScatterplot2||t.bLigplot2||t.bTable2||t.bAlignmentInit2||n.resizeCanvasCls.resizeCanvas(i.htmlCls.WIDTH,i.htmlCls.HEIGHT,!0)},resize:function(t,s){e==i.pre+"dl_2dctn"&&(n.resizeRatioX=s.size.width/i.htmlCls.width2d,n.resizeRatioY=s.size.height/(i.htmlCls.width2d+70))},resizeStop:function(e,t){n.resizeRatioX=t.size.width/i.htmlCls.width2d,n.resizeRatioY=t.size.height/(i.htmlCls.width2d+70)}}),this.addSaveButton(e),this.addHideButton(e)}openDlgRegular(e,t){let s=this.icn3dui,i=s.icn3d;if(s.bNode)return;let n=400,l=150,r=s.htmlCls.width2d+20,o=this.getDialogStatus().status;if(e===s.pre+"dl_selectannotations"||e===s.pre+"dl_graph"||e===s.pre+"dl_linegraph"||e===s.pre+"dl_scatterplot"||e===s.pre+"dl_ligplot"||e===s.pre+"dl_contactmap"||e===s.pre+"dl_alignerrormap"||e===s.pre+"dl_interactionsorted"||e===s.pre+"dl_alignment"){let a=.5*s.htmlCls.WIDTH-.5*r;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)this.openDlgHalfWindow(e,t,a,!0),(o.bTwoddgmInit2||o.bTwodctnInit2||o.bSetsInit2)&&(i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-a-r,s.htmlCls.HEIGHT,!0),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,o.bSetsInit2),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,o.bSetsInit2),o.bSetsInit2&&this.openDlg2Ddgm(s.pre+"dl_definedsets"));else{i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH,.5*s.htmlCls.HEIGHT,!0),l=.5*s.htmlCls.HEIGHT,n=s.htmlCls.WIDTH;let a={my:"left top",at:"left bottom+32",of:"#"+s.pre+"canvas",collision:"none"};window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:l,width:n,modal:!1,position:a,close:function(t){if(!((e!==s.pre+"dl_selectannotations"||o.bAlignmentInit2||o.bGraph2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_graph"||o.bSelectannotationsInit2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_alignment"||o.bSelectannotationsInit2||o.bGraph2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_interactionsorted"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_linegraph"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bScatterplot2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_scatterplot"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bLigplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_ligplot"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bContactmap2||o.bAlignerrormap2)&&(e!==s.pre+"dl_contactmap"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bAlignerrormap2)&&(e!==s.pre+"dl_alignerrormap"||o.bSelectannotationsInit2||o.bGraph2||o.bAlignmentInit2||o.bTable2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bContactmap2)))if(o.bTwoddgmInit2||o.bTwodctnInit2||o.bSetsInit2){let e=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(e,s.htmlCls.HEIGHT,!0),o.bTwoddgmInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,o.bSetsInit2),o.bTwodctnInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,o.bSetsInit2),o.bSetsInit2&&thisClass.openDlg2Ddgm(s.pre+"dl_definedsets")}else i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH,s.htmlCls.HEIGHT,!0)},resize:function(t){if(e==s.pre+"dl_selectannotations")i.annotationCls.hideFixedTitle();else if(e==s.pre+"dl_graph"){let t=$("#"+e).width(),i=$("#"+e).height();d3.select("#"+s.svgid).attr("width",t).attr("height",i)}else if(e==s.pre+"dl_linegraph"||e==s.pre+"dl_scatterplot"||e==s.pre+"dl_ligplot"||e==s.pre+"dl_contactmap"||e==s.pre+"dl_alignerrormap"){let t=o.bTwoddgmInit2||o.bSetsInit2?(s.htmlCls.WIDTH-r)/2:s.htmlCls.WIDTH/2,n=$("#"+e).width()/t;if(e==s.pre+"dl_linegraph"){let e=i.linegraphWidth*n;$("#"+s.linegraphid).attr("width",e)}else if(e==s.pre+"dl_scatterplot"){let e=i.scatterplotWidth*n;$("#"+s.scatterplotid).attr("width",e)}else if(e==s.pre+"dl_ligplot"){let e=i.ligplotWidth*n;$("#"+s.ligplotid).attr("width",e)}else if(e==s.pre+"dl_contactmap"){let e=i.contactmapWidth*n;$("#"+s.contactmapid).attr("width",e)}else if(e==s.pre+"dl_alignerrormap"){let e=i.alignerrormapWidth*n;$("#"+s.alignerrormapid).attr("width",e)}}}}),this.addSaveButton(e),this.addHideButton(e)}}else if(e===s.pre+"dl_2ddgm"||e===s.pre+"dl_2dctn"){let t=0;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)(o.bSelectannotationsInit2||o.bGraph2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bTable2||o.bAlignmentInit2)&&(t=.5*s.htmlCls.WIDTH-.5*r),i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-t-r,s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,void 0,o.bSetsInit2);else{let t=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(t,.5*s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT,o.bSetsInit2)}}else{let a;if(l="auto",n="auto",e===s.pre+"dl_addtrack"?n="50%":e===s.pre+"dl_menupref"&&(n=600,l=500),e===s.pre+"dl_definedsets"){let t=0;if(s.htmlCls.WIDTH>=s.htmlCls.HEIGHT)(o.bSelectannotationsInit2||o.bGraph2||o.bLineGraph2||o.bScatterplot2||o.bLigplot2||o.bTable2||o.bAlignmentInit2)&&(t=.5*s.htmlCls.WIDTH-.5*r),i.resizeCanvasCls.resizeCanvas(s.htmlCls.WIDTH-t-r,s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",void 0,!0),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",void 0,!0);else{let t=s.utilsCls.isMobile()?s.htmlCls.WIDTH:s.htmlCls.WIDTH-r;i.resizeCanvasCls.resizeCanvas(t,.5*s.htmlCls.HEIGHT,!0),this.openDlg2Ddgm(e,.5*s.htmlCls.HEIGHT),o.bTwoddgmInit2&&this.openDlg2Ddgm(s.pre+"dl_2ddgm",.5*s.htmlCls.HEIGHT,!0),o.bTwodctnInit2&&this.openDlg2Ddgm(s.pre+"dl_2dctn",.5*s.htmlCls.HEIGHT,!0)}}else s.utilsCls.isMobile()?a={my:"left top",at:"left bottom-50",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_allinteraction"||e===s.pre+"dl_buriedarea"?(a={my:"right top",at:"right top+50",of:"#"+i.divid,collision:"none"},n=700,l=500):a=e===s.pre+"dl_rmsd"||e===s.pre+"dl_legend"?{my:"left bottom",at:"left+20 bottom-20",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_symd"?{my:"left top",at:"right-200 bottom-200",of:"#"+s.pre+"canvas",collision:"none"}:s.cfg.align?{my:"left top",at:"left top+90",of:"#"+s.pre+"canvas",collision:"none"}:e===s.pre+"dl_mmdbafid"?{my:"left top",at:"left top+130",of:"#"+s.pre+"canvas",collision:"none"}:{my:"left top",at:"left top+50",of:"#"+s.pre+"canvas",collision:"none"},window.dialog=$("#"+e).dialog({autoOpen:!0,title:t,height:l,width:n,modal:!1,position:a}),this.addSaveButton(e),this.addHideButton(e)}$(".ui-dialog .ui-button span").removeClass("ui-icon-closethick").addClass("ui-icon-close")}openDlgNotebook(e,t){let s=this.icn3dui,i=s.icn3d;if(s.bNode)return;let n=400,l=150,r=s.htmlCls.width2d+20;e===s.pre+"dl_selectannotations"||e===s.pre+"dl_graph"||e===s.pre+"dl_linegraph"||e===s.pre+"dl_scatterplot"||e===s.pre+"dl_ligplot"||e===s.pre+"dl_contactmap"||e===s.pre+"dl_alignerrormap"||e===s.pre+"dl_interactionsorted"||e===s.pre+"dl_alignment"?($("#"+e).show(),$("#"+e+"_nb").show(),$("#"+e+"_title").html(t),l=.5*s.htmlCls.HEIGHT,n=s.htmlCls.WIDTH,$("#"+e).width(n),$("#"+e).height(l),$("#"+e).resize((function(t){let n=s.htmlCls.WIDTH/2,l=$("#"+e).width()/n;if(e==s.pre+"dl_selectannotations")i.annotationCls.hideFixedTitle();else if(e==s.pre+"dl_graph"){let t=$("#"+e).width(),i=$("#"+e).height();d3.select("#"+s.svgid).attr("width",t).attr("height",i)}else if(e==s.pre+"dl_linegraph"){let e=i.linegraphWidth*l;$("#"+s.linegraphid).attr("width",e)}else if(e==s.pre+"dl_scatterplot"){let e=i.scatterplotWidth*l;$("#"+s.scatterplotid).attr("width",e)}else if(e==s.pre+"dl_ligplot"){let e=i.ligplotWidth*l;$("#"+s.ligplotid).attr("width",e)}else if(e==s.pre+"dl_contactmap"){let e=i.contactmapWidth*l;$("#"+s.contactmapid).attr("width",e)}else if(e==s.pre+"dl_alignerrormap"){let e=i.alignerrormapWidth*l;$("#"+s.alignerrormapid).attr("width",e)}}))):(i.bRender&&($("#"+e).show(),$("#"+e+"_nb").show(),$("#"+e+"_title").html(t)),l="auto",n="auto",e===s.pre+"dl_addtrack"?n="50%":e===s.pre+"dl_2ddgm"||e===s.pre+"dl_2dctn"||e===s.pre+"dl_definedsets"?n=r:e!==s.pre+"dl_allinteraction"&&e!==s.pre+"dl_buriedarea"||(n=700,l=500),$("#"+e).width(n),$("#"+e).height(l))}}class h{constructor(e){this.icn3dui=e}setCustomDialogs(){let e=this.icn3dui;if(e.icn3d,e.bNode)return"";return""}getHtmlAlignResidueByResidue(e,t,s){let i=this.icn3dui;i.icn3d;let n="";return n+="All chains will be aligned to the first chain in the comma-separated chain IDs. Each chain ID has the form of PDBID_chain (e.g., 1HHO_A, case sensitive) or UniprotID (e.g., P69905 for AlphaFold structures).

    ",n+="Chain IDs: "+i.htmlCls.inputTextStr+"id='"+i.pre+e+"' value='P69905,P01942,1HHO_A' size=50>

    ",n+='Each alignment is defined as " | "-separated residue lists in one line. "10-50" means a range of residues from 10 to 50.

    ",n+=i.htmlCls.buttonStr+s+"'>Align Residue by Residue
    ",n}addNotebookTitle(e,t,s){let i=this.icn3dui;i.icn3d;let n='';return s&&(n+='
    '),n}setDialogs(){let e=this.icn3dui,t=e.icn3d;if(e.bNode)return"";let s="";e.htmlCls.optionStr="";for(let l=0,r=t[n].length;l"+r+", Strands: "+s[r]+""}i+=""}return i}getAnnoHeader(){let e=this.icn3dui;e.icn3d;let t="";t+="
    Annotations: 
    ",t+="
    ";let s="",t+=i+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_cdd' checked>Conserved Domains"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_clinvar'>ClinVar"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_binding'>Functional Sites"+e.htmlCls.space2+"",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_custom'>Custom"+e.htmlCls.space2+"",t+=i+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_3dd'>3D Domains"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_snp'>SNPs"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ptm'>PTM (UniProt)"+e.htmlCls.space2+"",t+="",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ssbond'>Disulfide Bonds"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_interact'>Interactions"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_crosslink'>Cross-Linkages"+e.htmlCls.space2+"",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_transmem'>Transmembrane"+e.htmlCls.space2+"",t+="",t+="",t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_ig'>Ig Domains"+e.htmlCls.space2+"",t+="",t+="
    ",i="";return t+=s+e.htmlCls.inputCheckStr+"id='"+e.pre+"anno_all'>All"+e.htmlCls.space2+"
    ",t}}class p{constructor(e){this.icn3dui=e}setLogCmd(e,t,s){var i=this.icn3dui;i.icn3d,i.htmlCls.clickMenuCls.setLogCmd(e,t,s)}fullScreenChange(){let e=this.icn3dui,t=e.icn3d,s=this;e.bNode||document.fullscreenElement||document.webkitFullscreenElement||document.mozFullscreenElement||document.msFullscreenElement||(s.setLogCmd("exit full screen",!1),t.bFullscreen=!1,e.utilsCls.setViewerWidthHeight(e,!0),t.applyCenterCls.setWidthHeight(e.htmlCls.WIDTH,e.htmlCls.HEIGHT),t.drawCls.draw())}convertUniProtInChains(e){this.icn3dui.icn3d;let t=e.split(","),s="";for(let e=0,i=t.length;e0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(l)),s.cfg.aligntool=e;let r="vast"==e?"structure align":"tmalign";if(r+=t?" msa":"",l.length>0?n.setLogCmd("realign on "+r+" | "+l,!0):n.setLogCmd("realign on "+r,!0),t){if(0==l.length){l=[];let e={};for(let t in i.chains){let s=i.firstAtomObjCls.getFirstAtomObj(i.chains[t]);e.hasOwnProperty(s.structure)||!i.proteins.hasOwnProperty(s.serial)&&!i.nucleotides.hasOwnProperty(s.serial)||(l.push(t),e[s.structure]=1)}}await i.realignParserCls.realignOnStructAlignMsa(l)}else await i.realignParserCls.realignOnStructAlign()}async readFile(e,t,s,i,n,l){let r=this.icn3dui,o=r.icn3d,a=this,d=t[s],c=e?"append":"load";c+=n?" mmcif file ":l?" png file ":" pdb file ";let h=new FileReader;h.onload=async function(h){let p=h.target.result;if(a.setLogCmd(c+d.name,!1),e?(o.resetConfig(),o.bResetAnno=!0,o.bResetSets=!0):o.init(),o.bInputfile=!0,o.InputfileType=n?"mmcif":l?"png":"pdb",l){let e=await r.htmlCls.setHtmlCls.loadPng(p);if(p=e.pdb,!p)return;o.statefileArray||(o.statefileArray=[]),o.statefileArray.push(e.statefile)}o.InputfileData=o.InputfileData?o.InputfileData+"\nENDMDL\n"+p:p,i=s>0?i+"\nENDMDL\n"+p:p,Object.keys(t).length==s+1?(e&&(o.hAtoms={},o.dAtoms={}),n?await o.mmcifParserCls.loadMultipleMmcifData(i,void 0,e):await o.pdbParserCls.loadPdbData(i,void 0,void 0,e)):await a.readFile(e,t,s+1,i,n,l),e&&(o.bSetChainsAdvancedMenu&&o.definedSetsCls.showSets(),o.bResetAnno=!0,o.bAnnoShown&&(await o.showAnnoCls.showAnnotations(),o.annotationCls.resetAnnoTabAll()))},"object"==typeof d&&h.readAsText(d)}async loadPdbFile(e,t,s){let i=this.icn3dui,n=i.icn3d;n.bInitial=!0,i.cfg.notebook||dialog.dialog("close"),i.cfg.notebook?n.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let l=$("#"+i.pre+t)[0].files;l[0]?(i.htmlCls.setHtmlCls.fileSupport(),n.molTitle="",n.dataStrAll="",await this.readFile(e,l,0,"",s)):alert("Please select a file before clicking 'Load'")}saveHtml(e){let t=this.icn3dui.icn3d,s="";s+='\n',s+='\n',s+=$("#"+e).html();let i=e.split("_"),n=i.length>2?i[2]:e,l=Object.keys(t.structures)[0];Object.keys(t.structures).length>1&&(l+="-"+Object.keys(t.structures)[1]),t.saveFileCls.saveFile(l+"-"+n+".html","html",encodeURIComponent(s))}setPredefinedMenu(e){let t=this.icn3dui,s=t.icn3d;if(Object.keys(s.chains).length<2)return void alert("At least two chains are required for alignment...");t.htmlCls.clickMenuCls.SetChainsAdvancedMenu();let i=s.definedSetsCls.setAtomMenu(["protein"]);$("#"+t.pre+e).length&&$("#"+t.pre+e).html(i),$("#"+t.pre+e).resizable()}async launchMmdb(e,t,s,i){let n=this.icn3dui,l=n.icn3d,r=this;n.cfg.notebook||dialog.dialog("close");let o=t?1:0;if(!(e=e.replace(/,/g," ").replace(/\s+/g,",").trim()))return void alert("Please enter a list of PDB IDs or AlphaFold UniProt IDs...");let a=e.split(",");if(i)if(l.structures||1!=a.length||4!=a[0].length&&isNaN(a[0])){n.cfg.mmdbafid=e,n.cfg.bu=o,l.bMmdbafid=!0,l.inputid=l.inputid?l.inputid+n.cfg.mmdbafid:n.cfg.mmdbafid,1==n.cfg.bu?l.loadCmd="load mmdbaf1 "+n.cfg.mmdbafid:l.loadCmd="load mmdbaf0 "+n.cfg.mmdbafid,n.htmlCls.clickMenuCls.setLogCmd(l.loadCmd,!0);let t=!!(l.structures&&Object.keys(l.structures).length>0);await l.chainalignParserCls.downloadMmdbAf(n.cfg.mmdbafid),t&&(l.bSetChainsAdvancedMenu&&l.definedSetsCls.showSets(),l.bAnnoShown&&(await l.showAnnoCls.showAnnotations(),l.annotationCls.resetAnnoTabAll()))}else{r.setLogCmd("load mmdb"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbid="+e+"&bu="+o,t)}else if(1!=a.length||4!=a[0].length&&isNaN(a[0])){r.setLogCmd("load mmdbaf"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbafid="+e+"&bu="+o,t)}else{r.setLogCmd("load mmdb"+o+" "+e,!1);let t=l.structures&&Object.keys(l.structures).length>0?"_blank":"_self";window.open(s+"?mmdbid="+e+"&bu="+o,t)}}allEventFunctions(){let e=this.icn3dui,t=e.icn3d,s=this;if(e.bNode)return;let i=document.URL,n=i.indexOf("?");i=-1==n?i:i.substr(0,n),i.indexOf("/vast/icn3d/")&&(i=i.replace(/\/vast\/icn3d\//g,"/icn3d/")),t.definedSetsCls.clickCustomAtoms(),t.definedSetsCls.clickCommand_apply(),t.definedSetsCls.clickModeswitch(),t.selectionCls.clickShow_selected(),t.selectionCls.clickHide_selected(),t.diagram2dCls.click2Ddgm(),t.cartoon2dCls.click2Dcartoon(),t.ligplotCls.clickLigplot(),t.addTrackCls.clickAddTrackButton(),t.resizeCanvasCls.windowResize(),t.annotationCls.setTabs(),t.resid2specCls.switchHighlightLevel(),e.utilsCls.isMobile()?(t.hlSeqCls.selectSequenceMobile(),t.hlSeqCls.selectChainMobile()):t.hlSeqCls.selectSequenceNonMobile(),e.htmlCls.clickMenuCls.clickMenu1(),e.htmlCls.clickMenuCls.clickMenu2(),e.htmlCls.clickMenuCls.clickMenu3(),e.htmlCls.clickMenuCls.clickMenu4(),e.htmlCls.clickMenuCls.clickMenu5(),e.htmlCls.clickMenuCls.clickMenu6(),e.myEventCls.onIds(["#"+e.pre+"back","#"+e.pre+"mn6_back"],"click",(async function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("back",!1),await i.resizeCanvasCls.back()})),e.myEventCls.onIds(["#"+e.pre+"forward","#"+e.pre+"mn6_forward"],"click",(async function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("forward",!1),await i.resizeCanvasCls.forward()})),e.myEventCls.onIds(["#"+e.pre+"fullscreen","#"+e.pre+"mn6_fullscreen"],"click",(function(t){let i=e.icn3d;t.preventDefault(),s.setLogCmd("enter full screen",!1),i.bFullscreen=!0,e.htmlCls.WIDTH=$(window).width(),e.htmlCls.HEIGHT=$(window).height(),i.applyCenterCls.setWidthHeight(e.htmlCls.WIDTH,e.htmlCls.HEIGHT),i.drawCls.draw(),i.resizeCanvasCls.openFullscreen($("#"+e.pre+"canvas")[0])})),document.addEventListener("fullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("webkitfullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("mozfullscreenchange",this.fullScreenChange.bind(this)),document.addEventListener("msfullscreenchange",this.fullScreenChange.bind(this)),e.myEventCls.onIds(["#"+e.pre+"toggle","#"+e.pre+"mn2_toggle"],"click",(function(t){e.icn3d.selectionCls.toggleSelection(),s.setLogCmd("toggle selection",!0)})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrYellow","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color yellow",!0),i.hColor=e.parasCls.thr(16776960),i.matShader=i.setColorCls.setOutlineColor("yellow"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrGreen","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color green",!0),i.hColor=e.parasCls.thr(65280),i.matShader=i.setColorCls.setOutlineColor("green"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_clrRed","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight color red",!0),i.hColor=e.parasCls.thr(16711680),i.matShader=i.setColorCls.setOutlineColor("red"),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleOutline","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight style outline",!0),i.bHighlight=1,i.hlUpdateCls.showHighlight()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleObject","click",(function(t){let i=e.icn3d;s.setLogCmd("set highlight style 3d",!0),i.bHighlight=2,i.hlUpdateCls.showHighlight()})),e.myEventCls.onIds("#"+e.pre+"mn2_hl_styleNone","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds(["#"+e.pre+"alternate","#"+e.pre+"mn2_alternate","#"+e.pre+"alternate2"],"click",(async function(t){let i=e.icn3d;i.bAlternate=!0,await i.alternateCls.alternateStructures(),i.bAlternate=!1,s.setLogCmd("alternate structures",!1)})),e.myEventCls.onIds("#"+e.pre+"mn2_realignresbyres","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_realignresbyres","Align multiple chains residue by residue")})),e.myEventCls.onIds("#"+e.pre+"realignSelection","click",(function(t){let i=e.icn3d;Object.keys(i.chains).length<2?alert("At least two chains are required for alignment..."):(i.realignParserCls.realign(),s.setLogCmd("realign",!0))})),e.myEventCls.onIds("#"+e.pre+"mn2_realignonseqalign","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realign","Please select chains to realign"),s.setPredefinedMenu("atomsCustomRealign")})),e.myEventCls.onIds("#"+e.pre+"mn2_realignonstruct","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realignbystruct","Please select chains to realign"),s.setPredefinedMenu("atomsCustomRealignByStruct")})),e.myEventCls.onIds("#"+e.pre+"mn2_realigntwostru","click",(function(t){e.icn3d.bRender&&e.htmlCls.dialogCls.openDlg("dl_realigntwostru","Please select structures to realign"),s.setPredefinedMenu("atomsCustomRealignByStruct2")})),e.myEventCls.onIds("#"+e.pre+"applyRealign","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomRealign").val();n.length>0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(n)),await i.realignParserCls.realignOnSeqAlign(),n.length>0?s.setLogCmd("realign on seq align | "+n,!0):s.setLogCmd("realign on seq align",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("vast",!1)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct_tmalign","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("tmalign",!1)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStructMsa","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("vast",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStructMsa_tmalign","click",(async function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.setRealign("tmalign",!0)})),e.myEventCls.onIds("#"+e.pre+"applyRealignByStruct_vastplus","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomRealignByStruct2").val();n.length>0&&(i.hAtoms=i.definedSetsCls.getAtomsFromNameArray(n)),await i.vastplusCls.realignOnVastplus(),n.length>0?s.setLogCmd("realign on vastplus | "+n,!0):s.setLogCmd("realign on vastplus",!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorSpectrumAcrossSets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorSpectrumAcross").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorAcrossSets(n,!0),s.setLogCmd("set color spectrum | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorSpectrumBySets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorSpectrum").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorBySets(n,!0),s.setLogCmd("set residues color spectrum | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorRainbowAcrossSets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorRainbowAcross").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorAcrossSets(n,!1),s.setLogCmd("set color rainbow | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyColorRainbowBySets","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"atomsCustomColorRainbow").val();if(0==n.length)return void alert("Please select some sets");i.setColorCls.setColorBySets(n,!1),s.setLogCmd("set residues color rainbow | "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"anno_summary","click",(function(t){let i=e.icn3d;t.preventDefault(),i.annotationCls.setAnnoViewAndDisplay("overview"),s.setLogCmd("set view overview",!0)})),e.myEventCls.onIds("#"+e.pre+"anno_details","click",(function(t){let i=e.icn3d;t.preventDefault(),i.annotationCls.setAnnoViewAndDisplay("detailed view"),s.setLogCmd("set view detailed view",!0)})),e.myEventCls.onIds("#"+e.pre+"show_annotations","click",(async function(t){let i=e.icn3d;await i.showAnnoCls.showAnnotations(),s.setLogCmd("view annotations",!0)})),e.myEventCls.onIds("#"+e.pre+"showallchains","click",(function(t){e.icn3d.annotationCls.showAnnoAllChains(),s.setLogCmd("show annotations all chains",!0)})),e.myEventCls.onIds("#"+e.pre+"show_alignsequences","click",(function(t){e.icn3d,e.htmlCls.dialogCls.openDlg("dl_alignment","Select residues in aligned sequences")})),e.myEventCls.onIds(["#"+e.pre+"show_2ddgm","#"+e.pre+"mn2_2ddgm"],"click",(async function(t){let i=e.icn3d;e.htmlCls.dialogCls.openDlg("dl_2ddgm","2D Diagram"),await i.viewInterPairsCls.retrieveInteractionData(),s.setLogCmd("view interactions",!0)})),e.myEventCls.onIds("#"+e.pre+"search_seq_button","click",(async function(t){e.icn3d,t.stopImmediatePropagation(),await s.searchSeq()})),e.myEventCls.onIds("#"+e.pre+"search_seq","keyup",(async function(t){e.icn3d,13===t.keyCode&&(t.preventDefault(),await s.searchSeq())})),e.myEventCls.onIds("#"+e.pre+"reload_vastplus","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("vast+ search "+$("#"+e.pre+"vastpluspdbid").val(),!1);let n=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open("https://www.ncbi.nlm.nih.gov/Structure/vastplus/vastplus.cgi?uid="+$("#"+e.pre+"vastpluspdbid").val(),n)})),e.myEventCls.onIds("#"+e.pre+"reload_vast","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("vast search "+$("#"+e.pre+"vastpdbid").val()+"_"+$("#"+e.pre+"vastchainid").val(),!1);let n=i.structures&&Object.keys(i.structures).length>0?"_blank":"_self";window.open("https://www.ncbi.nlm.nih.gov/Structure/vast/vastsrv.cgi?pdbid="+$("#"+e.pre+"vastpdbid").val()+"&chain="+$("#"+e.pre+"vastchainid").val(),n)})),e.myEventCls.onIds("#"+e.pre+"reload_foldseek","click",(function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"foldseekchainids").val(),l=s.convertUniProtInChains(n);s.setLogCmd("load chainalignment "+l,!0),window.open(i+"?chainalign="+l+"&aligntool=tmalign&showalignseq=1&bu=0","_self")})),e.myEventCls.onIds("#"+e.pre+"reload_mmtf","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load bcif "+$("#"+e.pre+"mmtfid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?bcifid="+$("#"+e.pre+"mmtfid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"mmtfid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmtf "+$("#"+e.pre+"mmtfid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmtfid="+$("#"+e.pre+"mmtfid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_pdb","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load pdb "+$("#"+e.pre+"pdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?pdbid="+$("#"+e.pre+"pdbid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"translate_pdb","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"translateX").val(),l=$("#"+e.pre+"translateY").val(),r=$("#"+e.pre+"translateZ").val();i.transformCls.translateCoord(i.hAtoms,parseFloat(n),parseFloat(l),parseFloat(r)),i.drawCls.draw(),s.setLogCmd("translate pdb "+n+" "+l+" "+r,!0)})),e.myEventCls.onIds("#"+e.pre+"measure_angle","click",(function(t){e.icn3d,t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let i=$("#"+e.pre+"v1X").val(),n=$("#"+e.pre+"v1Y").val(),l=$("#"+e.pre+"v1Z").val(),r=$("#"+e.pre+"v2X").val(),o=$("#"+e.pre+"v2Y").val(),a=$("#"+e.pre+"v2Z").val(),d=new THREE.Vector3(parseFloat(i),parseFloat(n),parseFloat(l)).angleTo(new THREE.Vector3(parseFloat(r),parseFloat(o),parseFloat(a)))/3.1416*180;d=Math.abs(d).toFixed(0),d>180&&(d-=180),d>90&&(d=180-d),s.setLogCmd("The angle is "+d+" degree",!1),$("#"+e.pre+"angle_value").val(d)})),e.myEventCls.onIds("#"+e.pre+"matrix_pdb","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=[];for(let t=0;t<16;++t)n.push(parseFloat($("#"+e.pre+"matrix"+t).val()));i.transformCls.rotateCoord(i.hAtoms,n),i.drawCls.draw(),s.setLogCmd("rotate pdb "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"pdbid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load pdb "+$("#"+e.pre+"pdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?pdbid="+$("#"+e.pre+"pdbid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_af","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load af "+$("#"+e.pre+"afid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?afid="+$("#"+e.pre+"afid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_afmap","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=e.cfg.afid?e.cfg.afid:$("#"+e.pre+"afid").val();s.setLogCmd("set half pae map "+n,!0),await i.contactMapCls.afErrorMap(n)})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfull","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=e.cfg.afid?e.cfg.afid:$("#"+e.pre+"afid").val();s.setLogCmd("set full pae map "+n,!0),await i.contactMapCls.afErrorMap(n,!0)})),e.myEventCls.onIds("#"+e.pre+"afid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load af "+$("#"+e.pre+"afid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?afid="+$("#"+e.pre+"afid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_opm","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load opm "+$("#"+e.pre+"opmid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?opmid="+$("#"+e.pre+"opmid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"opmid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load opm "+$("#"+e.pre+"opmid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?opmid="+$("#"+e.pre+"opmid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_align_refined","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=1&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=1&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_align_ori","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=0&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=0&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_align_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignid1").val()+","+$("#"+e.pre+"alignid2").val();s.setLogCmd("load alignment "+l+" | parameters &atype=2&bu=1",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?align="+l+"&showalignseq=1&atype=2&bu=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_alignaf","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignafid1").val()+"_A,"+$("#"+e.pre+"alignafid2").val()+"_A";s.setLogCmd("load chains "+l+" | residues | resdef ",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+l+"&resnum=&resdef=&showalignseq=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_alignaf_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"alignafid1").val()+"_A,"+$("#"+e.pre+"alignafid2").val()+"_A";s.setLogCmd("load chains "+l+" | residues | resdef | align tmalign",!1);let r=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+l+"&aligntool=tmalign&resnum=&resdef=&showalignseq=1",r)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids").val(),r=s.convertUniProtInChains(l);s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef ",!1);let o=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum=&resdef=&showalignseq=1&bu=0",o)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym2","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids2").val(),r=s.convertUniProtInChains(l),o=$("#"+e.pre+"resalignids").val();s.setLogCmd("load chains "+r+" on asymmetric unit | residues "+o+" | resdef ",!1);let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum="+o+"&resdef=&showalignseq=1&bu=0",a)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym3","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids3").val(),r=s.convertUniProtInChains(l),o=$("#"+e.pre+"predefinedres").val().trim().replace(/\n/g,": ");if(o&&r.split(",").length-1!=o.split(": ").length)return void alert("Please make sure the number of chains and the lines of predefined residues are the same...");s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef "+o,!1);let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&resnum=&resdef="+o+"&showalignseq=1&bu=0",a)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_asym4","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"chainalignids4").val(),l=s.convertUniProtInChains(n),r=$("#"+e.pre+"predefinedres2").val().trim().replace(/\n/g,": ");if(r&&l.split(",").length-1!=r.split(": ").length)return void alert("Please make sure the number of chains and the lines of predefined residues are the same...");e.cfg.resdef=r.replace(/:/gi,";");let o=l.split(",");await i.realignParserCls.realignChainOnSeqAlign(void 0,o,!0,!0),s.setLogCmd("realign predefined "+l+" "+r,!0)})),e.myEventCls.onIds("#"+e.pre+"reload_chainalign_tmalign","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"chainalignids").val(),r=s.convertUniProtInChains(l);s.setLogCmd("load chains "+r+" on asymmetric unit | residues | resdef | align tmalign",!1);let o=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?chainalign="+r+"&aligntool=tmalign&resnum=&resdef=&showalignseq=1&bu=0",o)})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_3d","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o;await n.scapCls.retrieveScap(e),s.setLogCmd("scap 3d "+e,!0),s.setLogCmd("select displayed set",!0)}else{let e=o.substr(0,o.indexOf("_"));s.setLogCmd("3d of mutation "+o,!1);let t=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?"+l+"="+e+"&command=scap 3d "+o+"; select displayed set",t)}})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_pdb","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o,t=!0;await n.scapCls.retrieveScap(e,void 0,t),s.setLogCmd("scap pdb "+e,!0)}else{let e=o.substr(0,o.indexOf("_"));s.setLogCmd("pdb of mutation "+o,!1);let t=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?"+l+"="+e+"&command=scap pdb "+o+"; select displayed set",t)}})),e.myEventCls.onIds("#"+e.pre+"reload_mutation_inter","click",(async function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l,r,o=$("#"+e.pre+"mutationids").val();if(l=$("#"+e.pre+"type_mmdbid").is(":checked")?"mmdbid":"afid",r=$("#"+e.pre+"showin_currentpage").is(":checked")?"currentpage":"newpage","currentpage"==r){let e=o,t=!0;await n.scapCls.retrieveScap(e,t),s.setLogCmd("scap interaction "+e,!0);let i=e.split("_"),l="."+i[1]+":"+i[2],r="snp_"+i[1]+"_"+i[2];s.setLogCmd("select "+l+" | name "+r,!0),s.setLogCmd("line graph interaction pairs | selected non-selected | hbonds,salt bridge,interactions,halogen,pi-cation,pi-stacking | false | threshold 3.8 6 4 3.8 6 5.5",!0),s.setLogCmd("adjust dialog dl_linegraph",!0),s.setLogCmd("select displayed set",!0)}else{let e=o.split(","),t=[];for(let s=0,i=e.length;s0?"_blank":"_self";window.open(i+"?"+l+"="+r+"&command=scap interaction "+o,a)}})),e.myEventCls.onIds("#"+e.pre+"reload_mmcif","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmcif "+$("#"+e.pre+"mmcifid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmcifid="+$("#"+e.pre+"mmcifid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"mmcifid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load mmcif "+$("#"+e.pre+"mmcifid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmcifid="+$("#"+e.pre+"mmcifid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_mmdb","click",(function(t){let n=e.icn3d;t.preventDefault(),s.setLogCmd("load mmdb1 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=1",l)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdb_asym","click",(function(t){let n=e.icn3d;t.preventDefault(),s.setLogCmd("load mmdb0 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=0",l)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_asym","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,0,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_append","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i,!0)})),e.myEventCls.onIds("#"+e.pre+"reload_mmdbaf_asym_append","click",(function(t){e.icn3d,t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,0,i,!0)})),e.myEventCls.onIds("#"+e.pre+"mmdbid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),s.setLogCmd("load mmdb1 "+$("#"+e.pre+"mmdbid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?mmdbid="+$("#"+e.pre+"mmdbid").val()+"&bu=1",l)}})),e.myEventCls.onIds("#"+e.pre+"mmdbafid","keyup",(function(t){if(e.icn3d,13===t.keyCode){t.preventDefault();let n=$("#"+e.pre+"mmdbafid").val();s.launchMmdb(n,1,i)}})),e.myEventCls.onIds("#"+e.pre+"reload_blast_rep_id","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=blast&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"run_esmfold","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),$("#"+e.pre+"dl_mmdbafid").hasClass("ui-dialog-content")&&$("#"+e.pre+"dl_mmdbafid").dialog("close");let n=$("#"+e.pre+"esmfold_fasta").val(),l="stru--";if(-1!=n.indexOf(">")){let e=n.indexOf("\n");if(i.esmTitle=n.substr(1,e-1).trim(),-1!=i.esmTitle.indexOf("|")){let e=i.esmTitle.split("|");l=e.length>2?e[1]:i.esmTitle}else l=-1!=i.esmTitle.indexOf(" ")?i.esmTitle.substr(0,i.esmTitle.indexOf(" ")):i.esmTitle;l.length<6&&(l=l.padEnd(6,"-")),n=n.substr(e+1)}if(n=n.replace(/\s/g,""),n.length>400)return void alert("Your sequence is larger than 400 characters. Please consider to split it as described at https://github.com/facebookresearch/esm/issues/21.");s.setLogCmd("Run ESMFold with the sequence "+n,!1);let r=await e.getAjaxPostPromise("https://api.esmatlas.com/foldSequence/v1/pdb/",n,!0,"Problem in returning PDB from ESMFold server...",void 0,!0,"text");i.bResetAnno=!0,i.bInputfile=!0,i.InputfileType="pdb",i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+r:r,i.bEsmfold=!0;await i.pdbParserCls.loadPdbData(r,l,void 0,!0,void 0,void 0,void 0,i.bEsmfold)})),e.myEventCls.onIds("#"+e.pre+"reload_alignsw","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids_smithwm "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=smithwm&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"reload_alignswlocal","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let l=$("#"+e.pre+"query_id").val().trim();if("M_"==l.substr(1,2))return void alert("You are inputting a nucleotide accession "+l+". Please use a protein accession instead.");let r=encodeURIComponent($("#"+e.pre+"query_fasta").val()),o=$("#"+e.pre+"blast_rep_id").val();s.setLogCmd("load seq_struct_ids_local_smithwm "+l+","+o,!1),l=""!==l&&void 0!==l?l:r;let a=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?from=icn3d&alg=local_smithwm&blast_rep_id="+o+"&query_id="+l+"&command=view annotations; set annotation cdd; set annotation site; set view detailed view; select chain "+o+"; show selection",a)})),e.myEventCls.onIds("#"+e.pre+"reload_proteinname","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load protein "+$("#"+e.pre+"proteinname").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?protein="+$("#"+e.pre+"proteinname").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_refseq","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load refseq "+$("#"+e.pre+"refseqid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?refseqid="+$("#"+e.pre+"refseqid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"gi","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load gi "+$("#"+e.pre+"gi").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?gi="+$("#"+e.pre+"gi").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_uniprotid","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load uniprotid "+$("#"+e.pre+"uniprotid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?uniprotid="+$("#"+e.pre+"uniprotid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"uniprotid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load uniprotid "+$("#"+e.pre+"uniprotid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?uniprotid="+$("#"+e.pre+"uniprotid").val(),l)}})),e.myEventCls.onIds("#"+e.pre+"reload_cid","click",(function(t){let n=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load cid "+$("#"+e.pre+"cid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?cid="+$("#"+e.pre+"cid").val(),l)})),e.myEventCls.onIds("#"+e.pre+"reload_smiles","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=s.structures&&Object.keys(s.structures).length>0?"_blank":"_self";n="_blank",window.open(i+"?smiles="+encodeURIComponent($("#"+e.pre+"smiles").val()),"_blank")})),e.myEventCls.onIds("#"+e.pre+"cid","keyup",(function(t){let n=e.icn3d;if(13===t.keyCode){t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.setLogCmd("load cid "+$("#"+e.pre+"cid").val(),!1);let l=n.structures&&Object.keys(n.structures).length>0?"_blank":"_self";window.open(i+"?cid="+$("#"+e.pre+"cid").val(),l)}})),e.htmlCls.setHtmlCls.clickReload_pngimage(),e.myEventCls.onIds("#"+e.pre+"reload_state","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close"),i.bInputfile||i.init();let n=$("#"+e.pre+"state")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){i.bStatefile=!0;let n=t.target.result;s.setLogCmd("load state file "+$("#"+e.pre+"state").val(),!1),i.commands=[],i.optsHistory=[],await i.loadScriptCls.loadScript(n,!0)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_selectionfile","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"selectionfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;await i.selectionCls.loadSelection(n),s.setLogCmd("load selection file "+$("#"+e.pre+"selectionfile").val(),!1)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_collectionfile","click",(function(t){let s=e.icn3d;t.preventDefault();let i=$("#"+e.pre+"collectionfile")[0].files[0];if(i){e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?s.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close"),s.bInputfile=!1,s.pdbCollection=[],s.allData={},s.allData.all={atoms:{},proteins:{},nucleotides:{},chemicals:{},ions:{},water:{},structures:{},ssbondpnts:{},residues:{},chains:{},chainsSeq:{},defNames2Atoms:{},defNames2Residues:{}},s.allData.prev={},s.selectCollectionsCls.reset(),s.dAtoms=e.hashUtilsCls.cloneHash(s.atoms),s.hAtoms=e.hashUtilsCls.cloneHash(s.atoms),e.htmlCls.setHtmlCls.fileSupport();let t=i.name.split(".").pop().toLowerCase();function n(e){return JSON.parse(e).structures.map((({id:e,title:t,description:s,commands:i})=>(e&&e.includes(".pdb")&&(e=e.split(".pdb")[0]),[e,t,s,i,!1])))}function l(e,t="",i=[]){let n=e.split("\n"),l=[],r=[];n.forEach((e=>{e.startsWith("HEADER")&&(r=[],l.push(r)),r.push(e)}));let o=[],a=[];return l.forEach((e=>{let t=e[0];t=t.replace(/[\n\r]/g,"").trim();let s=t.split(" ").filter(Boolean),i=s[s.length-1];o.push(i),a.push(e[1].startsWith("TITLE")?e[1].split("TITLE").pop().trim():i)})),l.length>0&&s.pdbCollection.push(...l),o.map(((e,t,s,i)=>[e,a[t],s,i,!0]))}$("#"+s.pre+"collections_menu").empty(),$("#"+s.pre+"collections_menu").off("change");let r=[];if("json"===t||"pdb"===t){let o=new FileReader;o.onload=async function(i){"json"===t?r=n(i.target.result):"pdb"===t&&(s.bInputfile=!0,r=l(i.target.result));let o=await s.selectCollectionsCls.setAtomMenu(r);$("#"+s.pre+"collections_menu").html(o),await s.selectCollectionsCls.clickStructure(r),$("#"+s.pre+"collections_menu").trigger("change"),e.htmlCls.clickMenuCls.setLogCmd("load collection file "+$("#"+e.pre+"collectionfile").val(),!1)},o.readAsText(i)}else{if("zip"!==t&&"gz"!==t)throw new Error("Invalid file type");{s.bInputfile=!0;let o=new FileReader;o.onload=async function(i){if("zip"===t){let t="./script/jszip.js";await e.getAjaxPromise(t,"script");let s=new JSZip;try{let t=await s.loadAsync(i.target.result),o=!1,a=!1,d=!1,c=[],h=[],p=[];for(let e in t.files){let s=t.files[e];s.dir||(e.endsWith(".json")?(o=!0,c.push(s)):e.endsWith(".pdb")?(a=!0,h.push(s)):e.endsWith(".gz")&&(d=!0,p.push(s)))}if(o&&a){let e=[];for(const t of c){n(await t.async("text")).forEach((t=>{e.push(t)}))}for(const[t,s,i,n,o]of e){let e=h.find((e=>e.name.toLowerCase().includes(t.toLowerCase())));if(e){l(await e.async("text"),i,n).forEach((e=>{r.push(e)}))}}}else if(o)c.forEach((async e=>{n(await e.async("text")).forEach((e=>{r.push(e)}))}));else if(a)h.forEach((async e=>{l(await e.async("text")).forEach((e=>{r.push(e)}))}));else if(d){let t="./script/pako.js";await e.getAjaxPromise(t,"script");try{for(const e of p){let t=await e.async("uint8array");l(pako.inflate(t,{to:"string"})).forEach((e=>{r.push(e)}))}}catch(e){console.error("Error loading GZ file",e)}}}catch(e){console.error("Error loading ZIP file",e)}}else if("gz"===t){let t="./script/pako.js";await e.getAjaxPromise(t,"script");try{const e=new Uint8Array(i.target.result),t=pako.inflate(e,{to:"string"});r=l(t)}catch(e){console.error("Error loading GZ file",e)}}let o=await s.selectCollectionsCls.setAtomMenu(r);$("#"+s.pre+"collections_menu").html(o),await s.selectCollectionsCls.clickStructure(r),$("#"+s.pre+"collections_menu").trigger("change"),e.htmlCls.clickMenuCls.setLogCmd("load collection file "+$("#"+e.pre+"collectionfile").val(),!1)},o.onerror=function(e){console.error("Error reading file",e)},o.readAsArrayBuffer(i)}}Object.keys(e.utilsCls.getStructures(s.dAtoms))?($("#"+e.pre+"dl_collection_file").hide(),$("#"+e.pre+"dl_collection_structures").show(),$("#"+e.pre+"dl_collection_file_expand").show(),$("#"+e.pre+"dl_collection_file_shrink").hide(),$("#"+e.pre+"dl_collection_structures_expand").hide(),$("#"+e.pre+"dl_collection_structures_shrink").show()):($("#"+e.pre+"dl_collection_file").show(),$("#"+e.pre+"dl_collection_structures").hide(),$("#"+e.pre+"dl_collection_file_expand").hide(),$("#"+e.pre+"dl_collection_file_shrink").hide(),$("#"+e.pre+"dl_collection_structures_expand").show(),$("#"+e.pre+"dl_collection_structures_shrink").hide()),e.htmlCls.dialogCls.openDlg("dl_selectCollections","Select Collections")}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"opendl_export_collections","click",(function(t){e.htmlCls.dialogCls.openDlg("dl_export_collections","Export Collections")})),e.myEventCls.onIds("#"+e.pre+"export_collections","click",(function(t){let s=e.icn3d;const i=document.getElementById(e.pre+"collections_menu"),n=[],l=document.getElementById("dl_collectionExportSelected"),r=document.getElementById("dl_collectionExportAll");l.checked?Array.from(i.options).filter((e=>e.selected)).forEach((e=>{const t=e.value,i=e.textContent.trim(),l=e.getAttribute("data-description");n.push({id:t,title:i,description:l||"",commands:s.allData[t]&&s.allData[t].commands?s.allData[t].commands:[]})})):r.checked&&Array.from(i.options).forEach((e=>{const t=e.value,i=e.textContent.trim(),l=e.getAttribute("data-description");n.push({name:t,title:i,description:l||"",commands:s.allData[t]&&s.allData[t].commands?s.allData[t].commands:[]})}));const o=new Date,a=`${o.getMonth()+1}_${o.getDate()}_${o.getFullYear()}`,d={collectionTitle:document.getElementById("dl_collectionTitle").value,collectionDescription:document.getElementById("dl_collectionDescription").value,structures:n},c=`${d.collectionTitle.replace(/\s+/g,"_")}_${a}.json`,h=JSON.stringify(d,null,2),p=new Blob([h],{type:"application/json"}),m=URL.createObjectURL(p),u=document.createElement("a");u.href=m,u.download=c,document.body.appendChild(u),u.click(),document.body.removeChild(u),URL.revokeObjectURL(m)})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6file2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6File("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6filefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6File("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4file2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4File("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4filefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4File("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfile2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfilefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfile2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("2fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfilefofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFile("fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_delphifile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadDelphiFile("delphi")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrfile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("pqr")})),e.myEventCls.onIds("#"+e.pre+"reload_phifile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("phi")})),e.myEventCls.onIds("#"+e.pre+"reload_cubefile","click",(function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("cube")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("pqrurl")})),e.myEventCls.onIds("#"+e.pre+"reload_phiurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("phiurl")})),e.myEventCls.onIds("#"+e.pre+"reload_cubeurlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("cubeurl")})),e.myEventCls.onIds("#"+e.pre+"reload_delphifile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("delphi"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadDelphiFile("delphi2")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrfile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("pqr2")})),e.myEventCls.onIds("#"+e.pre+"reload_phifile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("phi2")})),e.myEventCls.onIds("#"+e.pre+"reload_cubefile2","click",(function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phi"),e.cfg.notebook||dialog.dialog("close"),s.delphiCls.loadPhiFile("cube2")})),e.myEventCls.onIds("#"+e.pre+"reload_pqrurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("pqrurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_phiurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("phiurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_cubeurlfile2","click",(async function(t){let s=e.icn3d;t.preventDefault(),e.htmlCls.setHtmlCls.updateSurfPara("phiurl"),e.cfg.notebook||dialog.dialog("close"),await s.delphiCls.loadPhiFileUrl("cubeurl2")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6fileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6FileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_dsn6fileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.dsn6ParserCls.loadDsn6FileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4fileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4FileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_ccp4fileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.ccp4ParserCls.loadCcp4FileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfileurl2fofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFileUrl("2fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_mtzfileurlfofc","click",(function(t){let s=e.icn3d;t.preventDefault(),s.mtzParserCls.loadMtzFileUrl("fofc")})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfileurl2fofc","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.mtzParserCls.loadMtzFileUrl("2fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_rcsbmtzfileurlfofc","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.mtzParserCls.loadMtzFileUrl("fofc",!0)})),e.myEventCls.onIds("#"+e.pre+"reload_pdbfile","click",(async function(t){e.icn3d,t.preventDefault();await s.loadPdbFile(!1,"pdbfile")})),e.myEventCls.onIds("#"+e.pre+"reload_pdbfile_app","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bAppend=!0,await s.loadPdbFile(i.bAppend,"pdbfile_app")})),e.myEventCls.onIds("#"+e.pre+"reload_mol2file","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"mol2file")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load mol2 file "+$("#"+e.pre+"mol2file").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="mol2",await i.mol2ParserCls.loadMol2Data(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_sdffile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"sdffile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load sdf file "+$("#"+e.pre+"sdffile").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="sdf",await i.sdfParserCls.loadSdfData(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_xyzfile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"xyzfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=async function(t){let n=t.target.result;s.setLogCmd("load xyz file "+$("#"+e.pre+"xyzfile").val(),!1),i.molTitle="",i.inputid=void 0,i.init(),i.bInputfile=!0,i.InputfileData=i.InputfileData?i.InputfileData+"\nENDMDL\n"+n:n,i.InputfileType="xyz",await i.xyzParserCls.loadXyzData(n)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfile","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"afmapfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=function(t){let n=t.target.result;s.setLogCmd("load AlphaFold PAE file "+$("#"+e.pre+"afmapfile").val(),!1),e.htmlCls.dialogCls.openDlg("dl_alignerrormap","Show Predicted Aligned Error (PAE) map"),i.contactMapCls.processAfErrorMap(JSON.parse(n))},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_afmapfilefull","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?i.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let n=$("#"+e.pre+"afmapfile")[0].files[0];if(n){e.htmlCls.setHtmlCls.fileSupport();let t=new FileReader;t.onload=function(t){let n=t.target.result;s.setLogCmd("load AlphaFold PAE file "+$("#"+e.pre+"afmapfile").val(),!1),e.htmlCls.dialogCls.openDlg("dl_alignerrormap","Show Predicted Aligned Error (PAE) map"),i.contactMapCls.processAfErrorMap(JSON.parse(n),!0)},t.readAsText(n)}else alert("Please select a file before clicking 'Load'")})),e.myEventCls.onIds("#"+e.pre+"reload_urlfile","click",(async function(t){let s=e.icn3d;t.preventDefault(),s.bInitial=!0,e.cfg.notebook||dialog.dialog("close"),e.cfg.notebook?s.resizeCanvasCls.closeDialogs():$(".ui-dialog-content").dialog("close");let i=$("#"+e.pre+"filetype").val(),n=$("#"+e.pre+"urlfile").val();s.inputurl="type="+i+"&url="+encodeURIComponent(n),s.init(),s.bInputfile=!0,s.bInputUrlfile=!0,await s.pdbParserCls.downloadUrl(n,i)})),e.myEventCls.onIds("#"+e.pre+"reload_mmciffile","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bAppend=!0;await s.loadPdbFile(i.bAppend,"mmciffile",!0)})),e.myEventCls.onIds("#"+e.pre+"applycustomcolor","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.setOptionCls.setOption("color",$("#"+e.pre+"colorcustom").val()),s.setLogCmd("color "+$("#"+e.pre+"colorcustom").val(),!0)})),e.myEventCls.onIds(["#"+e.pre+"atomsCustomSphere2","#"+e.pre+"atomsCustomSphere","#"+e.pre+"radius_aroundsphere"],"change",(function(t){e.icn3d.bSphereCalc=!1})),e.myEventCls.onIds("#"+e.pre+"applypick_aroundsphere","click",(function(t){let i=e.icn3d,n=parseFloat($("#"+e.pre+"radius_aroundsphere").val()),l=$("#"+e.pre+"atomsCustomSphere").val(),r=$("#"+e.pre+"atomsCustomSphere2").val();if(0==r.length)alert("Please select the first set at step #1");else{let e="select zone cutoff "+n+" | sets "+r+" "+l+" | "+i.bSphereCalc;i.bSphereCalc||i.showInterCls.pickCustomSphere(n,r,l,i.bSphereCalc),i.bSphereCalc=!0,i.hlUpdateCls.updateHlAll(),s.setLogCmd(e,!0)}})),e.myEventCls.onIds("#"+e.pre+"sphereExport","click",(function(t){let i=e.icn3d;t.preventDefault();let n=parseFloat($("#"+e.pre+"radius_aroundsphere").val()),l=$("#"+e.pre+"atomsCustomSphere").val(),r=$("#"+e.pre+"atomsCustomSphere2").val();if(0==r.length)alert("Please select the first set at step #1");else{i.showInterCls.pickCustomSphere(n,r,l,i.bSphereCalc),i.bSphereCalc=!0;let t=i.viewInterPairsCls.exportSpherePairs(),o=Object.keys(e.utilsCls.getHlStructures()).join(",");i.saveFileCls.saveFile(o+"_sphere_pairs.html","html",t),s.setLogCmd("export pairs | "+r+" "+l+" | dist "+n,!0)}})),e.myEventCls.onIds("#"+e.pre+"apply_adjustmem","click",(function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+e.pre+"extra_mem_z").val()),l=parseFloat($("#"+e.pre+"intra_mem_z").val());i.selectionCls.adjustMembrane(n,l);let r="adjust membrane z-axis "+n+" "+l;s.setLogCmd(r,!0)})),e.myEventCls.onIds("#"+e.pre+"apply_selectplane","click",(function(t){let i=e.icn3d;e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+e.pre+"selectplane_z1").val()),l=parseFloat($("#"+e.pre+"selectplane_z2").val());i.selectionCls.selectBtwPlanes(n,l);let r="select planes z-axis "+n+" "+l;s.setLogCmd(r,!0)})),e.myEventCls.onIds(["#"+e.pre+"atomsCustomHbond2","#"+e.pre+"atomsCustomHbond","#"+e.pre+"analysis_hbond","#"+e.pre+"analysis_saltbridge","#"+e.pre+"analysis_contact","#"+e.pre+"hbondthreshold","#"+e.pre+"saltbridgethreshold","#"+e.pre+"contactthreshold"],"change",(function(t){e.icn3d.bHbondCalc=!1})),e.myEventCls.onIds("#"+e.pre+"crossstrucinter","change",(function(t){let i=e.icn3d;t.preventDefault(),i.crossstrucinter=parseInt($("#"+e.pre+"crossstrucinter").val()),s.setLogCmd("cross structure interaction "+i.crossstrucinter,!0)})),e.myEventCls.onIds("#"+e.pre+"applyhbonds","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("3d")})),e.myEventCls.onIds("#"+e.pre+"applycontactmap","click",(async function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=parseFloat($("#"+i.pre+"contactdist").val()),l=$("#"+i.pre+"contacttype").val();await i.contactMapCls.contactMap(n,l),s.setLogCmd("contact map | dist "+n+" | type "+l,!0)})),e.myEventCls.onIds("#"+e.pre+"hbondWindow","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("view")})),e.myEventCls.onIds("#"+e.pre+"areaWindow","click",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.pre+"atomsCustomHbond").val(),l=$("#"+e.pre+"atomsCustomHbond2").val();i.analysisCls.calcBuriedSurface(l,n),s.setLogCmd("calc buried surface | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"sortSet1","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("save1")})),$(document).on("click","."+e.pre+"showintercntonly",(function(t){e.icn3d,t.stopImmediatePropagation(),$(".icn3d-border").hide(),s.setLogCmd("table inter count only",!0)})),$(document).on("click","."+e.pre+"showinterdetails",(function(t){e.icn3d,t.stopImmediatePropagation(),$(".icn3d-border").show(),s.setLogCmd("table inter details",!0)})),e.myEventCls.onIds("#"+e.pre+"sortSet2","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("save2")})),e.myEventCls.onIds("#"+e.pre+"hbondGraph","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.showInterCls.showInteractions("graph")})),e.myEventCls.onIds("#"+e.pre+"hbondLineGraph","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("linegraph")})),e.myEventCls.onIds("#"+e.pre+"hbondLineGraph2","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!0,s.setLogCmd("show ref number",!0),await i.showInterCls.showInteractions("linegraph")})),e.myEventCls.onIds("#"+e.pre+"hbondScatterplot","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("scatterplot")})),e.myEventCls.onIds("#"+e.pre+"hbondScatterplot2","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!0,s.setLogCmd("show ref number",!0),await i.showInterCls.showInteractions("scatterplot")})),e.myEventCls.onIds("#"+e.pre+"hbondLigplot","click",(async function(t){let i=e.icn3d;t.preventDefault(),i.bShownRefnum=!1,s.setLogCmd("hide ref number",!0),await i.showInterCls.showInteractions("ligplot")})),$(document).on("click","#"+e.svgid+" circle.selected",(function(t){let s=e.icn3d;t.stopImmediatePropagation();let i=$(this).attr("res");!1!==s.bSelectResidue||s.bShift||s.bCtrl||s.selectionCls.removeSelection(),void 0!==i&&(s.hlSeqCls.selectResidues(i,this),s.hlObjectsCls.addHlObjects())})),e.myEventCls.onIds("#"+e.svgid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.svgid,s.inputid+"_force_directed_graph.svg")})),e.myEventCls.onIds("#"+e.svgid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.svgid,s.inputid+"_force_directed_graph.png")})),e.myEventCls.onIds("#"+e.svgid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.graphStr.substr(0,s.graphStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_force_directed_graph.json","text",[i])})),$(document).on("click","#"+e.svgid_ct+"_svg",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.svgid_ct,s.inputid+"_cartoon.svg")})),$(document).on("click","#"+e.svgid_ct+"_png",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.svgid_ct,s.inputid+"_cartoon.png")})),$(document).on("click","#"+e.svgid_ct+"_json",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveFile(s.inputid+"_cartoon.json","text",[s.graphStr])})),$(document).on("change","#"+e.svgid_ct+"_label",(function(t){e.icn3d,t.preventDefault();let i=$("#"+e.svgid_ct+"_label").val();$("#"+e.svgid_ct+" text").removeClass(),$("#"+e.svgid_ct+" text").addClass(i),s.setLogCmd("cartoon label "+i,!0)})),e.myEventCls.onIds("#"+e.linegraphid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.linegraphid,s.inputid+"_line_graph.svg")})),e.myEventCls.onIds("#"+e.linegraphid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.linegraphid,s.inputid+"_line_graph.png")})),e.myEventCls.onIds("#"+e.linegraphid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.lineGraphStr.substr(0,s.lineGraphStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_line_graph.json","text",[i])})),e.myEventCls.onIds("#"+e.linegraphid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.linegraphid+"_scale").val();$("#"+e.linegraphid).attr("width",(i.linegraphWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("line graph scale "+n,!0)})),e.myEventCls.onIds("#"+e.scatterplotid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.scatterplotid,s.inputid+"_scatterplot.svg")})),e.myEventCls.onIds("#"+e.scatterplotid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.scatterplotid,s.inputid+"_scatterplot.png")})),e.myEventCls.onIds("#"+e.scatterplotid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.scatterplotStr.substr(0,s.scatterplotStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_scatterplot.json","text",[i])})),e.myEventCls.onIds("#"+e.scatterplotid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.scatterplotid+"_scale").val();$("#"+e.scatterplotid).attr("width",(i.scatterplotWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("scatterplot scale "+n,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.ligplotid,s.inputid+"_ligplot.svg",void 0,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.ligplotid,s.inputid+"_ligplot.png",void 0,!0)})),e.myEventCls.onIds("#"+e.ligplotid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.ligplotid+"_scale").val();$("#"+e.ligplotid).attr("width",(i.ligplotWidth*parseFloat(n)).toString()+"px"),i.ligplotScale=parseFloat(n),s.setLogCmd("ligplot scale "+n,!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.saveSvg(e.contactmapid,s.inputid+"_contactmap.svg",!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault(),s.saveFileCls.savePng(e.contactmapid,s.inputid+"_contactmap.png",!0)})),e.myEventCls.onIds("#"+e.contactmapid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.contactmapStr.substr(0,s.contactmapStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_contactmap.json","text",[i])})),e.myEventCls.onIds("#"+e.contactmapid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.contactmapid+"_scale").val();$("#"+e.contactmapid).attr("width",(i.contactmapWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("contactmap scale "+n,!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_svg","click",(function(t){let s=e.icn3d;t.preventDefault();$("#"+e.alignerrormapid+"_scale").val(1),$("#"+e.alignerrormapid).attr("width",(s.alignerrormapWidth*parseFloat(1)).toString()+"px"),s.saveFileCls.saveSvg(e.alignerrormapid,s.inputid+"_alignerrormap.svg",!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_png","click",(function(t){let s=e.icn3d;t.preventDefault();$("#"+e.alignerrormapid+"_scale").val(1),$("#"+e.alignerrormapid).attr("width",(s.alignerrormapWidth*parseFloat(1)).toString()+"px"),s.saveFileCls.savePng(e.alignerrormapid,s.inputid+"_alignerrormap.png",!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_full","click",(async function(t){let s=e.icn3d;t.preventDefault(),await s.contactMapCls.afErrorMap(afid,!0)})),e.myEventCls.onIds("#"+e.alignerrormapid+"_json","click",(function(t){let s=e.icn3d;t.preventDefault();let i=s.alignerrormapStr.substr(0,s.alignerrormapStr.lastIndexOf("}"));i+=e.htmlCls.setHtmlCls.getLinkColor(),s.saveFileCls.saveFile(s.inputid+"_alignerrormap.json","text",[i])})),e.myEventCls.onIds("#"+e.alignerrormapid+"_scale","change",(function(t){let i=e.icn3d;t.preventDefault();let n=$("#"+e.alignerrormapid+"_scale").val();$("#"+e.alignerrormapid).attr("width",(i.alignerrormapWidth*parseFloat(n)).toString()+"px"),s.setLogCmd("alignerrormap scale "+n,!0)})),e.myEventCls.onIds("#"+e.svgid+"_label","change",(function(t){e.icn3d,t.preventDefault();let i=$("#"+e.svgid+"_label").val();$("#"+e.svgid+" text").removeClass(),$("#"+e.svgid+" text").addClass(i),s.setLogCmd("graph label "+i,!0)})),e.myEventCls.onIds("#"+e.svgid+"_hideedges","change",(function(t){let i=e.icn3d;t.preventDefault(),e.htmlCls.hideedges=parseInt($("#"+e.svgid+"_hideedges").val()),e.htmlCls.hideedges?(e.htmlCls.contactInsideColor="FFF",e.htmlCls.hbondInsideColor="FFF",e.htmlCls.ionicInsideColor="FFF"):(e.htmlCls.contactInsideColor="DDD",e.htmlCls.hbondInsideColor="AFA",e.htmlCls.ionicInsideColor="8FF"),void 0!==i.graphStr&&(i.bRender&&e.htmlCls.force&&e.drawGraph(i.graphStr,e.pre+"dl_graph"),s.setLogCmd("hide edges "+e.htmlCls.hideedges,!0))})),e.myEventCls.onIds("#"+e.svgid+"_force","change",(function(t){let i=e.icn3d;t.preventDefault(),e.htmlCls.force=parseInt($("#"+e.svgid+"_force").val()),void 0!==i.graphStr&&(s.setLogCmd("graph force "+e.htmlCls.force,!0),i.getGraphCls.handleForce())})),e.myEventCls.onIds("#"+e.pre+"hbondReset","click",(function(t){let i=e.icn3d;t.preventDefault(),i.viewInterPairsCls.resetInteractionPairs(),s.setLogCmd("reset interaction pairs",!0)})),e.myEventCls.onIds("#"+e.pre+"applypick_labels","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"labeltext").val(),l=$("#"+e.pre+"labelsize").val(),r=$("#"+e.pre+"labelcolor").val(),o=$("#"+e.pre+"labelbkgd").val();if("0"!==l&&""!==l&&"undefined"!==l||(l=0),"0"!==r&&""!==r&&"undefined"!==r||(r=0),"0"!==o&&""!==o&&"undefined"!==o||(o=0),void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{let e=(i.pAtom.coord.x+i.pAtom2.coord.x)/2,t=(i.pAtom.coord.y+i.pAtom2.coord.y)/2,a=(i.pAtom.coord.z+i.pAtom2.coord.z)/2;i.analysisCls.addLabel(n,e,t,a,l,r,o,"custom"),i.pickpair=!1;let d="",c="",h="";0!=l&&(d=" | size "+l),0!=r&&(c=" | color "+r),0!=o&&(h=" | background "+o),s.setLogCmd("add label "+n+" | x "+e.toPrecision(4)+" y "+t.toPrecision(4)+" z "+a.toPrecision(4)+d+c+h+" | type custom",!0),i.drawCls.draw()}})),e.myEventCls.onIds("#"+e.pre+"applyselection_labels","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close");let n=$("#"+e.pre+"labeltext2").val(),l=$("#"+e.pre+"labelsize2").val(),r=$("#"+e.pre+"labelcolor2").val(),o=$("#"+e.pre+"labelbkgd2").val();"0"!==l&&""!==l&&"undefined"!==l||(l=0),"0"!==r&&""!==r&&"undefined"!==r||(r=0),"0"!==o&&""!==o&&"undefined"!==o||(o=0);let a=i.applyCenterCls.centerAtoms(e.hashUtilsCls.hash2Atoms(i.hAtoms,i.atoms)),d=a.center.x,c=a.center.y,h=a.center.z;i.analysisCls.addLabel(n,d,c,h,l,r,o,"custom");let p="",m="",u="";0!=l&&(p=" | size "+l),0!=r&&(m=" | color "+r),0!=o&&(u=" | background "+o),s.setLogCmd("add label "+n+" | x "+d.toPrecision(4)+" y "+c.toPrecision(4)+" z "+h.toPrecision(4)+p+m+u+" | type custom",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applylabelcolor","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.labelcolor=$("#"+e.pre+"labelcolorall").val(),s.setLogCmd("set label color "+i.labelcolor,!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applypick_stabilizer","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),void 0===i.pAtom||void 0===i.pAtom2?alert("Please pick another atom"):(i.pickpair=!1,s.setLogCmd("add one stabilizer | "+i.pAtom.serial+" "+i.pAtom2.serial,!0),void 0===i.pairArray&&(i.pairArray=[]),i.pairArray.push(i.pAtom.serial),i.pairArray.push(i.pAtom2.serial),i.threeDPrintCls.setThichknessFor3Dprint(),i.drawCls.draw())}));let l=new CP(document.querySelector("#"+e.pre+"colorcustom"));l.on("change",(function(e){this.target.value=e})),e.myEventCls.onIds("#"+e.pre+"colorcustom","input",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","keyup",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","paste",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"colorcustom","cut",(function(){let t=$("#"+e.pre+"colorcustom").val();l.set("#"+t).enter()}));let r=new CP(document.querySelector("#"+e.pre+"labelcolorall"));r.on("change",(function(e){this.target.value=e})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","input",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","keyup",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","paste",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"labelcolorall","cut",(function(){let t=$("#"+e.pre+"labelcolorall").val();r.set("#"+t).enter()})),e.myEventCls.onIds("#"+e.pre+"applypick_stabilizer_rm","click",(function(t){let i=e.icn3d;if(t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{i.pickpair=!1,s.setLogCmd("remove one stabilizer | "+i.pAtom.serial+" "+i.pAtom2.serial,!0);let e=[];e.push(i.pAtom.serial),e.push(i.pAtom2.serial),i.threeDPrintCls.removeOneStabilizer(e),i.drawCls.draw()}})),e.myEventCls.onIds("#"+e.pre+"applypick_measuredistance","click",(function(t){let i=e.icn3d;if(t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1,void 0===i.pAtom||void 0===i.pAtom2)alert("Please pick another atom");else{let t=0,n=0,l=$("#"+e.pre+"linecolor").val(),r=(i.pAtom.coord.x+i.pAtom2.coord.x)/2,o=(i.pAtom.coord.y+i.pAtom2.coord.y)/2,a=(i.pAtom.coord.z+i.pAtom2.coord.z)/2;i.analysisCls.addLineFromPicking("distance");let d=(parseInt(10*i.pAtom.coord.distanceTo(i.pAtom2.coord))/10).toString()+" A";i.analysisCls.addLabel(d,r,o,a,t,l,n,"distance");let c="",h="",p="";0!=l&&(h=" | color "+l),s.setLogCmd("add label "+d+" | x "+r.toPrecision(4)+" y "+o.toPrecision(4)+" z "+a.toPrecision(4)+c+h+p+" | type distance",!0),i.drawCls.draw(),i.pk=2}})),e.myEventCls.onIds("#"+e.pre+"applydist2","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1;let n=$("#"+e.pre+"atomsCustomDist").val(),l=$("#"+e.pre+"atomsCustomDist2").val();i.analysisCls.measureDistTwoSets(n,l),s.setLogCmd("dist | "+l+" "+n,!0)})),$(document).on("click",".icn3d-distance",(function(t){let i=e.icn3d;t.preventDefault(),i.bMeasureDistance=!1,i.distPnts=[],i.labels.distance=[],i.lines.distance=[];let n=$(this).attr("sets").split("|"),l=[n[0]],r=[n[1]];i.analysisCls.measureDistTwoSets(l,r),s.setLogCmd("dist | "+r+" "+l,!0)})),e.myEventCls.onIds("#"+e.pre+"applydisttable","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureDistance=!1;let n=$("#"+e.pre+"atomsCustomDistTable").val(),l=$("#"+e.pre+"atomsCustomDistTable2").val();i.analysisCls.measureDistManySets(n,l),e.htmlCls.dialogCls.openDlg("dl_disttable","Distance among the sets"),s.setLogCmd("disttable | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applyangletable","click",(function(t){let i=e.icn3d;t.preventDefault(),e.cfg.notebook||dialog.dialog("close"),i.bMeasureAngle=!1;let n=$("#"+e.pre+"atomsCustomAngleTable").val(),l=$("#"+e.pre+"atomsCustomAngleTable2").val();i.analysisCls.measureAngleManySets(n,l),e.htmlCls.dialogCls.openDlg("dl_angletable","Angles among the sets"),s.setLogCmd("angletable | "+l+" "+n,!0)})),e.myEventCls.onIds("#"+e.pre+"applylinebtwsets","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bLinebtwsets=!1;let n=$("#"+e.pre+"linebtwsets").val(),l=$("#"+e.pre+"linebtwsets2").val(),r=i.definedSetsCls.getAtomsFromNameArray(n),o=i.definedSetsCls.getAtomsFromNameArray(l),a=i.contactCls.getExtent(r),d=i.contactCls.getExtent(o),c=new THREE.Vector3(a[2][0],a[2][1],a[2][2]),h=new THREE.Vector3(d[2][0],d[2][1],d[2][2]),p=$("#"+e.pre+"linebtwsets_radius").val(),m=$("#"+e.pre+"linebtwsets_customcolor").val(),u=$("#"+e.pre+"linebtwsets_opacity").val(),g="Solid"!=$("#"+e.pre+"linebtwsets_style").val(),f="cylinder",C="add line | x1 "+c.x.toPrecision(4)+" y1 "+c.y.toPrecision(4)+" z1 "+c.z.toPrecision(4)+" | x2 "+h.x.toPrecision(4)+" y2 "+h.y.toPrecision(4)+" z2 "+h.z.toPrecision(4)+" | color "+m+" | dashed "+g+" | type "+f+" | radius "+p+" | opacity "+u;s.setLogCmd(C,!0),i.analysisCls.addLine(c.x,c.y,c.z,h.x,h.y,h.z,m,g,f,p,u),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"applycartoonshape","click",(function(t){let i=e.icn3d;t.preventDefault(),i.bCartoonshape=!1;let n=$("#"+e.pre+"cartoonshape").val(),l=i.definedSetsCls.getAtomsFromNameArray(n),r=i.contactCls.getExtent(l),o=new THREE.Vector3(r[2][0],r[2][1],r[2][2]),a=$("#"+e.pre+"cartoonshape_shape").val(),d=$("#"+e.pre+"cartoonshape_radius").val(),c=$("#"+e.pre+"cartoonshape_customcolor").val(),h=$("#"+e.pre+"cartoonshape_opacity").val();c="#"+c.replace(/\#/g,"");let p,m=e.parasCls.thr(c);"Sphere"==a?(i.sphereCls.createSphereBase(o,m,d,void 0,void 0,void 0,h),p="add sphere | "+n+" | color "+c+" | opacity "+h+" | radius "+d):(i.boxCls.createBox_base(o,d,m,void 0,void 0,void 0,h),p="add cube | "+n+" | color "+c+" | opacity "+h+" | radius "+d),s.setLogCmd(p,!0),i.shapeCmdHash[p]=1,i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearlinebtwsets","click",(function(t){let i=e.icn3d;t.preventDefault(),i.lines.cylinder=[],s.setLogCmd("clear line between sets",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"clearcartoonshape","click",(function(t){let i=e.icn3d;t.preventDefault(),i.shapeCmdHash={},s.setLogCmd("clear shape",!0),i.drawCls.draw()})),e.myEventCls.onIds("#"+e.pre+"apply_thickness_3dprint","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("3dprint")})),e.myEventCls.onIds("#"+e.pre+"apply_thickness_style","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("style"),e.htmlCls.setMenuCls.setLogWindow(!0)})),e.myEventCls.onIds("#"+e.pre+"reset_thickness_3dprint","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("3dprint",!0)})),e.myEventCls.onIds("#"+e.pre+"reset_thickness_style","click",(function(t){e.icn3d,t.preventDefault(),e.htmlCls.setHtmlCls.setLineThickness("style",!0),e.htmlCls.setMenuCls.setLogWindow(!0)})),e.myEventCls.onIds("#"+e.pre+"reset","click",(function(t){let s=e.icn3d;s.selectionCls.resetAll(),s.bRender&&s.drawCls.draw()})),e.myEventCls.onIds(["#"+e.pre+"toggleHighlight","#"+e.pre+"toggleHighlight2"],"click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.toggleHighlight(),s.setLogCmd("toggle highlight",!0)})),e.myEventCls.onIds("#"+e.pre+"seq_clearselection","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"seq_clearselection2","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),t.preventDefault(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"alignseq_clearselection","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.hlUpdateCls.clearHighlight(),s.setLogCmd("clear selection",!0)})),e.myEventCls.onIds("#"+e.pre+"replay","click",(async function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.CURRENTNUMBER++;let n=e.cfg.replay?i.STATENUMBER:i.STATENUMBER-1;if(i.CURRENTNUMBER==n)i.bReplay=0,$("#"+e.pre+"replay").hide();else if(i.commands.length>0&&i.commands[i.CURRENTNUMBER]){await i.loadScriptCls.execCommandsBase(i.CURRENTNUMBER,i.CURRENTNUMBER,i.STATENUMBER);let t=i.commands[i.CURRENTNUMBER].indexOf("|||"),n=-1!=t?i.commands[i.CURRENTNUMBER].substr(0,t):i.commands[i.CURRENTNUMBER],l=30,r=n.length>l?n.substr(0,l)+"...":n,o=i.applyCommandCls.getMenuFromCmd(r);$("#"+e.pre+"replay_cmd").html("Cmd: "+r),$("#"+e.pre+"replay_menu").html("Menu: "+o),s.setLogCmd(n,!0),i.drawCls.draw()}})),t.loadScriptCls.pressCommandtext(),e.myEventCls.onIds("#"+e.pre+"seq_saveselection","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"seq_command_name").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),e.myEventCls.onIds("#"+e.pre+"seq_saveselection2","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"seq_command_name2").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),e.myEventCls.onIds("#"+e.pre+"mn2_saveresidue","click",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),e.cfg.notebook||dialog.dialog("close"),i.selectionCls.saveEachResiInSel(),s.setLogCmd("select each residue",!0)})),e.myEventCls.onIds("#"+e.pre+"alignseq_saveselection","click",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.selectionCls.saveSelectionPrep();let i=$("#"+e.pre+"alignseq_command_name").val().replace(/\s+/g,"_");s.selectionCls.saveSelection(i,i)})),$(document).on("click","."+e.pre+"outputselection",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelectResidue=!1,i.bSelectAlignResidue=!1,s.setLogCmd("output selection",!0),i.threeDPrintCls.outputSelection()})),$(document).on("click",".icn3d-saveicon",(function(t){e.icn3d,t.stopImmediatePropagation();let i=$(this).attr("pid");s.saveHtml(i),s.setLogCmd("save html "+i,!0)})),$(document).on("click",".icn3d-hideicon",(function(t){let s=e.icn3d;t.stopImmediatePropagation();let i=$(this).attr("pid");if(!e.cfg.notebook)if(void 0===s.dialogHashHideDone&&(s.dialogHashHideDone={}),void 0===s.dialogHashPosToRight&&(s.dialogHashPosToRight={}),s.dialogHashHideDone.hasOwnProperty(i)){let e=s.dialogHashHideDone[i].width,t=s.dialogHashHideDone[i].height,n=s.dialogHashHideDone[i].position;$("#"+i).dialog("option","width",e),$("#"+i).dialog("option","height",t),$("#"+i).dialog("option","position",n),delete s.dialogHashHideDone[i]}else{s.dialogHashHideDone[i]={width:$("#"+i).dialog("option","width"),height:$("#"+i).dialog("option","height"),position:$("#"+i).dialog("option","position")};let e,t=160,n=80;$("#"+i).dialog("option","width",t),$("#"+i).dialog("option","height",n),s.dialogHashPosToRight.hasOwnProperty(i)?e=s.dialogHashPosToRight[i]:(e=Object.keys(s.dialogHashPosToRight).length*(t+10),s.dialogHashPosToRight[i]=e);let l={my:"right bottom",at:"right-"+e+" bottom+60",of:"#"+s.divid,collision:"none"};$("#"+i).dialog("option","position",l)}})),$(document).on("click","."+e.pre+"selres",(function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelOneRes=!1;let n=$("."+e.pre+"seloneres");for(let e=0,t=n.length;e0&&(r+=" or "),r+=i.selectionCls.selectOneResid(t)}i.hlUpdateCls.updateHlAll(),s.setLogCmd(r,!0)})),$(document).on("click","."+e.pre+"seloneres",(function(t){let s=e.icn3d;t.stopImmediatePropagation(),s.bSelOneRes||(s.hAtoms={},s.selectedResidues={},s.bSelOneRes=!0);let i=$(this).attr("resid"),n=$(this).attr("id");$("#"+n).length&&$("#"+n)[0].checked?s.selectionCls.selectOneResid(i):$("#"+n).length&&!$("#"+n)[0].checked&&s.selectionCls.selectOneResid(i,!0),s.hlUpdateCls.updateHlAll()})),$(document).on("click","."+e.pre+"selset",(async function(t){let i=e.icn3d;t.stopImmediatePropagation(),i.bSelOneRes=!1;let n=$("."+e.pre+"seloneres");for(let e=0,t=n.length;e0))return{sequencesHtml:a,maxSeqCnt:d};c[s]=1}let h,p=void 0===t||t;p&&(o.hAtoms={});let m,u,g=0,f=0;for(let t=0,l=e.length;t0?m:l,p&&(o.hAtoms=r.hashUtilsCls.unionHash(o.hAtoms,o.alnChains[l]));let C=[],b="",y=void 0!==o.alnChainsSeq[l]?o.alnChainsSeq[l].length:0;y>d&&(d=y);let v,_,w=u.indexOf("_"),S=u.substr(0,w),A=u.substr(w+1);for(let e=0,t=y;e=0;--e)if("-"!=o.alnChainsSeq[l][e].resn){_=o.alnChainsSeq[l][e].resi;break}b+=""+v+"",h=!(void 0===e||!c.hasOwnProperty(u));for(let e=0,t=y;e"}""!==a?-1!=o.alnChainsSeq[l][e].resi?b+=""+o.alnChainsSeq[l][e].resn+"":b+=""+o.alnChainsSeq[l][e].resn+"":b+=""+o.alnChainsSeq[l][e].resn+""}b+=""+_+"";let x=e.length,k=void 0!==o.alnChainsAnno[l]?o.alnChainsAnno[l].length:0;for(let t=0,s=k;t";for(let e=0,i=o.alnChainsAnno[l][t].length;e ':' ';else if("E"==i)if(void 0!==o.alnChainsSeq[s][e]){let i=s+"_"+o.alnChainsSeq[s][e].resi;if(o.residues.hasOwnProperty(i)){o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[i]).ssend?C[t]+=' ':C[t]+=' '}else C[t]+=' '}else C[t]+=' ';else C[t]+="c"==i?' ':"o"==i?' ':"";else C[t]+=""+i+""}C[t]+=""}let O=l,R=void 0!==o.pdbid_chain2title?o.pdbid_chain2title[u]:"";for(let e=k-1;e>=0;--e){let t=o.alnChainsAnTtl[l][e][0];"SS"==t&&(t=""),a+="
    "+t+"
    "+C[e]+"
    "}a+=''+b+"
    ",g>0&&(f+=y),++g}return{sequencesHtml:a,maxSeqCnt:d}}}class u{constructor(e){this.icn3dui=e}getLink(e,t,s,i){let n=this.icn3dui;return n.icn3d,n.htmlCls.allMenus[e]=t,i&&(n.htmlCls.allMenusSel[e]=i),s&&(n.htmlCls.simpleMenus[e]=1),"
  • "+t+"
  • "}getMenuText(e,t,s,i,n){let l=this.icn3dui;l.icn3d,l.htmlCls.allMenus[e]=t,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1);let r="icn3d-menupd"==s?" style='padding-left:1.5em!important;'":"";return"
  • "+t+""}getMenuUrl(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.allMenus[e]=s,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1),"
  • "+s+"
  • "}getMenuSep(){return this.icn3dui.icn3d,"
  • -
  • "}getLinkWrapper(e,t,s,i,n,l){let r=this.icn3dui;r.icn3d,r.htmlCls.allMenus[e]=t,n&&(r.htmlCls.allMenusSel[e]=n),i&&(r.htmlCls.simpleMenus[e]=1);let o=l?' style="display:none"':"";return"
  • "+t+"
  • "}getLinkWrapper2(e,t,s,i,n){let l=this.icn3dui;return l.icn3d,l.htmlCls.allMenus[e]=t,n&&(l.htmlCls.allMenusSel[e]=n),i&&(l.htmlCls.simpleMenus[e]=1),"
  • "+t+""}getRadio(e,t,s,i,n,l){let r=this.icn3dui;r.icn3d,r.htmlCls.allMenus[t]=s,l&&(r.htmlCls.allMenusSel[t]=l),n&&(r.htmlCls.simpleMenus[t]=1);let o=i?" checked":"";return"
  • "}getRadioColor(e,t,s,i,n,l,r){let o=this.icn3dui;o.icn3d,o.htmlCls.allMenus[t]=s,r&&(o.htmlCls.allMenusSel[t]=r),l&&(o.htmlCls.simpleMenus[t]=1);let a=n?" checked":"";return"
  • "}setAdvanced(e){let t=this.icn3dui;t.icn3d;let s=void 0===e?"":e,i=t.cfg.notebook?"icn3d-hidden":"",n=t.htmlCls.divStr+"dl_advanced"+s+"' class='"+i+"'>";return n+="",n+="",n+="
    ",n+="",n+="",n+="",n+="
    Select:"+t.htmlCls.inputTextStr+"id='"+t.pre+"command"+s+"' placeholder='$[structures].[chains]:[residues]@[atoms]' size='60'>
    Name:"+t.htmlCls.inputTextStr+"id='"+t.pre+"command_name"+s+"' placeholder='my_selection' size='60'>
    "+t.htmlCls.space3+t.htmlCls.buttonStr+"command_apply"+s+"'>Save Selection to Defined Sets
    ",n+='Specification Tips:

    ',n+=t.htmlCls.divStr+"specguide"+s+"' style='display:none; width:500px' class='icn3d-box'>",n+='Specification: In the selection "$1HHO,4N7N.A,B,C:5-10,LV,3AlaVal,chemicals@CA,C,C*":',n+='
    • "$1HHO,4N7N" uses "$" to indicate structure selection.
      ',n+='
    • ".A,B,C" uses "." to indicate chain selection.
      ',n+='
    • ":5-10,LV,3LeuVal,chemicals" uses the colon ":" to indicate residue selection. Residue selection could be residue number(5-10), one-letter IUPAC residue name abbreviations(LV), three-letter residue names(AlaVal, "3" indicates each residue name has three letters), or predefined names: "proteins", "nucleotides", "chemicals", "ions", and "water". IUPAC abbreviations can be written either as a contiguous string(e.g., ":LV"), in order to find all instances of that sequence in the structure, or they can be separated by commas(e.g., ":L,V") to select all residues of a given type in the structure(in the latter case, select all Leucine and Valine in the structure).
      ',n+='
    • "@CA,C,C*" uses "@" to indicate atom name selection. "C*" selects any atom names starting with "C".
      ',n+='
    • Partial definition is allowed, e.g., ":1-10" selects all residue IDs 1-10 in all chains.
      ',n+='
    • Different selections can be unioned(with "or", default), intersected(with "and"), or negated(with "not"). For example, ":1-10 or :K" selects all residues 1-10 and all Lys residues. ":1-10 and :K" selects all Lys residues in the range of residue number 1-10. ":1-10 or not :K" selects all residues 1-10, which are not Lys residues.
      ',n+='
    • The wild card character "X" or "x" can be used to represent any character.',n+="
    ",n+="Set Operation:",n+='
    • Users can select multiple sets in the menu "Select > Defined Sets".
      ',n+='
    • Different sets can be unioned(with "or", default), intersected(with "and"), or negated(with "not"). For example, if the "Defined Sets" menu has four sets ":1-10", ":11-20", ":5-15", and ":7-8", the command "saved atoms :1-10 or :11-20 and :5-15 not :7-8" unions all residues 1-10 and 11-20 to get the residues 1-20, then intersects with the residues 5-15 to get the residues 5-15, then exclude the residues 7-8 to get the final residues 5-6 and 9-15.
    ',n+="Full commands in url or command window:",n+="
    • Select without saving the set: select $1HHO,4N7N.A,B,C:5-10,LV,chemicals@CA,C,C*
      ",n+="
    • Select and save: select $1HHO,4N7N.A,B,C:5-10,LV,chemicals@CA,C,C* | name my_name
    ",n+="",n+="
    ",n+="",n}getOptionHtml(e,t){let s=this.icn3dui;s.icn3d;let i="";for(let n=0,l=e.length;n"+l+"":s.htmlCls.optionStr+"'"+l+"'>"+l+""}return i}setColorHints(){let e=this.icn3dui;e.icn3d;let t="";return t+=e.htmlCls.divNowrapStr+'Green: H-Bonds; ',t+='Cyan: Salt Bridge/Ionic; ',t+='Grey: Contacts',t+=e.htmlCls.divNowrapStr+'Magenta: Halogen Bonds; ',t+='Red: π-Cation; ',t+='Blue: π-Stacking',t}setThicknessHtml(e){let t=this.icn3dui,s=t.icn3d,i="",n="3dprint"==e?"1":"0.1",l="3dprint"==e?"1.2":"0.3",r="3dprint"==e?"0.8":"0.4",o="3dprint"==e?"0.8":"0.4",a="3dprint"==e?"1":"0.4",d="3dprint"==e?"0.6":"0.3",c="3dprint"==e?"1":"0.2",h="3dprint"==e?"2":"1.3",p="3dprint"==e?"1.4":"0.8",m=40,u=.8,g=.4,f=.2,C=0,b=1,y=0;if("style"==e){if(""!=this.getCookie("shininess")&&(m=parseFloat(this.getCookie("shininess"))),""!=this.getCookie("light1")&&(u=parseFloat(this.getCookie("light1")),g=parseFloat(this.getCookie("light2")),f=parseFloat(this.getCookie("light3"))),""!=this.getCookie("lineRadius")){n=parseFloat(this.getCookie("lineRadius")),l=parseFloat(this.getCookie("coilWidth")),r=parseFloat(this.getCookie("cylinderRadius"));let e=this.getCookie("crosslinkRadius");o=isNaN(e)?s.crosslinkRadius:parseFloat(e),a=parseFloat(this.getCookie("traceRadius")),d=parseFloat(this.getCookie("dotSphereScale")),c=parseFloat(this.getCookie("ribbonthickness")),h=parseFloat(this.getCookie("helixSheetWidth")),p=parseFloat(this.getCookie("nucleicAcidWidth"))}""!=this.getCookie("glycan")&&(C=parseFloat(this.getCookie("glycan"))),""!=this.getCookie("membrane")&&(b=parseFloat(this.getCookie("membrane"))),""!=this.getCookie("cmdwindow")&&(y=parseFloat(this.getCookie("cmdwindow"))),i+="Note: The following parameters will be saved in cache. You just need to set them once.

    ",i+="1. Shininess: "+t.htmlCls.inputTextStr+"id='"+t.pre+"shininess' value='"+m+"' size=4>"+t.htmlCls.space3+"(for the shininess of the 3D objects, default 40)

    ",i+="2. Three directional lights:
    ",i+="Key Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light1' value='"+u+"' size=4>"+t.htmlCls.space3+"(for the light strength of the key light, default 0.8)
    ",i+="Fill Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light2' value='"+g+"' size=4>"+t.htmlCls.space3+"(for the light strength of the fill light, default 0.4)
    ",i+="Back Light: "+t.htmlCls.inputTextStr+"id='"+t.pre+"light3' value='"+f+"' size=4>"+t.htmlCls.space3+"(for the light strength of the back light, default 0.2)

    ",i+="3. Thickness:
    "}return i+="Line Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"linerad_"+e+"' value='"+n+"' size=4>"+t.htmlCls.space3+"(for stabilizers, hydrogen bonds, distance lines, default 0.1)
    ",i+="Coil Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"coilrad_"+e+"' value='"+l+"' size=4>"+t.htmlCls.space3+"(for coils, default 0.3)
    ",i+="Stick Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"stickrad_"+e+"' value='"+r+"' size=4>"+t.htmlCls.space3+"(for sticks, default 0.4)
    ",i+="Cross-Linkage Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"crosslinkrad_"+e+"' value='"+o+"' size=4>"+t.htmlCls.space3+"(for cross-linkages, default 0.4)
    ",i+="Trace Radius: "+t.htmlCls.inputTextStr+"id='"+t.pre+"tracerad_"+e+"' value='"+a+"' size=4>"+t.htmlCls.space3+"(for C alpha trace, O3' trace, default 0.4)
    ",i+="Ribbon Thickness: "+t.htmlCls.inputTextStr+"id='"+t.pre+"ribbonthick_"+e+"' value='"+c+"' size=4>"+t.htmlCls.space3+"(for helix and sheet ribbons, nucleotide ribbons, default 0.2)
    ",i+="Protein Ribbon Width: "+t.htmlCls.inputTextStr+"id='"+t.pre+"prtribbonwidth_"+e+"' value='"+h+"' size=4>"+t.htmlCls.space3+"(for helix and sheet ribbons, default 1.3)
    ",i+="Nucleotide Ribbon Width: "+t.htmlCls.inputTextStr+"id='"+t.pre+"nucleotideribbonwidth_"+e+"' value='"+p+"' size=4>"+t.htmlCls.space3+"(for nucleotide ribbons, default 0.8)
    ",i+="Ball Scale: "+t.htmlCls.inputTextStr+"id='"+t.pre+"ballscale_"+e+"' value='"+d+"' size=4>"+t.htmlCls.space3+"(for styles 'Ball and Stick' and 'Dot', default 0.3)
    ","style"==e&&(i+="
    4. Show Glycan Cartoon: "+t.htmlCls.inputTextStr+"id='"+t.pre+"glycan' value='"+C+"' size=4>"+t.htmlCls.space3+"(0: hide, 1: show, default 0)
    ",i+="
    5. Show Membrane: "+t.htmlCls.inputTextStr+"id='"+t.pre+"membrane' value='"+b+"' size=4>"+t.htmlCls.space3+"(0: hide, 1: show, default 1)
    ",i+="
    6. Enlarge Command Window: "+t.htmlCls.inputTextStr+"id='"+t.pre+"cmdwindow' value='"+y+"' size=4>"+t.htmlCls.space3+"(0: Regular, 1: Large, default 0)

    "),i+=t.htmlCls.spanNowrapStr+""+t.htmlCls.buttonStr+"apply_thickness_"+e+"'>Apply   ",i+=t.htmlCls.spanNowrapStr+""+t.htmlCls.buttonStr+"reset_thickness_"+e+"'>Reset",i}getCookie(e){let t=e+"=",s=decodeURIComponent(document.cookie).split(";");for(let e=0;e":(n+='
    ',n+="
    Selection: Name: "+s.htmlCls.inputTextStr+"id='"+s.pre+"seq_command_name"+e+"' value='seq_"+l+"' size='5'> "+s.htmlCls.space2+"

    ",n+=s.htmlCls.divStr+"seqguide"+e+"' style='display:none; white-space:normal;' class='icn3d-box'>"),n+=this.getSelectionHints();return n+="Residue labeling: standard residue with coordinates: UPPER case letter; nonstandard residue with coordinates: the first UPPER case letter plus a period except that water residue uses the letter 'O'; residue missing coordinates: lower case letter."+(s.utilsCls.isMac()&&!s.utilsCls.isMobile()?"

    Turn on scroll bar: System preferences -> General -> show scroll bars -> check Always":"")+"
    ",n}setAlignSequenceGuide(e,t){let s=this.icn3dui,i=s.icn3d,n="";let l=i&&i.defNames2Atoms?Object.keys(i.defNames2Atoms).length:1;n+='
    ',n+="
    Selection: Name: "+s.htmlCls.inputTextStr+"id='"+s.pre+"alignseq_command_name' value='alseq_"+l+"' size='10'> "+s.htmlCls.space2+"

    ",n+=s.htmlCls.divStr+"alignseqguide' style='display:none; white-space:normal;' class='icn3d-box'>",n+=this.getSelectionHints();return n+="Residue labeling: aligned residue with coordinates: UPPER case letter; non-aligned residue with coordinates: lower case letter which can be highlighted; residue missing coordinates: lower case letter which can NOT be highlighted."+(s.utilsCls.isMac()&&!s.utilsCls.isMobile()?"

    Turn on scroll bar: System preferences -> General -> show scroll bars -> check Always":"")+"
    ",n}getSelectionHints(){let e=this.icn3dui;e.icn3d;let t="";if(e.utilsCls.isMobile())t+='Select Aligned Sequences: touch to select, touch again to deselect, multiple selection is allowed without Ctrl key, click "Save Selection" to save the current selection.
    ';else{t+='Select on 1D sequences: drag to select, drag again to deselect, multiple selection is allowed without Ctrl key, click "Save Selection" to save the current selection.

    ',t+="Select on 2D interaction diagram: click on the nodes or lines. The nodes are chains and can be united with the Ctrl key. The lines are interactions and can NOT be united. Each click on the lines selects half of the lines, i.e., select the interacting residues in one of the two chains.

    ",t+="Select on 3D structures: "+(e.utilsCls.isMobile()?"use finger to pick":'hold "Alt" and use mouse to pick')+', click the second time to deselect, hold "Ctrl" to union selection, hold "Shift" to select a range, press the up/down arrow to switch among atom/residue/strand/chain/structure, click "Save Selection" to save the current selection.

    ',t+='Save the current selection(either on 3D structure, 2D interactions, or 1D sequence): open the menu "Select -> Save Selection", specify the name and description for the selection, and click "Save".

    '}return t}addGsizeSalt(e){let t=this.icn3dui;t.icn3d;let s="";s+="Grid Size: ",s+="Salt Concentration: M
    ",s}getFootHtml(e,t){let s=this.icn3dui;s.icn3d;let i="
    ";return"delphi"==e?s.cfg.cid?i+="Note: Partial charges(MMFF94) are from PubChem Compound SDF files.

    ":(i+="Note: Only the selected residues are used for DelPhi potential calculation by solving linear Poisson-Boltzmann equation.",i+='

    ',i+=s.htmlCls.divStr+t+"' style='display:none;'>",i+="
    The hydrogens and partial charges of proteins and nucleotides are added using DelPhiPKa with the Amber charge and size files. The hydrogens of ligands are added using Open Babel. The partial charges of ligands are calculated using Antechamber with the Gasteiger charge method. All partial charges are calculated at pH 7.

    ",i+='Lipids are treated as ligands. Please use "HETATM" instead of "ATOM " for each lipid atom in your PDB file. Each phosphate in lipids is assigned with a charge of -1. You can download PQR and modify it, or prepare your PQR file using other tools. Then load the PQR file at the menu "Analysis > Load PQR/Potential".

    ',i+="
    "):(i+="Note: Always load a PDB file before loading a PQR or DelPhi potential file.",i+='

    ',i+=s.htmlCls.divStr+t+"' style='display:none;'>",i+='The PDB file can be loaded in the URL with "pdbid=" or at "File > Open File". The PQR file can be prepared at the menu "Analysis > Download PQR" with your modification or using other tools. The DelPhi potential file can be calculated at DelPhi Web Server and be exported as a Cube file. ',"url"==e&&(i+="The PQR or potential file can be accessed in a URL if it is located in the same host as iCn3D."),i+="

    ",i+=""),i+="",i}getPotentialHtml(e,t){let s=this.icn3dui;s.icn3d;let i,n,l,r,o,a="";r="Equipotential Map",o="Surface with Potential","delphi"==e?n="delphi":"local"==e?(i="pqr",n="phi",l="cube"):"url"==e&&(i="pqrurl",n="phiurl",l="cubeurl"),a+=s.htmlCls.divStr+"dl_"+n+"' class='"+t+"'>",a+=s.htmlCls.setDialogCls.addNotebookTitle("dl_"+n,"DelPhi Potential"),a+=s.htmlCls.divStr+"dl_"+n+"_tabs' style='border:0px;'>",a+="",a+=s.htmlCls.divStr+n+"tab1'>","delphi"==e&&(a+=this.addGsizeSalt(n+"1")+"
    "),a+="Potential contour at: kT/e(25.6mV at 298K)

    ","delphi"==e?(a+=s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map",a+=s.htmlCls.buttonStr+n+"mapNo' style='margin-left:30px;'>Remove Map
    "):"local"==e?(a+=s.htmlCls.divStr+n+"tab1_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo'>Remove Map",a+=s.htmlCls.divStr+n+"tab1_"+i+"'>",a+=this.addGsizeSalt(i)+"
    ",a+="PQR File: "+s.htmlCls.inputFileStr+"id='"+s.pre+i+"file'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+n+"'>",a+="Phi File: "+s.htmlCls.inputFileStr+"id='"+s.pre+n+"file'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+l+"'>",a+="Cube File: "+s.htmlCls.inputFileStr+"id='"+s.pre+l+"file'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=""):"url"==e&&(a+=s.htmlCls.divStr+n+"tab1_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo'>Remove Map",a+=s.htmlCls.divStr+n+"tab1_"+i+"2'>",a+=this.addGsizeSalt(i)+"
    ",a+="PQR URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+i+"file'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+n+"2'>",a+="Phi URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+n+"file'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=s.htmlCls.divStr+n+"tab1_"+l+"2'>",a+="Cube URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+l+"file'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file' style='margin-top: 6px;'>Equipotential Map"+d,a+=""),a+="
    "+this.getFootHtml(e,n+"tab1_foot"),a+="",a+=s.htmlCls.divStr+n+"tab2'>","delphi"==e&&(a+=this.addGsizeSalt(n+"2")+"
    "),a+="Surface with max potential at: kT/e(25.6mV at 298K)

    ",a+="Surface: ",a+="Opacity: ",a+="Wireframe:
    ",a+="
    ","delphi"==e?(a+=s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential",a+=s.htmlCls.buttonStr+n+"mapNo2' style='margin-left:30px;'>Remove Surface
    "):"local"==e?(a+=s.htmlCls.divStr+n+"tab2_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo2'>Remove Surface",a+=s.htmlCls.divStr+n+"tab2_"+i+"'>",a+=this.addGsizeSalt(i+"2")+"
    ",a+="PQR File: "+s.htmlCls.inputFileStr+"id='"+s.pre+i+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+n+"'>",a+="Phi File: "+s.htmlCls.inputFileStr+"id='"+s.pre+n+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+l+"'>",a+="Cube File: "+s.htmlCls.inputFileStr+"id='"+s.pre+l+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=""):"url"==e&&(a+=s.htmlCls.divStr+n+"tab2_tabs' style='border:0px;'>",a+="",d=""+s.htmlCls.buttonStr+n+"mapNo2'>Remove Surface",a+=s.htmlCls.divStr+n+"tab2_"+i+"2'>",a+=this.addGsizeSalt(i+"2")+"
    ",a+="PQR URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+i+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+i+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+n+"2'>",a+="Phi URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+n+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+n+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=s.htmlCls.divStr+n+"tab2_"+l+"2'>",a+="Cube URL in the same host: "+s.htmlCls.inputTextStr+"id='"+s.pre+l+"file2'>

    "+s.htmlCls.buttonStr+"reload_"+l+"file2' style='margin-top: 6px;'>Surface with Potential"+d,a+=""),a+="
    "+this.getFootHtml(e,n+"tab2_foot"),a+="",a+="",a+="",a}async exportPqr(e){let t=this.icn3dui,s=t.icn3d,i={},n={},l=t.hashUtilsCls.intHash(s.dAtoms,s.hAtoms);for(let e in l)s.atoms[e],s.ions.hasOwnProperty(e)?i[e]=1:n[e]=1;let r=e?"pdb":"pqr";if(t.cfg.cid){let l="",o=!e;l+=s.saveFileCls.getAtomPDB(n,o)+s.saveFileCls.getAtomPDB(i,o);let a=Object.keys(t.utilsCls.getHlStructures()).join(",");s.saveFileCls.saveFile(a+"_icn3d."+r,"text",[l])}else{if(t.utilsCls.isCalphaPhosOnly(t.hashUtilsCls.hash2Atoms(n,s.atoms)))return void alert("The potential will not be shown because the side chains are missing in the structure...");let l="",o=!0;l+=s.saveFileCls.getAtomPDB(n,void 0,void 0,void 0,void 0,void 0,o),l+=s.saveFileCls.getAtomPDB(i,!0,void 0,!0);let a=t.htmlCls.baseUrl+"delphi/delphi.cgi",d={pdb2pqr:l,pdbid:t.cfg.cid?t.cfg.cid:Object.keys(s.structures).toString()},c=await t.getAjaxPostPromise(a,d,!0,void 0,void 0,!0,"text");if(e){let e=c.split("\n"),s="";for(let i=0,n=e.length;i Save File > iCn3D PNG Image"...');else if(-1!=r){let t=e.substr(r+l.length);i.htmlCls.clickMenuCls.setLogCmd("load iCn3D PNG image "+$("#"+i.pre+"pngimage").val(),!1),window.open(t,"_self")}else if(-1!=a){let i="Start of data file======\n",l=e.indexOf(i);n.bInputfile=-1!=l,n.bInputPNGWithData=n.bInputfile;let r=t?t.replace(/;/g,"\n"):"",h=e.indexOf("End of data file======\n");d=e.substr(l+i.length,h-l-i.length);let p="Start of type file======\n",m=e.indexOf(p),u=e.indexOf("End of type file======\n"),g=e.substr(m+p.length,u-m-p.length-1);n.InputfileType=g;let f=e.indexOf("End of state file======\n");c=e.substr(a+o.length,f-a-o.length),c=decodeURIComponent(c+"\n"+r),s&&("pdb"===g?(await n.pdbParserCls.loadPdbData(d),n.commands=[],n.optsHistory=[]):("mol2"===g?await n.mol2ParserCls.loadMol2Data(d):"sdf"===g?await n.sdfParserCls.loadSdfData(d):"xyz"===g?await n.xyzParserCls.loadXyzData(d):"mmcif"===g&&await n.mmcifParserCls.loadMmcifData(d),n.commands=[],n.optsHistory=[]),await n.loadScriptCls.loadScript(c,!0))}return{pdb:d,statefile:c}}fileSupport(){window.File&&window.FileReader&&window.FileList&&window.Blob||alert("The File APIs are not fully supported in this browser.")}getLinkColor(){let e="";return e+=", linkmap: {\n",e+='3: {"type": "peptidebond", "c":""},\n',e+='4: {"type": "ssbond", "c":"FFA500"},\n',e+='5: {"type": "ionic", "c":"0FF"},\n',e+='6: {"type": "ionicInside", "c":"FFF"},\n',e+='11: {"type": "contact", "c":"888"},\n',e+='12: {"type": "contactInside", "c":"FFF"},\n',e+='13: {"type": "hbond", "c":"0F0"},\n',e+='14: {"type": "hbondInside", "c":"FFF"},\n',e+='15: {"type": "clbond", "c":"006400"},\n',e+='17: {"type": "halogen", "c":"F0F"},\n',e+='18: {"type": "halogenInside", "c":"FFF"},\n',e+='19: {"type": "pication", "c":"F00"},\n',e+='20: {"type": "picationInside", "c":"FFF"},\n',e+='21: {"type": "pistacking", "c":"00F"},\n',e+='22: {"type": "pistackingInside", "c":"FFF"}\n',e+="}}\n",', linkmap: {\n3: {"type": "peptidebond", "c":""},\n4: {"type": "ssbond", "c":"FFA500"},\n5: {"type": "ionic", "c":"0FF"},\n6: {"type": "ionicInside", "c":"FFF"},\n11: {"type": "contact", "c":"888"},\n12: {"type": "contactInside", "c":"FFF"},\n13: {"type": "hbond", "c":"0F0"},\n14: {"type": "hbondInside", "c":"FFF"},\n15: {"type": "clbond", "c":"006400"},\n17: {"type": "halogen", "c":"F0F"},\n18: {"type": "halogenInside", "c":"FFF"},\n19: {"type": "pication", "c":"F00"},\n20: {"type": "picationInside", "c":"FFF"},\n21: {"type": "pistacking", "c":"00F"},\n22: {"type": "pistackingInside", "c":"FFF"}\n}}\n'}setCookieForThickness(){let e=this.icn3dui,t=e.icn3d;if(!e.bNode){let e=3650;this.setCookie("lineRadius",t.lineRadius,e),this.setCookie("coilWidth",t.coilWidth,e),this.setCookie("cylinderRadius",t.cylinderRadius,e),this.setCookie("crosslinkRadius",t.crosslinkRadius,e),this.setCookie("traceRadius",t.traceRadius,e),this.setCookie("dotSphereScale",t.dotSphereScale,e),this.setCookie("ribbonthickness",t.ribbonthickness,e),this.setCookie("helixSheetWidth",t.helixSheetWidth,e),this.setCookie("nucleicAcidWidth",t.nucleicAcidWidth,e)}}setLineThickness(e,t){let s=this.icn3dui,i=s.icn3d;if(i.bSetThickness=!0,"style"==e&&(t&&($("#"+s.pre+"shininess").val("40"),$("#"+s.pre+"light1").val("0.8"),$("#"+s.pre+"light2").val("0.4"),$("#"+s.pre+"light3").val("0.2"),$("#"+s.pre+"glycan").val("0"),$("#"+s.pre+"membrane").val("1"),$("#"+s.pre+"cmdwindow").val("0")),i.shininess=parseFloat($("#"+s.pre+"shininess").val()),i.light1=parseFloat($("#"+s.pre+"light1").val()),i.light2=parseFloat($("#"+s.pre+"light2").val()),i.light3=parseFloat($("#"+s.pre+"light3").val()),i.bGlycansCartoon=parseInt($("#"+s.pre+"glycan").val()),i.bMembrane=parseInt($("#"+s.pre+"membrane").val()),i.bCmdWindow=parseInt($("#"+s.pre+"cmdwindow").val())),t&&($("#"+s.pre+"linerad_"+e).val(.1),$("#"+s.pre+"coilrad_"+e).val(.3),$("#"+s.pre+"stickrad_"+e).val(.4),$("#"+s.pre+"crosslinkrad_"+e).val(.4),$("#"+s.pre+"tracerad_"+e).val(.4),$("#"+s.pre+"ballscale_"+e).val(.3),$("#"+s.pre+"ribbonthick_"+e).val(.2),$("#"+s.pre+"prtribbonwidth_"+e).val(1.3),$("#"+s.pre+"nucleotideribbonwidth_"+e).val(.8)),i.lineRadius=parseFloat($("#"+s.pre+"linerad_"+e).val()),i.coilWidth=parseFloat($("#"+s.pre+"coilrad_"+e).val()),i.cylinderRadius=parseFloat($("#"+s.pre+"stickrad_"+e).val()),i.crosslinkRadius=parseFloat($("#"+s.pre+"crosslinkrad_"+e).val()),i.traceRadius=parseFloat($("#"+s.pre+"tracerad_"+e).val()),i.dotSphereScale=parseFloat($("#"+s.pre+"ballscale_"+e).val()),i.ribbonthickness=parseFloat($("#"+s.pre+"ribbonthick_"+e).val()),i.helixSheetWidth=parseFloat($("#"+s.pre+"prtribbonwidth_"+e).val()),i.nucleicAcidWidth=parseFloat($("#"+s.pre+"nucleotideribbonwidth_"+e).val()),!s.bNode){let e=3650;this.setCookie("shininess",i.shininess,e),this.setCookie("light1",i.light1,e),this.setCookie("light2",i.light2,e),this.setCookie("light3",i.light3,e),this.setCookie("glycan",i.bGlycansCartoon,e),this.setCookie("membrane",i.bMembrane,e),this.setCookie("cmdwindow",i.bCmdWindow,e)}if(this.setCookieForThickness(),e=t){let e="reset thickness";s.htmlCls.clickMenuCls.setLogCmd(e,!0),i.bSetThickness=!1,i.threeDPrintCls.resetAfter3Dprint()}else s.htmlCls.clickMenuCls.setLogCmd("set thickness | linerad "+i.lineRadius+" | coilrad "+i.coilWidth+" | stickrad "+i.cylinderRadius+" | crosslinkrad "+i.crosslinkRadius+" | tracerad "+i.traceRadius+" | ribbonthick "+i.ribbonthickness+" | proteinwidth "+i.helixSheetWidth+" | nucleotidewidth "+i.nucleicAcidWidth+" | ballscale "+i.dotSphereScale,!0),s.htmlCls.clickMenuCls.setLogCmd("set glycan "+i.bGlycansCartoon,!0),s.htmlCls.clickMenuCls.setLogCmd("set membrane "+i.bMembrane,!0),s.htmlCls.clickMenuCls.setLogCmd("set cmdwindow "+i.bCmdWindow,!0);i.drawCls.draw()}setCookie(e,t,s){let i=new Date;i.setTime(i.getTime()+24*s*60*60*1e3);let n="expires="+i.toUTCString();document.cookie=e+"="+t+";"+n+";path=/"}updateSurfPara(e){let t=this.icn3dui,s=t.icn3d;s.phisurftype=$("#"+t.pre+e+"surftype").val(),s.phisurfop=$("#"+t.pre+e+"surfop").val(),s.phisurfwf=$("#"+t.pre+e+"surfwf").val()}exportPdb(){let e=this.icn3dui,t=e.icn3d,s="",i=e.hashUtilsCls.intHash(t.dAtoms,t.hAtoms);if(s+=t.saveFileCls.getAtomPDB(i),!e.bNode){let i=Object.keys(e.utilsCls.getHlStructures()).join(",");t.saveFileCls.saveFile(i+"_icn3d.pdb","text",[s])}return s}exportSecondary(){let e=this.icn3dui,t=e.icn3d,s="",i=e.hashUtilsCls.intHash(t.dAtoms,t.hAtoms);if(s+=t.saveFileCls.getSecondary(i),!e.bNode){let i=Object.keys(e.utilsCls.getHlStructures()).join(",");t.saveFileCls.saveFile(i+"_icn3d_ss.txt","text",[s])}return s}}class g{constructor(e){let t=e;this.icn3dui=e,this.cfg=this.icn3dui.cfg,this.opts={},this.opts.background="black",this.allMenus={},this.allMenusSel={},this.simpleMenus={},this.shownMenus={},this.WIDTH=400,this.HEIGHT=400,this.RESIDUE_WIDTH=10,t.utilsCls.isMobile()||this.cfg.mobilemenu?this.MENU_HEIGHT=0:this.MENU_HEIGHT=40,this.LOG_HEIGHT=65,this.MENU_WIDTH=750,this.LESSWIDTH=20,this.LESSWIDTH_RESIZE=20,this.LESSHEIGHT=20,this.width2d=200,this.CMD_HEIGHT=.8*this.LOG_HEIGHT,this.EXTRAHEIGHT=this.MENU_HEIGHT+this.CMD_HEIGHT,null!=this.cfg.showmenu&&0==this.cfg.showmenu&&(this.EXTRAHEIGHT-=this.MENU_HEIGHT),null!=this.cfg.showcommand&&0==this.cfg.showcommand&&(this.EXTRAHEIGHT-=this.CMD_HEIGHT),this.GREY8="#AAAAAA",this.GREYB="#CCCCCC",this.GREYC="#DDDDDD",this.GREYD="#EEEEEE",this.ORANGE="#FFA500",this.themecolor="blue",this.defaultValue=1,this.ssValue=3,this.coilValue=3,this.contactValue=11,this.contactInsideValue=12,this.hbondValue=13,this.hbondInsideValue=14,this.ssbondValue=4,this.ionicValue=5,this.ionicInsideValue=6,this.clbondValue=15,this.halogenValue=17,this.halogenInsideValue=18,this.picationValue=19,this.picationInsideValue=20,this.pistackingValue=21,this.pistackingInsideValue=22,this.contactColor="888",this.contactInsideColor="FFF",this.hbondColor="0F0",this.hbondInsideColor="FFF",this.ssbondColor="FFA500",this.ionicColor="0FF",this.ionicInsideColor="FFF",this.clbondColor="006400",this.halogenColor="F0F",this.halogenInsideColor="FFF",this.picationColor="F00",this.picationInsideColor="FFF",this.pistackingColor="00F",this.pistackingInsideColor="FFF",this.hideedges=1,this.force=4,this.simulation=void 0,this.baseUrl=window&&window.location&&"structure.ncbi.nlm.nih.gov"==window.location.hostname?"https://structure.ncbi.nlm.nih.gov/Structure/":"https://www.ncbi.nlm.nih.gov/Structure/",this.tmalignUrl=this.baseUrl+"tmalign/tmalign.cgi",this.divStr="
    ",this.spanNowrapStr="",this.inputTextStr="=2.0 are supported.")));const a=new pe(o,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});a.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e=0&&void 0===r[t]&&console.warn('THREE.GLTFLoader: Unknown extension "'+t+'".')}}a.setExtensions(l),a.setPlugins(r),a.parse(s,i)}parseAsync(e,t){const s=this;return new Promise((function(i,n){s.parse(e,t,i,n)}))}}function C(){let e={};return{get:function(t){return e[t]},add:function(t,s){e[t]=s},remove:function(t){delete e[t]},removeAll:function(){e={}}}}const b={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression"};class y{constructor(e){this.parser=e,this.name=b.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let s=0,i=t.length;s=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,n.source,l)}}class R{constructor(e){this.parser=e,this.name=b.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,s=this.parser,i=s.json,n=i.textures[e];if(!n.extensions||!n.extensions[t])return null;const l=n.extensions[t],r=i.images[l.source];let o=s.textureLoader;if(r.uri){const e=s.options.manager.getHandler(r.uri);null!==e&&(o=e)}return this.detectSupport().then((function(n){if(n)return s.loadTextureImage(e,l.source,o);if(i.extensionsRequired&&i.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return s.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}}class I{constructor(e){this.name=b.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,s=t.bufferViews[e];if(s.extensions&&s.extensions[this.name]){const e=s.extensions[this.name],i=this.parser.getDependency("buffer",e.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return Promise.all([i,n.ready]).then((function(t){const s=e.byteOffset||0,i=e.byteLength||0,l=e.count,r=e.byteStride,o=new ArrayBuffer(l*r),a=new Uint8Array(t[0],s,i);return n.decodeGltfBuffer(new Uint8Array(o),l,r,a,e.mode,e.filter),o}))}return null}}const E="glTF",T=1313821514,P=5130562;class D{constructor(e){this.name=b.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,12);if(this.header={magic:THREE.LoaderUtils.decodeText(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==E)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const s=this.header.length-12,i=new DataView(e,12);let n=0;for(;n",t).replace("#include ",s).replace("#include ",i).replace("#include ",n).replace("#include ",l)},Object.defineProperties(this,{specular:{get:function(){return r.specular.value},set:function(e){r.specular.value=e}},specularMap:{get:function(){return r.specularMap.value},set:function(e){r.specularMap.value=e,e?this.defines.USE_SPECULARMAP="":delete this.defines.USE_SPECULARMAP}},glossiness:{get:function(){return r.glossiness.value},set:function(e){r.glossiness.value=e}},glossinessMap:{get:function(){return r.glossinessMap.value},set:function(e){r.glossinessMap.value=e,e?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_UV=""):(delete this.defines.USE_GLOSSINESSMAP,delete this.defines.USE_UV)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(e)}copy(e){return super.copy(e),this.specularMap=e.specularMap,this.specular.copy(e.specular),this.glossinessMap=e.glossinessMap,this.glossiness=e.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this}}class L{constructor(){this.name=b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,this.specularGlossinessParams=["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity"]}getMaterialType(){return H}extendParams(e,t,s){const i=t.extensions[this.name];e.color=new Color(1,1,1),e.opacity=1;const n=[];if(Array.isArray(i.diffuseFactor)){const t=i.diffuseFactor;e.color.fromArray(t),e.opacity=t[3]}if(void 0!==i.diffuseTexture&&n.push(s.assignTexture(e,"map",i.diffuseTexture,sRGBEncoding)),e.emissive=new Color(0,0,0),e.glossiness=void 0!==i.glossinessFactor?i.glossinessFactor:1,e.specular=new Color(1,1,1),Array.isArray(i.specularFactor)&&e.specular.fromArray(i.specularFactor),void 0!==i.specularGlossinessTexture){const t=i.specularGlossinessTexture;n.push(s.assignTexture(e,"glossinessMap",t)),n.push(s.assignTexture(e,"specularMap",t,sRGBEncoding))}return Promise.all(n)}createMaterial(e){const t=new H(e);return t.fog=!0,t.color=e.color,t.map=void 0===e.map?null:e.map,t.lightMap=null,t.lightMapIntensity=1,t.aoMap=void 0===e.aoMap?null:e.aoMap,t.aoMapIntensity=1,t.emissive=e.emissive,t.emissiveIntensity=1,t.emissiveMap=void 0===e.emissiveMap?null:e.emissiveMap,t.bumpMap=void 0===e.bumpMap?null:e.bumpMap,t.bumpScale=1,t.normalMap=void 0===e.normalMap?null:e.normalMap,t.normalMapType=TangentSpaceNormalMap,e.normalScale&&(t.normalScale=e.normalScale),t.displacementMap=null,t.displacementScale=1,t.displacementBias=0,t.specularMap=void 0===e.specularMap?null:e.specularMap,t.specular=e.specular,t.glossinessMap=void 0===e.glossinessMap?null:e.glossinessMap,t.glossiness=e.glossiness,t.alphaMap=null,t.envMap=void 0===e.envMap?null:e.envMap,t.envMapIntensity=1,t}}class N{constructor(){this.name=b.KHR_MESH_QUANTIZATION}}class q extends THREE.Interpolant{constructor(e,t,s,i){super(e,t,s,i)}copySampleValue_(e){const t=this.resultBuffer,s=this.sampleValues,i=this.valueSize,n=e*i*3+i;for(let e=0;e!==i;e++)t[e]=s[n+e];return t}}q.prototype.beforeStart_=q.prototype.copySampleValue_,q.prototype.afterEnd_=q.prototype.copySampleValue_,q.prototype.interpolate_=function(e,t,s,i){const n=this.resultBuffer,l=this.sampleValues,r=this.valueSize,o=2*r,a=3*r,d=i-t,c=(s-t)/d,h=c*c,p=h*c,m=e*a,u=m-a,g=-2*p+3*h,f=p-h,C=1-g,b=f-h+c;for(let e=0;e!==r;e++){const t=l[u+e+r],s=l[u+e+o]*d,i=l[m+e+r],a=l[m+e]*d;n[e]=C*t+b*s+g*i+f*a}return n};const U=new THREE.Quaternion;class B extends q{interpolate_(e,t,s,i){const n=super.interpolate_(e,t,s,i);return U.fromArray(n).normalize().toArray(n),n}}const j=0,z=1,G=2,V=3,W=4,Y=5,X=6,K={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},J={9728:THREE.NearestFilter,9729:THREE.LinearFilter,9984:THREE.NearestMipmapNearestFilter,9985:THREE.LinearMipmapNearestFilter,9986:THREE.NearestMipmapLinearFilter,9987:THREE.LinearMipmapLinearFilter},Z={33071:THREE.ClampToEdgeWrapping,33648:THREE.MirroredRepeatWrapping,10497:THREE.RepeatWrapping},Q={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},ee={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},te={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},se={CUBICSPLINE:void 0,LINEAR:THREE.InterpolateLinear,STEP:THREE.InterpolateDiscrete},ie="OPAQUE",ne="MASK",le="BLEND";function re(e,t,s){for(const i in s.extensions)void 0===e[i]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[i]=s.extensions[i])}function oe(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function ae(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let s=0,i=t.weights.length;s{const s=this.associations.get(e);null!=s&&this.associations.set(t,s);for(const[s,i]of e.children.entries())n(i,t.children[s])};return n(s,i),i.name+="_instance_"+e.uses[t]++,i}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let s=0;s=2&&m.setY(t,c[e*l+1]),l>=3&&m.setZ(t,c[e*l+2]),l>=4&&m.setW(t,c[e*l+3]),l>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return m}))}loadTexture(e){const t=this.json,s=this.options,i=t.textures[e].source,n=t.images[i];let l=this.textureLoader;if(n.uri){const e=s.manager.getHandler(n.uri);null!==e&&(l=e)}return this.loadTextureImage(e,i,l)}loadTextureImage(e,t,s){const i=this,n=this.json,l=n.textures[e],r=n.images[t],o=(r.uri||r.bufferView)+":"+l.sampler;if(this.textureCache[o])return this.textureCache[o];const a=this.loadImageSource(t,s).then((function(t){t.flipY=!1,l.name&&(t.name=l.name);const s=(n.samplers||{})[l.sampler]||{};return t.magFilter=J[s.magFilter]||LinearFilter,t.minFilter=J[s.minFilter]||LinearMipmapLinearFilter,t.wrapS=Z[s.wrapS]||RepeatWrapping,t.wrapT=Z[s.wrapT]||RepeatWrapping,i.associations.set(t,{textures:e}),t})).catch((function(){return null}));return this.textureCache[o]=a,a}loadImageSource(e,t){const s=this,i=this.json,n=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then((e=>e.clone()));const l=i.images[e],r=self.URL||self.webkitURL;let o=l.uri||"",a=!1;if(void 0!==l.bufferView)o=s.getDependency("bufferView",l.bufferView).then((function(e){a=!0;const t=new Blob([e],{type:l.mimeType});return o=r.createObjectURL(t),o}));else if(void 0===l.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const d=Promise.resolve(o).then((function(e){return new Promise((function(s,i){let l=s;!0===t.isImageBitmapLoader&&(l=function(e){const t=new Texture(e);t.needsUpdate=!0,s(t)}),t.load(THREE.LoaderUtils.resolveURL(e,n.path),l,void 0,i)}))})).then((function(e){var t;return!0===a&&r.revokeObjectURL(o),e.userData.mimeType=l.mimeType||((t=l.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e})).catch((function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),e}));return this.sourceCache[e]=d,d}assignTexture(e,t,s,i){const n=this;return this.getDependency("texture",s.index).then((function(l){if(void 0===s.texCoord||0==s.texCoord||"aoMap"===t&&1==s.texCoord||console.warn("THREE.GLTFLoader: Custom UV set "+s.texCoord+" for texture "+t+" not yet supported."),n.extensions[b.KHR_TEXTURE_TRANSFORM]){const e=void 0!==s.extensions?s.extensions[b.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=n.associations.get(l);l=n.extensions[b.KHR_TEXTURE_TRANSFORM].extendTexture(l,e),n.associations.set(l,t)}}return void 0!==i&&(l.encoding=i),e[t]=l,l}))}assignFinalMaterial(e){const t=e.geometry;let s=e.material;const i=void 0===t.attributes.tangent,n=void 0!==t.attributes.color,l=void 0===t.attributes.normal;if(e.isPoints){const e="PointsMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new PointsMaterial,Material.prototype.copy.call(t,s),t.color.copy(s.color),t.map=s.map,t.sizeAttenuation=!1,this.cache.add(e,t)),s=t}else if(e.isLine){const e="LineBasicMaterial:"+s.uuid;let t=this.cache.get(e);t||(t=new LineBasicMaterial,Material.prototype.copy.call(t,s),t.color.copy(s.color),this.cache.add(e,t)),s=t}if(i||n||l){let e="ClonedMaterial:"+s.uuid+":";s.isGLTFSpecularGlossinessMaterial&&(e+="specular-glossiness:"),i&&(e+="derivative-tangents:"),n&&(e+="vertex-colors:"),l&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=s.clone(),n&&(t.vertexColors=!0),l&&(t.flatShading=!0),i&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(s))),s=t}s.aoMap&&void 0===t.attributes.uv2&&void 0!==t.attributes.uv&&t.setAttribute("uv2",t.attributes.uv),e.material=s}getMaterialType(){return MeshStandardMaterial}loadMaterial(e){const t=this,s=this.json,i=this.extensions,n=s.materials[e];let l;const r={},o=n.extensions||{},a=[];if(o[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){const e=i[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];l=e.getMaterialType(),a.push(e.extendParams(r,n,t))}else if(o[b.KHR_MATERIALS_UNLIT]){const e=i[b.KHR_MATERIALS_UNLIT];l=e.getMaterialType(),a.push(e.extendParams(r,n,t))}else{const s=n.pbrMetallicRoughness||{};if(r.color=new Color(1,1,1),r.opacity=1,Array.isArray(s.baseColorFactor)){const e=s.baseColorFactor;r.color.fromArray(e),r.opacity=e[3]}void 0!==s.baseColorTexture&&a.push(t.assignTexture(r,"map",s.baseColorTexture,sRGBEncoding)),r.metalness=void 0!==s.metallicFactor?s.metallicFactor:1,r.roughness=void 0!==s.roughnessFactor?s.roughnessFactor:1,void 0!==s.metallicRoughnessTexture&&(a.push(t.assignTexture(r,"metalnessMap",s.metallicRoughnessTexture)),a.push(t.assignTexture(r,"roughnessMap",s.metallicRoughnessTexture))),l=this._invokeOne((function(t){return t.getMaterialType&&t.getMaterialType(e)})),a.push(Promise.all(this._invokeAll((function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,r)}))))}!0===n.doubleSided&&(r.side=DoubleSide);const d=n.alphaMode||ie;if(d===le?(r.transparent=!0,r.depthWrite=!1):(r.transparent=!1,d===ne&&(r.alphaTest=void 0!==n.alphaCutoff?n.alphaCutoff:.5)),void 0!==n.normalTexture&&l!==MeshBasicMaterial&&(a.push(t.assignTexture(r,"normalMap",n.normalTexture)),r.normalScale=new Vector2(1,1),void 0!==n.normalTexture.scale)){const e=n.normalTexture.scale;r.normalScale.set(e,e)}return void 0!==n.occlusionTexture&&l!==MeshBasicMaterial&&(a.push(t.assignTexture(r,"aoMap",n.occlusionTexture)),void 0!==n.occlusionTexture.strength&&(r.aoMapIntensity=n.occlusionTexture.strength)),void 0!==n.emissiveFactor&&l!==MeshBasicMaterial&&(r.emissive=(new Color).fromArray(n.emissiveFactor)),void 0!==n.emissiveTexture&&l!==MeshBasicMaterial&&a.push(t.assignTexture(r,"emissiveMap",n.emissiveTexture,sRGBEncoding)),Promise.all(a).then((function(){let s;return s=l===H?i[b.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(r):new l(r),n.name&&(s.name=n.name),oe(s,n),t.associations.set(s,{materials:e}),n.extensions&&re(i,s,n),s}))}createUniqueName(e){const t=PropertyBinding.sanitizeNodeName(e||"");let s=t;for(let e=1;this.nodeNamesUsed[s];++e)s=t+"_"+e;return this.nodeNamesUsed[s]=!0,s}loadGeometries(e){const t=this,s=this.extensions,i=this.primitiveCache;function n(e){return s[b.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then((function(s){return ue(s,e,t)}))}const l=[];for(let s=0,r=e.length;s0&&ae(h,n),h.name=t.createUniqueName(n.name||"mesh_"+e),oe(h,n),c.extensions&&re(i,h,c),t.assignFinalMaterial(h),a.push(h)}for(let s=0,i=a.length;s1?new Group:1===t.length?t[0]:new Object3D,r!==t[0])for(let e=0,s=t.length;e{const t=new Map;for(const[e,s]of n.associations)(e instanceof Material||e instanceof Texture)&&t.set(e,s);return e.traverse((e=>{const s=n.associations.get(e);null!=s&&t.set(e,s)})),t})(l),l}))}}function me(e,t,s,i){const n=s.nodes[e];return i.getDependency("node",e).then((function(e){if(void 0===n.skin)return e;let t;return i.getDependency("skin",n.skin).then((function(e){t=e;const s=[];for(let e=0,n=t.joints.length;e{const s=n[e];return s&&(l={profileId:e,profilePath:`${t}/${s.path}`,deprecated:!!s.deprecated}),!!l})),!l){if(!s)throw new Error("No matching profile name found");const e=n[s];if(!e)throw new Error(`No matching profile name found and default profile "${s}" missing.`);l={profileId:s,profilePath:`${t}/${e.path}`,deprecated:!!e.deprecated}}const r=await Ce(l.profilePath);let o;if(i){let t;if(t="any"===e.handedness?r.layouts[Object.keys(r.layouts)[0]]:r.layouts[e.handedness],!t)throw new Error(`No matching handedness, ${e.handedness}, in profile ${l.profileId}`);t.assetPath&&(o=l.profilePath.replace("profile.json",t.assetPath))}return{profile:r,assetPath:o}}const ye={xAxis:0,yAxis:0,button:0,state:fe.ComponentState.DEFAULT};class ve{constructor(e){this.componentProperty=e.componentProperty,this.states=e.states,this.valueNodeName=e.valueNodeName,this.valueNodeProperty=e.valueNodeProperty,this.valueNodeProperty===fe.VisualResponseProperty.TRANSFORM&&(this.minNodeName=e.minNodeName,this.maxNodeName=e.maxNodeName),this.value=0,this.updateFromComponent(ye)}updateFromComponent({xAxis:e,yAxis:t,button:s,state:i}){const{normalizedXAxis:n,normalizedYAxis:l}=function(e=0,t=0){let s=e,i=t;if(Math.sqrt(e*e+t*t)>1){const n=Math.atan2(t,e);s=Math.cos(n),i=Math.sin(n)}return{normalizedXAxis:.5*s+.5,normalizedYAxis:.5*i+.5}}(e,t);switch(this.componentProperty){case fe.ComponentProperty.X_AXIS:this.value=this.states.includes(i)?n:.5;break;case fe.ComponentProperty.Y_AXIS:this.value=this.states.includes(i)?l:.5;break;case fe.ComponentProperty.BUTTON:this.value=this.states.includes(i)?s:0;break;case fe.ComponentProperty.STATE:this.valueNodeProperty===fe.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(i):this.value=this.states.includes(i)?1:0;break;default:throw new Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`)}}}class _e{constructor(e,t){if(!(e&&t&&t.visualResponses&&t.gamepadIndices&&0!==Object.keys(t.gamepadIndices).length))throw new Error("Invalid arguments supplied");this.id=e,this.type=t.type,this.rootNodeName=t.rootNodeName,this.touchPointNodeName=t.touchPointNodeName,this.visualResponses={},Object.keys(t.visualResponses).forEach((e=>{const s=new ve(t.visualResponses[e]);this.visualResponses[e]=s})),this.gamepadIndices=Object.assign({},t.gamepadIndices),this.values={state:fe.ComponentState.DEFAULT,button:void 0!==this.gamepadIndices.button?0:void 0,xAxis:void 0!==this.gamepadIndices.xAxis?0:void 0,yAxis:void 0!==this.gamepadIndices.yAxis?0:void 0}}get data(){return{id:this.id,...this.values}}updateFromGamepad(e){if(this.values.state=fe.ComponentState.DEFAULT,void 0!==this.gamepadIndices.button&&e.buttons.length>this.gamepadIndices.button){const t=e.buttons[this.gamepadIndices.button];this.values.button=t.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,t.pressed||1===this.values.button?this.values.state=fe.ComponentState.PRESSED:(t.touched||this.values.button>fe.ButtonTouchThreshold)&&(this.values.state=fe.ComponentState.TOUCHED)}void 0!==this.gamepadIndices.xAxis&&e.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=e.axes[this.gamepadIndices.xAxis],this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis,this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis,this.values.state===fe.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>fe.AxisTouchThreshold&&(this.values.state=fe.ComponentState.TOUCHED)),void 0!==this.gamepadIndices.yAxis&&e.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=e.axes[this.gamepadIndices.yAxis],this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis,this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis,this.values.state===fe.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>fe.AxisTouchThreshold&&(this.values.state=fe.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach((e=>{e.updateFromComponent(this.values)}))}}class we{constructor(e,t,s){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No profile supplied");this.xrInputSource=e,this.assetUrl=s,this.id=t.profileId,this.layoutDescription=t.layouts[e.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach((e=>{const t=this.layoutDescription.components[e];this.components[e]=new _e(e,t)})),this.updateFromGamepad()}get gripSpace(){return this.xrInputSource.gripSpace}get targetRaySpace(){return this.xrInputSource.targetRaySpace}get data(){const e=[];return Object.values(this.components).forEach((t=>{e.push(t.data)})),e}updateFromGamepad(){Object.values(this.components).forEach((e=>{e.updateFromGamepad(this.xrInputSource.gamepad)}))}}class Se extends THREE.Object3D{constructor(){super(),this.motionController=null,this.envMap=null}setEnvironmentMap(e){return this.envMap==e||(this.envMap=e,this.traverse((e=>{e.isMesh&&(e.material.envMap=this.envMap,e.material.needsUpdate=!0)}))),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach((e=>{Object.values(e.visualResponses).forEach((e=>{const{valueNode:t,minNode:s,maxNode:i,value:n,valueNodeProperty:l}=e;t&&(l===fe.VisualResponseProperty.VISIBILITY?t.visible=n:l===fe.VisualResponseProperty.TRANSFORM&&(t.quaternion.slerpQuaternions(s.quaternion,i.quaternion,n),t.position.lerpVectors(s.position,i.position,n)))}))})))}}function Ae(e,t){!function(e,t){Object.values(e.components).forEach((e=>{const{type:s,touchPointNodeName:i,visualResponses:n}=e;if(s===fe.ComponentType.TOUCHPAD)if(e.touchPointNode=t.getObjectByName(i),e.touchPointNode){const t=new SphereGeometry(.001),s=new MeshBasicMaterial({color:255}),i=new Mesh(t,s);e.touchPointNode.add(i)}else console.warn(`Could not find touch dot, ${e.touchPointNodeName}, in touchpad component ${e.id}`);Object.values(n).forEach((e=>{const{valueNodeName:s,minNodeName:i,maxNodeName:n,valueNodeProperty:l}=e;if(l===fe.VisualResponseProperty.TRANSFORM){if(e.minNode=t.getObjectByName(i),e.maxNode=t.getObjectByName(n),!e.minNode)return void console.warn(`Could not find ${i} in the model`);if(!e.maxNode)return void console.warn(`Could not find ${n} in the model`)}e.valueNode=t.getObjectByName(s),e.valueNode||console.warn(`Could not find ${s} in the model`)}))}))}(e.motionController,t),e.envMap&&t.traverse((t=>{t.isMesh&&(t.material.envMap=e.envMap,t.material.needsUpdate=!0)})),e.add(t)}class xe{constructor(e=null){this.gltfLoader=e,this.path="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",this._assetCache={},this.gltfLoader||(this.gltfLoader=new f)}createControllerModel(e){const t=new Se;let s=null;return e.addEventListener("connected",(e=>{const i=e.data;"tracked-pointer"===i.targetRayMode&&i.gamepad&&be(i,this.path,"generic-trigger").then((({profile:e,assetPath:n})=>{t.motionController=new we(i,e,n);const l=this._assetCache[t.motionController.assetUrl];if(l)s=l.scene.clone(),Ae(t,s);else{if(!this.gltfLoader)throw new Error("GLTFLoader not set.");this.gltfLoader.setPath(""),this.gltfLoader.load(t.motionController.assetUrl,(e=>{this._assetCache[t.motionController.assetUrl]=e,s=e.scene.clone(),Ae(t,s)}),null,(()=>{throw new Error(`Asset ${t.motionController.assetUrl} missing or malformed.`)}))}})).catch((e=>{console.warn(e)}))})),e.addEventListener("disconnected",(()=>{t.motionController=null,t.remove(s),s=null})),t}}class ke extends THREE.EventDispatcher{constructor(e){if(super(),void 0===e)return void console.error("ControllerGestures must be passed a renderer");const t=new THREE.Clock;this.controller1=e.xr.getController(0),this.controller1.userData.gestures={index:0},this.controller1.userData.selectPressed=!1,this.controller1.addEventListener("selectstart",i),this.controller1.addEventListener("selectend",n),this.controller2=e.xr.getController(1),this.controller2.userData.gestures={index:1},this.controller2.userData.selectPressed=!1,this.controller2.addEventListener("selectstart",i),this.controller2.addEventListener("selectend",n),this.doubleClickLimit=.2,this.pressMinimum=.4,this.right=new THREE.Vector3(1,0,0),this.up=new THREE.Vector3(0,1,0),this.type="unknown",this.prevTap="none",this.clock=t;const s=this;function i(){const e=this.userData.gestures;e.startPosition=void 0,e.startTime=t.getElapsedTime(),-1==s.type.indexOf("tap")&&(e.taps=0),s.type="unknown",this.userData.selectPressed=!0}function n(){const e=this.userData.gestures;e.endTime=t.getElapsedTime();e.endTime-e.startTime.05&&(e.startPosition=this.controller1.position.clone())),this.controller2.userData.selectPressed&&void 0===t.startPosition&&(i=s-t.startTime,i>.05&&(t.startPosition=this.controller2.position.clone())),!this.controller1.userData.selectPressed&&"tap"===this.type&&(i=this.clock.getElapsedTime()-e.endTime,i>this.doubleClickLimit)){switch(e.taps){case 1:self.prevTap="tap";break;case 2:this.dispatchEvent({type:"doubletap",position:this.controller1.position,matrixWorld:this.controller1.matrixWorld}),self.prevTap="doubletap"}this.type="unknown",e.taps=0}if("unknown"===this.type&&this.touch)"doubletap"==self.prevTap?(this.type="pinch",this.startDistance=this.controller1.position.distanceTo(this.controller2.position),this.dispatchEvent({type:"pinch",delta:new THREE.Vector3(0,0,0),scale:1,initialise:!0})):(this.type="pan",this.startPosition=this.controller1.position.clone(),this.dispatchEvent({type:"pan",delta:new THREE.Vector3(0,0,0),initialise:!0}));else if(("pinch"===this.type||"pan"===this.type)&&"doubletap"==self.prevTap&&this.controller2.position){const e=this.controller1.position.distanceTo(this.controller2.position)/this.startDistance,t=this.controller1.position.clone().sub(this.startPosition);this.dispatchEvent({type:"pinch",delta:t,scale:e})}}}class Oe{constructor(e,t){this.config=void 0===t?{panelSize:{width:1,height:1},width:512,height:512,opacity:.7,body:{fontFamily:"Arial",fontSize:30,padding:2,backgroundColor:"#000",fontColor:"#fff",borderRadius:6}}:t,void 0===this.config.width&&(this.config.width=512),void 0===this.config.height&&(this.config.height=512),void 0===this.config.body&&(this.config.body={fontFamily:"Arial",size:30,padding:2,backgroundColor:"#000",fontColor:"#fff",borderRadius:6});const s=this.config.body;void 0===s.borderRadius&&(s.borderRadius=6),void 0===s.fontFamily&&(s.fontFamily="Arial"),void 0===s.padding&&(s.padding=2),void 0===s.fontSize&&(s.fontSize=30),void 0===s.backgroundColor&&(s.backgroundColor="#000"),void 0===s.fontColor&&(s.fontColor="#fff"),Object.entries(this.config).forEach((([e,t])=>{if(!("object"!=typeof t||"panelSize"===e||t instanceof THREE.WebGLRenderer||t instanceof THREE.Scene)){const e=void 0!==t.position?t.position:{x:0,y:0};void 0!==e.left&&void 0===e.x&&(e.x=e.left),void 0!==e.top&&void 0===e.y&&(e.y=e.top);const s=void 0!==t.width?t.width:this.config.width,i=void 0!==t.height?t.height:this.config.height;void 0!==e.right&&void 0===e.x&&(e.x=this.config.width-e.right-s),void 0!==e.bottom&&void 0===e.y&&(e.y=this.config.height-e.bottom-i),void 0===e.x&&(e.x=0),void 0===e.y&&(e.y=0),t.position=e,void 0===t.type&&(t.type="text")}}));const i=this.createOffscreenCanvas(this.config.width,this.config.height);this.context=i.getContext("2d"),this.context.save();const n=void 0!==this.config.opacity?this.config.opacity:.7,l=new THREE.MeshBasicMaterial({transparent:!0,opacity:n});this.panelSize=void 0!==this.config.panelSize?this.config.panelSize:{width:1,height:1};const r=new THREE.PlaneGeometry(this.panelSize.width,this.panelSize.height);this.mesh=new THREE.Mesh(r,l),this.texture=new THREE.CanvasTexture(i),this.mesh.material.map=this.texture,this.scene=this.config.scene;if(Object.values(this.config).filter((e=>"input-text"===e.type)).length>0){this.keyboard=new Re(this.panelSize.width,this.config.renderer);this.keyboard.mesh.position.set(0,-.3,.2),this.mesh.add(this.keyboard.mesh)}if(void 0===e)this.content={body:""},this.config.body.type="text";else{this.content=e;Object.values(t).filter((e=>"button"===e.type||"scroll"===e.overflow||"input-text"===e.type)).length>0&&(void 0===t||void 0===t.renderer?console.warn("CanvasUI: button, scroll or input-text in the config but no renderer"):(this.renderer=t.renderer,this.initControllers()))}this.selectedElements=[void 0,void 0],this.selectPressed=[!1,!1],this.scrollData=[void 0,void 0],this.intersects=[void 0,void 0],this.needsUpdate=!0,this.update()}getIntersectY(e){const t=this.config.height||512,s=this.intersects[e];return void 0===s||void 0===s.uv?0:(1-s.uv.y)*t}initControllers(){this.vec3=new THREE.Vector3,this.mat4=new THREE.Matrix4,this.raycaster=new THREE.Raycaster;const e=this;function t(t){const s=t.target===e.controller?0:1,i=e.selectedElements[s];if(void 0!==i)if("button"==i.type)e.select(s);else if("input-text"==i.type&&e.keyboard)if(e.keyboard.visible)e.keyboard.linkedUI=void 0,e.keyboard.linkedText=void 0,e.keyboard.linkedElement=void 0,e.keyboard.visible=!1;else{let t;e.keyboard.linkedUI=e,Object.entries(e.config).forEach((([e,s])=>{s==i&&(t=e)}));const s=(.5-(i.position.y+i.height+e.config.body.padding)/e.config.height)*e.panelSize.height,n=Math.max(e.panelSize.width,e.panelSize.height)/2;e.keyboard.position.set(0,-n/1.5-s,.1),e.keyboard.linkedText=e.content[t],e.keyboard.linkedName=t,e.keyboard.linkedElement=i,e.keyboard.visible=!0}}function s(t){const s=t.target===e.controller?0:1;if(e.selectPressed[s]=!0,void 0!==e.selectedElements[s]&&"scroll"==e.selectedElements[s].overflow){const t=e.selectedElements[s];e.scrollData[s]={scrollY:t.scrollY,rayY:e.getIntersectY(s)}}}function i(t){const s=t.target===e.controller?0:1;e.selectPressed[s]=!1,void 0!==e.selectedElements[s]&&"scroll"==e.selectedElements[s].overflow&&(e.scrollData[s]=void 0)}if(this.controller=this.renderer.xr.getController(0),this.controller.addEventListener("select",t),this.controller.addEventListener("selectstart",s),this.controller.addEventListener("selectend",i),this.controller1=this.renderer.xr.getController(1),this.controller1.addEventListener("select",t),this.controller1.addEventListener("selectstart",s),this.controller1.addEventListener("selectend",i),this.scene){const e=.015,t=new THREE.IcosahedronBufferGeometry(e),s=new THREE.MeshBasicMaterial({color:170}),i=new THREE.Mesh(t,s);i.visible=!1,this.scene.add(i);const n=new THREE.Mesh(t,s);n.visible=!1,this.scene.add(n),this.intersectMesh=[i,n]}}setClip(e){const t=this.context;if(t.restore(),t.save(),void 0!==e.clipPath){const s=new Path2D(e.clipPath);t.clip(s)}else{const s=void 0!==e.position?e.position:{x:0,y:0},i=e.borderRadius||0,n=e.width||this.config.width,l=e.height||this.config.height;if(t.beginPath(),0!==i){const e=Math.PI/2;t.moveTo(s.x+i,s.y),t.arc(s.x+i,s.y+i,i,e,2*e,!0),t.lineTo(s.x,s.y+l-i),t.arc(s.x+i,s.y+l-i,i,0,e,!0),t.lineTo(s.x+n-i,s.y+l),t.arc(s.x+n-i,s.y+l-i,i,3*e,4*e,!0),t.lineTo(s.x+n,s.y+i),t.arc(s.x+n-i,s.y+i,i,2*e,3*e,!0),t.closePath(),t.clip()}else t.rect(s.x,s.y,n,l),t.clip()}}setPosition(e,t,s){void 0!==this.mesh&&this.mesh.position.set(e,t,s)}setRotation(e,t,s){void 0!==this.mesh&&this.mesh.rotation.set(e,t,s)}updateElement(e,t){let s=this.content[e];void 0!==s?("object"==typeof s?s.content=t:s=t,this.content[e]=s,this.needsUpdate=!0):console.warn(`CanvasGUI.updateElement: No ${e} found`)}get panel(){return this.mesh}getElementAtLocation(e,t){const s=this,i=Object.entries(this.config).filter((([i,n])=>{if(!("object"!=typeof n||"panelSize"===i||"body"===i||n instanceof THREE.WebGLRenderer||n instanceof THREE.Scene)){const i=n.position,l=void 0!==n.width?n.width:s.config.width,r=void 0!==n.height?n.height:s.config.height;return e>=i.x&&e=i.y&&t0?(this.hover(t,s[0].uv),this.intersects[t]=s[0],this.scroll(t)):(this.hover(t),this.intersects[t]=void 0,this.scroll(t))}update(){if(void 0===this.mesh)return;if(this.controller&&this.handleController(this.controller,0),this.controller1&&this.handleController(this.controller1,1),this.keyboard&&this.keyboard.visible&&this.keyboard.update(),!this.needsUpdate)return;let e=this.context;e.clearRect(0,0,this.config.width,this.config.height);const t=this.config.body.backgroundColor?this.config.body.backgroundColor:"#000";!this.config.body.fontFamily||this.config.body.fontFamily;const s=this.config.body.fontColor?this.config.body.fontColor:"#fff";!this.config.body.fontSize||this.config.body.fontSize,this.setClip(this.config.body),e.fillStyle=t,e.fillRect(0,0,this.config.width,this.config.height);const i=this;Object.entries(this.content).forEach((([t,n])=>{const l=void 0!==i.config[t]?i.config[t]:i.config.body;if("none"!==(void 0!==l.display?l.display:"block")){const r=void 0!==l.position?l.position:{x:0,y:0},o=void 0!==l.width?l.width:i.config.width,a=void 0!==l.height?l.height:i.config.height;"button"!=l.type||n.toLowerCase().startsWith("")||(void 0===l.borderRadius&&(l.borderRadius=6),void 0===l.textAlign&&(l.textAlign="center")),i.setClip(l);const d=n.toLowerCase().startsWith(""),c=void 0!==i.selectedElements[0]&&this.selectedElements[0]===l||void 0!==i.selectedElements[1]&&this.selectedElements[1]===l;if(void 0!==l.backgroundColor&&(c&&"button"==l.type&&void 0!==l.hover?e.fillStyle=l.hover:e.fillStyle=l.backgroundColor,e.fillRect(r.x,r.y,o,a)),"text"==l.type||"button"==l.type||"input-text"==l.type){let h=!1;if(c?(d||"button"!=l.type?e.fillStyle=void 0!==l.hover?l.hover:void 0!==l.fontColor?l.fontColor:s:e.fillStyle=void 0!==l.fontColor?l.fontColor:s,h=void 0===l.hover):e.fillStyle=void 0!==l.fontColor?l.fontColor:s,d){const t=n.toUpperCase().substring(6,n.length-7);e.save(),e.translate(r.x,r.y);const s=new Path2D(t);e.fill(s),e.restore()}else i.wrapText(t,n);h&&(e.beginPath(),e.strokeStyle="#fff",e.lineWidth=2,e.rect(r.x,r.y,o,a),e.stroke())}else if("img"==l.type)if(void 0===l.img)this.loadImage(n).then((e=>{console.log(`w: ${e.width} | h: ${e.height}`),l.img=e,i.needsUpdate=!0,i.update()})).catch((e=>console.error(e)));else{const t=o/(l.img.width/l.img.height);e.drawImage(l.img,r.x,r.y,o,t)}}})),this.needsUpdate=!1,this.texture.needsUpdate=!0}loadImage(e){return new Promise(((t,s)=>{const i=new THREE.Image;i.addEventListener("load",(()=>t(i))),i.addEventListener("error",(e=>s(e))),i.src=e}))}createOffscreenCanvas(e,t){const s=document.createElement("canvas");return s.width=e,s.height=t,s}fillRoundedRect(e,t,s,i,n){const l=this.context;l.beginPath(),l.moveTo(e+n,t),l.lineTo(e+s-n,t),l.quadraticCurveTo(e+s,t,e+s,t+n),l.lineTo(e+s,t+i-n),l.quadraticCurveTo(e+s,t+i,e+s-n,t+i),l.lineTo(e+n,t+i),l.quadraticCurveTo(e,t+i,e,t+i-n),l.lineTo(e,t+n),l.quadraticCurveTo(e,t,e+n,t),l.closePath(),l.fill()}lookAt(e){void 0!==this.mesh&&(e instanceof Vector3?this.mesh.lookAt(e):console.error("CanvasUI lookAt called parameter not a THREE.Vector3"))}get visible(){return void 0!==this.mesh&&this.mesh.visible}set visible(e){this.mesh&&(this.mesh.visible=e)}get position(){if(void 0!==this.mesh)return this.mesh.position}set position(e){void 0!==this.mesh&&(e instanceof Vector3?this.mesh.position.copy(e):console.error("CanvasUI trying to set the mesh position using a parameter that is not a THREE.Vector3"))}get quaternion(){if(void 0!==this.mesh)return this.mesh.quaternion}set quaternion(e){void 0!==this.mesh&&(e instanceof QUaternion?this.mesh.quaternion.copy(e):console.error("CanvasUI trying to set the mesh quaternion using a parameter that is not a THREE.Quaternion"))}wrapText(e,t){const s=t.split(" ");let i="";const n=[],l=void 0!==this.config[e]?this.config[e]:this.config.body,r=void 0!==l.width?l.width:this.config.width,o=void 0!==l.height?l.height:this.config.height,a=void 0!==l.position?l.position:{x:0,y:0},d=void 0!==l.padding?l.padding:void 0!==this.config.body.padding?this.config.body.padding:10,c=void 0!==l.paddingTop?l.paddingTop:d,h=void 0!==l.paddingLeft?l.paddingLeft:d,p=void 0!==l.paddingBottom?l.paddingBottom:d,m=void 0!==l.paddingRight?l.paddingRight:d,u={x:a.x+h,y:a.y+c,width:r-h-m,height:o-c-p},g=void 0!==l.textAlign?l.textAlign:void 0!==this.config.body.textAlign?this.config.body.textAlign:"left",f=void 0!==l.fontSize?l.fontSize:void 0!==this.config.body.fontSize?this.config.body.fontSize:30,C=void 0!==l.fontFamily?l.fontFamily:void 0!==this.config.body.fontFamily?this.config.body.fontFamily:"Arial",b=f+(void 0!==l.leading?l.leading:void 0!==this.config.body.leading?this.config.body.leading:8),y=this.context;y.textAlign=g,y.font=`${f}px '${C}'`,s.forEach((function(e){let t=s.length>1?`${i}${e} `:e,l=y.measureText(t);if(l.width>u.width&&e.length>1)if(0==i.length&&l.width>u.width){for(;l.width>u.width;){let s=0;do{s++,t=e.substr(0,s),l=y.measureText(t)}while(l.widthu.height&&"scroll"===l.overflow){void 0===l.scrollY&&(l.scrollY=0);const e=void 0!==l.fontColor?l.fontColor:this.config.body.fontColor;y.fillStyle="#aaa",this.fillRoundedRect(a.x+r-12,a.y,12,o,6),y.fillStyle="#666";const t=u.height/v,s=t*o,i=-l.scrollY*t;this.fillRoundedRect(a.x+r-12,a.y+i,12,s,6),y.fillStyle=e,_=l.scrollY,l.minScrollY=u.height-v}let w,S=_+u.y+f/2;switch(g){case"center":w=u.x+u.width/2;break;case"right":w=u.x+u.width;break;default:w=u.x}n.forEach((e=>{S+b>0&&y.fillText(e,w,S),S+=b}))}}class Re{constructor(e,t,s="EN"){const i=this.getConfig(s);i.panelSize={width:e,height:.5*e},i.height=256,i.body={backgroundColor:"#555"},i.renderer=t;const n=this.getContent(s);this.keyboard=new Oe(n,i),this.keyboard.mesh.visible=!1,this.shift=!1}get mesh(){return this.keyboard.mesh}getConfig(e){const t={};let s=10;const i=39.2,n=49,l="#333",r="#000";let o=s,a=s;for(let e=0;e<10;e++){const d={type:"button",position:{x:a,y:o},width:i,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e)};t[`btn${e}`]=d,a+=49.2}o+=59,a=s;for(let e=0;e<10;e++){const d={type:"button",position:{x:a,y:o},width:i,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+10)};t[`btn${e+10}`]=d,a+=49.2}o+=59,a=s;for(let e=0;e<9;e++){const d=0==e||8==e?1.5*i+5:i,c={type:"button",position:{x:a,y:o},width:d,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+20)};t[`btn${e+20}`]=c,a+=d+s}o+=59,a=s;for(let e=0;e<5;e++){const d=0==e||4==e?88.4:2==e?186.8:i,c={type:"button",position:{x:a,y:o},width:d,height:n,padding:s,paddingTop:20,backgroundColor:r,borderRadius:6,hover:l,onSelect:this.onSelect.bind(this,e+30)};0==e&&(c.fontSize=20),t[`btn${e+30}`]=c,a+=d+s}return t}getContent(e,t=0){let s,i={};switch(this.language=e,this.keyboardIndex=t,t){case 0:s=["q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","@","⇧","z","x","c","v","b","n","m","⇦","","?123",","," ",".","↲"];for(let e=0;e","_","`","~",":",";","⇦","","abc",","," ",".","↲"];for(let e=0;e=0;e--){let s=t.scene.children[e];t.scene.remove(s)}else t.scene=new THREE.Scene;if(void 0!==t.scene_ghost)for(let e=t.scene_ghost.children.length-1;e>=0;e--){let s=t.scene_ghost.children[e];t.scene_ghost.remove(s)}else t.scene_ghost=new THREE.Scene;if(""!=s.htmlCls.setHtmlCls.getCookie("shininess")){let e=parseFloat(s.htmlCls.setHtmlCls.getCookie("shininess"));t.shininess!=e&&s.htmlCls.clickMenuCls.setLogCmd("set shininess "+e,!0),t.shininess=e}if(!s.bNode&&""!=s.htmlCls.setHtmlCls.getCookie("light1")){let e=parseFloat(s.htmlCls.setHtmlCls.getCookie("light1")),i=parseFloat(s.htmlCls.setHtmlCls.getCookie("light2")),n=parseFloat(s.htmlCls.setHtmlCls.getCookie("light3"));t.light1==e&&t.light2==i&&t.light3==n||s.htmlCls.clickMenuCls.setLogCmd("set light | light1 "+e+" | light2 "+i+" | light3 "+n,!0),t.light1=e,t.light2=i,t.light3=n}t.directionalLight=new THREE.DirectionalLight(16777215,t.light1),t.directionalLight2=new THREE.DirectionalLight(16777215,t.light2),t.directionalLight3=new THREE.DirectionalLight(16777215,t.light3),t.cam_z>0?(t.directionalLight.position.set(-1,1,1),t.directionalLight2.position.set(1,1,1),t.directionalLight3.position.set(1,1,-1),t.lightPos=new THREE.Vector3(-1,1,1),t.lightPos2=new THREE.Vector3(1,1,1),t.lightPos3=new THREE.Vector3(1,1,-1)):(t.directionalLight.position.set(-1,1,-1),t.directionalLight2.position.set(1,1,-1),t.directionalLight3.position.set(1,1,1),t.lightPos=new THREE.Vector3(-1,1,-1),t.lightPos2=new THREE.Vector3(1,1,-1),t.lightPos3=new THREE.Vector3(1,1,1));let i=new THREE.AmbientLight(4210752);if(t.scene.add(t.directionalLight),t.scene.add(i),void 0!==t.mdl)for(let e=t.mdl.children.length-1;e>=0;e--){let s=t.mdl.children[e];s.geometry&&s.geometry.dispose(),s.material&&s.material.dispose(),t.mdl.remove(s)}if(void 0!==t.mdlImpostor){for(let e=t.mdlImpostor.children.length-1;e>=0;e--){let s=t.mdlImpostor.children[e];s.geometry&&s.geometry.dispose(),s.material&&s.material.dispose(),t.mdlImpostor.remove(s)}t.mdlImpostor.children.length=0}s.bNode||t.renderer.renderLists.dispose(),t.mdl=new THREE.Object3D,t.mdlImpostor=new THREE.Object3D,t.scene.add(t.mdl),t.scene.add(t.mdlImpostor),t.mdl_ghost=new THREE.Object3D,t.scene_ghost.add(t.mdl_ghost),t.objects=[],t.objects_ghost=[],t.raycaster=new THREE.Raycaster,t.projector=new THREE.Projector,t.mouse=new THREE.Vector2;let n=s.parasCls.backgroundColors[t.opts.background.toLowerCase()];s.bNode||("transparent"===t.opts.background.toLowerCase()?t.renderer.setClearColor(n,0):t.renderer.setClearColor(n,1)),t.perspectiveCamera=new THREE.PerspectiveCamera(20,t.container.whratio,.1,1e4),t.perspectiveCamera.position.set(0,0,t.cam_z),t.perspectiveCamera.lookAt(new THREE.Vector3(0,0,0)),t.orthographicCamera=new THREE.OrthographicCamera,t.orthographicCamera.position.set(0,0,t.cam_z),t.orthographicCamera.lookAt(new THREE.Vector3(0,0,0)),t.cams={perspective:t.perspectiveCamera,orthographic:t.orthographicCamera}}setVrAr(){let e=this.icn3d;e.icn3dui;let t=this;e.bSetVrAr=!0,e.bVr?(e.canvasUI=this.createUI(),e.raycasterVR=new THREE.Raycaster,e.workingMatrix=new THREE.Matrix4,e.workingVector=new THREE.Vector3,e.origin=new THREE.Vector3,e.dolly=new THREE.Object3D,e.dolly.position.z=5,e.dolly.add(e.cam),e.scene.add(e.dolly),e.dollyId=e.dolly.id,e.dummyCam=new THREE.Object3D,e.cam.add(e.dummyCam),e.clock=new THREE.Clock,e.controllers=this.getControllers(),e.controllers.forEach((s=>{s.addEventListener("connected",(function(e){try{const s={},i="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",n="generic-trigger";be(e.data,i,n).then((({profile:i,assetPath:n})=>{s.name=i.profileId,s.targetRayMode=e.data.targetRayMode,Object.entries(i.layouts).forEach((([e,t])=>{const i={};Object.values(t.components).forEach((e=>{i[e.rootNodeName]=e.gamepadIndices})),s[e]=i})),t.updateControllers(s)}))}catch(e){}})),s.addEventListener("disconnected",(function(){this.remove(this.children[0]),e.controllers.forEach((e=>{}))}))}))):e.bAr&&(e.gestures=new ke(e.renderer),e.scene.add(e.gestures.controller1),e.scene.add(e.gestures.controller2),e.gestures.addEventListener("doubletap",(e=>{t.positionCenter()})),e.gestures.addEventListener("pinch",(s=>{if(void 0!==s.initialise)t.startPosition=e.mdl.position.clone(),t.startScale=e.mdl.scale.clone();else{let i=1;const n=t.startScale.clone().multiplyScalar(s.scale*i);e.mdl.scale.copy(n)}})))}positionCenter(){let e=this.icn3d;e.icn3dui;const t=e.gestures.controller1;e.mdl.position.set(-.06,0,-.6).applyMatrix4(t.matrixWorld),e.mdl.scale.copy(new THREE.Vector3(.005,.005,.005))}setVrArButtons(){let e=this.icn3d,t=e.icn3dui;e.bSetVrArButtons=!0,t.bNode||($("#"+t.pre+"VRButton").remove(),$("#"+t.pre+"viewer").get(0).appendChild(e.VRButtonCls.createButton(e.renderer)),$("#"+t.pre+"ARButton").remove(),$("#"+t.pre+"viewer").get(0).appendChild(e.ARButtonCls.createButton(e.renderer)))}updateControllers(e){this.icn3d.icn3dui,this.addEventForController(e,"right"),this.addEventForController(e,"left")}addEventForController(e,t){let s=this.icn3d;s.icn3dui;const i="right"==t?s.renderer.xr.getController(0):s.renderer.xr.getController(1),n="right"==t?e.right:e.left;if(i&&void 0!==n){let e=!1,t=!1;Object.keys(n).forEach((i=>{-1!=i.indexOf("trigger")&&(e=!0),-1!=i.indexOf("squeeze")&&(t=!0),-1==i.indexOf("thumbstick")&&-1==i.indexOf("touchpad")||(s.xAxisIndex=n[i].xAxis,s.yAxisIndex=n[i].yAxis)})),e&&(i.addEventListener("selectstart",(function(){this.userData.selectPressed=!0})),i.addEventListener("selectend",(function(){this.userData.selectPressed=!1,this.userData.selected=void 0}))),t&&(i.addEventListener("squeezestart",(function(){this.userData.squeezePressed=!0,s.cam.add(s.canvasUI.mesh)})),i.addEventListener("squeezeend",(function(){this.userData.squeezePressed=!1,s.cam.remove(s.canvasUI.mesh)})))}}createUI(){let e=this.icn3d,t=e.icn3dui,s=94,i=50,n=94,l=34,r=12,o="#1c94c4",a="#ccc",d="#fbcb09",c=20;const h={panelSize:{width:2,height:1.6},height:400,select:{type:"button",paddingTop:c,position:{top:6,left:6},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},residue:{type:"button",paddingTop:c,position:{top:62,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=2,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},secondarySelect:{type:"button",paddingTop:12,position:{top:118,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=3,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},chainSelect:{type:"button",paddingTop:c,position:{top:174,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=5,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},atom:{type:"button",paddingTop:c,position:{top:230,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.pk=1,e.pAtomNum||(e.pAtomNum=0),e.cam.remove(e.canvasUI.mesh)}},reset:{type:"button",paddingTop:c,position:{top:286,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.viewInterPairsCls.resetInteractionPairs(),e.selectionCls.resetAll(),e.cam.remove(e.canvasUI.mesh)}},togglehl:{type:"button",paddingTop:12,position:{top:342,left:6},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.hlUpdateCls.toggleHighlight(),e.cam.remove(e.canvasUI.mesh)}},style:{type:"button",paddingTop:c,position:{top:6,left:106},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},ribbon:{type:"button",paddingTop:c,position:{top:62,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","ribbon"),e.setOptionCls.setStyle("nucleotides","nucleotide cartoon"),e.cam.remove(e.canvasUI.mesh)}},schematic:{type:"button",paddingTop:c,position:{top:118,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","schematic"),e.setOptionCls.setStyle("nucleotides","schematic"),e.cam.remove(e.canvasUI.mesh)}},stick:{type:"button",paddingTop:c,position:{top:174,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","stick"),e.setOptionCls.setStyle("nucleotides","stick"),e.cam.remove(e.canvasUI.mesh)}},sphere:{type:"button",paddingTop:c,position:{top:230,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setStyle("proteins","sphere"),e.setOptionCls.setStyle("nucleotides","sphere"),e.cam.remove(e.canvasUI.mesh)}},surface:{type:"button",paddingTop:c,position:{top:286,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.opts.surface="molecular surface",e.applyMapCls.applySurfaceOptions(),e.cam.remove(e.canvasUI.mesh)}},surfaceTrn:{type:"button",paddingTop:12,position:{top:342,left:106},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.opts.surface="molecular surface",e.opts.opacity="0.2",e.applyMapCls.applySurfaceOptions(),e.cam.remove(e.canvasUI.mesh)}},color:{type:"button",paddingTop:c,position:{top:6,left:206},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},rainbow:{type:"button",paddingTop:c,position:{top:62,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","rainbow for chains"),e.cam.remove(e.canvasUI.mesh)}},atomColor:{type:"button",paddingTop:c,position:{top:118,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","atom"),e.cam.remove(e.canvasUI.mesh)}},chainColor:{type:"button",paddingTop:c,position:{top:174,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","chain"),e.cam.remove(e.canvasUI.mesh)}},secondaryColor:{type:"button",paddingTop:12,position:{top:230,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","secondary structure green"),e.cam.remove(e.canvasUI.mesh)}},charge:{type:"button",paddingTop:c,position:{top:342,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","charge"),e.cam.remove(e.canvasUI.mesh)}},AlphaFold:{type:"button",paddingTop:c,position:{top:286,left:206},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){e.setOptionCls.setOption("color","confidence"),e.cam.remove(e.canvasUI.mesh)}},unicolor:{type:"button",paddingTop:c,position:{top:6,left:306},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},red:{type:"button",position:{top:i,left:300},width:n,height:l,fontColor:"red",hover:d,onSelect:function(){e.setOptionCls.setOption("color","red"),e.cam.remove(e.canvasUI.mesh)}},green:{type:"button",position:{top:78,left:300},width:n,height:l,fontColor:"green",hover:d,onSelect:function(){e.setOptionCls.setOption("color","green"),e.cam.remove(e.canvasUI.mesh)}},blue:{type:"button",position:{top:106,left:300},width:n,height:l,fontColor:"blue",hover:d,onSelect:function(){e.setOptionCls.setOption("color","blue"),e.cam.remove(e.canvasUI.mesh)}},blueviolet:{type:"button",position:{top:134,left:300},width:n,height:l,fontColor:"#8A2BE2",hover:d,onSelect:function(){e.setOptionCls.setOption("color","8A2BE2"),e.cam.remove(e.canvasUI.mesh)}},magenta:{type:"button",position:{top:162,left:300},width:n,height:l,fontColor:"magenta",hover:d,onSelect:function(){e.setOptionCls.setOption("color","magenta"),e.cam.remove(e.canvasUI.mesh)}},yellow:{type:"button",position:{top:190,left:300},width:n,height:l,fontColor:"yellow",hover:d,onSelect:function(){e.setOptionCls.setOption("color","yellow"),e.cam.remove(e.canvasUI.mesh)}},orange:{type:"button",position:{top:218,left:300},width:n,height:l,fontColor:"orange",hover:d,onSelect:function(){e.setOptionCls.setOption("color","FFA500"),e.cam.remove(e.canvasUI.mesh)}},cyan:{type:"button",position:{top:246,left:300},width:n,height:l,fontColor:"cyan",hover:d,onSelect:function(){e.setOptionCls.setOption("color","cyan"),e.cam.remove(e.canvasUI.mesh)}},gray:{type:"button",position:{top:274,left:300},width:n,height:l,fontColor:"gray",hover:d,onSelect:function(){e.setOptionCls.setOption("color","888888"),e.cam.remove(e.canvasUI.mesh)}},white:{type:"button",position:{top:302,left:300},width:n,height:l,fontColor:"white",hover:d,onSelect:function(){e.setOptionCls.setOption("color","white"),e.cam.remove(e.canvasUI.mesh)}},analysis:{type:"button",paddingTop:c,position:{top:6,left:406},width:s,height:i,fontColor:"#000",fontSize:14,backgroundColor:a},distance:{type:"button",paddingTop:c,position:{top:62,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){try{e.bMeasureDistance=!0;let s=e.pickingCls.getPickedAtomList(e.pk,e.pAtom),i=e.pickingCls.getPickedAtomList(e.pk,e.pAtom2),n=e.applyCenterCls.centerAtoms(t.hashUtilsCls.hash2Atoms(s,e.atoms)).center,l=e.applyCenterCls.centerAtoms(t.hashUtilsCls.hash2Atoms(i,e.atoms)).center,r=0,o=0,a="#FFFF00",d=(n.x+l.x)/2,c=(n.y+l.y)/2,h=(n.z+l.z)/2,p=!0;e.analysisCls.addLine(n.x,n.y,n.z,l.x,l.y,l.z,a,p,"distance");let m=(parseInt(10*n.distanceTo(l))/10).toString()+" A";e.analysisCls.addLabel(m,d,c,h,r,a,o,"distance"),e.drawCls.draw(),e.cam.remove(e.canvasUI.mesh)}catch(e){}}},interaction:{type:"button",paddingTop:c,position:{top:118,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){try{e.viewInterPairsCls.viewInteractionPairs(["selected"],["non-selected"],!1,"3d",1,1,1,1,1,1),e.cam.remove(e.canvasUI.mesh)}catch(e){}}},delphi:{type:"button",paddingTop:c,position:{top:174,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:async function(){e.phisurftype=22,e.phisurfop=1,e.phisurfwf="no",await e.delphiCls.CalcPhi(65,.15,2,!0),e.cam.remove(e.canvasUI.mesh)}},removeLabel:{type:"button",paddingTop:c,position:{top:230,left:406},width:s,height:i,fontColor:o,fontSize:r,backgroundColor:a,hover:d,onSelect:function(){for(let t in e.labels)e.labels[t]=[];e.drawCls.draw(),e.cam.remove(e.canvasUI.mesh)}},renderer:e.renderer},p=new Oe({select:"Select",residue:"Residue",secondarySelect:"Secondary Structure",chainSelect:"Chain",atom:"Atom",reset:"Reset",togglehl:"Toggle Highlight",style:"Style",ribbon:"Ribbon",schematic:"Schematic",stick:"Stick",sphere:"Sphere",surface:"Surface",surfaceTrn:"Transparent Surface",color:"Color",rainbow:"Rainbow",atomColor:"Atom",chainColor:"Chain",secondaryColor:"Secondary Structure",AlphaFold:"AlphaFold",charge:"Charge",unicolor:"UniColor",red:"M 100 15 L 15 15 L 15 100 L 100 100 Z",green:"M 100 15 L 15 15 L 15 100 L 100 100 Z",blue:"M 100 15 L 15 15 L 15 100 L 100 100 Z",blueviolet:"M 100 15 L 15 15 L 15 100 L 100 100 Z",magenta:"M 100 15 L 15 15 L 15 100 L 100 100 Z",yellow:"M 100 15 L 15 15 L 15 100 L 100 100 Z",orange:"M 100 15 L 15 15 L 15 100 L 100 100 Z",cyan:"M 100 15 L 15 15 L 15 100 L 100 100 Z",gray:"M 100 15 L 15 15 L 15 100 L 100 100 Z",white:"M 100 15 L 15 15 L 15 100 L 100 100 Z",analysis:"Analysis",distance:"Distance",interaction:"Interaction",delphi:"DelPhi Potential",removeLabel:"Remove Label"},h);return p.mesh.position.set(0,0,-3),p}createUILog(){let e=this.icn3d;e.icn3dui;const t={panelSize:{width:2,height:2},height:512,info:{type:"text",overflow:"scroll",position:{top:6,left:6},width:506,height:506,backgroundColor:"#aaa",fontColor:"#000"},renderer:e.renderer},s=new Oe({info:"Debug info"},t);return s.mesh.position.set(0,-1,-2),s}getControllers(){let e=this.icn3d;e.icn3dui;const t=new xe,s=(new THREE.BufferGeometry).setFromPoints([new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,-1)]),i=new THREE.Line(s);i.name="line",i.scale.z=50;const n=[];for(let s=0;s<=1;s++){const l=e.renderer.xr.getController(s);if(!l)continue;e.dolly.add(l),l.add(i.clone()),l.userData.selectPressed=!1,e.cam.add(l),n.push(l);const r=e.renderer.xr.getControllerGrip(s);r.add(t.createControllerModel(r)),e.scene.add(r)}return n}}class Ee{constructor(e){this.icn3d=e}setCamera(){let e=this.icn3d,t=e.icn3dui;if(e.bControlGl&&!t.bNode){window.cam=e.cams[e.opts.camera.toLowerCase()];let s=e.maxD;if(window.cam===e.perspectiveCamera){let i=void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>e.maxatomcnt;i?window.camMaxDFactor=1:void 0!==window.camMaxDFactorFog?window.camMaxDFactor=window.camMaxDFactorFog:window.camMaxDFactor=3,window.cam_z>0?window.cam.position.z=s*window.camMaxDFactor:window.cam.position.z=-s*window.camMaxDFactor,"yes"===e.opts.slab?i?window.cam.near=.1:void 0!==window.camMaxDFactorFog?window.cam.near=s*window.camMaxDFactorFog-10:window.cam.near=s*window.camMaxDFactor:window.cam.near=.1,window.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.TrackballControls(window.cam,void 0,e):t.bNode?e.controls=new THREE.TrackballControls(e.cam,document,e):e.controls=new THREE.TrackballControls(e.cam,document.getElementById(e.id),e)}else window.cam===e.orthographicCamera&&(void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>10*e.maxatomcnt?window.cam.right=e.maxD/2*1.5:window.cam.right=e.maxD/2*2.5,window.cam.left=-window.cam.right,window.cam.top=window.cam.right/e.container.whratio,window.cam.bottom=-window.cam.right/e.container.whratio,"yes"===e.opts.slab?window.cam.near=2*e.maxD:window.cam.near=0,window.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.OrthographicTrackballControls(window.cam,void 0,e):t.bNode?e.controls=new THREE.OrthographicTrackballControls(e.cam,document,e):e.controls=new THREE.OrthographicTrackballControls(e.cam,document.getElementById(e.id),e));window.cam.updateProjectionMatrix()}e.cam=e.cams[e.opts.camera.toLowerCase()];let s=e.maxD;if(e.cam===e.perspectiveCamera){let i=void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>e.maxatomcnt;i?e.camMaxDFactor=1:void 0!==e.camMaxDFactorFog?e.camMaxDFactor=e.camMaxDFactorFog:e.camMaxDFactor=3,e.cam_z>0?e.cam.position.z=s*e.camMaxDFactor:e.cam.position.z=-s*e.camMaxDFactor,"yes"===e.opts.slab?i?e.cam.near=.1:void 0!==e.camMaxDFactorFog?e.cam.near=s*e.camMaxDFactorFog-10:e.cam.near=s*e.camMaxDFactor:e.cam.near=.1,e.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.TrackballControls(e.cam,void 0,e):t.bNode?e.controls=new THREE.TrackballControls(e.cam,document,e):e.controls=new THREE.TrackballControls(e.cam,document.getElementById(e.id),e)}else e.cam===e.orthographicCamera&&(void 0!==e.biomtMatrices&&e.biomtMatrices.length*e.cnt>10*e.maxatomcnt?e.cam.right=e.maxD/2*1.5:e.cam.right=e.maxD/2*2.5,e.cam.left=-e.cam.right,e.cam.top=e.cam.right/e.container.whratio,e.cam.bottom=-e.cam.right/e.container.whratio,"yes"===e.opts.slab?e.cam.near=2*e.maxD:e.cam.near=0,e.cam.far=1e4,e.bControlGl&&!t.bNode?window.controls=new THREE.OrthographicTrackballControls(e.cam,void 0,e):t.bNode?e.controls=new THREE.OrthographicTrackballControls(e.cam,document,e):e.controls=new THREE.OrthographicTrackballControls(e.cam,document.getElementById(e.id),e));e.cam.updateProjectionMatrix()}}class Te{constructor(e){this.icn3d=e}setFog(e){let t=this.icn3d,s=t.icn3dui.parasCls.backgroundColors[t.opts.background.toLowerCase()];if(e){let e=t.applyCenterCls.centerAtoms(t.hAtoms);t.maxD=e.maxD,t.maxD<25&&(t.maxD=25)}let i=void 0!==t.biomtMatrices&&t.biomtMatrices.length*t.cnt>t.maxatomcnt;if("yes"===t.opts.fog)if("perspective"===t.opts.camera)if(i)t.scene.fog=void 0,t.bSetFog=!1;else{let e=t._zoomFactor>1?1*t._zoomFactor:t._zoomFactor;t.scene.fog=new THREE.Fog(s,2.5*t.maxD*e,4*t.maxD*e),t.bSetFog=!0,t.camMaxDFactorFog=3}else"orthographic"===t.opts.camera&&(t.scene.fog=void 0,t.bSetFog=!1);else t.scene.fog=void 0,t.bSetFog=!1}}class Pe{constructor(e){this.icn3d=e}createBox(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(o.bNode)return;void 0===t&&(t=.8),void 0===s&&(s=!1),void 0===i&&(i=.8),l?void 0===n&&(n=r.hColor):void 0===n&&(n=e.color);let a=s?t:(o.parasCls.vdwRadii[e.elem.toUpperCase()]||t)*(i||1);this.createBox_base(e.coord,a,n,l)}createBox_base(e,t,s,i,n,l,r){let o,a=this.icn3d;a.icn3dui.bNode||(void 0===r&&(r=l?.5:1),new THREE.BoxGeometry(1,1,1),o=new THREE.Mesh(a.boxGeometry,new THREE.MeshPhongMaterial({transparent:!0,opacity:r,specular:a.frac,shininess:a.shininess,emissive:a.emissive,color:s})),o.scale.x=o.scale.y=o.scale.z=t,o.position.copy(e),a.mdl.add(o),i?a.prevHighlightObjects.push(o):n?a.prevOtherMesh.push(o):a.objects.push(o))}createBoxRepresentation_P_CA(e,t,s){let i=this.icn3d;if(i.icn3dui.bNode)return;let n=this;i.reprSubCls.createRepresentationSub(e,(function(e){"CA"!==e.name&&"O3'"!==e.name&&"O3*"!==e.name||n.createBox(e,void 0,void 0,t,void 0,s)}))}}class De{constructor(e){this.icn3d=e}createBrick(e,t,s,i){let n=this.icn3d;if(n.icn3dui.bNode)return;let l=new THREE.CylinderGeometry(1,1,1,4,1),r=new THREE.Mesh(l,new THREE.MeshPhongMaterial({specular:n.frac,shininess:n.shininess,emissive:n.emissive,color:i}));r.position.copy(e).add(t).multiplyScalar(.5),r.matrixAutoUpdate=!1,r.lookAt(t.clone().sub(e)),r.updateMatrix(),r.matrix.multiply((new THREE.Matrix4).makeScale(s,s,e.distanceTo(t))).multiply((new THREE.Matrix4).makeRotationX(.5*Math.PI)),n.mdl.add(r)}}class Me{constructor(e){this.icn3d=e}createCurveSubArrow(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u){if(this.icn3d.icn3dui.bNode)return;let g=[],f=[];g.push(e),f.push(o),this.prepareStrand(g,f,t,s,i,void 0,n,l,r,a,d,!1,c,h,p,m,u),g=[],f=[]}createStripArrow(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g){if(this.icn3d.icn3dui.bNode)return;let f=[],C=[];f.push(e),f.push(t),C.push(o),C.push(a),this.prepareStrand(f,C,void 0,s,i,n,l,void 0,r,d,c,!0,h,p,m,u,g),f=[],C=[]}prepareStrand(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g,f){let C=this.icn3d,b=C.icn3dui;if(1===d.length)return;let y=i,v=!u,_=[];_.push(i[i.length-2]),_.push(i[i.length-1]),n=n||C.axisDIV;let w,S,A,x,k=2/(a-1),O={};for(let e=0,s=t.length;e1)if(void 0!==d){let i,n,l=[];for(let r=0,o=p.length;r0&&i.tubeCls.createTube(a,"CA",i.coilWidth,s),Object.keys(d).length>0&&i.strandCls.createStrand(d,void 0,void 0,!0,0,i.helixSheetWidth,!1,2*i.ribbonthickness,s)):(Object.keys(a).length>0&&i.tubeCls.createTube(a,"CA",i.coilWidth),Object.keys(d).length>0&&i.strandCls.createStrand(d,void 0,void 0,!0,0,i.helixSheetWidth,!1,2*i.ribbonthickness))}createCylinderCurve(e,t,s,i,n){let l=this.icn3d;if(l.icn3dui.bNode)return;let r,o,a,d,c,h,p=null;for(a in e)if(d=e[a],!d.het&&(c=d.structure+"_"+d.chain,h=d.structure+"_"+r,-1!=t.indexOf(d.name))){if(null!==p&&r===d.chain&&l.ParserUtilsCls.getResiNCBI(h,o)+1===l.ParserUtilsCls.getResiNCBI(c,d.resi)&&Math.abs(p.coord.x-d.coord.x)<8&&Math.abs(p.coord.y-d.coord.y)<8&&Math.abs(p.coord.z-d.coord.z)<8){let e=p.coord.clone().add(d.coord).multiplyScalar(.5);if(n)1===n&&(this.createCylinder(p.coord,e,s,p.color,n),this.createCylinder(e,d.coord,s,d.color,n),l.sphereCls.createSphere(d,s,!0,1,n));else if(i){let t=l.lineCls.createSingleLine(p.coord,e,p.color,!1);l.mdl.add(t),l.objects.push(t),t=l.lineCls.createSingleLine(e,d.coord,d.color,!1),l.mdl.add(t),l.objects.push(t)}else this.createCylinder(p.coord,e,s,p.color),this.createCylinder(e,d.coord,s,d.color),l.sphereCls.createSphere(d,s,!0,1,n)}p=d,r=d.chain,o=d.resi,l.sphereCls.createSphere(d,s,!0,1,n),2===n&&l.boxCls.createBox(d,void 0,void 0,void 0,void 0,n)}if(null!==p&&r===d.chain&&l.ParserUtilsCls.getResiNCBI(h,o)+1===l.ParserUtilsCls.getResiNCBI(c,d.resi)&&Math.abs(p.coord.x-d.coord.x)<8&&Math.abs(p.coord.y-d.coord.y)<8&&Math.abs(p.coord.z-d.coord.z)<8){let e=p.coord.add(d.coord).multiplyScalar(.5);if(n)1===n&&(this.createCylinder(p.coord,e,s,p.color,n),this.createCylinder(e,d.coord,s,d.color,n),l.sphereCls.createSphere(d,s,!0,1,n));else if(i){let t=l.lineCls.createSingleLine(p.coord,e,p.color,!1);l.mdl.add(t),l.objects.push(t),t=l.lineCls.createSingleLine(e,d.coord,d.color,!1),l.mdl.add(t),l.objects.push(t)}else this.createCylinder(p.coord,e,s,p.color),this.createCylinder(e,d.coord,s,d.color)}}}class Le{constructor(e){this.icn3d=e}createLineRepresentation(e,t){let s=this.icn3d;if(s.icn3dui.bNode)return;let i=new THREE.BufferGeometry,n=[],l=[],r=0,o=0;s.reprSubCls.createRepresentationSub(e,void 0,(function(e,t){if(e.color===t.color)n[r++]=e.coord.x,n[r++]=e.coord.y,n[r++]=e.coord.z,n[r++]=t.coord.x,n[r++]=t.coord.y,n[r++]=t.coord.z,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b;else{let s=e.coord.clone().add(t.coord).multiplyScalar(.5);n[r++]=e.coord.x,n[r++]=e.coord.y,n[r++]=e.coord.z,n[r++]=s.x,n[r++]=s.y,n[r++]=s.z,n[r++]=t.coord.x,n[r++]=t.coord.y,n[r++]=t.coord.z,n[r++]=s.x,n[r++]=s.y,n[r++]=s.z,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=e.color.r,l[o++]=e.color.g,l[o++]=e.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b,l[o++]=t.color.r,l[o++]=t.color.g,l[o++]=t.color.b}}));if(i.setAttribute("position",new THREE.BufferAttribute(new Float32Array(n),3)),i.setAttribute("color",new THREE.BufferAttribute(new Float32Array(l),3)),2!==t){let e;1===t||(e=new THREE.LineSegments(i,new THREE.LineBasicMaterial({linewidth:s.linewidth,vertexColors:!0})),s.mdl.add(e)),1===t?s.prevHighlightObjects.push(e):s.objects.push(e)}else 2===t&&s.boxCls.createBoxRepresentation_P_CA(e,.8,t)}createConnCalphSidechain(e,t){let s=this.icn3d;if(s.icn3dui.bNode)return;let i={};for(let s in e){let n=e[s];if(!n.het&&n.style2===t){i[n.structure+"_"+n.chain+"_"+n.resi]=1}}let n=[],l=[];for(let e in i){let t=s.firstAtomObjCls.getFirstAtomObjByName(s.residues[e],"CA");if(void 0!==t)for(let e=0,i=t.bonds.length;e=t.bonds.length&&e.bonds.length>1)s=e.serial,l=e.bonds[0],d=e.bonds[1];else{if(!(t.bonds.length>=e.bonds.length&&t.bonds.length>1))return void console.log("Double bond was not drawn due to the undefined cross plane");s=t.serial,l=t.bonds[0],d=t.bonds[1]}let i=r.atoms[s].coord.clone();i.sub(r.atoms[l].coord);let n=r.atoms[s].coord.clone();n.sub(r.atoms[d].coord),i.cross(n),0==parseInt(1e4*i.length())&&(i=new THREE.Vector3(.2,.3,.5)),c=t.coord.clone(),c.sub(e.coord),c.cross(i).normalize().multiplyScalar(.2*o),0==parseInt(1e4*c.length())&&(i=new THREE.Vector3(.5,.3,.2),c.cross(i).normalize().multiplyScalar(.2*o))}e.color===t.color?r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),t.coord.clone().add(c),a,e.color,n),r.cylinderCls.createCylinder(e.coord.clone().sub(c),t.coord.clone().sub(c),a,e.color,n)):r.bImpo?r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),t.coord.clone().add(c),a,e.color,n,t.color),r.cylinderCls.createCylinder(e.coord.clone().sub(c),t.coord.clone().sub(c),a,e.color,n,t.color)):r.dAtoms.hasOwnProperty(e.serial)&&r.dAtoms.hasOwnProperty(t.serial)&&(r.cylinderCls.createCylinder(e.coord.clone().add(c),i.clone().add(c),a,e.color,n),r.cylinderCls.createCylinder(t.coord.clone().add(c),i.clone().add(c),a,t.color,n),r.cylinderCls.createCylinder(e.coord.clone().sub(c),i.clone().sub(c),a,e.color,n),r.cylinderCls.createCylinder(t.coord.clone().sub(c),i.clone().sub(c),a,t.color,n))}else if(r.aromaticbonds.hasOwnProperty(l)){let s,l,d;if(e.bonds.length>t.bonds.length&&e.bonds.length>1)s=e.serial,l=e.bonds[0],d=e.bonds[1];else{if(!(t.bonds.length>1))return;s=t.serial,l=t.bonds[0],d=t.bonds[1]}let c=r.atoms[s].coord.clone();c.sub(r.atoms[l].coord);let h=r.atoms[s].coord.clone();h.sub(r.atoms[d].coord),c.cross(h);let p=t.coord.clone();p.sub(e.coord),p.cross(c).normalize().multiplyScalar(.2*o);let m=0;for(let s=0,i=e.bondOrder.length;so+1?(s=k.clone(),i=d.atoms[j[j.length-1-o-1]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random()))):U[m]&&"CA"===p.name&&(j.length>o+1?(s=k.clone(),i=d.atoms[j[j.length-1-o-1]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random())),s.normalize(),s.multiplyScalar(C),null!==I&&s.dot(I)<0&&s.negate(),I=s;for(let e=0,s=2/(t-1);e6||c&&Math.abs(S.y-c.y)>6||c&&Math.abs(S.z-c.z)>6;if((g!==p.chain||p.ssbegin||p.ssend||z||$==W&&"coil"!=p.ss)&&u[0].length>0){let c="CA",g=[],f=[];if(isNaN(d.atoms[D].resi))g=[];else{let e=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)-1).toString(),t=d.firstAtomObjCls.getAtomCoordFromResi(e,c);g=void 0!==t?[t]:[]}if(!isNaN(d.atoms[D].resi)){let e=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)+1).toString(),t=d.firstAtomObjCls.getAtomCoordFromResi(e,c);void 0!==t&&f.push(t);let s=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)+2).toString(),i=d.firstAtomObjCls.getAtomCoordFromResi(s,c);void 0!==i&&f.push(i)}if(!z){1===a||2===a?w.push(d.hColor):w.push(R),C=p.ssend&&"sheet"===p.ss?0:"coil"===E&&p.ssbegin||T&&p.ssbegin||"coil"===p.ss?n:l;let s,i,o=4;"O"===p.name?(s=A.clone(),s.sub(S)):U[m]&&"CA"===p.name&&(j.length>o?(s=S.clone(),i=d.atoms[j[j.length-1-o]].coord.clone(),i.sub(s)):s=new THREE.Vector3(Math.random(),Math.random(),Math.random())),s.normalize(),s.multiplyScalar(C),null!==I&&s.dot(I)<0&&s.negate(),I=s;for(let e=0,s=2/(t-1);e0){let e="CA",n=[],l=[];if(isNaN(d.atoms[D].resi))n=[];else{let t=d.atoms[D].structure+"_"+d.atoms[D].chain+"_"+(parseInt(d.atoms[D].resi)-1).toString();d.firstAtomObjCls.getAtomCoordFromResi(t,e)}for(let e=0;!i&&e0&&(o!==c.chain||Math.abs(c.coord.x-h.coord.x)>6||Math.abs(c.coord.y-h.coord.y)>6||Math.abs(c.coord.z-h.coord.z)>6||r.ParserUtilsCls.getResiNCBI(c.structure+"_"+o,a)+13||Math.abs(c.coord.y-h.coord.y)>3||Math.abs(c.coord.z-h.coord.z)>3))){if(2!==i){if(!isNaN(d.resi)&&!isNaN(h.resi)){let e=d.structure+"_"+d.chain+"_"+(parseInt(d.resi)-1).toString(),i=r.firstAtomObjCls.getAtomCoordFromResi(e,t);g=void 0!==i?[i]:[];let l=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+1).toString(),o=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+2).toString(),a=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+3).toString();if(r.residues.hasOwnProperty(l)){let e=r.firstAtomObjCls.getAtomFromResi(l,t);void 0!==e&&e.ssbegin&&(l=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+2).toString(),o=h.structure+"_"+h.chain+"_"+(parseInt(h.resi)+3).toString(),p.push(e.coord),n?u.push(this.getCustomtubesize(l)):u.push(this.getRadius(s,e)),m.push(e.color))}if(1==p.length&&r.residues.hasOwnProperty(l)){let e=r.firstAtomObjCls.getAtomFromResi(l,t);if(e){p.push(e.coord),m.push(e.color);let t=this.getRadius(s,c);u.push(t),l=o,o=a}}let C=r.firstAtomObjCls.getAtomCoordFromResi(l,t);void 0!==C&&f.push(C);let b=r.firstAtomObjCls.getAtomCoordFromResi(o,t);void 0!==b&&f.push(b)}b.push({pnts:p,colors:m,radii:u,prevone:g,nexttwo:f})}p=[],m=[],u=[],g=[],f=[],d=c,C=0}if(0==p.length&&!isNaN(c.resi)){let e=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)-1).toString();r.residues.hasOwnProperty(e)&&(h=r.firstAtomObjCls.getAtomFromResi(e,t),void 0!==h&&h.ssend&&(p.push(h.coord),n?u.push(this.getCustomtubesize(e)):u.push(this.getRadius(s,h)),m.push(h.color)))}let e;p.push(c.coord),e=n?this.getCustomtubesize(c.structure+"_"+c.chain+"_"+c.resi):this.getRadius(s,c),l||"coil"==c.ss||c.ssbegin||c.ssend||(e=0),u.push(e),m.push(c.color),1===C&&(m[m.length-2]=c.color),o=c.chain,a=c.resi;let y=1.2;2!==i||c.ssbegin||r.boxCls.createBox(c,void 0,void 0,y,void 0,i),++C,h=c}if(2!==i){if(g=[],void 0!==d&&!isNaN(d.resi)){let e=d.structure+"_"+d.chain+"_"+(parseInt(d.resi)-1).toString(),s=r.firstAtomObjCls.getAtomCoordFromResi(e,t);g=void 0!==s?[s]:[]}if(f=[],void 0!==c&&!isNaN(c.resi)){let e=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+1).toString(),i=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+2).toString(),n=c.structure+"_"+c.chain+"_"+(parseInt(c.resi)+3).toString();if(1==p.length&&r.residues.hasOwnProperty(e)){let l=r.firstAtomObjCls.getAtomFromResi(e,t);if(l){p.push(l.coord),m.push(l.color);let t=this.getRadius(s,c);u.push(t),e=i,i=n}}let l=r.firstAtomObjCls.getAtomCoordFromResi(e,t);void 0!==l&&f.push(l);let o=r.firstAtomObjCls.getAtomCoordFromResi(i,t);void 0!==o&&f.push(o)}b.push({pnts:p,colors:m,radii:u,prevone:g,nexttwo:f})}for(let e=0,t=b.length;e0&&(c=n);else if(g%1==0)n=s[g],n>0&&(c=n);else{let e=Math.floor(g),t=g-e;n=s[e]*(1-t)+s[e+1]*t,r||n<1*c&&(n=0)}e1?a.parasCls.thr(t[t.length-2]):a.parasCls.thr(t[e]),C[v++]=d.r,C[v++]=d.g,C[v++]=d.b}}let k,O=0;for(let e=0,t=S.length-1;er&&(l=r,e=1);for(let t=0;t0&&t.b<=100?.01*t.b:t.b>100?1:s.coilWidth),i}}class ze{constructor(e){this.icn3d=e}drawCartoonNucleicAcid(e,t,s,i){this.drawStrandNucleicAcid(e,2,t,!0,void 0,s,i)}drawStrandNucleicAcid(e,t,s,i,n,l,r){let o,a,d,c=this.icn3d;if(c.icn3dui.bNode)return;2===r&&(t=void 0,l=void 0),n=n||c.nucleicAcidWidth,s=s||c.axisDIV,t=t||c.nucleicAcidStrandDIV;let h=[];for(d=0;dy?y=b:b=y);let v=.8*C/y;if(g.width=b,g.height=y,f.clearRect(0,0,b,y),h)if(f.fillStyle="rgba("+n.r+","+n.g+","+n.b+","+n.a+")",f.strokeStyle="rgba("+l.r+","+l.g+","+l.b+","+l.a+")",f.lineWidth=r,p){let e=.4*b;this.circle(f,0,0,b,y,e)}else{let e=0;this.roundRect(f,0,0,b,y,e)}f.font="Bold "+a+"px "+o,f.textAlign="center",f.textBaseline="middle",f.fillStyle="rgba("+u.r+", "+u.g+", "+u.b+", 1.0)",f.strokeStyle="rgba("+u.r+", "+u.g+", "+u.b+", 1.0)",f.fillText(e,.5*b,.5*y);let _=new THREE.Texture(g);_.needsUpdate=!0;let w=new THREE.SpriteMaterial({map:_,depthTest:!1,depthWrite:!1});w.map.minFilter=THREE.LinearFilter;let S=new THREE.Sprite(w);return p?S.scale.set(.3*d,.3*d,1):S.scale.set(v*d,d,1),S.renderOrder=1,S}roundRect(e,t,s,i,n,l){e.beginPath(),e.moveTo(t+l,s),e.lineTo(t+i-l,s),e.quadraticCurveTo(t+i,s,t+i,s+l),e.lineTo(t+i,s+n-l),e.quadraticCurveTo(t+i,s+n,t+i-l,s+n),e.lineTo(t+l,s+n),e.quadraticCurveTo(t,s+n,t,s+n-l),e.lineTo(t,s+l),e.quadraticCurveTo(t,s,t+l,s),e.closePath(),e.fill(),e.stroke()}circle(e,t,s,i,n,l){e.beginPath(),e.arc(t+i/2,.9*(s+n/2),l,0,2*Math.PI,!0),e.closePath(),e.fill(),e.stroke()}}class Ve{constructor(e){this.icn3d=e,this.textSpriteCls=new Ge(e)}createLabelRepresentation(e){let t=this.icn3d;t.icn3dui;let s=t.oriMaxD/100;s<.4&&(s=.4);let i=3*s*t.labelScale;for(let s in e){let n=void 0!==e[s]?e[s]:[],l="black"!=t.opts.background?t.colorWhitebkgd:t.colorBlackbkgd;for(let e=0,r=n.length;e.99999)h.set(0,0,0,1);else if(e.y<-.99999)h.set(1,0,0,0);else{let t=new THREE.Vector3;t.set(e.z,0,-e.x).normalize();let s=Math.acos(e.y);h.setFromAxisAngle(t,s)}return c.applyQuaternion(h),c.scale.set(l,n,l),c.position.copy(t),c}setPc1Axes(e){let t=this.icn3d,s=t.icn3dui;if(s.bNode)return;let i=s.hashUtilsCls.intHash(t.hAtoms,t.dAtoms),n=[],l=Object.keys(i).length<100;for(let e in i){let s=t.atoms[e],i=s.structure+"_"+s.chain+"_"+s.resi;(l||""!=i)&&n.push(s.coord.clone())}let r=s.rmsdSuprCls.getEigenForSelection(n,n.length),o=new THREE.Vector3(r.h1[0],r.h1[1],r.h1[2]);if(0==r.k&&t.bRender)return void alert("Can't determine the first principal component. Please select a subset and try it again.");let a=t.applyCenterCls.centerAtoms(i),d=a.maxD,c=a.center,h=c.clone().add(o.normalize().multiplyScalar(.4*d)),p=o.normalize();if(s.htmlCls.clickMenuCls.setLogCmd("Principle X-Axis: "+p.x.toFixed(3)+" "+p.y.toFixed(3)+" "+p.z.toFixed(3),!1),e)return p;let m=new THREE.Vector3(r.h2[0],r.h2[1],r.h2[2]),u=c.clone().add(m.normalize().multiplyScalar(.3*d)),g=new THREE.Vector3(r.h3[0],r.h3[1],r.h3[2]),f=c.clone().add(g.normalize().multiplyScalar(.3*d));this.buildAxes(void 0,c,h,u,f,!0);let C=[c,h,u,f];return t.axes.push(C),t.drawCls.draw(),C}}class Ye{constructor(e){this.icn3d=e}showGlycans(){let e=this.icn3d,t=e.icn3dui;if(t.bNode)return;let s={},i=e.dAtoms;for(let n in i){let i=e.atoms[n];i.het&&-1!=t.parasCls.glycanHash.hasOwnProperty(i.resn)&&(void 0===s[i.resn]&&(s[i.resn]={}),"Misc"!=i.chain&&(s[i.resn][i.structure+"_"+i.chain+"_"+i.resi]=1))}let n=Object.keys(s);for(let i=0,l=n.length;i>2))+i+((2&t)>>1))*c+n+(1&t)]&this.ISDONE)<=3&&(t.push(t[i]),i=t.length-1,t.push(t[n]),n=t.length-1,t.push(t[l]),l=t.length-1),s.push(i),s.push(n),s.push(l)}}},Xe.prototype.laplacianSmooth=function(e,t,s){let i,n,l,r,o,a=new Array(t.length);for(i=0,n=t.length;ithis.origextent[1][0])&&(!(tthis.origextent[1][1])&&!(sthis.origextent[1][2]))},Ke.prototype.getFacesAndVertices=function(){let e,t,s=this.verts;for(e=0,t=s.length;eh&&(h=this.pmaxy-this.pminy),this.pmaxz-this.pminz>h&&(h=this.pmaxz-this.pminz),this.scaleFactor=(c-1)/h,this.scaleFactor=this.defaultScaleFactor,this.defaultScaleFactor*h>this.threshbox&&(c=Math.floor(this.threshbox),this.scaleFactor=(this.threshbox-1)/h),this.bCalcArea&&(this.scaleFactor=this.defaultScaleFactor),this.pLength=Math.ceil(this.scaleFactor*(this.pmaxx-this.pminx))+1,this.pWidth=Math.ceil(this.scaleFactor*(this.pmaxy-this.pminy))+1,this.pHeight=Math.ceil(this.scaleFactor*(this.pmaxz-this.pminz))+1,this.boundingatom(t),this.cutRadius=this.probeRadius*this.scaleFactor,this.vpBits=new Uint8Array(this.pLength*this.pWidth*this.pHeight),this.vpDistance=new Float64Array(this.pLength*this.pWidth*this.pHeight),this.vpAtomID=new Int32Array(this.pLength*this.pWidth*this.pHeight),this.vpColor=[],this.vpPot=[]},Ke.prototype.boundingatom=function(e){let t,s,i,n,l=[];for(let r in this.vdwRadii){if(!this.vdwRadii.hasOwnProperty(r))continue;let o=this.vdwRadii[r];l[r]=e?(o+this.probeRadius)*this.scaleFactor+.5:o*this.scaleFactor+.5,i=l[r]*l[r],this.widxz[r]=Math.floor(l[r])+1,this.depty[r]=new Int32Array(this.widxz[r]*this.widxz[r]),n=0;for(let e=0;ei?this.depty[r][n]=-1:(s=Math.sqrt(i-t),this.depty[r][n]=Math.floor(s)),n++}},Ke.prototype.fillvoxels=function(e,t){let s,i,n,l;for(s=0,l=this.vpBits.length;sc&&(a=c),b>h&&(b=h),v>p&&(v=p);let _,w=g[o*m+d*u+y],S=g[a*m+d*u+y],A=g[o*m+b*u+y],x=g[o*m+d*u+v],k=g[a*m+b*u+y],O=g[o*m+b*u+v],R=g[a*m+d*u+v],I=g[a*m+b*u+v],E=r.x-o,T=r.y-d,P=r.z-y,D=((w*(1-E)+S*E)*(1-T)+(A*(1-E)+k*E)*T)*(1-P)+((x*(1-E)+R*E)*(1-T)+(O*(1-E)+I*E)*T)*P,M=s*f+i*C+n;this.vpPot[M]=D,D>this.isovalue&&(D=this.isovalue),D<-this.isovalue&&(D=-this.isovalue),D>0?(D/=1*this.isovalue,_=new THREE.Color(1-D,1-D,1)):(D/=-1*this.isovalue,_=new THREE.Color(1,1-D,1-D)),this.vpColor[M]=_}}for(s=0,l=this.vpBits.length;s=this.pLength||g>=this.pWidth||f>=this.pHeight)continue;let h=u*S+g*this.pHeight+f;if(this.vpBits[h]&this.INOUT){let p=t[this.vpAtomID[h]];p.serial!=e.serial&&(l=s+a-Math.floor(.5+this.scaleFactor*(p.x+this.ptranx)),r=i+d-Math.floor(.5+this.scaleFactor*(p.y+this.ptrany)),o=n+c-Math.floor(.5+this.scaleFactor*(p.z+this.ptranz)),a*a+d*d+c*c=this.pLength||p>=this.pWidth||m>=this.pHeight)continue;let u=h*S+p*this.pHeight+m;if(this.vpBits[u]&this.ISDONE){let h=t[this.vpAtomID[u]];h.serial!=e.serial&&(l=s+a-Math.floor(.5+this.scaleFactor*(h.x+this.ptranx)),r=i+d-Math.floor(.5+this.scaleFactor*(h.y+this.ptrany)),o=n+c-Math.floor(.5+this.scaleFactor*(h.z+this.ptranz)),a*a+d*d+c*c-1&&r-1&&a-1&&o=h)||(this.vpBits[n]|=this.ISBOUND))},Ke.prototype.fastoneshell=function(e,t){let s,i,n,l,r,o,a,d,c,h,p,m,u=[];if(0===e.length)return u;let g={ix:-1,iy:-1,iz:-1},f=this.pWidth*this.pHeight;for(a=0,c=e.length;a-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,h-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,h-1&&g.iy-1&&g.iz-1&&(m=g.ix*f+this.pHeight*g.iy+g.iz,this.vpBits[m]&this.INOUT&&!(this.vpBits[m]&this.ISDONE)?(t.set(g.ix,g.iy,n+this.nb[d][2],p),l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,this.vpDistance[m]=h,this.vpBits[m]|=this.ISDONE,this.vpBits[m]|=this.ISBOUND,u.push({ix:g.ix,iy:g.iy,iz:g.iz})):this.vpBits[m]&this.INOUT&&this.vpBits[m]&this.ISDONE&&(l=g.ix-p.ix,r=g.iy-p.iy,o=g.iz-p.iz,h=l*l+r*r+o*o,hm&&(m=this.pmaxy-this.pminy),this.pmaxz-this.pminz>m&&(m=this.pmaxz-this.pminz),this.scaleFactor=1,this.pLength=Math.floor(.5+this.scaleFactor*(this.pmaxx-this.pminx))+1,this.pWidth=Math.floor(.5+this.scaleFactor*(this.pmaxy-this.pminy))+1,this.pHeight=Math.floor(.5+this.scaleFactor*(this.pmaxz-this.pminz))+1,this.cutRadius=this.probeRadius*this.scaleFactor,this.vpBits=new Uint8Array(this.pLength*this.pWidth*this.pHeight),this.ccp4&&(this.vpGridTrans=new Array(this.pLength*this.pWidth*this.pHeight)),this.vpAtomID=new Uint8Array(this.pLength*this.pWidth*this.pHeight)},Je.prototype.transformMemPro=function(e,t,s,i){let n=e.clone();n.sub(s);let l=n.x*t[0]+n.y*t[1]+n.z*t[2]+i.x,r=n.x*t[3]+n.y*t[4]+n.z*t[5]+i.y,o=n.x*t[6]+n.y*t[7]+n.z*t[8]+i.z;return n.x=l,n.y=r,n.z=o,n},Je.prototype.fillvoxels=function(e,t){let s,i,n,l,r,o;for(s=0,l=this.vpBits.length;sthis.pLength&&(o=this.pLength),p>this.pWidth&&(p=this.pWidth),C>this.pHeight&&(C=this.pHeight);let b,y=l[r*a+h*d+f],v=l[o*a+h*d+f],_=l[r*a+p*d+f],w=l[r*a+h*d+C],S=l[o*a+p*d+f],A=l[r*a+p*d+C],x=l[o*a+h*d+C],k=l[o*a+p*d+C],O=n.x-r,R=n.y-h,I=n.z-f,E=((y*(1-O)+v*O)*(1-R)+(_*(1-O)+S*O)*R)*(1-I)+((w*(1-O)+x*O)*(1-R)+(A*(1-O)+k*O)*R)*I;E>this.isovalue&&(E=this.isovalue),E<-this.isovalue&&(E=-this.isovalue),E>0?(E/=1*this.isovalue,b=new THREE.Color(1-E,1-E,1)):(E/=-1*this.isovalue,b=new THREE.Color(1,1-E,1-E)),this.icn3d.atoms[t[s]].color=b,this.icn3d.atomPrevColors[t[s]]=b}}else{for(let p in t){let f,C=e[t[p]];if("DUM"!==C.resn){if(void 0!==this.rmsd_supr&&void 0!==this.rmsd_supr.rot){f=this.transformMemPro(C.coord,g,u,m).applyMatrix4(c)}else f=C.coord.clone().applyMatrix4(c);for(s=Math.floor(f.x)-this.maxdist,l=Math.ceil(f.x)+this.maxdist;s<=l;++s)if(!(s<0||s>this.header.xExtent*this.scaleFactor-1))for(i=Math.floor(f.y)-this.maxdist,r=Math.ceil(f.y)+this.maxdist;i<=r;++i)if(!(i<0||i>this.header.yExtent*this.scaleFactor-1))for(n=Math.floor(f.z)-this.maxdist,o=Math.ceil(f.z)+this.maxdist;n<=o;++n){if(n<0||n>this.header.zExtent*this.scaleFactor-1)continue;let e=s*a+i*d+n;h.push(e)}}}for(s=0,l=h.length;s=this.isovalue?1:0:"fofc"==this.type?(this.vpBits[e]=this.dataArray[e]>=this.isovalue||this.dataArray[e]<=-this.isovalue?1:0,this.vpAtomID[e]=this.dataArray[e]>=0?1:0):"em"==this.type&&(this.vpBits[e]=this.dataArray[e]>=this.isovalue?1:0)}}}else for(s=0;s=this.isovalue||this.dataArray[e]<=-this.isovalue?1:0,this.vpAtomID[t]=this.dataArray[e]>=0?1:0)}for(s=0,l=this.vpBits.length;s-1&&r-1&&a-1&&o1?"Structure":"",a=Object.keys(i).length>1?"Chain":"";n+=""+o+a+"ResidueNumberSASA (Å2)Percent OutIn/Out";for(let e in l.resid2area){let d=e.lastIndexOf("_"),c=e.substr(d+1),h=r.utilsCls.getIdArray(e.substr(0,d));o=Object.keys(s).length>1?""+h[0]+"":"",a=Object.keys(i).length>1?""+h[1]+"":"";let p="",m="";l.resid2area[e]=(l.resid2area[e]/t).toFixed(2),r.parasCls.residueArea.hasOwnProperty(c)&&(m=parseInt(l.resid2area[e]/r.parasCls.residueArea[c]*100),m>100&&(m=100),m>=50&&(p="out"),m<20&&(p="in")),n+=''+o+a+""+c+''+h[2]+''+l.resid2area[e]+''+m+"%"+p+""}return n+="",void(l.areahtml=n)}let p,m,u,g=c.vertices,f=c.faces,C=r.parasCls.thr("#00FFFF"),b=r.parasCls.thr("#00FF00"),y=r.parasCls.thr("#ff0000"),v=r.parasCls.thr("#00FFFF"),_=r.parasCls.thr("#0000FF"),w=r.parasCls.thr("#FF0000");11!=t&&12!=t&&13!=t&&14!=t||void 0===l.rmsd_supr||void 0===l.rmsd_supr.rot||(p=l.rmsd_supr.rot,m=l.rmsd_supr.trans1,u=l.rmsd_supr.trans2);let S=(11==t||12==t||13==t||14==t&&"delphi"!=l.loadPhiFrom)&&void 0!==l.rmsd_supr&&void 0!==l.rmsd_supr.rot;n=new THREE.BufferGeometry;let A,x=[],k=[],O=[],R=0;for(let e=0,s=g.length;e0?-parseInt(b.z):parseInt(b.z),y.onBeforeRender=function(e,t,s,i,n,o){let a,d=new THREE.Vector3(0,0,0),c=i.getAttribute("position").array;for(let e=0,t=c.length;e0?-parseInt(a.z):parseInt(a.z)},l.mdl.add(y),11==t||12==t?l.prevMaps.push(y):13==t?l.prevEmmaps.push(y):14==t?l.prevPhimaps.push(y):l.prevSurfaces.push(y)}}else{let e=new THREE.Mesh(n,new THREE.MeshPhongMaterial({specular:l.frac,shininess:20,emissive:l.emissive,vertexColors:!0,wireframe:s,opacity:i,transparent:!0,depthWrite:10==parseInt(10*i),side:THREE.DoubleSide}));e.renderOrder=-2,l.mdl.add(e),11==t||12==t?l.prevMaps.push(e):13==t?l.prevEmmaps.push(e):14==t?l.prevPhimaps.push(e):l.prevSurfaces.push(e)}c=null,g=null,f=null,n=null}transformMemPro(e,t,s,i,n){this.icn3d.icn3dui;let l=e.clone();l.sub(s),n&&console.log("sub coord: "+JSON.stringify(l));let r=l.x*t[0]+l.y*t[1]+l.z*t[2]+i.x,o=l.x*t[3]+l.y*t[4]+l.z*t[5]+i.y,a=l.x*t[6]+l.y*t[7]+l.z*t[8]+i.z;return l.x=r,l.y=o,l.z=a,n&&console.log("out coord: "+JSON.stringify(l)),l}SetupSurface(e){let t=this.icn3d;t.icn3dui;let s=e.threshbox,i=new Ke(t,s);i.initparm(e.extent,1!==e.type,e.bCalcArea,e.atomsToShow,e.header,e.data,e.matrix,e.isovalue,e.loadPhiFrom),i.fillvoxels(e.allatoms,e.extendedAtoms),i.buildboundary(),2===e.type&&(i.fastdistancemap(),i.boundingatom(!1),i.fillvoxelswaals(e.allatoms,e.extendedAtoms));let n=i.marchingcube();i.vpBits=null,i.vpDistance=null,i.vpAtomID=null;let l=i.getFacesAndVertices(e.atomsToShow);return l.area=n.area,l.serial2area=n.serial2area,l.scaleFactor=n.scaleFactor,i.faces=null,i.verts=null,l}SetupMap(e){let t=this.icn3d;if(t.icn3dui,!e.ccp4){let s,i=new Je(t);return i.initparm(e.header,e.data,e.matrix,e.isovalue,e.center,e.maxdist,e.pmin,e.pmax,e.water,e.type,e.rmsd_supr,e.loadPhiFrom,e.icn3d),i.fillvoxels(e.allatoms,e.extendedAtoms),e.header.bSurface||i.buildboundary(),e.header.bSurface||i.marchingcube(),i.vpBits=null,i.vpAtomID=null,e.header.bSurface||(s=i.getFacesAndVertices(e.allatoms,e.atomsToShow)),i.faces=null,i.verts=null,s}{let s,i=10,n=t.center?[t.center.x,t.center.y,t.center.z]:[0,0,0];if("2fofc"==e.type){s="2fofc";let l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes");t.ccp4ParserCls.makeChickenWire(r,s),l=null,r=null}else if("fofc"==e.type){s="fofc_neg";let l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes");t.ccp4ParserCls.makeChickenWire(r,s),s="fofc_pos",l=t.ccp4ParserCls.extract_block(e.grid,e.unit_cell,i,n,s),r=t.ccp4ParserCls.marchingCubes(l.size,l.values,l.points,e.isovalue,"marching cubes"),t.ccp4ParserCls.makeChickenWire(r,s),l=null,r=null}}}}class Qe{constructor(e){this.icn3d=e}applyCenterOptions(e){let t,s=this.icn3d;switch(s.icn3dui,void 0===e&&(e=s.opts),e.rotationcenter.toLowerCase()){case"molecule center":void 0!==s.center&&this.setRotationCenter(s.center);break;case"pick center":void 0!==s.pAtom&&this.setRotationCenter(s.pAtom.coord);break;case"display center":t=this.centerAtoms(s.dAtoms).center,this.setRotationCenter(t);break;case"highlight center":t=this.centerAtoms(s.hAtoms).center,this.setRotationCenter(t)}}setRotationCenter(e){this.icn3d.icn3dui,this.setCenter(e)}setCenter(e){let t=this.icn3d;t.icn3dui,t.mdl.position.set(0,0,0),t.mdlImpostor.position.set(0,0,0),t.mdl_ghost.position.set(0,0,0),t.mdl.position.sub(e),t.mdlImpostor.position.sub(e),t.mdl_ghost.position.sub(e)}centerSelection(e,t){let s=this.icn3d,i=s.icn3dui;if(s.opts.rotationcenter="highlight center",void 0===e&&(e=i.hashUtilsCls.hash2Atoms(s.hAtoms,s.atoms)),t||(s._zoomFactor=1,s.mouseChange=new THREE.Vector2(0,0),s.quaternion=new THREE.Quaternion(0,0,0,1)),Object.keys(e).length>1){let t=this.centerAtoms(e);s.center=t.center,this.setCenter(s.center),s.cameraCls.setCamera()}}centerAtoms(e){let t=this.icn3d;t.icn3dui;let s=new THREE.Vector3(9999,9999,9999),i=new THREE.Vector3(-9999,-9999,-9999),n=new THREE.Vector3;for(let l in e){let e=t.atoms[l].coord;n.add(e),s.min(e),i.max(e)}let l=t.ParserUtilsCls.getGeoCenter(s,i);return{center:l,maxD:t.ParserUtilsCls.getStructureSize(e,s,i,l),pmin:s,pmax:i}}setWidthHeight(e,t){let s=this.icn3d;s.icn3dui,void 0===s.scaleFactor&&(s.scaleFactor=1),s.renderer.setSize(e*s.scaleFactor,t*s.scaleFactor),s.renderer.domElement.style.width=e*s.scaleFactor+"px",s.renderer.domElement.style.height=t*s.scaleFactor+"px",s.renderer.domElement.width=e*s.scaleFactor,s.renderer.domElement.height=t*s.scaleFactor,s.container.whratio=e/t}}class et{constructor(e){this.icn3d=e}applyClbondsOptions(e){let t=this.icn3d,s=t.icn3dui;if(void 0===e&&(e=t.opts),t.bCalcCrossLink||(t.clbondpnts={},t.clbondResid2serial={},this.applyClbondsOptions_base("chemical"),this.applyClbondsOptions_base("all"),t.bCalcCrossLink=!0),"yes"===e.clbonds.toLowerCase()&&"nothing"!==e.chemicals){let e="#006400";if(s.parasCls.thr(25600),t.lines.clbond=[],t.residuesHashClbonds={},t.structures){let i=Object.keys(t.structures);for(let n=0,l=i.length;n1&&"sphere"!==a[Object.keys(a)[0]].style&&"dot"!==a[Object.keys(a)[0]].style){if(void 0===i.bCid||!i.bCid)for(let e in a){let t=a[e],n=1;i.boxCls.createBox(t,void 0,void 0,n,void 0,s)}}else for(let e in o){let l=i.firstAtomObjCls.getFirstCalphaAtomObj(i.residues[e]),r=l,o=r.structure+"_"+r.chain+"_"+(parseInt(r.resi)-1).toString(),a=r.structure+"_"+r.chain+"_"+(parseInt(r.resi)+1).toString();if("cylinder and plate"===r.style&&"helix"===r.ss)for(let t in i.residues[e]){let e=i.atoms[t],n=1;i.boxCls.createBox(e,void 0,void 0,n,void 0,s)}else if("ribbon"===r.style&&"coil"===r.ss||"strand"===r.style&&"coil"===r.ss||"o3 trace"===r.style||"schematic"===r.style||"c alpha trace"===r.style||"b factor tube"===r.style||"cylinder and plate"===r.style&&"helix"!==r.ss){if(void 0!==l&&void 0!==l.style2&&"nothing"!==l.style2)continue;let e=!1;if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(a)){let s=Object.keys(i.residues[a])[0],l=n.hashUtilsCls.hash2Atoms(i.residues[a],i.atoms)[s];if(r.style===l.style&&!l.ssbegin||l.ssbegin){let s=i.residues[a];if(t=n.hashUtilsCls.unionHash(t,s),e=!0,l.ssbegin)for(let e in s)i.atoms[e].notshow=!0}}if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(o)){let s=Object.keys(i.residues[o])[0],l=n.hashUtilsCls.hash2Atoms(i.residues[o],i.atoms)[s];r.style===l.style&&(t=n.hashUtilsCls.unionHash(t,i.residues[o]),e=!0)}}else if("ribbon"===r.style&&"coil"!==r.ss&&r.ssend||"strand"===r.style&&"coil"!==r.ss&&r.ssend){if(void 0!==l&&void 0!==l.style2&&"nothing"!==l.style2)continue;let e=!1;if(!isNaN(r.resi)&&!e&&i.residues.hasOwnProperty(a)){let s=Object.keys(i.residues[a])[0];n.hashUtilsCls.hash2Atoms(i.residues[a],i.atoms)[s],t=n.hashUtilsCls.unionHash(t,i.residues[a]),e=!0}}}a={}}if(i.bInitial&&void 0===i.bMembrane){if(""!=n.htmlCls.setHtmlCls.getCookie("membrane")){let e=parseInt(n.htmlCls.setHtmlCls.getCookie("membrane"));i.bMembrane!=e&&n.htmlCls.clickMenuCls.setLogCmd("set membrane "+e,!0),i.bMembrane=isNaN(e)?0:parseInt(e)}i.bMembrane?i.selectionCls.toggleMembrane(!0):i.selectionCls.toggleMembrane(!1)}i.setStyleCls.setStyle2Atoms(t);let d=.5*i.cylinderRadius;void 0!==i.labels&&delete i.labels.schematic;for(let e in i.style2atoms){let t=i.style2atoms[e],l=n.hashUtilsCls.intHash(t,i.nucleotides),r=n.utilsCls.isCalphaPhosOnly(n.hashUtilsCls.hash2Atoms(l,i.atoms));if("ribbon"===e)i.strandCls.createStrand(n.hashUtilsCls.hash2Atoms(t,i.atoms),2,void 0,!0,void 0,void 0,!1,i.ribbonthickness,s);else if("strand"===e)i.strandCls.createStrand(n.hashUtilsCls.hash2Atoms(t,i.atoms),null,null,null,null,null,!1,void 0,s);else if("cylinder and plate"===e)i.cylinderCls.createCylinderHelix(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderHelixRadius,s);else if("nucleotide cartoon"===e)r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):(i.cartoonNuclCls.drawCartoonNucleicAcid(n.hashUtilsCls.hash2Atoms(t,i.atoms),null,i.ribbonthickness,s),2!==s&&i.cartoonNuclCls.drawNucleicAcidStick(n.hashUtilsCls.hash2Atoms(t,i.atoms),s));else if("o3 trace"===e)r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["O3'","O3*"],i.traceRadius,!1,s);else if("schematic"===e){let e=i.firstAtomObjCls.getFirstAtomObj(t);if(i.chemicals.hasOwnProperty(e.serial)){i.residueLabelsCls.addNonCarbonAtomLabels(n.hashUtilsCls.hash2Atoms(t,i.atoms));let e=!0;i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),d,d,void 0,s,e)}else i.residueLabelsCls.addResidueLabels(n.hashUtilsCls.hash2Atoms(t,i.atoms),!0),r?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["P"],i.traceRadius,!1,s):i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["O3'","O3*"],i.traceRadius,!1,s),i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["CA"],i.traceRadius,!1,s)}else"c alpha trace"===e?i.cylinderCls.createCylinderCurve(n.hashUtilsCls.hash2Atoms(t,i.atoms),["CA"],i.traceRadius,!1,s):"b factor tube"===e?i.tubeCls.createTube(n.hashUtilsCls.hash2Atoms(t,i.atoms),"CA",null,s,!1,!0):"custom tube"===e?i.tubeCls.createTube(n.hashUtilsCls.hash2Atoms(t,i.atoms),"CA",null,s,!0,!0):"lines"===e||"lines2"===e?(1===s?i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.hlLineRadius,i.hlLineRadius,void 0,s):i.lineCls.createLineRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),s),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"stick"===e||"stick2"===e?(i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,i.cylinderRadius,void 0,s,void 0),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"backbone"===e?(t=this.selectMainChainSubset(t),i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,i.cylinderRadius,void 0,s,void 0)):"ball and stick"===e||"ball and stick2"===e?(i.stickCls.createStickRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.cylinderRadius,.5*i.cylinderRadius,i.dotSphereScale,s,void 0),i.lineCls.createConnCalphSidechain(n.hashUtilsCls.hash2Atoms(t,i.atoms),e)):"sphere"===e||"sphere2"===e?i.sphereCls.createSphereRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.sphereRadius,void 0,void 0,s):"dot"===e&&i.sphereCls.createSphereRepresentation(n.hashUtilsCls.hash2Atoms(t,i.atoms),i.sphereRadius,!1,i.dotSphereScale,s)}if(i.cnt>i.maxmaxatomcnt&&i.init_base(),void 0!==i.labels&&Object.keys(i.labels).length>0){i.labelCls.hideLabels();for(let e in i.labels)"schematic"!=e&&this.changeLabelColor(i.labels[e]);i.labelCls.createLabelRepresentation(i.labels)}}changeLabelColor(e){let t=this.icn3d;if(t.icn3dui,e)for(let s=0,i=e.length;s0){this.updateStabilizer();let e="#FFFFFF",s=t.stabilizerpnts;t.lines.stabilizer=[];for(let i=0,n=Math.floor(s.length/2);i0)for(let e=0,s=t.distPnts.length;e0&&t.applySymdCls.applySymd(),void 0!==t.prevOtherMesh)for(let e=0,s=t.prevOtherMesh.length;e0&&(e=s.hashUtilsCls.hash2Atoms(t.chemicals,t.atoms));let i=4;if(void 0!==e){let n=t.contactCls.getAtomsWithinAtom(t.atoms,e,i),l=3.5;t.opts.hbonds="yes",Object.keys(n).length>0&&t.hBondCls.calculateChemicalHbonds(e,n,parseFloat(l)),t.bSetFog||t.transformCls.zoominSelection(s.hashUtilsCls.unionHash(e,n))}}else"hide"===e.chemicalbinding&&(t.hBondCls.hideHbonds(),t.showInterCls.hideExtraBonds(),t.bSetFog||t.transformCls.zoominSelection(t.atoms))}updateStabilizer(){let e=this.icn3d;if(e.icn3dui,e.stabilizerpnts=[],void 0!==e.pairArray)for(let t=0,s=e.pairArray.length;t=0;i--){let r=t.ssbondpnts[e][2*i],o=t.ssbondpnts[e][2*i+1],a={};a.color=n,a.dashed=!1;let d=[],c=[],h=[],p=[],m=!1,u=!1;for(let e in t.residues[r])"SG"===t.atoms[e].name&&(h.push(t.atoms[e].coord),d.push(t.atoms[e].serial),m=!0);if(!m)for(let e in t.residues[r])if("CA"===t.atoms[e].name){h.push(t.atoms[e].coord),d.push(t.atoms[e].serial),m=!0,u=!0;break}m=!1;for(let e in t.residues[o])"SG"===t.atoms[e].name&&(p.push(t.atoms[e].coord),c.push(t.atoms[e].serial),m=!0);if(!m)for(let e in t.residues[o])if("CA"===t.atoms[e].name){p.push(t.atoms[e].coord),c.push(t.atoms[e].serial),m=!0,u=!0;break}let g=u?7:3,f=!1;for(let e=0,t=h.length;e1&&(l=!0)}if(t)if(l){let t=Object.keys(r)[0];e=i.chains[t]}else{0==Object.keys(i.hAtoms).length&&(i.hAtoms=n.hashUtilsCls.cloneHash(i.dAtoms));let t,s=parseInt(Object.keys(i.hAtoms).length/u),l=0;for(let n in i.hAtoms)if(e[n]=1,t=n,++l,l>s)break;let r=i.atoms[t].structure+"_"+i.atoms[t].chain+"_"+i.atoms[t].resi;e=n.hashUtilsCls.unionHash(e,i.residues[r])}else{let t=Object.keys(i.structures)[0]+"_"+g;if(i.chains.hasOwnProperty(t)||(t=Object.keys(i.structures)[0]+"_"+g.toLowerCase()),!i.chains.hasOwnProperty(t)){t=Object.keys(i.chains)[0];for(let e in i.chains){let s=Object.keys(i.chains[e])[0];if(i.proteins.hasOwnProperty(s)){t=e;break}}}e=i.chains[t]}let a=s.clone().add(h).multiplyScalar(.5),c=new THREE.Vector3,p=0,f=h.clone().sub(s).normalize(),C=new THREE.Vector3(0,0,1),b=new THREE.Quaternion;b.setFromUnitVectors(f,C);let y=-9999;for(let t in e){let e=i.atoms[t].coord.clone();c.add(e),e.sub(a).applyQuaternion(b);let s=e.x*e.x+e.y*e.y;s>y&&(y=s),++p}let v=i.ParserUtilsCls.getMassCenter(c,p),_=new THREE.Line3(s,h),w=new THREE.Vector3;_.closestPointToPoint(v,!0,w);let S,A,x,k,O=Math.sqrt(y),R=v.clone().sub(w).normalize().multiplyScalar(O),I=a.clone().add(s.clone().sub(a).multiplyScalar(.83)).add(R),E=a.clone().add(h.clone().sub(a).multiplyScalar(.83)).add(R),T=2*Math.PI/o;for(let e=0;et&&(i.sphereCls.createSphereBase(r,m,d,1,0),i.cylinderCls.createCylinder(e,r,d,m,0),i.cylinderCls.createCylinder(s,r,d,m,0),void 0!==n&&i.cylinderCls.createCylinder(c[n],r,d,m,0),n=l)}}else if("O"==r)for(let e=0,t=c.length;e0&&(e.mdl.remove(e.prevSurfaces[e.prevSurfaces.length-1]),e.prevSurfaces.slice(e.prevSurfaces.length-1,1))}removeMaps(){let e=this.icn3d;e.icn3dui;for(let t=0,s=e.prevMaps.length;t0&&(e.mdl.remove(e.prevMaps[e.prevMaps.length-1]),e.prevMaps.slice(e.prevMaps.length-1,1))}removeLastEmmap(){let e=this.icn3d;e.icn3dui,e.prevEmmaps.length>0&&(e.mdl.remove(e.prevEmmaps[e.prevEmmaps.length-1]),e.prevEmmaps.slice(e.prevEmmaps.length-1,1))}removeLastPhimap(){let e=this.icn3d;e.icn3dui,e.prevPhimaps.length>0&&(e.mdl.remove(e.prevPhimaps[e.prevPhimaps.length-1]),e.prevPhimaps.slice(e.prevPhimaps.length-1,1))}}class ot{constructor(e){this.icn3d=e}addResidueLabels(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui;if(r.bNode)return;let o=r.hashUtilsCls.intHash(l.hAtoms,e);t?void 0===l.labels.schematic&&(l.labels.schematic=[]):void 0===l.labels.residue&&(l.labels.residue=[]);let a="";for(let e in o){let s=l.atoms[e],o={},d=s.structure+"_"+s.chain+"_"+s.resi;if(!s.het&&("CA"===s.name||"O3'"===s.name||"O3*"===s.name)||l.water.hasOwnProperty(s.serial)||l.ions.hasOwnProperty(s.serial)||l.chemicals.hasOwnProperty(s.serial)&&d!==a){if(o.position=s.coord,o.bSchematic=0,t&&(o.bSchematic=1),o.text=r.utilsCls.residueName2Abbr(s.resn),i)o.text+=s.resi;else if(n){let e=s.structure+"_"+s.chain+"_"+s.resi,t="";l.resid2refnum[e]&&(t=" "==l.resid2refnum[e].substr(0,1)?"":l.resid2refnum[e]),o.text=t}o.size=18,o.factor=.3;let e=s.color.getHexString().toUpperCase();o.color=i?"black"!=l.opts.background?l.colorWhitebkgd:l.colorBlackbkgd:n?"#00FFFF":"CCCCCC"===e||"C8C8C8"===e?"#888888":"#"+e,o.background="#FFFFFF",t?l.labels.schematic.push(o):l.labels.residue.push(o)}a=d}l.hlObjectsCls.removeHlObjects()}addIgLabels(e){let t=this.icn3d;if(t.icn3dui.bNode)return;t.labels.ig=[];let s=t.firstAtomObjCls.getChainsFromAtoms(e);for(let e in t.igLabel2Pos)if(s.hasOwnProperty(e))for(let s in t.igLabel2Pos[e]){let i={};i.position=t.igLabel2Pos[e][s],i.text=s,i.size=60,i.color="#00FFFF",t.labels.ig.push(i)}t.hlObjectsCls.removeHlObjects()}addNonCarbonAtomLabels(e){let t=this.icn3d,s=t.icn3dui;if(s.bNode)return;let i=s.hashUtilsCls.intHash(t.hAtoms,e);void 0===t.labels.schematic&&(t.labels.schematic=[]);for(let e in i){let s=t.atoms[e];if(!t.residues.hasOwnProperty(s.structure+"_"+s.chain+"_"+s.resi))continue;if("C"===s.elem)continue;let i={};i.position=s.coord,i.bSchematic=1,i.text=s.elem,i.size=18,i.color="black"!=t.opts.background?t.colorWhitebkgd:s.color.getHexString(),i.background="#FFFFFF",t.labels.schematic.push(i)}t.hlObjectsCls.removeHlObjects()}addAtomLabels(e,t){let s=this.icn3d,i=s.icn3dui;if(i.bNode)return;let n=i.hashUtilsCls.intHash(s.hAtoms,e);n=i.hashUtilsCls.intHash(s.dAtoms,n),void 0===s.labels.residue&&(s.labels.residue=[]);for(let e in n){let i=s.atoms[e],n={};n.position=i.coord,n.bSchematic=0,n.text=t?i.elem:i.name.padEnd(2," "),n.size=18,t&&(n.bSchematic=!0);let l=i.color.getHexString().toUpperCase();n.color="black"!=s.opts.background?s.colorWhitebkgd:s.colorBlackbkgd,t&&(n.color="CCCCCC"===l||"C8C8C8"===l?"#888888":"#"+l),n.background="#FFFFFF",s.labels.residue.push(n)}s.hlObjectsCls.removeHlObjects()}}class at{constructor(e){this.icn3d=e}onBeforeRender(e,t,s,i,n,l){let r=n.uniforms,o=[];if(r.objectId&&(r.objectId.value=SupportsReadPixelsFloat?this.id:this.id/255,o.push("objectId")),(r.modelViewMatrixInverse||r.modelViewMatrixInverseTranspose||r.modelViewProjectionMatrix||r.modelViewProjectionMatrixInverse)&&this.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,this.matrixWorld),r.modelViewMatrixInverse&&(r.modelViewMatrixInverse.value.copy(this.modelViewMatrix).invert(),o.push("modelViewMatrixInverse")),r.modelViewMatrixInverseTranspose&&(r.modelViewMatrixInverse?r.modelViewMatrixInverseTranspose.value.copy(r.modelViewMatrixInverse.value).transpose():r.modelViewMatrixInverseTranspose.value.copy(this.modelViewMatrix).invert().transpose(),o.push("modelViewMatrixInverseTranspose")),r.modelViewProjectionMatrix&&(s.updateProjectionMatrix(),r.modelViewProjectionMatrix.value.multiplyMatrices(s.projectionMatrix,this.modelViewMatrix),o.push("modelViewProjectionMatrix")),r.modelViewProjectionMatrixInverse){let e=new THREE.Matrix4;r.modelViewProjectionMatrix?(e.copy(r.modelViewProjectionMatrix.value),r.modelViewProjectionMatrixInverse.value.copy(e).invert()):(s.updateProjectionMatrix(),e.multiplyMatrices(s.projectionMatrix,this.modelViewMatrix),r.modelViewProjectionMatrixInverse.value.copy(e).invert()),o.push("modelViewProjectionMatrixInverse")}if(r.projectionMatrix&&(s.updateProjectionMatrix(),r.projectionMatrix.value.copy(s.projectionMatrix),o.push("projectionMatrix")),r.projectionMatrixInverse&&(s.updateProjectionMatrix(),r.projectionMatrixInverse.value.copy(s.projectionMatrix).invert(),o.push("projectionMatrixInverse")),o.length){let t=e.properties.get(n);if(t.program){let s=e.getContext(),i=t.program;s.useProgram(i.program);let n=i.getUniforms();o.forEach((function(e){n.setValue(s,e,r[e].value)}))}}}setParametersForShader(e){let t,s=this.icn3d,i=s.icn3dui.parasCls.backgroundColors[s.opts.background.toLowerCase()],n=2.5*s.maxD,l=4*s.maxD,r=void 0!==s.biomtMatrices&&s.biomtMatrices.length*s.cnt>s.maxatomcnt;"yes"===s.opts.slab?r?t=.1:void 0!==s.camMaxDFactorFog?(t=s.maxD*s.camMaxDFactorFog-10,n=2.5*s.maxD-t<0?0:2.5*s.maxD-t,l=4*s.maxD-t):t=s.maxD*s.camMaxDFactor:t=.1;let o=void 0!==e?e:1,a=s.shininess/100*.5;s.uniforms=THREE.UniformsUtils.merge([THREE.UniformsLib.common,{modelViewMatrix:{value:new THREE.Matrix4},modelViewMatrixInverse:{value:new THREE.Matrix4},modelViewMatrixInverseTranspose:{value:new THREE.Matrix4},modelViewProjectionMatrix:{value:new THREE.Matrix4},modelViewProjectionMatrixInverse:{value:new THREE.Matrix4},projectionMatrix:{value:new THREE.Matrix4},projectionMatrixInverse:{value:new THREE.Matrix4},diffuse:{type:"v3",value:[1,1,1]},emissive:{type:"v3",value:[.06,.06,.06]},roughness:{type:"f",value:.5},metalness:{type:"f",value:a},opacity:{type:"f",value:o},nearClip:{type:"f",value:t},ortho:{type:"f",value:0},shrink:{type:"f",value:.13},fogColor:{type:"v3",value:[i.r,i.g,i.b]},fogNear:{type:"f",value:n},fogFar:{type:"f",value:l},fogDensity:{type:"f",value:2}},THREE.UniformsLib.ambient,THREE.UniformsLib.lights]),s.defines={USE_COLOR:1,NEAR_CLIP:1,CAP:1},"yes"!==s.opts.fog||r||(s.defines.USE_FOG=1,"orthographic"===s.opts.camera&&(s.defines.FOG_EXP2=1)),s.bExtFragDepth&&(s.defines.USE_LOGDEPTHBUF_EXT=1)}drawImpostorShader(){this.icn3d.icn3dui.bNode||(this.setParametersForShader(),this.createImpostorShaderSphere("SphereImpostor"),this.createImpostorShaderCylinder("CylinderImpostor"))}getShader(e){this.icn3d.icn3dui;let t=$NGL_shaderTextHash[e];return t=t.replace(/#include\s+(\S+)/gim,(function(e,t){let s;return THREE.ShaderChunk.hasOwnProperty(t)&&(s=THREE.ShaderChunk[t]),s||""})),t}createImpostorShaderBase(e,t,s,i,n,l,r,o,a){let d=this.icn3d;d.icn3dui;let c=new THREE.ShaderMaterial({defines:d.defines,uniforms:d.uniforms,vertexShader:this.getShader(e+".vert"),fragmentShader:this.getShader(e+".frag"),depthTest:!0,depthWrite:!0,lights:!0});c.extensions.fragDepth=!0,"CylinderImpostor"==e?d.CylinderImpostorMaterial=c:"SphereImpostor"==e&&(d.SphereImpostorMaterial=c);let h,p,m=l*r,u=l*o,g=new(m>65535?Uint32Array:Uint16Array)(u);for(let e=0;e=0;t--){let s=a.children[t];s.onBeforeRender=e.impostorCls.onBeforeRender,s.frustumCulled=!1}l.add(a)}void 0!==e.mdl_ghost&&(a=e.mdl_ghost.clone(),this.applyMat(a,d),r.add(a));let c=e.center.clone();this.applyMat(c,d,!0),s.add(c),++t}e.mdl.add(n),e.mdlImpostor.add(l),e.mdl_ghost.add(r),void 0!==e.bSetInstancing&&e.bSetInstancing?(e.maxD=e.maxDAssembly,e.center=e.centerAssembly.clone(),e.applyCenterCls.setCenter(e.center),e.cameraCls.setCamera()):(e.maxD*=Math.sqrt(t),e.center=e.ParserUtilsCls.getMassCenter(s,t),e.maxDAssembly=e.maxD,e.centerAssembly=e.center.clone(),e.applyCenterCls.setCenter(e.center),e.cameraCls.setCamera()),e.bSetInstancing=!0}createInstancedGeometry(e){let t=this.icn3d,s=t.icn3dui,i=e.geometry,n=new THREE.InstancedBufferGeometry,l=[],r=[],o=[],a=[],d=[],c=[],h=[],p=[];if(t.bImpo&&"Cylinder"==e.type){t.instancedMaterial=this.getInstancedMaterial("CylinderInstancing");let e=s.hashUtilsCls.hashvalue2array(i.attributes.position1.array),r=s.hashUtilsCls.hashvalue2array(i.attributes.color.array),m=s.hashUtilsCls.hashvalue2array(i.attributes.position2.array),u=s.hashUtilsCls.hashvalue2array(i.attributes.color2.array),g=s.hashUtilsCls.hashvalue2array(i.index.array),f=s.hashUtilsCls.hashvalue2array(i.attributes.radius.array),C=s.hashUtilsCls.hashvalue2array(i.attributes.mapping.array);l=l.concat(e),o=o.concat(r),h=h.concat(m),p=p.concat(u),a=a.concat(g),d=d.concat(f),c=c.concat(C),n.setAttribute("position1",new THREE.BufferAttribute(new Float32Array(l),3)),n.setAttribute("color",new THREE.BufferAttribute(new Float32Array(o),3)),n.setAttribute("position2",new THREE.BufferAttribute(new Float32Array(h),3)),n.setAttribute("color2",new THREE.BufferAttribute(new Float32Array(p),3)),n.setAttribute("radius",new THREE.BufferAttribute(new Float32Array(d),1)),n.setAttribute("mapping",new THREE.BufferAttribute(new Float32Array(c),3)),n.setIndex(new THREE.BufferAttribute(new Uint32Array(a),1)),e=null,r=null,m=null,u=null,g=null,f=null,C=null}else if(t.bImpo&&"Sphere"==e.type){t.instancedMaterial=this.getInstancedMaterial("SphereInstancing");let e=s.hashUtilsCls.hashvalue2array(i.attributes.position.array),r=s.hashUtilsCls.hashvalue2array(i.attributes.color.array),h=s.hashUtilsCls.hashvalue2array(i.index.array),p=s.hashUtilsCls.hashvalue2array(i.attributes.radius.array),m=s.hashUtilsCls.hashvalue2array(i.attributes.mapping.array);l=l.concat(e),o=o.concat(r),a=a.concat(h),d=d.concat(p),c=c.concat(m),n.setAttribute("position",new THREE.BufferAttribute(new Float32Array(l),3)),n.setAttribute("color",new THREE.BufferAttribute(new Float32Array(o),3)),n.setAttribute("radius",new THREE.BufferAttribute(new Float32Array(d),1)),n.setAttribute("mapping",new THREE.BufferAttribute(new Float32Array(c),2)),n.setIndex(new THREE.BufferAttribute(new Uint32Array(a),1)),e=null,r=null,h=null,p=null,m=null}else{t.instancedMaterial=this.getInstancedMaterial("Instancing");let e=i.attributes.position?s.hashUtilsCls.hashvalue2array(i.attributes.position.array):[],d=i.attributes.normal?s.hashUtilsCls.hashvalue2array(i.attributes.normal.array):[],c=i.attributes.color?s.hashUtilsCls.hashvalue2array(i.attributes.color.array):[],h=i.index?s.hashUtilsCls.hashvalue2array(i.index.array):[];l=l.concat(e),r=r.concat(d),o=o.concat(c),a=a.concat(h);let p=[],m="CylinderGeometry"==i.type?1:0;for(let e=0,t=l.length/3;e0&&(e.dAtoms=t.hashUtilsCls.cloneHash(s)),e.bShowHighlight=!1}e.applyMapCls.removeSurfaces(),e.applyMapCls.applySurfaceOptions(),e.applyMapCls.removeMaps(),e.applyMapCls.applyMapOptions(),e.applyMapCls.removeEmmaps(),e.applyMapCls.applyEmmapOptions(),e.applyMapCls.removePhimaps(),e.applyMapCls.applyPhimapOptions(),e.applyMapCls.removeSurfaces(),e.applyMapCls.applyphisurfaceOptions(),e.axes=[],e.pc1&&e.axesCls.setPc1Axes(),e.opts.rotationcenter="highlight center",e.drawCls.draw(),e.bShowHighlight=!0}async alternateWrapper(){let e=this.icn3d;e.icn3dui,e.bAlternate=!0,await this.alternateStructures(),e.bAlternate=!1}}class ht{constructor(e){this.icn3d=e}draw(e){let t=this.icn3d,s=t.icn3dui;if(t.impostorCls.clearImpostors(),!t.bRender||t.hAtoms&&0!=Object.keys(t.hAtoms)||(t.hAtoms=s.hashUtilsCls.cloneHash(t.atoms)),t.sceneCls.rebuildScene(),t.bImpo&&t.impostorCls.drawImpostorShader(),t.setColorCls.applyPrevColor(),void 0!==t.biomtMatrices&&t.biomtMatrices.length>1)if(t.bAssembly&&1==Object.keys(t.structures).length&&(void 0===s.cfg.mmdbid&&1==s.cfg.bu||void 0!==s.cfg.mmdbid&&1==s.cfg.bu&&Object.keys(t.atoms).length*t.biomtMatrices.length>t.maxatomcnt))t.instancingCls.drawSymmetryMates();else{let e=!0;t.applyCenterCls.centerSelection(void 0,e)}let i=void 0!==t.hAtoms?Object.keys(t.hAtoms).length:0;if(i>0&&i0){e.children[0].scale.z=t[0].distance,t[0].point.sub(r.mdl.position);let s=r.rayThreshold,i=r.rayCls.getAtomsFromPosition(t[0].point,s);for(;!i&&s<10;)s+=.5,i=r.rayCls.getAtomsFromPosition(t[0].point,s);i&&(r.pAtomNum%2==0?r.pAtom=i:r.pAtom2=i,++r.pAtomNum,this.showPickingVr(r.pk,i))}}}}catch(e){}}showPickingVr(e,t){let s=this.icn3d;s.icn3dui,e||(e=2),s.hAtoms=s.pickingCls.getPickedAtomList(e,t),2===e?s.residueLabelsCls.addResidueLabels(s.hAtoms,void 0,void 0,!0):1===e&&s.residueLabelsCls.addAtomLabels(s.hAtoms),s.setOptionCls.setStyle("proteins",t.style)}render_base(){let e=this.icn3d,t=e.icn3dui,s=this;if(t.bNode)return;let i=e.bControlGl&&!t.bNode?window.cam:e.cam;if(e.directionalLight){let t=new THREE.Quaternion;t.setFromUnitVectors(new THREE.Vector3(0,0,e.cam_z).normalize(),i.position.clone().normalize()),e.directionalLight.position.copy(e.lightPos.clone().applyQuaternion(t).normalize()),e.directionalLight2.position.copy(e.lightPos2.clone().applyQuaternion(t).normalize()),e.directionalLight3.position.copy(e.lightPos3.clone().applyQuaternion(t).normalize())}if(e.bVr||e.renderer.setPixelRatio(window.devicePixelRatio),e.bVr){let t=.04;if(e.controllers){let i=this.updateGamepadState();for(let n=0,l=e.controllers.length;n{const i=e.gamepad.axes;let r=parseInt(1e3*i[t]),o=parseInt(-1e3*i[s]);n.push(r),l.push(o)})),{xArray:n,yArray:l}}return{xArray:[0,0],yArray:[0,0]}}}class pt{constructor(e){this.icn3d=e}getAtomsWithinAtom(e,t,s,i,n,l,r){let o=this.icn3d,a=o.icn3dui,d=this.getNeighboringAtoms(e,t,s,r);i&&(o.resid2Residhash={});let c={};for(let e in t){let h=o.atoms[e];if(n&&"H"==h.elem)continue;let p,m,u=a.parasCls.vdwRadii[h.elem.toUpperCase()],g=h.structure+"_"+h.chain,f=h.structure+"_"+h.chain+"_"+h.resi;for(let e in o.residues[f])if(o.atoms[e]&&("CA"===o.atoms[e].name&&"C"===o.atoms[e].elem||"O3'"===o.atoms[e].name||"O3*"===o.atoms[e].name)){p=o.atoms[e];break}if(void 0===p&&(p=h),i){let e=0==h.name.indexOf("pi")&&h.ring?h.ring.join(","):h.serial;m=h.resn+" $"+h.structure+"."+h.chain+":"+h.resi+" "+e,void 0===o.resid2Residhash[m]&&(o.resid2Residhash[m]={})}let C=h.structure+"_"+h.chain+"_"+h.resi;for(let e in d){let f=d[e];if(n&&"H"==f.elem)continue;let b=a.parasCls.vdwRadii[f.elem.toUpperCase()],y=f.structure+"_"+f.chain;if(n&&!o.crossstrucinter&&h.structure!=f.structure)continue;if(!r&&f.serial in t)continue;if(o.bOpm&&"DUM"===f.resn)continue;let v=f.coord.distanceTo(h.coord);if(n&&vo?r:o,d=Math.sqrt(a),c=(d+s)*(d+s),h={};for(let r in e){let e=n.atoms[r];!i&&t.hasOwnProperty(e.serial)||(this.bOpm&&"DUM"===e.resn||e.coord.xl[1][0]+s||e.coord.yl[1][1]+s||e.coord.zl[1][2]+s||(e.coord.x-l[2][0])*(e.coord.x-l[2][0])+(e.coord.y-l[2][1])*(e.coord.y-l[2][1])+(e.coord.z-l[2][2])*(e.coord.z-l[2][2])e.coord.x?n:e.coord.x,l=l>e.coord.y?l:e.coord.y,r=r>e.coord.z?r:e.coord.z}return[[t,s,i],[n,l,r],[o/c,a/c,d/c]]}hideContact(){let e=this.icn3d;e.icn3dui,e.opts.contact="no",void 0===e.lines&&(e.lines={}),e.lines.contact=[],e.contactpnts=[]}}class mt{constructor(e){this.icn3d=e}isHbondDonorAcceptor(e){let t=this.icn3d;if(t.icn3dui,"N"==e.name&&!e.het||"N"==e.elem&&"Arg"==e.resn||"N"==e.elem&&"Asn"==e.resn||"N"==e.elem&&"Gln"==e.resn||"N"==e.elem&&"Lys"==e.resn||"N"==e.elem&&"Trp"==e.resn)return"donor";if("O"==e.name&&!e.het||"S"==e.elem&&"Met"==e.resn||"O"==e.elem&&"Asn"==e.resn||"O"==e.elem&&"Asp"==e.resn||"O"==e.elem&&"Gln"==e.resn||"O"==e.elem&&"Glu"==e.resn)return"acceptor";if("S"==e.elem&&"Cys"==e.resn||"N"==e.elem&&"His"==e.resn||"O"==e.elem&&"Ser"==e.resn||"O"==e.elem&&"Thr"==e.resn||"O"==e.elem&&"Tyr"==e.resn)return"both";if("Pro"==e.resn)return"none";if("N"==e.elem){if("Asn"==e.resn||"Gln"==e.resn)return"both";let s=0,i=0;for(let i=0,n=e.bonds.length;i1?"ring":"donor":"none"}if("O"==e.elem&&1==e.bonds.length){if("Asn"==e.resn||"Gln"==e.resn)return"both";for(let s=0,i=e.bonds.length;s=2?"acceptor":"both"}if("O"==e.elem&&2==e.bonds.length){for(let s=0,i=e.bonds.length;s1);++t)"H"!=s.atoms[e.bonds[t]].elem&&(i=s.atoms[e.bonds[t]],l[r++].subVectors(s.atoms[e.bonds[t]].coord,e.coord));if(1===r)for(let t=0,n=i.bonds.length;t1);++t)"H"!=s.atoms[i.bonds[t]].elem&&s.atoms[i.bonds[t]].serial!=e.serial&&l[r++].subVectors(s.atoms[i.bonds[t]].coord,e.coord);if(2!==r)return;let o=l[0].cross(l[1]);return Math.abs(Math.PI/2-o.angleTo(n))}isValidHbond(e,t,s){let i=this.icn3d;i.icn3dui;let n,l,r=this.isHbondDonorAcceptor(e),o=this.isHbondDonorAcceptor(t),a=50*Math.PI/180,d=50*Math.PI/180,c=90*Math.PI/180,h=30*Math.PI/180;if("donor"==r&&("acceptor"==o||"both"==o||"ring"==o)||"acceptor"==o&&("donor"==r||"both"==r||"ring"==r))n=e,l=t;else if("acceptor"==r&&("donor"==o||"both"==o||"ring"==o)||"donor"==o&&("acceptor"==r||"both"==r||"ring"==r))l=e,n=t;else{if("both"!=r&&"ring"!=r||"both"!=o&&"ring"!=o)return!1;n=e,l=t,i.nucleotides.hasOwnProperty(e.serial)&&i.nucleotides.hasOwnProperty(t.serial)&&("ring"==r||"ring"==o)||(e.het||t.het)&&"ring"==r&&"ring"==o||(h=90*Math.PI/180)}let p=this.calcAngles(n,l),m=90*Math.PI/180;for(let e=0,t=p.length;ed)return!1;let u=this.calcPlaneAngle(n,l);if(void 0!==u&&u>h)return!1;let g=this.calcAngles(l,n),f=90*Math.PI/180;for(let e=0,t=g.length;ea)return!1;let C=this.calcPlaneAngle(l,n);return!(void 0!==C&&C>c)}calculateChemicalHbonds(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(0===Object.keys(e).length||0===Object.keys(t).length)return;r.resid2Residhash={};let a,d,c={},h=s*s;for(let t in e){let s=e[t],n=i?"LYS"===s.resn&&"N"===s.elem&&"N"!==s.name||"ARG"===s.resn&&("NH1"===s.name||"NH2"===s.name)||("GLU"===s.resn||"ASP"===s.resn)&&"O"===s.elem&&"O"!==s.name||s.het&&("N"===s.elem||"O"===s.elem||"S"===s.elem):"N"===s.elem||"O"===s.elem||"S"===s.elem&&(s.het||"Cys"===s.resn||"Met"===s.resn);n=r.bOpm?n&&"DUM"!==s.resn:n,n&&(a=s.structure+"_"+s.chain+"_"+s.resi,d=a+"_"+s.name,c[d]=s)}let p={},m={},u=.5,g=-27.888,f={};for(let e in t){let C=t[e],b=i?"LYS"===C.resn&&"N"===C.elem&&"N"!==C.name||"ARG"===C.resn&&("NH1"===C.name||"NH2"===C.name)||("GLU"===C.resn||"ASP"===C.resn)&&"O"===C.elem&&"O"!==C.name||C.het&&("N"===C.elem||"O"===C.elem||"S"===C.elem):"N"===C.elem||"O"===C.elem||"S"===C.elem&&(C.het||"Cys"===C.resn||"Met"===C.resn);if(b=r.bOpm?b&&"DUM"!==C.resn:b,b){a=C.structure+"_"+C.chain+"_"+C.resi,d=a+"_"+C.name;let e=0==C.name.indexOf("pi")&&C.ring?C.ring.join(","):C.serial,t=C.resn+" $"+C.structure+"."+C.chain+":"+C.resi+"@"+C.name+" "+e;void 0===r.resid2Residhash[t]&&(r.resid2Residhash[t]={});for(let e in c){if(i&&!(("LYS"!==C.resn&&"ARG"!==C.resn||"LYS"!==c[e].resn&&"ARG"!==c[e].resn)&&("GLU"!==C.resn&&"ASP"!==C.resn||"GLU"!==c[e].resn&&"ASP"!==c[e].resn)))continue;if(!r.crossstrucinter&&C.structure!=c[e].structure)continue;if(a==e.substr(0,e.lastIndexOf("_")))continue;let d=Math.abs(C.coord.x-c[e].coord.x);if(d>s)continue;let b=Math.abs(C.coord.y-c[e].coord.y);if(b>s)continue;let y=Math.abs(C.coord.z-c[e].coord.z);if(y>s)continue;let v=d*d+b*b+y*y;if(v>h)continue;if(!r.proteins.hasOwnProperty(C.serial)||!r.proteins.hasOwnProperty(c[e].serial)||"N"!==C.name&&"O"!==C.name||"O"!==c[e].name&&"N"!==c[e].name){if(!this.isValidHbond(C,c[e],s))continue}else{if(C.name===c[e].name)continue;if(C.structure==c[e].structure&&C.chain==c[e].chain&&Math.abs(C.resi-c[e].resi)<=1)continue;let t,i="N"===C.name?C:c[e],n="O"===C.name?C:c[e];if("Pro"===i.resn)continue;if(void 0===i.hcoord){if(!this.isValidHbond(C,c[e],s))continue}else{let s,l=i.hcoord,o=i.coord,a=n.structure+"_"+n.chain+"_"+n.resi;for(let e in r.residues[a])if("C"===r.atoms[e].name){s=r.atoms[e];break}if(!s)continue;let d=s.coord,h=n.coord,p=l.distanceTo(h),m=l.distanceTo(d),f=o.distanceTo(d),b=o.distanceTo(h);t=p2||f[c[e].serial]>2)continue;void 0===f[C.serial]?f[C.serial]=1:++f[C.serial],void 0===f[c[e].serial]?f[c[e].serial]=1:++f[c[e].serial],"graph"!==n&&(i?(r.saltbridgepnts.push({serial:C.serial,coord:C.coord}),r.saltbridgepnts.push({serial:c[e].serial,coord:c[e].coord})):(r.hbondpnts.push({serial:C.serial,coord:C.coord}),r.hbondpnts.push({serial:c[e].serial,coord:c[e].coord})));let _=c[e].structure+"_"+c[e].chain+"_"+c[e].resi;p=o.hashUtilsCls.unionHash(p,r.residues[a]),p=o.hashUtilsCls.unionHash(p,r.residues[_]),m[a]=1,m[_]=1;let w=0==c[e].name.indexOf("pi")&&c[e].ring?c[e].ring.join(","):c[e].serial,S=c[e].resn+" $"+c[e].structure+"."+c[e].chain+":"+c[e].resi+"@"+c[e].name+" "+w,A=a+"_"+C.resn+","+_+"_"+c[e].resn;void 0!==r.resids2interAll[A]&&void 0!==r.resids2interAll[A].ionic&&r.resids2interAll[A].ionic.hasOwnProperty(t+"|"+S)||(r.resid2Residhash[t][S]=v.toFixed(1),l||(void 0===r.resids2inter[A]&&(r.resids2inter[A]={}),void 0===r.resids2inter[A].hbond&&(r.resids2inter[A].hbond={}),r.resids2inter[A].hbond[t+"|"+S]=v.toFixed(1)),void 0===r.resids2interAll[A]&&(r.resids2interAll[A]={}),void 0===r.resids2interAll[A].hbond&&(r.resids2interAll[A].hbond={}),r.resids2interAll[A].hbond[t+"|"+S]=v.toFixed(1))}}}let C=Object.keys(m);if("graph"!==n)for(let e=0,t=C.length;en)return!1;let c=Math.abs(e.coord.y-t.coord.y);if(c>n)return!1;let h=Math.abs(e.coord.z-t.coord.z);if(h>n)return!1;let p=d*d+c*c+h*h;if(p>l)return!1;"graph"!==s&&("halogen"==i?(a.halogenpnts.push({serial:e.serial,coord:e.coord}),a.halogenpnts.push({serial:t.serial,coord:t.coord})):"pi-cation"==i?(a.picationpnts.push({serial:e.serial,coord:e.coord}),a.picationpnts.push({serial:t.serial,coord:t.coord})):"pi-stacking"==i&&(a.pistackingpnts.push({serial:e.serial,coord:e.coord}),a.pistackingpnts.push({serial:t.serial,coord:t.coord})));let m=0==t.name.indexOf("pi")&&t.ring?t.ring.join(","):t.serial,u=t.resn+" $"+t.structure+"."+t.chain+":"+t.resi+"@"+t.name+" "+m;a.resid2Residhash[r][u]=p.toFixed(1);let g=e.structure+"_"+e.chain+"_"+e.resi+"_"+e.resn+","+t.structure+"_"+t.chain+"_"+t.resi+"_"+t.resn;return o||(void 0===a.resids2inter[g]&&(a.resids2inter[g]={}),void 0===a.resids2inter[g][i]&&(a.resids2inter[g][i]={}),a.resids2inter[g][i][r+"|"+u]=p.toFixed(1)),void 0===a.resids2interAll[g]&&(a.resids2interAll[g]={}),void 0===a.resids2interAll[g][i]&&(a.resids2interAll[g][i]={}),a.resids2interAll[g][i][r+"|"+u]=p.toFixed(1),!0}getRingNormal(e){if(this.icn3d.icn3dui,e.length<3)return;let t=e[0].clone().sub(e[1]),s=e[1].clone().sub(e[2]);return t.cross(s).normalize()}getAromaticRings(e,t,s){let i=this.icn3d;i.icn3dui;let n=[],l=[],r=[],o=[];if("nucleotide"==s){let s=new THREE.Vector3,a=new THREE.Vector3;if("A"==e.trim().toUpperCase()||"DA"==e.trim().toUpperCase()||"G"==e.trim().toUpperCase()||"DG"==e.trim().toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"N1"==t.name||"C2"==t.name||"N3"==t.name||"C6"==t.name?(s.add(t.coord),r.push(t.coord)):"C4"==t.name||"C5"==t.name?(s.add(t.coord),a.add(t.coord),r.push(t.coord),o.push(t.coord)):"N7"!=t.name&&"C8"!=t.name&&"N9"!=t.name||(a.add(t.coord),o.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r))),5==o.length&&(a.multiplyScalar(.2),n.push(a),l.push(this.getRingNormal(o)))}else if("C"==e.trim().toUpperCase()||"DC"==e.trim().toUpperCase()||"T"==e.trim().toUpperCase()||"DT"==e.trim().toUpperCase()||"U"==e.trim().toUpperCase()||"DU"==e.trim().toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"N1"==t.name||"C2"==t.name||"N3"==t.name||"C6"==t.name?(s.add(t.coord),r.push(t.coord)):"C4"!=t.name&&"C5"!=t.name||(s.add(t.coord),r.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r)))}}else if("protein"==s){let s=new THREE.Vector3,a=new THREE.Vector3;if("PHE"==e.toUpperCase()||"TYR"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CG"!=t.name&&"CD1"!=t.name&&"CE1"!=t.name&&"CZ"!=t.name&&"CE2"!=t.name&&"CD2"!=t.name||(s.add(t.coord),r.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r)))}else if("HIS"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CG"!=t.name&&"ND1"!=t.name&&"CE1"!=t.name&&"NE2"!=t.name&&"CD2"!=t.name||(s.add(t.coord),r.push(t.coord))}5==r.length&&(s.multiplyScalar(.2),n.push(s),l.push(this.getRingNormal(r)))}else if("TRP"==e.toUpperCase()){for(let e in i.residues[t]){let t=i.atoms[e];"CZ2"==t.name||"CH2"==t.name||"CZ3"==t.name||"CE3"==t.name?(s.add(t.coord),r.push(t.coord)):"CD2"==t.name||"CE2"==t.name?(s.add(t.coord),a.add(t.coord),r.push(t.coord),o.push(t.coord)):"CG"!=t.name&&"CD1"!=t.name&&"NE1"!=t.name||(a.add(t.coord),o.push(t.coord))}6==r.length&&(s.multiplyScalar(1/6),n.push(s),l.push(this.getRingNormal(r))),5==o.length&&(a.multiplyScalar(.2),n.push(a),l.push(this.getRingNormal(o)))}}return{piPosArray:n,normalArray:l}}dfs_cycle(e,t,s){let i=this.icn3d;if(i.icn3dui,2==i.ring_color[e])return s;if(1==i.ring_color[e]){s++;let n=t;for(i.ring_mark[n]=s;n!=e;)n=i.ring_par[n],i.ring_mark[n]=s;return s}if(i.ring_par[e]=t,i.ring_color[e]=1,void 0!==i.atoms[e])for(let t=0,n=i.atoms[e].bonds.length;t=3&&o<=6&&a[0]&&a[1]&&a[2]&&a[3]){let i=a[0].clone().sub(a[1]).normalize(),r=a[1].clone().sub(a[2]).normalize(),c=a[2].clone().sub(a[3]).normalize(),h=i.cross(r).normalize(),p=h.dot(c);if(Math.abs(p)<.052){l.multiplyScalar(1/o);let i=t.atoms[n];s[e+"_pi"+n]={resn:i.resn,name:"pi"+n,coord:l,serial:i.serial,structure:i.structure,chain:i.chain,resi:i.resi,normal:h,ring:d}}}}return s}hideHalogenPi(){let e=this.icn3d;e.icn3dui,e.opts.halogen="no",e.opts["pi-cation"]="no",e.opts["pi-stacking"]="no",void 0===e.lines&&(e.lines={}),e.lines.halogen=[],e.lines["pi-cation"]=[],e.lines["pi-stacking"]=[],e.halogenpnts=[],e.picationpnts=[],e.pistackingpnts=[]}}class gt{constructor(e){this.icn3d=e}calculateIonicInteractions(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(0===Object.keys(e).length||0===Object.keys(t).length)return;r.resid2Residhash={};let a,d,c={},h={},p=s*s;for(let t in e){let s=e[t];if("ARG"===s.resn&&"NH2"===s.name||"GLU"===s.resn&&"OE2"===s.name||"ASP"===s.resn&&"OD2"===s.name)continue;let i=("LYS"===s.resn||"HIS"===s.resn)&&"N"===s.elem&&"N"!==s.name||"ARG"===s.resn&&("NH1"===s.name||"NH2"===s.name)||s.het&&-1!==o.parasCls.cationsTrimArray.indexOf(s.elem)||s.het&&"N"===s.elem&&1==s.bonds.length,n=this.isAnion(s);i=r.bOpm?i&&"DUM"!==s.resn:i,n=r.bOpm?n&&"DUM"!==s.resn:n,(i||n)&&(a=s.structure+"_"+s.chain+"_"+s.resi,d=a+"_"+s.name,i&&(c[d]=s),n&&(h[d]=s))}let m={},u={};for(let e in t){let i=t[e];if("ARG"===i.resn&&"NH2"===i.name||"GLU"===i.resn&&"OE2"===i.name||"ASP"===i.resn&&"OD2"===i.name)continue;let g=("LYS"===i.resn||"HIS"===i.resn)&&"N"===i.elem&&"N"!==i.name||"ARG"===i.resn&&("NH1"===i.name||"NH2"===i.name)||i.het&&-1!==o.parasCls.cationsTrimArray.indexOf(i.elem),f=this.isAnion(i);if(g=r.bOpm?g&&"DUM"!==i.resn:g,f=r.bOpm?f&&"DUM"!==i.resn:f,g||f){a=i.structure+"_"+i.chain+"_"+i.resi,d=a+"_"+i.name;let e=0==i.name.indexOf("pi")&&i.ring?i.ring.join(","):i.serial,t=i.resn+" $"+i.structure+"."+i.chain+":"+i.resi+"@"+i.name+" "+e;void 0===r.resid2Residhash[t]&&(r.resid2Residhash[t]={});let C={};g?C=h:f&&(C=c);let b,y=i.structure+"_"+i.chain+"_"+i.resi;g&&"ARG"===i.resn&&"NH1"===i.name?b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"NH2"):f&&"GLU"===i.resn&&"OE1"===i.name?b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"OE2"):f&&"ASP"===i.resn&&"OD1"===i.name&&(b=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[y],"OD2"));let v=void 0===b?i.coord:i.coord.clone().add(b.coord).multiplyScalar(.5);for(let e in C){if(a==e.substr(0,e.lastIndexOf("_")))continue;if(!r.crossstrucinter&&i.structure!=C[e].structure)continue;let d,c=C[e].structure+"_"+C[e].chain+"_"+C[e].resi;f&&"ARG"===C[e].resn&&"NH1"===C[e].name?d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"NH2"):g&&"GLU"===C[e].resn&&"OE1"===C[e].name?d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"OE2"):g&&"ASP"===C[e].resn&&"OD1"===C[e].name&&(d=r.firstAtomObjCls.getFirstAtomObjByName(r.residues[c],"OD2"));let h=void 0===d?C[e].coord:C[e].coord.clone().add(d.coord).multiplyScalar(.5),b=Math.abs(v.x-h.x);if(b>s)continue;let y=Math.abs(v.y-h.y);if(y>s)continue;let _=Math.abs(v.z-h.z);if(_>s)continue;let w=b*b+y*y+_*_;if(w>p)continue;"graph"!==n&&(r.saltbridgepnts.push({serial:i.serial,coord:v}),r.saltbridgepnts.push({serial:C[e].serial,coord:h}));let S=C[e].structure+"_"+C[e].chain+"_"+C[e].resi;m=o.hashUtilsCls.unionHash(m,r.residues[a]),m=o.hashUtilsCls.unionHash(m,r.residues[S]),u[a]=1,u[S]=1;let A=0==C[e].name.indexOf("pi")&&C[e].ring?C[e].ring.join(","):C[e].serial,x=C[e].resn+" $"+C[e].structure+"."+C[e].chain+":"+C[e].resi+"@"+C[e].name+" "+A;r.resid2Residhash[t][x]=w.toFixed(1);let k=a+"_"+i.resn+","+S+"_"+C[e].resn;l||(void 0===r.resids2inter[k]&&(r.resids2inter[k]={}),void 0===r.resids2inter[k].ionic&&(r.resids2inter[k].ionic={}),r.resids2inter[k].ionic[t+"|"+x]=w.toFixed(1)),void 0===r.resids2interAll[k]&&(r.resids2interAll[k]={}),void 0===r.resids2interAll[k].ionic&&(r.resids2interAll[k].ionic={}),r.resids2interAll[k].ionic[t+"|"+x]=w.toFixed(1)}}}let g=Object.keys(u);if("graph"!==n)for(let e=0,t=g.length;e1?1/(n-1):1;for(let n in e){let e=t.atoms[n];e.color=s.parasCls.thr().setHSL(3/4*(1-i++*l),1,.45),t.atomPrevColors[n]=e.color}}colorRainbow(e){let t=this.icn3d,s=t.icn3dui,i=0,n=0;e=s.hashUtilsCls.intHash(e,t.hAtoms);for(let s in e)t.atoms[s],++n;let l=n>1?1/(n-1):1;for(let n in e){let e=t.atoms[n];e.color=s.parasCls.thr().setHSL(3/4*i++*l,1,.45),t.atomPrevColors[n]=e.color}}setColorAcrossSets(e,t){let s=this.icn3d,i=s.icn3dui,n=0,l=e.length,r=l>1?1/(l-1):1;for(let l=0,o=e.length;l0)this.setMmdbChainColor();else{let e=-1,s="",l=n.parasCls.stdChainColors.length;for(let r in t){let t=i.atoms[r];t.chain!=s&&(++e,e%=l),t.het?(t.color=n.parasCls.atomColors[t.elem],i.atomPrevColors[r]=t.color):(t.color=n.parasCls.stdChainColors[e],Object.keys(i.chainsColor).length>0&&this.updateChainsColor(t),i.atomPrevColors[r]=t.color),s=t.chain}}break;case"domain":s=0,l=0;let m=Object.keys(i.tddomains);l=m.length,r=l>1?1/(l-1):1;for(let e=0,t=m.length;e1?1/(l-1):1;for(let e=0;e Defined Sets", and try it again.');break;case"secondary structure green":case"secondary structure":i.sheetcolor="green";for(let e in t){let t=i.atoms[e];t.color=t.het?n.parasCls.atomColors[t.elem]||n.parasCls.defaultAtomColor:n.parasCls.ssColors[t.ss]||n.parasCls.thr(16711935),i.atomPrevColors[e]=t.color}break;case"secondary structure yellow":i.sheetcolor="yellow";for(let e in t){let t=i.atoms[e];t.color=t.het?n.parasCls.atomColors[t.elem]||n.parasCls.defaultAtomColor:n.parasCls.ssColors2[t.ss]||n.parasCls.thr(16711935),i.atomPrevColors[e]=t.color}break;case"secondary structure spectrum":s=0,l=0;let u,g,f=[],C=-9999;for(let e in t){if(!i.proteins.hasOwnProperty(e))continue;let t=i.atoms[e];-9999==C&&(u=parseInt(e)),-9999!=C&&(t.ss!=g.ss||Math.abs(t.resi-g.resi)>1||t.ssbegin&&g.ssend)&&("coil"==g.ss||f.push([u,C]),u=e),C=parseInt(e),g=t}"coil"==g.ss||f.push([u,C]),l=f.length,r=l>1?1/(l-1):1;for(let e=0,t=f.length;e100&&(e=100);let r=(i.middB-e)*i.spanBinv1,o=(e-i.middB)*i.spanBinv2;e=90?t.color=n.parasCls.thr().setRGB(0,.325,.839):e>=70&&e<90?t.color=n.parasCls.thr().setRGB(.396,.572,.953):e>=50&&e<70?t.color=n.parasCls.thr().setRGB(1,.859,.075):e<50&&(t.color=n.parasCls.thr().setRGB(1,.49,.271))}i.atomPrevColors[e]=t.color}break;case"b factor":i.middB=50,i.spanBinv1=.02,i.spanBinv2=.02;for(let e in t){let t=i.atoms[e];if(void 0===t.b||isNaN(t.b)||0==parseInt(1e3*t.b))t.color=n.parasCls.thr().setRGB(0,1,0);else{let e=t.b;e>100&&(e=100),e=t.structure.substr(0,4)!=i.defaultPdbId&&t.structure.length>5?100-e:e;let s=(i.middB-e)*i.spanBinv1,l=(e-i.middB)*i.spanBinv2;t.color=et.b&&(o=t.b),a5?100-t.b:t.b,s=i.bfactorArray.indexOf(e)/b;t.color=s<.5?n.parasCls.thr().setRGB(2*s,2*s,1):n.parasCls.thr().setRGB(1,2*(1-s),2*(1-s))}i.atomPrevColors[e]=t.color}break;case"area":if(void 0===i.resid2area){let e=n.hashUtilsCls.cloneHash(i.hAtoms);i.hAtoms=n.hashUtilsCls.cloneHash(i.atoms),i.bCalcArea=!0,i.opts.surface="solvent accessible surface",i.applyMapCls.applySurfaceOptions(),i.bCalcArea=!1,i.hAtoms=n.hashUtilsCls.cloneHash(e)}let y=void 0!==i.midpercent?i.midpercent:35;i.spanBinv1=.02,i.spanBinv2=.02;for(let e in t){let t=i.atoms[e],s=t.structure+"_"+t.chain+"_"+t.resi+"_"+t.resn,l=n.parasCls.residueArea.hasOwnProperty(t.resn)?i.resid2area[s]/n.parasCls.residueArea[t.resn]*100:y;l>100&&(l=100);let r=(y-l)*i.spanBinv1,o=(l-y)*i.spanBinv2;t.color=l

    ";if("atom"==e){let e=["proteins","nucleotides","chemicals","ions","water"];for(let i=0,l=e.length;i[e,s.parasCls.hydrophobicValues[e]]));l.sort(((e,t)=>parseFloat(e[1])-parseFloat(t[1])));var r=l.map((e=>[e[0],Object.keys(o[e[0]])[0]]));n+="
    ","normalized hydrophobic"==e?(n+="Dark green (W, F, L, I, Y, M, V, C): Hydrophobic
    ",n+="Light green (P, T, S, A, Q, N, G): Polar
    ",n+="Grey: Charged, not hydrophobic

    "):(n+="Green (W, F, L, I, Y, M, V, C): Hydrophobic
    ",n+="Yellow (P, T, S, A, Q, N, G): Polar
    ",n+="Red: Negatively Charged
    ",n+="Blue: Positively Charged

    ");let a=0;for(let e of r)s.parasCls.residueAbbrev[e[0]]&&(n+="
    ",n+="
    ",n+=s.parasCls.residueAbbrev[e[0]]+"
    ",a%4==3&&(n+="
    "),++a);n+="
    "}else"b factor"==e?(n+="
    B factor quantitates the uncertainty for each atom. A high B factor reflects that the position is less certain.

    ",n+=s.htmlCls.clickMenuCls.setLegendHtml()):"confidence"==e?n+=s.htmlCls.clickMenuCls.setLegendHtml(!0):"exon"==e?(t.startColor="red",t.midColor="white",t.endColor="blue",t.startValue="Start",t.midValue="Middle",t.endValue="End",n+=s.htmlCls.clickMenuCls.setLegendHtml()):n="";n?($("#"+s.pre+"dl_legend_html").html(n),s.htmlCls.dialogCls.openDlg("dl_legend","Color Legend")):$("#"+s.pre+"dl_legend").hasClass("ui-dialog-content")&&$("#"+s.pre+"dl_legend").dialog("isOpen")&&$("#"+s.pre+"dl_legend").dialog("close")}getColorLegendForElem(e,t){let s=this.icn3d,i=s.icn3dui,n="",l={};for(let e in t){let t=s.atoms[e],i=void 0===t||void 0===t.color||"FFFFFF"===t.color.getHexString().toUpperCase()?"DDDDDD":t.color.getHexString();void 0===l[t.elem]&&(l[t.elem]={}),l[t.elem][i]=1}if(Object.keys(l).length>0){n+=""+e+"
    ";let t=Object.keys(l).sort();for(let e=0,s=t.length;e";for(let e in l[s])n+="
    ";n+=i.parasCls.atomnames[s.toUpperCase()]+"

    "}n+="
    "}return n}getRes2color(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=s.firstAtomObjCls.getResiduesFromAtoms(e);for(let e in l){let l=s.residues[e],r=s.firstAtomObjCls.getFirstAtomObj(l),o=t?r.resn:i.parasCls.residueAbbrev[r.resn],a=void 0===r||void 0===r.color||"FFFFFF"===r.color.getHexString().toUpperCase()?"DDDDDD":r.color.getHexString();null!=o&&(void 0===n[o]&&(n[o]={}),n[o][a]=1)}return n}getColorLegendForResidue(e){this.icn3d.icn3dui;let t="",s=this.getRes2color(e);if(Object.keys(s).length>0){t+="
    ";let e=Object.keys(s).sort(),i="",n=0;for(let l=0,r=e.length;l";for(let e in s[o])r+="
    ";r+=o+"
    ",n%4==3&&(r+="
    "),-1!=o.indexOf("(")?(t+=r,++n):i+=r}i&&(t+="
    "+i),t+="
    "}return t}getColorLegendForCharge(e){let t=this.icn3d;t.icn3dui;let s="",i=t.firstAtomObjCls.getResiduesFromAtoms(e),n={};for(let e in i){let s=t.residues[e],i=t.firstAtomObjCls.getFirstAtomObj(s);"ARG"==i.resn||"LYS"==i.resn?n.Positive=1:"HIS"==i.resn?n["Partial-Positive"]=1:"ASP"==i.resn||"GLU"==i.resn||t.nucleotides[i.serial]?n.Negative=1:n.Neutral=1}const l={Positive:"0000ff","Partial-Positive":"8080ff",Negative:"ff0000",Neutral:"888888"};let r=["Positive","Partial-Positive","Negative","Neutral"];s+="
    ";for(let e=0,t=r.length;e",s+="
    ",s+=t,s+="
    ")}return s+="
    (Charges are at pH 7)",s+="
    ",s}getColorLegendForIgstrand(e){this.icn3d.icn3dui;let t="";const s={"A Strand":"9400D3","B Strand":"ba55d3","C Strand":"0000FF","C' Strand":"6495ED","C'' Strand":"006400","D Strand":"00FF00","E Strand":"FFD700","F Strand":"FF8C00","G Strand":"FF0000",Loop:"CCCCCC"};t+="
    ";for(let e in s){t+="",t+="
    ",t+=e,t+="

    "}return t+="
    ",t}getColorLegendForIgproto(e){this.icn3d.icn3dui;let t="";const s={"Protodomain 1":"","A Strand":"0000FF","B Strand":"006400","C Strand":"FFD700","C' Strand":"FF8C00","
    Linker":"","C'' Strand":"FF0000","
    Protodomain 2":"","D Strand":"0000FF","E Strand":"006400","F Strand":"FFD700","G Strand":"FF8C00","":"",Loop:"CCCCCC"};t+="
    A protodomain is a supersecondary structure
    that by its duplication, symmetry operations
    can generate a structural domain.

    ";for(let e in s){let i=s[e];t+="",i&&(t+="
    "),t+=e,t+="

    "}return t+="
    ",t}}class vt{constructor(e){this.icn3d=e}async showCddSiteAll(){let e=this.icn3d,t=e.icn3dui,s=this;e.chainid2pssmid={};let i=$.map(e.protein_chainid,(function(e){return e})),n=Object.keys(e.protein_chainid),l="https://www.ncbi.nlm.nih.gov/Structure/cdannots/cdannots.fcgi?fmt&frclive&live=lcl&queries="+i;if(1==Object.keys(e.structures).length&&!t.cfg.afid&&(t.cfg.mmtfid||t.cfg.pdbid||t.cfg.opmid||t.cfg.mmdbid||t.cfg.gi||t.cfg.uniprotid||t.cfg.blast_rep_id||t.cfg.cid||t.cfg.mmcifid)||2==Object.keys(e.structures).length&&t.cfg.align){let e={};try{t.bNode?e=await t.getAjaxPromise(l,"jsonp"):e.value=await t.getAjaxPromise(l,"jsonp"),s.parseCddData([e],n)}catch(e){return void s.getNoCdd(i)}}else{let i=[];for(let s=0,r=n.length;s',p=h,m=h,u=d.doms;n.bNode&&!i.resid2cdd[c]&&(i.resid2cdd[c]=[]),n.bNode&&!i.chainid2cdd[c]&&(i.chainid2cdd[c]=[]);let g=l.setDomainFeature(u,c,"domain",h,p,m);i.chainid2pssmid[c]={pssmid2name:g.pssmid2name,pssmid2fromArray:g.pssmid2fromArray,pssmid2toArray:g.pssmid2toArray};let f=g.acc2domain;h=g.html+"",p=g.html2+"",m=g.html3+"",$("#"+i.pre+"dt_cdd_"+c).html(h),$("#"+i.pre+"ov_cdd_"+c).html(p),$("#"+i.pre+"tt_cdd_"+c).html(m),h='
    ',p=h,m=h;let C=d.motifs;n.bNode&&!i.resid2site[c]&&(i.resid2site[c]=[]),g=l.setDomainFeature(C,c,"feat",h,p,m,f),h=g.html,p=g.html2,m=g.html3;let b=a.data[e].sites,y=void 0!==b?b.length:0;for(let e=0;e17&&(s=s.substr(0,17)+"...");let l,r=b[e].title,o=[];for(let t=0,s=b[e].locs.length;t'+s+"
    ",u=''+t.toString()+" Res",g='';m+=d+u+"
    ",h+=d+u+g,p+=d+u+g;let f="site"+e.toString(),C=0,y=0,v=1;i.seqStartLen&&i.seqStartLen[c]&&(p+=i.showSeqCls.insertMulGapOverview(c,i.seqStartLen[c])),i.seqStartLen&&i.seqStartLen[c]&&(h+=i.showSeqCls.insertMulGap(i.seqStartLen[c],"-"));for(let t=0,s=i.giSeq[c].length;t1&&(l=s[0]+"..");let r=i.ParserUtilsCls.getResi(c,t);if(h+=''+s+"",n.bNode){let t={};t[c+"_"+r]="site: "+b[e].title,i.resid2site[c].push(t)}p+=i.showSeqCls.insertGapOverview(c,t);let o=n.cfg.blast_rep_id==c?Math.round(i.seqAnnWidth*t/(i.maxAnnoLength+i.nTotalGap)-C-y):Math.round(i.seqAnnWidth*t/i.maxAnnoLength-C-y);o>=0&&(p+='
     
    ',p+='
     
    ',C+=o,y+=v)}else h+="-";i.seqStartLen&&i.seqStartLen[c]&&(h+=i.showSeqCls.insertMulGap(i.seqEndLen[c],"-")),g=' '+t.toString()+" Residues",g+="
    ",g+="
    ",h+=g,p+=g}h+="",p+="",m+="",$("#"+i.pre+"dt_site_"+c).html(h),$("#"+i.pre+"ov_site_"+c).html(p),$("#"+i.pre+"tt_site_"+c).html(m)}}for(let e in i.protein_chainid)r.hasOwnProperty(e)||($("#"+i.pre+"dt_cdd_"+e).html(""),$("#"+i.pre+"ov_cdd_"+e).html(""),$("#"+i.pre+"tt_cdd_"+e).html(""),$("#"+i.pre+"dt_site_"+e).html(""),$("#"+i.pre+"ov_site_"+e).html(""),$("#"+i.pre+"tt_site_"+e).html(""));i.showAnnoCls.enableHlSeq(),i.bAjaxCddSite=!0}getNoCdd(e){let t=this.icn3d;t.icn3dui,console.log("No CDD data were found for the protein "+e+"...");for(let e in t.protein_chainid)$("#"+t.pre+"dt_cdd_"+e).html(""),$("#"+t.pre+"ov_cdd_"+e).html(""),$("#"+t.pre+"tt_cdd_"+e).html(""),$("#"+t.pre+"dt_site_"+e).html(""),$("#"+t.pre+"ov_site_"+e).html(""),$("#"+t.pre+"tt_site_"+e).html("");t.showAnnoCls.enableHlSeq(),t.bAjaxCddSite=!0}getResiArrayStr(e,t){let s=this.icn3d;s.icn3dui;let i="";for(let n=0,l=e.length;n0&&(i+=","),i+=r.split("_")[2]}return i}setDomainFeature(e,t,s,i,n,l,r,o,a){let d,c,h,p=this.icn3d,m=p.icn3dui,u="domain"!=s&&"feat"!=s;"domain"==s&&(r={},d={},c={},h={}),void 0===e&&(e=[]);let g=e.length,f="domain"==s?14:19,C="domain"==s?100:120;e.sort((function(e,t){let i=e.locs,n="domain"==s||"ig"==s?i[0].segs:[i[0]],l=Math.round(n[0].from);return i=t.locs,n="domain"==s||"ig"==s?i[0].segs:[i[0]],l-Math.round(n[0].from)}));for(let b=0;bf&&(w=w.substr(0,f)+"...");let S=u?a[b]:s+": "+v;"domain"==s&&(d[g]=v);let A=e[b].locs;if(A)for(let e=0,r=A.length;e'+w+" ",I=''+u.toString()+" Res";l+=R+I+"
    ";let E='';i+=R+I+E,"domain"==s&&(n+='
    '),n+='
    '+w+"
    ",n+=I+E;let T=s+b.toString();if(p.seqStartLen&&p.seqStartLen[t]&&(i+=p.showSeqCls.insertMulGap(p.seqStartLen[t],"-")),m.bNode&&"domain"==s){let e=this.getResiArrayStr(r,t),s=this.getResiArrayStr(a,t);p.chainid2cdd[t].push(S+"_from_"+e+"_to_"+s)}for(let e=0,n=p.giSeq[t].length;e1&&(l=n[0]+"..");let r=p.ParserUtilsCls.getResi(t,e);if(i+=''+n+"",m.bNode){let e={};e[t+"_"+r]=S,"domain"==s?p.resid2cdd[t].push(e):p.resid2site[t].push(e)}}else i+="-";if(p.seqStartLen&&p.seqStartLen[t]&&(i+=p.showSeqCls.insertMulGap(p.seqEndLen[t],"-")),p.seqStartLen&&p.seqStartLen[t]&&(n+=p.showSeqCls.insertMulGapOverview(t,p.seqStartLen[t])),m.cfg.blast_rep_id!=t){let i;for(let l=0,d=r.length;l ',n+='
    '+v+"
    "}}else{let i=[],l=[];for(let e=0,t=r.length;e ',n+='
    '+v+"
    "}}E=' '+u.toString()+" Residues",E+="
    ",E+="
    ",i+=E,n+=E,"domain"==s&&(n+='')}}return{html:i,html2:n,html3:l,acc2domain:r,pssmid2name:d,pssmid2fromArray:c,pssmid2toArray:h}}getColorFromPos(e,t,s){let i,n=this.icn3d;n.icn3dui;let l=e+"_"+n.ParserUtilsCls.getResi(e,t),r=n.firstAtomObjCls.getFirstAtomObj(n.residues[l]),o=r&&void 0!==r.color&&"FFFFFF"!==r.color.getHexString()?r.color.getHexString():"DDDDDD";return i=r&&void 0!==r.color?o:"CCCCCC",i}showAnnoType(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui,a='
    ',d=a,c=a;if(0==n.length)return $("#"+r.pre+"dt_"+s+"_"+e).html(""),$("#"+r.pre+"ov_"+s+"_"+e).html(""),void $("#"+r.pre+"tt_"+s+"_"+e).html("");let h=i;i.length>17&&(i=i.substr(0,17)+"...");let p=[];for(let e=0,t=n.length;e'+i+"
    ",f=''+m.toString()+" Res";c+=g+f+"
    ";let C='';a+=g+f+C,d+=g+f+C;let b=s,y=0,v=0;r.seqStartLen&&r.seqStartLen[e]&&(d+=r.showSeqCls.insertMulGapOverview(e,r.seqStartLen[e])),r.seqStartLen&&r.seqStartLen[e]&&(a+=r.showSeqCls.insertMulGap(r.seqStartLen[e],"-"));for(let t=0,i=r.giSeq[e].length;t1&&(c=n[0]+"..");let h=i,p=e+"_"+i,m=n+i;if("ssbond"==s){m="Residue "+p+" has disulfide bond with";let t="";if(void 0!==l[p])for(let e=0,s=l[p].length;e'+c+"",d+=r.showSeqCls.insertGapOverview(e,t);let u=o.cfg.blast_rep_id==e?Math.round(r.seqAnnWidth*t/(r.maxAnnoLength+r.nTotalGap)-y-v):Math.round(r.seqAnnWidth*t/r.maxAnnoLength-y-v);u>=0&&(d+='
     
    ',d+='
     
    ',y+=u,v+=1)}else a+="-"}r.seqStartLen&&r.seqStartLen[e]&&(a+=r.showSeqCls.insertMulGap(r.seqEndLen[e],"-")),C=' '+m.toString()+" Residues",C+="",C+="
    ",a+=C,d+=C,a+="",d+="",c+="",$("#"+r.pre+"dt_"+s+"_"+e).html(a),$("#"+r.pre+"ov_"+s+"_"+e).html(d),$("#"+r.pre+"tt_"+s+"_"+e).html(c)}setToolTip(){let e=this.icn3d;e.icn3dui,$("[id^="+e.pre+"snp]").add("[id^="+e.pre+"clinvar]").add("[id^="+e.pre+"ssbond]").add("[id^="+e.pre+"crosslink]").tooltip({content:function(){return $(this).prop("title")},show:null,close:function(e,t){t.tooltip.hover((function(){$(this).stop(!0).fadeTo(400,1)}),(function(){$(this).fadeOut("400",(function(){$(this).remove()}))}))}})}}class _t{constructor(e){this.icn3d=e}showInteraction(e,t){this.icn3d.icn3dui,this.showInteraction_base(e,t)}showInteraction_base(e,t){let s=this.icn3d,i=s.icn3dui;i.bNode&&(s.resid2contact||(s.resid2contact={}),s.resid2contact[e]||(s.resid2contact[e]=[])),void 0===s.chainname2residues&&(s.chainname2residues={});let n=Object.keys(s.chains),l=e,r=Math.round(l.indexOf("_"));if(s.firstAtomObjCls.getFirstCalphaAtomObj(s.chains[l]),void 0===s.chainname2residues[l]){s.chainname2residues[l]={};let t=n.length;if(t>100&&void 0===i.cfg.mmdbid&&void 0===i.cfg.gi&&void 0===i.cfg.blast_rep_id&&void 0===i.cfg.align&&void 0===i.cfg.chainalign)return $("#"+s.pre+"dt_interaction_"+e).html(""),void $("#"+s.pre+"ov_interaction_"+e).html("");for(let e=0;e4)continue;let o,a=s.firstAtomObjCls.getFirstCalphaAtomObj(s.chains[t]);s.chemicals.hasOwnProperty(a.serial)?o="chemical":s.nucleotides.hasOwnProperty(a.serial)?o="nucleotide":s.ions.hasOwnProperty(a.serial)?o="ion":s.proteins.hasOwnProperty(a.serial)?o="protein":s.water.hasOwnProperty(a.serial)&&(o="water");let d=s.contactCls.getAtomsWithinAtom(i.hashUtilsCls.hash2Atoms(s.chains[l],s.atoms),i.hashUtilsCls.hash2Atoms(s.chains[t],s.atoms),4);if(0==Object.keys(d).length)continue;let c={};for(let e in d){let t=s.atoms[e];c[t.structure+"_"+t.chain+"_"+t.resi]=1}let h=t.substr(t.indexOf("_")+1)+"("+o+")";s.chainname2residues[l][h]=Object.keys(c)}}let o='
    ',a=o,d=o,c=0;for(let t in s.chainname2residues[e]){let n=s.chainname2residues[e][t];if(!n)continue;let l="Interact ."+t;l.length>17&&(l=l.substr(0,17)+"...");let r="Interact ."+t,h=[];for(let e=0,t=n.length;e'+l+"
    ",g=''+p.toString()+" Res";d+=u+g+"
    ";let f='';o+=u+g+f,a+=u+g+f;let C="inter"+c.toString(),b=0,y=0,v=1;s.seqStartLen&&s.seqStartLen[e]&&(a+=s.showSeqCls.insertMulGapOverview(e,s.seqStartLen[e])),s.seqStartLen&&s.seqStartLen[e]&&(o+=s.showSeqCls.insertMulGap(s.seqStartLen[e],"-"));for(let t=0,n=s.giSeq[e].length;t1&&(d=l[0]+"..");let c=n;if(o+=''+d+"",i.bNode){let t={};t[e+"_"+c]=r,s.resid2contact[e].push(t)}a+=s.showSeqCls.insertGapOverview(e,t);let h=i.cfg.blast_rep_id==e?Math.round(s.seqAnnWidth*t/(s.maxAnnoLength+s.nTotalGap)-b-y):Math.round(s.seqAnnWidth*t/s.maxAnnoLength-b-y);h>=0&&(a+='
     
    ',a+='
     
    ',b+=h,y+=v)}else o+="-"}s.seqStartLen&&s.seqStartLen[e]&&(o+=s.showSeqCls.insertMulGap(s.seqEndLen[e],"-")),f=' '+p.toString()+" Residues",f+="
    ",f+="
    ",o+=f,a+=f,++c}o+="",a+="",d+="",$("#"+s.pre+"dt_interaction_"+e).html(o),$("#"+s.pre+"ov_interaction_"+e).html(a),$("#"+s.pre+"tt_interaction_"+e).html(d),i.utilsCls.isMobile()?(s.hlSeqCls.selectSequenceMobile(),s.hlSeqCls.selectChainMobile()):s.hlSeqCls.selectSequenceNonMobile()}}class wt{constructor(e){this.icn3d=e}async showPTM(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui,o=this,a=e.substr(0,e.indexOf("_")),d=e.substr(e.indexOf("_")+1);if("afmem"==s){let t={Transmembrane:[{begin:i,end:n}]};this.setAnnoPtmTransmem("transmem",t,e)}else if(a.length>5){let t,i="https://www.ebi.ac.uk/proteins/api/features/"+a;try{t=await r.getAjaxPromise(i,"json"),o.parsePTM(t,e,s)}catch{return void o.getNoPTM(e,s)}}else{let t,i=a.substr(0,4).toLowerCase(),n="https://www.ebi.ac.uk/pdbe/api/mappings/uniprot/"+i;try{t=await r.getAjaxPromise(n,"json");let a="";l.UPResi2ResiPosPerChain||(l.UPResi2ResiPosPerChain={}),l.UPResi2ResiPosPerChain[e]={};let c=t[i].UniProt,h=!1;for(let t in c){let s=c[t].mappings;for(let i=0,n=s.length;i',o+=r,a+=r,s.substr(0,s.indexOf("_"));for(let d in t){let c=t[d],h=[],p=!1;for(let e=0,t=c.length;e5?h.push(e-1):i.UPResi2ResiPosPerChain&&i.UPResi2ResiPosPerChain[s][e]&&h.push(i.UPResi2ResiPosPerChain[s][e]),!p&&i.residues.hasOwnProperty(s+"_"+e)&&(p=!0)}if(0==h.length)continue;let m=h.length,u="ptm"==e?"PTM: "+d:"Transmembrane";u.length>17&&(u=u.substr(0,17)+"...");let g=d,f='
    '+u+"
    ",C=''+m.toString()+" Res",b='';a+=f+C+"
    ",r+=f+C+b,o+=f+C+b;let y=e+l.toString(),v=0,_=0,w=1;i.seqStartLen&&i.seqStartLen[s]&&(o+=i.showSeqCls.insertMulGapOverview(s,i.seqStartLen[s])),i.seqStartLen&&i.seqStartLen[s]&&(r+=i.showSeqCls.insertMulGap(i.seqStartLen[s],"-"));for(let e=0,t=i.giSeq[s].length;e1&&(l=t[0]+"..");let a=i.ParserUtilsCls.getResi(s,e);if(r+=''+t+"",n.bNode){let e={};e[s+"_"+a]=u,i.resid2ptm[s].push(e)}o+=i.showSeqCls.insertGapOverview(s,e);let d=n.cfg.blast_rep_id==s?Math.round(i.seqAnnWidth*e/(i.maxAnnoLength+i.nTotalGap)-v-_):Math.round(i.seqAnnWidth*e/i.maxAnnoLength-v-_);d>=0&&(o+='
     
    ',o+='
     
    ',v+=d,_+=w)}else r+="-";i.seqStartLen&&i.seqStartLen[s]&&(r+=i.showSeqCls.insertMulGap(i.seqEndLen[s],"-")),b=' '+m.toString()+" Residues",b+="
    ",b+="
    ",r+=b,o+=b,++l}r+="",o+="",a+="",$("#"+i.pre+"dt_"+e+"_"+s).html(r),$("#"+i.pre+"ov_"+e+"_"+s).html(o),$("#"+i.pre+"tt_"+e+"_"+s).html(a)}getNoPTM(e,t){let s=this.icn3d;s.icn3dui,console.log("No PTM data were found for the chain "+e+"...");let i="ptm"==t?"ptm":"transmem";$("#"+s.pre+"dt_"+i+"_"+e).html(""),$("#"+s.pre+"ov_"+i+"_"+e).html(""),$("#"+s.pre+"tt_"+i+"_"+e).html(""),s.showAnnoCls.enableHlSeq(),s.bAjaxPTM=!0}}class St{constructor(e){this.icn3d=e}async showIg(e,t){let s=this.icn3d;s.icn3dui,s.bRunRefnumAgain&&await s.refnumCls.showIgRefNum(t);let i="",n="",l="";if(s.bShowRefnum&&s.chainid2refpdbname.hasOwnProperty(e)&&s.chainid2refpdbname[e].length>0){let t=s.showSeqCls.getSeq(e),r=s.annoIgCls.showAllRefNum(t,e);i+=r.html,n+=r.html2,l+=r.html3}$("#"+s.pre+"dt_"+"ig_"+e).html(i),$("#"+s.pre+"ov_"+"ig_"+e).html(n),$("#"+s.pre+"tt_"+"ig_"+e).html(l)}showAllRefNum(e,t){let s=this.icn3d;s.icn3dui;let i="",n="",l="",r=!1;for(let i=0,n=e.length;i0){r=!0;break}}let o=!1;for(let i=0,n=e.length;i0){o=!0;break}}let a=this.showRefNum(e,t);i+=a.html,n+=a.html2,l+=a.html3;let d=1;return r&&(a=this.showRefNum(e,t,d),i+=a.html,n+=a.html2,l+=a.html3),d=2,o&&(a=this.showRefNum(e,t,d),i+=a.html,n+=a.html2,l+=a.html3),{html:i,html2:n,html3:l}}showRefNum(e,t,s,i){let n=this.icn3d;if(n.icn3dui,n.chainid2igtrack){if(!n.chainid2igtrack[t])return{html:"",html2:"",html3:""}}let l=this.getIgAnnoHtml(t,e,i,s);return n.bShowRefnum&&(n.opts.color="ig strand",n.setColorCls.setColorByOptions(n.opts,n.chains[t])),l}setChain2igArray(e,t,s){let i,n=this.icn3d;n.icn3dui;let l={};for(let r=0,o=t.length;r0&&s!=i+1&&(a.push(i),o.push(s)),i=s;a.push(s);let d={};d.domainid=t,d.startPosArray=o,d.endPosArray=a,n.chain2igArray[e].push(d)}}getIgAnnoHtml(e,t,s,i){let n=this.icn3d,l=n.icn3dui,r="",o="",a="";n.chain2igArray||(n.chain2igArray={});let d,c,h,p=!1,m="";n.chain2igArray[e]=[],this.setChain2igArray(e,t,s);let u=n.chain2igArray[e];for(let t=0,s=u.length;t=0;--t){let s=e+"_"+n.chainsSeq[e][t].resi;if(!n.residIgLoop.hasOwnProperty(s))break;delete n.resid2refnum[s],delete n.residIgLoop[s],delete n.resid2domainid[s]}}}n.chain2igArray[e]=[],this.setChain2igArray(e,t,s);let g="";for(let l=0,r=t.length;l'+h+"":' '}else g+="";else if(1==i||2==i)if(h){let e=parseInt(h).toString(),t='style="color:'+this.getRefnumColor(m,!0)+'"';g+=parseInt(e.substr(e.length-2,2))%2==0?"'+h+"":" '}else g+="";else" "!=m?(p=n.residIgLoop[t],g+=this.getRefnumHtml(t,h,c,d,m,p,o)):g+="";else g+=""}if(l.bNode)return{html:r,html2:o,html3:a};let f="icn3d-link icn3d-blue",C="IgStRAnD Ref. No.",b=n.chain2igArray[e].length,y=[],v=[],_={};n.igLabel2Pos||(n.igLabel2Pos={}),n.igLabel2Pos[e]={};for(let t=0;t",S='
    ';s&&(S='
    ');let A='
    '+C+"
    ";if(S+='
    ',s?(S+='
    Custom Ref. No.
    ',S+=''):1==i?(S+='
    Kabat Ref. No.
    ',S+=''):2==i?(S+='
    IMGT Ref. No.
    ',S+=''):(S+=A,S+=w),a+=S+"
    ",r+=S+'',n.seqStartLen&&n.seqStartLen[e]&&(r+=n.showSeqCls.insertMulGap(n.seqStartLen[e],"-")),r+=g,n.seqStartLen&&n.seqStartLen[e]&&(r+=n.showSeqCls.insertMulGap(n.seqEndLen[e],"-")),s||(r+=w),r+="",r+="
    ",r+="
    ",r+="
    ",u=n.chain2igArray[e],0==u.length)return{html:r,html2:o,html3:a};let x=[],k=[],O=[],R=[],I=e.substr(e.lastIndexOf("_")+1);for(let e=0,t=u.length;e',n.seqStartLen&&n.seqStartLen[e]&&(o+=n.showSeqCls.insertMulGapOverview(e,n.seqStartLen[e]));for(let i=0,l=y.length;i 
    ',o+='
    '+R[r]+"
    ",t=r}o+=w,o+="",a+="",S='
    ';let i=S,l=S,d=n.annoCddSiteCls.setDomainFeature(x,e,"ig",S,i,l,void 0,k,O);r+=d.html+"
    ",o+=d.html2+"",a+=d.html3+""}return{html:r,html2:o,html3:a}}getRefnumHtml(e,t,s,i,n,l,r){let o=this.icn3d,a=o.icn3dui,d=parseInt(t).toString(),c=(d-1e3*parseInt(d/1e3)).toString(),h=parseInt(d.toString().substr(0,2)),p="5"!=c.substr(0,1)&&"18"!=h,m=this.getRefnumColor(n,!0),u=l?'style="color:'+m+'"':'style="color:'+m+'; text-decoration: underline overline;"',g=d.substr(d.length-2,2),f=parseInt(g);parseInt(d.substr(d.length-3,3));let C="";return!i||50!=f||p||l?i&&f%2==0&&52!=f&&!r?(g=isNaN(t)?g+t.substr(t.length-1,1):g,C+="'+g+""):C+=" ':(o.hAtomsRefnum=a.hashUtilsCls.unionHash(o.hAtomsRefnum,o.residues[e]),C+="'+i.substr(0,1)+""+i.substr(1)+""),C}getRefnumColor(e,t){let s=this.icn3d.icn3dui,i=e?e.substr(0,1):"";return"C"==e?"#0000FF":"C'"==e?"#6495ED":"C''"==e?"#006400":"A"==i?"#9400D3":"B"==i?"#ba55d3":"D"==i?"#00FF00":"E"==i?"#FFD700":"F"==i?"#FF8C00":"G"==i?"#FF0000":s.htmlCls.GREYB}getProtodomainColor(e){let t=this.icn3d.icn3dui,s=e?e.substr(0,1):"";return"A"==s||"D"==s?"#0000FF":"B"==s||"E"==s?"#006400":"C"==e||"F"==s?"#FFD700":"C'"==e||"G"==s?"#FF8C00":"C''"==e?"#FF0000":t.htmlCls.GREYB}}class At{constructor(e){this.icn3d=e}showCrosslink(e,t){let s=this.icn3d;s.icn3dui;let i=this;void 0===s.clbondpnts?setTimeout((function(){i.showCrosslink_base(e,t)}),1e3):this.showCrosslink_base(e,t)}showCrosslink_base(e,t){let s=this.icn3d;s.icn3dui.bNode&&(s.resid2crosslink||(s.resid2crosslink={}),s.resid2crosslink[e]||(s.resid2crosslink[e]=[]));let i=t,n={},l=i.substr(0,i.indexOf("_")),r=s.clbondpnts[l];if(void 0===r)return $("#"+s.pre+"dt_crosslink_"+e).html(""),$("#"+s.pre+"ov_crosslink_"+e).html(""),void $("#"+s.pre+"tt_crosslink_"+e).html("");for(let e=0,t=r.length;e',a=o,d=o,c=e.indexOf("_"),h=e.substr(c+1);h.length>1&&"1"==h.substr(h.length-1)&&(h=h.substr(0,h.length-1)),n=e,i=t.domains[e]?t.domains[e].domains:[];for(let t=0,c=i.length;t17?c.substr(0,17)+"...":c,p=i[t].intervals,m=[],u=[],g={},f=0;for(let t=0,s=p.length;t'+h+" ",b=''+f.toString()+" Res";d+=C+b+"
    ";let y='';o+=C+b+y,a+=C+b+y;let v="domain3d"+t.toString();l.seqStartLen&&l.seqStartLen[e]&&(o+=l.showSeqCls.insertMulGap(l.seqStartLen[e],"-"));for(let t=0,s=l.giSeq[e].length;t1&&(n=i[0]+"..");let r=s;o+=''+i+""}else o+="-"}l.seqStartLen&&l.seqStartLen[e]&&(o+=l.showSeqCls.insertMulGap(l.seqEndLen[e],"-"));let _=l.firstAtomObjCls.getFirstCalphaAtomObj(l.chains[e]),w=void 0===_.color||"FFFFFF"===_.color.getHexString()?"DDDDDD":_.color.getHexString(),S=void 0!==_.color?w:"CCCCCC";if(l.seqStartLen&&l.seqStartLen[e]&&(a+=l.showSeqCls.insertMulGapOverview(e,l.seqStartLen[e])),r.cfg.blast_rep_id!=e)for(let s=0,i=m.length;s ',a+='"}else{let s=[],i=[];for(let e=0,t=m.length;e ',a+='"}}y=' '+f.toString()+" Residues",y+="",y+="
    ",o+=y,a+=y}if(s||(o+="",a+="",d+="",$("#"+l.pre+"dt_domain_"+e).html(o),$("#"+l.pre+"ov_domain_"+e).html(a),$("#"+l.pre+"tt_domain_"+e).html(d)),s&&l.chainid2clashedResidpair){l.clashedResidHash={};for(let e in l.chainid2clashedResidpair){let t=e.split("|"),s=l.chainid2clashedResidpair[e].split("|");parseInt(s[0])0){let s={};for(let i in e.clashedResidHash)s=t.hashUtilsCls.unionHash(s,e.residues[i]);e.bHideClashed?e.hAtoms=t.hashUtilsCls.exclHash(e.hAtoms,s):e.hAtoms=t.hashUtilsCls.unionHash(e.hAtoms,s),e.dAtoms=t.hashUtilsCls.cloneHash(e.hAtoms)}}getMoreResidues(e,t,s,i){let n=this.icn3d;n.icn3dui;let l={};for(let r=1;r<100;++r){let o=t+"_"+(e+s*r).toString(),a=n.firstAtomObjCls.getFirstAtomObj(n.residues[o]);if(a){let e=!1;if("not coil"==i?e="coil"!=a.ss:"ssbegin"==i?e=a.ssbegin:"ssend"==i&&(e=a.ssend),e)break;l[o]=1}}return l}}class kt{constructor(e){this.icn3d=e}async showSnp(e,t){this.icn3d.icn3dui,await this.showSnpClinvar(e,t,!0)}async showClinvar(e,t){this.icn3d.icn3dui,await this.showSnpClinvar(e,t,!1)}async showSnpClinvar(e,t,s){let i=this.icn3d.icn3dui,n=this,l=i.htmlCls.baseUrl+"vastdyn/vastdyn.cgi?chainid="+t;try{let r=await i.getAjaxPromise(l,"jsonp"),o=r.snpgi,a=r.gi;if(s)await n.showSnpPart2(e,t,o);else{let s=o;[6137708,1942289,224510717,2624886,253723219,2554905,75765331,3660278,312207882,319443632,342350956,1827805,109157826,1065265,40889086,6730307,163931185,494469,163931091,60594093,55669745,18655489,17942684,6980537,166235465,6435586,4139398,4389047,364506122,78101667,262118402,20664221,2624640,158430173,494395,28948777,34810587,13399647,3660342,261278854,342350965,384482350,378792570,15988303,213424334,4558333,2098365,10835631,3318817,374074330,332639529,122919696,4389286,319443573,2781341,67464020,194709238,210061039,364506106,28949044,40889076,161172338,17943181,4557976,62738484,365813173,6137343,350610552,17942703,576308,223674070,15826518,1310997,93279697,4139395,255311799,157837067,361132363,357380836,146387678,383280379,1127268,299856826,13786789,1311054,46015217,3402130,381353319,30750059,218766885,340707375,27065817,355333104,2624634,62738384,241913553,304446010].includes(a)&&(s=a),await n.showClinvarPart2(e,t,s)}}catch(t){return void(s?n.processNoSnp(e):n.processNoClinvar(e))}}navClinVar(e){let t=this.icn3d;t.icn3dui;let s=this;t.currClin[e]=-1,$(document).on("click","#"+t.pre+e+"_prevclin",(function(t){let i=s.icn3d;t.stopImmediatePropagation();let n=void 0!==i.resi2disease_nonempty[e]?Object.keys(i.resi2disease_nonempty[e]).length:0;--i.currClin[e],i.currClin[e]<0&&(i.currClin[e]=n-1),s.showClinVarLabelOn3D(e)})),$(document).on("click","#"+t.pre+e+"_nextclin",(function(t){let i=s.icn3d;t.stopImmediatePropagation();let n=void 0!==i.resi2disease_nonempty[e]?Object.keys(i.resi2disease_nonempty[e]).length:0;++i.currClin[e],i.currClin[e]>n-1&&(i.currClin[e]=0),s.showClinVarLabelOn3D(e)}))}showClinVarLabelOn3D(e){let t,s,i=this.icn3d,n=i.icn3dui,l=Object.keys(i.resi2disease_nonempty[e]);t=e,s=t+"_"+(parseInt(l[i.currClin[e]])+i.baseResi[e]).toString();let r="",o=i.resi2disease_nonempty[e][l[i.currClin[e]]];for(let e=0,t=o.length;e0?o[0]:"N/A");let a=i.applyCenterCls.centerAtoms(n.hashUtilsCls.hash2Atoms(i.residues[s],i.atoms));r.length>30&&(r=r.substr(0,30)+"..."),i.selectionCls.removeSelection(),null==i.labels&&(i.labels={}),i.labels.clinvar=[];let d=i.LABELSIZE,c="black"!=i.opts.background?i.colorWhitebkgd:i.colorBlackbkgd;i.analysisCls.addLabel(r,a.center.x+1,a.center.y+1,a.center.z+1,d,c,void 0,"clinvar"),i.hAtoms={};for(let e in i.residues[s])i.hAtoms[e]=1;$("#clinvar_"+i.pre+s).addClass("icn3d-highlightSeq"),void 0===$("#"+i.pre+"modeswitch")[0]||$("#"+i.pre+"modeswitch")[0].checked||i.definedSetsCls.setMode("selection"),i.drawCls.draw()}getSnpLine(e,t,s,i,n,l,r,o,a,d,c,h,p,m,u,g){let f=this.icn3d,C=f.icn3dui,b="",y=m?"clinvar":"snp",v=!1;for(let e in i){for(let t=0,s=i[e].length;t(from human)",i=" (based on human sequences and mapped to this structure by sequence similarity)"),b+=m?'":'"}else if(2==e&&m){let e=C.utilsCls.isMobile()?"none":"button";b+='
    ',b+='
    '}else b+='
    ';let _=y,w=0,S=0,A={},x={},k=f.firstAtomObjCls.getResiduesFromAtoms(f.chains[h]);for(let t in k){let i=t.split("_")[2];if(void 0!==r[i]){++w;let t="";for(let n=0,r=s[i].length;n'+O+" Res":'',u)return b+"
    ";b+='';let R="",I=0,E=0;p?f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGapOverview(h,f.seqStartLen[h])):f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGap(f.seqStartLen[h],"-"));for(let t=1,a=f.giSeq[h].length;t<=a;++t){let a=f.ParserUtilsCls.getResi(h,t-1),d=a;if(p){if(void 0!==r[d]){let e=f.giSeq[h][t-1],i=e;e.length>1&&(i=e[0]+"..");let n=a+i+">";for(let e=0,t=s[d].length;e=0&&(b+='
     
    ',b+='
     
    ',I+=r,E+=1):r>0&&(b+='
     
    ',b+='
     
    ',I+=r,E+=1)}}else if(b+=f.showSeqCls.insertGap(h,t-1,"-"),void 0!==r[d])if(m||1!=e){let r=f.giSeq[h][t-1],c=r;r.length>1&&(c=r[0]+"..");let p,u="",y="
    ",v=s[d].length,w=0,S=0;if(2==e&&(w=0,S=v),m){p=1;let t=0;for(let e=w;e0?w+="; ":0!==e&&1!==e||(R='disease="'+b[t]+'"'),w+=b[t],""!=_[t]&&(w+="("+_[t]+")"),++S;t"+s[d][e],y+=": "+w,g&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(r,"snpin3d","3D with scap","SNP in 3D with scap",70,m)+"  ",y+=f.showAnnoCls.addSnpButton(r,"snpinter","Interactions","SNP Interactions in 3D",70,m)+"  ",y+=f.showAnnoCls.addSnpButton(r,"snppdb","PDB","Download SNP PDB",35,m)),y+="
    Links: ClinVar",0!=i[d][e]&&(y+=", dbSNP(rs"+i[d][e]+")"),e
    "),++t}t>p&&2==e&&(u+="..")}else{p=1;for(let e=w;e"+s[d][e],g)m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),0!=i[d][e]&&(y+="
    Link: dbSNP(rs"+i[d][e]+")"),e
    ");else{let s=l[d][e].split("; "),a=o[d][e].split("; "),c="",h=0;for(let t=0,i=s.length;t0?c+="; ":0!==e&&1!==e||(R='disease="'+s[t]+'"'),c+=s[t],""!=a[t]&&(c+="("+a[t]+")"),++h;""!=c?(y+=": "+c,m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),y+="
    Links: ClinVar, dbSNP(rs"+i[d][e]+")"):(m&&!C.cfg.hidelicense&&(y+="
    "+f.showAnnoCls.addSnpButton(t,"snpin3d","3D with scap","SNP in 3D with scap",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snpinter","Interactions","SNP Interactions in 3D",70,r)+"  ",y+=f.showAnnoCls.addSnpButton(t,"snppdb","PDB","Download SNP PDB",35,r)),y+="
    Link: dbSNP(rs"+i[d][e]+")"),e
    ")}}v>p&&2==e&&(u+="..")}y+="
    ",b+=m?1==e?"":""==u||" "==u?"-":''+u+"":""==u||" "==u?"-":g?''+u+"":''+u+""}else b+="";else b+="-"}return p||f.seqStartLen&&f.seqStartLen[h]&&(b+=f.showSeqCls.insertMulGap(f.seqEndLen[h],"-")),b+=1==e?' '+O+" Residues":'',b+="
    ",b+="
    ",b}processSnpClinvar(e,t,s,i,n){let l=this.icn3d,r=l.icn3dui,o='
    ',a=o,d=o,c='
    ',h=c,p=c,m=!i||n?e.data:e.split("\n"),u={},g={},f={};void 0===l.resi2disease_nonempty[t]&&(l.resi2disease_nonempty[t]={});let C={},b={},y={},v={},_={},w="";r.bNode&&(i?(l.resid2snp||(l.resid2snp={}),l.resid2snp[t]||(l.resid2snp[t]=[])):(l.resid2clinvar||(l.resid2clinvar={}),l.resid2clinvar[t]||(l.resid2clinvar[t]=[])));let S={};for(let e=0,s=m.length;e5&&(d=parseInt(s[5])):s.length>8&&(d=parseInt(s[8])),o==w)continue;w=o;let c=o.indexOf(">"),h=o.substr(0,c-1),p=Math.round(h),A=d?p:l.ParserUtilsCls.getResi(t,p-1),x=A+o.substr(c-1);if(S.hasOwnProperty(x))continue;S[x]=1;let k=o.substr(c-1,1),O=l.firstAtomObjCls.getFirstAtomObj(l.residues[t+"_"+A]),R=O?r.utilsCls.residueName2Abbr(O.resn.substr(0,3)):"";if(d||(R=l.chainsSeq[t][p-1].name),k!=R)continue;if(r.bNode){let e={};e[t+"_"+A]=x,i?l.resid2snp[t].push(e):l.resid2clinvar[t].push(e)}let I=x.substr(x.indexOf(">")+1),E=i?"":s[5],T=i?"":s[6],P=i?"":s[7];v[A]=1,""!=T&&(_[A]=1),g[A]=e+1,void 0===u[A]&&(u[A]=[]),u[A].push(I),void 0===b[A]&&(b[A]=[]),b[A].push(a),void 0===y[A]&&(y[A]=[]),y[A].push(E),void 0===f[A]&&(f[A]=[]),f[A].push(T),""!=T&&(void 0===l.resi2disease_nonempty[t][A]&&(l.resi2disease_nonempty[t][A]=[]),l.resi2disease_nonempty[t][A].push(T)),void 0===C[A]&&(C[A]=[]),C[A].push(P)}let A=Object.keys(v),x=Object.keys(_);if(i){let e=!1;o+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,void 0,i),o+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,void 0,i),d+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,!0,i),d+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,!0,i),a+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!0,e,void 0,i),o+="
    ",a+="
    ",d+="",$("#"+l.pre+"dt_snp_"+t).html(o),$("#"+l.pre+"ov_snp_"+t).html(a),$("#"+l.pre+"tt_snp_"+t).html(d)}else{let e=!0;c+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,void 0,i),c+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,void 0,i),p+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!1,e,!0,i),p+=this.getSnpLine(2,2,u,b,y,f,g,C,A,x,0,t,!1,e,!0,i),h+=this.getSnpLine(1,2,u,b,y,f,g,C,A,x,1,t,!0,e,void 0,i),c+="",h+="",p+="",$("#"+l.pre+"dt_clinvar_"+t).html(c),$("#"+l.pre+"ov_clinvar_"+t).html(h),$("#"+l.pre+"tt_clinvar_"+t).html(p),this.navClinVar(t,s)}l.showAnnoCls.enableHlSeq(),i?l.bAjaxSnp=!0:l.bAjaxClinvar=!0}async showClinvarPart2(e,t,s){let i=this.icn3d,n=i.icn3dui,l=this;i.chainid2uniport||await this.getUniprotForAllStructures();let r=n.htmlCls.baseUrl+"vastdyn/vastdyn.cgi?chainid_clinvar="+t+"&uniprot="+i.chainid2uniport[t];i.chainsGene[e]&&i.chainsGene[e].geneSymbol&&(r+="&gene="+i.chainsGene[e].geneSymbol);try{let s=await n.getAjaxPromise(r,"jsonp");if(s&&s.data&&s.data.length>0){let i=!1,n=s;l.processSnpClinvar(n,e,t,i)}else l.processNoClinvar(e)}catch(t){return void l.processNoClinvar(e)}}async getUniprotForAllStructures(){let e=this.icn3d,t=e.icn3dui;e.chainid2uniport={};for(let s in e.structures)if(s.length>5){let t=e.structures[s];for(let i=0,n=t.length;i0){let s=!0,n=!0;l.processSnpClinvar(i,e,t,s,n)}else l.processNoSnp(e)}catch(t){return void l.processNoSnp(e)}}else this.processNoSnp(e),console.log("No gi was found for the chain "+t+"...")}processNoClinvar(e){let t=this.icn3d;t.icn3dui,console.log("No ClinVar data were found for the protein "+e+"..."),$("#"+t.pre+"dt_clinvar_"+e).html(""),$("#"+t.pre+"ov_clinvar_"+e).html(""),t.showAnnoCls.enableHlSeq(),t.bAjaxClinvar=!0}processNoSnp(e){let t=this.icn3d;t.icn3dui,console.log("No SNP data were found for the protein "+e+"..."),$("#"+t.pre+"dt_snp_"+e).html(""),$("#"+t.pre+"ov_snp_"+e).html(""),t.showAnnoCls.enableHlSeq(),t.bAjaxSnp=!0}}class Ot{constructor(e){this.icn3d=e}showSsbond(e,t){let s=this.icn3d;s.icn3dui;let i=this;void 0===s.ssbondpnts?setTimeout((function(){i.showSsbond_base(e,t)}),1e3):this.showSsbond_base(e,t)}showSsbond_base(e,t){let s=this.icn3d;s.icn3dui.bNode&&(s.resid2ssbond||(s.resid2ssbond={}),s.resid2ssbond[e]||(s.resid2ssbond[e]=[]));let i=t,n={},l=i.substr(0,i.indexOf("_")),r=s.ssbondpnts[l];if(void 0===r)return $("#"+s.pre+"dt_ssbond_"+e).html(""),$("#"+s.pre+"ov_ssbond_"+e).html(""),void $("#"+s.pre+"tt_ssbond_"+e).html("");for(let e=0,t=r.length;e-s.halfBilayerSize){i[t.structure+"_"+t.chain+"_"+t.resi]=1}}let n=Object.keys(i);s.annoCddSiteCls.showAnnoType(e,t,"transmem","Transmembrane",n)}}class It{constructor(e){this.icn3d=e,this.init3ddomain()}init3ddomain(){this.icn3d.icn3dui,this.dcut=8,this.min_contacts=2,this.MAX_SSE=512,this.ctc_cnt=[];for(let e=0;e=this.curr_ratio+.01||f>this.split_ratio)return e;if(f>this.curr_ratio-.01&&Math.min(m,u)=0&&l[i]==t-e+i;i--);if(i<0)break;for(l[i]++,s=i+1;s-1;i++);for(l=Math.min(i-1,this.max_csz),this.curr_ne0=this.curr_ne1=0,this.curr_ratio=100,s=1;s<=l;s++)this.cut_size(s,i);if(this.top--,0==this.curr_ne0){for(n=this.stack[this.top],e=n;e-1;e++)this.parts[this.np++]=this.elements[e];this.parts[this.np++]=-1,this.n_doms++}else{if(this.save_ratios[this.saved++]=this.curr_ratio,this.curr_ne0>this.min_sse){for(n=this.stack[this.top],e=0;ethis.min_sse){for(n=this.stack[this.top],e=0;e0;)this.process_set()}output(e){let t,s;this.icn3d.icn3dui;let i=[];for(t=0;t<2*e;t++)i.push(0);for(t=s=0;st+n)break;let p=(t-a)*(t-a);p+=(s-c)*(s-c),p+=(i-h)*(i-h);let m=Math.sqrt(p);if(m>n)continue;let u={},g={};parseInt(e.rnum)this.MAX_SSE)return o=this.standardizeSubstruct(p,o,u),{subdomains:a,substruct:o};let f=h.length,C=f,b=this.c2b_AlphaContacts(f,i,n,l,t,r),y=[];for(let e=0;e=this.min_contacts&&(k[s]||(k[s]={}),k[i]||(k[i]={}),k[s][i]=1,k[i][s]=1)}let O=0,R={};this.groupnum2sheet={},this.visited={};for(let e in k)this.visited[e]=!1;for(let e in k)0==this.visited[e]&&(O++,this.countUtil(e,k,O));for(let e in this.groupnum2sheet){let t=this.groupnum2sheet[e].sort((function(e,t){return e-t}));for(let e=0,s=t.length;e0&&this.elt_size[s.sse-1]>=6&&0!=s.adj_strand2&&e++}for(let e=0;e0)for(let e=0;e0){let e=0;for(let t=0;t<=T;t++){let t=[];for(;e<2*g;){let s=this.parts[e++];if(0==s){P.push(t);break}t.push(s)}}}P.sort((function(e,t){return e[0]-t[0]}));let D=[];for(let e=0,t=P.length;e=this.min_sse&&D.push(P[e])}if(P=D,0==P.length){let e={},t={},s=0;for(let i=0,n=this.group_num.length;i=3&&(s=n)):e[n]=1)}if(0!=s){let e=[s].concat(t[s]);P.push(e)}}for(let e=0,t=P.length;e=o.length)return o=this.standardizeSubstruct(p,o,u),{subdomains:a,substruct:o};let n=o[i],l=n.From,r=n.To;for(let e=l;e<=r;e++)s[e]=1;if(0==i&&l>1)for(let e=1;e0){let e=o[i-1].To,t=parseInt(.5*(l-e-1));if(t>0)for(let e=l-t;e<=l-1;e++)s[e]=1}if(i0)for(let e=r+1;e<=r+t;e++)s[e]=1}}let i,n=!1,l=[];for(let e=0;ec&&(c=p),i.ssend&&(o.To=e+1,o.x2=i.coord.x,o.y2=i.coord.y,o.z2=i.coord.z,o.Sheet="sheet"==i.ss,r.push(o),o={}),i.ssbegin&&(o.From=e+1,o.x1=i.coord.x,o.y1=i.coord.y,o.z1=i.coord.z)}r=this.standardizeSubstruct(l,r,a);let h='{"data": [';h+='{"ss": [';let p=0;for(let e=0,s=r.length;e0&&(h+=", "),h+="["+s+","+i+","+n+","+r[e].x1.toFixed(2)+","+r[e].y1.toFixed(2)+",",h+=r[e].z1.toFixed(2)+","+r[e].x2.toFixed(2)+","+r[e].y2.toFixed(2)+","+r[e].z2.toFixed(2)+"]",++p)}h+="]",h+=', "domain": [';let m=0;for(let e=d;e<=c;++e){let n=l+"_"+e,r=t.ncbi2resid[n];r.split("_")[2];let o=e;if(m>0&&(h+=", "),i.hasOwnProperty(r)){let e=t.firstAtomObjCls.getFirstCalphaAtomObj(t.residues[r]);h+="["+o+","+(s.parasCls.resn2restype[e.resn]?s.parasCls.resn2restype[e.resn]:0)+","+e.coord.x.toFixed(2)+","+e.coord.y.toFixed(2)+","+e.coord.z.toFixed(2)+"]"}else h+="["+o+",0,0,0,0]";++m}return h+="]}",h+="]}",h}}class Et{constructor(e){this.icn3d=e}clickAddTrackButton(){let e=this.icn3d,t=e.icn3dui,s=this;t.myEventCls.onIds("#"+e.pre+"addtrack_button1","click",(async function(e){let i=s.icn3d;e.stopImmediatePropagation(),dialog.dialog("close");let n=$("#"+i.pre+"track_chainid").val(),l=$("#"+i.pre+"track_gi").val(),r=isNaN(l)?"Acc "+l:"gi "+l,o=t.htmlCls.baseUrl+"pwaln/pwaln.fcgi?from=track",a={targets:n,queries:l},d=await t.getAjaxPostPromise(o,a);s.alignSequenceToStructure(n,d,r)})),t.myEventCls.onIds("#"+e.pre+"addtrack_button2","click",(async function(e){let i=s.icn3d;e.stopImmediatePropagation(),dialog.dialog("close");let n=$("#"+i.pre+"track_chainid").val(),l=$("#"+i.pre+"track_fasta").val(),r=$("#"+i.pre+"fasta_title").val(),o=n.substr(0,n.indexOf("_")),a=n;if(5==o.length)a=a.substr(0,4);else if(o.length>5){a="";for(let e=0,t=i.chainsSeq[n].length;e8||d.length<6)&&(a=!1),d.length<9&&(o=!1),d[0];let c,h,p=d[1],m=d[2],u=d[3];d.length,d.length>5&&(c=d[5]),d.length,d.length,d.length>8&&(h=d[8]),d.length,d.length,d.length;let g=u,f="51,51,51";o?f=h:a&&("+"==c&&l.length>0?f=l[0]:"-"==c&&l.length>1?f=l[1]:"."==c&&l.length>2&&(f=l[2]));let C="",b=[];for(let e=0,t=m;e1&&(s=t[0]);let l=i.ParserUtilsCls.getResi(n,e);if(a.hasOwnProperty(n+"_"+l)){let e=i.firstAtomObjCls.getFirstCalphaAtomObj(i.residues[n+"_"+l]),t=void 0===e.color||"FFFFFF"===e.color.getHexString().toUpperCase()?"DDDDDD":e.color.getHexString(),o=void 0!==e.color?t:"CCCCCC";r+=s,d.push("#"+o)}else r+="-",d.push("")}s.showNewTrack(n,l,r,d,void 0,"selection",void 0),t.htmlCls.clickMenuCls.setLogCmd("add track | chainid "+n+" | title "+l+" | text "+s.simplifyText(r)+" | type selection",!0)}))}showNewTrack(e,t,s,i,n,l,r,o,a,d,c,h,p){let m=this.icn3d,u=m.icn3dui,g=!1;"cannot be aligned"==s&&(g=!0);let f=s.replace(/-/g,"").length;if(!o)if(s.length>m.giSeq[e].length)s=s.substr(0,m.giSeq[e].length);else if(s.length20&&(C=C.substr(0,20));let b=u.htmlCls.RESIDUE_WIDTH*s.length+200;$("#"+m.pre+"dt_custom_"+e).append("
    "),$("#"+m.pre+"dt_custom_"+e+"_"+C).width(b),$("#"+m.pre+"ov_custom_"+e).append("
    "),$("#"+m.pre+"ov_custom_"+e+"_"+C).width(b),$("#"+m.pre+"tt_custom_"+e).append("
    "),$("#"+m.pre+"tt_custom_"+e+"_"+C).width(b);let y='
    ',v=y,_=y,w=y,S=y,A=parseInt(10*Math.random()),x='",k='
    Exons
    ',O=''+f.toString()+" Pos";w+=x+O+"
    ",S+=k+O+"
    ";let R='';y+=x+O+R,v+=k+O+R,_+=x+O+R;let I=e.indexOf("_"),E="cst"+e.substr(I+1),T=0,P=0,D=(void 0===l||"seq"===l||"custom"===l)&&-1==s.indexOf("cannot-be-aligned")&&-1==s.indexOf("cannot be aligned"),M="identity"===l&&-1==s.indexOf("cannot-be-aligned")&&-1==s.indexOf("cannot be aligned"),F={},H=0;x="";let L={},N={},q={},U=0;if(h)for(let e=0,t=h.length;e"+d+"",h){let t='style="background-color:'+L[U]+'"';v+=' ";for(let t in m.residues[e+"_"+g]){let e=m.atoms[t];e.color=u.parasCls.thr(L[U]),m.atomPrevColors[t]=e.color}}x+=m.showSeqCls.insertGapOverview(e,t);let f=Math.round(m.seqAnnWidth*t/(m.maxAnnoLength+m.nTotalGap)-T-P);f<0&&(f=0),x+='
     
    ',s=void 0!==i&&""!=i[t]?i[t]:r?"rgb("+r+")":D?"#"+c:"#333",x+='
     
    ',T+=f,P+=1,++U}else g?y+=""+d+"":(y+="-",v+="")}if(void 0!==a){x="";let s=[],i=[],n=[];for(let e=0,t=a.length;e 
    ',h){let t,s,i=n[r];l=d[r]-a[r]+1;let o,c,p,m=g,u=g+l-1;g+=l;for(let e=0,i=h.length;e=i&&m<=n&&(t={exonIndex:e,rangeStart:i,rangeEnd:n,from:m,genomeRange:h[e].genomeRange}),u>=i&&u<=n&&(s={exonIndex:e,rangeStart:i,rangeEnd:n,to:u,genomeRange:h[e].genomeRange})}if(t&&s&&t.exonIndex==s.exonIndex)o=this.getExonColor(t.rangeStart,t.rangeEnd,m),c=this.getExonColor(t.rangeStart,t.rangeEnd,u),p=o+" 0%, #FFF 50%, "+c+" 100%",x+=this.getExonHtml(t.exonIndex,p,t.from,s.to,t.genomeRange,e,C,i);else if(t&&(o=this.getExonColor(t.rangeStart,t.rangeEnd,m),p=o+" 0%, #FFF 50%, #00F 100%",x+=this.getExonHtml(t.exonIndex,p,t.from,t.rangeEnd,t.genomeRange,e,C,i)),t&&s){for(let n=t.exonIndex+1;n'+t+""}}R=''+f.toString()+" Pos",R+="",R+="
    ",R+="",y+=R,_+=x+R,v+=R,w+="",S+="",h?($("#"+m.pre+"dt_custom_"+e+"_"+C).html(v+y),$("#"+m.pre+"ov_custom_"+e+"_"+C).html(_),$("#"+m.pre+"tt_custom_"+e+"_"+C).html(S+w)):($("#"+m.pre+"dt_custom_"+e+"_"+C).html(y),$("#"+m.pre+"ov_custom_"+e+"_"+C).html(_),$("#"+m.pre+"tt_custom_"+e+"_"+C).html(w))}getExonHtml(e,t,s,i,n,l,r,o){let a=this.icn3d;return a.icn3dui,''}getExonColor(e,t,s){this.icn3d.icn3dui;let i=.5*(e+t);if(s1e-200&&(h=parseFloat(h).toExponential()),n.scores.bit_score;let p=t.targets[l].seqdata,m=i.seqdata,u=n.segs;for(let e=0,t=u.length;e0&&(l=n+"H"+d.toString().padStart(2,"0")+")","coil"==t&&(s.selectionCls.selectResidueList(r,l,l,o,a),o||(o=!0)),r={})),n=e+"_H"+d.toString().padStart(2,"0"),r[p]=1,i.ssend&&(h=e+"_C(H"+d.toString().padStart(2,"0"),"helix"==t&&(s.selectionCls.selectResidueList(r,n,n,o,a),o||(o=!0)),r={})):"E"==m?(i.ssbegin&&(++c,Object.keys(r).length>0&&(l=n+"S"+c.toString().padStart(2,"0")+")","coil"==t&&(s.selectionCls.selectResidueList(r,l,l,o,a),o||(o=!0)),r={})),n=e+"_S"+c.toString().padStart(2,"0"),r[p]=1,i.ssend&&(h=e+"_C(S"+c.toString().padStart(2,"0"),"sheet"==t&&(s.selectionCls.selectResidueList(r,n,n,o,a),o||(o=!0)),r={})):(n=h+"-",r[p]=1)}}Object.keys(r).length>0&&(l=n+"Cterm)","coil"==t&&s.selectionCls.selectResidueList(r,l,l,o,a))}defineIgstrand(e,t){let s=this.icn3d,i=s.icn3dui;$("#"+s.pre+"dl_definedsets").hasClass("ui-dialog-content")&&$("#"+s.pre+"dl_definedsets").dialog("isOpen")||(i.htmlCls.dialogCls.openDlg("dl_definedsets","Select sets"),$("#"+s.pre+"atomsCustom").resizable());let n={},l=!1,r=!0;if(s.hAtoms={},"igdomain"==t){let t=s.chain2igArray[e];if(t&&t.length>0)for(let i=0,o=t.length;i1e3&&"50"==C.substr(C.length-2,2)&&(n[y]=1):(d=s.residIgLoop.hasOwnProperty(y)?"igloop":"igstrand",u&&d!=c&&Object.keys(n).length>0&&("igstrand"==c?(++h,i="Strand-"+a+"-"+e+"-"+h.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igstrand"==t&&(s.selectionCls.selectResidueList(n,i,i,l,r),l||(l=!0)),m=a):"igloop"==c&&(++p,i="Loop-"+m+"_"+o+"-"+e+"-"+p.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igloop"==t&&(s.selectionCls.selectResidueList(n,i,i,l,r),l||(l=!0))),n={}),n[y]=1,a=o,c=d,u=!0)))}"iganchor"==t?(i="Anchor-"+e,s.selectionCls.selectResidueList(n,i,i,l,r)):"igstrand"==c?(++h,i="Strand-"+a+"-"+e+"-"+h.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igstrand"==t&&s.selectionCls.selectResidueList(n,i,i,l,r)):"igloop"==c&&(++p,o="CT",i="Loop-"+m+"_"+o+"-"+e+"-"+p.toString().padStart(3,"0"),i=i.replace(/'/g,"`"),"igloop"==t&&s.selectionCls.selectResidueList(n,i,i,l,r))}}simplifyText(e){this.icn3d.icn3dui;let t,s,i="",n=!1,l=-1;for(t=0,s=(e=e.replace(/undefined/g," ")).length;t20)return!1;if(void 0!==o.giSeq&&void 0!==o.giSeq[e]){let r=this.getFullText(s);return s=r.text,this.showNewTrack(e,t,s,void 0,void 0,i,n,l),!1}setTimeout((function(){a.checkGiSeq(e,t,s,i,n,l,r+1)}),100)}getFullText(e){this.icn3d.icn3dui;let t="",s=[],i=[],n=e.split(","),l=-1;for(let e=0,r=n.length;ep?t+=c.substr(0,p):t+=c;for(let e=0;ed&&(d=t.length,c=h),++h}o=n.htmlCls.baseUrl+"pwaln/pwaln.fcgi?from=msa";let p=e.split(","),m={};m[t]=0;for(let e=0,t=p.length;e0&&(g+=","+p.join(","));let f={targets:u,queries:g},C=await n.getAjaxPostPromise(o,f);if(!C.data)return void console.log("The protein accessions "+u+","+g+" can not be aligned...");let b=[];i.qt_start_end={};let y=[],v=[],_=Object.keys(C.targets)[0],w=C.targets[_].seqdata;p.splice(0,0,t);for(let e=0,s=p.length;eA&&(A=e)}let x=S,k=w.length-(A+1),O=[],R=[];for(let e=0,t=p.length;ea&&(a=t.length,d=c),++c}s.qt_start_end={};let m="genomeRes",u={};for(let e=0,i=h.length;ef&&(f=e)}for(let e=0,t=h.length;e0&&(d=h,o.targetGapHash[a+o.startposGiSeq]={from:a+o.startposGiSeq,to:d+m-1+o.startposGiSeq}),c=t[s],h=p,"-"!=t[s]?(++p,f=s,o.seqEndLen[e]=C-1-f,u||(g=s,o.seqStartLen[e]=g,u=!0)):++m;o.maxAnnoLength0&&(b+=" "),b+=e+"_"+o.targetGapHash[e].from+"_"+o.targetGapHash[e].to,++y;let v={};for(let a=0,d=i.length;a=o.seqStartLen[e]&&("-"==t[s]&&b--,"-"==h&&b++),c+=h,"-"!=t[s]&&(t[s]==i[a][s]&&++v[d],++d),p=h;"-"!=p&&u.push(C-1);let _=s[a].length<20?s[a]:s[a].substr(0,20)+"...",w=!0,S=r?r[s[a]]:void 0;this.showNewTrack(e,_,c,void 0,void 0,l,void 0,w,m,u,f,S,y)}o.opts.color="exon",o.legendTableCls.showColorLegend(o.opts.color),o.hlUpdateCls.updateHlAll(),o.drawCls.draw()}processAccList(e){this.icn3d.icn3dui;let t=e.split(","),s={},i="";for(let e=0,n=t.length;e5?(l.uniprot2acc&&l.uniprot2acc[y]&&(y=l.uniprot2acc[y]),f=y):f=e,y.length>5){let e="";for(let t=0,s=l.chainsSeq.length;t"),d=a[1].indexOf("\n");n=a[1].substr(d+1).replace(/\n/g,"");for(let e=2,t=a.length;e0&&($("#"+e.pre+"anno_cdd")[0].checked?(this.setAnnoTabCdd(),t.htmlCls.clickMenuCls.setLogCmd("set annotation cdd",!0)):(this.hideAnnoTabCdd(),t.htmlCls.clickMenuCls.setLogCmd("hide annotation cdd",!0)))}showAnnoSelectedChains(){let e=this.icn3d,t=e.icn3dui,s={};for(let t in e.hAtoms){let i=e.atoms[t];s[i.structure+"_"+i.chain]=1}$("#"+e.pre+"dl_annotations > .icn3d-annotation").hide();for(let i in s){$("#"+e.pre+"anno_"+i).length&&$("#"+e.pre+"anno_"+i).show();let s=e.firstAtomObjCls.getFirstCalphaAtomObj(e.chains[i]);if(s&&void 0!==s.resn){let i=t.utilsCls.residueName2Abbr(s.resn.substr(0,3));$("#"+e.pre+"anno_"+i).show()}}}showAnnoAllChains(){let e=this.icn3d;e.icn3dui,$("#"+e.pre+"dl_annotations > .icn3d-annotation").show()}setAnnoView(e){let t=this.icn3d;t.icn3dui.bNode||("detailed view"===e?(t.view="detailed view",$("#"+t.pre+"dl_anno_view_tabs").tabs("option","active",1)):(t.view="overview",$("#"+t.pre+"dl_anno_view_tabs").tabs("option","active",0)))}setAnnoDisplay(e,t){let s=this.icn3d;s.icn3dui;let i=["giseq","custom","site","ptm","snp","clinvar","cdd","domain","interaction","ssbond","crosslink","transmem","ig"];for(let n in i){let l=i[n];$("[id^="+s.pre+t+"_"+l+"]").attr("style",e)}}showFixedTitle(){this.icn3d.icn3dui;this.setAnnoDisplay("display:block;","tt")}hideFixedTitle(){this.icn3d.icn3dui;this.setAnnoDisplay("display:none!important;","tt")}setAnnoViewAndDisplay(e){let t=this.icn3d;if(t.icn3dui,"detailed view"===e){this.setAnnoView("detailed view");let e="display:block;";this.setAnnoDisplay(e,"dt"),$("#"+t.pre+"seqguide_wrapper").attr("style",e),e="display:none;",this.setAnnoDisplay(e,"ov")}else{this.setAnnoView("overview"),this.hideFixedTitle();let e="display:none;";this.setAnnoDisplay(e,"dt"),$("#"+t.pre+"seqguide_wrapper").attr("style",e),e="display:block;",this.setAnnoDisplay(e,"ov")}}async updateClinvar(){let e=this.icn3d;if(e.icn3dui,void 0===e.bClinvarShown||!e.bClinvarShown)for(let t in e.protein_chainid){let s=e.protein_chainid[t];await e.annoSnpClinVarCls.showClinvar(t,s)}e.bClinvarShown=!0}async updateSnp(){let e=this.icn3d;if(e.icn3dui,void 0===e.bSnpShown||!e.bSnpShown)for(let t in e.protein_chainid){let s=e.protein_chainid[t];await e.annoSnpClinVarCls.showSnp(t,s)}e.bSnpShown=!0}updateDomain(){let e=this.icn3d;e.icn3dui,void 0!==e.bDomainShown&&e.bDomainShown||e.annoDomainCls.showDomainAll(),e.bDomainShown=!0}updateInteraction(){let e=this.icn3d;if(e.icn3dui,void 0===e.bInteractionShown||!e.bInteractionShown)for(let t in e.interactChainbase){let s=e.interactChainbase[t];e.annoContactCls.showInteraction(t,s)}e.bInteractionShown=!0}async updatePTM(){let e=this.icn3d;if(e.icn3dui,void 0===e.bPTMShown||!e.bPTMShown)for(let t in e.PTMChainbase){let s=e.PTMChainbase[t];await e.annoPTMCls.showPTM(t,s,"ptm")}e.bPTMShown=!0}updateSsbond(){let e=this.icn3d;if(e.icn3dui,void 0===e.bSSbondShown||!e.bSSbondShown)for(let t in e.ssbondChainbase){let s=e.ssbondChainbase[t];e.annoSsbondCls.showSsbond(t,s)}e.bSSbondShown=!0}updateCrosslink(){let e=this.icn3d;if(e.icn3dui,void 0===e.bCrosslinkShown||!e.bCrosslinkShown)for(let t in e.crosslinkChainbase){let s=e.crosslinkChainbase[t];e.annoCrossLinkCls.showCrosslink(t,s)}e.bCrosslinkShown=!0}async updateTransmem(){let e=this.icn3d,t=e.icn3dui;if(void 0===e.bTranememShown||!e.bTranememShown)for(let s in e.protein_chainid){let i=e.protein_chainid[s];if(void 0!==t.cfg.opmid)e.annoTransMemCls.showTransmem(s,i);else if(e.bAfMem&&e.afmem_start_end){let t=e.afmem_start_end[0],n=e.afmem_start_end[1];await e.annoPTMCls.showPTM(s,i,"afmem",t,n)}else await e.annoPTMCls.showPTM(s,i,"transmem")}e.bTranememShown=!0}async updateIg(e,t){let s=this.icn3d,i=s.icn3dui;if(s.opts.color="ig strand",!e){s.hAtoms={};for(let e in s.protein_chainid)s.hAtoms=i.hashUtilsCls.unionHash(s.hAtoms,s.chains[e])}let n=s.firstAtomObjCls.getResiduesFromAtoms(s.hAtoms);for(let e in n)s.resid2refnum&&delete s.resid2refnum[e],s.residIgLoop&&delete s.residIgLoop[e],s.resid2domainid&&delete s.resid2domainid[e];s.bRunRefnumAgain=!0;let l=e?s.firstAtomObjCls.getChainsFromAtoms(s.hAtoms):s.protein_chainid;for(let e in l)await s.annoIgCls.showIg(e,t),s.bRunRefnumAgain=!1;s.bShowRefnum&&(s.hlUpdateCls.updateHlAll(),s.drawCls.draw())}}class Pt{constructor(e){this.icn3d=e}showAnnotations_part1(e){let t=this.icn3d,s=t.icn3dui;if(s.htmlCls.dialogCls.openDlg("dl_selectannotations","Sequences and Annotations"),(void 0===t.bAssemblyNote||!t.bAssemblyNote)&&void 0!==t.asuCnt){let e="
    Assembly Tips: Only the asymmetric unit is shown in the sequence window.
    Click \"Assembly\" in the menu \"View\" to switch between asymmetric unit and biological assembly("+t.asuCnt+" asymmetric unit).
    ";$("#"+t.pre+"dl_annotations_tabs").append(e),t.bAssemblyNote=!0}t.bResetAnno&&(t.giSeq={},t.currClin={},t.resi2disease_nonempty={},t.baseResi={},t.matchedPos={},$("#"+s.pre+"dl_annotations").empty(),t.annotationCls.setAnnoView("overview"));let i={},n={},l={};if(void 0===t.bAnnoShown||!t.bAnnoShown||t.bResetAnno){t.protein_chainid={};let r,o=Object.keys(t.chains);if(e){let s=t.resid2specCls.atoms2structureArray(e);o=[];for(let e=0,i=s.length;e1&&"1"==d.substr(d.length-1)?(d=d.substr(0,d.length-1),a=o[e].substr(0,o[e].indexOf("_"))+"_"+d):a=o[e],t.proteins.hasOwnProperty(r.serial)&&t.chainsSeq[o[e]].length>1)t.protein_chainid[o[e]]=a;else if(t.nucleotides.hasOwnProperty(r.serial)&&t.chainsSeq[o[e]].length>1)i[o[e]]=a;else if(t.chainsSeq[o[e]].length>1)n[o[e]]=a;else{let s=t.chainsSeq[o[e]][0].name,i=o[e]+"_"+t.chainsSeq[o[e]][0].resi;void 0===l[s]&&(l[s]=[]),l[s].push(i)}if((void 0!==s.cfg.pdbid||void 0!==s.cfg.opmid||void 0!==s.cfg.mmcifid||void 0!==s.cfg.mmtfid)&&(t.proteins.hasOwnProperty(r.serial)||t.nucleotides.hasOwnProperty(r.serial)))for(let s=0,i=t.chainsSeq[o[e]].length;st.maxAnnoLengthOri&&(t.protein_chainid.hasOwnProperty(e)||i.hasOwnProperty(e))&&(t.maxAnnoLengthOri=t.chainsSeq[e].length);t.maxAnnoLength=t.maxAnnoLengthOri}return{nucleotide_chainid:i,chemical_chainid:n,chemical_set:l}}async showAnnotations(e){let t=this.icn3d,s=t.icn3dui,i=this,n=this.showAnnotations_part1(e),l=n.nucleotide_chainid,r=n.chemical_chainid,o=n.chemical_set;if(!t.bAnnoShown||t.bResetAnno)if(t.bAnnoShown=!0,void 0===s.cfg.blast_rep_id){if(t.bFullUi){if(void 0!==s.cfg.mmtfid){let e=Object.keys(t.structures)[0];await t.mmcifParserCls.downloadMmcifSymmetry(e,"mmtfid")}await this.showAnnoSeqData(l,r,o)}}else if(void 0===s.cfg.blast_rep_id||t.bSmithwm||t.bLocalSmithwm){if(void 0!==s.cfg.blast_rep_id&&(t.bSmithwm||t.bLocalSmithwm)){let e,n,a=[s.cfg.blast_rep_id];if(-1!=s.cfg.query_id.indexOf(">")?n=s.cfg.query_id.substr(s.cfg.query_id.indexOf("\n")+1):!/\d/.test(s.cfg.query_id)||s.cfg.query_id.length>50?n=s.cfg.query_id:a.push(s.cfg.query_id),t.blastAcxn){let i=s.cfg.afid+"_A",n="";for(let e=0,s=t.chainsSeq[i].length;e5){let n;e.uniprot2acc&&e.uniprot2acc[i]?e.uniprot2acc[i]:e.uniprot2acc={},n="https://rest.uniprot.org/uniprotkb/search?format=json&fields=xref_geneid,gene_names&query="+i;let l=await t.getAjaxPromise(n,"json"),r=l.results[0]&&l.results[0].uniProtKBCrossReferences&&l.results[0].uniProtKBCrossReferences[0]?l.results[0].uniProtKBCrossReferences[0].id:void 0,o=l.results[0]&&l.results[0].genes&&l.results[0].genes[0]&&l.results[0].genes[0].geneName?l.results[0].genes[0].geneName.value:"ID "+r;e.chainsGene[s]={geneId:r,geneSymbol:o}}}for(let s in e.protein_chainid){let i=t.utilsCls.isMobile()?"none":"button",l=e.showSeqCls.getProteinName(s),r=l,o=0==n?"Proteins:

    ":"",a=e.chainsGene[s]&&e.chainsGene[s].geneId&&e.chainsGene[s].geneDesc?"(Gene: "+e.chainsGene[s].geneSymbol+")":"",d=s.substr(0,s.indexOf("_")),c=d.length>5?''+s+"":s,h="
    "+o+"Annotations of "+c+": "+r+""+a+"   "+this.addButton(s,"icn3d-addtrack","Add Track","Add a custom track",60,i)+"   ";h+=this.addButton(s,"icn3d-customcolor","Custom Color/Tube","Use a custom file to define the colors or tubes in 3D structure",110,i)+"   ",h+=this.addButton(s,"icn3d-helixsets","Helix Sets",'Define sets for each helix in this chain and add them to the menu of "Defined Sets"',60,i)+" "+this.addButton(s,"icn3d-sheetsets","Sheet Sets",'Define sets for each sheet in this chain and add them to the menu of "Defined Sets"',60,i)+" "+this.addButton(s,"icn3d-coilsets","Coil Sets",'Define sets for each coil in this chain and add them to the menu of "Defined Sets"',60,i),h+="   "+this.addButton(s,"icn3d-iganchorsets","Ig Anchor Set",'Define the set for all Ig anchors in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igstrandsets","Ig Strand Sets",'Define sets for each Ig strand in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igloopsets","Ig Loop Sets",'Define sets for each Ig loop in this chain and add them to the menu of "Defined Sets"',80,i)+" "+this.addButton(s,"icn3d-igdomainsets","Ig Domain Sets",'Define sets for each Ig domain in this chain and add them to the menu of "Defined Sets"',80,i),$("#"+e.pre+"dl_annotations").append(h);let p=["giseq","cdd","clinvar","snp","site","ptm","ssbond","crosslink","transmem","domain","custom","interaction","ig"];for(let t in p){let i=p[t];$("#"+e.pre+"anno_"+s).append(this.getAnDiv(s,i))}$("#"+e.pre+"anno_"+s).append("


    "),++n}if(t.bNode||e.annoCddSiteCls.setToolTip(),void 0!==e.chainid_seq)await this.processSeqData(e.chainid_seq);else try{let n=[],l=[];for(let e=0,t=i.length;e=6?l.push(i[e]):n.push(i[e])}if(n.length>0){let s=t.htmlCls.baseUrl+"/vastdyn/vastdyn.cgi?chainlist="+n;e.chainid_seq=await t.getAjaxPromise(s,"jsonp")}else e.chainid_seq={};for(let t=0,s=l.length;t40&&(r=r.substr(0,40)+"...");let o="";0==i&&("protein"==s?o="Proteins:

    ":"nucleotide"==s?o="Nucleotides:

    ":"chemical"==s&&(o="Chemicals/Ions/Water:

    ")),$("#"+n.pre+"dl_annotations").append("
    "+o+""+e+": "+r+"
    "),$("#"+n.pre+"anno_"+e).append(this.getAnDiv(e,"giseq")),$("#"+n.pre+"anno_"+e).append(this.getAnDiv(e,"interaction")),$("#"+n.pre+"anno_"+e).append("


    "),n.giSeq[e]=[];for(let t=0;tChemicals/Ions/Water:

    ":"",o=t[0].lastIndexOf("_"),a=t[0].substr(0,o),d=void 0!==l.cfg.mmdbid&&void 0!==n.chainid2sid?n.chainid2sid[a]:void 0;i=void 0!==d?""+e+" ":""+e+"",$("#"+n.pre+"dl_annotations").append("
    "+r+i+"
    "),$("#"+n.pre+"anno_"+e).append("
    "),$("#"+n.pre+"anno_"+e).append("


    ");let c='
    ';c+='",c+='Count: '+t.length+"",c+='';let h=c,p=c;for(let s=0,i=t.length;s3&&(l=i.substr(0,3)),s'+l+""}let m=l.htmlCls.GREY8,u=Math.round(n.seqAnnWidth*t.length/n.maxAnnoLength);u<1&&(u=1),p+='
     
    ',c="",c+="
    ",c+="
    ",h+=c,p+=c,$("#"+n.pre+"dt_giseq_"+e).html(h),$("#"+n.pre+"ov_giseq_"+e).html(p)}async processSeqData(e){let t=this.icn3d,s=t.icn3dui;t.bAnnoShown=!0;for(let i in t.protein_chainid){let n=t.protein_chainid[i];if(e.hasOwnProperty(n)){let s=e[n];t.giSeq[i]=s;let l="";for(let e=0;e<10&&e14?"Query: "+o.substr(0,6)+"...":isNaN(s.cfg.query_id)?"Query: "+o:"Query: gi "+o;let a="cannot be aligned";t.queryStart="",t.queryEnd="",t.bRender&&alert("The sequence can NOT be aligned to the structure"),t.showSeqCls.showSeq(i,n,void 0,e,l,a,r)}else if(s.cfg.blast_rep_id==i&&(void 0!==t.seqStructAlignData||void 0!==t.seqStructAlignDataSmithwm)){let e,l,r,o,a,d=s.cfg.oriQuery_id?s.cfg.oriQuery_id:s.cfg.query_id;if(e=d.length>14?"Query: "+d.substr(0,6)+"...":isNaN(s.cfg.query_id)?"Query: "+d:"Query: gi "+d,void 0!==t.seqStructAlignData){let e,s,i=t.seqStructAlignData;if(void 0!==i.data){e=i.data[0].query;let t=Object.keys(i.data[0].targets);s=i.data[0].targets[t[0]],s=void 0!==s&&s.hsps.length>0?s.hsps[0]:void 0}if(void 0!==e&&void 0!==s){l=s.scores.e_value.toPrecision(2),l>1e-200&&(l=parseFloat(l).toExponential()),s.scores.bit_score;let t=Object.keys(i.targets);r=i.targets[t[0]].seqdata,o=e.seqdata,a=s.segs}}else{let e=t.seqStructAlignDataSmithwm;l=e.score,r=e.target.replace(/-/g,""),o=e.query.replace(/-/g,""),a=[];let s=-1,i=-1,n=!1,d={};for(let t=0,l=e.target.length;t0)if(i.orifrom-ni.from-l)for(let t=n+1;t
    "+i+"
    "}addButton(e,t,s,i,n,l){return this.icn3d.icn3dui,"
    "}addSnpButton(e,t,s,i,n,l){let r=this.icn3d;return r.icn3dui,"
    "}conservativeReplacement(e,t){let s=this.icn3d.icn3dui,i=-1!==s.parasCls.b62ResArray.indexOf(e)?s.parasCls.b62ResArray.indexOf(e):s.parasCls.b62ResArray.length-1,n=-1!==s.parasCls.b62ResArray.indexOf(t)?s.parasCls.b62ResArray.indexOf(t):s.parasCls.b62ResArray.length-1;return s.parasCls.b62Matrix[i][n]>0}getColorhexFromBlosum62(e,t){let s=this.icn3d.icn3dui,i="333333";if(!e||!t)return i;e=e.toUpperCase(),t=t.toUpperCase();let n=-1!==s.parasCls.b62ResArray.indexOf(e)?s.parasCls.b62ResArray.indexOf(e):s.parasCls.b62ResArray.length-1,l=-1!==s.parasCls.b62ResArray.indexOf(t)?s.parasCls.b62ResArray.indexOf(t):s.parasCls.b62ResArray.length-1,r=s.parasCls.b62Matrix[n][l];if(void 0===r)return"333333";if(r>0){let e=221-parseInt(r/11*221),t=e<10?"0"+e.toString(16):e.toString(16);i="DD"+t+t}else{let e=221-parseInt(-1*r/4*221),t=e<10?"0"+e.toString(16):e.toString(16);i=t+t+"DD"}return i}}class Dt{constructor(e){this.icn3d=e}getSeq(e){let t,s=this.icn3d,i=s.icn3dui;if(void 0===i.cfg.mmdbid&&void 0===i.cfg.gi&&void 0===i.cfg.blast_rep_id&&void 0===i.cfg.align&&void 0===i.cfg.chainalign&&void 0===i.cfg.mmdbafid){t=[];for(let i=0;i10){m='
    ';let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]);void 0===a.cfg.mmdbid&&void 0===a.cfg.gi&&void 0===a.cfg.blast_rep_id&&void 0===a.cfg.align&&void 0===a.cfg.chainalign&&void 0===a.cfg.mmdbafid||void 0===t.resi_ori||t.resi_ori==t.resi||-1!=e.indexOf("Misc")?m+='
    ':m+='
    NCBI Residue Numbers
    ',m+='',f+=m+"
    ",u+=m+'';let s=0,i=0,n="";o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e]," "));for(let t=0,l=d.length;t",l%10==0&&(u+=l);let r=e+"_"+l,a=l%10!=0&&l%10!=1&&l%10!=9;if(o.residues.hasOwnProperty(r)){let e=o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[r]);"H"==o.secondaries[r]&&e.ssbegin?(++s,n='H'+s+"",a&&(u+=n,n="")):"E"==o.secondaries[r]&&e.ssbegin?(++i,"green"==o.sheetcolor?n='S'+i+"":"yellow"==o.sheetcolor&&(n='S'+i+""),a&&(u+=n,n="")):e.ssend&&(n=""),""!=n&&a&&(u+=n,n="")}u+=""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e]," ")),u+='',u+="",u+="
    ",u+="
    ",f+=""}m='
    ',m+='
    ',m+='',f+=m+"
    ",u+=m+'',o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t':'',u+=" ";else if("E"==o.secondaries[s]){o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[s]).ssend?"green"==o.sheetcolor?u+='':"yellow"==o.sheetcolor&&(u+=''):"green"==o.sheetcolor?u+='':"yellow"==o.sheetcolor&&(u+=''),u+=" "}else"c"==o.secondaries[s]?u+=' ':"o"==o.secondaries[s]&&(u+=' ');else u+="-"}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),u+='',u+="",u+="
    ",u+="
    ",u+="",f+="",m=a.cfg.blast_rep_id===e?'
    ':'
    ';let C="Protein",b="Protein";void 0!==s&&("nucleotide"==s?(C="Nucl.",b="Nucleotide"):"chemical"==s&&(C="Chem.",b="Chemical")),m+='",m+=''+(o.baseResi[e]+1).toString()+"",f+=m+"
    ";let y='';u+=m+y,g+=m+y;let v,_=0;o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t1&&(i=s[0]+".."),v=o.ParserUtilsCls.getResi(e,t),o.residues.hasOwnProperty(e+"_"+v)){let n="333333";if(a.cfg.blast_rep_id==e&&void 0!==o.fullpos2ConsTargetpos&&void 0!==o.fullpos2ConsTargetpos[t+_])n=o.fullpos2ConsTargetpos[t+_].color;else{let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.residues[e+"_"+v]),s=void 0===t.color||"FFFFFF"===t.color.getHexString().toUpperCase()||"FFF"===t.color.getHexString().toUpperCase()?"DDDDDD":t.color.getHexString();n=void 0!==t.color?s:"CCCCCC"}u+=''+i+""}else i=i.toLowerCase(),u+=''+i+""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),a.cfg.blast_rep_id==e&&(o.opts.color=o.blastAcxn?"confidence":"conservation",o.setColorCls.setColorByOptions(o.opts,o.atoms));let w=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]),S=w.color?w.color.getHexString():"CCCCCC",A=Math.round(o.seqAnnWidth*d.length/(o.maxAnnoLength+o.nTotalGap));if(A<1&&(A=1),o.seqStartLen&&o.seqStartLen[e]&&(g+=this.insertMulGapOverview(e,o.seqStartLen[e])),a.cfg.blast_rep_id!=e)g+='";else{let t=[],s=[];t.push(0);for(let e=0,i=d.length;e';for(let i=0,n=t.length;i'+e+"
    ";g+="
    "}if(m=''+v+"",m+="",m+="
    ",u+=m,g+=m,a.cfg.blast_rep_id==e){if(void 0!==r&&""!==r){m='",m+='',f+=m+"
    ";let t='';u+=m+t,g+=m+t;let s=0,i=0,l=1;o.queryStart;for(let t=0,n=r.length;t-";else if(" "==n)u+=" ";else{let r=o.fullpos2ConsTargetpos[t].pos;if(o.residues.hasOwnProperty(e+"_"+r)){let s=o.fullpos2ConsTargetpos[t].color;u+=''+n+""}else n=n.toLowerCase(),u+=''+n+"";g+=this.insertGapOverview(e,t);let a=Math.round(o.seqAnnWidth*t/(o.maxAnnoLength+o.nTotalGap)-s-i);a>=0&&(g+='
     
    ',g+='
     
    ',s+=a,i+=l)}}m='',m+="",m+="
    ",u+=m,g+=m}m='
    '+i+"
    ",m+=''+o.queryStart+"",f+=m+"
    ";let t='';u+=m+t,g+=m+t;let s=o.queryStart;for(let t=0,i=l.length;t-":(void 0===o.fullpos2ConsTargetpos||void 0===o.fullpos2ConsTargetpos[t]||o.residues.hasOwnProperty(e+"_"+o.fullpos2ConsTargetpos[t].pos)||(i=i.toLowerCase()),u+=''+i+"",++s)}let a=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]),d=void 0===a.color||"FFFFFF"===a.color.getHexString()?"DDDDDD":a.color.getHexString(),c=void 0!==a.color?d:"CCCCCC",h=[],p=[],C="-";for(let e=0,t=l.length;e ',g+='
    '+i+"
    "}m=''+o.queryEnd+"",m+="",m+="
    ",u+=m,g+=m}if(u+="",g+="",f+="",d.length>10){let t=o.firstAtomObjCls.getFirstCalphaAtomObj(o.chains[e]);if((void 0!==a.cfg.mmdbid||void 0!==a.cfg.gi||void 0!==a.cfg.blast_rep_id||void 0!==a.cfg.align||void 0!==a.cfg.chainalign||void 0!==a.cfg.mmdbafid)&&void 0!==t.resi_ori&&t.resi_ori!=t.resi&&-1==e.indexOf("Misc")){m='
    ',m+='
    ',m+='
    PDB Residue Numbers
    ',m+='',f+=m+"
    ",u+=m+'',o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqStartLen[e],"-"));for(let t=0,s=d.length;t",e%10==0&&(u+=e+" "),u+=""}else u+=""}o.seqStartLen&&o.seqStartLen[e]&&(u+=this.insertMulGap(o.seqEndLen[e],"-")),u+='',u+="",u+="
    ",u+="
    ",u+="
    ",f+=""}if(o.bShowCustomRefnum&&o.chainsMapping.hasOwnProperty(e)){let t=!0,s=o.annoIgCls.showRefNum(d,e,void 0,t);u+=s.html,f+=s.html3}}o.bShowRefnum&&o.hlUpdateCls.updateHlAll(),$("#"+o.pre+"dt_giseq_"+e).html(u),$("#"+o.pre+"ov_giseq_"+e).html(g),$("#"+o.pre+"tt_giseq_"+e).html(f)}insertGap(e,t,s,i){let n=this.icn3d;n.icn3dui;let l="";return void 0!==n.targetGapHash&&n.targetGapHash.hasOwnProperty(t)&&(l+=this.insertMulGap(n.targetGapHash[t].to-n.targetGapHash[t].from+1,s,i)),l}insertMulGap(e,t,s){this.icn3d.icn3dui;let i="";for(let n=0;n"+t+"";return i}insertGapOverview(e,t){let s=this.icn3d;s.icn3dui;let i="";return void 0!==s.targetGapHash&&s.targetGapHash.hasOwnProperty(t)&&(i+=this.insertMulGapOverview(e,s.targetGapHash[t].to-s.targetGapHash[t].from+1)),i}insertMulGapOverview(e,t){let s=this.icn3d;s.icn3dui;let i="",n=s.seqAnnWidth*t/(s.maxAnnoLength+s.nTotalGap);return n=parseInt(n),i+='
     
    ',i}setAlternativeSeq(e,t){let s=this.icn3d;s.icn3dui;let i=s.chainsSeq[e];s.giSeq[e]=[];for(let t=0,n=i.length;t1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+e,!0)}else{let o={};if(void 0!==$(e).attr("domain")||void 0!==$(e).attr("feat")||void 0!==$(e).attr("3ddomain")||void 0!==$(e).attr("custom")||void 0!==$(e).attr("ig")){t.hlUpdateCls.hlSummaryDomain3ddomain(e);let a,d,c,h=$(e).attr("from").split(","),p=$(e).attr("to").split(",");r.substr(0,r.indexOf("_"));for(let s=0,i=h.length;s1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+c,!0)}}else{t.bCtrl||t.bShift?(t.currSelectedSets.push(i),t.selectionCls.selectAChain(r,i,!0,!0)):(t.currSelectedSets=[i],t.selectionCls.selectAChain(r,i,t.bAlignSeq)),t.bAlignSeq?s.htmlCls.clickMenuCls.setLogCmd("select alignChain "+r,!0):s.htmlCls.clickMenuCls.setLogCmd("select chain "+r,!0);let e=t.currSelectedSets.join(" or ");t.currSelectedSets.length>1&&s.htmlCls.clickMenuCls.setLogCmd("select sets "+e,!0)}else t.hlObjectsCls.removeHlObjects(),t.hlUpdateCls.removeHl2D(),$("#"+t.pre+"atomsCustom").val("")}}selectResidues(e,t){let s=this.icn3d,i=s.icn3dui;if(!i.bNode&&(!1!==s.bSelectResidue||s.bShift||s.bCtrl||s.selectionCls.removeSelection(),void 0!==e&&""!==e)){e=e.substr(e.indexOf("_")+1),s.bSelectResidue=!0,$(t).toggleClass("icn3d-highlightSeq");let n=e.substr(e.indexOf("_")+1);if(s.residues.hasOwnProperty(n))if($(t).hasClass("icn3d-highlightSeq")){for(let e in s.residues[n])s.hAtoms[e]=1;if(s.selectedResidues[n]=1,s.bAnnotations&&void 0!==$(t).attr("disease")){let e=$(t).attr("disease"),l=s.applyCenterCls.centerAtoms(i.hashUtilsCls.hash2Atoms(s.residues[n],s.atoms)),r=15;e.length>r&&(e=e.substr(0,r)+"...");let o=s.LABELSIZE,a=i.htmlCls.GREYD;s.analysisCls.addLabel(e,l.center.x,l.center.y,l.center.z,o,a,void 0,"custom")}}else{for(let e in s.residues[n])delete s.hAtoms[e];delete s.selectedResidues[n],s.hlObjectsCls.removeHlObjects()}}}}class Ft{constructor(e){this.icn3d=e}update2DdgmContent(){let e=this.icn3d,t=e.icn3dui,s="";void 0!==t.cfg.mmdbid||void 0!==t.cfg.gi?(s+=e.diagram2dCls.draw2Ddgm(e.interactionData,e.inputid,void 0,!0),s+=e.diagram2dCls.set2DdgmNote(),$("#"+e.pre+"dl_2ddgm_html").html(s)):e.mmdbidArray&&(void 0!==t.cfg.align||void 0!==t.cfg.chainalign||e.bRealign)&&(s+=e.diagram2dCls.draw2Ddgm(e.interactionData1,e.mmdbidArray[0].toUpperCase(),0,!0),void 0!==e.mmdbid_q&&e.mmdbid_q===e.mmdbid_t?s+=e.diagram2dCls.draw2Ddgm(e.interactionData2,e.mmdbidArray[0].toUpperCase(),1,!0):s+=e.diagram2dCls.draw2Ddgm(e.interactionData2,e.mmdbidArray[1].toUpperCase(),1,!0),s+=e.diagram2dCls.set2DdgmNote(!0),$("#"+e.pre+"dl_2ddgm_html").html(s))}changeSeqColor(e){let t=this.icn3d,s=t.icn3dui;for(let i=0,n=e.length;i0&&($("#"+t.pre+"dl_2ddgm svg line").attr("stroke","#000000"),$("#"+t.pre+"dl_2ddgm line").attr("stroke-width",1)),e||($("#"+t.pre+"dl_linegraph circle").attr("stroke","#000000"),$("#"+t.pre+"dl_linegraph circle").attr("stroke-width",1),$("#"+t.pre+"dl_scatterplot rect").attr("stroke","#000000"),$("#"+t.pre+"dl_scatterplot circle").attr("stroke","#000000"),$("#"+t.pre+"dl_scatterplot rect").attr("stroke-width",1),$("#"+t.pre+"dl_scatterplot circle").attr("stroke-width",1))}removeHlMenus(){let e=this.icn3d;e.icn3dui,$("#"+e.pre+"atomsCustom").val(""),$("#"+e.pre+"atomsCustom")[0].blur()}updateHlAll(e,t,s,i){let n=this.icn3d,l=n.icn3dui;n.prevHighlightAtoms=l.hashUtilsCls.cloneHash(n.hAtoms),this.updateHlObjects(i),void 0!==e?this.updateHlSeqInChain(e,s):this.updateHlSeq(void 0,void 0,s),this.updateHl2D(),(void 0===t||t)&&this.updateHlMenus(e)}updateHlObjects(e){let t=this.icn3d;t.icn3dui,t.hlObjectsCls.removeHlObjects(),(t.hAtoms&&t.atoms&&Object.keys(t.hAtoms).length0&&(e=s.defNames2Residues[i]);let t={};if(void 0!==s.defNames2Atoms[i]&&s.defNames2Atoms[i].length>0){for(let e=0,n=s.defNames2Atoms[i].length;e0&&(r=t.firstAtomObjCls.getFirstCalphaAtomObj(l))}let o=void 0!==r&&void 0!==r.color?"#"+r.color.getHexString():"#FFFFFF",a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] rect[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] rect[class='icn3d-basenode']");void 0!==a&&(t.diagram2dCls.highlightNode("rect",a,d,l),$(a).attr("fill",o)),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] circle[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] circle[class='icn3d-basenode']"),void 0!==a&&(t.diagram2dCls.highlightNode("circle",a,d,l),$(a).attr("fill",o)),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] ellipse[class='icn3d-hlnode']"),void 0!==a&&t.diagram2dCls.highlightNode("ellipse",a,void 0,l),a=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] polygon[class='icn3d-hlnode']"),d=$("#"+t.pre+"dl_2ddgm g[chainid="+e[i]+"] polygon[class='icn3d-basenode']"),void 0!==a&&(t.diagram2dCls.highlightNode("polygon",a,d,l),$(a).attr("fill",o))}if(void 0!==t.lineArray2d)for(let e=0,i=t.lineArray2d.length;e1){let e={},l=[],o=[],a=[],c=[],h=[],m=[],u=[],g=[],f=[],C=[],b=[],y=[],v={},_={},w={};for(let t=0,s=p.length;t4&&!isNaN(parseInt(e.substr(-4,4)))||t.length>4&&!isNaN(parseInt(t.substr(-4,4))),c=e+"_"+t+"_"+s.c,h=n.hashUtilsCls.cloneHash(s);h.source+=S+i.chainsMapping[r][d],h.target+=S+i.chainsMapping[o][C];let m=n.hashUtilsCls.cloneHash(s);m.source+=A+i.chainsMapping[r][d],m.target+=A+i.chainsMapping[o][C],v[c]!=p.length||!a&&0!=w[c]?b[f].push(m):u[f].push(h),g[f][s.source]=i.chainsMapping[r][d],g[f][s.target]=i.chainsMapping[o][C],y[f][s.source]=i.chainsMapping[r][d],y[f][s.target]=i.chainsMapping[o][C]}else{let e=n.hashUtilsCls.cloneHash(s);e.source+=i.chainsMapping[r]&&i.chainsMapping[r][d]?A+i.chainsMapping[r][d]:A+k,e.target+=i.chainsMapping[o]&&i.chainsMapping[o][C]?A+i.chainsMapping[o][C]:A+k,b[f].push(e),g[f][s.source]=i.chainsMapping[r]&&i.chainsMapping[r][d]?i.chainsMapping[r][d]:x,g[f][s.target]=i.chainsMapping[o]&&i.chainsMapping[o][C]?i.chainsMapping[o][C]:x,y[f][s.source]=i.chainsMapping[r]&&i.chainsMapping[r][d]?i.chainsMapping[r][d]:k,y[f][s.target]=i.chainsMapping[o]&&i.chainsMapping[o][C]?i.chainsMapping[o][C]:k}}}let O=[],R=[],I=0,E=[],T=1;for(let e=0,t=p.length;e0&&(T=1,t=i.getGraphCls.getNodeTopBottom(c[e],d,void 0,T,g[e]),h[e]=t.nodeArray1,m[e]=t.nodeArray2,d=n.hashUtilsCls.unionHash(d,t.name2node),T=2,t=i.getGraphCls.getNodeTopBottom(c[e],d,void 0,T,y[e]),f[e]=t.nodeArray1,C[e]=t.nodeArray2,d=n.hashUtilsCls.unionHash(d,t.name2node)),O[e]=l[e].length,R[e]=o[e].length,I=Math.max(I,R[e]),E.push(p[e])}let P,D,M,F,H,L=1,N=3*L,q=7*L,U=10,$=10,B=30,j=20;t?(M=(n.utilsCls.sumArray(O)+2*E.length)*(N+q)+4*$+2*B+j*E.length,D=(I+2)*(N+q)+2*U+B):(P=110+j,M=P*E.length,D=(I+2)*(N+q)+2*U,D+=20),Object.keys(i.chainsMapping).length>0&&(M*=3),t?(i.scatterplotWidth=2*D,H=i.scatterplotWidth,F=n.scatterplotid):(i.linegraphWidth=2*D,H=i.linegraphWidth,F=n.linegraphid),s=0==E.length?"No interactions found for each structure

    ":"2D integration graph for "+E.length+" structure(s) "+E+'. There are three sections: "Interactions", "Common interactions", and "Different interactions". Each section has '+E.length+" graphs.

    ",s+="";let z,G=0;T=0,z=this.drawGraphPerType(T,p,t,l,o,a,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html,Object.keys(i.chainsMapping).length>0&&(T=1,z=this.drawGraphPerType(T,p,t,h,m,u,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html,T=2,z=this.drawGraphPerType(T,p,t,f,C,b,d,G,P,j,O,N,q,$),G=z.heightFinal,s+=z.html),s+=""}else if(t){let e,t,l,c,h=p[0],m=o.length,u=a.length,g=1,f=3*g,C=7*g,b=30;t=(m+2)*(f+C)+2*10+b,e=(u+2)*(f+C)+2*10+b,i.scatterplotWidth=2*e,c=i.scatterplotWidth,l=n.scatterplotid,s=r.length>0?"":"No interactions found for these two sets

    ",s+="",s+=this.drawScatterplot_base(o,a,r,d,0),i.lineGraphStr+=i.getGraphCls.updateGraphJson(h,1,o,a,r),s+=""}else{let e=p[0],t=o.length,l=a.length,c=1,h=3*c,m=7*c,u=110,g=10,f=t>l?t*(h+m)+2*g:l*(h+m)+2*g;i.linegraphWidth=2*f,s=r.length>0?"":"No interactions found for these two sets

    ",s+="",s+=this.drawLineGraph_base(o,a,r,d,0),i.lineGraphStr+=i.getGraphCls.updateGraphJson(e,1,o,a,r),s+=""}return i.lineGraphStr+="}\n",i.scatterplotStr=i.lineGraphStr,t?$("#"+i.pre+"scatterplotDiv").html(s):$("#"+i.pre+"linegraphDiv").html(s),s}drawGraphPerType(e,t,s,i,n,l,r,o,a,d,c,h,p,m){let u=this.icn3d;u.icn3dui;let g,f,C="",b=2==t.length&&"2"==t[1].replace(t[0],"");0==e?(g="Interactions in ",f=""):1==e?(g="Common interactions in ",f="_common"):2==e&&(g="Different interactions in ",f="_diff");for(let y=0,v=t.length;y0&&(u.lineGraphStr+=", \n"):u.lineGraphStr+=", \n",u.lineGraphStr+=u.getGraphCls.updateGraphJson(t[y],y+f,i[y],n[y],l[y])}return{heightFinal:o,html:C}}getIdArrayFromNode(e){let t=this.icn3d.icn3dui,s=[];s.push(""),s.push("");let i=e.r.substr(4);return s=s.concat(t.utilsCls.getIdArray(i)),s}drawLineGraph_base(e,t,s,i,n,l,r){let o,a,d=this.icn3d,c=d.icn3dui,h="",p=e.length,m=t.length;p>m?(o=10,a=10*Math.abs(p-m)*.5+10):(a=10,o=10*Math.abs(p-m)*.5+10),l&&(h+=""+l+"");let u=30+n,g=80+n,f="",C={},b={};for(let t=0;t";let u=1==t.n?"Interaction":t.n+" interactions";t.n>1&&(h+=""+u+" of residue "+n.id+" with residue "+l.id+""),h+=""}return h+=f,h}drawScatterplot_base(e,t,s,i,n,l,r,o,a){let d=this.icn3d;d.icn3dui;let c="",h=e.length,p=t.length,m=l?3:7,u=(h+1)*(3+m)+30+40;r&&(c+=""+r+"");let g=n+u-(50+(3+m)),f=40+(3+m),C="",b={},y={};for(let t=0;t";else{d+="";let i=1==e.n?"Interaction":e.n+" interactions";e.n>1&&(d+=""+i+" of residue "+t.id+" with residue "+s.id+""),d+=l?"":"",d+=""}return d}copyStylesInline(e,t){this.icn3d.icn3dui;let s=["svg","g"];for(let i=0;i",b=e.id;return c.resid2refnum[p]&&(b+="=>"+c.resid2refnum[p]),C+=""+b+"",o?(C+="",C+=""+g+""):(C+="",C+=""+g+""),C+="",C}getNodeTopBottom(e,t,s,i,n){let l=this.icn3d.icn3dui,r=this,o=[],a=[],d={};for(let s in e){let e=t[s];if(e){if(1==i||2==i){if(e=l.hashUtilsCls.cloneHash(e),1==i){let t=n[s]?n[s]:"-";e.id+="=>"+t}else{let t=n[s]?n[s]:"--";e.id+="==>"+t}d[e.id]=e}"a"==e.s?o.push(e):"b"==e.s?a.push(e):"ab"==e.s&&(o.push(e),a.push(e))}}return o.sort((function(e,t){return r.compNode(e,t)})),a.sort((function(e,t){return r.compNode(e,t,s)})),{nodeArray1:o,nodeArray2:a,name2node:d}}updateGraphJson(e,t,s,i,n){let l=this.icn3d.icn3dui,r="";return r+='"structure'+t+'": {"id": "'+e+'", "nodes1":[',r+=l.utilsCls.getJSONFromArray(s),r+='], \n"nodes2":[',r+=l.utilsCls.getJSONFromArray(i),r+='], \n"links":[',r+=l.utilsCls.getJSONFromArray(n),r+="]}",r}updateGraphColor(){this.icn3d.icn3dui}handleForce(){let e=this.icn3d;0==e.icn3dui.htmlCls.force&&void 0!==e.simulation?(e.simulation.stop(),e.simulation.force("charge",null),e.simulation.force("x",null),e.simulation.force("y",null),e.simulation.force("r",null),e.simulation.force("link",null)):e.drawGraphCls.drawGraph(e.graphStr,e.pre+"dl_graph")}getNodesLinksForSet(e,t,s,i){let n=this.icn3d,l=n.icn3dui,r=[],o=[],a=0,d=l.htmlCls.coilValue,c="",h="",p=0,m={};for(let u in e){let e=n.atoms[u];if("DUM"!=e.chain&&(i||e.het||"CA"==e.name&&"C"==e.elem||"O3'"==e.name||"O3*"==e.name||"P"==e.name)){let i=e.structure+"_"+e.chain+"_"+e.resi;if(m.hasOwnProperty(i))continue;m[i]=1;let u=l.utilsCls.residueName2Abbr(e.resn)+e.resi;"chain"!=t&&"structure"!=t||(u+="."+e.chain),"structure"==t&&(u+="."+e.structure);let g="1_1_"+i,f=e.color?e.color.getHexString().toUpperCase():"000";r.push('{"id": "'+u+'", "r": "'+g+'", "s": "'+s+'", "x": '+e.coord.x.toFixed(0)+', "y": '+e.coord.y.toFixed(0)+', "c": "'+f+'"}'),a>0&&c==e.chain&&(n.resid2ncbi[e.resi]==n.resid2ncbi[p]+1||n.resid2ncbi[e.resi]==n.resid2ncbi[p])&&(o.push('{"source": "'+h+'", "target": "'+u+'", "v": '+d+', "c": "'+f+'"}'),e.ssbegin&&(d=l.htmlCls.ssValue),e.ssend&&(d=l.htmlCls.coilValue)),c=e.chain,h=u,p=e.resi,++a}}return{node:r,link:o}}getHbondLinksForSet(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=parseFloat($("#"+s.pre+"hbondthreshold").val()),r=e,o=r;if(Object.keys(o).length>0&&Object.keys(r).length>0){let e=!1;s.hBondCls.calculateChemicalHbonds(i.hashUtilsCls.hash2Atoms(o,s.atoms),i.hashUtilsCls.hash2Atoms(r,s.atoms),parseFloat(l),e,"graph",!0),n=i.hashUtilsCls.cloneHash(s.resid2Residhash)}return this.getGraphLinks(n,n,i.htmlCls.hbondInsideColor,t,i.htmlCls.hbondInsideValue)}getIonicLinksForSet(e,t){let s=this.icn3d,i=s.icn3dui,n={},l=parseFloat($("#"+s.pre+"saltbridgethreshold").val()),r=e,o=r;if(Object.keys(o).length>0&&Object.keys(r).length>0){let e=!1;s.saltbridgeCls.calculateIonicInteractions(i.hashUtilsCls.hash2Atoms(o,s.atoms),i.hashUtilsCls.hash2Atoms(r,s.atoms),parseFloat(l),e,"graph",!0),n=i.hashUtilsCls.cloneHash(s.resid2Residhash)}return this.getGraphLinks(n,n,i.htmlCls.ionicInsideColor,t,i.htmlCls.ionicInsideValue)}getHalogenPiLinksForSet(e,t){let s,i=this.icn3d,n=i.icn3dui,l={},r=e,o=r,a="";return s=parseFloat($("#"+i.pre+"halogenthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","halogen",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.halogenInsideColor,t,n.htmlCls.halogenInsideValue),s=parseFloat($("#"+i.pre+"picationthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","pi-cation",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.picationInsideColor,t,n.htmlCls.picationInsideValue),s=parseFloat($("#"+i.pre+"pistackingthreshold").val()),Object.keys(o).length>0&&Object.keys(r).length>0&&(i.piHalogenCls.calculateHalogenPiInteractions(n.hashUtilsCls.hash2Atoms(r,i.atoms),n.hashUtilsCls.hash2Atoms(o,i.atoms),parseFloat(s),"graph","pi-stacking",!0),l=n.hashUtilsCls.cloneHash(i.resid2Residhash)),a+=this.getGraphLinks(l,l,n.htmlCls.pistackingInsideColor,t,n.htmlCls.pistackingInsideValue),a}getContactLinksForSet(e,t,s){let i=this.icn3d;i.icn3dui;let n=[],l="",r="",o={};for(let t in e){let e=i.atoms[t];e.ss==l&&e.chain==r||(Object.keys(o).length>0&&n.push(o),o={}),o[e.serial]=1,l=e.ss,r=e.chain}Object.keys(o).length>0&&n.push(o);let a=n.length,d="";for(let e=0;ed?s?-1:1:ah?1:c1&&Object.keys(n).length>1)return void alert("Please select one ligand or residue as one of the interaction sets...");Object.keys(e).length0&&Object.keys(a).length>0)){let t,s=c.hBondCls.calculateChemicalHbonds(h.hashUtilsCls.hash2Atoms(d,c.atoms),h.hashUtilsCls.hash2Atoms(a,c.atoms),parseFloat(e),n);n?(c.resid2ResidhashSaltbridge=h.hashUtilsCls.cloneHash(c.resid2Residhash),t="all atoms that have salt bridges with the selected atoms"):(c.resid2ResidhashHbond=h.hashUtilsCls.cloneHash(c.resid2Residhash),t="all atoms that are hydrogen-bonded with the selected atoms");let i={};for(let e in s){i[c.atoms[e].structure+"_"+c.atoms[e].chain+"_"+c.atoms[e].resi]=1}c.hAtoms={};for(let e in i)for(let t in c.residues[e])c.hAtoms[t]=1,c.atoms[t].style2="stick";let l=r+"_auto";c.selectionCls.addCustomSelection(Object.keys(i),l,t,o,!0),c.selectionCls.saveSelectionIfSelected(),c.drawCls.draw()}}showHydrogens(){let e=this.icn3d;if(void 0!==e.icn3dui.cfg.cid)for(let t in e.hAtoms){let s=e.atoms[t];if("H"!==s.elem.substr(0,1)){e.atoms[s.serial].bonds=e.atoms[s.serial].bonds2.concat(),e.atoms[s.serial].bondOrder=e.atoms[s.serial].bondOrder2.concat();for(let t=0,i=e.atoms[s.serial].bonds.length;t0){let i=e.atoms[t].bonds[0];e.atoms[i].bonds.push(s.serial),e.atoms[i].bondOrder&&e.atoms[i].bondOrder.push(1)}e.dAtoms[t]=1}} //!!!ic.bShowHighlight = false; }hideHydrogens(){let e=this.icn3d;e.icn3dui;for(let t in e.hAtoms){let s=e.atoms[t];if("H"===s.elem.substr(0,1)){if(e.atoms[s.serial].bonds.length>0){let t=e.atoms[s.serial].bonds[0],i=e.atoms[t].bonds?e.atoms[t].bonds.indexOf(s.serial):-1;-1!==i&&(e.atoms[t].bonds.splice(i,1),e.atoms[t].bondOrder&&e.atoms[t].bondOrder.splice(i,1))}delete e.dAtoms[s.serial],delete e.hAtoms[s.serial]}}}hideExtraBonds(){let e=this.icn3d;e.icn3dui;for(let t in e.atoms)e.atoms[t].style2="nothing";for(let t in e.sidec)e.hAtoms.hasOwnProperty(t)&&(e.atoms[t].style2=e.opts.sidec);for(let t in e.water)e.hAtoms.hasOwnProperty(t)&&(e.atoms[t].style=e.opts.water)}hideHbondsContacts(){let e=this.icn3d,t=e.icn3dui,s="set hbonds off";t.htmlCls.clickMenuCls.setLogCmd(s,!0),e.hBondCls.hideHbonds(),s="set salt bridge off",t.htmlCls.clickMenuCls.setLogCmd(s,!0),e.saltbridgeCls.hideSaltbridge(),s="set contact off",t.htmlCls.clickMenuCls.setLogCmd(s,!0),e.contactCls.hideContact(),s="set halogen pi off",t.htmlCls.clickMenuCls.setLogCmd(s,!0),e.piHalogenCls.hideHalogenPi(),this.hideExtraBonds()}showIonicInteractions(e,t,s,i,n,l){let r,o,a,d,c=this.icn3d,h=c.icn3dui;if(!i&&(r="saltbridge",o="salt bridge "+e+" | sets "+t+" "+s+" | "+i,c.opts.saltbridge="yes",a=c.definedSetsCls.getAtomsFromNameArray(t),d=c.definedSetsCls.getAtomsFromNameArray(s),c.firstAtomObjCls.getFirstAtomObj(a),Object.keys(d).length>0&&Object.keys(a).length>0)){let t,s=c.saltbridgeCls.calculateIonicInteractions(h.hashUtilsCls.hash2Atoms(d,c.atoms),h.hashUtilsCls.hash2Atoms(a,c.atoms),parseFloat(e),n);c.resid2ResidhashSaltbridge=h.hashUtilsCls.cloneHash(c.resid2Residhash),t="all atoms that have ionic interactions with the selected atoms";let i={};for(let e in s){i[c.atoms[e].structure+"_"+c.atoms[e].chain+"_"+c.atoms[e].resi]=1}c.hAtoms={};for(let e in i)for(let t in c.residues[e])c.hAtoms[t]=1,c.atoms[t].style2="stick",c.ions.hasOwnProperty(t)&&(c.atoms[t].style2="sphere");let l="saltbridge_auto";c.selectionCls.addCustomSelection(Object.keys(i),l,t,o,!0),c.selectionCls.saveSelectionIfSelected(),c.drawCls.draw()}}showHalogenPi(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(i)return;let a,d,c=l+" "+e+" | sets "+t+" "+s+" | "+i;if(r.opts[l]="yes",a=r.definedSetsCls.getAtomsFromNameArray(t),d=r.definedSetsCls.getAtomsFromNameArray(s),r.firstAtomObjCls.getFirstAtomObj(a),Object.keys(d).length>0&&Object.keys(a).length>0){let t,s=r.piHalogenCls.calculateHalogenPiInteractions(o.hashUtilsCls.hash2Atoms(a,r.atoms),o.hashUtilsCls.hash2Atoms(d,r.atoms),parseFloat(e),n,l);"halogen"==l?(r.resid2ResidhashHalogen=o.hashUtilsCls.cloneHash(r.resid2Residhash),t="all atoms that have halogen bonds with the selected atoms"):"pi-cation"==l?(r.resid2ResidhashPication=o.hashUtilsCls.cloneHash(r.resid2Residhash),t="all atoms that have pi-cation interactions with the selected atoms"):"pi-stacking"==l&&(r.resid2ResidhashPistacking=o.hashUtilsCls.cloneHash(r.resid2Residhash),t="all atoms that have pi-stacking with the selected atoms");let i={};for(let e in s){i[r.atoms[e].structure+"_"+r.atoms[e].chain+"_"+r.atoms[e].resi]=1}r.hAtoms={};for(let e in i)for(let t in r.residues[e])r.hAtoms[t]=1,r.atoms[t].style2="stick",r.ions.hasOwnProperty(t)&&(r.atoms[t].style2="sphere");let h=l+"_auto";r.selectionCls.addCustomSelection(Object.keys(i),h,t,c,!0),r.selectionCls.saveSelectionIfSelected(),r.drawCls.draw()}}showClbonds(){let e=this.icn3d,t=e.icn3dui;e.opts.clbonds="yes";let s=e.applyClbondsCls.applyClbondsOptions();for(let i in s)e.hAtoms=t.hashUtilsCls.unionHash(e.hAtoms,e.residues[i]);if(Object.keys(s).length>0){let t="clbonds",i="all atoms that have cross-linkages";e.selectionCls.addCustomSelection(Object.keys(s),t,i,"cross linkage",!0),e.selectionCls.saveSelectionIfSelected(),e.drawCls.draw()}}showSsbonds(){let e=this.icn3d,t=e.icn3dui;e.opts.ssbonds="yes";let s={},i=Object.keys(e.structures);for(let n=0,l=i.length;n0){let t="ssbonds",i="all atoms that have disulfide bonds";e.selectionCls.addCustomSelection(Object.keys(s),t,i,"disulfide bonds",!0),e.selectionCls.saveSelectionIfSelected(),e.drawCls.draw()}}pickCustomSphere(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui;if(i)return;let a,d,c="select zone cutoff "+e+" | sets "+t+" "+s+" | "+i;n&&(c="interactions "+e+" | sets "+t+" "+s+" | "+i,r.opts.contact="yes"),a=r.definedSetsCls.getAtomsFromNameArray(t),d=r.definedSetsCls.getAtomsFromNameArray(s);let h,p,m=this.pickCustomSphere_base(e,a,d,i,n,l,c,!0),u=Object.keys(m.residues);r.hAtoms={};for(let e=0,t=u.length;e1?"structure":v>1?"chain":"residue";let w=[];if(n&&w.push("hbonds"),l&&w.push("salt bridge"),r&&w.push("interactions"),o&&w.push("halogen"),a&&w.push("pi-cation"),d&&w.push("pi-stacking"),s||(p.resids2inter={},p.resids2interAll={}),l){let n=parseFloat($("#"+p.pre+"saltbridgethreshold").val());n&&!isNaN(n)||(n=p.tsIonic),s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.showIonicInteractions(n,e,t,s,!0,i)),g=m.hashUtilsCls.unionHash(g,p.hAtoms)}if(n){let n=parseFloat($("#"+p.pre+"hbondthreshold").val());n&&!isNaN(n)||(n=p.tsHbond),s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.showHbonds(n,e,t,s,void 0,i)),g=m.hashUtilsCls.unionHash(g,p.hAtoms)}let S,A,x,k,O="";if(n&&(O+=this.exportHbondPairs(i,u)),l&&(O+=this.exportSaltbridgePairs(i,u)),o){let n=parseFloat($("#"+p.pre+"halogenthreshold").val());n&&!isNaN(n)||(n=p.tsHalogen),s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.showHalogenPi(n,e,t,s,i,"halogen")),g=m.hashUtilsCls.unionHash(g,p.hAtoms),O+=this.exportHalogenPiPairs(i,u,"halogen")}if(a){let n=parseFloat($("#"+p.pre+"picationthreshold").val());n&&!isNaN(n)||(n=p.tsPication),s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.showHalogenPi(n,e,t,s,i,"pi-cation")),g=m.hashUtilsCls.unionHash(g,p.hAtoms),O+=this.exportHalogenPiPairs(i,u,"pi-cation")}if(d){let n=parseFloat($("#"+p.pre+"pistackingthreshold").val());n&&!isNaN(n)||(n=p.tsPistacking),s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.showHalogenPi(n,e,t,s,i,"pi-stacking")),g=m.hashUtilsCls.unionHash(g,p.hAtoms),O+=this.exportHalogenPiPairs(i,u,"pi-stacking")}if(r){let n=C?c:parseFloat($("#"+p.pre+"contactthreshold").val());if(n&&!isNaN(n)||(n=p.tsContact),1!=e.length||1!=t.length||e[0]!=t[0])s||(p.hAtoms=m.hashUtilsCls.cloneHash(f),p.showInterCls.pickCustomSphere(n,e,t,s,!0,i)),g=m.hashUtilsCls.unionHash(g,p.hAtoms),O+=this.exportSpherePairs(!0,i,u);else{if(!s){let l={},o={};if(C){let e=!0,t=p.showInterCls.pickCustomSphere_base(n,b,y,s,!0,void 0,void 0,!0,e);l=m.hashUtilsCls.unionHash(l,t.residues);for(let e in t.resid2Residhash)o[e]=m.hashUtilsCls.unionHash(o[e],t.resid2Residhash[e])}else{let r=[],a="",d="",c={};for(let e in b){let t=p.atoms[e];t.ss==a&&t.chain==d||(Object.keys(c).length>0&&r.push(c),c={}),c[t.serial]=1,a=t.ss,d=t.chain}Object.keys(c).length>0&&r.push(c);let h=r.length,u="interactions "+n+" | sets "+e+" "+t+" | true";p.opts.contact="yes";for(let e=0;e
    ",T=p.resid2specCls.atoms2residues(Object.keys(b)),P=p.resid2specCls.atoms2residues(Object.keys(y)),D="select "+p.resid2specCls.residueids2spec(T),M="select "+p.resid2specCls.residueids2spec(P);E+="Set 1: "+e+'
    ',E+="Set 2: "+t+'

    ',E+='
    The interfaces are:
    ';let F=p.resid2specCls.atoms2residues(Object.keys(R)),H=p.resid2specCls.atoms2residues(Object.keys(I)),L="select "+p.resid2specCls.residueids2spec(F),N="select "+p.resid2specCls.residueids2spec(H);E+='interface_1
    ',E+='interface_2

    ',E+='
    Note: Each checkbox below selects the corresponding residue. You can click "Save Selection" in the "Select" menu to save the selection and click on "Highlight" button to clear the checkboxes.

    ';let q=E;if(("graph"==i||"linegraph"==i||"scatterplot"==i||C)&&(E=""),E+=O,"save1"==i||"save2"==i){E=q;let e="";"save1"==i?e="Set 1":"save2"==i&&(e="Set 2"),E+='

    Interactions Sorted on '+e+':
    ';let t=this.getAllInteractionTable(i);E+=t.html,h=t.bondCnt,$("#"+p.pre+"dl_interactionsorted_html").html(E),m.htmlCls.dialogCls.openDlg("dl_interactionsorted","Show sorted interactions")}else if("view"==i)$("#"+p.pre+"dl_allinteraction_html").html(E),m.htmlCls.dialogCls.openDlg("dl_allinteraction","Show interactions");else if("linegraph"==i){m.htmlCls.dialogCls.openDlg("dl_linegraph","Show interactions between two lines of residue nodes"),p.graphStr=p.getGraphCls.getGraphData(b,y,e,t,E,u),p.bLinegraph=!0;let s=p.lineGraphCls.drawLineGraph(p.graphStr);$("#"+p.pre+"linegraphDiv").html(s)}else if("scatterplot"==i){m.htmlCls.dialogCls.openDlg("dl_scatterplot","Show interactions as scatterplot"),p.graphStr=p.getGraphCls.getGraphData(b,y,e,t,E,u),p.bScatterplot=!0;let s=p.lineGraphCls.drawLineGraph(p.graphStr,!0);$("#"+p.pre+"scatterplotDiv").html(s)}else if("ligplot"==i)await p.ligplotCls.drawLigplot(b);else if(C){m.htmlCls.dialogCls.openDlg("dl_contactmap","Show contact map");let s=!0,i=p.getGraphCls.getGraphData(b,y,e,t,E,u,s);p.bContactMap=!0;let n=p.contactMapCls.drawContactMap(i);$("#"+p.pre+"contactmapDiv").html(n)}else if("graph"==i){if(p.graphStr=p.getGraphCls.getGraphData(b,y,e,t,E,u),p.bGraph=!0,Object.keys(y).length+Object.keys(b).length>Object.keys(p.dAtoms).length&&(p.graphStr=p.selectionCls.getGraphDataForDisplayed()),void 0===p.bD3){let e="./script/d3v4-force-all.min.js";await m.getAjaxPromise(e,"script"),p.bD3=!0}$("#"+m.svgid).empty(),m.htmlCls.dialogCls.openDlg("dl_graph","Force-directed graph"),p.drawGraphCls.drawGraph(p.graphStr,p.pre+"dl_graph")}return{interactionTypes:w.toString(),bondCnt:h}}clearInteractions(){let e=this.icn3d;e.icn3dui,e.lines.hbond=[],e.hbondpnts=[],e.lines.saltbridge=[],e.saltbridgepnts=[],e.lines.contact=[],e.contactpnts=[],e.lines.halogen=[],e.lines["pi-cation"]=[],e.lines["pi-stacking"]=[],e.halogenpnts=[],e.picationpnts=[],e.pistackingpnts=[]}resetInteractionPairs(){let e=this.icn3d;e.icn3dui,e.bHbondCalc=!1,e.showInterCls.hideHbondsContacts(),e.hlUpdateCls.clearHighlight(),e.resids2inter={},e.resids2interAll={}}async retrieveInteractionData(){let e=this.icn3d,t=e.icn3dui;if(!e.b2DShown)if(void 0!==t.cfg.align){let s=Object.keys(e.structures);if(2==t.cfg.atype){let t=!0;await e.alignParserCls.downloadAlignment(s[0]+","+s[1],t)}await e.ParserUtilsCls.set2DDiagramsForAlign(s[0].toUpperCase(),s[1].toUpperCase())}else void 0!==t.cfg.chainalign?(Object.keys(e.structures),await e.ParserUtilsCls.set2DDiagramsForChainalign(e.chainidArray)):e.ParserUtilsCls.download2Ddgm(e.inputid.toUpperCase())}getAllInteractionTable(e,t,s,i,n,l){let r=this.icn3d,o=r.icn3dui,a="",d="",c=[],h=Object.keys(r.resids2inter);("save1"==e||"save2"==e)&&h.sort((function(t,s){return o.utilsCls.compResid(t,s,e)}));let p,m,u="",g="",f="",C="",b="",y="",v="",_="",w="",S=0,A=0,x=0,k=0,O=0,R=0,I="";for(let o=0,E=h.length;o0&&p!=g&&(c.push({res1:g,res2:I,cntHbond:S,cntIonic:A,cntContact:x,cntHalegen:k,cntPication:O,cntPistacking:R}),u+=this.getInteractionPerResidue(f,C,b,y,v,_,w,S,A,x,k,O,R),C="",b="",y="",v="",_="",w="",S=0,A=0,x=0,k=0,O=0,R=0,I=""),P=r.resids2inter[E].hbond,D=this.getInteractionPairDetails(P,e,"hbond",t,s,i,n,l),C+=D.html,S+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":hbond_"+D.cnt+" "),P=r.resids2inter[E].ionic,D=this.getInteractionPairDetails(P,e,"ionic",t,s,i,n,l),b+=D.html,A+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":ionic_"+D.cnt+" "),P=r.resids2inter[E].halogen,D=this.getInteractionPairDetails(P,e,"halogen",t,s,i,n,l),v+=D.html,k+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":halogen_"+D.cnt+" "),P=r.resids2inter[E]["pi-cation"],D=this.getInteractionPairDetails(P,e,"pi-cation",t,s,i,n,l),_+=D.html,O+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":pi-cation_"+D.cnt+" "),P=r.resids2inter[E]["pi-stacking"],D=this.getInteractionPairDetails(P,e,"pi-stacking",t,s,i,n,l),w+=D.html,R+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":pi-stacking_"+D.cnt+" "),P=r.resids2inter[E].contact,D=this.getContactPairDetails(P,e,"contact",t,s,i,n,l),y+=D.html,x+=D.cnt,a+=D.svgHtmlNode,d+=D.svgHtmlLine,D.cnt>0&&(I+=m+":contact_"+D.cnt+" "),g=p,f=M}c.push({res1:g,res2:I,cntHbond:S,cntIonic:A,cntContact:x,cntHalegen:k,cntPication:O,cntPistacking:R}),u+=this.getInteractionPerResidue(f,C,b,y,v,_,w,S,A,x,k,O,R);let E="";if(h.length>0){E+='
    ',E+="",E+="",E+="",E+="",E+="";let e='';E+=e,E+=e,E+='',E+=e,E+=e,E+=e,E+="",E+="",E+=u,E+="
    Residue# Hydrogen
    Bond
    # Salt Bridge
    /Ionic Interaction
    # Contact# Halogen
    Bond
    # π-Cation# π-StackingHydrogen Bond (backbone atoms: @CA, @N, @C, @O)Salt Bridge/Ionic InteractionContactHalogen Bondπ-Cationπ-Stacking
    Atom1Atom2Distance(Å)Highlight in 3D
    Atom1Atom2# ContactsMin Distance(Å)C-alpha Distance(Å)Highlight in 3D

    "}return{html:E,bondCnt:c,svgHtmlNode:a,svgHtmlLine:d}}getInteractionPerResidue(e,t,s,i,n,l,r,o,a,d,c,h,p){this.icn3d.icn3dui;let m="";m+=''+e[3]+e[2]+""+o+""+a+""+d+""+c+""+h+""+p+"";let u=[t,s,i,n,l,r];for(let e in u){m+=''+u[e]+"
    "}return m+="",m}getInteractionPairDetails(e,t,s,i,n,l,r,o){let a=this.icn3d;a.icn3dui;let d="",c="",h="",p=0,m='    ';if(void 0!==e){a.resid2cnt||(a.resid2cnt={}),a.resid2ToXy||(a.resid2ToXy={}),a.nodeid2lineid||(a.nodeid2lineid={});for(let g in e){let f=g.split("|"),C="save1"==t?f[0]:f[1],b="save1"==t?f[1]:f[0],y=C.lastIndexOf(" "),v=b.lastIndexOf(" "),_=C.substr(0,y),w=b.substr(0,v),S=a.getGraphCls.convertLabel2Resid(_),A=a.firstAtomObjCls.getFirstAtomObj(a.residues[S]),x=A.color?A.color.getHexString():"",k=a.getGraphCls.convertLabel2Resid(w),O=a.firstAtomObjCls.getFirstAtomObj(a.residues[k]),R=O.color?O.color.getHexString():"",I=Math.sqrt(e[g]).toFixed(1);if(h+=' '+_+m+x+u+' '+w+m+R+u+''+I+"",h+='',h+="",++p,i){let e=C.substr(y+1).split(","),t=a.ligplotCls.getSvgPerPair(e,_,w,s,i,n,l,r,o,I);d+=t.node,c+=t.line}}}return{html:h,cnt:p,svgHtmlNode:d,svgHtmlLine:c}}getContactPairDetails(e,t,s,i,n,l,r,o){let a=this.icn3d;a.icn3dui;let d="",c="",h="",p=0,m='    ';if(void 0!==e){let g={};a.resid2cnt||(a.resid2cnt={}),a.resid2ToXy||(a.resid2ToXy={}),a.nodeid2lineid||(a.nodeid2lineid={});for(let s in e){let n=s.split("|"),l="save1"==t?n[0]:n[1],r="save1"==t?n[1]:n[0],o=l.lastIndexOf(" "),d=r.lastIndexOf(" "),c=l.substr(o+1).split(","),h=l.substr(0,o);i&&(h+="@"+a.atoms[c[0]].name);let p=r.substr(0,d),m=h+"|"+p,u=a.getGraphCls.convertLabel2Resid(h);a.firstAtomObjCls.getFirstAtomObj(a.residues[u]);let f=a.getGraphCls.convertLabel2Resid(p);a.firstAtomObjCls.getFirstAtomObj(a.residues[f]);let C=e[s].split("_"),b=parseFloat(C[0]),y=parseInt(C[4]);g.hasOwnProperty(m)?(g[m].cnt+=y,b '+s+"@"+v+m+r+u+' '+i+"@"+_+m+c+u+''+w+''+b+''+y+"",h+='',h+="",p+=parseInt(w)}if(i)for(let e in f){let t,h,p=f[e];for(let m=0,u=p.length;m"+n+""}s+="
    ";let i=Object.keys(t.utilsCls.getHlStructures()).join(",");e.saveFileCls.saveFile(i+"_interactions.html","html",s)}exportSsbondPairs(){var e=this.icn3d,t=e.icn3dui;let s="",i=0;for(let t in e.structures){let n=e.ssbondpnts[t];if(void 0===n)break;for(let e=0,t=n.length;e"+n[e]+" Cys"+n[e+1]+" Cys",++i}}let n='

    '+i+" disulfide pairs:

    ";n+=s,n+="
    Residue ID 1Residue ID 2

    ";let l=Object.keys(t.utilsCls.getHlStructures()).join(",");e.saveFileCls.saveFile(l+"_disulfide_pairs.html","html",n)}exportClbondPairs(){var e=this.icn3d,t=e.icn3dui;let s="",i=0,n={};for(let t in e.structures){let l=e.clbondpnts[t];if(void 0===l)break;for(let t=0,r=l.length;t"+r+" "+t.resn+""+o+" "+n.resn+"",++i}n[r+"_"+o]=1,n[o+"_"+r]=1}}let l='

    '+i+" cross-linkage pairs:

    ";l+=s,l+="
    Residue ID 1Residue ID 2

    ";let r=Object.keys(t.utilsCls.getHlStructures()).join(",");e.saveFileCls.saveFile(r+"_crosslinkage_pairs.html","html",l)}exportHbondPairs(e,t){var s=this.icn3d,i=s.icn3dui;let n="",l=0,r='    ';for(let t in s.resid2ResidhashHbond){let i=s.getGraphCls.convertLabel2Resid(t),a=s.firstAtomObjCls.getFirstAtomObj(s.residues[i]),d=a.color?a.color.getHexString():"";for(let i in s.resid2ResidhashHbond[t]){let a=s.getGraphCls.convertLabel2Resid(i),c=s.firstAtomObjCls.getFirstAtomObj(s.residues[a]),h=c.color?c.color.getHexString():"",p=Math.sqrt(s.resid2ResidhashHbond[t][i]).toFixed(1);n+=' '+t+r+d+o+' '+i+r+h+o+''+p+"","view"==e&&(n+=''),n+="",++l}}let a='

    '+l+" hydrogen bond pairs (backbone atoms: @CA, @N, @C, @O):

    ";if(l>0&&(a+="
    ","view"==e&&(a+=''),a+="",a+=n,a+="
    Atom 1Atom 2Distance(Å)Highlight in 3D

    "),"graph"==e||"linegraph"==e||"scatterplot"==e){return s.getGraphCls.getGraphLinks(s.resid2ResidhashHbond,s.resid2ResidhashHbond,i.htmlCls.hbondColor,t,i.htmlCls.hbondValue)}return a}exportSaltbridgePairs(e,t){var s=this.icn3d,i=s.icn3dui;let n="",l=0,r='    ';for(let t in s.resid2ResidhashSaltbridge){let i=s.getGraphCls.convertLabel2Resid(t),a=s.firstAtomObjCls.getFirstAtomObj(s.residues[i]),d=a.color?a.color.getHexString():"";for(let i in s.resid2ResidhashSaltbridge[t]){let a=s.getGraphCls.convertLabel2Resid(i),c=s.firstAtomObjCls.getFirstAtomObj(s.residues[a]),h=c.color?c.color.getHexString():"",p=Math.sqrt(s.resid2ResidhashSaltbridge[t][i]).toFixed(1);n+=' '+t+r+d+o+' '+i+r+h+o+''+p+"","view"==e&&(n+=''),n+="",++l}}let a='

    '+l+" salt bridge/ionic interaction pairs:

    ";if(l>0&&(a+="
    ","view"==e&&(a+=''),a+="",a+=n,a+="
    Atom 1Atom 2Distance(Å)Highlight in 3D

    "),"graph"==e||"linegraph"==e||"scatterplot"==e){return s.getGraphCls.getGraphLinks(s.resid2ResidhashSaltbridge,s.resid2ResidhashSaltbridge,i.htmlCls.ionicColor,t,i.htmlCls.ionicValue)}return a}exportHalogenPiPairs(e,t,s){var i=this.icn3d,n=i.icn3dui;let l,r,o,a="",d=0,c='    ';"halogen"==s?(l=i.resid2ResidhashHalogen,r=n.htmlCls.halogenColor,o=n.htmlCls.halogenValue):"pi-cation"==s?(l=i.resid2ResidhashPication,r=n.htmlCls.picationColor,o=n.htmlCls.picationValue):"pi-stacking"==s&&(l=i.resid2ResidhashPistacking,r=n.htmlCls.pistackingColor,o=n.htmlCls.pistackingValue);for(let t in l){let n=i.getGraphCls.convertLabel2Resid(t),r=i.firstAtomObjCls.getFirstAtomObj(i.residues[n]),o=r.color?r.color.getHexString():"";for(let n in l[t]){let r=i.getGraphCls.convertLabel2Resid(n),p=i.firstAtomObjCls.getFirstAtomObj(i.residues[r]),m=p.color?p.color.getHexString():"",u=Math.sqrt(l[t][n]).toFixed(1);a+=' '+t+c+o+h+' '+n+c+m+h+''+u+"","view"==e&&(a+=''),a+="",++d}}let p='

    '+d+" "+s+" pairs:

    ";if(d>0&&(p+="
    ","view"==e&&(p+=''),p+="",p+=a,p+="
    Atom 1Atom 2Distance(Å)Highlight in 3D

    "),"graph"==e||"linegraph"==e||"scatterplot"==e){return i.getGraphCls.getGraphLinks(l,l,r,t,o)}return p}exportSpherePairs(e,t,s){var i=this.icn3d,n=i.icn3dui;let l="",r=0,o=e?i.resid2ResidhashInteractions:i.resid2ResidhashSphere,a='    ';for(let s in o){let n=i.getGraphCls.convertLabel2Resid(s),c=i.firstAtomObjCls.getFirstAtomObj(i.residues[n]),h=c.color?c.color.getHexString():"";for(let n in o[s]){let p=i.getGraphCls.convertLabel2Resid(n),m=i.firstAtomObjCls.getFirstAtomObj(i.residues[p]),u=m.color?m.color.getHexString():"",g=o[s][n].split("_"),f=g[0],C=g[1];c=g[2],m=g[3];let b=g[4];e?(l+=' '+s+"@"+c+a+h+d+' '+n+"@"+m+a+u+d+''+b+''+f+''+C+"","view"==t&&(l+=''),l+=""):l+=""+s+""+n+''+b+''+f+''+C+"",++r}}let c='

    '+r+" residue pairs in "+(e?"the contacts":"sphere")+":

    ";if(r>0&&(e?(c+='
    ',"view"==t&&(c+=''),c+=""):c+='
    Residue 1Residue 2Num ContactsMin Distance(Å)C-alpha Distance(Å)Highlight in 3D
    ',c+=l,c+="
    Residue 1Residue 2Num ContactsMin Distance(Å)C-alpha Distance(Å)

    "),"graph"==t||"linegraph"==t||"scatterplot"==t||"calpha"==t||"cbeta"==t||"heavyatoms"==t){return i.getGraphCls.getGraphLinks(o,o,n.htmlCls.contactColor,s,n.htmlCls.contactValue)}return c}}class $t{constructor(e){this.icn3d=e}drawGraph(e,t){var s=this.icn3d,i=s.icn3dui;if(void 0===n)var n=d3;var l=JSON.parse(e),r=$("#"+t).width(),o=$("#"+t).height(),a=isNaN(r)?300:1*r,d=isNaN(o)?300:1*o,c=r,h=o,p=d3.select("#"+i.svgid).attr("width",r).attr("height",o).attr("viewBox","0,0,"+a+","+d);p.selectAll(".g-main").remove();var m=p.append("g").classed("g-main",!0),u=m.append("rect").attr("width",c).attr("height",h).style("fill","#FFF"),g=m.append("g"),f=n.zoom().on("zoom",(function(){g.attr("transform",n.event.transform)}));if(m.call(f),l.links){for(var C=[],b={},y=0,v=l.nodes.length;y0?n.structures[0]:n.defaultPdbId;p=10*(a.length+2)+20+30,h=10*(d.length+2)+20+30,t?(n.alignerrormapWidth=2*h,u=n.alignerrormapWidth,m=l.alignerrormapid):(n.contactmapWidth=2*h,u=n.contactmapWidth,m=l.contactmapid),i=o.length>0?"":"No interactions found for these two sets

    ",i+="";if(t){n.hex2id={};let e=29/s;n.hex2skip={};let t=1e3;for(let s=0;se&&(n.hex2skip[d]=c)}}if(i+=n.lineGraphCls.drawScatterplot_base(a,d,o,c,0,!0,void 0,void 0,t),g+=n.getGraphCls.updateGraphJson(f,1,a,d,o),i+="",g+="}\n",t){n.alignerrormapStr=g,$("#"+n.pre+"alignerrormapDiv").html(i);let e=$("#"+l.alignerrormapid+"_scale").val();$("#"+l.alignerrormapid).attr("width",(n.alignerrormapWidth*parseFloat(e)).toString()+"px")}else n.contactmapStr=g,$("#"+n.pre+"contactmapDiv").html(i);return i}}class jt{constructor(e){this.icn3d=e}async downloadAlignment(e,t){let s=this.icn3d,i=s.icn3dui,n=this;s.opts.proteins="c alpha trace";let l=e.split(","),r="ids="+e,o=i.htmlCls.baseUrl+"vastplus/vastplus.cgi?v=3&cmd=c&b=1&s=1&w3d&"+r;void 0!==i.cfg.inpara&&(o+=i.cfg.inpara),s.pdbid_chain2title={},void 0===s.chainids2resids&&(s.chainids2resids={});let a={},d="These two MMDB IDs "+l+' do not have 3D alignment data in the VAST+ database. You can try the VAST alignment by visiting the VAST+ page https://www.ncbi.nlm.nih.gov/Structure/vastplus/vastplus.cgi?uid=[PDB ID] (e.g., uid=1KQ2), and clicking "Original VAST"',c=await i.getAjaxPromise(o,"jsonp",!0,d);if(a=c.seqalign,void 0===a)return alert(d),!1;s.pdbid_molid2chain={},s.chainsColor={};for(let e=0,t=2;e5){let t=!1,s=!0;d=await r.pdbParserCls.loadPdbData(e,n,!1,t,"target",h,s)}else{let t=!0;d=await r.mmdbParserCls.parseMmdbData(e,"target",i[0],0,h,t)}for(let e=0,s=t.length;e5){let s=!0,i=!0;c=await r.pdbParserCls.loadPdbData(t[e],l,!1,s,"query",h,i)}else{let s=!0;c=await r.mmdbParserCls.parseMmdbData(t[e],"query",i[e+1],e,h,s)}d=o.hashUtilsCls.unionHash(d,c)}if(o.cfg.resnum)await r.realignParserCls.realignChainOnSeqAlign(s,i);else if(o.cfg.resdef)await r.realignParserCls.realignChainOnSeqAlign(s,i,void 0,!0);else{await r.pdbParserCls.applyCommandDssp(!0); //!!! diff --git a/src/html/events.js b/src/html/events.js index 96b88bf..42d9b39 100644 --- a/src/html/events.js +++ b/src/html/events.js @@ -200,8 +200,8 @@ class Events { saveHtml(id) { let me = this.icn3dui, ic = me.icn3d, thisClass = this; let html = ''; - html += '\n'; - html += '\n'; + html += '\n'; + html += '\n'; html += $("#" + id).html(); let idArray = id.split('_'); let idStr =(idArray.length > 2) ? idArray[2] : id;

    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