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.
- package/dist/MsaViewPanel/model.d.ts +4 -4
- package/dist/jbrowse-plugin-msaview.umd.production.min.js +2 -2
- package/dist/jbrowse-plugin-msaview.umd.production.min.js.map +3 -3
- package/dist/utils/ncbiOrthologs.js +8 -2
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
- package/src/utils/ncbiOrthologs.ts +8 -2
- package/src/version.ts +1 -1
|
@@ -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("
|
|
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("
|
|
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("
|
|
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("
|
|
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.
|
|
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:
|