jbrowse-plugin-msaview 2.8.0 → 2.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -53,7 +53,7 @@ export default function stateModelFactory(): import("@jbrowse/mobx-state-tree").
53
53
  bgColor: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
54
54
  colorSchemeName: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
55
55
  showColumnStats: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
56
- msaFormat: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<import("msa-parsers").MSAFormat>>;
56
+ msaFormat: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<import("react-msaview").MSAFormat>>;
57
57
  }, "height" | "id" | "type" | "allowedGappyness" | "colWidth" | "collapsed" | "currentAlignment" | "data" | "drawMsaLetters" | "featureFilters" | "gffFilehandle" | "hideGaps" | "highlightColumns" | "msaFilehandle" | "relativeTo" | "rowHeight" | "scrollX" | "scrollY" | "scrollZoom" | "showDomains" | "showOnly" | "subFeatureRows" | "treeFilehandle" | "treeMetadataFilehandle" | "turnedOffTracks"> & {
58
58
  id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
59
59
  showDomains: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
@@ -507,7 +507,7 @@ export default function stateModelFactory(): import("@jbrowse/mobx-state-tree").
507
507
  setColorSchemeName(name: string): void;
508
508
  setBgColor(arg: boolean): void;
509
509
  setShowColumnStats(arg: boolean): void;
510
- setMSAFormat(arg?: import("msa-parsers").MSAFormat): void;
510
+ setMSAFormat(arg?: import("react-msaview").MSAFormat): void;
511
511
  } & {
512
512
  headerHeight: number;
513
513
  status: {
@@ -594,7 +594,7 @@ export default function stateModelFactory(): import("@jbrowse/mobx-state-tree").
594
594
  readonly noDomains: boolean;
595
595
  menuItems(): never[];
596
596
  readonly treeMetadata: Record<string, Record<string, string> | undefined>;
597
- readonly MSA: import("msa-parsers").MSAParserType | null;
597
+ readonly MSA: import("react-msaview").MSAParserType | null;
598
598
  readonly numColumns: number;
599
599
  readonly tree: import("react-msaview").NodeWithIds;
600
600
  readonly rowNames: string[];
@@ -956,7 +956,7 @@ export default function stateModelFactory(): import("@jbrowse/mobx-state-tree").
956
956
  bgColor: boolean;
957
957
  colorSchemeName: string;
958
958
  showColumnStats: boolean;
959
- msaFormat: import("msa-parsers").MSAFormat | undefined;
959
+ msaFormat: import("react-msaview").MSAFormat | undefined;
960
960
  drawLabels: boolean;
961
961
  labelsAlignRight: boolean;
962
962
  treeAreaWidth: number;
@@ -46,7 +46,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
46
46
  ${l[1]}`).join(`
47
47
  `),onProgress:l=>{t.setStatus(l?{...l,onCancel:()=>{a.abort()}}:void 0)},model:t,signal:a.signal})}catch(c){console.error(c),(0,_R.getSession)(t).notifyError(`${c}`,c)}finally{t.setStatus()}})(),e()}},"Send sequences to InterProScan")))}),KU=JU});function LR({model:e}){let{showDomains:t,actuallyShowDomains:r,subFeatureRows:n,noDomains:o}=e;return[{label:"Open domains...",icon:cd,onClick:()=>{e.queueDialog(i=>[ZU,{handleClose:i,model:e}])}},{label:"Query InterProScan for domains...",icon:WM,onClick:()=>{e.queueDialog(i=>[e9,{handleClose:i,model:e}])}},{label:`Show domains${o?" (no domains loaded)":""}`,disabled:o,icon:XM,checked:r?t:!1,type:"checkbox",onClick:()=>{e.setShowDomains(!t)}},{label:`Use sub-row layout${o?" (no domains loaded)":""}`,disabled:o,checked:r?n:!1,icon:zM,type:"checkbox",onClick:()=>{e.setSubFeatureRows(!n)}},{label:`Filter domains${o?" (no domains loaded)":""}`,icon:VM,disabled:o,onClick:()=>{e.queueDialog(i=>[XU,{onClose:i,model:e}])}}]}var pd,XU,ZU,e9,PR=m(()=>{pd=p(Q(),1);jM();a0();YM();JM();ZM();XU=(0,pd.lazy)(()=>Promise.resolve().then(()=>(rR(),tR))),ZU=(0,pd.lazy)(()=>Promise.resolve().then(()=>(lR(),cR))),e9=(0,pd.lazy)(()=>Promise.resolve().then(()=>(NR(),DR)))});var t9,S0,FR=m(()=>{t9={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},S0=t9});var r9,v0,OR=m(()=>{r9={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},v0=r9});var n9,B0,GR=m(()=>{n9={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},B0=n9});var o9,T0,UR=m(()=>{o9={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},T0=o9});var i9,Lo,HR=m(()=>{i9={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},Lo=i9});var VR=m(()=>{FR();OR();GR();UR();HR()});var YR=K((oce,WR)=>{"use strict";var s9=function(t){return a9(t)&&!c9(t)};function a9(e){return!!e&&typeof e=="object"}function c9(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||f9(e)}var l9=typeof Symbol=="function"&&Symbol.for,u9=l9?Symbol.for("react.element"):60103;function f9(e){return e.$$typeof===u9}function d9(e){return Array.isArray(e)?[]:{}}function sl(e,t){return t.clone!==!1&&t.isMergeableObject(e)?ga(d9(e),e,t):e}function A9(e,t,r){return e.concat(t).map(function(n){return sl(n,r)})}function m9(e,t){if(!t.customMerge)return ga;var r=t.customMerge(e);return typeof r=="function"?r:ga}function p9(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function jR(e){return Object.keys(e).concat(p9(e))}function $R(e,t){try{return t in e}catch{return!1}}function g9(e,t){return $R(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function h9(e,t,r){var n={};return r.isMergeableObject(e)&&jR(e).forEach(function(o){n[o]=sl(e[o],r)}),jR(t).forEach(function(o){g9(e,o)||($R(e,o)&&r.isMergeableObject(t[o])?n[o]=m9(o,r)(e[o],t[o],r):n[o]=sl(t[o],r))}),n}function ga(e,t,r){r=r||{},r.arrayMerge=r.arrayMerge||A9,r.isMergeableObject=r.isMergeableObject||s9,r.cloneUnlessOtherwiseSpecified=sl;var n=Array.isArray(t),o=Array.isArray(e),i=n===o;return i?n?r.arrayMerge(e,t,r):h9(e,t,r):sl(t,r)}ga.all=function(t,r){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(n,o){return ga(n,o,r)},{})};var y9=ga;WR.exports=y9});function JR(){return{palette:{...gd,mode:void 0},components:{MuiLink:{styleOverrides:{root:({theme:e})=>({color:e.palette.tertiary.main})}}}}}function k9(){return{...JR(),name:"Default (from config)"}}function D9(){return{...JR(),name:"Light (stock)"}}function N9(){return{name:"Dark (stock)",palette:{...gd,mode:"dark"},components:{MuiAppBar:{defaultProps:{enableColorOnDark:!0},styleOverrides:{root:({theme:e})=>e.palette.primary.main}}}}}function L9(){return{name:"Dark (minimal)",palette:{...gd,mode:"dark",primary:{main:Lo[700]},secondary:{main:Lo[800]},tertiary:Ue.palette.augmentColor({color:{main:Lo[900]}})}}}function P9(){return{name:"Light (minimal)",palette:{...gd,primary:{main:Lo[900]},secondary:{main:Lo[800]},tertiary:Ue.palette.augmentColor({color:{main:Lo[900]}})}}}var zR,x9,Ue,C9,b9,E9,qR,sce,w9,I9,S9,v9,B9,T9,M9,R9,Q9,_9,gd,ace,KR=m(()=>{zR=p(U(),1);VR();x9=p(YR(),1),Ue=(0,zR.createTheme)(),C9=Ue.palette.augmentColor({color:{main:"#0D233F"}}),b9=Ue.palette.augmentColor({color:{main:"#721E63"}}),E9=Ue.palette.augmentColor({color:{main:"#135560"}}),qR=Ue.palette.augmentColor({color:{main:"#FFB11D"}}),sce=Ue.palette.augmentColor({color:{main:"#aaa"}}),w9={A:Ue.palette.augmentColor({color:B0}),C:Ue.palette.augmentColor({color:v0}),G:Ue.palette.augmentColor({color:T0}),T:Ue.palette.augmentColor({color:S0})},I9=[null,Ue.palette.augmentColor({color:{main:"#FF8080"}}),Ue.palette.augmentColor({color:{main:"#80FF80"}}),Ue.palette.augmentColor({color:{main:"#8080FF"}}),Ue.palette.augmentColor({color:{main:"#8080FF"}}),Ue.palette.augmentColor({color:{main:"#80FF80"}}),Ue.palette.augmentColor({color:{main:"#FF8080"}})],S9=[null,Ue.palette.augmentColor({color:{main:"#8f8f8f"}}),Ue.palette.augmentColor({color:{main:"#adadad"}}),Ue.palette.augmentColor({color:{main:"#d8d8d8"}}),Ue.palette.augmentColor({color:{main:"#d8d8d8"}}),Ue.palette.augmentColor({color:{main:"#adadad"}}),Ue.palette.augmentColor({color:{main:"#8f8f8f"}})],v9="#e22",B9="#3e3",T9="#800080",M9="#808080",R9="#f00",Q9="#00f",_9="#97b8c9",gd={primary:C9,secondary:b9,tertiary:E9,quaternary:qR,highlight:qR,stopCodon:v9,startCodon:B9,insertion:T9,deletion:M9,softclip:Q9,hardclip:R9,bases:w9,frames:S9,framesCDS:I9,skip:_9};ace={default:k9(),lightStock:D9(),lightMinimal:P9(),darkMinimal:L9(),darkStock:N9()}});var XR=m(()=>{});function hd(){return typeof window<"u"}function Po(e){return R0(e)?(e.nodeName||"").toLowerCase():"#document"}function Qt(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function ro(e){var t;return(t=(R0(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function R0(e){return hd()?e instanceof Node||e instanceof Qt(e).Node:!1}function _t(e){return hd()?e instanceof Element||e instanceof Qt(e).Element:!1}function zr(e){return hd()?e instanceof HTMLElement||e instanceof Qt(e).HTMLElement:!1}function al(e){return!hd()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Qt(e).ShadowRoot}function cl(e){let{overflow:t,overflowX:r,overflowY:n,display:o}=kr(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+r)&&o!=="inline"&&o!=="contents"}function ZR(e){return/^(table|td|th)$/.test(Po(e))}function ll(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}function yd(e){let t=_t(e)?kr(e):e;return Ri(t.transform)||Ri(t.translate)||Ri(t.scale)||Ri(t.rotate)||Ri(t.perspective)||!ul()&&(Ri(t.backdropFilter)||Ri(t.filter))||F9.test(t.willChange||"")||O9.test(t.contain||"")}function e2(e){let t=to(e);for(;zr(t)&&!Qi(t);){if(yd(t))return t;if(ll(t))return null;t=to(t)}return null}function ul(){return M0==null&&(M0=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),M0}function Qi(e){return/^(html|body|#document)$/.test(Po(e))}function kr(e){return Qt(e).getComputedStyle(e)}function fl(e){return _t(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function to(e){if(Po(e)==="html")return e;let t=e.assignedSlot||e.parentNode||al(e)&&e.host||ro(e);return al(t)?t.host:t}function t2(e){let t=to(e);return Qi(t)?(e.ownerDocument||e).body:zr(t)&&cl(t)?t:t2(t)}function ha(e,t,r){var n;t===void 0&&(t=[]),r===void 0&&(r=!0);let o=t2(e),i=o===((n=e.ownerDocument)==null?void 0:n.body),s=Qt(o);if(i){let a=xd(s);return t.concat(s,s.visualViewport||[],cl(o)?o:[],a&&r?ha(a):[])}else return t.concat(o,ha(o,[],r))}function xd(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}var F9,O9,Ri,M0,Cd=m(()=>{F9=/transform|translate|scale|rotate|perspective|filter/,O9=/paint|layout|strict|content/,Ri=e=>!!e&&e!=="none"});function Q0(e,t){return typeof e=="function"?e(t):e}function _0(e){return e.split("-")[0]}function k0(e){return e.split("-")[1]}function r2(e){return e==="x"?"y":"x"}function n2(e){return e==="y"?"height":"width"}function Ed(e){let t=e[0];return t==="t"||t==="b"?"y":"x"}function o2(e){return r2(Ed(e))}function G9(e){var t,r,n,o;return{top:(t=e.top)!=null?t:0,right:(r=e.right)!=null?r:0,bottom:(n=e.bottom)!=null?n:0,left:(o=e.left)!=null?o:0}}function i2(e){return typeof e!="number"?G9(e):{top:e,right:e,bottom:e,left:e}}function ki(e){let{x:t,y:r,width:n,height:o}=e;return{width:n,height:o,top:r,left:t,right:t+n,bottom:r+o,x:t,y:r}}var bd,_i,dl,Bn,wd=m(()=>{bd=Math.min,_i=Math.max,dl=Math.round,Bn=e=>({x:e,y:e})});function a2(e,t){if(!e||!t)return!1;let r=t.getRootNode==null?void 0:t.getRootNode();if(e.contains(t))return!0;if(r&&al(r)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function c2(e){return"composedPath"in e?e.composedPath()[0]:e.target}function l2(e,t){let r=["mouse","pen"];return t||r.push("",void 0),r.includes(e)}function Id(e){let t=Al.useRef(()=>{});return $9(()=>{t.current=e}),Al.useCallback(function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return t.current==null?void 0:t.current(...n)},[])}var Al,s2,U9,H9,ml,V9,j9,$9,u2=m(()=>{Cd();Al=p(Q(),1),s2=p(Q(),1);U9=typeof document<"u",H9=function(){},ml=U9?s2.useLayoutEffect:H9,V9={...Al},j9=V9.useInsertionEffect,$9=j9||(e=>e())});function f2(e,t,r){let{reference:n,floating:o}=e,i=Ed(t),s=o2(t),a=n2(s),c=_0(t),l=i==="y",u=n.x+n.width/2-o.width/2,d=n.y+n.height/2-o.height/2,A=n[a]/2-o[a]/2,f;switch(c){case"top":f={x:u,y:n.y-o.height};break;case"bottom":f={x:u,y:n.y+n.height};break;case"right":f={x:n.x+n.width,y:d};break;case"left":f={x:n.x-o.width,y:d};break;default:f={x:n.x,y:n.y}}let g=k0(t);return g&&(f[s]+=A*(g==="end"?1:-1)*(r&&l?-1:1)),f}async function d2(e,t){var r;t===void 0&&(t={});let{x:n,y:o,platform:i,rects:s,elements:a,strategy:c}=e,{boundary:l="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:A=!1,padding:f=0}=Q0(t,e),g=i2(f),y=a[A?d==="floating"?"reference":"floating":d],E=ki(await i.getClippingRect({element:(r=await(i.isElement==null?void 0:i.isElement(y)))==null||r?y:y.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(a.floating)),boundary:l,rootBoundary:u,strategy:c})),x=d==="floating"?{x:n,y:o,width:s.floating.width,height:s.floating.height}:s.reference,S=await(i.getOffsetParent==null?void 0:i.getOffsetParent(a.floating)),w=await(i.isElement==null?void 0:i.isElement(S))&&await(i.getScale==null?void 0:i.getScale(S))||{x:1,y:1},I=ki(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:a,rect:x,offsetParent:S,strategy:c}):x);return{top:(E.top-I.top+g.top)/w.y,bottom:(I.bottom-E.bottom+g.bottom)/w.y,left:(E.left-I.left+g.left)/w.x,right:(I.right-E.right+g.right)/w.x}}async function q9(e,t){let{placement:r,platform:n,elements:o}=e,i=await(n.isRTL==null?void 0:n.isRTL(o.floating)),s=_0(r),a=k0(r),c=Ed(r)==="y",l=Y9.has(s)?-1:1,u=i&&c?-1:1,d=Q0(t,e),{mainAxis:A,crossAxis:f,alignmentAxis:g}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return a&&typeof g=="number"&&(f=a==="end"?g*-1:g),c?{x:f*u,y:A*l}:{x:A*l,y:f*u}}var W9,A2,Y9,m2,p2=m(()=>{wd();wd();W9=50,A2=async(e,t,r)=>{let{placement:n="bottom",strategy:o="absolute",middleware:i=[],platform:s}=r,a=s.detectOverflow?s:{...s,detectOverflow:d2},c=await(s.isRTL==null?void 0:s.isRTL(t)),l=await s.getElementRects({reference:e,floating:t,strategy:o}),{x:u,y:d}=f2(l,n,c),A=n,f=0,g={};for(let h=0;h<i.length;h++){let y=i[h];if(!y)continue;let{name:E,fn:x}=y,{x:S,y:w,data:I,reset:v}=await x({x:u,y:d,initialPlacement:n,placement:A,strategy:o,middlewareData:g,rects:l,platform:a,elements:{reference:e,floating:t}});u=S??u,d=w??d,g[E]={...g[E],...I},v&&f<W9&&(f++,typeof v=="object"&&(v.placement&&(A=v.placement),v.rects&&(l=v.rects===!0?await s.getElementRects({reference:e,floating:t,strategy:o}):v.rects),{x:u,y:d}=f2(l,A,c)),h=-1)}return{x:u,y:d,placement:A,strategy:o,middlewareData:g}},Y9=new Set(["left","top"]);m2=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var r,n;let{x:o,y:i,placement:s,middlewareData:a}=t,c=await q9(t,e);return s===((r=a.offset)==null?void 0:r.placement)&&(n=a.arrow)!=null&&n.alignmentOffset?{}:{x:o+c.x,y:i+c.y,data:{...c,placement:s}}}}}});function y2(e){let t=kr(e),r=parseFloat(t.width)||0,n=parseFloat(t.height)||0,o=zr(e),i=o?e.offsetWidth:r,s=o?e.offsetHeight:n,a=dl(r)!==i||dl(n)!==s;return a&&(r=i,n=s),{width:r,height:n,$:a}}function x2(e){return _t(e)?e:e.contextElement}function ya(e){let t=x2(e);if(!zr(t))return Bn(1);let r=t.getBoundingClientRect(),{width:n,height:o,$:i}=y2(t),s=(i?dl(r.width):r.width)/n,a=(i?dl(r.height):r.height)/o;return(!s||!Number.isFinite(s))&&(s=1),(!a||!Number.isFinite(a))&&(a=1),{x:s,y:a}}function C2(e){let t=Qt(e);return!ul()||!t.visualViewport?z9:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function J9(e,t,r){return t===void 0&&(t=!1),!!r&&t&&r===Qt(e)}function pl(e,t,r,n){t===void 0&&(t=!1),r===void 0&&(r=!1);let o=e.getBoundingClientRect(),i=x2(e),s=Bn(1);t&&(n?_t(n)&&(s=ya(n)):s=ya(e));let a=J9(i,r,n)?C2(i):Bn(0),c=(o.left+a.x)/s.x,l=(o.top+a.y)/s.y,u=o.width/s.x,d=o.height/s.y;if(i&&n){let A=Qt(i),f=_t(n)?Qt(n):n,g=A,h=xd(g);for(;h&&f!==g;){let y=ya(h),E=h.getBoundingClientRect(),x=kr(h),S=E.left+(h.clientLeft+parseFloat(x.paddingLeft))*y.x,w=E.top+(h.clientTop+parseFloat(x.paddingTop))*y.y;c*=y.x,l*=y.y,u*=y.x,d*=y.y,c+=S,l+=w,g=Qt(h),h=xd(g)}}return ki({width:u,height:d,x:c,y:l})}function Sd(e,t){let r=fl(e).scrollLeft;return t?t.left+r:pl(ro(e)).left+r}function b2(e,t){let r=e.getBoundingClientRect(),n=r.left+t.scrollLeft-Sd(e,r),o=r.top+t.scrollTop;return{x:n,y:o}}function K9(e){let{elements:t,rect:r,offsetParent:n,strategy:o}=e,i=o==="fixed",s=ro(n),a=t?ll(t.floating):!1;if(n===s||a&&i)return r;let c={scrollLeft:0,scrollTop:0},l=Bn(1),u=Bn(0),d=zr(n);if((d||!i)&&((Po(n)!=="body"||cl(s))&&(c=fl(n)),d)){let f=pl(n);l=ya(n),u.x=f.x+n.clientLeft,u.y=f.y+n.clientTop}let A=s&&!d&&!i?b2(s,c):Bn(0);return{width:r.width*l.x,height:r.height*l.y,x:r.x*l.x-c.scrollLeft*l.x+u.x+A.x,y:r.y*l.y-c.scrollTop*l.y+u.y+A.y}}function X9(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function Z9(e){let t=fl(e),r=e.ownerDocument.body,n=_i(e.scrollWidth,e.clientWidth,r.scrollWidth,r.clientWidth),o=_i(e.scrollHeight,e.clientHeight,r.scrollHeight,r.clientHeight),i=-t.scrollLeft+Sd(e),s=-t.scrollTop;return kr(r).direction==="rtl"&&(i+=_i(e.clientWidth,r.clientWidth)-n),{width:n,height:o,x:i,y:s}}function tH(e,t,r){r===void 0&&(r="viewport");let n=r==="layoutViewport",o=Qt(e),i=ro(e),s=o.visualViewport,a=i.clientWidth,c=i.clientHeight,l=0,u=0;if(s){let A=!ul()||t==="fixed";n?A||(l=-s.offsetLeft,u=-s.offsetTop):(a=s.width,c=s.height,A&&(l=s.offsetLeft,u=s.offsetTop))}if(Sd(i)<=0){let A=i.ownerDocument,f=A.body,g=getComputedStyle(f),h=A.compatMode==="CSS1Compat"&&parseFloat(g.marginLeft)+parseFloat(g.marginRight)||0,y=Math.abs(i.clientWidth-f.clientWidth-h),E=getComputedStyle(i).scrollbarGutter==="stable both-edges"?y/2:y;E<=eH&&(a-=E)}return{width:a,height:c,x:l,y:u}}function rH(e,t){let r=pl(e,!0,t==="fixed"),n=r.top+e.clientTop,o=r.left+e.clientLeft,i=ya(e),s=e.clientWidth*i.x,a=e.clientHeight*i.y,c=o*i.x,l=n*i.y;return{width:s,height:a,x:c,y:l}}function g2(e,t,r){let n;if(t==="viewport"||t==="layoutViewport")n=tH(e,r,t);else if(t==="document")n=Z9(ro(e));else if(_t(t))n=rH(t,r);else{let o=C2(e);n={x:t.x-o.x,y:t.y-o.y,width:t.width,height:t.height}}return ki(n)}function nH(e,t){let r=t.get(e);if(r)return r;let n=ha(e,[],!1).filter(a=>_t(a)&&Po(a)!=="body"),o=null,i=kr(e).position==="fixed",s=i?to(e):e;for(;_t(s)&&!Qi(s);){let a=kr(s),c=yd(s),l=o?o.position:i?"fixed":"";!c&&(l==="fixed"||l==="absolute"&&a.position==="static")?n=n.filter(d=>d!==s):o=a,s=to(s)}return t.set(e,n),n}function oH(e){let{element:t,boundary:r,rootBoundary:n,strategy:o}=e,s=[...r==="clippingAncestors"?ll(t)?[]:nH(t,this._c):[].concat(r),n],a=g2(t,s[0],o),c=a.top,l=a.right,u=a.bottom,d=a.left;for(let A=1;A<s.length;A++){let f=g2(t,s[A],o);c=_i(f.top,c),l=bd(f.right,l),u=bd(f.bottom,u),d=_i(f.left,d)}return{width:l-d,height:u-c,x:d,y:c}}function iH(e){let{width:t,height:r}=y2(e);return{width:t,height:r}}function sH(e,t,r){let n=zr(t),o=ro(t),i=r==="fixed",s=pl(e,!0,i,t),a={scrollLeft:0,scrollTop:0},c=Bn(0);if((n||!i)&&((Po(t)!=="body"||cl(o))&&(a=fl(t)),n)){let A=pl(t,!0,i,t);c.x=A.x+t.clientLeft,c.y=A.y+t.clientTop}!n&&o&&(c.x=Sd(o));let l=o&&!n&&!i?b2(o,a):Bn(0),u=s.left+a.scrollLeft-c.x-l.x,d=s.top+a.scrollTop-c.y-l.y;return{x:u,y:d,width:s.width,height:s.height}}function D0(e){return kr(e).position==="static"}function h2(e,t){if(!zr(e)||kr(e).position==="fixed")return null;if(t)return t(e);let r=e.offsetParent;return ro(e)===r&&(r=r.ownerDocument.body),r}function E2(e,t){let r=Qt(e);if(ll(e))return r;if(!zr(e)){let o=to(e);for(;o&&!Qi(o);){if(_t(o)&&!D0(o))return o;o=to(o)}return r}let n=h2(e,t);for(;n&&ZR(n)&&D0(n);)n=h2(n,t);return n&&Qi(n)&&D0(n)&&!yd(n)?r:n||e2(e)||r}function cH(e){return kr(e).direction==="rtl"}var z9,eH,aH,w2,I2,N0,S2=m(()=>{p2();wd();Cd();z9=Bn(0);eH=25;aH=async function(e){let t=this.getOffsetParent||E2,r=this.getDimensions,n=await r(e.floating);return{reference:sH(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}};w2={convertOffsetParentRelativeRectToViewportRelativeRect:K9,getDocumentElement:ro,getClippingRect:oH,getOffsetParent:E2,getElementRects:aH,getClientRects:X9,getDimensions:iH,getScale:ya,isElement:_t,isRTL:cH},I2=m2,N0=(e,t,r)=>{let n=new Map,o=r??{},i={...w2,...o.platform,_c:n};return A2(e,t,{...o,platform:i})}});function Bd(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let r,n,o;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(r=e.length,r!==t.length)return!1;for(n=r;n--!==0;)if(!Bd(e[n],t[n]))return!1;return!0}if(o=Object.keys(e),r=o.length,r!==Object.keys(t).length)return!1;for(n=r;n--!==0;)if(!{}.hasOwnProperty.call(t,o[n]))return!1;for(n=r;n--!==0;){let i=o[n];if(!(i==="_owner"&&e.$$typeof)&&!Bd(e[i],t[i]))return!1}return!0}return e!==e&&t!==t}function M2(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function v2(e,t){let r=M2(e);return Math.round(t*r)/r}function L0(e){let t=rt.useRef(e);return vd(()=>{t.current=e}),t}function R2(e){e===void 0&&(e={});let{placement:t="bottom",strategy:r="absolute",middleware:n=[],platform:o,elements:{reference:i,floating:s}={},transform:a=!0,whileElementsMounted:c,open:l}=e,[u,d]=rt.useState({x:0,y:0,strategy:r,placement:t,middlewareData:{},isPositioned:!1}),[A,f]=rt.useState(n);Bd(A,n)||f(n);let[g,h]=rt.useState(null),[y,E]=rt.useState(null),x=rt.useCallback(te=>{te!==v.current&&(v.current=te,h(te))},[]),S=rt.useCallback(te=>{te!==B.current&&(B.current=te,E(te))},[]),w=i||g,I=s||y,v=rt.useRef(null),B=rt.useRef(null),R=rt.useRef(u),D=c!=null,L=L0(c),F=L0(o),C=L0(l),M=rt.useCallback(()=>{if(!v.current||!B.current)return;let te={placement:t,strategy:r,middleware:A};F.current&&(te.platform=F.current),N0(v.current,B.current,te).then(Gr=>{let it={...Gr,isPositioned:C.current!==!1};k.current&&!Bd(R.current,it)&&(R.current=it,T2.flushSync(()=>{d(it)}))})},[A,t,r,F,C]);vd(()=>{l===!1&&R.current.isPositioned&&(R.current.isPositioned=!1,d(te=>({...te,isPositioned:!1})))},[l]);let k=rt.useRef(!1);vd(()=>(k.current=!0,()=>{k.current=!1}),[]),vd(()=>{if(w&&(v.current=w),I&&(B.current=I),w&&I){if(L.current)return L.current(w,I,M);M()}},[w,I,M,L,D]);let G=rt.useMemo(()=>({reference:v,floating:B,setReference:x,setFloating:S}),[x,S]),j=rt.useMemo(()=>({reference:w,floating:I}),[w,I]),oe=rt.useMemo(()=>{let te={position:r,left:0,top:0};if(!j.floating)return te;let Gr=v2(j.floating,u.x),it=v2(j.floating,u.y);return a?{...te,transform:"translate("+Gr+"px, "+it+"px)",...M2(j.floating)>=1.5&&{willChange:"transform"}}:{position:r,left:Gr,top:it}},[r,a,j.floating,u.x,u.y]);return rt.useMemo(()=>({...u,update:M,refs:G,elements:j,floatingStyles:oe}),[u,M,G,j,oe])}var rt,B2,T2,lH,uH,vd,Td,P0=m(()=>{S2();rt=p(Q(),1),B2=p(Q(),1),T2=p(Vf(),1),lH=typeof document<"u",uH=function(){},vd=lH?B2.useLayoutEffect:uH;Td=(e,t)=>{let r=I2(e);return{name:r.name,fn:r.fn,options:[e,t]}}});function CH(){let[e,t]=z.useState(()=>k2?D2():void 0);return ml(()=>{e==null&&t(D2())},[]),z.useEffect(()=>{k2=!0},[]),e}function wH(){let e=new Map;return{emit(t,r){var n;(n=e.get(t))==null||n.forEach(o=>o(r))},on(t,r){e.has(t)||e.set(t,new Set),e.get(t).add(r)},off(t,r){var n;(n=e.get(t))==null||n.delete(r)}}}function TH(e,t){let r=null,n=null,o=!1;return{contextElement:e||void 0,getBoundingClientRect(){var i;let s=e?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},a=t.axis==="x"||t.axis==="both",c=t.axis==="y"||t.axis==="both",l=["mouseenter","mousemove"].includes(((i=t.dataRef.current.openEvent)==null?void 0:i.type)||"")&&t.pointerType!=="touch",u=s.width,d=s.height,A=s.x,f=s.y;return r==null&&t.x&&a&&(r=s.x-t.x),n==null&&t.y&&c&&(n=s.y-t.y),A-=r||0,f-=n||0,u=0,d=0,!o||l?(u=t.axis==="y"?s.width:0,d=t.axis==="x"?s.height:0,A=a&&t.x!=null?t.x:A,f=c&&t.y!=null?t.y:f):o&&!l&&(d=t.axis==="x"?s.height:d,u=t.axis==="y"?s.width:u),o=!0,{width:u,height:d,x:A,y:f,top:f,right:A+u,bottom:f+d,left:A}}}}function N2(e){return e!=null&&e.clientX!=null}function P2(e,t){t===void 0&&(t={});let{open:r,dataRef:n,elements:{floating:o,domReference:i},refs:s}=e,{enabled:a=!0,axis:c="both",x:l=null,y:u=null}=t,d=z.useRef(!1),A=z.useRef(null),[f,g]=z.useState(),[h,y]=z.useState([]),E=Id((v,B)=>{d.current||n.current.openEvent&&!N2(n.current.openEvent)||s.setPositionReference(TH(i,{x:v,y:B,axis:c,dataRef:n,pointerType:f}))}),x=Id(v=>{l!=null||u!=null||(r?A.current||y([]):E(v.clientX,v.clientY))}),S=l2(f)?o:r,w=z.useCallback(()=>{if(!S||!a||l!=null||u!=null)return;let v=Qt(o);function B(R){let D=c2(R);a2(o,D)?(v.removeEventListener("mousemove",B),A.current=null):E(R.clientX,R.clientY)}if(!n.current.openEvent||N2(n.current.openEvent)){v.addEventListener("mousemove",B);let R=()=>{v.removeEventListener("mousemove",B),A.current=null};return A.current=R,R}s.setPositionReference(i)},[S,a,l,u,o,n,s,i,E]);z.useEffect(()=>w(),[w,h]),z.useEffect(()=>{a&&!o&&(d.current=!1)},[a,o]),z.useEffect(()=>{!a&&r&&(d.current=!0)},[a,r]),ml(()=>{a&&(l!=null||u!=null)&&(d.current=!1,E(l,u))},[a,l,u,E]);let I=z.useMemo(()=>{function v(B){let{pointerType:R}=B;g(R)}return{onPointerDown:v,onPointerEnter:v,onMouseMove:x,onMouseEnter:x}},[x]);return z.useMemo(()=>a?{reference:I}:{},[a,I])}function MH(e){let{open:t=!1,onOpenChange:r,elements:n}=e,o=EH(),i=z.useRef({}),[s]=z.useState(()=>wH()),a=vH()!=null,[c,l]=z.useState(n.reference),u=Id((f,g,h)=>{i.current.openEvent=f?g:void 0,s.emit("openchange",{open:f,event:g,reason:h,nested:a}),r?.(f,g,h)}),d=z.useMemo(()=>({setPositionReference:l}),[]),A=z.useMemo(()=>({reference:c||n.reference||null,floating:n.floating||null,domReference:n.reference}),[c,n.reference,n.floating]);return z.useMemo(()=>({dataRef:i,open:t,onOpenChange:u,elements:A,events:s,floatingId:o,refs:d}),[t,u,A,s,o,d])}function F2(e){var t,r;let{elements:n,...o}=e===void 0?{}:e,{nodeId:i}=o,s=MH({...o,elements:{reference:(t=n?.reference)!=null?t:null,floating:(r=n?.floating)!=null?r:null}}),a=o.rootContext||s,c=a.elements,[l,u]=z.useState(null),[d,A]=z.useState(null),g=c?.domReference||l,h=z.useRef(null),y=BH();ml(()=>{g&&(h.current=g)},[g]);let E=R2({...o,elements:{...c,...d&&{reference:d}}}),x=z.useCallback(B=>{let R=_t(B)?{getBoundingClientRect:()=>B.getBoundingClientRect(),getClientRects:()=>B.getClientRects(),contextElement:B}:B;A(R),E.refs.setReference(R)},[E.refs]),S=z.useCallback(B=>{(_t(B)||B===null)&&(h.current=B,u(B)),(_t(E.refs.reference.current)||E.refs.reference.current===null||B!==null&&!_t(B))&&E.refs.setReference(B)},[E.refs]),w=z.useMemo(()=>({...E.refs,setReference:S,setPositionReference:x,domReference:h}),[E.refs,S,x]),I=z.useMemo(()=>({...E.elements,domReference:g}),[E.elements,g]),v=z.useMemo(()=>({...E,...a,refs:w,elements:I,nodeId:i}),[E,w,I,i,a]);return ml(()=>{a.dataRef.current.floatingContext=v;let B=y?.nodesRef.current.find(R=>R.id===i);B&&(B.context=v)}),z.useMemo(()=>({...E,context:v,refs:w,elements:I}),[E,w,I,v])}function F0(e,t,r){let n=new Map,o=r==="item",i=e;if(o&&e){let{[Q2]:s,[_2]:a,...c}=e;i=c}return{...r==="floating"&&{tabIndex:-1,[fH]:""},...i,...t.map(s=>{let a=s?s[r]:null;return typeof a=="function"?e?a(e):null:a}).concat(e).reduce((s,a)=>(a&&Object.entries(a).forEach(c=>{let[l,u]=c;if(!(o&&[Q2,_2].includes(l)))if(l.indexOf("on")===0){if(n.has(l)||n.set(l,[]),typeof u=="function"){var d;(d=n.get(l))==null||d.push(u),s[l]=function(){for(var A,f=arguments.length,g=new Array(f),h=0;h<f;h++)g[h]=arguments[h];return(A=n.get(l))==null?void 0:A.map(y=>y(...g)).find(y=>y!==void 0)}}}else s[l]=u}),s),{})}}function O2(e){e===void 0&&(e=[]);let t=e.map(a=>a?.reference),r=e.map(a=>a?.floating),n=e.map(a=>a?.item),o=z.useCallback(a=>F0(a,e,"reference"),t),i=z.useCallback(a=>F0(a,e,"floating"),r),s=z.useCallback(a=>F0(a,e,"item"),n);return z.useMemo(()=>({getReferenceProps:o,getFloatingProps:i,getItemProps:s}),[o,i,s])}var z,O0,L2,fH,Q2,_2,dH,AH,mH,pH,gH,hH,Hle,yH,k2,xH,D2,bH,EH,IH,SH,vH,BH,G2=m(()=>{z=p(Q(),1);u2();O0=p(O(),1);Cd();L2=p(Vf(),1);P0();P0();fH="data-floating-ui-focusable",Q2="active",_2="selected",dH="ArrowLeft",AH="ArrowRight",mH="ArrowUp",pH="ArrowDown",gH=[dH,AH],hH=[mH,pH],Hle=[...gH,...hH],yH={...z},k2=!1,xH=0,D2=()=>"floating-ui-"+Math.random().toString(36).slice(2,6)+xH++;bH=yH.useId,EH=bH||CH;IH=z.createContext(null),SH=z.createContext(null),vH=()=>{var e;return((e=z.useContext(IH))==null?void 0:e.id)||null},BH=()=>z.useContext(SH)});function RH(e){return Math.round(e*1e5)/1e5}function U0({clientPoint:e,children:t,placement:r="right"}){let o=(0,xa.useTheme)().components?.MuiPopper,{classes:i}=QH(),{refs:s,floatingStyles:a,context:c}=F2({placement:r,strategy:"fixed",middleware:[Td(5)]}),l=P2(c,e),{getFloatingProps:u}=O2([l]);return(0,G0.jsx)(xa.Portal,{container:o?.defaultProps?.container,children:(0,G0.jsx)("div",{className:i.tooltip,ref:s.setFloating,style:{...a,zIndex:1e5,visibility:a.transform==="translate(0px, 0px)"?"hidden":void 0,pointerEvents:"none"},...u(),children:t})})}var G0,xa,QH,U2=m(()=>{G0=p(O(),1);G2();xa=p(U(),1);Ve();QH=Z()(e=>({tooltip:{position:"absolute",pointerEvents:"none",backgroundColor:(0,xa.alpha)(e.palette.grey[700],.9),borderRadius:e.shape.borderRadius,color:e.palette.common.white,fontFamily:e.typography.fontFamily,padding:"4px 8px",fontSize:e.typography.fontSize,lineHeight:`${RH(14/10)}em`,maxWidth:300,wordWrap:"break-word"}}))});var H2=m(()=>{});var H0=m(()=>{KR();e0();XR();H2()});function Fo({value:e}){let{classes:t}=_H(),r=/^https?:\/\//.exec(`${e}`);return(0,Md.jsx)("div",{className:t.fieldValue,children:(0,V2.isValidElement)(e)?e:r?(0,Md.jsx)(j2.Link,{href:`${e}`,children:`${e}`}):(0,Md.jsx)(Mo,{html:_r(e)?JSON.stringify(e):String(e)})})}var Md,V2,j2,_H,Rd=m(()=>{Md=p(O(),1),V2=p(Q(),1),j2=p(U(),1);H0();So();Ve();_H=Z()(e=>({fieldValue:{wordBreak:"break-word",maxHeight:300,fontSize:12,padding:e.spacing(.5),overflow:"auto"}}))});function Tn({description:e,name:t,width:r,prefix:n=[]}){let{classes:o}=kH(),i=[...n,t].join(".");return e?(0,Qd.jsx)($2.Tooltip,{title:e,placement:"left",children:(0,Qd.jsx)("div",{className:xf(o.fieldDescription,o.fieldName),children:i})}):(0,Qd.jsx)("div",{className:o.fieldName,style:{width:r},children:i})}var Qd,$2,kH,gl=m(()=>{Qd=p(O(),1),$2=p(U(),1);Ve();kH=Z()(e=>({fieldDescription:{"&:hover":{background:e.palette.mode==="dark"?"#e65100":"yellow"}},fieldName:{wordBreak:"break-all",minWidth:90,borderBottom:"1px solid #0003",fontSize:12,background:e.palette.action.disabledBackground,marginRight:e.spacing(1),padding:e.spacing(.5)}}))});function j0({name:e,value:t,description:r,formatter:n,prefix:o=[]}){let{classes:i}=DH(),[s,a]=(0,W2.useState)(!1),c=t.length>V0,l=c&&!s?t.slice(0,V0):t;return t.length===1?_r(t[0])?(0,$t.jsx)(Mn,{formatter:n,attributes:t[0],prefix:[...o,e]}):(0,$t.jsxs)("div",{className:i.field,children:[(0,$t.jsx)(Tn,{prefix:o,description:r,name:e}),(0,$t.jsx)(Fo,{value:n?n(t[0],e):t[0]})]}):t.every(u=>_r(u))?(0,$t.jsx)($t.Fragment,{children:t.map((u,d)=>(0,$t.jsx)(Mn,{formatter:n,attributes:u,prefix:[...o,`${e}-${d}`]},`${JSON.stringify(u)}-${d}`))}):(0,$t.jsxs)("div",{className:i.field,children:[(0,$t.jsx)(Tn,{prefix:o,description:r,name:e}),l.map((u,d)=>(0,$t.jsx)("div",{className:i.fieldSubvalue,children:(0,$t.jsx)(Fo,{value:n?n(u,e):u})},`${JSON.stringify(u)}-${d}`)),c?(0,$t.jsx)("button",{type:"button",onClick:()=>{a(u=>!u)},children:s?"Show less":`Showing ${V0} of ${t.length}. Show all...`}):null]})}var $t,W2,V0,DH,Y2=m(()=>{$t=p(O(),1),W2=p(Q(),1);_d();Rd();gl();So();Ve();V0=100,DH=Z()(e=>({field:{display:"flex",flexWrap:"wrap"},fieldSubvalue:{wordBreak:"break-word",maxHeight:300,padding:e.spacing(.5),border:`1px solid ${e.palette.action.selected}`,boxSizing:"border-box",overflow:"auto"}}))});var z2=K((fue,q2)=>{q2.exports=JBrowseExports["@mui/x-data-grid"]});function $0({children:e,style:t}){let{classes:r}=NH();return(0,J2.jsx)("div",{className:r.flexContainer,style:t,children:e})}var J2,NH,K2=m(()=>{J2=p(O(),1);Ve();NH=Z()({flexContainer:{display:"flex",flexDirection:"column"}})});function W0({value:e,prefix:t,name:r}){let{classes:n}=LH(),[o,i]=(0,X2.useState)(!1),s=Object.keys(e[0]).sort(),a=new Set(s),c=Object.entries(e).map(([d,A])=>{let{id:f,...g}=A;return{id:d,identifier:f,...g}});for(let d of e)for(let A of Object.keys(d))a.add(A);let l;a.has("id")?(a.delete("id"),l=["identifier",...a]):l=[...a];let u=l.map(d=>yT(c.map(A=>A[d])));return a.size<s.length+5?(0,Jr.jsxs)("div",{className:n.margin,children:[(0,Jr.jsx)(Tn,{prefix:t,name:r}),(0,Jr.jsx)(Ca.FormControlLabel,{control:(0,Jr.jsx)(Ca.Checkbox,{checked:o,onChange:d=>{i(d.target.checked)}}),label:(0,Jr.jsx)(Ca.Typography,{variant:"body2",children:"Show options"})}),(0,Jr.jsx)($0,{children:(0,Jr.jsx)(Z2.DataGrid,{disableRowSelectionOnClick:!0,rows:c,rowHeight:20,columnHeaderHeight:35,hideFooter:c.length<25,showToolbar:o,columns:l.map((d,A)=>({field:d,width:u[A],renderCell:({value:f})=>(0,Jr.jsx)("div",{className:n.cell,children:(0,Jr.jsx)(Mo,{html:$h(f||"")})})}))})})]}):null}var Jr,X2,Ca,Z2,LH,eQ=m(()=>{Jr=p(O(),1),X2=p(Q(),1),Ca=p(U(),1),Z2=p(z2(),1);gl();K2();H0();So();Ve();LH=Z()(e=>({margin:{marginBottom:e.spacing(4)},cell:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}}))});function Y0({name:e,value:t,description:r,prefix:n,width:o,formatter:i}){let{classes:s}=PH();return t!=null?(0,hl.jsxs)("div",{className:s.field,children:[(0,hl.jsx)(Tn,{prefix:n,description:r,name:e,width:o}),(0,hl.jsx)(Fo,{value:i?i(t,e):t})]}):null}var hl,PH,tQ=m(()=>{hl=p(O(),1);Rd();gl();Ve();PH=Z()({field:{display:"flex",flexWrap:"wrap"}})});function q0({value:e,prefix:t,name:r}){let{classes:n}=FH(),{uri:o,baseUri:i=""}=e,s;try{s=new URL(o,i).href}catch{s=o}return(0,yl.jsxs)("div",{className:n.field,children:[(0,yl.jsx)(Tn,{prefix:t,name:r}),(0,yl.jsx)(Fo,{value:s})]})}var yl,FH,rQ=m(()=>{yl=p(O(),1);Rd();gl();Ve();FH=Z()({field:{display:"flex",flexWrap:"wrap"}})});function nQ(e,t){return e.map(r=>t.slice(r.start,r.end)).join("")}var oQ=m(()=>{});function iQ(e,t){return Math.ceil(Wh(e.map(r=>Vh([...t,r[0]].join("."),12))))+10}function sQ(e,t={}){let r=t;for(let n of e)_r(r)&&(r=r[n]);return typeof r=="string"?r:_r(r)&&typeof r.Description=="string"?r.Description:void 0}var aQ=m(()=>{So()});function Mn(e){let{attributes:t,omit:r=[],omitSingleLevel:n=[],descriptions:o,formatter:i,hideUris:s,prefix:a=[]}=e,c=new Set([...r,...GH,...n]),{__jbrowsefmt:l,...u}=t,d=Object.entries({...u,...l}).filter(([f,g])=>g!=null&&!c.has(f)),A=iQ(d,a);return(0,no.jsx)(no.Fragment,{children:d.map(([f,g])=>{let h=sQ([...a,f],o);if(Array.isArray(g))return g.length>1&&g.every(y=>_r(y))?(0,no.jsx)(W0,{name:f,prefix:a,value:g},f):(0,no.jsx)(j0,{name:f,value:g,formatter:i,description:h,prefix:a},f);if(_r(g)){let{omitSingleLevel:y,...E}=e;return jf(g)?s?null:(0,no.jsx)(q0,{name:f,prefix:a,value:g},f):(0,no.jsx)(Mn,{...E,formatter:i,attributes:g,descriptions:o,prefix:[...a,f]},f)}else return(0,no.jsx)(Y0,{name:f,formatter:i,value:g,description:h,prefix:a,width:Math.min(A,OH)},f)})})}var no,OH,GH,_d=m(()=>{no=p(O(),1);Y2();eQ();tQ();rQ();aQ();So();OH=170,GH=["__jbrowsefmt","length","position","subfeatures","uniqueId","exonFrames","parentId","thickStart","thickEnd","_lineHash"]});var cQ,lQ,uQ=m(()=>{"use client";sr();cQ=p(O(),1),lQ=(0,Me.createSvgIcon)((0,cQ.jsx)("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore")});function Ni({children:e,title:t,defaultExpanded:r=!0}){let{classes:n}=UH();return(0,Di.jsxs)(Oo.Accordion,{defaultExpanded:r,children:[(0,Di.jsx)(Oo.AccordionSummary,{expandIcon:(0,Di.jsx)(lQ,{className:n.icon}),children:(0,Di.jsx)(Oo.Typography,{variant:"button",children:t})}),(0,Di.jsx)(Oo.AccordionDetails,{className:n.expansionPanelDetails,children:e})]})}var Di,Oo,UH,z0=m(()=>{Di=p(O(),1);uQ();Oo=p(U(),1);Ve();UH=Z()(e=>({expansionPanelDetails:{display:"block",padding:e.spacing(1)},icon:{color:e.palette.tertiary.contrastText||"#fff"}}))});function Li({checked:e,label:t,disabled:r,onChange:n}){return kd.default.createElement("div",null,kd.default.createElement(Dd.FormControlLabel,{control:kd.default.createElement(Dd.Checkbox,{disabled:r,checked:e,onChange:()=>{n()}}),label:t}))}var kd,Dd,J0=m(()=>{kd=p(Q(),1),Dd=p(U(),1)});function xl({str:e}){let{classes:t}=HH(),[r,n]=(0,Kr.useState)(!1),[o,i]=(0,Kr.useState)(!1),[s,a]=(0,Kr.useState)(!1),c=u=>u.replaceAll("-","").replaceAll(".",""),l=e.map(([u,d])=>[u,o?d:c(d)]).filter(([,u])=>s||!!u).map(([u,d])=>`>${u}
48
48
  ${d}`).join(`
49
- `);return Kr.default.createElement(Kr.default.Fragment,null,Kr.default.createElement(Nd.Button,{color:"primary",variant:"contained",onClick:()=>{Lc(l),n(!0),setTimeout(()=>{n(!1)},500)}},r?"Copied!":"Copy to clipboard"),Kr.default.createElement(Li,{label:"Show gaps",checked:o,onChange:()=>{i(!o)}}),Kr.default.createElement(Li,{label:"Show empty",checked:s,onChange:()=>{a(!s)}}),Kr.default.createElement(Nd.TextField,{variant:"outlined",multiline:!0,className:t.dialogContent,minRows:5,maxRows:10,fullWidth:!0,value:l,slotProps:{input:{readOnly:!0,className:t.textAreaFont}}}))}var Kr,Nd,HH,K0=m(()=>{Kr=p(Q(),1);Ve();Nd=p(U(),1);xg();J0();HH=Z()({textAreaFont:{fontFamily:"Courier New",wordWrap:"break-word"},dialogContent:{background:"lightgrey",margin:4,minWidth:"80em"}})});var mQ={};Bt(mQ,{default:()=>jH});var ba,fQ,dQ,AQ,VH,jH,pQ=m(()=>{ba=p(Q(),1);_d();z0();fQ=p(Ze(),1),dQ=p(U(),1),AQ=p(W(),1);K0();VH=(0,AQ.observer)(function({model:e,onClose:t}){let{header:r}=e;return ba.default.createElement(fQ.Dialog,{onClose:()=>{t()},open:!0,title:"Metadata",maxWidth:"xl"},ba.default.createElement(dQ.DialogContent,null,ba.default.createElement(Mn,{attributes:r}),ba.default.createElement(Ni,{title:"sequence"},ba.default.createElement(xl,{str:e.rows}))))}),jH=VH});var hQ={};Bt(hQ,{default:()=>gQ});function gQ({model:e,onClose:t}){let[r,n]=(0,Pe.useState)(!0),[o,i]=(0,Pe.useState)(!0),[s,a]=(0,Pe.useState)("viewport"),[c,l]=(0,Pe.useState)(),u=(0,_e.useTheme)(),{totalWidth:d,totalHeight:A,treeAreaWidth:f,turnedOnTracks:g,totalTrackAreaHeight:h}=e,y=g.length>0,E=d+f,x=A+(o?h:0),S=s==="entire"&&(E>1e4||x>1e4);return Pe.default.createElement(Ld.Dialog,{onClose:()=>{t()},open:!0,title:"Export SVG"},Pe.default.createElement(_e.DialogContent,null,c?Pe.default.createElement(Ld.ErrorMessage,{error:c}):null,Pe.default.createElement(_e.Typography,null,"Settings:"),Pe.default.createElement(Li,{label:"Include minimap?",disabled:s==="entire",checked:r,onChange:()=>{n(!r)}}),y?Pe.default.createElement(Li,{label:"Include tracks?",checked:o,onChange:()=>{i(!o)}}):null,Pe.default.createElement("div",null,Pe.default.createElement(_e.FormControl,null,Pe.default.createElement(_e.FormLabel,null,"Export type"),Pe.default.createElement(_e.RadioGroup,{value:s,onChange:w=>{let{value:I}=w.target;(I==="entire"||I==="viewport")&&a(I)}},Pe.default.createElement(_e.FormControlLabel,{value:"entire",control:Pe.default.createElement(_e.Radio,null),label:"Entire MSA"}),Pe.default.createElement(_e.FormControlLabel,{value:"viewport",control:Pe.default.createElement(_e.Radio,null),label:"Current viewport only"})))),S?Pe.default.createElement(_e.Alert,{severity:"warning",style:{marginTop:8}},"The entire MSA is very large (",Math.round(E),"x",Math.round(x)," pixels). Export may be slow or fail."):null),Pe.default.createElement(_e.DialogActions,null,Pe.default.createElement(_e.Button,{variant:"contained",color:"primary",onClick:()=>{e.exportSVG({theme:u,includeMinimap:s==="entire"?!1:r,includeTracks:y&&o,exportType:s}).then(()=>{t()}).catch(w=>{console.error(w),l(w)})}},"Submit"),Pe.default.createElement(_e.Button,{variant:"contained",color:"secondary",onClick:()=>{t()}},"Cancel")))}var Pe,Ld,_e,yQ=m(()=>{Pe=p(Q(),1),Ld=p(Ze(),1),_e=p(U(),1);J0()});var Ea,xQ,$H,WH,YH,CQ,bQ=m(()=>{Ea=p(Q(),1);da();NM();a0();OM();UM();xQ=p(W(),1);PR();$H=(0,Ea.lazy)(()=>Promise.resolve().then(()=>(pQ(),mQ))),WH=(0,Ea.lazy)(()=>Promise.resolve().then(()=>(yQ(),hQ))),YH=(0,xQ.observer)(({model:e})=>Ea.default.createElement(vn,{"data-testid":"file_menu",tooltip:"File",menuItems:[{label:"Return to import form",icon:cd,onClick:()=>{e.reset()}},{label:"Metadata",icon:DM,onClick:()=>{e.queueDialog(t=>[$H,{model:e,onClose:t}])}},{label:"Domain settings",type:"subMenu",subMenu:LR({model:e})},{label:"Export SVG",icon:GM,onClick:()=>{e.queueDialog(t=>[WH,{onClose:t,model:e}])}}],anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"}},Ea.default.createElement(FM,null))),CQ=YH});var Pd,Fd,EQ,qH,wQ,IQ=m(()=>{Pd=p(Q(),1),Fd=p(U(),1),EQ=p(W(),1),qH=(0,EQ.observer)(function({model:t}){let{hideGaps:r,allowedGappyness:n}=t;return r?Pd.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},Pd.default.createElement(Fd.Typography,{style:{whiteSpace:"nowrap"}},"Hide columns w/ >",n,"% gaps"),Pd.default.createElement(Fd.Slider,{style:{width:100},min:1,max:100,value:n,onChange:(o,i)=>{t.setAllowedGappyness(i)}})):null}),wQ=qH});var Od,SQ,vQ,zH,JH,BQ,TQ=m(()=>{Od=p(Q(),1);Ve();SQ=p(U(),1),vQ=p(W(),1),zH=Z()({container:{display:"flex",overflow:"hidden",margin:"auto",marginLeft:10},nameFirst:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},nameRest:{whiteSpace:"nowrap",flexShrink:0}}),JH=(0,vQ.observer)(function({model:e}){let{mouseOverRowName:t,mouseCol:r}=e,{classes:n}=zH();if(!t||r===void 0)return null;let o=Math.floor(t.length/2),i=e.visibleColToSeqPosOneBased(t,r),s=e.visibleColToRowLetter(t,r);return Od.default.createElement(SQ.Typography,{component:"div",className:n.container,title:t},Od.default.createElement("span",{className:n.nameFirst},t.slice(0,o)),Od.default.createElement("span",{className:n.nameRest},t.slice(o),":",i," (",s,")"))}),BQ=JH});var Cl,MQ,Gd,RQ,KH,XH,QQ,_Q=m(()=>{Cl=p(Q(),1),MQ=p(Ze(),1);Ve();Gd=p(U(),1),RQ=p(W(),1),KH=Z()({margin:{margin:"auto",marginLeft:10}}),XH=(0,RQ.observer)(({model:e})=>{let{status:t}=e,{classes:r}=KH();return t?Cl.default.createElement(Gd.Typography,{className:r.margin},Cl.default.createElement(MQ.LoadingEllipses,{message:t.msg,component:"span"})," ",t.url?Cl.default.createElement("a",{href:t.url,target:"_blank",rel:"noreferrer"},"(status)"):null," ",t.onCancel?Cl.default.createElement(Gd.Button,{size:"small",onClick:()=>t.onCancel?.()},"Cancel"):null):null}),QQ=XH});var kQ,DQ,NQ=m(()=>{"use client";Ie();kQ=p(O(),1),DQ=Y((0,kQ.jsx)("path",{d:"M3 17v2h6v-2zM3 5v2h10V5zm10 16v-2h8v-2h-8v-2h-2v6zM7 9v2H3v2h4v2h2V9zm14 4v-2H11v2zm-6-4h2V7h4V5h-4V3h-2z"}),"Tune")});function LQ(e){let{drawMsaLetters:t,hideGaps:r,bgColor:n,showColumnStats:o}=e;return[{label:"Show column statistics on hover",type:"checkbox",checked:o,onClick:()=>{e.setShowColumnStats(!o)}},{label:"Draw letters",type:"checkbox",checked:t,onClick:()=>{e.setDrawMsaLetters(!t)}},{label:"Color letters instead of background of tiles",type:"checkbox",checked:!n,onClick:()=>{e.setBgColor(!n)}},{label:"Enable hiding gappy columns?",type:"checkbox",checked:r,onClick:()=>{e.setHideGaps(!r)}}]}function PQ(e){let{drawTree:t,showBranchLen:r,labelsAlignRight:n,drawNodeBubbles:o,drawLabels:i}=e;return[{label:"Show branch length",type:"checkbox",checked:r,onClick:()=>{e.setShowBranchLen(!r)}},{label:"Show tree",type:"checkbox",checked:t,onClick:()=>{e.setDrawTree(!t)}},{label:"Draw clickable bubbles on tree branches",type:"checkbox",checked:o,onClick:()=>{e.setDrawNodeBubbles(!o)}},{label:"Tree labels align right",type:"checkbox",checked:n,onClick:()=>{e.setLabelsAlignRight(!n)}},{label:"Draw labels",type:"checkbox",checked:i,onClick:()=>{e.setDrawLabels(!i)}}]}var X0=m(()=>{});var Z0,FQ,ZH,OQ,GQ=m(()=>{Z0=p(Q(),1);da();NQ();FQ=p(W(),1);X0();ZH=(0,FQ.observer)(function({model:e}){return Z0.default.createElement(vn,{"data-testid":"msa_settings_menu",tooltip:"Alignment settings",closeAfterItemClick:!1,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},menuItems:LQ(e)},Z0.default.createElement(DQ,null))}),OQ=ZH});var ey,Ud,UQ,eV,HQ,VQ=m(()=>{ey=p(Q(),1),Ud=p(U(),1),UQ=p(W(),1),eV=(0,UQ.observer)(function({model:e}){let{currentAlignment:t,alignmentNames:r}=e,n=new Map;return r.length>0?ey.default.createElement(Ud.TextField,{select:!0,variant:"outlined",value:t,size:"small",onChange:o=>{e.setCurrentAlignment(+o.target.value),e.setScrollX(0),e.setScrollY(0)}},r.map((o,i)=>{let s=n.get(o)??0;return n.set(o,s+1),ey.default.createElement(Ud.MenuItem,{key:s===0?o:`${o}\0${s}`,value:i},o)})):null}),HQ=eV});var jQ,$Q,WQ=m(()=>{"use client";Ie();jQ=p(O(),1),$Q=Y((0,jQ.jsx)("path",{d:"M22 11V3h-7v3H9V3H2v8h7V8h2v10h4v3h7v-8h-7v3h-2V8h2v3z"}),"AccountTree")});var ty,YQ,tV,qQ,zQ=m(()=>{ty=p(Q(),1);da();WQ();YQ=p(W(),1);X0();tV=(0,YQ.observer)(function({model:e}){let{rows:t}=e;return ty.default.createElement(vn,{"data-testid":"tree_settings_menu",tooltip:"Tree settings",closeAfterItemClick:!1,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},menuItems:[...PQ(e),...t.length>=2?[{label:"Advanced",type:"subMenu",subMenu:[{label:"Calculate neighbor joining tree (BLOSUM62)",onClick:()=>{try{e.calculateNeighborJoiningTreeFromMSA()}catch(r){console.error("Failed to calculate NJ tree:",r),e.setError(r)}}}]}]:[]]},ty.default.createElement($Q,null))}),qQ=tV});var JQ,KQ,XQ=m(()=>{"use client";Ie();JQ=p(O(),1),KQ=Y((0,JQ.jsx)("path",{d:"M13 1.07V9h7c0-4.08-3.05-7.44-7-7.93M4 15c0 4.42 3.58 8 8 8s8-3.58 8-8v-4H4zm7-13.93C7.05 1.56 4 4.92 4 9h7z"}),"Mouse")});var ry,ZQ,e_=m(()=>{"use client";Ie();ry=p(O(),1),ZQ=Y([(0,ry.jsx)("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14"},"0"),(0,ry.jsx)("path",{d:"M12 10h-2v2H9v-2H7V9h2V7h1v2h2z"},"1")],"ZoomIn")});var t_,r_,n_=m(()=>{"use client";Ie();t_=p(O(),1),r_=Y((0,t_.jsx)("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14M7 9h5v1H7z"}),"ZoomOut")});var Xr,Go,o_,rV,i_,s_=m(()=>{Xr=p(Q(),1);XQ();e_();n_();Go=p(U(),1),o_=p(W(),1),rV=(0,o_.observer)(function({model:t}){return Xr.default.createElement(Xr.default.Fragment,null,Xr.default.createElement(Go.Tooltip,{title:"Zoom in"},Xr.default.createElement(Go.IconButton,{"aria-label":"Zoom in",onClick:()=>{t.zoomIn()}},Xr.default.createElement(ZQ,null))),Xr.default.createElement(Go.Tooltip,{title:"Zoom out"},Xr.default.createElement(Go.IconButton,{"aria-label":"Zoom out",onClick:()=>{t.zoomOut()}},Xr.default.createElement(r_,null))),Xr.default.createElement(Go.ToggleButton,{value:"scrollZoom",selected:t.scrollZoom,"aria-label":"Toggle scroll-to-zoom",title:"Toggle scroll-to-zoom (zoom on plain mouse wheel; ctrl+wheel always zooms)",size:"small",sx:{border:"none"},onChange:()=>{t.setScrollZoom(!t.scrollZoom)}},Xr.default.createElement(KQ,null)))}),i_=rV});var a_,c_,l_=m(()=>{"use client";Ie();a_=p(O(),1),c_=Y((0,a_.jsx)("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"}),"MoreVert")});var u_,f_,d_=m(()=>{"use client";Ie();u_=p(O(),1),f_=Y((0,u_.jsx)("path",{d:"M12 5V2L8 6l4 4V7c3.31 0 6 2.69 6 6 0 2.97-2.17 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93 0-4.42-3.58-8-8-8m-6 8c0-1.65.67-3.15 1.76-4.24L6.34 7.34C4.9 8.79 4 10.79 4 13c0 4.08 3.05 7.44 7 7.93v-2.02c-2.83-.48-5-2.94-5-5.91"}),"RestartAlt")});var ny,A_,nV,m_,p_=m(()=>{ny=p(Q(),1);da();l_();d_();A_=p(W(),1),nV=(0,A_.observer)(function({model:e}){return ny.default.createElement(vn,{tooltip:"Fit / zoom options",menuItems:[{label:"Fit both vertically/horizontally",onClick:()=>{e.fit()}},{label:"Fit vertically",onClick:()=>{e.fitVertically()}},{label:"Fit horizontally",onClick:()=>{e.fitHorizontally()}},{label:"Reset zoom to default",icon:f_,onClick:()=>{e.resetZoom()}}]},ny.default.createElement(c_,null))}),m_=nV});var g_,h_=m(()=>{g_="5.7.1"});var C_={};Bt(C_,{default:()=>x_});function x_({onClose:e}){return at.default.createElement(y_.Dialog,{open:!0,title:"About",onClose:()=>{e()}},at.default.createElement(Wt.DialogContent,null,at.default.createElement(Wt.Typography,null,"MSAView ",g_," (",at.default.createElement(Wt.Link,{href:"https://github.com/gmod/react-msaview"},"Github"),")"),at.default.createElement("ul",null,at.default.createElement("li",null,at.default.createElement(Wt.Typography,null,"We use some color schemes from the"," ",at.default.createElement(Wt.Link,{href:"https://github.com/biotite-dev/biotite"},"biotite")," ","project, and their license is reproduced"," ",at.default.createElement(Wt.Link,{href:"https://github.com/biotite-dev/biotite/blob/master/LICENSE.rst"},"here"))),at.default.createElement("li",null,at.default.createElement(Wt.Typography,null,"See this page for some information on jalview colorings"," ",at.default.createElement(Wt.Link,{href:"https://www.jalview.org/help/html/colourSchemes/"},"here"))),at.default.createElement("li",null,at.default.createElement(Wt.Typography,null,"See this page for some info on the clustal, cinema, maeditor, and lesk color schemes"," ",at.default.createElement(Wt.Link,{href:"http://www.bioinformatics.nl/~berndb/aacolour.html"},"here"))),at.default.createElement("li",null,at.default.createElement(Wt.Typography,null,"See this paper about the flower color scheme"," ",at.default.createElement(Wt.Link,{href:"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7245768/"},"here"))))))}var at,y_,Wt,b_=m(()=>{at=p(Q(),1),y_=p(Ze(),1),Wt=p(U(),1);h_()});function sV(){return je.default.createElement("div",{style:{flex:1}})}var je,Hd,E_,oV,iV,w_,I_=m(()=>{je=p(Q(),1);vS();MS();Hd=p(U(),1),E_=p(W(),1);_M();bQ();IQ();TQ();_Q();GQ();VQ();zQ();s_();p_();oV=(0,je.lazy)(()=>Promise.resolve().then(()=>(b_(),C_))),iV=(0,E_.observer)(function({model:e}){let[t,{height:r}]=bg();return(0,je.useEffect)(()=>{e.setHeaderHeight(r??0)},[e,r]),je.default.createElement("div",{ref:t,style:{display:"flex"}},je.default.createElement(CQ,{model:e}),je.default.createElement(QM,{model:e}),je.default.createElement(qQ,{model:e}),je.default.createElement(OQ,{model:e}),je.default.createElement(i_,{model:e}),je.default.createElement(m_,{model:e}),je.default.createElement(wQ,{model:e}),je.default.createElement("div",{style:{paddingLeft:20,margin:"auto"}},je.default.createElement(HQ,{model:e})),je.default.createElement(BQ,{model:e}),je.default.createElement(sV,null),je.default.createElement(QQ,{model:e}),je.default.createElement(Hd.Tooltip,{title:"About"},je.default.createElement(Hd.IconButton,{"aria-label":"About",onClick:()=>{e.queueDialog(n=>[oV,{onClose:n}])}},je.default.createElement(TS,null))))});w_=iV});var Rn,S_,aV,v_,B_=m(()=>{Rn=p(Q(),1),S_=p(W(),1);hf();Fp();aV=(0,S_.observer)(function({model:e}){let[t,r]=(0,Rn.useState)(!1),{minimapHeight:n}=e,{unit:o,s:i,w:s,polygonHeight:a,polygonPoints:c}=ef(e),l="rgba(66, 119, 127, 0.3)",{startDrag:u}=bo("x",(0,Rn.useCallback)((d,A)=>{e.setScrollX(A-d/o)},[e,o]));return Rn.default.createElement("div",{style:{position:"relative",height:n,width:"100%"}},Rn.default.createElement("div",{style:{height:12,boxSizing:"border-box",border:"1px solid #555"}}),Rn.default.createElement("div",{style:{position:"absolute",top:0,left:Math.max(0,i),background:t?"rgba(66,119,127,0.6)":l,cursor:"pointer",height:12,width:s,zIndex:100},onMouseOver:()=>{r(!0)},onMouseOut:()=>{r(!1)},onMouseDown:d=>{u(d,e.scrollX)}}),Rn.default.createElement("svg",{height:a,style:{width:"100%"}},Rn.default.createElement("polygon",{fill:l,points:c})))}),v_=aV});var T_,M_,R_=m(()=>{"use client";Ie();T_=p(O(),1),M_=Y((0,T_.jsx)("path",{d:"m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"}),"ExpandLess")});var Q_,Vd,oy=m(()=>{"use client";Ie();Q_=p(O(),1),Vd=Y((0,Q_.jsx)("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore")});var Zr,wa,__,cV,k_,D_=m(()=>{Zr=p(Q(),1);R_();oy();wa=p(U(),1),__=p(W(),1),cV=(0,__.observer)(function({model:e}){let[t,r]=(0,Zr.useState)(!0),{actuallyShowDomains:n,visibleDomainTypes:o,fillPalette:i}=e,s=t?M_:Vd;return n&&o.length>0?Zr.default.createElement(wa.Paper,{elevation:3,style:{position:"absolute",top:4,right:4,zIndex:100,maxWidth:260,maxHeight:"60%",display:"flex",flexDirection:"column",opacity:.95}},Zr.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",padding:"2px 4px 2px 8px"}},Zr.default.createElement(wa.IconButton,{size:"small",onClick:()=>{r(!t)}},Zr.default.createElement(s,{fontSize:"small"}))),t?Zr.default.createElement("div",{style:{overflow:"auto",padding:"0 8px 6px"}},o.map(({accession:a,name:c})=>Zr.default.createElement("div",{key:a,style:{display:"flex",alignItems:"center",gap:6},title:a},Zr.default.createElement("div",{style:{width:12,height:12,flexShrink:0,background:i[a]}}),Zr.default.createElement(wa.Typography,{variant:"caption",noWrap:!0},c)))):null):null}),k_=cV});function iy(){return jd.default.createElement("div",{style:{position:"absolute",left:"50%",top:"50%"}},jd.default.createElement($d.CircularProgress,null),jd.default.createElement($d.Typography,null,"Loading..."))}var jd,$d,N_=m(()=>{jd=p(Q(),1),$d=p(U(),1)});function Dr(e,t){let r=(0,Wd.useRef)(null);return(0,Wd.useEffect)(()=>{let n=r.current?.getContext("2d");return n?(0,L_.autorun)(()=>{e(n)}):void 0},t),r}var Wd,L_,Pi=m(()=>{Wd=p(Q(),1),L_=p(Ls(),1)});function Yd(e){let t=(0,F_.useTheme)(),r=(0,P_.useMemo)(()=>vc(e,t),[e,t]);return{theme:t,contrastScheme:r}}var P_,F_,sy=m(()=>{P_=p(Q(),1),F_=p(U(),1);Co()});var mr,O_,ay,lV,G_,U_=m(()=>{mr=p(Q(),1),O_=p(W(),1),ay=e=>`${Math.round(e*100)}%`,lV=(0,O_.observer)(function({model:e}){let t=e.mouseOverColumnStats;if(!t)return null;let{col:r,total:n,conservation:o,propertyConservation:i,consensusLetter:s,consensusFraction:a,gapFraction:c,distribution:l}=t,u=l.slice(0,6);return mr.default.createElement("div",null,mr.default.createElement("b",null,"Column ",r+1)," (",n," seqs)",mr.default.createElement("br",null),"Consensus: ",s||"-"," (",ay(a),")",mr.default.createElement("br",null),"Conservation: ",o.toFixed(2),i===void 0?null:mr.default.createElement(mr.default.Fragment,null,mr.default.createElement("br",null),"Property conservation: ",i.toFixed(2)),mr.default.createElement("br",null),"Gaps: ",ay(c),u.length>0?mr.default.createElement(mr.default.Fragment,null,mr.default.createElement("br",null),u.map(([d,A])=>mr.default.createElement("span",{key:d,style:{marginRight:8}},d," ",ay(A/n)))):null)}),G_=lV});function uV({event:e,el:t,offsetX:r,offsetY:n,colWidth:o,rowHeight:i}){let{left:s,top:a}=t.getBoundingClientRect();return{col:Math.floor((e.clientX-s+r)/o),row:Math.floor((e.clientY-a+n)/i)}}function V_({model:e,offsetX:t,offsetY:r}){let[n,o]=(0,H_.useState)();function i(u,d){let{colWidth:A,rowHeight:f}=e;return uV({event:u,el:d,offsetX:t,offsetY:r,colWidth:A,rowHeight:f})}function s({col:u,row:d}){return u>=0&&u<e.numColumns&&d>=0&&d<e.numRows}function a(u,d){let A=i(u,d),f=s(A);e.setMousePos(f?A.col:void 0,f?A.row:void 0);let g=!!e.hoveredInsertion||e.mouseOverDomains.length>0||e.showColumnStats&&!!e.mouseOverColumnStats;o(g?{x:u.clientX,y:u.clientY}:void 0)}function c(u,d){let A=i(u,d),{col:f,row:g}=A,{mouseClickCol:h,mouseClickRow:y}=e,E=f===h&&g===y,x=s(A)&&!E;e.setMouseClickPos(x?f:void 0,x?g:void 0)}function l(){e.setMousePos(),o(void 0)}return{tooltipPoint:n,onMouseMove:a,onClick:c,onMouseLeave:l}}var H_,j_=m(()=>{H_=p(Q(),1)});var Yt,$_,fV,W_,Y_=m(()=>{Yt=p(Q(),1);U2();$_=p(W(),1);Pi();sy();U_();Up();Zp();j_();fV=(0,$_.observer)(function({model:e,offsetX:t,offsetY:r}){let{scrollY:n,scrollX:o,colorScheme:i,blockSize:s,highResScaleFactor:a}=e,{theme:c,contrastScheme:l}=Yd(i),{tooltipPoint:u,onMouseMove:d,onClick:A,onMouseLeave:f}=V_({model:e,offsetX:t,offsetY:r}),g=Dr(x=>{let{blockSize:S,highResScaleFactor:w,actuallyShowDomains:I}=e;x.resetTransform(),x.clearRect(0,0,S*w,S*w),I&&sf({ctx:x,offsetX:t,offsetY:r,model:e}),ff({ctx:x,theme:c,offsetX:t,offsetY:r,contrastScheme:l,model:e})},[e,t,r,c,l]),{hoveredInsertion:h,mouseOverDomains:y,showColumnStats:E}=e;return Yt.default.createElement(Yt.default.Fragment,null,Yt.default.createElement("canvas",{ref:g,onMouseMove:x=>{g.current&&d(x,g.current)},onClick:x=>{g.current&&A(x,g.current)},onMouseLeave:()=>{f()},width:s*a,height:s*a,style:{position:"absolute",top:n+r,left:o+t,width:s,height:s}}),u?Yt.default.createElement(U0,{clientPoint:{x:u.x,y:u.y+15}},h?Yt.default.createElement(Yt.default.Fragment,null,"Insertion (",h.letters.length,e.sequenceType==="amino"?"aa":"bp","):"," ",h.letters.length>20?`${h.letters.slice(0,20)}...`:h.letters):Yt.default.createElement(Yt.default.Fragment,null,y.map(x=>Yt.default.createElement("div",{key:`${x.accession}-${x.start}-${x.end}`},Yt.default.createElement("b",null,x.name)," (",x.accession,") ",x.start,"-",x.end,x.description?Yt.default.createElement(Yt.default.Fragment,null,Yt.default.createElement("br",null),x.description):null)),E?Yt.default.createElement(G_,{model:e}):null)):null)}),W_=fV});var Qn,q_,dV,z_,J_=m(()=>{Qn=p(Q(),1),q_=p(W(),1);Cf();N_();Y_();dV=(0,q_.observer)(function({model:e}){let{MSA:t,verticalScrollbarWidth:r,msaFilehandle:n,height:o,msaAreaWidth:i,blocks2d:s,scrollZoom:a}=e,c=(0,Qn.useRef)(null),l=(0,Qn.useCallback)(g=>{e.doScrollX(g)},[e]),u=(0,Qn.useCallback)(g=>{e.doScrollY(g)},[e]),d=(0,Qn.useCallback)((g,h,y)=>{e.zoomToPos(g,h,y)},[e]),{onMouseDown:A,onMouseUp:f}=js({ref:c,onScrollX:l,onScrollY:u,onZoom:d,scrollZoom:a});return Qn.default.createElement("div",{ref:c,"data-testid":"msa_canvas",onMouseDown:A,onMouseUp:f,onMouseLeave:g=>{g.preventDefault()},style:{position:"relative",height:o,width:i-r,overflow:"hidden"}},!t&&!n?null:t?s.map(([g,h])=>Qn.default.createElement(W_,{key:`${g}_${h}`,model:e,offsetX:g,offsetY:h})):Qn.default.createElement(iy,null))}),z_=dV});var qd,K_,X_,cy=m(()=>{qd="rgba(0,128,255,0.3)",K_="rgba(255,165,0,0.2)",X_="rgba(255,165,0,0.15)"});function tk({ctx:e,model:t}){let{mouseCol:r,colWidth:n,msaAreaWidth:o,verticalScrollbarWidth:i,height:s,rowHeight:a,scrollX:c,scrollY:l,mouseRow:u,mouseClickRow:d,mouseClickCol:A,highResScaleFactor:f,referenceRowIndex:g,hoveredRowIndices:h,highlightedColumnRuns:y}=t,E=o-i;if(e.resetTransform(),e.clearRect(0,0,E*f,s*f),e.scale(f,f),g!==void 0&&(e.fillStyle=qd,e.fillRect(0,g*a+l,E,a)),h.length>0){e.fillStyle=X_;for(let x of h)e.fillRect(0,x*a+l,E,a)}if(y.length>0){e.lineWidth=2;for(let{start:x,end:S}of y){let w=x*n+c,I=(S-x+1)*n;e.fillStyle=AV,e.fillRect(w,0,I,s),e.strokeStyle=mV,e.strokeRect(w,0,I,s)}}r!==void 0&&(e.fillStyle=Z_,e.fillRect(r*n+c,0,n,s)),u!==void 0&&(e.fillStyle=Z_,e.fillRect(0,u*a+l,E,a)),A!==void 0&&(e.fillStyle=ek,e.fillRect(A*n+c,0,n,s)),d!==void 0&&(e.fillStyle=ek,e.fillRect(0,d*a+l,E,a))}var Z_,ek,AV,mV,rk=m(()=>{cy();Z_="rgba(0,0,0,0.15)",ek="rgba(128,128,0,0.2)",AV="rgba(255,140,0,0.28)",mV="rgba(210,90,0,0.95)"});var nk,ok,ik,pV,sk,ak=m(()=>{nk=p(Q(),1),ok=p(Kt(),1),ik=p(W(),1);Pi();rk();pV=(0,ik.observer)(function({model:e}){let{height:t,msaAreaWidth:r,verticalScrollbarWidth:n,highResScaleFactor:o}=e,i=r-n,s=Dr(a=>{(0,ok.isAlive)(e)&&tk({ctx:a,model:e})},[e]);return nk.default.createElement("canvas",{ref:s,id:"mouseover",width:i*o,height:t*o,style:{position:"absolute",top:0,left:0,width:i,height:t,zIndex:1e3,pointerEvents:"none"}})}),sk=pV});var bl,ck,gV,lk,uk=m(()=>{bl=p(Q(),1),ck=p(W(),1);D_();J_();ak();gV=(0,ck.observer)(function({model:e}){return bl.default.createElement("div",{style:{position:"relative"}},bl.default.createElement(z_,{model:e}),bl.default.createElement(sk,{model:e}),bl.default.createElement(k_,{model:e}))}),lk=gV});var El,Ia,fk,hV,dk,Ak=m(()=>{El=p(Q(),1),Ia=p(U(),1),fk=p(W(),1),hV=(0,fk.observer)(function({node:e,model:t,onClose:r}){return El.default.createElement(Ia.Menu,{anchorReference:"anchorPosition",anchorPosition:{left:e.x,top:e.y},transitionDuration:0,keepMounted:!0,open:!!e,onClose:r},El.default.createElement(Ia.MenuItem,{dense:!0,disabled:!0},e.name),El.default.createElement(Ia.MenuItem,{dense:!0,onClick:()=>{t.toggleCollapsed(e.id),r()}},t.collapsed.includes(e.id)?"Expand this node":"Collapse this node"),El.default.createElement(Ia.MenuItem,{dense:!0,onClick:()=>{t.showOnly===e.id?t.setShowOnly(void 0):t.setShowOnly(e.id),r()}},t.showOnly===e.id?"Disable show only this node":"Show only this node"))}),dk=hV});var hk={};Bt(hk,{default:()=>xV});var _n,mk,pk,gk,yV,xV,yk=m(()=>{_n=p(Q(),1);_d();z0();mk=p(Ze(),1),pk=p(U(),1),gk=p(W(),1);K0();yV=(0,gk.observer)(function({info:e,model:t,nodeName:r,onClose:n}){let{treeMetadata:o,rows:i}=t,s=o[r],a=i.find(c=>c[0]===r);return _n.default.createElement(mk.Dialog,{onClose:()=>{n()},open:!0,title:"Tree node info",maxWidth:"xl"},_n.default.createElement(pk.DialogContent,null,_n.default.createElement(Ni,{title:"Attributes"},_n.default.createElement(Mn,{attributes:{nodeName:r,...e}})),_n.default.createElement(Ni,{title:"Sequence"},a?_n.default.createElement(xl,{str:[a]}):_n.default.createElement("div",null,"Sequence not found")),s?_n.default.createElement(Ni,{title:"Extra metadata"},_n.default.createElement(Mn,{attributes:s})):null))}),xV=yV});var oo,Uo,xk,CV,bV,Ck,bk=m(()=>{oo=p(Q(),1),Uo=p(U(),1),xk=p(W(),1),CV=(0,oo.lazy)(()=>Promise.resolve().then(()=>(yk(),hk))),bV=(0,xk.observer)(function({node:e,onClose:t,model:r}){let{collapsed:n}=r,{name:o,id:i}=e,s=n.includes(i);return oo.default.createElement(Uo.Menu,{anchorReference:"anchorPosition",anchorPosition:{top:e.y,left:e.x},transitionDuration:0,keepMounted:!0,open:!!e,onClose:t},oo.default.createElement(Uo.MenuItem,{dense:!0,disabled:!0},o),oo.default.createElement(Uo.MenuItem,{dense:!0,onClick:()=>{r.queueDialog(a=>[CV,{info:r.getRowData(o),model:r,nodeName:o,onClose:a}]),t()}},"More info..."),oo.default.createElement(Uo.MenuItem,{dense:!0,onClick:()=>{r.toggleCollapsed(i),t()}},s?"Expand subtree":"Collapse subtree"),oo.default.createElement(Uo.MenuItem,{dense:!0,onClick:()=>{r.drawRelativeTo(e.name),t()}},"Indicate differences from this row"),r.relativeTo?oo.default.createElement(Uo.MenuItem,{dense:!0,onClick:()=>{r.drawRelativeTo(void 0),t()}},"Clear reference row"):null)}),Ck=bV});var wl,Ek=m(()=>{wl=class{constructor(t=1/0,r=Float64Array,n=Uint32Array){let o=t!==1/0;this.ids=o?new n(t):[],this.values=o?new r(t):[],this.capacity=t,this.length=0}clear(){this.length=0}push(t,r){if(this.length===this.capacity)throw new RangeError("Queue is at capacity.");let n=this.length++;for(;n>0;){let o=n-1>>1,i=this.values[o];if(r>=i)break;this.ids[n]=this.ids[o],this.values[n]=i,n=o}this.ids[n]=t,this.values[n]=r}pop(){if(this.length===0)return;let t=this.ids,r=this.values,n=t[0],o=--this.length;if(o>0){let i=t[o],s=r[o],a=0,c=o>>1;for(;a<c;){let l=(a<<1)+1,u=l+1,d=l+(+(u<o)&+(r[u]<r[l]));if(r[d]>=s)break;t[a]=t[d],r[a]=r[d],a=d}t[a]=i,r[a]=s}return n}peek(){return this.length>0?this.ids[0]:void 0}peekValue(){return this.length>0?this.values[0]:void 0}shrink(){Array.isArray(this.ids)&&(this.ids.length=this.length),Array.isArray(this.values)&&(this.values.length=this.length)}}});function EV(e,t){let r=0,n=t.length-1;for(;r<n;){let o=r+n>>1;t[o]>e?n=o:r=o+1}return t[r]}function wV(e,t,r,n,o,i){let s=[n,o];for(;s.length;){let a=s.pop()||0,c=s.pop()||0;if(a-c<=i&&Math.floor(c/i)>=Math.floor(a/i))continue;let l=e[c],u=e[c+a>>1],d=e[a],A=l>u!=l>d?l:u<l!=u<d?u:d,f=c-1,g=a+1;for(;;){do f++;while(e[f]<A);do g--;while(e[g]>A);if(f>=g)break;IV(e,t,r,f,g)}s.push(c,g,g+1,a)}}function IV(e,t,r,n,o){let i=e[n];e[n]=e[o],e[o]=i;let s=4*n,a=4*o,c=t[s],l=t[s+1],u=t[s+2],d=t[s+3];t[s]=t[a],t[s+1]=t[a+1],t[s+2]=t[a+2],t[s+3]=t[a+3],t[a]=c,t[a+1]=l,t[a+2]=u,t[a+3]=d;let A=r[n];r[n]=r[o],r[o]=A}function SV(e,t){let r=e^t,n=65535^r,o=65535^(e|t),i=e&(t^65535),s=r|n>>1,a=r>>1^r,c=o^(o>>1^n&i>>1),l=i^(r&o>>1^i>>1);return r=s&s>>2^a&a>>2,n=s&a>>2^a&(s^a)>>2,o=c^(s&c>>2^a&l>>2),i=l^(a&c>>2^(s^a)&l>>2),s=r&r>>4^n&n>>4,a=r&n>>4^n&(r^n)>>4,c=o^(r&o>>4^n&i>>4),l=i^(n&o>>4^(r^n)&i>>4),o=c^(s&c>>8^a&l>>8),i=l^(a&c>>8^(s^a)&l>>8),o^=o>>1,i^=i>>1,r=e^t,n=i|65535^(r|o),r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,((n<<1|r)>>>0)-2147483648}var wk,ly,Il,Ik=m(()=>{Ek();wk=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],ly=3,Il=class e{static from(t,r=0){if(r%8!==0)throw new Error("byteOffset must be 8-byte aligned.");if(!t||t.byteLength===void 0||"buffer"in t)throw new Error("Data must be an instance of ArrayBuffer or SharedArrayBuffer.");let[n,o]=new Uint8Array(t,r+0,2);if(n!==251)throw new Error("Data does not appear to be in a Flatbush format.");let i=o>>4;if(i!==ly)throw new Error(`Got v${i} data when expected v${ly}.`);let s=wk[o&15];if(!s)throw new Error("Unrecognized array type.");let[a]=new Uint16Array(t,r+2,1),[c]=new Uint32Array(t,r+4,1);return new e(c,a,s,void 0,t,r)}constructor(t,r=16,n=Float64Array,o=ArrayBuffer,i,s=0){if(t===void 0)throw new Error("Missing required argument: numItems.");if(isNaN(t)||t<=0)throw new Error(`Unexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+r,2),65535),this.byteOffset=s;let a=t,c=a;this._levelBounds=[a*4];do a=Math.ceil(a/this.nodeSize),c+=a,this._levelBounds.push(c*4);while(a!==1);this.ArrayType=n,this.IndexArrayType=c<16384?Uint16Array:Uint32Array;let l=wk.indexOf(n),u=c*4*n.BYTES_PER_ELEMENT;if(l<0)throw new Error(`Unexpected typed array class: ${n}.`);let d=n,A=this.IndexArrayType;if(i)this.data=i,this._boxes=new d(i,s+8,c*4),this._indices=new A(i,s+8+u,c),this._pos=c*4,this.minX=this._boxes[this._pos-4],this.minY=this._boxes[this._pos-3],this.maxX=this._boxes[this._pos-2],this.maxY=this._boxes[this._pos-1];else{let f=this.data=new o(8+u+c*this.IndexArrayType.BYTES_PER_ELEMENT);this._boxes=new d(f,8,c*4),this._indices=new A(f,8+u,c),this._pos=0,this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,new Uint8Array(f,0,2).set([251,(ly<<4)+l]),new Uint16Array(f,2,1)[0]=r,new Uint32Array(f,4,1)[0]=t}this._queue=new wl}add(t,r,n=t,o=r){let i=this._pos,s=i>>2,a=this._boxes;return this._indices[s]=s,a[i]=t,a[i+1]=r,a[i+2]=n,a[i+3]=o,this._pos=i+4,t<this.minX&&(this.minX=t),r<this.minY&&(this.minY=r),n>this.maxX&&(this.maxX=n),o>this.maxY&&(this.maxY=o),s}finish(){if(this._pos>>2!==this.numItems)throw new Error(`Added ${this._pos>>2} items when expected ${this.numItems}.`);let t=this._boxes;if(this.numItems<=this.nodeSize){t[this._pos++]=this.minX,t[this._pos++]=this.minY,t[this._pos++]=this.maxX,t[this._pos++]=this.maxY;return}let{numItems:r,minX:n,minY:o,nodeSize:i,_indices:s,_levelBounds:a}=this,c=this.maxX-n||1,l=this.maxY-o||1,u=new Int32Array(r),d=65535,A=d/c,f=d/l;for(let h=0,y=0;h<r;h++){let E=t[y++],x=t[y++],S=t[y++],w=t[y++],I=A*((E+S)/2-n)|0,v=f*((x+w)/2-o)|0;u[h]=SV(I,v)}wV(u,t,s,0,r-1,i);let g=r*4;for(let h=0,y=0;h<a.length-1;h++){let E=a[h];for(;y<E;){let x=y,S=t[y++],w=t[y++],I=t[y++],v=t[y++];for(let B=1;B<i&&y<E;B++)S=Math.min(S,t[y++]),w=Math.min(w,t[y++]),I=Math.max(I,t[y++]),v=Math.max(v,t[y++]);s[g>>2]=x,t[g++]=S,t[g++]=w,t[g++]=I,t[g++]=v}}this._pos=g}search(t,r,n,o,i){if(this._pos!==this._boxes.length)throw new Error("Data not yet indexed - call index.finish().");let{_boxes:s,_levelBounds:a,_indices:c,nodeSize:l}=this,u=this.numItems*4,d=s.length-4,A=a.length-1,f=[],g=[],h=!1;for(;d!==void 0;){let y=Math.min(d+l*4,a[A]),E=d>=u;if(h)this._collectContained(d,y,A,u,g,i);else for(let x=d;x<y;x+=4){let S=s[x];if(n<S)continue;let w=s[x+1];if(o<w)continue;let I=s[x+2];if(t>I)continue;let v=s[x+3];if(r>v)continue;let B=c[x>>2]|0;if(E){let R=+(t<=S&&r<=w&&n>=I&&o>=v);f.push(B|R,A-1)}else(i===void 0||i(B,S,w,I,v))&&g.push(B)}A=f.pop(),d=f.pop(),d!==void 0&&(h=(d&1)===1,d&=-2)}return g}_collectContained(t,r,n,o,i,s){let a=this._boxes,c=this._indices,l=t;for(let d=n;d>0;d--)l=c[l>>2];let u=Math.min(l+(r-t)*this.nodeSize**n,o);if(s===void 0)for(;l<u;l+=4)i.push(c[l>>2]|0);else for(;l<u;l+=4){let d=c[l>>2]|0;s(d,a[l],a[l+1],a[l+2],a[l+3])&&i.push(d)}}neighbors(t,r,n=1/0,o=1/0,i){if(this._pos!==this._boxes.length)throw new Error("Data not yet indexed - call index.finish().");let{_boxes:s,_levelBounds:a,_indices:c,_queue:l,nodeSize:u}=this,d=this.numItems*4,A=u*4,f=[],g=o*o,h=n===1,y=g;for(l.push(s.length-4<<1,0);l.length;){let E=l.ids[0];if(E&1){if(l.pop(),f.push(E>>1),f.length===n)break;continue}l.pop();let x=E>>1,S=x<d,w=Math.min(x+A,EV(x,a));for(let I=x;I<w;I+=4){let v=s[I],B=s[I+1],R=s[I+2],D=s[I+3],L=Math.max(Math.max(v-t,t-R),0),F=Math.max(Math.max(B-r,r-D),0),C=L*L+F*F;if(C>y)continue;let M=c[I>>2]|0;S?(i===void 0||i(M))&&(l.push(M<<1|1,C),h&&C<y&&(y=C)):l.push(M<<1,C)}}return l.clear(),f}}});var zd,Sk=m(()=>{Ik();zd=class{flatbush=null;entries=[];clear(){this.flatbush=null,this.entries=[]}insert(t){this.entries.push(t)}finish(){if(this.entries.length===0)this.flatbush=null;else{this.flatbush=new Il(this.entries.length);for(let t of this.entries)this.flatbush.add(t.minX,t.minY,t.maxX,t.maxY);this.flatbush.finish()}}search(t){return this.flatbush?.search(t.minX,t.minY,t.maxX,t.maxY).map(r=>this.entries[r])??[]}}});function vk({model:e,offsetY:t}){let r=(0,Jd.useRef)(null);r.current??=new zd;let n=r.current,[o,i]=(0,Jd.useState)();function s(l){let u=l.nativeEvent.offsetX,d=l.nativeEvent.offsetY+t,A=n.search({minX:u,maxX:u+1,minY:d,maxY:d+1});return A.find(f=>!f.branch)??A[0]}function a(l){let u=s(l);i(u?{...u,clientX:l.clientX,clientY:l.clientY}:void 0),e.setHoveredTreeNode(u?.id),e.setMousePos(void 0,u&&!u.branch?e.rowNamesSet.get(u.name):void 0)}function c(){i(void 0),e.setHoveredTreeNode(void 0),e.setMousePos(void 0,void 0)}return{clickMap:n,hovered:o,hitTest:s,onMouseMove:a,onMouseLeave:c}}var Jd,Bk=m(()=>{Jd=p(Q(),1);Sk()});var en,Tk,Mk,vV,BV,Rk,Qk=m(()=>{en=p(Q(),1);Ve();Tk=p(U(),1),Mk=p(W(),1);Pi();Ak();bk();gf();Bk();vV=Z()(e=>({tooltip:{position:"fixed",pointerEvents:"none",zIndex:1e4,backgroundColor:e.palette.grey[700],color:e.palette.common.white,padding:"4px 8px",borderRadius:4,fontSize:12,whiteSpace:"nowrap",maxWidth:300,overflow:"hidden",textOverflow:"ellipsis"},hover:{position:"absolute",pointerEvents:"none",zIndex:100,background:"rgba(0,0,0,0.1)"}})),BV=(0,Mk.observer)(function({model:e,offsetY:t}){let{classes:r}=vV(),n=(0,Tk.useTheme)(),[o,i]=(0,en.useState)(),[s,a]=(0,en.useState)(),{clickMap:c,hovered:l,hitTest:u,onMouseMove:d,onMouseLeave:A}=vk({model:e,offsetY:t}),{scrollY:f,treeAreaWidth:g,blockSize:h,highResScaleFactor:y}=e,E=g+mf,x=h,S=Dr(I=>{I.resetTransform(),I.clearRect(0,0,E*y,x*y),pf({ctx:I,model:e,offsetY:t,clickMap:c,theme:n})},[e,c,t,n]),w={width:E,height:x,top:f+t,left:0,position:"absolute"};return en.default.createElement(en.default.Fragment,null,o?en.default.createElement(dk,{node:o,model:e,onClose:()=>{i(void 0)}}):null,s?en.default.createElement(Ck,{node:s,model:e,onClose:()=>{a(void 0)}}):null,en.default.createElement("canvas",{ref:S,width:E*y,height:x*y,style:{...w,cursor:l?"pointer":"default"},onMouseMove:I=>{d(I)},onMouseLeave:()=>{A()},onClick:I=>{let v=u(I);if(v){let B={x:I.clientX,y:I.clientY,id:v.id,name:v.name};v.branch?i(B):a(B)}}}),l&&!l.branch?en.default.createElement("div",{className:r.hover,style:{left:l.minX,top:l.minY+f,width:l.maxX-l.minX,height:l.maxY-l.minY}}):null,l?en.default.createElement("div",{className:r.tooltip,style:{left:l.clientX+12,top:l.clientY+12}},l.name):null)}),Rk=BV});var Ho,_k,kk,TV,Dk,Nk=m(()=>{Ho=p(Q(),1),_k=p(Kt(),1),kk=p(W(),1);Pi();Cf();cy();Qk();gf();TV=(0,kk.observer)(function({model:e}){let t=(0,Ho.useRef)(null),{treeWidth:r,height:n,blocksY:o,treeAreaWidth:i}=e,s=(0,Ho.useCallback)(u=>{e.doScrollY(u)},[e]),{onMouseDown:a,onMouseUp:c}=js({ref:t,onScrollY:s}),l=Dr(u=>{if((0,_k.isAlive)(e)){let{rowHeight:d,treeAreaWidth:A,height:f,scrollY:g,mouseRow:h,referenceRowIndex:y,hoveredRowIndices:E}=e;u.resetTransform(),u.clearRect(0,0,A,f);let x=S=>{u.fillRect(0,S*d+g,A,d)};y!==void 0&&(u.fillStyle=qd,x(y)),u.fillStyle=K_;for(let S of E)x(S);h!==void 0&&h!==y&&!E.includes(h)&&x(h)}},[e]);return Ho.default.createElement("div",{ref:t,onMouseDown:a,onMouseUp:c,onMouseLeave:u=>{u.preventDefault()},style:{height:n,position:"relative",width:r+mf}},o.map(u=>Ho.default.createElement(Rk,{key:u,model:e,offsetY:u})),Ho.default.createElement("canvas",{ref:l,width:i,height:n,style:{position:"absolute",top:0,left:0,width:i,height:n,zIndex:1e3,pointerEvents:"none"}}))}),Dk=TV});var uy,Lk,MV,Pk,Fk=m(()=>{uy=p(Q(),1),Lk=p(W(),1);Nk();MV=(0,Lk.observer)(function({model:e}){let{treeAreaWidth:t}=e;return uy.default.createElement("div",{style:{overflow:"hidden",flexShrink:0,width:t}},uy.default.createElement(Dk,{model:e}))}),Pk=MV});var Ok,Gk,RV,Uk,Hk=m(()=>{Ok=p(Q(),1),Gk=p(W(),1),RV=(0,Gk.observer)(({model:e})=>{let{treeAreaWidth:t}=e;return Ok.default.createElement("div",{style:{flexShrink:0,width:t}})}),Uk=RV});var ue,Fi,QV,_V,kV,DV,NV,LV,Vk,jk=m(()=>{ue=p(Q(),1),Fi=p(W(),1);pg();bS();SS();I_();B_();uk();Fk();Hk();QV=(0,Fi.observer)(function({model:e}){let{showHorizontalScrollbar:t}=e;return ue.default.createElement("div",{style:{display:"flex"}},ue.default.createElement(Uk,{model:e}),t?ue.default.createElement(v_,{model:e}):null)}),_V=(0,Fi.observer)(function({model:e}){let{mouseCol:t,mouseClickCol:r,colWidth:n,scrollX:o,treeAreaWidth:i,resizeHandleWidth:s,totalTrackAreaHeight:a,msaAreaWidth:c,verticalScrollbarWidth:l}=e,u=i+s,d=c-l;return ue.default.createElement("div",{style:{position:"absolute",left:u,top:0,width:d,height:a,overflow:"hidden",pointerEvents:"none"}},t!==void 0?ue.default.createElement("div",{style:{position:"absolute",left:t*n+o,top:0,width:n,height:a,backgroundColor:"rgba(0,0,0,0.15)",zIndex:100}}):null,r!==void 0?ue.default.createElement("div",{style:{position:"absolute",left:r*n+o,top:0,width:n,height:a,backgroundColor:"rgba(128,128,0,0.2)",zIndex:100}}):null)}),kV=(0,Fi.observer)(function({model:e}){let{turnedOnTracks:t}=e;return t.length===0?null:ue.default.createElement("div",{style:{position:"relative"}},ue.default.createElement(_V,{model:e}),t.map(r=>ue.default.createElement(CS,{key:r.model.id,model:e,track:r})))}),DV=(0,Fi.observer)(function({model:e}){let{showVerticalScrollbar:t}=e;return ue.default.createElement("div",{style:{display:"flex"}},ue.default.createElement(Pk,{model:e}),ue.default.createElement(jI,{model:e}),ue.default.createElement(lk,{model:e}),t?ue.default.createElement(IS,{model:e}):null)}),NV=(0,Fi.observer)(function({model:e}){return ue.default.createElement("div",{style:{position:"relative"}},ue.default.createElement(QV,{model:e}),ue.default.createElement(kV,{model:e}),ue.default.createElement(DV,{model:e}))}),LV=(0,Fi.observer)(function({model:e}){let{height:t,viewInitialized:r,DialogComponent:n,DialogProps:o}=e;return ue.default.createElement("div",null,r?ue.default.createElement(ue.default.Fragment,null,ue.default.createElement("div",{style:{height:t,overflow:"hidden"}},ue.default.createElement(w_,{model:e}),ue.default.createElement(NV,{model:e})),ue.default.createElement($I,{model:e}),n?ue.default.createElement(ue.Suspense,{fallback:null},ue.default.createElement(n,{...o})):null):null)}),Vk=LV});var $k,Wk,Yk,qk=m(()=>{$k=`CLUSTAL O(1.2.3) multiple sequence alignment
49
+ `);return Kr.default.createElement(Kr.default.Fragment,null,Kr.default.createElement(Nd.Button,{color:"primary",variant:"contained",onClick:()=>{Lc(l),n(!0),setTimeout(()=>{n(!1)},500)}},r?"Copied!":"Copy to clipboard"),Kr.default.createElement(Li,{label:"Show gaps",checked:o,onChange:()=>{i(!o)}}),Kr.default.createElement(Li,{label:"Show empty",checked:s,onChange:()=>{a(!s)}}),Kr.default.createElement(Nd.TextField,{variant:"outlined",multiline:!0,className:t.dialogContent,minRows:5,maxRows:10,fullWidth:!0,value:l,slotProps:{input:{readOnly:!0,className:t.textAreaFont}}}))}var Kr,Nd,HH,K0=m(()=>{Kr=p(Q(),1);Ve();Nd=p(U(),1);xg();J0();HH=Z()({textAreaFont:{fontFamily:"Courier New",wordWrap:"break-word"},dialogContent:{background:"lightgrey",margin:4,minWidth:"80em"}})});var mQ={};Bt(mQ,{default:()=>jH});var ba,fQ,dQ,AQ,VH,jH,pQ=m(()=>{ba=p(Q(),1);_d();z0();fQ=p(Ze(),1),dQ=p(U(),1),AQ=p(W(),1);K0();VH=(0,AQ.observer)(function({model:e,onClose:t}){let{header:r}=e;return ba.default.createElement(fQ.Dialog,{onClose:()=>{t()},open:!0,title:"Metadata",maxWidth:"xl"},ba.default.createElement(dQ.DialogContent,null,ba.default.createElement(Mn,{attributes:r}),ba.default.createElement(Ni,{title:"sequence"},ba.default.createElement(xl,{str:e.rows}))))}),jH=VH});var hQ={};Bt(hQ,{default:()=>gQ});function gQ({model:e,onClose:t}){let[r,n]=(0,Pe.useState)(!0),[o,i]=(0,Pe.useState)(!0),[s,a]=(0,Pe.useState)("viewport"),[c,l]=(0,Pe.useState)(),u=(0,_e.useTheme)(),{totalWidth:d,totalHeight:A,treeAreaWidth:f,turnedOnTracks:g,totalTrackAreaHeight:h}=e,y=g.length>0,E=d+f,x=A+(o?h:0),S=s==="entire"&&(E>1e4||x>1e4);return Pe.default.createElement(Ld.Dialog,{onClose:()=>{t()},open:!0,title:"Export SVG"},Pe.default.createElement(_e.DialogContent,null,c?Pe.default.createElement(Ld.ErrorMessage,{error:c}):null,Pe.default.createElement(_e.Typography,null,"Settings:"),Pe.default.createElement(Li,{label:"Include minimap?",disabled:s==="entire",checked:r,onChange:()=>{n(!r)}}),y?Pe.default.createElement(Li,{label:"Include tracks?",checked:o,onChange:()=>{i(!o)}}):null,Pe.default.createElement("div",null,Pe.default.createElement(_e.FormControl,null,Pe.default.createElement(_e.FormLabel,null,"Export type"),Pe.default.createElement(_e.RadioGroup,{value:s,onChange:w=>{let{value:I}=w.target;(I==="entire"||I==="viewport")&&a(I)}},Pe.default.createElement(_e.FormControlLabel,{value:"entire",control:Pe.default.createElement(_e.Radio,null),label:"Entire MSA"}),Pe.default.createElement(_e.FormControlLabel,{value:"viewport",control:Pe.default.createElement(_e.Radio,null),label:"Current viewport only"})))),S?Pe.default.createElement(_e.Alert,{severity:"warning",style:{marginTop:8}},"The entire MSA is very large (",Math.round(E),"x",Math.round(x)," pixels). Export may be slow or fail."):null),Pe.default.createElement(_e.DialogActions,null,Pe.default.createElement(_e.Button,{variant:"contained",color:"primary",onClick:()=>{e.exportSVG({theme:u,includeMinimap:s==="entire"?!1:r,includeTracks:y&&o,exportType:s}).then(()=>{t()}).catch(w=>{console.error(w),l(w)})}},"Submit"),Pe.default.createElement(_e.Button,{variant:"contained",color:"secondary",onClick:()=>{t()}},"Cancel")))}var Pe,Ld,_e,yQ=m(()=>{Pe=p(Q(),1),Ld=p(Ze(),1),_e=p(U(),1);J0()});var Ea,xQ,$H,WH,YH,CQ,bQ=m(()=>{Ea=p(Q(),1);da();NM();a0();OM();UM();xQ=p(W(),1);PR();$H=(0,Ea.lazy)(()=>Promise.resolve().then(()=>(pQ(),mQ))),WH=(0,Ea.lazy)(()=>Promise.resolve().then(()=>(yQ(),hQ))),YH=(0,xQ.observer)(({model:e})=>Ea.default.createElement(vn,{"data-testid":"file_menu",tooltip:"File",menuItems:[{label:"Return to import form",icon:cd,onClick:()=>{e.reset()}},{label:"Metadata",icon:DM,onClick:()=>{e.queueDialog(t=>[$H,{model:e,onClose:t}])}},{label:"Domain settings",type:"subMenu",subMenu:LR({model:e})},{label:"Export SVG",icon:GM,onClick:()=>{e.queueDialog(t=>[WH,{onClose:t,model:e}])}}],anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"}},Ea.default.createElement(FM,null))),CQ=YH});var Pd,Fd,EQ,qH,wQ,IQ=m(()=>{Pd=p(Q(),1),Fd=p(U(),1),EQ=p(W(),1),qH=(0,EQ.observer)(function({model:t}){let{hideGaps:r,allowedGappyness:n}=t;return r?Pd.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},Pd.default.createElement(Fd.Typography,{style:{whiteSpace:"nowrap"}},"Hide columns w/ >",n,"% gaps"),Pd.default.createElement(Fd.Slider,{"data-testid":"gappyness_slider",style:{width:100},min:1,max:100,value:n,onChange:(o,i)=>{t.setAllowedGappyness(i)}})):null}),wQ=qH});var Od,SQ,vQ,zH,JH,BQ,TQ=m(()=>{Od=p(Q(),1);Ve();SQ=p(U(),1),vQ=p(W(),1),zH=Z()({container:{display:"flex",overflow:"hidden",margin:"auto",marginLeft:10},nameFirst:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},nameRest:{whiteSpace:"nowrap",flexShrink:0}}),JH=(0,vQ.observer)(function({model:e}){let{mouseOverRowName:t,mouseCol:r}=e,{classes:n}=zH();if(!t||r===void 0)return null;let o=Math.floor(t.length/2),i=e.visibleColToSeqPosOneBased(t,r),s=e.visibleColToRowLetter(t,r);return Od.default.createElement(SQ.Typography,{component:"div",className:n.container,title:t},Od.default.createElement("span",{className:n.nameFirst},t.slice(0,o)),Od.default.createElement("span",{className:n.nameRest},t.slice(o),":",i," (",s,")"))}),BQ=JH});var Cl,MQ,Gd,RQ,KH,XH,QQ,_Q=m(()=>{Cl=p(Q(),1),MQ=p(Ze(),1);Ve();Gd=p(U(),1),RQ=p(W(),1),KH=Z()({margin:{margin:"auto",marginLeft:10}}),XH=(0,RQ.observer)(({model:e})=>{let{status:t}=e,{classes:r}=KH();return t?Cl.default.createElement(Gd.Typography,{className:r.margin},Cl.default.createElement(MQ.LoadingEllipses,{message:t.msg,component:"span"})," ",t.url?Cl.default.createElement("a",{href:t.url,target:"_blank",rel:"noreferrer"},"(status)"):null," ",t.onCancel?Cl.default.createElement(Gd.Button,{size:"small",onClick:()=>t.onCancel?.()},"Cancel"):null):null}),QQ=XH});var kQ,DQ,NQ=m(()=>{"use client";Ie();kQ=p(O(),1),DQ=Y((0,kQ.jsx)("path",{d:"M3 17v2h6v-2zM3 5v2h10V5zm10 16v-2h8v-2h-8v-2h-2v6zM7 9v2H3v2h4v2h2V9zm14 4v-2H11v2zm-6-4h2V7h4V5h-4V3h-2z"}),"Tune")});function LQ(e){let{drawMsaLetters:t,hideGaps:r,bgColor:n,showColumnStats:o}=e;return[{label:"Show column statistics on hover",type:"checkbox",checked:o,onClick:()=>{e.setShowColumnStats(!o)}},{label:"Draw letters",type:"checkbox",checked:t,onClick:()=>{e.setDrawMsaLetters(!t)}},{label:"Color letters instead of background of tiles",type:"checkbox",checked:!n,onClick:()=>{e.setBgColor(!n)}},{label:"Enable hiding gappy columns?",type:"checkbox",checked:r,onClick:()=>{e.setHideGaps(!r)}}]}function PQ(e){let{drawTree:t,showBranchLen:r,labelsAlignRight:n,drawNodeBubbles:o,drawLabels:i}=e;return[{label:"Show branch length",type:"checkbox",checked:r,onClick:()=>{e.setShowBranchLen(!r)}},{label:"Show tree",type:"checkbox",checked:t,onClick:()=>{e.setDrawTree(!t)}},{label:"Draw clickable bubbles on tree branches",type:"checkbox",checked:o,onClick:()=>{e.setDrawNodeBubbles(!o)}},{label:"Tree labels align right",type:"checkbox",checked:n,onClick:()=>{e.setLabelsAlignRight(!n)}},{label:"Draw labels",type:"checkbox",checked:i,onClick:()=>{e.setDrawLabels(!i)}}]}var X0=m(()=>{});var Z0,FQ,ZH,OQ,GQ=m(()=>{Z0=p(Q(),1);da();NQ();FQ=p(W(),1);X0();ZH=(0,FQ.observer)(function({model:e}){return Z0.default.createElement(vn,{"data-testid":"msa_settings_menu",tooltip:"Alignment settings",closeAfterItemClick:!1,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},menuItems:LQ(e)},Z0.default.createElement(DQ,null))}),OQ=ZH});var ey,Ud,UQ,eV,HQ,VQ=m(()=>{ey=p(Q(),1),Ud=p(U(),1),UQ=p(W(),1),eV=(0,UQ.observer)(function({model:e}){let{currentAlignment:t,alignmentNames:r}=e,n=new Map;return r.length>0?ey.default.createElement(Ud.TextField,{select:!0,variant:"outlined",value:t,size:"small",onChange:o=>{e.setCurrentAlignment(+o.target.value),e.setScrollX(0),e.setScrollY(0)}},r.map((o,i)=>{let s=n.get(o)??0;return n.set(o,s+1),ey.default.createElement(Ud.MenuItem,{key:s===0?o:`${o}\0${s}`,value:i},o)})):null}),HQ=eV});var jQ,$Q,WQ=m(()=>{"use client";Ie();jQ=p(O(),1),$Q=Y((0,jQ.jsx)("path",{d:"M22 11V3h-7v3H9V3H2v8h7V8h2v10h4v3h7v-8h-7v3h-2V8h2v3z"}),"AccountTree")});var ty,YQ,tV,qQ,zQ=m(()=>{ty=p(Q(),1);da();WQ();YQ=p(W(),1);X0();tV=(0,YQ.observer)(function({model:e}){let{rows:t}=e;return ty.default.createElement(vn,{"data-testid":"tree_settings_menu",tooltip:"Tree settings",closeAfterItemClick:!1,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},menuItems:[...PQ(e),...t.length>=2?[{label:"Advanced",type:"subMenu",subMenu:[{label:"Calculate neighbor joining tree (BLOSUM62)",onClick:()=>{try{e.calculateNeighborJoiningTreeFromMSA()}catch(r){console.error("Failed to calculate NJ tree:",r),e.setError(r)}}}]}]:[]]},ty.default.createElement($Q,null))}),qQ=tV});var JQ,KQ,XQ=m(()=>{"use client";Ie();JQ=p(O(),1),KQ=Y((0,JQ.jsx)("path",{d:"M13 1.07V9h7c0-4.08-3.05-7.44-7-7.93M4 15c0 4.42 3.58 8 8 8s8-3.58 8-8v-4H4zm7-13.93C7.05 1.56 4 4.92 4 9h7z"}),"Mouse")});var ry,ZQ,e_=m(()=>{"use client";Ie();ry=p(O(),1),ZQ=Y([(0,ry.jsx)("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14"},"0"),(0,ry.jsx)("path",{d:"M12 10h-2v2H9v-2H7V9h2V7h1v2h2z"},"1")],"ZoomIn")});var t_,r_,n_=m(()=>{"use client";Ie();t_=p(O(),1),r_=Y((0,t_.jsx)("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14M7 9h5v1H7z"}),"ZoomOut")});var Xr,Go,o_,rV,i_,s_=m(()=>{Xr=p(Q(),1);XQ();e_();n_();Go=p(U(),1),o_=p(W(),1),rV=(0,o_.observer)(function({model:t}){return Xr.default.createElement(Xr.default.Fragment,null,Xr.default.createElement(Go.Tooltip,{title:"Zoom in"},Xr.default.createElement(Go.IconButton,{"aria-label":"Zoom in",onClick:()=>{t.zoomIn()}},Xr.default.createElement(ZQ,null))),Xr.default.createElement(Go.Tooltip,{title:"Zoom out"},Xr.default.createElement(Go.IconButton,{"aria-label":"Zoom out",onClick:()=>{t.zoomOut()}},Xr.default.createElement(r_,null))),Xr.default.createElement(Go.ToggleButton,{value:"scrollZoom",selected:t.scrollZoom,"aria-label":"Toggle scroll-to-zoom",title:"Toggle scroll-to-zoom (zoom on plain mouse wheel; ctrl+wheel always zooms)",size:"small",sx:{border:"none"},onChange:()=>{t.setScrollZoom(!t.scrollZoom)}},Xr.default.createElement(KQ,null)))}),i_=rV});var a_,c_,l_=m(()=>{"use client";Ie();a_=p(O(),1),c_=Y((0,a_.jsx)("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"}),"MoreVert")});var u_,f_,d_=m(()=>{"use client";Ie();u_=p(O(),1),f_=Y((0,u_.jsx)("path",{d:"M12 5V2L8 6l4 4V7c3.31 0 6 2.69 6 6 0 2.97-2.17 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93 0-4.42-3.58-8-8-8m-6 8c0-1.65.67-3.15 1.76-4.24L6.34 7.34C4.9 8.79 4 10.79 4 13c0 4.08 3.05 7.44 7 7.93v-2.02c-2.83-.48-5-2.94-5-5.91"}),"RestartAlt")});var ny,A_,nV,m_,p_=m(()=>{ny=p(Q(),1);da();l_();d_();A_=p(W(),1),nV=(0,A_.observer)(function({model:e}){return ny.default.createElement(vn,{tooltip:"Fit / zoom options",menuItems:[{label:"Fit both vertically/horizontally",onClick:()=>{e.fit()}},{label:"Fit vertically",onClick:()=>{e.fitVertically()}},{label:"Fit horizontally",onClick:()=>{e.fitHorizontally()}},{label:"Reset zoom to default",icon:f_,onClick:()=>{e.resetZoom()}}]},ny.default.createElement(c_,null))}),m_=nV});var g_,h_=m(()=>{g_="5.7.2"});var C_={};Bt(C_,{default:()=>x_});function x_({onClose:e}){return at.default.createElement(y_.Dialog,{open:!0,title:"About",onClose:()=>{e()}},at.default.createElement(Wt.DialogContent,null,at.default.createElement(Wt.Typography,null,"MSAView ",g_," (",at.default.createElement(Wt.Link,{href:"https://github.com/gmod/react-msaview"},"Github"),")"),at.default.createElement("ul",null,at.default.createElement("li",null,at.default.createElement(Wt.Typography,null,"We use some color schemes from the"," ",at.default.createElement(Wt.Link,{href:"https://github.com/biotite-dev/biotite"},"biotite")," ","project, and their license is reproduced"," ",at.default.createElement(Wt.Link,{href:"https://github.com/biotite-dev/biotite/blob/master/LICENSE.rst"},"here"))),at.default.createElement("li",null,at.default.createElement(Wt.Typography,null,"See this page for some information on jalview colorings"," ",at.default.createElement(Wt.Link,{href:"https://www.jalview.org/help/html/colourSchemes/"},"here"))),at.default.createElement("li",null,at.default.createElement(Wt.Typography,null,"See this page for some info on the clustal, cinema, maeditor, and lesk color schemes"," ",at.default.createElement(Wt.Link,{href:"http://www.bioinformatics.nl/~berndb/aacolour.html"},"here"))),at.default.createElement("li",null,at.default.createElement(Wt.Typography,null,"See this paper about the flower color scheme"," ",at.default.createElement(Wt.Link,{href:"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7245768/"},"here"))))))}var at,y_,Wt,b_=m(()=>{at=p(Q(),1),y_=p(Ze(),1),Wt=p(U(),1);h_()});function sV(){return je.default.createElement("div",{style:{flex:1}})}var je,Hd,E_,oV,iV,w_,I_=m(()=>{je=p(Q(),1);vS();MS();Hd=p(U(),1),E_=p(W(),1);_M();bQ();IQ();TQ();_Q();GQ();VQ();zQ();s_();p_();oV=(0,je.lazy)(()=>Promise.resolve().then(()=>(b_(),C_))),iV=(0,E_.observer)(function({model:e}){let[t,{height:r}]=bg();return(0,je.useEffect)(()=>{e.setHeaderHeight(r??0)},[e,r]),je.default.createElement("div",{ref:t,style:{display:"flex"}},je.default.createElement(CQ,{model:e}),je.default.createElement(QM,{model:e}),je.default.createElement(qQ,{model:e}),je.default.createElement(OQ,{model:e}),je.default.createElement(i_,{model:e}),je.default.createElement(m_,{model:e}),je.default.createElement(wQ,{model:e}),je.default.createElement("div",{style:{paddingLeft:20,margin:"auto"}},je.default.createElement(HQ,{model:e})),je.default.createElement(BQ,{model:e}),je.default.createElement(sV,null),je.default.createElement(QQ,{model:e}),je.default.createElement(Hd.Tooltip,{title:"About"},je.default.createElement(Hd.IconButton,{"aria-label":"About",onClick:()=>{e.queueDialog(n=>[oV,{onClose:n}])}},je.default.createElement(TS,null))))});w_=iV});var Rn,S_,aV,v_,B_=m(()=>{Rn=p(Q(),1),S_=p(W(),1);hf();Fp();aV=(0,S_.observer)(function({model:e}){let[t,r]=(0,Rn.useState)(!1),{minimapHeight:n}=e,{unit:o,s:i,w:s,polygonHeight:a,polygonPoints:c}=ef(e),l="rgba(66, 119, 127, 0.3)",{startDrag:u}=bo("x",(0,Rn.useCallback)((d,A)=>{e.setScrollX(A-d/o)},[e,o]));return Rn.default.createElement("div",{style:{position:"relative",height:n,width:"100%"}},Rn.default.createElement("div",{style:{height:12,boxSizing:"border-box",border:"1px solid #555"}}),Rn.default.createElement("div",{style:{position:"absolute",top:0,left:Math.max(0,i),background:t?"rgba(66,119,127,0.6)":l,cursor:"pointer",height:12,width:s,zIndex:100},onMouseOver:()=>{r(!0)},onMouseOut:()=>{r(!1)},onMouseDown:d=>{u(d,e.scrollX)}}),Rn.default.createElement("svg",{height:a,style:{width:"100%"}},Rn.default.createElement("polygon",{fill:l,points:c})))}),v_=aV});var T_,M_,R_=m(()=>{"use client";Ie();T_=p(O(),1),M_=Y((0,T_.jsx)("path",{d:"m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"}),"ExpandLess")});var Q_,Vd,oy=m(()=>{"use client";Ie();Q_=p(O(),1),Vd=Y((0,Q_.jsx)("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore")});var Zr,wa,__,cV,k_,D_=m(()=>{Zr=p(Q(),1);R_();oy();wa=p(U(),1),__=p(W(),1),cV=(0,__.observer)(function({model:e}){let[t,r]=(0,Zr.useState)(!0),{actuallyShowDomains:n,visibleDomainTypes:o,fillPalette:i}=e,s=t?M_:Vd;return n&&o.length>0?Zr.default.createElement(wa.Paper,{elevation:3,style:{position:"absolute",top:4,right:4,zIndex:100,maxWidth:260,maxHeight:"60%",display:"flex",flexDirection:"column",opacity:.95}},Zr.default.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",padding:"2px 4px 2px 8px"}},Zr.default.createElement(wa.IconButton,{size:"small",onClick:()=>{r(!t)}},Zr.default.createElement(s,{fontSize:"small"}))),t?Zr.default.createElement("div",{style:{overflow:"auto",padding:"0 8px 6px"}},o.map(({accession:a,name:c})=>Zr.default.createElement("div",{key:a,style:{display:"flex",alignItems:"center",gap:6},title:a},Zr.default.createElement("div",{style:{width:12,height:12,flexShrink:0,background:i[a]}}),Zr.default.createElement(wa.Typography,{variant:"caption",noWrap:!0},c)))):null):null}),k_=cV});function iy(){return jd.default.createElement("div",{style:{position:"absolute",left:"50%",top:"50%"}},jd.default.createElement($d.CircularProgress,null),jd.default.createElement($d.Typography,null,"Loading..."))}var jd,$d,N_=m(()=>{jd=p(Q(),1),$d=p(U(),1)});function Dr(e,t){let r=(0,Wd.useRef)(null);return(0,Wd.useEffect)(()=>{let n=r.current?.getContext("2d");return n?(0,L_.autorun)(()=>{e(n)}):void 0},t),r}var Wd,L_,Pi=m(()=>{Wd=p(Q(),1),L_=p(Ls(),1)});function Yd(e){let t=(0,F_.useTheme)(),r=(0,P_.useMemo)(()=>vc(e,t),[e,t]);return{theme:t,contrastScheme:r}}var P_,F_,sy=m(()=>{P_=p(Q(),1),F_=p(U(),1);Co()});var mr,O_,ay,lV,G_,U_=m(()=>{mr=p(Q(),1),O_=p(W(),1),ay=e=>`${Math.round(e*100)}%`,lV=(0,O_.observer)(function({model:e}){let t=e.mouseOverColumnStats;if(!t)return null;let{col:r,total:n,conservation:o,propertyConservation:i,consensusLetter:s,consensusFraction:a,gapFraction:c,distribution:l}=t,u=l.slice(0,6);return mr.default.createElement("div",null,mr.default.createElement("b",null,"Column ",r+1)," (",n," seqs)",mr.default.createElement("br",null),"Consensus: ",s||"-"," (",ay(a),")",mr.default.createElement("br",null),"Conservation: ",o.toFixed(2),i===void 0?null:mr.default.createElement(mr.default.Fragment,null,mr.default.createElement("br",null),"Property conservation: ",i.toFixed(2)),mr.default.createElement("br",null),"Gaps: ",ay(c),u.length>0?mr.default.createElement(mr.default.Fragment,null,mr.default.createElement("br",null),u.map(([d,A])=>mr.default.createElement("span",{key:d,style:{marginRight:8}},d," ",ay(A/n)))):null)}),G_=lV});function uV({event:e,el:t,offsetX:r,offsetY:n,colWidth:o,rowHeight:i}){let{left:s,top:a}=t.getBoundingClientRect();return{col:Math.floor((e.clientX-s+r)/o),row:Math.floor((e.clientY-a+n)/i)}}function V_({model:e,offsetX:t,offsetY:r}){let[n,o]=(0,H_.useState)();function i(u,d){let{colWidth:A,rowHeight:f}=e;return uV({event:u,el:d,offsetX:t,offsetY:r,colWidth:A,rowHeight:f})}function s({col:u,row:d}){return u>=0&&u<e.numColumns&&d>=0&&d<e.numRows}function a(u,d){let A=i(u,d),f=s(A);e.setMousePos(f?A.col:void 0,f?A.row:void 0);let g=!!e.hoveredInsertion||e.mouseOverDomains.length>0||e.showColumnStats&&!!e.mouseOverColumnStats;o(g?{x:u.clientX,y:u.clientY}:void 0)}function c(u,d){let A=i(u,d),{col:f,row:g}=A,{mouseClickCol:h,mouseClickRow:y}=e,E=f===h&&g===y,x=s(A)&&!E;e.setMouseClickPos(x?f:void 0,x?g:void 0)}function l(){e.setMousePos(),o(void 0)}return{tooltipPoint:n,onMouseMove:a,onClick:c,onMouseLeave:l}}var H_,j_=m(()=>{H_=p(Q(),1)});var Yt,$_,fV,W_,Y_=m(()=>{Yt=p(Q(),1);U2();$_=p(W(),1);Pi();sy();U_();Up();Zp();j_();fV=(0,$_.observer)(function({model:e,offsetX:t,offsetY:r}){let{scrollY:n,scrollX:o,colorScheme:i,blockSize:s,highResScaleFactor:a}=e,{theme:c,contrastScheme:l}=Yd(i),{tooltipPoint:u,onMouseMove:d,onClick:A,onMouseLeave:f}=V_({model:e,offsetX:t,offsetY:r}),g=Dr(x=>{let{blockSize:S,highResScaleFactor:w,actuallyShowDomains:I}=e;x.resetTransform(),x.clearRect(0,0,S*w,S*w),I&&sf({ctx:x,offsetX:t,offsetY:r,model:e}),ff({ctx:x,theme:c,offsetX:t,offsetY:r,contrastScheme:l,model:e})},[e,t,r,c,l]),{hoveredInsertion:h,mouseOverDomains:y,showColumnStats:E}=e;return Yt.default.createElement(Yt.default.Fragment,null,Yt.default.createElement("canvas",{ref:g,onMouseMove:x=>{g.current&&d(x,g.current)},onClick:x=>{g.current&&A(x,g.current)},onMouseLeave:()=>{f()},width:s*a,height:s*a,style:{position:"absolute",top:n+r,left:o+t,width:s,height:s}}),u?Yt.default.createElement(U0,{clientPoint:{x:u.x,y:u.y+15}},h?Yt.default.createElement(Yt.default.Fragment,null,"Insertion (",h.letters.length,e.sequenceType==="amino"?"aa":"bp","):"," ",h.letters.length>20?`${h.letters.slice(0,20)}...`:h.letters):Yt.default.createElement(Yt.default.Fragment,null,y.map(x=>Yt.default.createElement("div",{key:`${x.accession}-${x.start}-${x.end}`},Yt.default.createElement("b",null,x.name)," (",x.accession,") ",x.start,"-",x.end,x.description?Yt.default.createElement(Yt.default.Fragment,null,Yt.default.createElement("br",null),x.description):null)),E?Yt.default.createElement(G_,{model:e}):null)):null)}),W_=fV});var Qn,q_,dV,z_,J_=m(()=>{Qn=p(Q(),1),q_=p(W(),1);Cf();N_();Y_();dV=(0,q_.observer)(function({model:e}){let{MSA:t,verticalScrollbarWidth:r,msaFilehandle:n,height:o,msaAreaWidth:i,blocks2d:s,scrollZoom:a}=e,c=(0,Qn.useRef)(null),l=(0,Qn.useCallback)(g=>{e.doScrollX(g)},[e]),u=(0,Qn.useCallback)(g=>{e.doScrollY(g)},[e]),d=(0,Qn.useCallback)((g,h,y)=>{e.zoomToPos(g,h,y)},[e]),{onMouseDown:A,onMouseUp:f}=js({ref:c,onScrollX:l,onScrollY:u,onZoom:d,scrollZoom:a});return Qn.default.createElement("div",{ref:c,"data-testid":"msa_canvas",onMouseDown:A,onMouseUp:f,onMouseLeave:g=>{g.preventDefault()},style:{position:"relative",height:o,width:i-r,overflow:"hidden"}},!t&&!n?null:t?s.map(([g,h])=>Qn.default.createElement(W_,{key:`${g}_${h}`,model:e,offsetX:g,offsetY:h})):Qn.default.createElement(iy,null))}),z_=dV});var qd,K_,X_,cy=m(()=>{qd="rgba(0,128,255,0.3)",K_="rgba(255,165,0,0.2)",X_="rgba(255,165,0,0.15)"});function tk({ctx:e,model:t}){let{mouseCol:r,colWidth:n,msaAreaWidth:o,verticalScrollbarWidth:i,height:s,rowHeight:a,scrollX:c,scrollY:l,mouseRow:u,mouseClickRow:d,mouseClickCol:A,highResScaleFactor:f,referenceRowIndex:g,hoveredRowIndices:h,highlightedColumnRuns:y}=t,E=o-i;if(e.resetTransform(),e.clearRect(0,0,E*f,s*f),e.scale(f,f),g!==void 0&&(e.fillStyle=qd,e.fillRect(0,g*a+l,E,a)),h.length>0){e.fillStyle=X_;for(let x of h)e.fillRect(0,x*a+l,E,a)}if(y.length>0){e.lineWidth=2;for(let{start:x,end:S}of y){let w=x*n+c,I=(S-x+1)*n;e.fillStyle=AV,e.fillRect(w,0,I,s),e.strokeStyle=mV,e.strokeRect(w,0,I,s)}}r!==void 0&&(e.fillStyle=Z_,e.fillRect(r*n+c,0,n,s)),u!==void 0&&(e.fillStyle=Z_,e.fillRect(0,u*a+l,E,a)),A!==void 0&&(e.fillStyle=ek,e.fillRect(A*n+c,0,n,s)),d!==void 0&&(e.fillStyle=ek,e.fillRect(0,d*a+l,E,a))}var Z_,ek,AV,mV,rk=m(()=>{cy();Z_="rgba(0,0,0,0.15)",ek="rgba(128,128,0,0.2)",AV="rgba(255,140,0,0.28)",mV="rgba(210,90,0,0.95)"});var nk,ok,ik,pV,sk,ak=m(()=>{nk=p(Q(),1),ok=p(Kt(),1),ik=p(W(),1);Pi();rk();pV=(0,ik.observer)(function({model:e}){let{height:t,msaAreaWidth:r,verticalScrollbarWidth:n,highResScaleFactor:o}=e,i=r-n,s=Dr(a=>{(0,ok.isAlive)(e)&&tk({ctx:a,model:e})},[e]);return nk.default.createElement("canvas",{ref:s,id:"mouseover",width:i*o,height:t*o,style:{position:"absolute",top:0,left:0,width:i,height:t,zIndex:1e3,pointerEvents:"none"}})}),sk=pV});var bl,ck,gV,lk,uk=m(()=>{bl=p(Q(),1),ck=p(W(),1);D_();J_();ak();gV=(0,ck.observer)(function({model:e}){return bl.default.createElement("div",{style:{position:"relative"}},bl.default.createElement(z_,{model:e}),bl.default.createElement(sk,{model:e}),bl.default.createElement(k_,{model:e}))}),lk=gV});var El,Ia,fk,hV,dk,Ak=m(()=>{El=p(Q(),1),Ia=p(U(),1),fk=p(W(),1),hV=(0,fk.observer)(function({node:e,model:t,onClose:r}){return El.default.createElement(Ia.Menu,{anchorReference:"anchorPosition",anchorPosition:{left:e.x,top:e.y},transitionDuration:0,keepMounted:!0,open:!!e,onClose:r},El.default.createElement(Ia.MenuItem,{dense:!0,disabled:!0},e.name),El.default.createElement(Ia.MenuItem,{dense:!0,onClick:()=>{t.toggleCollapsed(e.id),r()}},t.collapsed.includes(e.id)?"Expand this node":"Collapse this node"),El.default.createElement(Ia.MenuItem,{dense:!0,onClick:()=>{t.showOnly===e.id?t.setShowOnly(void 0):t.setShowOnly(e.id),r()}},t.showOnly===e.id?"Disable show only this node":"Show only this node"))}),dk=hV});var hk={};Bt(hk,{default:()=>xV});var _n,mk,pk,gk,yV,xV,yk=m(()=>{_n=p(Q(),1);_d();z0();mk=p(Ze(),1),pk=p(U(),1),gk=p(W(),1);K0();yV=(0,gk.observer)(function({info:e,model:t,nodeName:r,onClose:n}){let{treeMetadata:o,rows:i}=t,s=o[r],a=i.find(c=>c[0]===r);return _n.default.createElement(mk.Dialog,{onClose:()=>{n()},open:!0,title:"Tree node info",maxWidth:"xl"},_n.default.createElement(pk.DialogContent,null,_n.default.createElement(Ni,{title:"Attributes"},_n.default.createElement(Mn,{attributes:{nodeName:r,...e}})),_n.default.createElement(Ni,{title:"Sequence"},a?_n.default.createElement(xl,{str:[a]}):_n.default.createElement("div",null,"Sequence not found")),s?_n.default.createElement(Ni,{title:"Extra metadata"},_n.default.createElement(Mn,{attributes:s})):null))}),xV=yV});var oo,Uo,xk,CV,bV,Ck,bk=m(()=>{oo=p(Q(),1),Uo=p(U(),1),xk=p(W(),1),CV=(0,oo.lazy)(()=>Promise.resolve().then(()=>(yk(),hk))),bV=(0,xk.observer)(function({node:e,onClose:t,model:r}){let{collapsed:n}=r,{name:o,id:i}=e,s=n.includes(i);return oo.default.createElement(Uo.Menu,{anchorReference:"anchorPosition",anchorPosition:{top:e.y,left:e.x},transitionDuration:0,keepMounted:!0,open:!!e,onClose:t},oo.default.createElement(Uo.MenuItem,{dense:!0,disabled:!0},o),oo.default.createElement(Uo.MenuItem,{dense:!0,onClick:()=>{r.queueDialog(a=>[CV,{info:r.getRowData(o),model:r,nodeName:o,onClose:a}]),t()}},"More info..."),oo.default.createElement(Uo.MenuItem,{dense:!0,onClick:()=>{r.toggleCollapsed(i),t()}},s?"Expand subtree":"Collapse subtree"),oo.default.createElement(Uo.MenuItem,{dense:!0,onClick:()=>{r.drawRelativeTo(e.name),t()}},"Indicate differences from this row"),r.relativeTo?oo.default.createElement(Uo.MenuItem,{dense:!0,onClick:()=>{r.drawRelativeTo(void 0),t()}},"Clear reference row"):null)}),Ck=bV});var wl,Ek=m(()=>{wl=class{constructor(t=1/0,r=Float64Array,n=Uint32Array){let o=t!==1/0;this.ids=o?new n(t):[],this.values=o?new r(t):[],this.capacity=t,this.length=0}clear(){this.length=0}push(t,r){if(this.length===this.capacity)throw new RangeError("Queue is at capacity.");let n=this.length++;for(;n>0;){let o=n-1>>1,i=this.values[o];if(r>=i)break;this.ids[n]=this.ids[o],this.values[n]=i,n=o}this.ids[n]=t,this.values[n]=r}pop(){if(this.length===0)return;let t=this.ids,r=this.values,n=t[0],o=--this.length;if(o>0){let i=t[o],s=r[o],a=0,c=o>>1;for(;a<c;){let l=(a<<1)+1,u=l+1,d=l+(+(u<o)&+(r[u]<r[l]));if(r[d]>=s)break;t[a]=t[d],r[a]=r[d],a=d}t[a]=i,r[a]=s}return n}peek(){return this.length>0?this.ids[0]:void 0}peekValue(){return this.length>0?this.values[0]:void 0}shrink(){Array.isArray(this.ids)&&(this.ids.length=this.length),Array.isArray(this.values)&&(this.values.length=this.length)}}});function EV(e,t){let r=0,n=t.length-1;for(;r<n;){let o=r+n>>1;t[o]>e?n=o:r=o+1}return t[r]}function wV(e,t,r,n,o,i){let s=[n,o];for(;s.length;){let a=s.pop()||0,c=s.pop()||0;if(a-c<=i&&Math.floor(c/i)>=Math.floor(a/i))continue;let l=e[c],u=e[c+a>>1],d=e[a],A=l>u!=l>d?l:u<l!=u<d?u:d,f=c-1,g=a+1;for(;;){do f++;while(e[f]<A);do g--;while(e[g]>A);if(f>=g)break;IV(e,t,r,f,g)}s.push(c,g,g+1,a)}}function IV(e,t,r,n,o){let i=e[n];e[n]=e[o],e[o]=i;let s=4*n,a=4*o,c=t[s],l=t[s+1],u=t[s+2],d=t[s+3];t[s]=t[a],t[s+1]=t[a+1],t[s+2]=t[a+2],t[s+3]=t[a+3],t[a]=c,t[a+1]=l,t[a+2]=u,t[a+3]=d;let A=r[n];r[n]=r[o],r[o]=A}function SV(e,t){let r=e^t,n=65535^r,o=65535^(e|t),i=e&(t^65535),s=r|n>>1,a=r>>1^r,c=o^(o>>1^n&i>>1),l=i^(r&o>>1^i>>1);return r=s&s>>2^a&a>>2,n=s&a>>2^a&(s^a)>>2,o=c^(s&c>>2^a&l>>2),i=l^(a&c>>2^(s^a)&l>>2),s=r&r>>4^n&n>>4,a=r&n>>4^n&(r^n)>>4,c=o^(r&o>>4^n&i>>4),l=i^(n&o>>4^(r^n)&i>>4),o=c^(s&c>>8^a&l>>8),i=l^(a&c>>8^(s^a)&l>>8),o^=o>>1,i^=i>>1,r=e^t,n=i|65535^(r|o),r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,((n<<1|r)>>>0)-2147483648}var wk,ly,Il,Ik=m(()=>{Ek();wk=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],ly=3,Il=class e{static from(t,r=0){if(r%8!==0)throw new Error("byteOffset must be 8-byte aligned.");if(!t||t.byteLength===void 0||"buffer"in t)throw new Error("Data must be an instance of ArrayBuffer or SharedArrayBuffer.");let[n,o]=new Uint8Array(t,r+0,2);if(n!==251)throw new Error("Data does not appear to be in a Flatbush format.");let i=o>>4;if(i!==ly)throw new Error(`Got v${i} data when expected v${ly}.`);let s=wk[o&15];if(!s)throw new Error("Unrecognized array type.");let[a]=new Uint16Array(t,r+2,1),[c]=new Uint32Array(t,r+4,1);return new e(c,a,s,void 0,t,r)}constructor(t,r=16,n=Float64Array,o=ArrayBuffer,i,s=0){if(t===void 0)throw new Error("Missing required argument: numItems.");if(isNaN(t)||t<=0)throw new Error(`Unexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+r,2),65535),this.byteOffset=s;let a=t,c=a;this._levelBounds=[a*4];do a=Math.ceil(a/this.nodeSize),c+=a,this._levelBounds.push(c*4);while(a!==1);this.ArrayType=n,this.IndexArrayType=c<16384?Uint16Array:Uint32Array;let l=wk.indexOf(n),u=c*4*n.BYTES_PER_ELEMENT;if(l<0)throw new Error(`Unexpected typed array class: ${n}.`);let d=n,A=this.IndexArrayType;if(i)this.data=i,this._boxes=new d(i,s+8,c*4),this._indices=new A(i,s+8+u,c),this._pos=c*4,this.minX=this._boxes[this._pos-4],this.minY=this._boxes[this._pos-3],this.maxX=this._boxes[this._pos-2],this.maxY=this._boxes[this._pos-1];else{let f=this.data=new o(8+u+c*this.IndexArrayType.BYTES_PER_ELEMENT);this._boxes=new d(f,8,c*4),this._indices=new A(f,8+u,c),this._pos=0,this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,new Uint8Array(f,0,2).set([251,(ly<<4)+l]),new Uint16Array(f,2,1)[0]=r,new Uint32Array(f,4,1)[0]=t}this._queue=new wl}add(t,r,n=t,o=r){let i=this._pos,s=i>>2,a=this._boxes;return this._indices[s]=s,a[i]=t,a[i+1]=r,a[i+2]=n,a[i+3]=o,this._pos=i+4,t<this.minX&&(this.minX=t),r<this.minY&&(this.minY=r),n>this.maxX&&(this.maxX=n),o>this.maxY&&(this.maxY=o),s}finish(){if(this._pos>>2!==this.numItems)throw new Error(`Added ${this._pos>>2} items when expected ${this.numItems}.`);let t=this._boxes;if(this.numItems<=this.nodeSize){t[this._pos++]=this.minX,t[this._pos++]=this.minY,t[this._pos++]=this.maxX,t[this._pos++]=this.maxY;return}let{numItems:r,minX:n,minY:o,nodeSize:i,_indices:s,_levelBounds:a}=this,c=this.maxX-n||1,l=this.maxY-o||1,u=new Int32Array(r),d=65535,A=d/c,f=d/l;for(let h=0,y=0;h<r;h++){let E=t[y++],x=t[y++],S=t[y++],w=t[y++],I=A*((E+S)/2-n)|0,v=f*((x+w)/2-o)|0;u[h]=SV(I,v)}wV(u,t,s,0,r-1,i);let g=r*4;for(let h=0,y=0;h<a.length-1;h++){let E=a[h];for(;y<E;){let x=y,S=t[y++],w=t[y++],I=t[y++],v=t[y++];for(let B=1;B<i&&y<E;B++)S=Math.min(S,t[y++]),w=Math.min(w,t[y++]),I=Math.max(I,t[y++]),v=Math.max(v,t[y++]);s[g>>2]=x,t[g++]=S,t[g++]=w,t[g++]=I,t[g++]=v}}this._pos=g}search(t,r,n,o,i){if(this._pos!==this._boxes.length)throw new Error("Data not yet indexed - call index.finish().");let{_boxes:s,_levelBounds:a,_indices:c,nodeSize:l}=this,u=this.numItems*4,d=s.length-4,A=a.length-1,f=[],g=[],h=!1;for(;d!==void 0;){let y=Math.min(d+l*4,a[A]),E=d>=u;if(h)this._collectContained(d,y,A,u,g,i);else for(let x=d;x<y;x+=4){let S=s[x];if(n<S)continue;let w=s[x+1];if(o<w)continue;let I=s[x+2];if(t>I)continue;let v=s[x+3];if(r>v)continue;let B=c[x>>2]|0;if(E){let R=+(t<=S&&r<=w&&n>=I&&o>=v);f.push(B|R,A-1)}else(i===void 0||i(B,S,w,I,v))&&g.push(B)}A=f.pop(),d=f.pop(),d!==void 0&&(h=(d&1)===1,d&=-2)}return g}_collectContained(t,r,n,o,i,s){let a=this._boxes,c=this._indices,l=t;for(let d=n;d>0;d--)l=c[l>>2];let u=Math.min(l+(r-t)*this.nodeSize**n,o);if(s===void 0)for(;l<u;l+=4)i.push(c[l>>2]|0);else for(;l<u;l+=4){let d=c[l>>2]|0;s(d,a[l],a[l+1],a[l+2],a[l+3])&&i.push(d)}}neighbors(t,r,n=1/0,o=1/0,i){if(this._pos!==this._boxes.length)throw new Error("Data not yet indexed - call index.finish().");let{_boxes:s,_levelBounds:a,_indices:c,_queue:l,nodeSize:u}=this,d=this.numItems*4,A=u*4,f=[],g=o*o,h=n===1,y=g;for(l.push(s.length-4<<1,0);l.length;){let E=l.ids[0];if(E&1){if(l.pop(),f.push(E>>1),f.length===n)break;continue}l.pop();let x=E>>1,S=x<d,w=Math.min(x+A,EV(x,a));for(let I=x;I<w;I+=4){let v=s[I],B=s[I+1],R=s[I+2],D=s[I+3],L=Math.max(Math.max(v-t,t-R),0),F=Math.max(Math.max(B-r,r-D),0),C=L*L+F*F;if(C>y)continue;let M=c[I>>2]|0;S?(i===void 0||i(M))&&(l.push(M<<1|1,C),h&&C<y&&(y=C)):l.push(M<<1,C)}}return l.clear(),f}}});var zd,Sk=m(()=>{Ik();zd=class{flatbush=null;entries=[];clear(){this.flatbush=null,this.entries=[]}insert(t){this.entries.push(t)}finish(){if(this.entries.length===0)this.flatbush=null;else{this.flatbush=new Il(this.entries.length);for(let t of this.entries)this.flatbush.add(t.minX,t.minY,t.maxX,t.maxY);this.flatbush.finish()}}search(t){return this.flatbush?.search(t.minX,t.minY,t.maxX,t.maxY).map(r=>this.entries[r])??[]}}});function vk({model:e,offsetY:t}){let r=(0,Jd.useRef)(null);r.current??=new zd;let n=r.current,[o,i]=(0,Jd.useState)();function s(l){let u=l.nativeEvent.offsetX,d=l.nativeEvent.offsetY+t,A=n.search({minX:u,maxX:u+1,minY:d,maxY:d+1});return A.find(f=>!f.branch)??A[0]}function a(l){let u=s(l);i(u?{...u,clientX:l.clientX,clientY:l.clientY}:void 0),e.setHoveredTreeNode(u?.id),e.setMousePos(void 0,u&&!u.branch?e.rowNamesSet.get(u.name):void 0)}function c(){i(void 0),e.setHoveredTreeNode(void 0),e.setMousePos(void 0,void 0)}return{clickMap:n,hovered:o,hitTest:s,onMouseMove:a,onMouseLeave:c}}var Jd,Bk=m(()=>{Jd=p(Q(),1);Sk()});var en,Tk,Mk,vV,BV,Rk,Qk=m(()=>{en=p(Q(),1);Ve();Tk=p(U(),1),Mk=p(W(),1);Pi();Ak();bk();gf();Bk();vV=Z()(e=>({tooltip:{position:"fixed",pointerEvents:"none",zIndex:1e4,backgroundColor:e.palette.grey[700],color:e.palette.common.white,padding:"4px 8px",borderRadius:4,fontSize:12,whiteSpace:"nowrap",maxWidth:300,overflow:"hidden",textOverflow:"ellipsis"},hover:{position:"absolute",pointerEvents:"none",zIndex:100,background:"rgba(0,0,0,0.1)"}})),BV=(0,Mk.observer)(function({model:e,offsetY:t}){let{classes:r}=vV(),n=(0,Tk.useTheme)(),[o,i]=(0,en.useState)(),[s,a]=(0,en.useState)(),{clickMap:c,hovered:l,hitTest:u,onMouseMove:d,onMouseLeave:A}=vk({model:e,offsetY:t}),{scrollY:f,treeAreaWidth:g,blockSize:h,highResScaleFactor:y}=e,E=g+mf,x=h,S=Dr(I=>{I.resetTransform(),I.clearRect(0,0,E*y,x*y),pf({ctx:I,model:e,offsetY:t,clickMap:c,theme:n})},[e,c,t,n]),w={width:E,height:x,top:f+t,left:0,position:"absolute"};return en.default.createElement(en.default.Fragment,null,o?en.default.createElement(dk,{node:o,model:e,onClose:()=>{i(void 0)}}):null,s?en.default.createElement(Ck,{node:s,model:e,onClose:()=>{a(void 0)}}):null,en.default.createElement("canvas",{ref:S,width:E*y,height:x*y,style:{...w,cursor:l?"pointer":"default"},onMouseMove:I=>{d(I)},onMouseLeave:()=>{A()},onClick:I=>{let v=u(I);if(v){let B={x:I.clientX,y:I.clientY,id:v.id,name:v.name};v.branch?i(B):a(B)}}}),l&&!l.branch?en.default.createElement("div",{className:r.hover,style:{left:l.minX,top:l.minY+f,width:l.maxX-l.minX,height:l.maxY-l.minY}}):null,l?en.default.createElement("div",{className:r.tooltip,style:{left:l.clientX+12,top:l.clientY+12}},l.name):null)}),Rk=BV});var Ho,_k,kk,TV,Dk,Nk=m(()=>{Ho=p(Q(),1),_k=p(Kt(),1),kk=p(W(),1);Pi();Cf();cy();Qk();gf();TV=(0,kk.observer)(function({model:e}){let t=(0,Ho.useRef)(null),{treeWidth:r,height:n,blocksY:o,treeAreaWidth:i}=e,s=(0,Ho.useCallback)(u=>{e.doScrollY(u)},[e]),{onMouseDown:a,onMouseUp:c}=js({ref:t,onScrollY:s}),l=Dr(u=>{if((0,_k.isAlive)(e)){let{rowHeight:d,treeAreaWidth:A,height:f,scrollY:g,mouseRow:h,referenceRowIndex:y,hoveredRowIndices:E}=e;u.resetTransform(),u.clearRect(0,0,A,f);let x=S=>{u.fillRect(0,S*d+g,A,d)};y!==void 0&&(u.fillStyle=qd,x(y)),u.fillStyle=K_;for(let S of E)x(S);h!==void 0&&h!==y&&!E.includes(h)&&x(h)}},[e]);return Ho.default.createElement("div",{ref:t,onMouseDown:a,onMouseUp:c,onMouseLeave:u=>{u.preventDefault()},style:{height:n,position:"relative",width:r+mf}},o.map(u=>Ho.default.createElement(Rk,{key:u,model:e,offsetY:u})),Ho.default.createElement("canvas",{ref:l,width:i,height:n,style:{position:"absolute",top:0,left:0,width:i,height:n,zIndex:1e3,pointerEvents:"none"}}))}),Dk=TV});var uy,Lk,MV,Pk,Fk=m(()=>{uy=p(Q(),1),Lk=p(W(),1);Nk();MV=(0,Lk.observer)(function({model:e}){let{treeAreaWidth:t}=e;return uy.default.createElement("div",{style:{overflow:"hidden",flexShrink:0,width:t}},uy.default.createElement(Dk,{model:e}))}),Pk=MV});var Ok,Gk,RV,Uk,Hk=m(()=>{Ok=p(Q(),1),Gk=p(W(),1),RV=(0,Gk.observer)(({model:e})=>{let{treeAreaWidth:t}=e;return Ok.default.createElement("div",{style:{flexShrink:0,width:t}})}),Uk=RV});var ue,Fi,QV,_V,kV,DV,NV,LV,Vk,jk=m(()=>{ue=p(Q(),1),Fi=p(W(),1);pg();bS();SS();I_();B_();uk();Fk();Hk();QV=(0,Fi.observer)(function({model:e}){let{showHorizontalScrollbar:t}=e;return ue.default.createElement("div",{style:{display:"flex"}},ue.default.createElement(Uk,{model:e}),t?ue.default.createElement(v_,{model:e}):null)}),_V=(0,Fi.observer)(function({model:e}){let{mouseCol:t,mouseClickCol:r,colWidth:n,scrollX:o,treeAreaWidth:i,resizeHandleWidth:s,totalTrackAreaHeight:a,msaAreaWidth:c,verticalScrollbarWidth:l}=e,u=i+s,d=c-l;return ue.default.createElement("div",{style:{position:"absolute",left:u,top:0,width:d,height:a,overflow:"hidden",pointerEvents:"none"}},t!==void 0?ue.default.createElement("div",{style:{position:"absolute",left:t*n+o,top:0,width:n,height:a,backgroundColor:"rgba(0,0,0,0.15)",zIndex:100}}):null,r!==void 0?ue.default.createElement("div",{style:{position:"absolute",left:r*n+o,top:0,width:n,height:a,backgroundColor:"rgba(128,128,0,0.2)",zIndex:100}}):null)}),kV=(0,Fi.observer)(function({model:e}){let{turnedOnTracks:t}=e;return t.length===0?null:ue.default.createElement("div",{style:{position:"relative"}},ue.default.createElement(_V,{model:e}),t.map(r=>ue.default.createElement(CS,{key:r.model.id,model:e,track:r})))}),DV=(0,Fi.observer)(function({model:e}){let{showVerticalScrollbar:t}=e;return ue.default.createElement("div",{style:{display:"flex"}},ue.default.createElement(Pk,{model:e}),ue.default.createElement(jI,{model:e}),ue.default.createElement(lk,{model:e}),t?ue.default.createElement(IS,{model:e}):null)}),NV=(0,Fi.observer)(function({model:e}){return ue.default.createElement("div",{style:{position:"relative"}},ue.default.createElement(QV,{model:e}),ue.default.createElement(kV,{model:e}),ue.default.createElement(DV,{model:e}))}),LV=(0,Fi.observer)(function({model:e}){let{height:t,viewInitialized:r,DialogComponent:n,DialogProps:o}=e;return ue.default.createElement("div",null,r?ue.default.createElement(ue.default.Fragment,null,ue.default.createElement("div",{style:{height:t,overflow:"hidden"}},ue.default.createElement(w_,{model:e}),ue.default.createElement(NV,{model:e})),ue.default.createElement($I,{model:e}),n?ue.default.createElement(ue.Suspense,{fallback:null},ue.default.createElement(n,{...o})):null):null)}),Vk=LV});var $k,Wk,Yk,qk=m(()=>{$k=`CLUSTAL O(1.2.3) multiple sequence alignment
50
50
  UniProt/Swiss-Prot|P26898|IL2RA_SHEEP MEPSLLMWRFFVFIVVPGCVTEACHDDPPSLRNA----------MFKVLRYE----VGTM
51
51
  UniProt/Swiss-Prot|P01590|IL2RA_MOUSE MEPRLLMLGFLSLTIVPSCRAELCLYDPPEVPNA----------TFKALSYK----NGTI
52
52
  UniProt/Swiss-Prot|P41690|IL2RA_FELCA MEPSLLLWGILTFVVVHGHVTELCDENPPDIQHA----------TFKALTYK----TGTM
@@ -86,7 +86,7 @@ ${f.sequence}`)].join(`
86
86
  `)){let[o,i,s]=n.split(" ");if(o&&vN(o)===r)return{offset:Number(i),length:Number(s)}}}var MN=p(we());function RN({model:e}){let{hovered:t}=(0,MN.getSession)(e),{querySeqName:r,transcriptToMsaMap:n,connectedView:o,mafRegion:i}=e;if(!o?.initialized||!ui(t))return;let{coord:s,refName:a}=t.hoverPosition,c=s-1;if(i)return a!==i.refName||!o.assemblyNames.includes(i.assemblyName)||c<i.start||c>=i.end?void 0:e.seqPosToVisibleCol(r,c-i.start);if(a===n?.refName){let l=n.g2p[c];if(l!==void 0)return e.seqPosToVisibleCol(r,l)}}var Vj="jbrowse-msaview-domain-cache",gA="domains",jj=1,QN=$o(Vj,jj,e=>{e.objectStoreNames.contains(gA)||e.createObjectStore(gA,{keyPath:"accession"})});async function _N(e){let r=(await QN()).transaction(gA,"readonly"),n=await Promise.all(e.map(o=>r.store.get(o)));return await r.done,n}async function kN(e){let r=(await QN()).transaction(gA,"readwrite");for(let n of e)await r.store.put(n);await r.done}function Wo(e,t){return new RegExp(`<${t}>(.*?)</${t}>`,"s").exec(e)?.[1]}function $j(e){let t={},r=/<GBQualifier>([\s\S]*?)<\/GBQualifier>/g,n;for(;(n=r.exec(e))!==null;){let o=Wo(n[1],"GBQualifier_name"),i=Wo(n[1],"GBQualifier_value");o&&i!==void 0&&t[o]===void 0&&(t[o]=i)}return t}function Wj(e){let t=[],r=[],n=/<GBInterval>([\s\S]*?)<\/GBInterval>/g,o;for(;(o=n.exec(e))!==null;){let i=o[1],s=Wo(i,"GBInterval_from"),a=Wo(i,"GBInterval_to"),c=Wo(i,"GBInterval_point");s&&a?(t.push(Number(s)),r.push(Number(a))):c&&(t.push(Number(c)),r.push(Number(c)))}return t.length>0?{start:Math.min(...t),end:Math.max(...r)}:void 0}var Yj=2;function qj(e){let t=Wo(e,"GBFeature_key"),r=$j(e),n=r.db_xref,o=Wj(e);if((t==="Region"||t==="Site")&&n?.startsWith("CDD:")&&o&&o.end-o.start+1>=Yj){let i=n.replace("CDD:",""),s=t==="Region",a=r.note?.split(/[[(]/)[0]?.trim(),c=s?r.region_name??i:a||r.site_type||"site",l=s?i:`${i}:${c}`;return{signature:{entry:{name:c,description:r.note??c,accession:l}},locations:[o]}}}function zj(e){let t=new Map,r=/<GBSeq>([\s\S]*?)<\/GBSeq>/g,n;for(;(n=r.exec(e))!==null;){let o=n[1],i=[],s=/<GBFeature>([\s\S]*?)<\/GBFeature>/g,a;for(;(a=s.exec(o))!==null;){let c=qj(a[1]);c&&i.push(c)}for(let c of[Wo(o,"GBSeq_accession-version"),Wo(o,"GBSeq_primary-accession")])c&&t.set(c,i)}return t}async function DN(e){let t=[...new Set(e)].filter(Boolean),r=new Map,n=await _N(t),o=[];t.forEach((a,c)=>{let l=n[c];l?r.set(a,l.matches):o.push(a)});let i=[],s=100;for(let a=0;a<o.length;a+=s){let c=o.slice(a,a+s),l=await zt(pA({db:"protein",id:c.join(","),rettype:"gp",retmode:"xml"})),u=zj(l);for(let d of c){let A=u.get(d);A!==void 0&&(r.set(d,A),i.push({accession:d,matches:A}))}}return i.length>0&&await kN(i),r}async function NN(e){let t=e.data.treeMetadata;if(!t)throw new Error("No sequence metadata available to look up domains");let r=JSON.parse(t),n=Object.entries(r).map(([s,a])=>({rowName:s,accession:a.Accession})).filter(s=>!!s.accession);if(n.length===0)throw new Error("No NCBI accessions found in alignment rows");e.setProgress(`Fetching protein domains from NCBI for ${n.length} sequences...`);let o=await DN(n.map(s=>s.accession)),i={};for(let{rowName:s,accession:a}of n){let c=o.get(a);c&&c.length>0&&(i[s]={matches:c,xref:[{id:s}]})}if(Object.keys(i).length===0)throw new Error("No CDD domain annotations found for these proteins");e.setDomains(i)}var Jj="jbrowse-msaview-data",Kj=1,Ql="msa-data",Ny=$o(Jj,Kj,e=>{e.objectStoreNames.contains(Ql)||e.createObjectStore(Ql,{keyPath:"id"}).createIndex("timestamp","timestamp",{unique:!1})});function LN(){return`msa-${Date.now()}-${Math.random().toString(36).slice(2,11)}`}async function PN(e,t){try{let r=await Ny(),n={id:e,msa:t.msa,tree:t.tree,treeMetadata:t.treeMetadata,timestamp:Date.now()};return await r.put(Ql,n),!0}catch(r){return console.warn("Failed to store MSA data:",r),!1}}async function FN(e){try{let r=await(await Ny()).get(Ql,e);return r?{msa:r.msa,tree:r.tree,treeMetadata:r.treeMetadata}:void 0}catch(t){console.warn("Failed to retrieve MSA data:",t);return}}async function ON(e=10080*60*1e3){try{let t=await Ny(),r=Date.now()-e,i=await t.transaction(Ql,"readwrite").store.index("timestamp").openCursor(IDBKeyRange.upperBound(r)),s=0;for(;i;)await i.delete(),s++,i=await i.continue();return s}catch(t){return console.warn("Failed to cleanup old MSA data:",t),0}}function Xj(e){let t=e;return t.type==="ProteinView"&&Array.isArray(t.structures)}function GN(e){return e.filter(Xj)}function UN(e,t){if(t<0||t>=e.length)return;let r=0;for(let n=0;n<t;n++)e[n]!=="-"&&r++;if(e[t]!=="-")return r}function VN(e){let{dataStoreId:t,rows:r}=e;t&&r.length===0&&(async()=>{try{e.setLoadingStoredData(!0);let n=await FN(t);n&&(n.msa&&e.setMSA(n.msa),n.tree&&e.setTree(n.tree),n.treeMetadata&&e.setTreeMetadata(n.treeMetadata))}catch(n){console.error("Failed to load MSA data from IndexedDB:",n)}finally{e.setLoadingStoredData(!1)}})()}function jN(e){let{rows:t,dataStoreId:r,isStoringData:n}=e;if(t.length>0&&!r&&!n){if(e.msaFilehandle||e.treeFilehandle)return;let o=e.data.msa,i=e.data.tree;(o||i)&&(e.setIsStoringData(!0),(async()=>{try{let s=LN();await PN(s,{msa:o,tree:i,treeMetadata:e.data.treeMetadata})&&e.setDataStoreId(s)}catch(s){console.error("Failed to store MSA data to IndexedDB:",s)}finally{e.setIsStoringData(!1)}})())}}function $N(e){e.orthologParams&&(async()=>{try{e.setProgress("Resolving orthologs"),e.setError(void 0);let t=await SN({self:e});e.setData(t),e.setOrthologParams(void 0)}catch(t){e.setError(t),console.error(t)}finally{e.setProgress("")}})()}function WN(e){e.blastParams&&(async()=>{try{e.setProgress("Submitting query"),e.setError(void 0);let t=await hN({self:e});e.setData(t),e.setBlastParams(void 0)}catch(t){e.setError(t),console.error(t)}finally{e.setProgress("")}})()}function YN(e){let{rows:t,domainsRequested:r,interProAnnotations:n}=e,o=e.data.treeMetadata?.includes('"Accession"')??!1;t.length>0&&o&&!n&&!r&&(e.setDomainsRequested(!0),(async()=>{try{await NN(e)}catch(i){console.error("[msaview-domains] auto-load failed:",i)}finally{e.setProgress("")}})())}function qN(e){let{init:t}=e;if(t){let{msaUrl:r,msaIndexedLocation:n,msaName:o,querySeqName:i}=t;(async()=>{try{if(e.setError(void 0),r){let s=Pw(r);s&&(e.setUniprotId(s),e.setQuerySeqName("query"))}if(i&&e.setQuerySeqName(i),r)e.setMSAFilehandle({uri:r,locationType:"UriLocation"});else if(n&&o){let s=await TN({location:n,name:o});if(s)e.setMSA(s);else throw new Error(`No alignment named ${o} in ${n.uri}`)}e.setInit(void 0)}catch(s){e.setError(s),console.error(s)}})()}}function zN(e){let t=!1;return()=>{let r=RN({model:e});r!==void 0?(e.setMousePos(r),t=!0):t&&(e.setMousePos(void 0),t=!1)}}function JN(e){let t=!1;return()=>{let{connectedViewId:r,transcriptToMsaMap:n,querySeqName:o}=e;if(!r||!n)return;let i=new Set;for(let a of GN((0,HN.getSession)(e).views))for(let c of a.structures){if(c.connectedViewId!==r)continue;let l=c.hoverGenomeHighlights;if(!l||l.length===0)continue;let{g2p:u}=n;for(let d of l)for(let A=d.start;A<d.end;A++){let f=u[A];if(f!==void 0){let g=e.seqPosToGlobalCol(o,f);i.add(g)}}}let s=Array.from(i).map(a=>e.globalColToVisibleCol(a)).filter(a=>a!==void 0);s.length>0?(e.setHighlightedColumns(s),t=!0):t&&(e.setHighlightedColumns(e.highlightColumns?.length?e.highlightColumns:void 0),t=!1)}}function KN(){ON().catch(e=>{console.error("Failed to cleanup old MSA data:",e)})}function hA({model:e,coord:t}){let{querySeqName:r,transcriptToMsaMap:n,mafRegion:o,rows:i}=e,s=i.find(c=>c[0]===r)?.[1];if(!s)return[];let a=UN(s,t);if(a===void 0)return[];if(o){let c=o.start+a;return c<o.end?[{refName:o.refName,start:c,end:c+1}]:[]}if(n){let{refName:c,p2gCodon:l}=n;return Uw(l,a)?.map(([u,d])=>({refName:c,start:u,end:d}))??[]}return[]}function XN(e){let t=hA(e),r=t[0],n=t.at(-1);return r&&n?{refName:r.refName,start:r.start,end:n.end}:void 0}function Ly(){return gt.types.compose(ZN.BaseViewModel,sA(),gt.types.model("MsaView",{connectedViewId:gt.types.maybe(gt.types.string),connectedFeature:gt.types.frozen(),blastParams:gt.types.frozen(),orthologParams:gt.types.frozen(),querySeqName:"QUERY",uniprotId:gt.types.maybe(gt.types.string),zoomToBaseLevel:!1,init:gt.types.frozen(),dataStoreId:gt.types.maybe(gt.types.string),mafRegion:gt.types.frozen()})).volatile(()=>({rid:void 0,progress:"",error:void 0,loadingStoredData:!1,isStoringData:!1,domainsRequested:!1})).views(e=>({getRowByName(t){return e.rows.find(r=>r[0]===t)},getSequenceByRowName(t){return e.rows.find(r=>r[0]===t)?.[1]}})).views(e=>({get transcriptToMsaMap(){return e.connectedFeature?Gw(e.connectedFeature):void 0},get connectedView(){let{views:t}=(0,eL.getSession)(e);return t.find(r=>r.id===e.connectedViewId)}})).views(e=>({get connectedHoverHighlights(){let{mouseCol:t}=e;return t===void 0?[]:hA({model:e,coord:t})},get connectedClickHighlights(){let{mouseClickCol:t}=e;return t===void 0?[]:hA({model:e,coord:t})},get connectedHighlights(){return[...this.connectedHoverHighlights,...this.connectedClickHighlights]}})).actions(e=>({setZoomToBaseLevel(t){e.zoomToBaseLevel=t},setError(t){e.error=t},setProgress(t){e.progress=t},setRid(t){e.rid=t},setBlastParams(t){e.blastParams=t},setOrthologParams(t){e.orthologParams=t},setInit(t){e.init=t},setQuerySeqName(t){e.querySeqName=t},setUniprotId(t){e.uniprotId=t},setDataStoreId(t){e.dataStoreId=t},setMafRegion(t){e.mafRegion=t},setLoadingStoredData(t){e.loadingStoredData=t},setIsStoringData(t){e.isStoringData=t},setDomainsRequested(t){e.domainsRequested=t},handleMsaClick(t){let{connectedView:r,zoomToBaseLevel:n}=e,o=XN({model:e,coord:t});!o||!r||(n?r.navTo(o):r.centerAt(o.start,o.refName))}})).actions(e=>{let t=e.setMouseClickPos.bind(e);return{setMouseClickPos(r,n){t(r,n),r!==void 0&&e.handleMsaClick(r)}}}).views(e=>({extraViewMenuItems(){return[{label:"Zoom to base level on click?",checked:e.zoomToBaseLevel,type:"checkbox",onClick:()=>{e.setZoomToBaseLevel(!e.zoomToBaseLevel)}}]}})).actions(e=>({afterCreate(){KN();for(let t of[VN,jN,WN,$N,qN,YN])(0,gt.addDisposer)(e,(0,yA.autorun)(()=>{t(e)}));(0,gt.addDisposer)(e,(0,yA.autorun)(zN(e))),(0,gt.addDisposer)(e,(0,yA.autorun)(JN(e)))}}))}function _a(e){return e.type==="MsaView"}var Zj=(0,Fy.observer)(function({model:e}){let{hovered:t,views:r}=(0,tL.getSession)(e);return r.some(o=>_a(o)&&o.connectedViewId===e.id)&&ui(t)?Py.default.createElement(e7,{model:e,hovered:t}):null}),e7=(0,Fy.observer)(function({model:e,hovered:t}){let{classes:r}=Zu(),{offsetPx:n}=e,{coord:o,refName:i}=t.hoverPosition,s=e.bpToPx({refName:i,coord:o-1}),a=e.bpToPx({refName:i,coord:o});if(s&&a){let c=Math.max(Math.abs(a.offsetPx-s.offsetPx),4),l=Math.min(s.offsetPx,a.offsetPx)-n;return Py.default.createElement("div",{className:r.highlight,style:{left:l,width:c}})}return null}),rL=Zj;var _l=p(Q()),nL=p(we()),Oy=p(W());var t7=(0,Oy.observer)(function({model:t}){let{views:r,hovered:n}=(0,nL.getSession)(t),o=r.filter(_a).find(s=>s.connectedViewId===t.id),i=[...o?.connectedClickHighlights??[],...ui(n)?[]:o?.connectedHoverHighlights??[]];return i.length?_l.default.createElement(r7,{model:t,highlights:i}):null}),r7=(0,Oy.observer)(function({model:e,highlights:t}){let{classes:r}=Zu(),{offsetPx:n}=e;return _l.default.createElement(_l.default.Fragment,null,t.map((o,i)=>{let s=e.bpToPx({refName:o.refName,coord:o.start}),a=e.bpToPx({refName:o.refName,coord:o.end});if(s&&a){let c=Math.max(Math.abs(a.offsetPx-s.offsetPx),4),l=Math.min(s.offsetPx,a.offsetPx)-n;return _l.default.createElement("div",{key:`${o.refName}-${o.start}-${o.end}-${i}`,className:r.highlight,style:{left:l,width:c}})}return null}))}),oL=t7;var n7=(0,iL.observer)(function({model:t}){return kl.default.createElement(kl.default.Fragment,null,kl.default.createElement(oL,{model:t}),kl.default.createElement(rL,{model:t}))}),sL=n7;function Gy(e){e.addToExtensionPoint("LinearGenomeView-TracksContainerComponent",(t,{model:r})=>{let{views:n}=(0,cL.getSession)(r);return n.some(i=>_a(i)&&i.connectedViewId===r.id)?[...t,aL.default.createElement(sL,{key:"highlight_protein_viewer_msaview",model:r})]:t})}var gL=p(Pp());var lL=p(ss());function Uy(e){let t=e.getAdapterType("BgzipFastaAdapter");return(0,lL.ConfigurationSchema)("BgzipFastaMsaAdapter",{msaRegex:{type:"string",defaultValue:"_"}},{baseConfiguration:t?.configSchema})}function Hy(e){return e.addAdapterType(()=>new gL.AdapterType({name:"BgzipFastaMsaAdapter",configSchema:Uy(e),adapterMetadata:{hiddenFromGUI:!0},getAdapterClass:()=>Promise.resolve().then(()=>(pL(),mL)).then(t=>t.default)}))}var VA=p(we());Ie();var hL=p(O(),1),yL=Y((0,hL.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z"}),"Add");var wt=p(Q()),nF=p(Ze()),oF=p(we()),qi=p(U());var fe=p(Q()),lx=p(Ze()),Lr=p(U()),nP=p(W()),oP=p(Tt());var xL=p(we());function CL({newViewTitle:e,view:t,feature:r,msaFilehandle:n,treeFilehandle:o,querySeqName:i,data:s}){(0,xL.getSession)(t).addView("MsaView",{type:"MsaView",displayName:e,connectedViewId:t.id,connectedFeature:r.toJSON(),msaFilehandle:n,treeFilehandle:o,querySeqName:i,data:s})}var Vy=p(Q()),bL=p(U());function o7({children:e,...t}){return Vy.default.createElement("div",null,Vy.default.createElement(bL.TextField,{...t},e))}var ct=o7;var jy=p(Q()),EL=p(Ze()),wL=p(U()),IL=p(Tt()),i7=(0,IL.makeStyles)()({dialogContent:{width:"80em"}});function pr({error:e,children:t}){let{classes:r}=i7();return jy.default.createElement(wL.DialogContent,{className:r.dialogContent},e?jy.default.createElement(EL.ErrorMessage,{error:e}):null,t)}var CA=p(Q()),Dl=p(U());function rn({onSubmit:e,onCancel:t,submitDisabled:r,submitLabel:n="Submit",cancelLabel:o="Cancel"}){return CA.default.createElement(Dl.DialogActions,null,CA.default.createElement(Dl.Button,{color:"primary",variant:"contained",disabled:r,onClick:()=>{e()}},n),CA.default.createElement(Dl.Button,{color:"secondary",variant:"contained",onClick:()=>{t()}},o))}var nn=p(Q()),ka=p(U()),BL=p(Tt());var SL=p(Q()),vL=p(Tt());var s7=(0,vL.makeStyles)()({textAreaFont:{fontFamily:"Courier New"}});function $y({value:e}){let{classes:t}=s7();return SL.default.createElement(ct,{variant:"outlined",multiline:!0,minRows:5,maxRows:10,fullWidth:!0,value:e,slotProps:{input:{readOnly:!0,classes:{input:t.textAreaFont}}}})}var a7=(0,BL.makeStyles)()({flex:{display:"flex"},minWidth:{minWidth:300},centered:{alignContent:"center",marginLeft:20}});function gr({feature:e,options:t,selectedId:r,selectedTranscript:n,setSelectedId:o,proteinSequence:i,validIds:s}){let{classes:a}=a7(),[c,l]=(0,nn.useState)(!1);return nn.default.createElement(nn.default.Fragment,null,nn.default.createElement("div",{className:a.flex},nn.default.createElement(ka.TextField,{variant:"outlined",label:`Choose isoform of ${io(e)}`,helperText:"the query row, so the alignment stays linked to the genome view",select:!0,className:a.minWidth,value:r,onChange:u=>{o(u.target.value)}},t.map(u=>{let d=s?s.some(g=>Ba(u,g)):!0,{len:A,mod:f}=aA(u);return nn.default.createElement(ka.MenuItem,{value:Hi(u),key:u.id(),disabled:!d},Ta(u)," (",A," aa)"," ",f?" (possible fragment)":"",s?d?" (has data)":" (no data)":"")})),nn.default.createElement("div",{className:a.centered},nn.default.createElement(ka.Button,{variant:"contained",color:"primary",onClick:()=>{l(!c)}},c?"Hide sequence":"Show sequence"))),c?nn.default.createElement($y,{value:i?`>${Ta(n)}
87
87
  ${i}`:"Loading..."}):null)}var NA=p(Q());var bA=p(we());oQ();function TL({cds:e,sequence:t,codonTable:r}){let n=e[0]?.phase??0,o=nQ(e,t),i=n>0?"&":"";for(let s=n;s<o.length;s+=3)i+=r[o.slice(s,s+3)]||"&";return i}var c7=[{id:1,name:"Standard",ncbieaa:"FFLLSSSSYY**CC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"---M------**--*----M---------------M----------------------------"},{id:2,name:"Vertebrate Mitochondrial",ncbieaa:"FFLLSSSSYY**CCWWLLLLPPPPHHQQRRRRIIMMTTTTNNKKSS**VVVVAAAADDEEGGGG",sncbieaa:"----------**--------------------MMMM----------**---M------------"},{id:3,name:"Yeast Mitochondrial",ncbieaa:"FFLLSSSSYY**CCWWTTTTPPPPHHQQRRRRIIMMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"----------**----------------------MM---------------M------------"},{id:4,name:"Mold Mitochondrial; Protozoan Mitochondrial; Coelenterate Mitochondrial; Mycoplasma; Spiroplasma",ncbieaa:"FFLLSSSSYY**CCWWLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"--MM------**-------M------------MMMM---------------M------------"},{id:5,name:"Invertebrate Mitochondrial",ncbieaa:"FFLLSSSSYY**CCWWLLLLPPPPHHQQRRRRIIMMTTTTNNKKSSSSVVVVAAAADDEEGGGG",sncbieaa:"---M------**--------------------MMMM---------------M------------"},{id:6,name:"Ciliate Nuclear; Dasycladacean Nuclear; Hexamita Nuclear",ncbieaa:"FFLLSSSSYYQQCC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"--------------*--------------------M----------------------------"},{id:9,name:"Echinoderm Mitochondrial; Flatworm Mitochondrial",ncbieaa:"FFLLSSSSYY**CCWWLLLLPPPPHHQQRRRRIIIMTTTTNNNKSSSSVVVVAAAADDEEGGGG",sncbieaa:"----------**-----------------------M---------------M------------"},{id:10,name:"Euplotid Nuclear",ncbieaa:"FFLLSSSSYY**CCCWLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"----------**-----------------------M----------------------------"},{id:11,name:"Bacterial, Archaeal and Plant Plastid",ncbieaa:"FFLLSSSSYY**CC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"---M------**--*----M------------MMMM---------------M------------"},{id:12,name:"Alternative Yeast Nuclear",ncbieaa:"FFLLSSSSYY**CC*WLLLSPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"----------**--*----M---------------M----------------------------"},{id:13,name:"Ascidian Mitochondrial",ncbieaa:"FFLLSSSSYY**CCWWLLLLPPPPHHQQRRRRIIMMTTTTNNKKSSGGVVVVAAAADDEEGGGG",sncbieaa:"---M------**----------------------MM---------------M------------"},{id:14,name:"Alternative Flatworm Mitochondrial",ncbieaa:"FFLLSSSSYYY*CCWWLLLLPPPPHHQQRRRRIIIMTTTTNNNKSSSSVVVVAAAADDEEGGGG",sncbieaa:"-----------*-----------------------M----------------------------"},{id:15,name:"Blepharisma Macronuclear",ncbieaa:"FFLLSSSSYY*QCC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"----------*---*--------------------M----------------------------"},{id:16,name:"Chlorophycean Mitochondrial",ncbieaa:"FFLLSSSSYY*LCC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"----------*---*--------------------M----------------------------"},{id:21,name:"Trematode Mitochondrial",ncbieaa:"FFLLSSSSYY**CCWWLLLLPPPPHHQQRRRRIIMMTTTTNNNKSSSSVVVVAAAADDEEGGGG",sncbieaa:"----------**-----------------------M---------------M------------"},{id:22,name:"Scenedesmus obliquus Mitochondrial",ncbieaa:"FFLLSS*SYY*LCC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"------*---*---*--------------------M----------------------------"},{id:23,name:"Thraustochytrium Mitochondrial",ncbieaa:"FF*LSSSSYY**CC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"--*-------**--*-----------------M--M---------------M------------"},{id:24,name:"Rhabdopleuridae Mitochondrial",ncbieaa:"FFLLSSSSYY**CCWWLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSSKVVVVAAAADDEEGGGG",sncbieaa:"---M------**-------M---------------M---------------M------------"},{id:25,name:"Candidate Division SR1 and Gracilibacteria",ncbieaa:"FFLLSSSSYY**CCGWLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"---M------**-----------------------M---------------M------------"},{id:26,name:"Pachysolen tannophilus Nuclear",ncbieaa:"FFLLSSSSYY**CC*WLLLAPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"----------**--*----M---------------M----------------------------"},{id:27,name:"Karyorelict Nuclear",ncbieaa:"FFLLSSSSYYQQCCWWLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"--------------*--------------------M----------------------------"},{id:28,name:"Condylostoma Nuclear",ncbieaa:"FFLLSSSSYYQQCCWWLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"----------**--*--------------------M----------------------------"},{id:29,name:"Mesodinium Nuclear",ncbieaa:"FFLLSSSSYYYYCC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"--------------*--------------------M----------------------------"},{id:30,name:"Peritrich Nuclear",ncbieaa:"FFLLSSSSYYEECC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"--------------*--------------------M----------------------------"},{id:31,name:"Blastocrithidia Nuclear",ncbieaa:"FFLLSSSSYYEECCWWLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"----------**-----------------------M----------------------------"},{id:32,name:"Balanophoraceae Plastid",ncbieaa:"FFLLSSSSYY*WCC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG",sncbieaa:"---M------*---*----M------------MMMM---------------M------------"},{id:33,name:"Cephalodiscidae Mitochondrial",ncbieaa:"FFLLSSSSYYY*CCWWLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSSKVVVVAAAADDEEGGGG",sncbieaa:"---M-------*-------M---------------M---------------M------------"}],l7="TTTTTTTTTTTTTTTTCCCCCCCCCCCCCCCCAAAAAAAAAAAAAAAAGGGGGGGGGGGGGGGG",u7="TTTTCCCCAAAAGGGGTTTTCCCCAAAAGGGGTTTTCCCCAAAAGGGGTTTTCCCCAAAAGGGG",f7="TCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAG",d7=Array.from({length:64},(e,t)=>l7[t]+u7[t]+f7[t]),ML=new Map(c7.map(e=>[e.id,e]));function A7(e){let t={};for(let[r,n]of Object.entries(e)){let o=i=>{let s=r.charAt(i);return[s.toUpperCase(),s.toLowerCase()]};for(let i of o(0))for(let s of o(1))for(let a of o(2))t[i+s+a]=n}return t}function m7(e){let t=ML.get(e);!t&&e!==1&&console.warn(`Unknown genetic code (transl_table=${e}); using standard code`);let{id:r,name:n,ncbieaa:o,sncbieaa:i}=t??ML.get(1),s={},a=[];for(let[c,l]of d7.entries())s[l]=o[c],i[c]==="M"&&a.push(l);return{id:r,name:n,codonTable:A7(s),starts:a}}var RL=new Map;function QL(e=1){let t=RL.get(e);return t||(t=m7(e),RL.set(e,t)),t}function Wy(e){let t=Array.isArray(e)?e[0]:e,r=Number(t);return Number.isInteger(r)&&r>0?r:void 0}function p7({cds:e,sequence:t,geneticCodeId:r}){let{codonTable:n}=QL(r);return TL({cds:e,sequence:t,codonTable:n})}function g7(e,t){return e.map(r=>({...r,start:t-r.end,end:t-r.start})).toSorted((r,n)=>r.start-n.start)}function _L({feature:e,seq:t}){let{subfeatures:r,start:n,strand:o}=e.toJSON(),i=(0,bA.dedupe)(r?.toSorted((c,l)=>c.start-l.start).map(c=>({...c,start:c.start-n,end:c.end-n})).filter(c=>c.type==="CDS")??[],c=>`${c.start}-${c.end}`),s=e.get("subfeatures")?.find(c=>c.get("type")?.toLowerCase()==="cds"),a=Wy(e.get("transl_table"))??Wy(s?.get("transl_table"));return p7({cds:o===-1?g7(i,t.length):i,sequence:o===-1?(0,bA.revcom)(t):t,geneticCodeId:a})}var eP=p(we());var lt=p(Q(),1),cx=p(LL(),1);var Et=p(Q(),1);var Yo={};Bt(Yo,{ERROR_REVALIDATE_EVENT:()=>v7,FOCUS_EVENT:()=>PL,MUTATE_EVENT:()=>OL,RECONNECT_EVENT:()=>FL});var PL=0,FL=1,OL=2,v7=3;var GL=Object.prototype.hasOwnProperty;function EA(e,t){var r,n;if(e===t)return!0;if(e&&t&&(r=e.constructor)===t.constructor){if(r===Date)return e.getTime()===t.getTime();if(r===RegExp)return e.toString()===t.toString();if(r===Array){if((n=e.length)===t.length)for(;n--&&EA(e[n],t[n]););return n===-1}if(!r||typeof e=="object"){n=0;for(r in e)if(GL.call(e,r)&&++n&&!GL.call(t,r)||!(r in t)||!EA(e[r],t[r]))return!1;return Object.keys(t).length===n}}return e!==e&&t!==t}var on=new WeakMap,sn=()=>{},ot=sn(),Na=Object,ee=e=>e===ot,hr=e=>typeof e=="function",an=(e,t)=>({...e,...t}),TA=e=>hr(e.then),qy={},wA={},tx="undefined",La=typeof window!=tx,SA=typeof document!=tx,HL=La&&"Deno"in window,VL=()=>La&&typeof window.requestAnimationFrame!=tx,MA=(e,t)=>{let r=on.get(e);return[()=>!ee(t)&&e.get(t)||qy,n=>{if(!ee(t)){let o=e.get(t);t in wA||(wA[t]=o),r[5](t,an(o,n),o||qy)}},r[6],()=>!ee(t)&&t in wA?wA[t]:!ee(t)&&e.get(t)||qy]},Ky=!0,B7=()=>Ky,[Xy,Zy]=La&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[sn,sn],T7=()=>{let e=SA&&document.visibilityState;return ee(e)||e!=="hidden"},M7=e=>(SA&&document.addEventListener("visibilitychange",e),Xy("focus",e),()=>{SA&&document.removeEventListener("visibilitychange",e),Zy("focus",e)}),R7=e=>{let t=()=>{Ky=!0,e()},r=()=>{Ky=!1};return Xy("online",t),Xy("offline",r),()=>{Zy("online",t),Zy("offline",r)}},jL={isOnline:B7,isVisible:T7},$L={initFocus:M7,initReconnect:R7},RA=!Et.default.useId,qo=!La||HL,rx=e=>VL()?window.requestAnimationFrame(e):setTimeout(e,1),Pa=qo?Et.useEffect:Et.useLayoutEffect,zy=typeof navigator<"u"&&navigator.connection,ex=!qo&&zy&&(["slow-2g","2g"].includes(zy.effectiveType)||zy.saveData),IA=new WeakMap,Q7=e=>Na.prototype.toString.call(e),Jy=(e,t)=>e===`[object ${t}]`,_7=0,vA=e=>{let t=typeof e,r=Q7(e),n=Jy(r,"Date"),o=Jy(r,"RegExp"),i=Jy(r,"Object"),s,a;if(Na(e)===e&&!n&&!o){if(s=IA.get(e),s)return s;if(s=++_7+"~",IA.set(e,s),Array.isArray(e)){for(s="@",a=0;a<e.length;a++)s+=vA(e[a])+",";IA.set(e,s)}if(i){s="#";let c=Na.keys(e).sort();for(;!ee(a=c.pop());)ee(e[a])||(s+=a+":"+vA(e[a])+",");IA.set(e,s)}}else s=n?e.toJSON():t=="symbol"?e.toString():t=="string"?JSON.stringify(e):""+e;return s},Ll=e=>{if(hr(e))try{e=e()}catch{e=""}let t=e;return e=typeof e=="string"?e:(Array.isArray(e)?e.length:e)?vA(e):"",[e,t]},k7=0,Nl=()=>++k7;async function QA(...e){let[t,r,n,o]=e,i=an({populateCache:!0,throwOnError:!0},typeof o=="boolean"?{revalidate:o}:o||{}),s=i.populateCache,a=i.rollbackOnError,c=i.optimisticData,l=A=>typeof a=="function"?a(A):a!==!1,u=i.throwOnError;if(hr(r)){let A=r,f=[],g=t.keys();for(let h of g)!/^\$(inf|sub)\$/.test(h)&&A(t.get(h)._k)&&f.push(h);return Promise.all(f.map(d))}return d(r);async function d(A){let[f]=Ll(A);if(!f)return;let[g,h]=MA(t,f),[y,E,x,S]=on.get(t),w=()=>{let k=y[f];return(hr(i.revalidate)?i.revalidate(g().data,A):i.revalidate!==!1)&&(delete x[f],delete S[f],k&&k[0])?k[0](2).then(()=>g().data):g().data};if(e.length<3)return w();let I=n,v,B=!1,R=Nl();E[f]=[R,0];let D=!ee(c),L=g(),F=L.data,C=L._c,M=ee(C)?F:C;if(D&&(c=hr(c)?c(M,F):c,h({data:c,_c:M})),hr(I))try{I=I(M)}catch(k){v=k,B=!0}if(I&&TA(I))if(I=await I.catch(k=>{v=k,B=!0}),R!==E[f][0]){if(B)throw v;return I}else B&&D&&l(v)&&(s=!0,h({data:M,_c:ot}));if(s&&!B)if(hr(s)){let k=s(I,M);h({data:k,error:ot,_c:ot})}else h({data:I,error:ot,_c:ot});if(E[f][1]=Nl(),Promise.resolve(w()).then(()=>{h({_c:ot})}),B){if(u)throw v;return}return I}}var UL=(e,t)=>{for(let r in e)e[r][0]&&e[r][0](t)},nx=(e,t)=>{if(!on.has(e)){let r=an($L,t),n=Object.create(null),o=QA.bind(ot,e),i=sn,s=Object.create(null),a=(u,d)=>{let A=s[u]||[];return s[u]=A,A.push(d),()=>{let f=A.indexOf(d);f>=0&&(A[f]=A[A.length-1],A.pop())}},c=(u,d,A)=>{e.set(u,d);let f=s[u];if(f)for(let g of f)g(d,A)},l=()=>{if(!on.has(e)&&(on.set(e,[n,Object.create(null),Object.create(null),Object.create(null),o,c,a]),!qo)){let u=r.initFocus(setTimeout.bind(ot,UL.bind(ot,n,0))),d=r.initReconnect(setTimeout.bind(ot,UL.bind(ot,n,1)));i=()=>{u&&u(),d&&d(),on.delete(e)}}};return l(),[e,o,l,i]}return[e,on.get(e)[4]]},D7=(e,t,r,n,o)=>{let i=r.errorRetryCount,s=o.retryCount,a=~~((Math.random()+.5)*(1<<(s<8?s:8)))*r.errorRetryInterval;!ee(i)&&s>i||setTimeout(n,a,o)},WL=EA,[_A,YL]=nx(new Map),kA=an({onLoadingSlow:sn,onSuccess:sn,onError:sn,onErrorRetry:D7,onDiscarded:sn,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:ex?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:ex?5e3:3e3,compare:WL,isPaused:()=>!1,cache:_A,mutate:YL,fallback:{}},jL),ox=(e,t)=>{let r=an(e,t);if(t){let{use:n,fallback:o}=e,{use:i,fallback:s}=t;n&&i&&(r.use=n.concat(i)),o&&s&&(r.fallback=an(o,s))}return r},BA=(0,Et.createContext)({}),ix=e=>{let{value:t}=e,r=(0,Et.useContext)(BA),n=hr(t),o=(0,Et.useMemo)(()=>n?t(r):t,[n,r,t]),i=(0,Et.useMemo)(()=>n?o:ox(r,o),[n,r,o]),s=o&&o.provider,a=(0,Et.useRef)(ot);s&&!a.current&&(a.current=nx(s(i.cache||_A),o));let c=a.current;return c&&(i.cache=c[0],i.mutate=c[1]),Pa(()=>{if(c)return c[2]&&c[2](),c[3]},[]),(0,Et.createElement)(BA.Provider,an(e,{value:i}))};var qL="$inf$";var Fa=p(Q(),1);var zL=La&&window.__SWR_DEVTOOLS_USE__,N7=zL?window.__SWR_DEVTOOLS_USE__:[],L7=()=>{zL&&(window.__SWR_DEVTOOLS_REACT__=Fa.default)},P7=e=>hr(e[1])?[e[0],e[1],e[2]||{}]:[e[0],null,(e[1]===null?e[2]:e[1])||{}],F7=()=>{let e=(0,Fa.useContext)(BA);return(0,Fa.useMemo)(()=>an(kA,e),[e])};var O7=e=>(t,r,n)=>e(t,r&&((...i)=>{let[s]=Ll(t),[,,,a]=on.get(_A);if(s.startsWith(qL))return r(...i);let c=a[s];return ee(c)?r(...i):(delete a[s],c)}),n),G7=N7.concat(O7),JL=e=>function(...r){let n=F7(),[o,i,s]=P7(r),a=ox(n,s),c=e,{use:l}=a,u=(l||[]).concat(G7);for(let d=u.length;d--;)c=u[d](c);return c(o,i||a.fetcher||null,a)},KL=(e,t,r)=>{let n=t[e]||(t[e]=[]);return n.push(r),()=>{let o=n.indexOf(r);o>=0&&(n[o]=n[n.length-1],n.pop())}};L7();var U7=()=>{},lhe=U7();var sx=lt.default.use||(e=>{switch(e.status){case"pending":throw e;case"fulfilled":return e.value;case"rejected":throw e.reason;default:throw e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}),e}}),ax={dedupe:!0},DA=Promise.resolve(ot);DA.status="fulfilled";DA.value=ot;var H7=()=>sn,V7=(e,t,r)=>{let{cache:n,compare:o,suspense:i,fallbackData:s,revalidateOnMount:a,revalidateIfStale:c,refreshInterval:l,refreshWhenHidden:u,refreshWhenOffline:d,keepPreviousData:A,strictServerPrefetchWarning:f}=r,[g,h,y,E]=on.get(n),[x,S]=Ll(e),w=(0,lt.useRef)(!1),I=(0,lt.useRef)(!1),v=(0,lt.useRef)(x),B=(0,lt.useRef)(t),R=(0,lt.useRef)(r),D=()=>R.current,L=()=>D().isVisible()&&D().isOnline(),[F,C,M,k]=MA(n,x),G=(0,lt.useRef)({}).current,j=ee(s)?ee(r.fallback)?ot:r.fallback[x]:s,oe=(Ae,ae)=>{for(let De in G){let Te=De;if(Te==="data"){if(!o(Ae[Te],ae[Te])&&(!ee(Ae[Te])||!o(Ji,ae[Te])))return!1}else if(ae[Te]!==Ae[Te])return!1}return!0},te=!w.current,Gr=(0,lt.useMemo)(()=>{let Ae=F(),ae=k(),De=ye=>{let Je=an(ye);return delete Je._k,(()=>{if(!x||!t||D().isPaused())return!1;if(te&&!ee(a))return a;let On=ee(j)?Je.data:j;return i?ee(On)||c:ee(On)||c})()?{isValidating:!0,isLoading:!0,...Je}:Je},Te=De(Ae),rr=Ae===ae?Te:De(ae),Pt=Te;return[()=>{let ye=De(F());return oe(ye,Pt)?(Pt.data=ye.data,Pt.isLoading=ye.isLoading,Pt.isValidating=ye.isValidating,Pt.error=ye.error,Pt):(Pt=ye,ye)},()=>rr]},[n,x]),it=(0,cx.useSyncExternalStore)((0,lt.useCallback)(Ae=>M(x,(ae,De)=>{oe(De,ae)||Ae()}),[n,x]),Gr[0],Gr[1]),de=g[x]&&g[x].length>0,Ur=it.data,xr=ee(Ur)?j&&TA(j)?sx(j):j:Ur,un=it.error,Pn=(0,lt.useRef)(xr),Ji=A?ee(Ur)?ee(Pn.current)?xr:Pn.current:Ur:xr,Fn=x&&ee(xr),co=(0,lt.useRef)(null);!qo&&(0,cx.useSyncExternalStore)(H7,()=>(co.current=!1,co),()=>(co.current=!0,co));let YA=co.current;f&&YA&&!i&&Fn&&console.warn(`Missing pre-initiated data for serialized key "${x}" during server-side rendering. Data fetching should be initiated on the server and provided to SWR via fallback data. You can set "strictServerPrefetchWarning: false" to disable this warning.`);let Ua=!x||!t||D().isPaused()||de&&!ee(un)?!1:te&&!ee(a)?a:i?ee(xr)?!1:c:ee(xr)||c,ve=te&&Ua,Ol=ee(it.isValidating)?ve:it.isValidating,ke=ee(it.isLoading)?ve:it.isLoading,lo=(0,lt.useCallback)(async Ae=>{let ae=B.current;if(!x||!ae||I.current||D().isPaused())return!1;let De,Te,rr=!0,Pt=Ae||{},ye=!y[x]||!Pt.dedupe,Je=()=>RA?!I.current&&x===v.current&&w.current:x===v.current,nr={isValidating:!1,isLoading:!1},On=()=>{C(nr)},Xi=()=>{let It=y[x];It&&It[1]===Te&&delete y[x]},Zi={isValidating:!0};ee(F().data)&&(Zi.isLoading=!0);try{if(ye&&(C(Zi),r.loadingTimeout&&ee(F().data)&&setTimeout(()=>{rr&&Je()&&D().onLoadingSlow(x,r)},r.loadingTimeout),y[x]=[ae(S),Nl()]),[De,Te]=y[x],De=await De,ye&&setTimeout(Xi,r.dedupingInterval),!y[x]||y[x][1]!==Te)return ye&&Je()&&D().onDiscarded(x),!1;nr.error=ot;let It=h[x];if(!ee(It)&&(Te<=It[0]||Te<=It[1]||It[1]===0))return On(),ye&&Je()&&D().onDiscarded(x),!1;let St=F().data;nr.data=o(St,De)?St:De,ye&&Je()&&D().onSuccess(De,x,r)}catch(It){Xi();let St=D(),{shouldRetryOnError:uo}=St;St.isPaused()||(nr.error=It,ye&&Je()&&(St.onError(It,x,St),(uo===!0||hr(uo)&&uo(It))&&(!D().revalidateOnFocus||!D().revalidateOnReconnect||L())&&St.onErrorRetry(It,x,St,es=>{let ts=g[x];ts&&ts[0]&&ts[0](Yo.ERROR_REVALIDATE_EVENT,es)},{retryCount:(Pt.retryCount||0)+1,dedupe:!0})))}return rr=!1,On(),!0},[x,n]),Be=(0,lt.useCallback)((...Ae)=>QA(n,v.current,...Ae),[]);if(Pa(()=>{B.current=t,R.current=r,ee(Ur)||(Pn.current=Ur)}),Pa(()=>{if(!x)return;let Ae=lo.bind(ot,ax),ae=0;D().revalidateOnFocus&&(ae=Date.now()+D().focusThrottleInterval);let Te=KL(x,g,(rr,Pt={})=>{if(rr==Yo.FOCUS_EVENT){let ye=Date.now();D().revalidateOnFocus&&ye>ae&&L()&&(ae=ye+D().focusThrottleInterval,Ae())}else if(rr==Yo.RECONNECT_EVENT)D().revalidateOnReconnect&&L()&&Ae();else{if(rr==Yo.MUTATE_EVENT)return lo();if(rr==Yo.ERROR_REVALIDATE_EVENT)return lo(Pt)}});return I.current=!1,v.current=x,w.current=!0,C({_k:S}),Ua&&(y[x]||(ee(xr)||qo?Ae():rx(Ae))),()=>{I.current=!0,Te()}},[x]),Pa(()=>{let Ae;function ae(){let Te=hr(l)?l(F().data):l;Te&&Ae!==-1&&(Ae=setTimeout(De,Te))}function De(){!F().error&&(u||D().isVisible())&&(d||D().isOnline())?lo(ax).then(ae):ae()}return ae(),()=>{Ae&&(clearTimeout(Ae),Ae=-1)}},[l,u,d,x]),(0,lt.useDebugValue)(Ji),i){if(!RA&&qo&&Fn)throw new Error("Fallback data is required when using Suspense in SSR.");Fn&&(B.current=t,R.current=r,I.current=!1);let Ae=E[x],ae=!ee(Ae)&&Fn?Be(Ae):DA;if(sx(ae),!ee(un)&&Fn)throw un;let De=Fn?lo(ax):DA;!ee(Ji)&&Fn&&(De.status="fulfilled",De.value=!0),sx(De)}return{mutate:Be,get data(){return G.data=!0,Ji},get error(){return G.error=!0,un},get isValidating(){return G.isValidating=!0,Ol},get isLoading(){return G.isLoading=!0,ke}}},uhe=Na.defineProperty(ix,"defaultValue",{value:kA}),ji=JL(V7);var XL=p(ss());async function ZL({start:e,end:t,refName:r,session:n,assemblyName:o}){let{assemblyManager:i,rpcManager:s}=n,a=await i.waitForAssembly(o);if(!a)throw new Error("assembly not found");let c="getSequence";return(await s.call(c,"CoreGetFeatures",{adapterConfig:(0,XL.getConf)(a,["sequence","adapter"]),sessionId:c,regions:[{start:e,end:t,refName:a.getCanonicalRefName(r),assemblyName:o}]}))[0]?.get("seq")??""}var $i={revalidateOnFocus:!1,revalidateOnReconnect:!1,revalidateIfStale:!1,refreshWhenHidden:!1,refreshWhenOffline:!1,shouldRetryOnError:!1};async function j7({feature:e,assemblyName:t,view:r}){let n=(0,eP.getSession)(r),{start:o,end:i,refName:s}=e.toJSON();return{seq:await ZL({start:o,end:i,refName:s,assemblyName:t,session:n})}}function tP({view:e,feature:t}){let r=e?.assemblyNames?.[0],n=t&&r?{feature:t,assemblyName:r,view:e}:void 0,{data:o,error:i}=ji(n?[n.feature.id(),n.assemblyName,"feature-sequence"]:null,()=>j7(n),$i);return{sequence:o,error:i}}function rP({view:e,feature:t}){let{sequence:r,error:n}=tP({view:e,feature:t});return{proteinSequence:r&&t?_L({seq:r.seq,feature:t}):"",sequence:r,error:n}}function $7(e,t,r){if(!r?.length)return e;let n=s=>r.some(a=>Ba(s,a)),o=t.find(s=>Hi(s)===e);if(o&&n(o))return e;let i=t.find(n);return i?Hi(i):e}function Nr({feature:e,view:t,validIds:r}){let n=(0,NA.useMemo)(()=>uA(e),[e]),[o,i]=(0,NA.useState)(()=>Hi(n[0])),s=$7(o,n,r),a=n.find(u=>Hi(u)===s),{proteinSequence:c,error:l}=rP({view:t,feature:a});return{options:n,selectedId:s,setSelectedId:i,selectedTranscript:a,proteinSequence:c,error:l,validIds:r}}var W7=(0,oP.makeStyles)()({textAreaFont:{fontFamily:"Courier New"},inputContainer:{marginBottom:30},fileContainer:{maxWidth:500},msaInput:{marginBottom:20},queryNameInput:{marginTop:20},warningAlert:{marginTop:10}}),Y7=(0,nP.observer)(function({model:t,feature:r,handleClose:n}){let o=tr(t),{classes:i}=W7(),[s,a]=(0,fe.useState)(),[c,l]=(0,fe.useState)("file"),[u,d]=(0,fe.useState)(""),[A,f]=(0,fe.useState)(""),[g,h]=(0,fe.useState)(),[y,E]=(0,fe.useState)(),[x,S]=(0,fe.useState)(""),w=Nr({feature:r,view:o}),{selectedTranscript:I,error:v}=w;return fe.default.createElement(fe.default.Fragment,null,fe.default.createElement(pr,{error:s??v},fe.default.createElement(Lr.FormControl,{component:"fieldset"},fe.default.createElement(Lr.RadioGroup,{row:!0,value:c,onChange:R=>{l(R.target.value)}},fe.default.createElement(Lr.FormControlLabel,{value:"file",control:fe.default.createElement(Lr.Radio,null),label:"Open files"}),fe.default.createElement(Lr.FormControlLabel,{value:"text",control:fe.default.createElement(Lr.Radio,null),label:"Paste text"}))),fe.default.createElement("div",{className:i.inputContainer},c==="file"?fe.default.createElement("div",{className:i.fileContainer},fe.default.createElement(lx.FileSelector,{name:"MSA File .aln (Clustal), .fa/.mfa (aligned FASTA), .stock (Stockholm), etc)",inline:!0,location:g,setLocation:h}),fe.default.createElement(lx.FileSelector,{name:"Tree file .nh (Newick) or .asn (NCBI COBALT ASN.1)",inline:!0,location:y,setLocation:E})):fe.default.createElement(fe.default.Fragment,null,fe.default.createElement(ct,{variant:"outlined",name:"MSA",multiline:!0,minRows:5,className:i.msaInput,maxRows:10,fullWidth:!0,placeholder:"Paste MSA here",value:u,onChange:R=>{d(R.target.value)}}),fe.default.createElement(ct,{variant:"outlined",name:"Tree",multiline:!0,minRows:5,maxRows:10,fullWidth:!0,placeholder:"Paste newick tree (optional)",value:A,onChange:R=>{f(R.target.value)}}))),fe.default.createElement(gr,{feature:r,...w}),fe.default.createElement(ct,{variant:"outlined",name:"MSA row name",fullWidth:!0,required:!0,className:i.queryNameInput,placeholder:"Row name in MSA that corresponds to the selected transcript",helperText:"Required: Specify the name of the row in your MSA that should be aligned with the selected transcript",value:x,onChange:R=>{S(R.target.value)}}),x.trim()?null:fe.default.createElement(Lr.Alert,{severity:"warning",className:i.warningAlert},"Without specifying the MSA row name, clicking on the MSA will not navigate to the corresponding genome position, and hovering highlights will not work.")),fe.default.createElement(rn,{submitDisabled:!I||c==="file"&&!g||c==="text"&&!u.trim(),onSubmit:()=>{try{I&&(a(void 0),CL({newViewTitle:io(I),view:o,feature:I,querySeqName:x.trim(),...c==="file"?{msaFilehandle:g,treeFilehandle:y}:{data:{msa:u,tree:A}}}),n())}catch(R){console.error(R),a(R)}},onCancel:n}))}),iP=Y7;var ln=p(Q());Ie();var sP=p(O(),1),aP=Y((0,sP.jsx)("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings");var PP=p(U()),FP=p(Tt());var Ee=p(Q());oy();var yr=p(U()),CP=p(W()),bP=p(Tt());var ht=p(Q()),dP=p(Ze());Ie();var cP=p(O(),1),lP=Y((0,cP.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z"}),"Delete");var Dt=p(U()),AP=p(W()),mP=p(Tt());var ux=p(we());function LA({newViewTitle:e,view:t,feature:r,blastParams:n}){(0,ux.getSession)(t).addView("MsaView",{type:"MsaView",displayName:e,connectedViewId:t.id,connectedFeature:r.toJSON(),drawNodeBubbles:!0,colWidth:10,rowHeight:12,blastParams:n})}function uP({newViewTitle:e,view:t,cached:r,connectedFeature:n}){(0,ux.getSession)(t).addView("MsaView",{type:"MsaView",displayName:e,connectedViewId:t.id,connectedFeature:n,drawNodeBubbles:!0,colWidth:10,rowHeight:12,data:{msa:r.msa,tree:r.tree,treeMetadata:r.treeMetadata}})}function PA(e){let{data:t,error:r,isLoading:n,mutate:o}=ji(`cached-blast-${e.join(",")}`,async()=>(await fN()).filter(c=>c.geneId&&e.includes(c.geneId)),$i);return{results:t??[],error:r,isLoading:n,handleDelete:async a=>{await Ry(a),await o(c=>c?.filter(l=>l.id!==a)??[],!1)},handleClearAll:async()=>{await Promise.all((t??[]).map(a=>Ry(a.id))),await o([],!1)}}}var q7=(0,mP.makeStyles)()({header:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:8},resultList:{maxHeight:300,overflow:"auto"}});function fP(e){let t=[e.geneName,e.transcriptName!==e.geneName?e.transcriptName:void 0].filter(r=>!!r);return t.length>0?t.join(" - "):e.geneId??e.transcriptId??"Unknown"}var z7=(0,AP.observer)(function({model:e,handleClose:t,feature:r}){let{classes:n}=q7(),o=tr(e),[i,s]=(0,ht.useState)(),a=(0,ht.useMemo)(()=>Ra(r),[r]),{results:c,error:l,isLoading:u,handleDelete:d,handleClearAll:A}=PA(a),f=h=>{let{transcriptId:y}=h,E=y?uA(r).find(x=>Ba(x,y)):void 0;uP({view:o,cached:h,newViewTitle:`BLAST - ${fP(h)}`,connectedFeature:E?.toJSON()}),t()},g=l??i;return g?ht.default.createElement(dP.ErrorMessage,{error:g}):u?ht.default.createElement(Dt.Typography,null,"Loading cached results..."):c.length===0?ht.default.createElement(Dt.Typography,{color:"textSecondary"},"No cached BLAST results found for this gene. Run a BLAST query to cache results."):ht.default.createElement("div",null,ht.default.createElement("div",{className:n.header},ht.default.createElement(Dt.Typography,{variant:"subtitle1"},"Cached BLAST Results (",c.length,")"),ht.default.createElement(Dt.Button,{size:"small",color:"error",onClick:async()=>{try{s(void 0),await A()}catch(h){s(h)}}},"Clear results for this gene")),ht.default.createElement(Dt.List,{dense:!0,className:n.resultList},c.map(h=>ht.default.createElement(Dt.ListItem,{key:h.id,disablePadding:!0,secondaryAction:ht.default.createElement(Dt.IconButton,{edge:"end",size:"small",onClick:async y=>{y.stopPropagation();try{s(void 0),await d(h.id)}catch(E){s(E)}}},ht.default.createElement(lP,{fontSize:"small"}))},ht.default.createElement(Dt.ListItemButton,{onClick:()=>{f(h)}},ht.default.createElement(Dt.ListItemText,{primary:`${fP(h)} - ${h.blastDatabase}/${h.blastProgram} (${h.msaAlgorithm})`,secondary:`${new Date(h.timestamp).toLocaleString()} - Seq: ${h.proteinSequence.slice(0,30)}...`}))))))}),pP=z7;var fx=p(Q()),xP=p(U());var FA="https://blast.ncbi.nlm.nih.gov/Blast.cgi",gP=["clustalo","muscle","kalign","mafft"],hP=["nr","nr_cluster_seq"],yP=["blastp","quick-blastp"];function Wi({value:e,onChange:t,className:r}){return fx.default.createElement(ct,{variant:"outlined",label:"MSA Algorithm",className:r,select:!0,value:e,onChange:n=>{t(n.target.value)}},gP.map(n=>fx.default.createElement(xP.MenuItem,{value:n,key:n},n)))}var J7=(0,bP.makeStyles)()({selectField:{width:150},databaseFieldContainer:{display:"flex"},clusterSeqMessage:{marginLeft:4,alignContent:"center"},cachedResultsAccordion:{marginTop:20},infoText:{marginTop:20}}),K7=(0,CP.observer)(function({handleClose:e,feature:t,model:r,children:n,baseUrl:o}){let{classes:i}=J7(),s=tr(r),[a,c]=(0,Ee.useState)(),[l,u]=(0,Ee.useState)("nr"),[d,A]=(0,Ee.useState)("clustalo"),[f,g]=(0,Ee.useState)("quick-blastp"),h=(0,Ee.useMemo)(()=>Ra(t),[t]),{results:y,error:E}=PA(h),x=Nr({feature:t,view:s}),{selectedTranscript:S,proteinSequence:w}=x,I=x.error??a??E;return Ee.default.createElement(Ee.default.Fragment,null,Ee.default.createElement(pr,{error:I},n,Ee.default.createElement(ct,{variant:"outlined",label:"BLAST database",className:i.selectField,select:!0,value:l,onChange:v=>{let B=v.target.value;u(B),B==="nr_cluster_seq"&&g("blastp")}},hP.map(v=>Ee.default.createElement(yr.MenuItem,{value:v,key:v},v))),Ee.default.createElement(Wi,{className:i.selectField,value:d,onChange:A}),Ee.default.createElement("div",{className:i.databaseFieldContainer},Ee.default.createElement(ct,{variant:"outlined",label:"BLAST program",disabled:l==="nr_cluster_seq",className:i.selectField,select:!0,value:f,onChange:v=>{g(v.target.value)}},yP.map(v=>Ee.default.createElement(yr.MenuItem,{value:v,key:v},v))),l==="nr_cluster_seq"?Ee.default.createElement(yr.Typography,{variant:"subtitle2",className:i.clusterSeqMessage},"Can only use blastp on nr_cluster_seq"):null),Ee.default.createElement(gr,{feature:t,...x}),Ee.default.createElement(yr.Typography,{className:i.infoText},"This panel will automatically submit a query to NCBI. Using blastp can take 10+ minutes to run, quick-blastp is generally a lot faster but is not available for the clustered database. After completion, all the hits will be run through a multiple sequence alignment. Note: we are not able to currently run NCBI COBALT automatically on the BLAST results, even though that is the method NCBI uses on their website. If you need a COBALT alignment, please use the manual approach of submitting BLAST yourself and downloading the resulting files"),y.length>0?Ee.default.createElement(yr.Accordion,{className:i.cachedResultsAccordion},Ee.default.createElement(yr.AccordionSummary,{expandIcon:Ee.default.createElement(Vd,null)},Ee.default.createElement(yr.Typography,null,"Previous BLAST Results")),Ee.default.createElement(yr.AccordionDetails,null,Ee.default.createElement(pP,{model:r,handleClose:e,feature:t}))):null),Ee.default.createElement(rn,{submitDisabled:!w,onSubmit:()=>{try{S&&(c(void 0),LA({feature:S,view:s,newViewTitle:lA(t,S),blastParams:{baseUrl:o,blastProgram:f,blastDatabase:l,msaAlgorithm:d,selectedTranscript:S,proteinSequence:w}}),e())}catch(v){console.error(v),c(v)}},onCancel:e}))}),EP=K7;var Ln=p(Q()),BP=p(we()),Oa=p(U()),TP=p(W()),MP=p(Tt());OA();var X7=(0,MP.makeStyles)()({ncbiLink:{wordBreak:"break-all",margin:30,maxWidth:600},infoText:{marginTop:20}}),Z7=(0,TP.observer)(function({handleClose:e,feature:t,model:r,children:n,baseUrl:o}){let{classes:i}=X7(),s=tr(r),a=Nr({feature:t,view:s}),{proteinSequence:c,error:l}=a,u=Ma(c),d=`${o}?PAGE_TYPE=BlastSearch&PAGE=Proteins&PROGRAM=blastp&QUERY=${u}`,A=`${o}?PAGE_TYPE=BlastSearch&PAGE=Proteins&PROGRAM=blastp&QUERY=${(0,BP.shorten2)(u,10)}`;return Ln.default.createElement(Ln.default.Fragment,null,Ln.default.createElement(pr,{error:l},n,Ln.default.createElement(gr,{feature:t,...a}),c?Ln.default.createElement("div",{className:i.ncbiLink},"Link to NCBI BLAST: ",Ln.default.createElement(Yi,{href:d},A)):null,Ln.default.createElement(Oa.Typography,{className:i.infoText},`Click the link above and run your BLAST query, and once you have results, click "Multiple Alignment" at the top of the results page to be redirected to COBALT, NCBI's multiple sequence aligner. Once COBALT completes, you can download an MSA (.aln file) and optionally a Newick tree (.nh) and paste the results into JBrowse`)),Ln.default.createElement(Oa.DialogActions,null,Ln.default.createElement(Oa.Button,{color:"primary",variant:"contained",onClick:()=>{e()}},"Close")))}),RP=Z7;var so=p(Q()),Pr=p(U());function Ax({lookupMethod:e,setLookupMethod:t}){return so.default.createElement(Pr.FormControl,{component:"fieldset"},so.default.createElement(Pr.RadioGroup,{row:!0,value:e,onChange:r=>{t(r.target.value)}},so.default.createElement(Pr.FormControlLabel,{value:"automatic",control:so.default.createElement(Pr.Radio,null),label:"Automatic"}),so.default.createElement(Pr.FormControlLabel,{value:"rid",control:so.default.createElement(Pr.Radio,null),label:"Load from RID"}),so.default.createElement(Pr.FormControlLabel,{value:"manual",control:so.default.createElement(Pr.Radio,null),label:"Manual"})))}var Nt=p(Q()),GA=p(U()),QP=p(W()),_P=p(Tt());OA();var e$=(0,_P.makeStyles)()({marginBottom:{marginBottom:16},ridField:{width:150},infoText:{marginTop:20}}),t$=(0,QP.observer)(function({handleClose:e,feature:t,model:r,children:n,baseUrl:o}){let{classes:i}=e$(),s=tr(r),[a,c]=(0,Nt.useState)(),[l,u]=(0,Nt.useState)(""),[d,A]=(0,Nt.useState)("clustalo"),f=Nr({feature:t,view:s}),{selectedTranscript:g,proteinSequence:h}=f,y=f.error??a,E=l.trim();return Nt.default.createElement(Nt.default.Fragment,null,Nt.default.createElement(pr,{error:y},n,Nt.default.createElement(GA.Typography,{variant:"body2",className:i.marginBottom},"Enter the RID (Request ID) from a previously submitted NCBI BLAST query. You can find the RID in the BLAST results page URL or at the top of the results page. RIDs are typically valid for 24-36 hours after submission."),Nt.default.createElement(ct,{variant:"outlined",label:"BLAST RID",placeholder:"e.g., ABC12345",fullWidth:!0,className:i.marginBottom,value:l,onChange:x=>{u(x.target.value)}}),E?Nt.default.createElement(GA.Typography,{variant:"body2",className:i.marginBottom},Nt.default.createElement(Yi,{href:`${o}?CMD=Get&RID=${E}`},"View BLAST results on NCBI")):null,Nt.default.createElement(Wi,{className:i.ridField,value:d,onChange:A}),Nt.default.createElement(gr,{feature:t,...f}),Nt.default.createElement(GA.Typography,{className:i.infoText},"This will fetch the BLAST results for the provided RID and run them through a multiple sequence alignment. The protein sequence from the selected transcript will be added as the query sequence in the MSA.")),Nt.default.createElement(rn,{submitDisabled:!h||!E,onSubmit:()=>{try{g&&E&&(c(void 0),LA({feature:g,view:s,newViewTitle:lA(t,g),blastParams:{baseUrl:o,blastProgram:"blastp",blastDatabase:"nr",msaAlgorithm:d,selectedTranscript:g,proteinSequence:h,rid:E}}),e())}catch(x){console.error(x),c(x)}},onCancel:e}))}),kP=t$;var cn=p(Q()),Fr=p(U()),DP=p(Tt());var r$=(0,DP.makeStyles)()({urlField:{minWidth:300}});function mx({handleClose:e,baseUrl:t}){let{classes:r}=r$(),[n,o]=(0,cn.useState)(t);return cn.default.createElement(Fr.Dialog,{open:!0,maxWidth:"lg",onClose:()=>{e()}},cn.default.createElement(Fr.DialogTitle,null,"BLAST Settings"),cn.default.createElement(Fr.DialogContent,null,cn.default.createElement(ct,{autoFocus:!0,margin:"dense",label:"BLAST Base URL",fullWidth:!0,variant:"outlined",value:n,className:r.urlField,onChange:i=>{o(i.target.value)}}),cn.default.createElement(Fr.Button,{variant:"contained",onClick:()=>{o(FA)}},"Reset")),cn.default.createElement(Fr.DialogActions,null,cn.default.createElement(Fr.Button,{variant:"contained",color:"secondary",onClick:()=>{e()}},"Cancel"),cn.default.createElement(Fr.Button,{color:"primary",variant:"contained",onClick:()=>{e(n)}},"Save")))}var NP=p(Q());function n$(e,t){try{let r=globalThis.localStorage.getItem(e);return r===null?t:JSON.parse(r)}catch(r){return console.error(r),t}}function LP(e,t){let[r,n]=(0,NP.useState)(()=>n$(e,t));return[r,i=>{n(i);try{globalThis.localStorage.setItem(e,JSON.stringify(i))}catch(s){console.error(s)}}]}var o$=(0,FP.makeStyles)()({settingsButton:{float:"right"}}),i$={automatic:EP,rid:kP,manual:RP};function px({handleClose:e,model:t,feature:r}){let[n,o]=(0,ln.useState)("automatic"),[i,s]=LP("msa-blastRootUrl",FA),[a,c]=(0,ln.useState)(!1),{classes:l}=o$(),u=i$[n];return ln.default.createElement(ln.default.Fragment,null,ln.default.createElement(PP.IconButton,{className:l.settingsButton,size:"small",onClick:()=>{c(!0)}},ln.default.createElement(aP,null)),ln.default.createElement(u,{model:t,feature:r,handleClose:e,baseUrl:i},ln.default.createElement(Ax,{lookupMethod:n,setLookupMethod:o})),a?ln.default.createElement(mx,{baseUrl:i,handleClose:d=>{d&&s(d),c(!1)}}):null)}var $e=p(Q()),ao=p(U()),UP=p(W()),HP=p(Tt());var OP=p(we());function GP({newViewTitle:e,view:t,feature:r,orthologParams:n}){(0,OP.getSession)(t).addView("MsaView",{type:"MsaView",displayName:e,connectedViewId:t.id,connectedFeature:r.toJSON(),drawNodeBubbles:!0,colWidth:10,rowHeight:12,orthologParams:n})}var s$=(0,HP.makeStyles)()({selectField:{width:180},speciesBox:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(130px, 1fr))",maxWidth:700,marginTop:4},species:{marginRight:0}}),a$=(0,UP.observer)(function({handleClose:e,feature:t,model:r}){let{classes:n}=s$(),o=tr(r),[i,s]=(0,$e.useState)(),[a,c]=(0,$e.useState)(9606),[l,u]=(0,$e.useState)("clustalo"),[d,A]=(0,$e.useState)([]),f=(0,$e.useMemo)(()=>Ra(t),[t]),g=Nr({feature:t,view:o}),{selectedTranscript:h,proteinSequence:y}=g,E=g.error??i,x=Ml.map(S=>S.taxId).filter(S=>!d.includes(S));return $e.default.createElement($e.default.Fragment,null,$e.default.createElement(pr,{error:E},$e.default.createElement(ao.Typography,{variant:"body2"},"NCBI's precomputed orthologs, one gene per species, aligned at EBI in seconds rather than the 10+ minutes BLAST takes."),$e.default.createElement("div",null,$e.default.createElement(ct,{variant:"outlined",label:"Query species",className:n.selectField,select:!0,value:a,onChange:S=>{c(Number(S.target.value))},helperText:"the species this gene is from"},Ml.map(S=>$e.default.createElement(ao.MenuItem,{value:S.taxId,key:S.taxId},S.label))),$e.default.createElement(Wi,{className:n.selectField,value:l,onChange:u})),$e.default.createElement(ao.Typography,{variant:"subtitle2",style:{marginTop:8}},"Species to include (those without an ortholog are skipped)"),$e.default.createElement("div",{className:n.speciesBox},Ml.map(S=>$e.default.createElement(ao.FormControlLabel,{className:n.species,key:S.taxId,control:$e.default.createElement(ao.Checkbox,{checked:!d.includes(S.taxId),onChange:w=>{A(w.target.checked?d.filter(I=>I!==S.taxId):[...d,S.taxId])}}),label:S.label}))),$e.default.createElement(gr,{feature:t,...g})),$e.default.createElement(rn,{submitDisabled:!y||x.length<2,onSubmit:()=>{try{h&&(s(void 0),GP({feature:h,view:o,newViewTitle:`Orthologs - ${io(t)} - ${Ta(h)}`,orthologParams:{taxId:a,taxa:x,geneCandidates:f,msaAlgorithm:l,selectedTranscript:h,proteinSequence:y}}),e())}catch(S){console.error(S),s(S)}},onCancel:e}))}),VP=a$;var Lt=p(Q()),Pl=p(Ze()),HA=p(we()),XP=p(U()),ZP=p(W());var eF=p(Tt());So();function gx(e,t="",r=5e3){let n=[e];for(;n.length;){let o=n.pop();for(let[i,s]of Object.entries(o)){if(t.length>r)return jh(t);typeof s=="object"&&s!==null?n.push(s):i==="locationType"&&s==="FileHandleLocation"?t+=`${i}-BlobLocation`:i==="handleId"?t+=`blobId-fh-blob-${s}`:t+=`${i}-${s}`}}return`adp-${jh(t)}`}function jP(e={}){return e.type&&e.adapterId?`${e.type}-${e.adapterId}`:`${gx(e)}`}var $P={};async function c$(e,t,r){let n=r?.type;if(!n)throw new Error(`could not determine adapter type from adapter config snapshot ${JSON.stringify(r)}`);let o=e.getAdapterType(n);if(!o)throw new Error(`unknown data adapter type ${n}`);let i=o.configSchema.create(r,{pluginManager:e}),s=hx.bind(null,e,t),a=await o.getAdapterClass();return{dataAdapter:new a(i,s,e),sessionIds:new Set([t])}}async function hx(e,t,r){let n=jP(r);$P[n]??=c$(e,t,r);let o=await $P[n];return o.sessionIds.add(t),o}async function WP(e,t){return(await hx(e,"msa",t)).dataAdapter}async function YP({config:e,pluginManager:t}){return(await WP(t,e)).getMSAList()}async function qP({config:e,pluginManager:t,msaId:r}){return(await WP(t,e)).getMSA(r)}var zP=p(we());function JP({newViewTitle:e,view:t,feature:r,data:n,querySeqName:o}){(0,zP.getSession)(t).addView("MsaView",{type:"MsaView",displayName:e,treeAreaWidth:200,querySeqName:o,treeWidth:100,drawNodeBubbles:!1,labelsAlignRight:!0,showBranchLen:!1,colWidth:10,rowHeight:12,colorSchemeName:"percent_identity_dynamic",data:n,connectedViewId:t.id,connectedFeature:r.toJSON()})}var KP=p(ss());function UA(e){return(0,KP.readConfObject)(e,["msa","datasets"])}var l$=(0,eF.makeStyles)()({selectedContainer:{marginTop:50}}),u$=(0,ZP.observer)(function({model:e,feature:t,handleClose:r}){let n=(0,HA.getSession)(e),o=tr(e),{classes:i}=l$(),{pluginManager:s}=(0,HA.getEnv)(e),{assemblyNames:a}=o,[c,l]=(0,Lt.useState)(),u=UA(n.jbrowse),[d,A]=(0,Lt.useState)(u?.[0]?.datasetId),f=u?.find(R=>R.datasetId===d),{data:g,isLoading:h,error:y}=ji(f?`${f.datasetId}-msa-list`:null,()=>YP({config:f.adapter,pluginManager:s}),$i),E=Nr({feature:t,view:o,validIds:g}),{selectedId:x,selectedTranscript:S}=E,{data:w,isLoading:I,error:v}=ji(x&&f&&g?`${f.datasetId}-${x}-msa`:null,()=>qP({msaId:x,config:f.adapter,pluginManager:s}),$i),B=y??v??E.error??c;return Lt.default.createElement(Lt.default.Fragment,null,Lt.default.createElement(pr,{error:B},Lt.default.createElement(ct,{select:!0,label:"Select MSA dataset",value:d,onChange:R=>{A(R.target.value)}},u?.map(R=>Lt.default.createElement(XP.MenuItem,{key:R.datasetId,value:R.datasetId},R.name))),f?Lt.default.createElement("div",{className:i.selectedContainer},!h&&I?Lt.default.createElement(Pl.LoadingEllipses,{variant:"h6",message:`Loading MSA for (${x})`}):null,h?Lt.default.createElement(Pl.LoadingEllipses,{variant:"h6",message:`Loading available MSAs for (${f.name})`}):null,g?Lt.default.createElement("div",null,Lt.default.createElement(Pl.SanitizedHTML,{html:f.description}),Lt.default.createElement(gr,{feature:t,...E})):null):null),Lt.default.createElement(rn,{submitDisabled:!S||!w?.length,onSubmit:()=>{try{if(S&&w){let R=`${x}_${a[0]}`;JP({newViewTitle:io(S),view:o,querySeqName:R,feature:S,data:{msa:w.map(D=>`>${D.get("refName")}
88
88
  ${D.get("seq")}`).join(`
89
- `)}}),r()}}catch(R){l(R)}},onCancel:r}))}),tF=u$;var rF=p(Q());function Ga({children:e,value:t,index:r,...n}){return rF.default.createElement("div",{role:"tabpanel",hidden:t!==r,...n},t===r?e:null)}function yx({handleClose:e,feature:t,model:r}){let n=(0,oF.getSession)(r),i=!!UA(n.jbrowse)?.length,[s,a]=(0,wt.useState)("orthologs");return wt.default.createElement(nF.Dialog,{maxWidth:"xl",title:"Launch MSA view",open:!0,onClose:e},wt.default.createElement(qi.Tabs,{value:s,onChange:(c,l)=>{a(l)}},wt.default.createElement(qi.Tab,{label:"Orthologs (fast)",value:"orthologs"}),wt.default.createElement(qi.Tab,{label:"NCBI BLAST query",value:"ncbi_blast"}),i?wt.default.createElement(qi.Tab,{label:"Pre-loaded MSA datasets",value:"preloaded_msa"}):null,wt.default.createElement(qi.Tab,{label:"Manual upload",value:"manual_msa"})),wt.default.createElement(Ga,{value:s,index:"orthologs"},wt.default.createElement(VP,{handleClose:e,feature:t,model:r})),wt.default.createElement(Ga,{value:s,index:"ncbi_blast"},wt.default.createElement(px,{handleClose:e,feature:t,model:r})),i?wt.default.createElement(Ga,{value:s,index:"preloaded_msa"},wt.default.createElement(tF,{model:r,feature:t,handleClose:e})):null,wt.default.createElement(Ga,{value:s,index:"manual_msa"},wt.default.createElement(iP,{model:r,feature:t,handleClose:e})))}function f$(e){return e.name==="LinearBasicDisplay"}var d$=new Set(["gene","mRNA","transcript"]);function A$(e){return e.views(t=>{let r=t.contextMenuItems;return{contextMenuItems(){let n=(0,VA.getContainingTrack)(t),o=(0,VA.getSession)(n),i=u=>{o.queueDialog(d=>[yx,{model:n,handleClose:d,feature:u}])},s=t.contextMenuInfo,a=t.fetchFullFeature,c=t.contextMenuFeature,l=s&&a&&t.isGeneLike?()=>{a(s.item.featureId,s.displayedRegionIndex).then(u=>{u?i(u):o.notify("Could not load feature for MSA view","warning")}).catch(u=>{o.notifyError(`${u}`,u)})}:c&&d$.has(String(c.get("type")))?()=>{i(c)}:void 0;return[...r(),...l?[{label:"Launch MSA view",icon:yL,onClick:l}]:[]]}}})}function xx(e){e.addToExtensionPoint("Core-extendPluggableElement",t=>(f$(t)&&(t.stateModel=A$(t.stateModel)),t))}function Cx(e){e.addToExtensionPoint("LaunchView-MsaView",t=>{let{session:r,data:n,msaFileLocation:o,msaIndexedLocation:i,msaName:s,treeFileLocation:a,querySeqName:c,...l}=t;if(!n&&!o&&!i)throw new Error("No MSA data or file location provided when launching MSA view");return r.addView("MsaView",{type:"MsaView",...l,data:n,...a?{treeFilehandle:{...a,locationType:"UriLocation"}}:{},init:{msaUrl:o?.uri,msaIndexedLocation:i,msaName:s,querySeqName:c}}),t})}var bF=p(Q()),EF=p(sF());var b$=(0,bF.lazy)(()=>Promise.resolve().then(()=>(CF(),xF)));function Ix(e){e.addViewType(()=>new EF.default({name:"MsaView",stateModel:Ly(),ReactComponent:b$}))}var wF="2.8.0";var WA=class extends IF.default{constructor(){super(...arguments);this.name="MsaViewPlugin";this.version=wF;this.rootConfigurationSchema=r=>({msa:(0,Sx.ConfigurationSchema)("MSA",{datasets:vx.types.maybe(vx.types.array((0,Sx.ConfigurationSchema)("MSAEntry",{datasetId:{type:"string",defaultValue:""},description:{type:"string",defaultValue:""},name:{type:"string",defaultValue:""},adapter:r.pluggableConfigSchemaType("adapter")})))})})}install(r){Ix(r),xx(r),Cx(r),Gy(r),Hy(r)}configure(r){(0,SF.isAbstractMenuManager)(r.rootModel)&&r.rootModel.appendToSubMenu(["Add"],{label:"Multiple sequence alignment view",icon:Dw,onClick:n=>{n.addView("MsaView",{})}})}};return YF(E$);})();
89
+ `)}}),r()}}catch(R){l(R)}},onCancel:r}))}),tF=u$;var rF=p(Q());function Ga({children:e,value:t,index:r,...n}){return rF.default.createElement("div",{role:"tabpanel",hidden:t!==r,...n},t===r?e:null)}function yx({handleClose:e,feature:t,model:r}){let n=(0,oF.getSession)(r),i=!!UA(n.jbrowse)?.length,[s,a]=(0,wt.useState)("orthologs");return wt.default.createElement(nF.Dialog,{maxWidth:"xl",title:"Launch MSA view",open:!0,onClose:e},wt.default.createElement(qi.Tabs,{value:s,onChange:(c,l)=>{a(l)}},wt.default.createElement(qi.Tab,{label:"Orthologs (fast)",value:"orthologs"}),wt.default.createElement(qi.Tab,{label:"NCBI BLAST query",value:"ncbi_blast"}),i?wt.default.createElement(qi.Tab,{label:"Pre-loaded MSA datasets",value:"preloaded_msa"}):null,wt.default.createElement(qi.Tab,{label:"Manual upload",value:"manual_msa"})),wt.default.createElement(Ga,{value:s,index:"orthologs"},wt.default.createElement(VP,{handleClose:e,feature:t,model:r})),wt.default.createElement(Ga,{value:s,index:"ncbi_blast"},wt.default.createElement(px,{handleClose:e,feature:t,model:r})),i?wt.default.createElement(Ga,{value:s,index:"preloaded_msa"},wt.default.createElement(tF,{model:r,feature:t,handleClose:e})):null,wt.default.createElement(Ga,{value:s,index:"manual_msa"},wt.default.createElement(iP,{model:r,feature:t,handleClose:e})))}function f$(e){return e.name==="LinearBasicDisplay"}var d$=new Set(["gene","mRNA","transcript"]);function A$(e){return e.views(t=>{let r=t.contextMenuItems;return{contextMenuItems(){let n=(0,VA.getContainingTrack)(t),o=(0,VA.getSession)(n),i=u=>{o.queueDialog(d=>[yx,{model:n,handleClose:d,feature:u}])},s=t.contextMenuInfo,a=t.fetchFullFeature,c=t.contextMenuFeature,l=s&&a&&t.isGeneLike?()=>{a(s.item.featureId,s.displayedRegionIndex).then(u=>{u?i(u):o.notify("Could not load feature for MSA view","warning")}).catch(u=>{o.notifyError(`${u}`,u)})}:c&&d$.has(String(c.get("type")))?()=>{i(c)}:void 0;return[...r(),...l?[{label:"Launch MSA view",icon:yL,onClick:l}]:[]]}}})}function xx(e){e.addToExtensionPoint("Core-extendPluggableElement",t=>(f$(t)&&(t.stateModel=A$(t.stateModel)),t))}function Cx(e){e.addToExtensionPoint("LaunchView-MsaView",t=>{let{session:r,data:n,msaFileLocation:o,msaIndexedLocation:i,msaName:s,treeFileLocation:a,querySeqName:c,...l}=t;if(!n&&!o&&!i)throw new Error("No MSA data or file location provided when launching MSA view");return r.addView("MsaView",{type:"MsaView",...l,data:n,...a?{treeFilehandle:{...a,locationType:"UriLocation"}}:{},init:{msaUrl:o?.uri,msaIndexedLocation:i,msaName:s,querySeqName:c}}),t})}var bF=p(Q()),EF=p(sF());var b$=(0,bF.lazy)(()=>Promise.resolve().then(()=>(CF(),xF)));function Ix(e){e.addViewType(()=>new EF.default({name:"MsaView",stateModel:Ly(),ReactComponent:b$}))}var wF="2.8.1";var WA=class extends IF.default{constructor(){super(...arguments);this.name="MsaViewPlugin";this.version=wF;this.rootConfigurationSchema=r=>({msa:(0,Sx.ConfigurationSchema)("MSA",{datasets:vx.types.maybe(vx.types.array((0,Sx.ConfigurationSchema)("MSAEntry",{datasetId:{type:"string",defaultValue:""},description:{type:"string",defaultValue:""},name:{type:"string",defaultValue:""},adapter:r.pluggableConfigSchemaType("adapter")})))})})}install(r){Ix(r),xx(r),Cx(r),Gy(r),Hy(r)}configure(r){(0,SF.isAbstractMenuManager)(r.rootModel)&&r.rootModel.appendToSubMenu(["Add"],{label:"Multiple sequence alignment view",icon:Dw,onClick:n=>{n.addView("MsaView",{})}})}};return YF(E$);})();
90
90
  /*! Bundled license information:
91
91
 
92
92
  react-is/cjs/react-is.production.js: