jbrowse-plugin-mafviewer 1.5.0 → 1.5.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.
@@ -6,7 +6,7 @@ ${W}`}).join(`
6
6
  `)[0]||"";if(n.startsWith("#taf"))return n.includes("run_length_encode_bases:1")}catch{}return!1}async readTaiFile(){let o=(await(0,go.openLocation)(this.getConf("taiLocation")).readFile("utf8")).split(`
7
7
  `).map(l=>l.trim()).filter(l=>!!l),r={},a="",f=0,n=0;for(let l of o){let[u,s,d]=l.split(" "),i=u==="*",m=i?a:u.split(".").at(-1),p=i?n+ +d:+d,x=i?f+ +s:+s,h=Math.floor(p/65536),g=p%65536,T=new ho(h,g);r[m]||(r[m]=[]),r[m].push({chrStart:x,virtualOffset:T}),a=m,f=x,n=p}return r}getFeatures(t,o){let{statusCallback:r=()=>{}}=o||{};return(0,hs.ObservableCreate)(async a=>{try{let{index:f,runLengthEncodeBases:n}=await this.setup(o),l=f[t.refName];if(!l||l.length===0){a.complete();return}let u=B=>B.chrStart,s=cs(l,t.start,u),d=l[Math.max(s-1,0)],i=cs(l,t.end,u),m=l[i+1]??l.at(-1);if(!d||!m){a.complete();return}let p=(0,go.openLocation)(this.getConf("tafGzLocation")),x=d.virtualOffset.blockPosition,h=m.virtualOffset.blockPosition,g=65536,T=h>x?h-x+g:g,w=await(0,Ya.updateStatus)("Downloading alignments",r,()=>p.read(T,x)),c=await Mt(w),A=d.virtualOffset.dataPosition,C=m.virtualOffset.dataPosition,I=h===x&&C>A?C:c.length,R=c.slice(A,I);for(let B of this.parseTafBlocksStreaming(R,n))B.end>t.start&&B.start<t.end&&a.next(new je(B.uniqueId,B.start,B.end,t.refName,B.strand,B.alignments,B.seq));r(""),a.complete()}catch(f){a.error(f)}})}async getSamples(t){let o=this.getConf("nhLocation"),r=o.uri==="/path/to/my.nh"?void 0:await(0,go.openLocation)(o).readFile("utf8");return{samples:lt(this.getConf("samples")),tree:r?Tt(r):void 0}}freeResources(){}};var Ts=S(ze());var ec=(0,Ts.ConfigurationSchema)("BgzipTaffyAdapter",{samples:{type:"frozen",description:"string[] or {id:string,label:string,color?:string}[]",defaultValue:[]},tafGzLocation:{type:"fileLocation",description:"bgzip taffy file",defaultValue:{uri:"/path/to/my.taf",locationType:"UriLocation"}},taiLocation:{type:"fileLocation",description:"taffy index",defaultValue:{uri:"/path/to/my.taf.gz.tai",locationType:"UriLocation"}},nhLocation:{type:"fileLocation",description:"newick tree",defaultValue:{uri:"/path/to/my.nh",locationType:"UriLocation"}}},{explicitlyTyped:!0}),Ss=ec;function qa(e){return e.addAdapterType(()=>new ws.AdapterType({name:"BgzipTaffyAdapter",AdapterClass:To,configSchema:Ss}))}var bs=S(Je());var Rs=S(pr()),ys=S(mr()),Bs=S(xr()),Is=S(ve());function Pt(e,t){return new Promise((o,r)=>{e.subscribe({next:t,error:r,complete:o})})}var So=class extends Rs.BaseFeatureDataAdapter{setupP;async setup(){if(!this.getSubAdapter)throw new Error("no getSubAdapter available");return{adapter:(await this.getSubAdapter({...(0,Is.getSnapshot)(this.config),type:"BigBedAdapter"})).dataAdapter}}async setupPre(){return this.setupP??=this.setup().catch(t=>{throw this.setupP=void 0,t}),this.setupP}async getRefNames(){let{adapter:t}=await this.setup();return t.getRefNames()}async getHeader(){let{adapter:t}=await this.setup();return t.getHeader()}getFeatures(t,o){let r=/ +/;return(0,Bs.ObservableCreate)(async a=>{let{adapter:f}=await this.setupPre();await Pt(f.getFeatures(t,o),n=>{let u=n.get("mafBlock").split(";"),s={},d;for(let i of u)if(i.startsWith("s")){let m=i.split(r),p=m[6],x=m[1];d===void 0&&(d=p);let{assemblyName:h,chr:g}=cr(x);s[h]={chr:g,start:+m[2],srcSize:+m[3],strand:m[4]==="+"?1:-1,unknown:+m[5],seq:p}}a.next(new je(n.id(),n.get("start"),n.get("end"),n.get("refName"),0,s,d??""))}),a.complete()},o?.stopToken)}async getSamples(t){let o=this.getConf("nhLocation"),r=o.uri==="/path/to/my.nh"?void 0:await(0,ys.openLocation)(o).readFile("utf8");return{samples:lt(this.getConf("samples")),tree:r?Tt(r):void 0}}freeResources(){}};var Os=S(ze());var tc=(0,Os.ConfigurationSchema)("BigMafAdapter",{samples:{type:"frozen",description:"string[] or {id:string,label:string,color?:string}[]",defaultValue:[]},bigBedLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bb",locationType:"UriLocation"}},nhLocation:{type:"fileLocation",description:"newick tree",defaultValue:{uri:"/path/to/my.nh",locationType:"UriLocation"}}},{explicitlyTyped:!0}),Es=tc;function ja(e){return e.addAdapterType(()=>new bs.AdapterType({name:"BigMafAdapter",AdapterClass:So,configSchema:Es}))}var Wi=S(Je());var Ie=S(D()),Zu=S(Xe()),et=S(se()),ei=S($e()),ti=S(xe());var Ar=S(D()),Ms=S(st()),oc=(0,Ms.makeStyles)()({cursor:{pointerEvents:"none"}}),rc=({width:e,height:t,scrollTop:o,mouseX:r,mouseY:a})=>{let{classes:f}=oc();return Ar.default.createElement("svg",{className:f.cursor,width:e,height:t,style:{position:"absolute",top:o}},Ar.default.createElement("line",{x1:0,x2:e,y1:a,y2:a,stroke:"black"}),Ar.default.createElement("line",{x1:r,x2:r,y1:0,y2:t,stroke:"black"}))},Ps=rc;var Bf=S(D()),Ou=S(Xe());var wf=S(Re(),1);var b=S(D(),1);function hr(){return typeof window<"u"}function dt(e){return za(e)?(e.nodeName||"").toLowerCase():"#document"}function de(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Pe(e){var t;return(t=(za(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function za(e){return hr()?e instanceof Node||e instanceof de(e).Node:!1}function fe(e){return hr()?e instanceof Element||e instanceof de(e).Element:!1}function ce(e){return hr()?e instanceof HTMLElement||e instanceof de(e).HTMLElement:!1}function wo(e){return!hr()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof de(e).ShadowRoot}var ac=new Set(["inline","contents"]);function Nt(e){let{overflow:t,overflowX:o,overflowY:r,display:a}=Ae(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+o)&&!ac.has(a)}var fc=new Set(["table","td","th"]);function Ns(e){return fc.has(dt(e))}var nc=[":popover-open",":modal"];function Co(e){return nc.some(t=>{try{return e.matches(t)}catch{return!1}})}var lc=["transform","translate","scale","rotate","perspective"],sc=["transform","translate","scale","rotate","perspective","filter"],dc=["paint","layout","strict","content"];function gr(e){let t=Ro(),o=fe(e)?Ae(e):e;return lc.some(r=>o[r]?o[r]!=="none":!1)||(o.containerType?o.containerType!=="normal":!1)||!t&&(o.backdropFilter?o.backdropFilter!=="none":!1)||!t&&(o.filter?o.filter!=="none":!1)||sc.some(r=>(o.willChange||"").includes(r))||dc.some(r=>(o.contain||"").includes(r))}function Hs(e){let t=Me(e);for(;ce(t)&&!ut(t);){if(gr(t))return t;if(Co(t))return null;t=Me(t)}return null}function Ro(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}var uc=new Set(["html","body","#document"]);function ut(e){return uc.has(dt(e))}function Ae(e){return de(e).getComputedStyle(e)}function yo(e){return fe(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Me(e){if(dt(e)==="html")return e;let t=e.assignedSlot||e.parentNode||wo(e)&&e.host||Pe(e);return wo(t)?t.host:t}function Ws(e){let t=Me(e);return ut(t)?e.ownerDocument?e.ownerDocument.body:e.body:ce(t)&&Nt(t)?t:Ws(t)}function Lt(e,t,o){var r;t===void 0&&(t=[]),o===void 0&&(o=!0);let a=Ws(e),f=a===((r=e.ownerDocument)==null?void 0:r.body),n=de(a);if(f){let l=Tr(n);return t.concat(n,n.visualViewport||[],Nt(a)?a:[],l&&o?Lt(l):[])}return t.concat(a,Lt(a,[],o))}function Tr(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}var Io=S(D(),1),Js=S(D(),1);var Sr=Math.min,St=Math.max,Bo=Math.round;var Qe=e=>({x:e,y:e});function Xa(e,t){return typeof e=="function"?e(t):e}function wr(e){return e.split("-")[0]}function $a(e){return e.split("-")[1]}function _s(e){return e==="x"?"y":"x"}function Gs(e){return e==="y"?"height":"width"}var ic=new Set(["top","bottom"]);function Cr(e){return ic.has(wr(e))?"y":"x"}function Us(e){return _s(Cr(e))}function pc(e){return{top:0,right:0,bottom:0,left:0,...e}}function Vs(e){return typeof e!="number"?pc(e):{top:e,right:e,bottom:e,left:e}}function wt(e){let{x:t,y:o,width:r,height:a}=e;return{width:r,height:a,top:o,left:t,right:t+r,bottom:o+a,x:t,y:o}}function Ks(e,t){if(!e||!t)return!1;let o=t.getRootNode==null?void 0:t.getRootNode();if(e.contains(t))return!0;if(o&&wo(o)){let r=t;for(;r;){if(e===r)return!0;r=r.parentNode||r.host}}return!1}function Ys(e){return"composedPath"in e?e.composedPath()[0]:e.target}function qs(e,t){let o=["mouse","pen"];return t||o.push("",void 0),o.includes(e)}var mc=typeof document<"u",xc=function(){},Oo=mc?Js.useLayoutEffect:xc,cc={...Io};var Ac=cc.useInsertionEffect,hc=Ac||(e=>e());function Rr(e){let t=Io.useRef(()=>{});return hc(()=>{t.current=e}),Io.useCallback(function(){for(var o=arguments.length,r=new Array(o),a=0;a<o;a++)r[a]=arguments[a];return t.current==null?void 0:t.current(...r)},[])}var rf=S(Re(),1);var wd=S(yr(),1);function zs(e,t,o){let{reference:r,floating:a}=e,f=Cr(t),n=Us(t),l=Gs(n),u=wr(t),s=f==="y",d=r.x+r.width/2-a.width/2,i=r.y+r.height/2-a.height/2,m=r[l]/2-a[l]/2,p;switch(u){case"top":p={x:d,y:r.y-a.height};break;case"bottom":p={x:d,y:r.y+r.height};break;case"right":p={x:r.x+r.width,y:i};break;case"left":p={x:r.x-a.width,y:i};break;default:p={x:r.x,y:r.y}}switch($a(t)){case"start":p[n]-=m*(o&&s?-1:1);break;case"end":p[n]+=m*(o&&s?-1:1);break}return p}async function Xs(e,t){var o;t===void 0&&(t={});let{x:r,y:a,platform:f,rects:n,elements:l,strategy:u}=e,{boundary:s="clippingAncestors",rootBoundary:d="viewport",elementContext:i="floating",altBoundary:m=!1,padding:p=0}=Xa(t,e),x=Vs(p),g=l[m?i==="floating"?"reference":"floating":i],T=wt(await f.getClippingRect({element:(o=await(f.isElement==null?void 0:f.isElement(g)))==null||o?g:g.contextElement||await(f.getDocumentElement==null?void 0:f.getDocumentElement(l.floating)),boundary:s,rootBoundary:d,strategy:u})),w=i==="floating"?{x:r,y:a,width:n.floating.width,height:n.floating.height}:n.reference,c=await(f.getOffsetParent==null?void 0:f.getOffsetParent(l.floating)),A=await(f.isElement==null?void 0:f.isElement(c))?await(f.getScale==null?void 0:f.getScale(c))||{x:1,y:1}:{x:1,y:1},C=wt(f.convertOffsetParentRelativeRectToViewportRelativeRect?await f.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:w,offsetParent:c,strategy:u}):w);return{top:(T.top-C.top+x.top)/A.y,bottom:(C.bottom-T.bottom+x.bottom)/A.y,left:(T.left-C.left+x.left)/A.x,right:(C.right-T.right+x.right)/A.x}}var $s=async(e,t,o)=>{let{placement:r="bottom",strategy:a="absolute",middleware:f=[],platform:n}=o,l=f.filter(Boolean),u=await(n.isRTL==null?void 0:n.isRTL(t)),s=await n.getElementRects({reference:e,floating:t,strategy:a}),{x:d,y:i}=zs(s,r,u),m=r,p={},x=0;for(let g=0;g<l.length;g++){var h;let{name:T,fn:w}=l[g],{x:c,y:A,data:C,reset:I}=await w({x:d,y:i,initialPlacement:r,placement:m,strategy:a,middlewareData:p,rects:s,platform:{...n,detectOverflow:(h=n.detectOverflow)!=null?h:Xs},elements:{reference:e,floating:t}});d=c??d,i=A??i,p={...p,[T]:{...p[T],...C}},I&&x<=50&&(x++,typeof I=="object"&&(I.placement&&(m=I.placement),I.rects&&(s=I.rects===!0?await n.getElementRects({reference:e,floating:t,strategy:a}):I.rects),{x:d,y:i}=zs(s,m,u)),g=-1)}return{x:d,y:i,placement:m,strategy:a,middlewareData:p}};var gc=new Set(["left","top"]);async function Tc(e,t){let{placement:o,platform:r,elements:a}=e,f=await(r.isRTL==null?void 0:r.isRTL(a.floating)),n=wr(o),l=$a(o),u=Cr(o)==="y",s=gc.has(n)?-1:1,d=f&&u?-1:1,i=Xa(t,e),{mainAxis:m,crossAxis:p,alignmentAxis:x}=typeof i=="number"?{mainAxis:i,crossAxis:0,alignmentAxis:null}:{mainAxis:i.mainAxis||0,crossAxis:i.crossAxis||0,alignmentAxis:i.alignmentAxis};return l&&typeof x=="number"&&(p=l==="end"?x*-1:x),u?{x:p*d,y:m*s}:{x:m*s,y:p*d}}var Zs=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var o,r;let{x:a,y:f,placement:n,middlewareData:l}=t,u=await Tc(t,e);return n===((o=l.offset)==null?void 0:o.placement)&&(r=l.arrow)!=null&&r.alignmentOffset?{}:{x:a+u.x,y:f+u.y,data:{...u,placement:n}}}}};function rd(e){let t=Ae(e),o=parseFloat(t.width)||0,r=parseFloat(t.height)||0,a=ce(e),f=a?e.offsetWidth:o,n=a?e.offsetHeight:r,l=Bo(o)!==f||Bo(r)!==n;return l&&(o=f,r=n),{width:o,height:r,$:l}}function ad(e){return fe(e)?e:e.contextElement}function Ht(e){let t=ad(e);if(!ce(t))return Qe(1);let o=t.getBoundingClientRect(),{width:r,height:a,$:f}=rd(t),n=(f?Bo(o.width):o.width)/r,l=(f?Bo(o.height):o.height)/a;return(!n||!Number.isFinite(n))&&(n=1),(!l||!Number.isFinite(l))&&(l=1),{x:n,y:l}}var Sc=Qe(0);function fd(e){let t=de(e);return!Ro()||!t.visualViewport?Sc:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function wc(e,t,o){return t===void 0&&(t=!1),!o||t&&o!==de(e)?!1:t}function Eo(e,t,o,r){t===void 0&&(t=!1),o===void 0&&(o=!1);let a=e.getBoundingClientRect(),f=ad(e),n=Qe(1);t&&(r?fe(r)&&(n=Ht(r)):n=Ht(e));let l=wc(f,o,r)?fd(f):Qe(0),u=(a.left+l.x)/n.x,s=(a.top+l.y)/n.y,d=a.width/n.x,i=a.height/n.y;if(f){let m=de(f),p=r&&fe(r)?de(r):r,x=m,h=Tr(x);for(;h&&r&&p!==x;){let g=Ht(h),T=h.getBoundingClientRect(),w=Ae(h),c=T.left+(h.clientLeft+parseFloat(w.paddingLeft))*g.x,A=T.top+(h.clientTop+parseFloat(w.paddingTop))*g.y;u*=g.x,s*=g.y,d*=g.x,i*=g.y,u+=c,s+=A,x=de(h),h=Tr(x)}}return wt({width:d,height:i,x:u,y:s})}function Br(e,t){let o=yo(e).scrollLeft;return t?t.left+o:Eo(Pe(e)).left+o}function nd(e,t){let o=e.getBoundingClientRect(),r=o.left+t.scrollLeft-Br(e,o),a=o.top+t.scrollTop;return{x:r,y:a}}function Cc(e){let{elements:t,rect:o,offsetParent:r,strategy:a}=e,f=a==="fixed",n=Pe(r),l=t?Co(t.floating):!1;if(r===n||l&&f)return o;let u={scrollLeft:0,scrollTop:0},s=Qe(1),d=Qe(0),i=ce(r);if((i||!i&&!f)&&((dt(r)!=="body"||Nt(n))&&(u=yo(r)),ce(r))){let p=Eo(r);s=Ht(r),d.x=p.x+r.clientLeft,d.y=p.y+r.clientTop}let m=n&&!i&&!f?nd(n,u):Qe(0);return{width:o.width*s.x,height:o.height*s.y,x:o.x*s.x-u.scrollLeft*s.x+d.x+m.x,y:o.y*s.y-u.scrollTop*s.y+d.y+m.y}}function Rc(e){return Array.from(e.getClientRects())}function yc(e){let t=Pe(e),o=yo(e),r=e.ownerDocument.body,a=St(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),f=St(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),n=-o.scrollLeft+Br(e),l=-o.scrollTop;return Ae(r).direction==="rtl"&&(n+=St(t.clientWidth,r.clientWidth)-a),{width:a,height:f,x:n,y:l}}var ed=25;function Bc(e,t){let o=de(e),r=Pe(e),a=o.visualViewport,f=r.clientWidth,n=r.clientHeight,l=0,u=0;if(a){f=a.width,n=a.height;let d=Ro();(!d||d&&t==="fixed")&&(l=a.offsetLeft,u=a.offsetTop)}let s=Br(r);if(s<=0){let d=r.ownerDocument,i=d.body,m=getComputedStyle(i),p=d.compatMode==="CSS1Compat"&&parseFloat(m.marginLeft)+parseFloat(m.marginRight)||0,x=Math.abs(r.clientWidth-i.clientWidth-p);x<=ed&&(f-=x)}else s<=ed&&(f+=s);return{width:f,height:n,x:l,y:u}}var Ic=new Set(["absolute","fixed"]);function Oc(e,t){let o=Eo(e,!0,t==="fixed"),r=o.top+e.clientTop,a=o.left+e.clientLeft,f=ce(e)?Ht(e):Qe(1),n=e.clientWidth*f.x,l=e.clientHeight*f.y,u=a*f.x,s=r*f.y;return{width:n,height:l,x:u,y:s}}function td(e,t,o){let r;if(t==="viewport")r=Bc(e,o);else if(t==="document")r=yc(Pe(e));else if(fe(t))r=Oc(t,o);else{let a=fd(e);r={x:t.x-a.x,y:t.y-a.y,width:t.width,height:t.height}}return wt(r)}function ld(e,t){let o=Me(e);return o===t||!fe(o)||ut(o)?!1:Ae(o).position==="fixed"||ld(o,t)}function Ec(e,t){let o=t.get(e);if(o)return o;let r=Lt(e,[],!1).filter(l=>fe(l)&&dt(l)!=="body"),a=null,f=Ae(e).position==="fixed",n=f?Me(e):e;for(;fe(n)&&!ut(n);){let l=Ae(n),u=gr(n);!u&&l.position==="fixed"&&(a=null),(f?!u&&!a:!u&&l.position==="static"&&!!a&&Ic.has(a.position)||Nt(n)&&!u&&ld(e,n))?r=r.filter(d=>d!==n):a=l,n=Me(n)}return t.set(e,r),r}function bc(e){let{element:t,boundary:o,rootBoundary:r,strategy:a}=e,n=[...o==="clippingAncestors"?Co(t)?[]:Ec(t,this._c):[].concat(o),r],l=n[0],u=n.reduce((s,d)=>{let i=td(t,d,a);return s.top=St(i.top,s.top),s.right=Sr(i.right,s.right),s.bottom=Sr(i.bottom,s.bottom),s.left=St(i.left,s.left),s},td(t,l,a));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}}function vc(e){let{width:t,height:o}=rd(e);return{width:t,height:o}}function Qc(e,t,o){let r=ce(t),a=Pe(t),f=o==="fixed",n=Eo(e,!0,f,t),l={scrollLeft:0,scrollTop:0},u=Qe(0);function s(){u.x=Br(a)}if(r||!r&&!f)if((dt(t)!=="body"||Nt(a))&&(l=yo(t)),r){let p=Eo(t,!0,f,t);u.x=p.x+t.clientLeft,u.y=p.y+t.clientTop}else a&&s();f&&!r&&a&&s();let d=a&&!r&&!f?nd(a,l):Qe(0),i=n.left+l.scrollLeft-u.x-d.x,m=n.top+l.scrollTop-u.y-d.y;return{x:i,y:m,width:n.width,height:n.height}}function Za(e){return Ae(e).position==="static"}function od(e,t){if(!ce(e)||Ae(e).position==="fixed")return null;if(t)return t(e);let o=e.offsetParent;return Pe(e)===o&&(o=o.ownerDocument.body),o}function sd(e,t){let o=de(e);if(Co(e))return o;if(!ce(e)){let a=Me(e);for(;a&&!ut(a);){if(fe(a)&&!Za(a))return a;a=Me(a)}return o}let r=od(e,t);for(;r&&Ns(r)&&Za(r);)r=od(r,t);return r&&ut(r)&&Za(r)&&!gr(r)?o:r||Hs(e)||o}var Fc=async function(e){let t=this.getOffsetParent||sd,o=this.getDimensions,r=await o(e.floating);return{reference:Qc(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Dc(e){return Ae(e).direction==="rtl"}var dd={convertOffsetParentRelativeRectToViewportRelativeRect:Cc,getDocumentElement:Pe,getClippingRect:bc,getOffsetParent:sd,getElementRects:Fc,getClientRects:Rc,getDimensions:vc,getScale:Ht,isElement:fe,isRTL:Dc};var ud=Zs;var ef=(e,t,o)=>{let r=new Map,a={platform:dd,...o},f={...a.platform,_c:r};return $s(e,t,{...a,platform:f})};var $=S(D(),1),pd=S(D(),1),md=S(yr(),1),kc=typeof document<"u",Mc=function(){},Ir=kc?pd.useLayoutEffect:Mc;function Or(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 o,r,a;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(o=e.length,o!==t.length)return!1;for(r=o;r--!==0;)if(!Or(e[r],t[r]))return!1;return!0}if(a=Object.keys(e),o=a.length,o!==Object.keys(t).length)return!1;for(r=o;r--!==0;)if(!{}.hasOwnProperty.call(t,a[r]))return!1;for(r=o;r--!==0;){let f=a[r];if(!(f==="_owner"&&e.$$typeof)&&!Or(e[f],t[f]))return!1}return!0}return e!==e&&t!==t}function xd(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function id(e,t){let o=xd(e);return Math.round(t*o)/o}function tf(e){let t=$.useRef(e);return Ir(()=>{t.current=e}),t}function cd(e){e===void 0&&(e={});let{placement:t="bottom",strategy:o="absolute",middleware:r=[],platform:a,elements:{reference:f,floating:n}={},transform:l=!0,whileElementsMounted:u,open:s}=e,[d,i]=$.useState({x:0,y:0,strategy:o,placement:t,middlewareData:{},isPositioned:!1}),[m,p]=$.useState(r);Or(m,r)||p(r);let[x,h]=$.useState(null),[g,T]=$.useState(null),w=$.useCallback(_=>{_!==I.current&&(I.current=_,h(_))},[]),c=$.useCallback(_=>{_!==R.current&&(R.current=_,T(_))},[]),A=f||x,C=n||g,I=$.useRef(null),R=$.useRef(null),B=$.useRef(d),E=u!=null,y=tf(u),O=tf(a),v=tf(s),W=$.useCallback(()=>{if(!I.current||!R.current)return;let _={placement:t,strategy:o,middleware:m};O.current&&(_.platform=O.current),ef(I.current,R.current,_).then(G=>{let j={...G,isPositioned:v.current!==!1};N.current&&!Or(B.current,j)&&(B.current=j,md.flushSync(()=>{i(j)}))})},[m,t,o,O,v]);Ir(()=>{s===!1&&B.current.isPositioned&&(B.current.isPositioned=!1,i(_=>({..._,isPositioned:!1})))},[s]);let N=$.useRef(!1);Ir(()=>(N.current=!0,()=>{N.current=!1}),[]),Ir(()=>{if(A&&(I.current=A),C&&(R.current=C),A&&C){if(y.current)return y.current(A,C,W);W()}},[A,C,W,y,E]);let M=$.useMemo(()=>({reference:I,floating:R,setReference:w,setFloating:c}),[w,c]),P=$.useMemo(()=>({reference:A,floating:C}),[A,C]),V=$.useMemo(()=>{let _={position:o,left:0,top:0};if(!P.floating)return _;let G=id(P.floating,d.x),j=id(P.floating,d.y);return l?{..._,transform:"translate("+G+"px, "+j+"px)",...xd(P.floating)>=1.5&&{willChange:"transform"}}:{position:o,left:G,top:j}},[o,l,P.floating,d.x,d.y]);return $.useMemo(()=>({...d,update:W,refs:M,elements:P,floatingStyles:V}),[d,W,M,P,V])}var Er=(e,t)=>({...ud(e),options:[e,t]});var Pc="data-floating-ui-focusable",Ad="active",hd="selected",Lc="ArrowLeft",Nc="ArrowRight",Hc="ArrowUp",Wc="ArrowDown";var _c=[Lc,Nc],Gc=[Hc,Wc],Kw=[..._c,...Gc];var Uc={...b},gd=!1,Vc=0,Td=()=>"floating-ui-"+Math.random().toString(36).slice(2,6)+Vc++;function Jc(){let[e,t]=b.useState(()=>gd?Td():void 0);return Oo(()=>{e==null&&t(Td())},[]),b.useEffect(()=>{gd=!0},[]),e}var Kc=Uc.useId,Yc=Kc||Jc;function qc(){let e=new Map;return{emit(t,o){var r;(r=e.get(t))==null||r.forEach(a=>a(o))},on(t,o){e.has(t)||e.set(t,new Set),e.get(t).add(o)},off(t,o){var r;(r=e.get(t))==null||r.delete(o)}}}var jc=b.createContext(null),zc=b.createContext(null),Xc=()=>{var e;return((e=b.useContext(jc))==null?void 0:e.id)||null},$c=()=>b.useContext(zc);function Zc(e,t){let o=null,r=null,a=!1;return{contextElement:e||void 0,getBoundingClientRect(){var f;let n=e?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},l=t.axis==="x"||t.axis==="both",u=t.axis==="y"||t.axis==="both",s=["mouseenter","mousemove"].includes(((f=t.dataRef.current.openEvent)==null?void 0:f.type)||"")&&t.pointerType!=="touch",d=n.width,i=n.height,m=n.x,p=n.y;return o==null&&t.x&&l&&(o=n.x-t.x),r==null&&t.y&&u&&(r=n.y-t.y),m-=o||0,p-=r||0,d=0,i=0,!a||s?(d=t.axis==="y"?n.width:0,i=t.axis==="x"?n.height:0,m=l&&t.x!=null?t.x:m,p=u&&t.y!=null?t.y:p):a&&!s&&(i=t.axis==="x"?n.height:i,d=t.axis==="y"?n.width:d),a=!0,{width:d,height:i,x:m,y:p,top:p,right:m+d,bottom:p+i,left:m}}}}function Sd(e){return e!=null&&e.clientX!=null}function Cd(e,t){t===void 0&&(t={});let{open:o,dataRef:r,elements:{floating:a,domReference:f},refs:n}=e,{enabled:l=!0,axis:u="both",x:s=null,y:d=null}=t,i=b.useRef(!1),m=b.useRef(null),[p,x]=b.useState(),[h,g]=b.useState([]),T=Rr((I,R)=>{i.current||r.current.openEvent&&!Sd(r.current.openEvent)||n.setPositionReference(Zc(f,{x:I,y:R,axis:u,dataRef:r,pointerType:p}))}),w=Rr(I=>{s!=null||d!=null||(o?m.current||g([]):T(I.clientX,I.clientY))}),c=qs(p)?a:o,A=b.useCallback(()=>{if(!c||!l||s!=null||d!=null)return;let I=de(a);function R(B){let E=Ys(B);Ks(a,E)?(I.removeEventListener("mousemove",R),m.current=null):T(B.clientX,B.clientY)}if(!r.current.openEvent||Sd(r.current.openEvent)){I.addEventListener("mousemove",R);let B=()=>{I.removeEventListener("mousemove",R),m.current=null};return m.current=B,B}n.setPositionReference(f)},[c,l,s,d,a,r,n,f,T]);b.useEffect(()=>A(),[A,h]),b.useEffect(()=>{l&&!a&&(i.current=!1)},[l,a]),b.useEffect(()=>{!l&&o&&(i.current=!0)},[l,o]),Oo(()=>{l&&(s!=null||d!=null)&&(i.current=!1,T(s,d))},[l,s,d,T]);let C=b.useMemo(()=>{function I(R){let{pointerType:B}=R;x(B)}return{onPointerDown:I,onPointerEnter:I,onMouseMove:w,onMouseEnter:w}},[w]);return b.useMemo(()=>l?{reference:C}:{},[l,C])}function eA(e){let{open:t=!1,onOpenChange:o,elements:r}=e,a=Yc(),f=b.useRef({}),[n]=b.useState(()=>qc()),l=Xc()!=null,[u,s]=b.useState(r.reference),d=Rr((p,x,h)=>{f.current.openEvent=p?x:void 0,n.emit("openchange",{open:p,event:x,reason:h,nested:l}),o?.(p,x,h)}),i=b.useMemo(()=>({setPositionReference:s}),[]),m=b.useMemo(()=>({reference:u||r.reference||null,floating:r.floating||null,domReference:r.reference}),[u,r.reference,r.floating]);return b.useMemo(()=>({dataRef:f,open:t,onOpenChange:d,elements:m,events:n,floatingId:a,refs:i}),[t,d,m,n,a,i])}function Rd(e){e===void 0&&(e={});let{nodeId:t}=e,o=eA({...e,elements:{reference:null,floating:null,...e.elements}}),r=e.rootContext||o,a=r.elements,[f,n]=b.useState(null),[l,u]=b.useState(null),d=a?.domReference||f,i=b.useRef(null),m=$c();Oo(()=>{d&&(i.current=d)},[d]);let p=cd({...e,elements:{...a,...l&&{reference:l}}}),x=b.useCallback(c=>{let A=fe(c)?{getBoundingClientRect:()=>c.getBoundingClientRect(),getClientRects:()=>c.getClientRects(),contextElement:c}:c;u(A),p.refs.setReference(A)},[p.refs]),h=b.useCallback(c=>{(fe(c)||c===null)&&(i.current=c,n(c)),(fe(p.refs.reference.current)||p.refs.reference.current===null||c!==null&&!fe(c))&&p.refs.setReference(c)},[p.refs]),g=b.useMemo(()=>({...p.refs,setReference:h,setPositionReference:x,domReference:i}),[p.refs,h,x]),T=b.useMemo(()=>({...p.elements,domReference:d}),[p.elements,d]),w=b.useMemo(()=>({...p,...r,refs:g,elements:T,nodeId:t}),[p,g,T,t,r]);return Oo(()=>{r.dataRef.current.floatingContext=w;let c=m?.nodesRef.current.find(A=>A.id===t);c&&(c.context=w)}),b.useMemo(()=>({...p,context:w,refs:g,elements:T}),[p,g,T,w])}function of(e,t,o){let r=new Map,a=o==="item",f=e;if(a&&e){let{[Ad]:n,[hd]:l,...u}=e;f=u}return{...o==="floating"&&{tabIndex:-1,[Pc]:""},...f,...t.map(n=>{let l=n?n[o]:null;return typeof l=="function"?e?l(e):null:l}).concat(e).reduce((n,l)=>(l&&Object.entries(l).forEach(u=>{let[s,d]=u;if(!(a&&[Ad,hd].includes(s)))if(s.indexOf("on")===0){if(r.has(s)||r.set(s,[]),typeof d=="function"){var i;(i=r.get(s))==null||i.push(d),n[s]=function(){for(var m,p=arguments.length,x=new Array(p),h=0;h<p;h++)x[h]=arguments[h];return(m=r.get(s))==null?void 0:m.map(g=>g(...x)).find(g=>g!==void 0)}}}else n[s]=d}),n),{})}}function yd(e){e===void 0&&(e=[]);let t=e.map(l=>l?.reference),o=e.map(l=>l?.floating),r=e.map(l=>l?.item),a=b.useCallback(l=>of(l,e,"reference"),t),f=b.useCallback(l=>of(l,e,"floating"),o),n=b.useCallback(l=>of(l,e,"item"),r);return b.useMemo(()=>({getReferenceProps:a,getFloatingProps:f,getItemProps:n}),[a,f,n])}var Xt=S($e(),1);var Be=S(D()),Lo=S(D());var tA=!1;function oA(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}function rA(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),e.nonce!==void 0&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}var Bd=(function(){function e(o){var r=this;this._insertTag=function(a){var f;r.tags.length===0?r.insertionPoint?f=r.insertionPoint.nextSibling:r.prepend?f=r.container.firstChild:f=r.before:f=r.tags[r.tags.length-1].nextSibling,r.container.insertBefore(a,f),r.tags.push(a)},this.isSpeedy=o.speedy===void 0?!tA:o.speedy,this.tags=[],this.ctr=0,this.nonce=o.nonce,this.key=o.key,this.container=o.container,this.prepend=o.prepend,this.insertionPoint=o.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(r){r.forEach(this._insertTag)},t.insert=function(r){this.ctr%(this.isSpeedy?65e3:1)===0&&this._insertTag(rA(this));var a=this.tags[this.tags.length-1];if(this.isSpeedy){var f=oA(a);try{f.insertRule(r,f.cssRules.length)}catch{}}else a.appendChild(document.createTextNode(r));this.ctr++},t.flush=function(){this.tags.forEach(function(r){var a;return(a=r.parentNode)==null?void 0:a.removeChild(r)}),this.tags=[],this.ctr=0},e})();var ne="-ms-",bo="-moz-",L="-webkit-",br="comm",Wt="rule",_t="decl";var Id="@import";var vr="@keyframes";var Od="@layer";var Ed=Math.abs,Ct=String.fromCharCode,bd=Object.assign;function vd(e,t){return z(e,0)^45?(((t<<2^z(e,0))<<2^z(e,1))<<2^z(e,2))<<2^z(e,3):0}function Qr(e){return e.trim()}function af(e,t){return(e=t.exec(e))?e[0]:e}function k(e,t,o){return e.replace(t,o)}function vo(e,t){return e.indexOf(t)}function z(e,t){return e.charCodeAt(t)|0}function it(e,t,o){return e.slice(t,o)}function ie(e){return e.length}function Gt(e){return e.length}function Ut(e,t){return t.push(e),e}function ff(e,t){return e.map(t).join("")}var Fr=1,Vt=1,Qd=0,pe=0,Z=0,Kt="";function Qo(e,t,o,r,a,f,n){return{value:e,root:t,parent:o,type:r,props:a,children:f,line:Fr,column:Vt,length:n,return:""}}function Yt(e,t){return bd(Qo("",null,null,"",null,null,0),e,{length:-e.length},t)}function Fd(){return Z}function Dd(){return Z=pe>0?z(Kt,--pe):0,Vt--,Z===10&&(Vt=1,Fr--),Z}function me(){return Z=pe<Qd?z(Kt,pe++):0,Vt++,Z===10&&(Vt=1,Fr++),Z}function ye(){return z(Kt,pe)}function Fo(){return pe}function qt(e,t){return it(Kt,e,t)}function Jt(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function Dr(e){return Fr=Vt=1,Qd=ie(Kt=e),pe=0,[]}function kr(e){return Kt="",e}function jt(e){return Qr(qt(pe-1,nf(e===91?e+2:e===40?e+1:e)))}function kd(e){for(;(Z=ye())&&Z<33;)me();return Jt(e)>2||Jt(Z)>3?"":" "}function Md(e,t){for(;--t&&me()&&!(Z<48||Z>102||Z>57&&Z<65||Z>70&&Z<97););return qt(e,Fo()+(t<6&&ye()==32&&me()==32))}function nf(e){for(;me();)switch(Z){case e:return pe;case 34:case 39:e!==34&&e!==39&&nf(Z);break;case 40:e===41&&nf(e);break;case 92:me();break}return pe}function Pd(e,t){for(;me()&&e+Z!==57;)if(e+Z===84&&ye()===47)break;return"/*"+qt(t,pe-1)+"*"+Ct(e===47?e:me())}function Ld(e){for(;!Jt(ye());)me();return qt(e,pe)}function Wd(e){return kr(Mr("",null,null,null,[""],e=Dr(e),0,[0],e))}function Mr(e,t,o,r,a,f,n,l,u){for(var s=0,d=0,i=n,m=0,p=0,x=0,h=1,g=1,T=1,w=0,c="",A=a,C=f,I=r,R=c;g;)switch(x=w,w=me()){case 40:if(x!=108&&z(R,i-1)==58){vo(R+=k(jt(w),"&","&\f"),"&\f")!=-1&&(T=-1);break}case 34:case 39:case 91:R+=jt(w);break;case 9:case 10:case 13:case 32:R+=kd(x);break;case 92:R+=Md(Fo()-1,7);continue;case 47:switch(ye()){case 42:case 47:Ut(aA(Pd(me(),Fo()),t,o),u);break;default:R+="/"}break;case 123*h:l[s++]=ie(R)*T;case 125*h:case 59:case 0:switch(w){case 0:case 125:g=0;case 59+d:T==-1&&(R=k(R,/\f/g,"")),p>0&&ie(R)-i&&Ut(p>32?Hd(R+";",r,o,i-1):Hd(k(R," ","")+";",r,o,i-2),u);break;case 59:R+=";";default:if(Ut(I=Nd(R,t,o,s,d,a,l,c,A=[],C=[],i),f),w===123)if(d===0)Mr(R,t,I,I,A,f,i,l,C);else switch(m===99&&z(R,3)===110?100:m){case 100:case 108:case 109:case 115:Mr(e,I,I,r&&Ut(Nd(e,I,I,0,0,a,l,c,a,A=[],i),C),a,C,i,l,r?A:C);break;default:Mr(R,I,I,I,[""],C,0,l,C)}}s=d=p=0,h=T=1,c=R="",i=n;break;case 58:i=1+ie(R),p=x;default:if(h<1){if(w==123)--h;else if(w==125&&h++==0&&Dd()==125)continue}switch(R+=Ct(w),w*h){case 38:T=d>0?1:(R+="\f",-1);break;case 44:l[s++]=(ie(R)-1)*T,T=1;break;case 64:ye()===45&&(R+=jt(me())),m=ye(),d=i=ie(c=R+=Ld(Fo())),w++;break;case 45:x===45&&ie(R)==2&&(h=0)}}return f}function Nd(e,t,o,r,a,f,n,l,u,s,d){for(var i=a-1,m=a===0?f:[""],p=Gt(m),x=0,h=0,g=0;x<r;++x)for(var T=0,w=it(e,i+1,i=Ed(h=n[x])),c=e;T<p;++T)(c=Qr(h>0?m[T]+" "+w:k(w,/&\f/g,m[T])))&&(u[g++]=c);return Qo(e,t,o,a===0?Wt:l,u,s,d)}function aA(e,t,o){return Qo(e,t,o,br,Ct(Fd()),it(e,2,-2),0)}function Hd(e,t,o,r){return Qo(e,t,o,_t,it(e,0,r),it(e,r+1,-1),r)}function Rt(e,t){for(var o="",r=Gt(e),a=0;a<r;a++)o+=t(e[a],a,e,t)||"";return o}function _d(e,t,o,r){switch(e.type){case Od:if(e.children.length)break;case Id:case _t:return e.return=e.return||e.value;case br:return"";case vr:return e.return=e.value+"{"+Rt(e.children,r)+"}";case Wt:e.value=e.props.join(",")}return ie(o=Rt(e.children,r))?e.return=e.value+"{"+o+"}":""}function Gd(e){var t=Gt(e);return function(o,r,a,f){for(var n="",l=0;l<t;l++)n+=e[l](o,r,a,f)||"";return n}}function Ud(e){return function(t){t.root||(t=t.return)&&e(t)}}function Vd(e){var t=Object.create(null);return function(o){return t[o]===void 0&&(t[o]=e(o)),t[o]}}var fA=function(t,o,r){for(var a=0,f=0;a=f,f=ye(),a===38&&f===12&&(o[r]=1),!Jt(f);)me();return qt(t,pe)},nA=function(t,o){var r=-1,a=44;do switch(Jt(a)){case 0:a===38&&ye()===12&&(o[r]=1),t[r]+=fA(pe-1,o,r);break;case 2:t[r]+=jt(a);break;case 4:if(a===44){t[++r]=ye()===58?"&\f":"",o[r]=t[r].length;break}default:t[r]+=Ct(a)}while(a=me());return t},lA=function(t,o){return kr(nA(Dr(t),o))},Jd=new WeakMap,sA=function(t){if(!(t.type!=="rule"||!t.parent||t.length<1)){for(var o=t.value,r=t.parent,a=t.column===r.column&&t.line===r.line;r.type!=="rule";)if(r=r.parent,!r)return;if(!(t.props.length===1&&o.charCodeAt(0)!==58&&!Jd.get(r))&&!a){Jd.set(t,!0);for(var f=[],n=lA(o,f),l=r.props,u=0,s=0;u<n.length;u++)for(var d=0;d<l.length;d++,s++)t.props[s]=f[u]?n[u].replace(/&\f/g,l[d]):l[d]+" "+n[u]}}},dA=function(t){if(t.type==="decl"){var o=t.value;o.charCodeAt(0)===108&&o.charCodeAt(2)===98&&(t.return="",t.value="")}};function Kd(e,t){switch(vd(e,t)){case 5103:return L+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return L+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return L+e+bo+e+ne+e+e;case 6828:case 4268:return L+e+ne+e+e;case 6165:return L+e+ne+"flex-"+e+e;case 5187:return L+e+k(e,/(\w+).+(:[^]+)/,L+"box-$1$2"+ne+"flex-$1$2")+e;case 5443:return L+e+ne+"flex-item-"+k(e,/flex-|-self/,"")+e;case 4675:return L+e+ne+"flex-line-pack"+k(e,/align-content|flex-|-self/,"")+e;case 5548:return L+e+ne+k(e,"shrink","negative")+e;case 5292:return L+e+ne+k(e,"basis","preferred-size")+e;case 6060:return L+"box-"+k(e,"-grow","")+L+e+ne+k(e,"grow","positive")+e;case 4554:return L+k(e,/([^-])(transform)/g,"$1"+L+"$2")+e;case 6187:return k(k(k(e,/(zoom-|grab)/,L+"$1"),/(image-set)/,L+"$1"),e,"")+e;case 5495:case 3959:return k(e,/(image-set\([^]*)/,L+"$1$`$1");case 4968:return k(k(e,/(.+:)(flex-)?(.*)/,L+"box-pack:$3"+ne+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+L+e+e;case 4095:case 3583:case 4068:case 2532:return k(e,/(.+)-inline(.+)/,L+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(ie(e)-1-t>6)switch(z(e,t+1)){case 109:if(z(e,t+4)!==45)break;case 102:return k(e,/(.+:)(.+)-([^]+)/,"$1"+L+"$2-$3$1"+bo+(z(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~vo(e,"stretch")?Kd(k(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(z(e,t+1)!==115)break;case 6444:switch(z(e,ie(e)-3-(~vo(e,"!important")&&10))){case 107:return k(e,":",":"+L)+e;case 101:return k(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+L+(z(e,14)===45?"inline-":"")+"box$3$1"+L+"$2$3$1"+ne+"$2box$3")+e}break;case 5936:switch(z(e,t+11)){case 114:return L+e+ne+k(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return L+e+ne+k(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return L+e+ne+k(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return L+e+ne+e+e}return e}var uA=function(t,o,r,a){if(t.length>-1&&!t.return)switch(t.type){case _t:t.return=Kd(t.value,t.length);break;case vr:return Rt([Yt(t,{value:k(t.value,"@","@"+L)})],a);case Wt:if(t.length)return ff(t.props,function(f){switch(af(f,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return Rt([Yt(t,{props:[k(f,/:(read-\w+)/,":"+bo+"$1")]})],a);case"::placeholder":return Rt([Yt(t,{props:[k(f,/:(plac\w+)/,":"+L+"input-$1")]}),Yt(t,{props:[k(f,/:(plac\w+)/,":"+bo+"$1")]}),Yt(t,{props:[k(f,/:(plac\w+)/,ne+"input-$1")]})],a)}return""})}},iA=[uA],Yd=function(t){var o=t.key;if(o==="css"){var r=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(r,function(h){var g=h.getAttribute("data-emotion");g.indexOf(" ")!==-1&&(document.head.appendChild(h),h.setAttribute("data-s",""))})}var a=t.stylisPlugins||iA,f={},n,l=[];n=t.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+o+' "]'),function(h){for(var g=h.getAttribute("data-emotion").split(" "),T=1;T<g.length;T++)f[g[T]]=!0;l.push(h)});var u,s=[sA,dA];{var d,i=[_d,Ud(function(h){d.insert(h)})],m=Gd(s.concat(a,i)),p=function(g){return Rt(Wd(g),m)};u=function(g,T,w,c){d=w,p(g?g+"{"+T.styles+"}":T.styles),c&&(x.inserted[T.name]=!0)}}var x={key:o,sheet:new Bd({key:o,container:n,nonce:t.nonce,speedy:t.speedy,prepend:t.prepend,insertionPoint:t.insertionPoint}),nonce:t.nonce,inserted:f,registered:{},insert:u};return x.sheet.hydrate(l),x};var yA=!0;function Do(e,t,o){var r="";return o.split(" ").forEach(function(a){e[a]!==void 0?t.push(e[a]+";"):a&&(r+=a+" ")}),r}var Kr=function(t,o,r){var a=t.key+"-"+o.name;(r===!1||yA===!1)&&t.registered[a]===void 0&&(t.registered[a]=o.styles)},ko=function(t,o,r){Kr(t,o,r);var a=t.key+"-"+o.name;if(t.inserted[o.name]===void 0){var f=o;do t.insert(o===f?"."+a:"",f,t.sheet,!0),f=f.next;while(f!==void 0)}};function fu(e){for(var t=0,o,r=0,a=e.length;a>=4;++r,a-=4)o=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,o=(o&65535)*1540483477+((o>>>16)*59797<<16),o^=o>>>24,t=(o&65535)*1540483477+((o>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(a){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var nu={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};var BA=!1,IA=/[A-Z]|^ms/g,OA=/_EMO_([^_]+?)_([^]*?)_EMO_/g,uu=function(t){return t.charCodeAt(1)===45},lu=function(t){return t!=null&&typeof t!="boolean"},mf=Vd(function(e){return uu(e)?e:e.replace(IA,"-$&").toLowerCase()}),su=function(t,o){switch(t){case"animation":case"animationName":if(typeof o=="string")return o.replace(OA,function(r,a,f){return Le={name:a,styles:f,next:Le},a})}return nu[t]!==1&&!uu(t)&&typeof o=="number"&&o!==0?o+"px":o},EA="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function Mo(e,t,o){if(o==null)return"";var r=o;if(r.__emotion_styles!==void 0)return r;switch(typeof o){case"boolean":return"";case"object":{var a=o;if(a.anim===1)return Le={name:a.name,styles:a.styles,next:Le},a.name;var f=o;if(f.styles!==void 0){var n=f.next;if(n!==void 0)for(;n!==void 0;)Le={name:n.name,styles:n.styles,next:Le},n=n.next;var l=f.styles+";";return l}return bA(e,t,o)}case"function":{if(e!==void 0){var u=Le,s=o(e);return Le=u,Mo(e,t,s)}break}}var d=o;if(t==null)return d;var i=t[d];return i!==void 0?i:d}function bA(e,t,o){var r="";if(Array.isArray(o))for(var a=0;a<o.length;a++)r+=Mo(e,t,o[a])+";";else for(var f in o){var n=o[f];if(typeof n!="object"){var l=n;t!=null&&t[l]!==void 0?r+=f+"{"+t[l]+"}":lu(l)&&(r+=mf(f)+":"+su(f,l)+";")}else{if(f==="NO_COMPONENT_SELECTOR"&&BA)throw new Error(EA);if(Array.isArray(n)&&typeof n[0]=="string"&&(t==null||t[n[0]]===void 0))for(var u=0;u<n.length;u++)lu(n[u])&&(r+=mf(f)+":"+su(f,n[u])+";");else{var s=Mo(e,t,n);switch(f){case"animation":case"animationName":{r+=mf(f)+":"+s+";";break}default:r+=f+"{"+s+"}"}}}}return r}var du=/label:\s*([^\s;{]+)\s*(;|$)/g,Le;function Po(e,t,o){if(e.length===1&&typeof e[0]=="object"&&e[0]!==null&&e[0].styles!==void 0)return e[0];var r=!0,a="";Le=void 0;var f=e[0];if(f==null||f.raw===void 0)r=!1,a+=Mo(o,t,f);else{var n=f;a+=n[0]}for(var l=1;l<e.length;l++)if(a+=Mo(o,t,e[l]),r){var u=f;a+=u[l]}du.lastIndex=0;for(var s="",d;(d=du.exec(a))!==null;)s+="-"+d[1];var i=fu(a)+s;return{name:i,styles:a,next:Le}}var Yr=S(D()),vA=function(t){return t()},QA=Yr.useInsertionEffect?Yr.useInsertionEffect:!1,xf=QA||vA;var iu=!1,Af=Be.createContext(typeof HTMLElement<"u"?Yd({key:"css"}):null),FA=Af.Provider,hf=function(){return(0,Lo.useContext)(Af)},gf=function(t){return(0,Lo.forwardRef)(function(o,r){var a=(0,Lo.useContext)(Af);return t(o,a,r)})},Tf=Be.createContext({});var qr={}.hasOwnProperty,cf="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",pu=function(t,o){var r={};for(var a in o)qr.call(o,a)&&(r[a]=o[a]);return r[cf]=t,r},DA=function(t){var o=t.cache,r=t.serialized,a=t.isStringTag;return Kr(o,r,a),xf(function(){return ko(o,r,a)}),null},kA=gf(function(e,t,o){var r=e.css;typeof r=="string"&&t.registered[r]!==void 0&&(r=t.registered[r]);var a=e[cf],f=[r],n="";typeof e.className=="string"?n=Do(t.registered,f,e.className):e.className!=null&&(n=e.className+" ");var l=Po(f,void 0,Be.useContext(Tf));n+=t.key+"-"+l.name;var u={};for(var s in e)qr.call(e,s)&&s!=="css"&&s!==cf&&!iu&&(u[s]=e[s]);return u.className=n,o&&(u.ref=o),Be.createElement(Be.Fragment,null,Be.createElement(DA,{cache:t,serialized:l,isStringTag:typeof a=="string"}),Be.createElement(a,u))}),mu=kA;var zt=S(D());var qC=S(au()),xu=function(t,o){var r=arguments;if(o==null||!qr.call(o,"css"))return zt.createElement.apply(void 0,r);var a=r.length,f=new Array(a);f[0]=mu,f[1]=pu(t,o);for(var n=2;n<a;n++)f[n]=r[n];return zt.createElement.apply(null,f)};(function(e){var t;t||(t=e.JSX||(e.JSX={}))})(xu||(xu={}));var yu=S(Au(),1);var Sf=S(D(),1);var Tu=S(D(),1);var jr=e=>{let t=e.length,o=0,r="";for(;o<t;o++){let a=e[o];if(a==null)continue;let f;switch(typeof a){case"boolean":break;case"object":{if(Array.isArray(a))f=jr(a);else{let n=a;f="";for(let l in n)n[l]&&l&&(f&&(f+=" "),f+=l)}break}default:f=a}f&&(r&&(r+=" "),r+=f)}return r};function hu(e){return e instanceof Object&&!("styles"in e)&&!("length"in e)&&!("__emotion_styles"in e)}var{createCssAndCx:MA}=(()=>{function e(o,r,a){let f=[],n=Do(o,f,a);return f.length<2?a:n+r(f)}function t(o){let{cache:r}=o,a=(...n)=>{let l=Po(n,r.registered);ko(r,l,!1);let u=`${r.key}-${l.name}`;e:{let s=n[0];if(!hu(s))break e;gu.saveClassNameCSSObjectMapping(r,u,s)}return u};return{css:a,cx:(...n)=>{let l=jr(n),u=gu.fixClassName(r,l,a);return e(r.registered,a,u)}}}return{createCssAndCx:t}})();function Su(e){let{useCache:t}=e;function o(){let r=t(),{css:a,cx:f}=(0,Tu.useMemo)(()=>MA({cache:r}),[r]);return{css:a,cx:f}}return{useCssAndCx:o}}var gu=(()=>{let e=new WeakMap;return{saveClassNameCSSObjectMapping:(t,o,r)=>{let a=e.get(t);a===void 0&&(a=new Map,e.set(t,a)),a.set(o,r)},fixClassName:(()=>{function t(o){let r=!1;return o.map(([a,f])=>{if(f===void 0)return a;let n;if(r)n={"&&":f};else{n=a;for(let l in f)if(l.startsWith("@media")){r=!0;break}}return n})}return(o,r,a)=>{if(!r.includes(" "))return r;let f=e.get(o);return jr(t(r.split(" ").map(n=>[n,f?.get(n)])).map(n=>typeof n=="string"?n:a(n)))}})()}})();function wu(e,t,o){if(!(t instanceof Object))return e;let r=Object.keys(t);if(r.length===0)return e;let a={};for(let f of Object.keys(e))a[f]=o(e[f],t[f]);for(let f of r){if(f in e)continue;let n=t[f];typeof n=="string"&&(a[f]=n)}return a}function Cu(e){if(!(e instanceof Object)||typeof e=="function")return e;let t=[];for(let o in e){let r=e[o],a=typeof r;if(!(a==="string"||a==="number"&&!isNaN(r)||a==="boolean"||r===void 0||r===null))return e;t.push(`${o}:${a}_${r}`)}return`xSqLiJdLMd9s${t.join("|")}`}var PA=hf;function Ru(e){let{useTheme:t}=e,{useCssAndCx:o}=Su({useCache:PA});function r(){return function(a){let f=typeof a=="function"?a:()=>a;return function(l,u){let s=t(),{css:d,cx:i}=o(),m=(0,Sf.useMemo)(()=>{let g=f(s),T={};for(let w of Object.keys(g)){let c=g[w];T[w]=d(c)}return T},[d,s]),p=u?.props.classes,x=Cu(p);return{classes:(0,Sf.useMemo)(()=>p?wu(m,p,i):m,[m,x,i]),theme:s,css:d,cx:i}}}}return{makeStyles:r}}var{makeStyles:zr}=Ru({useTheme:yu.useTheme});function LA(e){return Math.round(e*1e5)/1e5}var NA=zr()(e=>({tooltip:{position:"absolute",pointerEvents:"none",backgroundColor:(0,Xt.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:`${LA(14/10)}em`,maxWidth:300,wordWrap:"break-word"}}));function Cf({clientPoint:e,children:t,placement:o="right"}){let a=(0,Xt.useTheme)().components?.MuiPopper,{classes:f}=NA(),{refs:n,floatingStyles:l,context:u}=Rd({placement:o,strategy:"fixed",middleware:[Er(5)]}),s=Cd(u,e),{getFloatingProps:d}=yd([s]);return(0,wf.jsx)(Xt.Portal,{container:a?.defaultProps?.container,children:(0,wf.jsx)("div",{className:f.tooltip,ref:n.setFloating,style:{...l,zIndex:1e5,visibility:l.transform==="translate(0px, 0px)"?"hidden":void 0,pointerEvents:"none"},...d(),children:t})})}var Eu=S(se()),bu=S(xe());var $t=S(se());function Xr(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function $r(e,t){let o;if(t===void 0)for(let r of e)r!=null&&(o<r||o===void 0&&r>=r)&&(o=r);else{let r=-1;for(let a of e)(a=t(a,++r,e))!=null&&(o<a||o===void 0&&a>=a)&&(o=a)}return o}function Bu(e,t,o){let r=[];if(t)r.push(`Start: ${t.refName}:${(0,$t.toLocale)(t.coord)}`,`End: ${o.refName}:${(0,$t.toLocale)(o.coord)}`,`Length: ${(0,$t.getBpDisplayStr)(Math.abs(t.coord-o.coord))}`);else if(r.push(`Ref: ${o.refName}:${(0,$t.toLocale)(o.coord)}`),e){let{base:a,sampleLabel:f,pos:n,chr:l,isInsertion:u}=e,s=20,d=a.length,i=d>1?` ${d}bp`:"",m=a.length>s?a.slice(0,s)+"...":a,p=u?" Insertion":"";r.push(`Alt ${f}: ${l}:${n.toLocaleString("en-US")} (${m}${i}${p})`)}return r.filter(a=>!!a).join("<br/>")}function Rf(e){return(e.data.length||0)+(e.children&&$r(e.children,Rf)||0)}function yf(e,t,o){let r=t+Math.max(e.data.length||0,0);if(e.len=r*o,e.children)for(let a of e.children)yf(a,r,o)}function Iu(e){let t=new Map;function o(r){if(!r.children||r.children.length===0){let f=[r.data.name];return t.set(r,f),f}let a=[];for(let f of r.children)for(let n of o(f))a.push(n);return t.set(r,a),a}return o(e),t}var HA=(0,bu.observer)(function({model:e,mouseX:t,origMouseX:o}){let{hoveredInfo:r}=e,a=(0,Eu.getContainingView)(e),f=o?a.pxToBp(o):void 0,n=a.pxToBp(t);return r?Bf.default.createElement(Cf,null,Bf.default.createElement(Ou.SanitizedHTML,{html:Bu(r,f,n)})):null}),vu=HA;var Zr=S(D()),Qu=S(xe()),WA=(0,Qu.observer)(function({model:t,view:o,height:r}){let{msaHighlights:a}=t;if(a.length===0)return null;let{offsetPx:f}=o,n=o.displayedRegions[0];return n?Zr.default.createElement(Zr.default.Fragment,null,a.map((l,u)=>{if(l.refName!==n.refName)return null;let s=(l.start-n.start)/o.bpPerPx-f,d=(l.end-n.start)/o.bpPerPx-f,i=Math.max(d-s,2);return Zr.default.createElement("div",{key:u,style:{position:"absolute",left:s,top:0,width:i,height:r,backgroundColor:"rgba(255, 165, 0, 0.4)",border:"1px solid rgba(255, 165, 0, 0.8)",pointerEvents:"none"}})})):null}),Fu=WA;vf();var ae=S(D()),Xu=3;function $u(e){let[t,o]=(0,ae.useState)(!1),[r,a]=(0,ae.useState)(),[f,n]=(0,ae.useState)(),[l,u]=(0,ae.useState)(),[s,d]=(0,ae.useState)(),[i,m]=(0,ae.useState)(!1),[p,x]=(0,ae.useState)(),[h,g]=(0,ae.useState)(),[T,w]=(0,ae.useState)(),c=(0,ae.useCallback)(()=>{m(!1),a(void 0),n(void 0),u(void 0),d(void 0)},[]),A=(0,ae.useCallback)(y=>{if(y.shiftKey)return;let O=e.current?.getBoundingClientRect(),v=O?.left||0,W=O?.top||0,N=y.clientX-v,M=y.clientY-W;m(!1),o(!0),a(N),n(N),u(M),d(M),y.stopPropagation()},[e]),C=(0,ae.useCallback)(y=>{let O=e.current?.getBoundingClientRect(),v=O?.top||0,W=O?.left||0,N=y.clientX-W,M=y.clientY-v;g(M),x(N),t&&(n(N),d(M))},[e,t]),I=(0,ae.useCallback)(y=>{t&&r!==void 0&&f!==void 0&&l!==void 0&&s!==void 0&&(Math.abs(f-r)>Xu?(w({coord:[y.clientX,y.clientY],dragEndX:y.clientX,dragStartX:r,dragStartY:l,dragEndY:s}),m(!0)):c()),o(!1)},[t,r,f,l,s,c]),R=(0,ae.useCallback)(()=>{g(void 0),x(void 0),o(!1)},[]);(0,ae.useEffect)(()=>{let y=v=>{v.key==="Escape"&&i&&c()},O=v=>{e.current&&!e.current.contains(v.target)&&i&&c()};return document.addEventListener("keydown",y),document.addEventListener("click",O),()=>{document.removeEventListener("keydown",y),document.removeEventListener("click",O)}},[e,i,c]);let E=(r!==void 0&&f!==void 0?Math.abs(f-r):0)>Xu;return{isDragging:t&&E,dragStartX:r,dragEndX:f,dragStartY:l,dragEndY:s,showSelectionBox:i,mouseX:p,mouseY:h,contextCoord:T,setContextCoord:w,handleMouseDown:A,handleMouseMove:C,handleMouseUp:I,handleMouseLeave:R,clearSelectionBox:c}}var KA=(0,ti.observer)(function(e){let{model:t}=e,{pluginManager:o}=(0,et.getEnv)(t),{height:r,scrollTop:a,rowHeight:f,sidebarWidth:n,samples:l}=t,u=(0,Ie.useRef)(null),s=(0,ei.useTheme)(),d=(0,et.getSession)(t),i=o.getPlugin("LinearGenomeViewPlugin"),{BaseLinearDisplayComponent:m}=i.exports,{isDragging:p,dragStartX:x,dragEndX:h,dragStartY:g,dragEndY:T,showSelectionBox:w,mouseX:c,mouseY:A,contextCoord:C,setContextCoord:I,handleMouseDown:R,handleMouseMove:B,handleMouseUp:E,handleMouseLeave:y,clearSelectionBox:O}=$u(u),v=(0,et.getContainingView)(t),{width:W}=v;return Ie.default.createElement("div",{ref:u,style:{position:"relative"},onMouseDown:R,onMouseMove:B,onMouseUp:E,onDoubleClick:()=>{w&&O()},onMouseLeave:y},Ie.default.createElement(m,{...e}),t.showSidebar?Ie.default.createElement(ea,{model:t}):null,Ie.default.createElement(Fu,{model:t,view:v,height:r}),A!==void 0&&c!==void 0&&c>n&&l&&!C?Ie.default.createElement("div",{style:{position:"relative"}},Ie.default.createElement(Ps,{width:W,height:r,scrollTop:a,mouseX:c,mouseY:A}),Ie.default.createElement(vu,{model:t,mouseX:c,origMouseX:p?x:void 0})):null,(p||w)&&x!==void 0&&h!==void 0&&g!==void 0&&T!==void 0?Ie.default.createElement("div",{style:{position:"absolute",left:Math.min(x,h),top:Math.min(g,T)+a,width:Math.abs(h-x),height:Math.abs(T-g),backgroundColor:"rgba(0, 0, 255, 0.2)",border:"1px solid rgba(0, 0, 255, 0.5)",pointerEvents:"none"}}):null,Ie.default.createElement(Zu.Menu,{open:!!C,onMenuItemClick:(N,M)=>{M(),I(void 0)},onClose:()=>{I(void 0)},slotProps:{transition:{onExit:()=>{I(void 0)}}},anchorReference:"anchorPosition",anchorPosition:C?{top:C.coord[1],left:C.coord[0]}:void 0,style:{zIndex:s.zIndex.tooltip},menuItems:[{label:"View subsequences (all rows)",onClick:()=>{if(!C)return;let{refName:N,assemblyName:M}=v.displayedRegions[0],[P,V]=[Math.min(C.dragStartX,C.dragEndX),Math.max(C.dragStartX,C.dragEndX)];if((0,et.isSessionModelWithWidgets)(d)){let _=d.addWidget("MafSequenceWidget","mafSequence",{adapterConfig:t.adapterConfig,samples:t.samples,regions:[{refName:N,start:v.pxToBp(P).coord-1,end:v.pxToBp(V).coord,assemblyName:M}],connectedViewId:v.id});d.showWidget(_)}I(void 0)}},{label:"View subsequences (selected rows)",onClick:()=>{if(!C||!l)return;let{refName:N,assemblyName:M}=v.displayedRegions[0],[P,V]=[Math.min(C.dragStartX,C.dragEndX),Math.max(C.dragStartX,C.dragEndX)],_=Math.min(C.dragStartY,C.dragEndY),G=Math.max(C.dragStartY,C.dragEndY),j=Math.floor((_+a)/f),Ue=Math.ceil((G+a)/f),Ve=l.slice(j,Ue);if((0,et.isSessionModelWithWidgets)(d)&&Ve.length>0){let be=d.addWidget("MafSequenceWidget","mafSequence",{adapterConfig:t.adapterConfig,samples:Ve,regions:[{refName:N,start:v.pxToBp(P).coord-1,end:v.pxToBp(V).coord,assemblyName:M}],connectedViewId:v.id});d.showWidget(be)}I(void 0)}}]}))}),oi=KA;var ri=S(ze());function Qf(e){let t=e.getPlugin("LinearGenomeViewPlugin"),{baseLinearDisplayConfigSchema:o}=t.exports;return(0,ri.ConfigurationSchema)("LinearMafDisplay",{renderer:e.pluggableConfigSchemaType("renderer")},{baseConfiguration:o,explicitlyTyped:!0})}var Li=S(D()),ta=S(ze()),le=S(se()),Ni=S(fi()),Se=S(ve());function YA(e,t){return e.parent===t.parent?1:2}function qA(e){return e.reduce(jA,0)/e.length}function jA(e,t){return e+t.x}function zA(e){return 1+e.reduce(XA,0)}function XA(e,t){return Math.max(e,t.y)}function $A(e){for(var t;t=e.children;)e=t[0];return e}function ZA(e){for(var t;t=e.children;)e=t[t.length-1];return e}function Ff(){var e=YA,t=1,o=1,r=!1;function a(f){var n,l=0;f.eachAfter(function(m){var p=m.children;p?(m.x=qA(p),m.y=zA(p)):(m.x=n?l+=e(m,n):0,m.y=0,n=m)});var u=$A(f),s=ZA(f),d=u.x-e(u,s)/2,i=s.x+e(s,u)/2;return f.eachAfter(r?function(m){m.x=(m.x-f.x)*t,m.y=(f.y-m.y)*o}:function(m){m.x=(m.x-d)/(i-d)*t,m.y=(1-(f.y?m.y/f.y:1))*o})}return a.separation=function(f){return arguments.length?(e=f,a):e},a.size=function(f){return arguments.length?(r=!1,t=+f[0],o=+f[1],a):r?null:[t,o]},a.nodeSize=function(f){return arguments.length?(r=!0,t=+f[0],o=+f[1],a):r?[t,o]:null},a}function eh(e){var t=0,o=e.children,r=o&&o.length;if(!r)t=1;else for(;--r>=0;)t+=o[r].value;e.value=t}function ni(){return this.eachAfter(eh)}function li(e,t){let o=-1;for(let r of this)e.call(t,r,++o,this);return this}function si(e,t){for(var o=this,r=[o],a,f,n=-1;o=r.pop();)if(e.call(t,o,++n,this),a=o.children)for(f=a.length-1;f>=0;--f)r.push(a[f]);return this}function di(e,t){for(var o=this,r=[o],a=[],f,n,l,u=-1;o=r.pop();)if(a.push(o),f=o.children)for(n=0,l=f.length;n<l;++n)r.push(f[n]);for(;o=a.pop();)e.call(t,o,++u,this);return this}function ui(e,t){let o=-1;for(let r of this)if(e.call(t,r,++o,this))return r}function ii(e){return this.eachAfter(function(t){for(var o=+e(t.data)||0,r=t.children,a=r&&r.length;--a>=0;)o+=r[a].value;t.value=o})}function pi(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function mi(e){for(var t=this,o=th(t,e),r=[t];t!==o;)t=t.parent,r.push(t);for(var a=r.length;e!==o;)r.splice(a,0,e),e=e.parent;return r}function th(e,t){if(e===t)return e;var o=e.ancestors(),r=t.ancestors(),a=null;for(e=o.pop(),t=r.pop();e===t;)a=e,e=o.pop(),t=r.pop();return a}function xi(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function ci(){return Array.from(this)}function Ai(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function hi(){var e=this,t=[];return e.each(function(o){o!==e&&t.push({source:o.parent,target:o})}),t}function*gi(){var e=this,t,o=[e],r,a,f;do for(t=o.reverse(),o=[];e=t.pop();)if(yield e,r=e.children)for(a=0,f=r.length;a<f;++a)o.push(r[a]);while(o.length)}function Zt(e,t){e instanceof Map?(e=[void 0,e],t===void 0&&(t=ah)):t===void 0&&(t=rh);for(var o=new No(e),r,a=[o],f,n,l,u;r=a.pop();)if((n=t(r.data))&&(u=(n=Array.from(n)).length))for(r.children=n,l=u-1;l>=0;--l)a.push(f=n[l]=new No(n[l])),f.parent=r,f.depth=r.depth+1;return o.eachBefore(nh)}function oh(){return Zt(this).eachBefore(fh)}function rh(e){return e.children}function ah(e){return Array.isArray(e)?e[1]:null}function fh(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function nh(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function No(e){this.data=e,this.depth=this.height=0,this.parent=null}No.prototype=Zt.prototype={constructor:No,count:ni,each:li,eachAfter:di,eachBefore:si,find:ui,sum:ii,sort:pi,path:mi,ancestors:xi,descendants:ci,leaves:Ai,links:hi,copy:oh,[Symbol.iterator]:gi};var Df=S(Si()),Hi=S(Of());var bi=15,vi=.8,Qi=!1,Fi=!0,Di=!1,ki=80,Mi=!0,Pi=!0,ih=(0,Li.lazy)(()=>Promise.resolve().then(()=>(Bi(),yi)));function kf(e,t){let o=t.getPlugin("LinearGenomeViewPlugin"),{BaseLinearDisplay:r}=o.exports;return Se.types.compose("LinearMafDisplay",r,Se.types.model({type:Se.types.literal("LinearMafDisplay"),configuration:(0,ta.ConfigurationReference)(e),rowHeight:bi,rowProportion:vi,showAllLetters:Qi,mismatchRendering:Fi,showBranchLen:Di,treeAreaWidth:ki,showAsUpperCase:Mi,showSidebar:Pi,subtreeFilter:Se.types.maybe(Se.types.array(Se.types.string))})).volatile(()=>({hoveredInfo:void 0,prefersOffset:!0,volatileSamples:void 0,volatileTree:void 0,highlightedRowNames:void 0,hoveredTreeNode:void 0,treeMenuAnchor:void 0})).actions(a=>({setHoveredInfo(f){a.hoveredInfo=f},setRowHeight(f){a.rowHeight=f},setRowProportion(f){a.rowProportion=f},setShowAllLetters(f){a.showAllLetters=f},setMismatchRendering(f){a.mismatchRendering=f},setSamples({samples:f,tree:n}){(0,Df.default)(f,a.volatileSamples)||(a.volatileSamples=f),(0,Df.default)(n,a.volatileTree)||(a.volatileTree=n)},setShowAsUpperCase(f){a.showAsUpperCase=f},setTreeAreaWidth(f){a.treeAreaWidth=f},setShowSidebar(f){a.showSidebar=f},setHighlightedRowNames(f,n){a.highlightedRowNames=f,a.hoveredTreeNode=n},setSubtreeFilter(f){a.subtreeFilter=(0,Se.cast)(f)},setTreeMenuAnchor(f){a.treeMenuAnchor=f},showInsertionSequenceDialog(f){let{sequence:n,sampleLabel:l,chr:u,pos:s}=f,d=(0,le.getSession)(a),i=d.addWidget("BaseFeatureWidget","baseFeature",{featureData:{uniqueId:`insertion-${u}-${s}-${l}`,type:"insertion",refName:u,start:s,end:s+1,sample:l,insertionLength:n.length,sequence:a.showAsUpperCase?n.toUpperCase():n.toLowerCase()},view:(0,le.getContainingView)(a),track:(0,le.getContainingTrack)(a)});d.showWidget(i)}})).views(a=>({get rendererTypeName(){return"LinearMafRenderer"},get rendererConfig(){let n=(0,ta.getConf)(a,["renderer"])||{};return a.rendererType.configSchema.create({...n,type:"LinearMafRenderer"},(0,le.getEnv)(a))}})).views(a=>({get root(){if(!a.volatileTree)return;let f=a.volatileTree;if(a.subtreeFilter&&a.subtreeFilter.length>0){let n=new Set(a.subtreeFilter),l=s=>{let d=p=>{if(!p.children||p.children.length===0)return p.name?[p.name]:[];let x=[];for(let h of p.children)for(let g of d(h))x.push(g);return x},i=d(s);if(i.length===n.size&&i.every(p=>n.has(p)))return s;if(s.children)for(let p of s.children){let x=l(p);if(x)return x}},u=l(a.volatileTree);u&&(f=u)}return Zt(f,n=>n.children).sum(n=>n.children?.length?0:1).sort((n,l)=>Xr(n.data.length||1,l.data.length||1))}})).views(a=>({get hierarchy(){let f=a.root;if(f){let n=a.treeAreaWidth;Ff().size([this.totalHeight-a.rowHeight,n]).separation(()=>1)(f);let u=f.leaves();for(let s=0;s<u.length;s++)u[s].x=s*a.rowHeight+a.rowHeight/2;return f.eachAfter(s=>{s.children&&s.children.length>0&&(s.x=(s.children[0].x+s.children[s.children.length-1].x)/2)}),f.data.length=0,yf(f,0,n/Rf(f)),f}else return},get samples(){let f;if(this.rowNames){let n=a.volatileSamples?Object.fromEntries(a.volatileSamples.map(l=>[l.id,l])):void 0;f=lt(this.rowNames).map(l=>({...l,label:n?.[l.id]?.label||l.label,color:n?.[l.id]?.color||l.color}))}else f=a.volatileSamples;if(f&&a.subtreeFilter){let n=new Set(a.subtreeFilter);return f.filter(l=>n.has(l.id))}return f},get totalHeight(){return this.samples?this.samples.length*a.rowHeight:1},get leaves(){return a.root?.leaves()},get leafMap(){return new Map(this.leaves?.map(f=>[f.data.name,f]))},get nodeDescendantNames(){return this.hierarchy?Iu(this.hierarchy):new Map},get rowNames(){return this.leaves?.map(f=>f.data.name)}})).views(a=>{let{trackMenuItems:f,renderProps:n}=a;return{get treeWidth(){return a.hierarchy?a.treeAreaWidth:0},renderProps(){let{showAllLetters:l,rendererConfig:u,samples:s,rowHeight:d,rowProportion:i,mismatchRendering:m,showAsUpperCase:p}=a,x=n();return{...x,notReady:!a.volatileSamples&&!a.volatileTree||x.notReady,config:u,samples:s,rowHeight:d,rowProportion:i,showAllLetters:l,mismatchRendering:m,showAsUpperCase:p}},trackMenuItems(){return[...f(),{label:"Set feature height",type:"subMenu",subMenu:[{label:"Normal",onClick:()=>{a.setRowHeight(15),a.setRowProportion(.8)}},{label:"Compact",onClick:()=>{a.setRowHeight(8),a.setRowProportion(.9)}},{label:"Manually set height",onClick:()=>{(0,le.getSession)(a).queueDialog(l=>[ih,{model:a,handleClose:l}])}}]},{label:"Show...",type:"subMenu",subMenu:[{label:"Letters at all positions",type:"checkbox",checked:a.showAllLetters,onClick:()=>{a.setShowAllLetters(!a.showAllLetters)}},{label:"Mismatches colored by base",type:"checkbox",checked:a.mismatchRendering,onClick:()=>{a.setMismatchRendering(!a.mismatchRendering)}},{label:"Letters as uppercase",type:"checkbox",checked:a.showAsUpperCase,onClick:()=>{a.setShowAsUpperCase(!a.showAsUpperCase)}},{label:"Sidebar with tree and labels",type:"checkbox",checked:a.showSidebar,onClick:()=>{a.setShowSidebar(!a.showSidebar)}}]},...a.subtreeFilter?[{label:"Clear subtree filter",onClick:()=>{a.setSubtreeFilter(void 0)}}]:[]]}}}).views(a=>({get msaHighlights(){let f=(0,le.getSession)(a),n=(0,le.getContainingView)(a),l=[];for(let u of f.views)if(u.type==="MsaView"&&u.connectedViewId===n.id){let s=u;if(s.connectedHighlights)for(let d of s.connectedHighlights)l.push(d)}return l},get svgFontSize(){return Math.min(Math.max(a.rowHeight,8),14)},get canDisplayLabel(){return a.rowHeight>=7},get labelWidth(){return(0,le.max)(a.samples?.map(n=>(0,le.measureText)(n.label,this.svgFontSize)).map(n=>this.canDisplayLabel?n:20)||[],0)},get sidebarWidth(){return a.showSidebar?this.labelWidth+5+a.treeWidth:0}})).actions(a=>({afterCreate(){(0,Se.addDisposer)(a,(0,Hi.autorun)(async()=>{try{let{rpcManager:f}=(0,le.getSession)(a),n=(0,Ni.getRpcSessionId)(a);a.setSamples(await f.call(n,"MafGetSamples",{sessionId:n,adapterConfig:a.adapterConfig,statusCallback:l=>{(0,Se.isAlive)(a)&&a.setStatusMessage(l)}}))}catch(f){console.error(f),(0,le.getSession)(a).notifyError(`${f}`,f)}}))}})).actions(a=>{let{renderSvg:f}=a;return{async renderSvg(n){let{renderSvg:l}=await Promise.resolve().then(()=>(Ei(),Oi));return l(a,n,f)}}}).postProcessSnapshot(a=>{let{rowHeight:f,rowProportion:n,showAllLetters:l,mismatchRendering:u,showBranchLen:s,treeAreaWidth:d,showAsUpperCase:i,showSidebar:m,subtreeFilter:p,...x}=a;return{...x,...f!==bi?{rowHeight:f}:{},...n!==vi?{rowProportion:n}:{},...l!==Qi?{showAllLetters:l}:{},...u!==Fi?{mismatchRendering:u}:{},...s!==Di?{showBranchLen:s}:{},...d!==ki?{treeAreaWidth:d}:{},...i!==Mi?{showAsUpperCase:i}:{},...m!==Pi?{showSidebar:m}:{},...p&&p.length>0?{subtreeFilter:p}:{}}})}function Mf(e){e.addDisplayType(()=>{let t=Qf(e),o=kf(t,e);return new Wi.DisplayType({name:"LinearMafDisplay",configSchema:t,stateModel:o,ReactComponent:oi,viewType:"LinearGenomeView",trackType:"MafTrack",displayName:"MAF display"})})}var Cn=S(D(),1);var We=S(ve(),1),jh=S(yr(),1),zh=S(Gi(),1);var ph={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aqua:"#00FFFF",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blue:"#0000FF",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",fuchsia:"#FF00FF",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",gray:"#808080",green:"#008000",greenyellow:"#ADFF2F",grey:"#808080",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgray:"#D3D3D3",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",lime:"#00FF00",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",maroon:"#800000",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navy:"#000080",oldlace:"#FDF5E6",olive:"#808000",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",purple:"#800080",rebeccapurple:"#663399",red:"#FF0000",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",silver:"#C0C0C0",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",teal:"#008080",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",white:"#FFFFFF",whitesmoke:"#F5F5F5",yellow:"#FFFF00",yellowgreen:"#9ACD32"};function Ui(e){return ph[e]}function ra(e,t,o){return Math.max(t,Math.min(o,e))}function Fe(e,t=0){let o=10**t;return Math.round(e*o)/o}function Vi(e){let t=/^#([0-9a-f]{3,8})$/i.exec(e);if(!t)return null;let o=t[1];return o.length===3?{r:parseInt(o[0]+o[0],16),g:parseInt(o[1]+o[1],16),b:parseInt(o[2]+o[2],16),a:1}:o.length===4?{r:parseInt(o[0]+o[0],16),g:parseInt(o[1]+o[1],16),b:parseInt(o[2]+o[2],16),a:parseInt(o[3]+o[3],16)/255}:o.length===6?{r:parseInt(o.slice(0,2),16),g:parseInt(o.slice(2,4),16),b:parseInt(o.slice(4,6),16),a:1}:o.length===8?{r:parseInt(o.slice(0,2),16),g:parseInt(o.slice(2,4),16),b:parseInt(o.slice(4,6),16),a:parseInt(o.slice(6,8),16)/255}:null}function mh(e){let t=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d.]+)\s*)?\)$/i.exec(e);return t?{r:parseInt(t[1],10),g:parseInt(t[2],10),b:parseInt(t[3],10),a:t[4]?parseFloat(t[4]):1}:null}function xh(e){let t=/^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%\s*(?:,\s*([\d.]+)\s*)?\)$/i.exec(e);if(t){let o=parseFloat(t[1]),r=parseFloat(t[2])/100,a=parseFloat(t[3])/100,f=t[4]?parseFloat(t[4]):1;return{...aa(o,r,a),a:f}}return null}function aa(e,t,o){e=(e%360+360)%360;let r=(1-Math.abs(2*o-1))*t,a=r*(1-Math.abs(e/60%2-1)),f=o-r/2,n=0,l=0,u=0;return e<60?(n=r,l=a):e<120?(n=a,l=r):e<180?(l=r,u=a):e<240?(l=a,u=r):e<300?(n=a,u=r):(n=r,u=a),{r:Math.round((n+f)*255),g:Math.round((l+f)*255),b:Math.round((u+f)*255)}}function oa(e,t,o){e/=255,t/=255,o/=255;let r=Math.max(e,t,o),a=Math.min(e,t,o),f=(r+a)/2;if(r===a)return{h:0,s:0,l:f};let n=r-a,l=f>.5?n/(2-r-a):n/(r+a),u=0;return r===e?u=((t-o)/n+(t<o?6:0))/6:r===t?u=((o-e)/n+2)/6:u=((e-t)/n+4)/6,{h:u*360,s:l,l:f}}function Pf(e){if(typeof e=="object"){let{h:n,s:l,l:u}=e;return{...aa(n,l/100,u/100),a:1}}let t=e.trim().toLowerCase(),o=Ui(t);if(o)return Vi(o);if(t==="transparent")return{r:0,g:0,b:0,a:0};let r=Vi(t);if(r)return r;let a=mh(t);if(a)return a;let f=xh(t);return f||{r:0,g:0,b:0,a:1}}function yt(e){return Math.round(ra(e,0,255)).toString(16).padStart(2,"0")}function Ho(e){return{alpha(o){return o===void 0?e.a:Ho({...e,a:ra(o,0,1)})},toHex(){let{r:o,g:r,b:a,a:f}=e;return f<1?`#${yt(o)}${yt(r)}${yt(a)}${yt(f*255)}`:`#${yt(o)}${yt(r)}${yt(a)}`},toRgbString(){let{r:o,g:r,b:a,a:f}=e;return f<1?`rgba(${Math.round(o)}, ${Math.round(r)}, ${Math.round(a)}, ${Fe(f,3)})`:`rgb(${Math.round(o)}, ${Math.round(r)}, ${Math.round(a)})`},toHsl(){let{h:o,s:r,l:a}=oa(e.r,e.g,e.b);return{h:Fe(o,1),s:Fe(r*100,1),l:Fe(a*100,1),a:e.a}},toHslString(){let{h:o,s:r,l:a}=oa(e.r,e.g,e.b);return e.a<1?`hsla(${Fe(o,1)}, ${Fe(r*100,1)}%, ${Fe(a*100,1)}%, ${Fe(e.a,3)})`:`hsl(${Fe(o,1)}, ${Fe(r*100,1)}%, ${Fe(a*100,1)}%)`},mix(o,r=.5){let a=Pf(typeof o=="string"?o:o.toHex()),f=e.r+(a.r-e.r)*r,n=e.g+(a.g-e.g)*r,l=e.b+(a.b-e.b)*r,u=e.a+(a.a-e.a)*r;return Ho({r:f,g:n,b:l,a:u})},darken(o=.1){let{h:r,s:a,l:f}=oa(e.r,e.g,e.b),n=ra(f-o,0,1),l=aa(r,a,n);return Ho({...l,a:e.a})},lighten(o=.1){let{h:r,s:a,l:f}=oa(e.r,e.g,e.b),n=ra(f+o,0,1),l=aa(r,a,n);return Ho({...l,a:e.a})}}}function Ji(e){return Ho(Pf(e))}var Wh=S(ve(),1);var ch=/^-?(?:(?:[0-9]*\.[0-9]+)|[0-9]+)$/,Ki=/^[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][a-zA-Zа-яА-Я0-9_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*$/,Ah=/\\\\/,hh=/^\s*$/,gh=["`(?:[^`\\\\]|\\\\.)*`",String.raw`'(?:(?:\\')|[^'])*'`,String.raw`"(?:(?:\\")|[^"])*"`,String.raw`\s+`,String.raw`\btrue\b`,String.raw`\bfalse\b`],Th=["[a-zA-Z\u0430-\u044F\u0410-\u042F_\xC0-\xD6\xD8-\xF6\xF8-\xFF\\$][a-zA-Z0-9\u0430-\u044F\u0410-\u042F_\xC0-\xD6\xD8-\xF6\xF8-\xFF\\$]*",String.raw`(?:(?:[0-9]*\.[0-9]+)|[0-9]+)`],Sh=new Set(["binaryOp","unaryOp","openParen","openBracket","question","colon"]),Lf=class{constructor(t){this._escQuoteRegexCache=new Map,this._grammar=t}getElements(t){let o=this._getSplitRegex();return t.split(o).filter(Boolean)}getTokens(t){let o=[],r=!1;for(let a=0;a<t.length;a++)this._isWhitespace(t[a])?o.length&&(o[o.length-1].raw+=t[a]):t[a]==="-"&&this._isNegative(o)?r=!0:(r&&(t[a]="-"+t[a],r=!1),o.push(this._createToken(t[a])));return r&&o.push(this._createToken("-")),o}tokenize(t){let o=this.getElements(t);return this.getTokens(o)}_createToken(t){let o={type:"literal",value:t,raw:t};if(t.startsWith("`"))return o.type="templateString",o.value=this._parseTemplateString(t),o;if(t.startsWith('"')||t.startsWith("'"))o.value=this._unquote(t);else if(ch.exec(t))o.value=parseFloat(t);else if(t==="true"||t==="false")o.value=t==="true";else if(this._grammar.elements[t])o.type=this._grammar.elements[t].type;else if(Ki.exec(t))o.type="identifier";else throw new Error(`Invalid expression token: ${t}`);return o}_escapeRegExp(t){return t=t.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`),Ki.exec(t)&&(t=String.raw`\b`+t+String.raw`\b`),t}_getSplitRegex(){if(!this._splitRegex){let t=Object.keys(this._grammar.elements).sort((o,r)=>r.length-o.length).map(o=>this._escapeRegExp(o));this._splitRegex=new RegExp("("+[gh.join("|"),t.join("|"),Th.join("|")].join("|")+")")}return this._splitRegex}_isNegative(t){return t.length?Sh.has(t[t.length-1].type):!0}_isWhitespace(t){return!!hh.exec(t)}_unquote(t){let o=t[0],r=this._escQuoteRegexCache.get(o);return r||(r=new RegExp("\\\\"+o,"g"),this._escQuoteRegexCache.set(o,r)),t.slice(1,-1).replace(r,o).replace(Ah,"\\")}_parseTemplateString(t){let o=[],r=1,a=1;for(;r<t.length-1;){if(t[r]==="\\"){r+=2;continue}if(t[r]==="$"&&t[r+1]==="{"){r>a&&o.push({type:"static",value:t.slice(a,r)});let f=1,n=r+2;for(r+=2;r<t.length&&f>0;){if(t[r]==="\\"){r+=2;continue}t[r]==="{"&&f++,t[r]==="}"&&f--,r++}if(f!==0)throw new Error(`Unclosed interpolation in template string: ${t}`);o.push({type:"interpolation",value:t.slice(n,r-1)}),a=r}else r++}return r>a&&o.push({type:"static",value:t.slice(a,r)}),o}_unescapeTemplateString(t){return t.replaceAll("\\`","`").replaceAll(String.raw`\$`,"$").replaceAll("\\\\","\\")}},Nf=Lf;var Hf={};bt(Hf,{ArrayLiteral:()=>Ch,AssignmentExpression:()=>Dh,BinaryExpression:()=>Rh,ConditionalExpression:()=>yh,FilterExpression:()=>Bh,FunctionCall:()=>vh,Identifier:()=>Ih,Literal:()=>Oh,ObjectLiteral:()=>bh,SequenceExpression:()=>Fh,TemplateLiteral:()=>Eh,UnaryExpression:()=>Qh});var wh={functions:"Jexl Function"};function Ch(e){return this.evalArray(e.value)}function Rh(e){let t=this._grammar.elements[e.operator];if(t.evalOnDemand){let a=f=>({eval:()=>this.eval(f)});return t.evalOnDemand(a(e.left),a(e.right))}let o=this.eval(e.left),r=this.eval(e.right);return t.eval(o,r)}function yh(e){let t=this.eval(e.test);return t?e.consequent?this.eval(e.consequent):t:this.eval(e.alternate)}function Bh(e){let t=this.eval(e.subject);if(e.relative)throw new Error("Relative filter expressions are not supported");let o=this.eval(e.expr);return t?.[o]}function Ih(e){if(!e.from)return(e.relative?this._relContext:this._context)[e.value];let t=this.eval(e.from);return t==null?void 0:(Array.isArray(t)?t[0]:t)?.[e.value]}function Oh(e){return e.value}function Eh(e){return e.parts.map(o=>{if(o.type==="static")return o.value;let r=this.eval(o.value);return r==null?"":String(r)}).join("")}function bh(e){return this.evalMap(e.value)}function vh(e){let t=wh[e.pool];if(!t)throw new Error(`Corrupt AST: Pool '${e.pool}' not found`);let r=this._grammar[e.pool]?.[e.name];if(!r)throw new Error(`${t} ${e.name} is not defined.`);let a=this.evalArray(e.args||[]);return r(...a)}function Qh(e){let t=this.eval(e.right);return this._grammar.elements[e.operator].eval(t)}function Fh(e){let t;for(let o of e.expressions)t=this.eval(o);return t}function Dh(e){let t=this.eval(e.right),o=e.left.value;return this._context[o]=t,t}var Wf=class{constructor(t,o,r){this._grammar=t,this._context=o||{},this._relContext=r||this._context}eval(t){return Hf[t.type].call(this,t)}evalArray(t){return t.map(o=>this.eval(o))}evalMap(t){let o=Object.entries(t),r=o.map(([a,f])=>this.eval(f));return Object.fromEntries(o.map(([a],f)=>[a,r[f]]))}},Yi=Wf;var na={};bt(na,{argVal:()=>_f,arrayStart:()=>Gf,arrayVal:()=>Uf,binaryOp:()=>kh,dot:()=>Mh,filter:()=>Vf,functionCall:()=>Jf,identifier:()=>Ph,literal:()=>Lh,objKey:()=>fa,objStart:()=>Kf,objVal:()=>Yf,semicolon:()=>$f,subExpression:()=>qf,templateString:()=>Nh,ternaryEnd:()=>jf,ternaryMid:()=>zf,ternaryStart:()=>eo,transform:()=>Xf,unaryOp:()=>Hh});function _f(e){e&&this._cursor.args.push(e)}function Gf(){this._placeAtCursor({type:"ArrayLiteral",value:[]})}function Uf(e){e&&this._cursor.value.push(e)}function kh(e){if(e.value==="="){if(this._cursor?.type!=="Identifier")throw new Error("Left side of assignment must be a variable name");let a={type:"AssignmentExpression",operator:"=",left:this._cursor};this._cursor=this._cursor._parent,this._placeAtCursor(a);return}let t=this._grammar.elements[e.value].precedence||0,o=this._cursor?._parent;for(;o&&o.operator&&this._grammar.elements[o.operator].precedence>=t;)this._cursor=o,o=o._parent;let r={type:"BinaryExpression",operator:e.value,left:this._cursor};this._setParent(this._cursor,r),this._cursor=o,this._placeAtCursor(r)}function Mh(){let e=t=>t.type==="BinaryExpression"&&t.right;this._nextIdentEncapsulate=this._cursor&&this._cursor.type!=="UnaryExpression"&&(this._cursor.type!=="BinaryExpression"||e(this._cursor)),this._nextIdentRelative=!this._cursor||!this._nextIdentEncapsulate,this._nextIdentRelative&&(this._relative=!0)}function Vf(e){this._placeBeforeCursor({type:"FilterExpression",expr:e,relative:this._subParser.isRelative(),subject:this._cursor})}function Jf(){this._placeBeforeCursor({type:"FunctionCall",name:this._cursor.value,args:[],pool:"functions"})}function Ph(e){let t={type:"Identifier",value:e.value};this._nextIdentEncapsulate?(t.from=this._cursor,this._placeBeforeCursor(t),this._nextIdentEncapsulate=!1):(this._nextIdentRelative&&(t.relative=!0,this._nextIdentRelative=!1),this._placeAtCursor(t))}function Lh(e){this._placeAtCursor({type:"Literal",value:e.value})}function Nh(e){let t=[];for(let o of e.value)if(o.type==="static")t.push({type:"static",value:this._lexer._unescapeTemplateString(o.value)});else{let r=this._lexer.tokenize(o.value),a=new this.constructor(this._grammar,this._lexer);a.addTokens(r);let f=a.complete();if(!f)throw new Error("Empty interpolation in template string");t.push({type:"expression",value:f})}this._placeAtCursor({type:"TemplateLiteral",parts:t})}function fa(e){this._curObjKey=e.value}function Kf(){this._placeAtCursor({type:"ObjectLiteral",value:{}})}function Yf(e){this._cursor.value[this._curObjKey]=e}function qf(e){this._placeAtCursor(e)}function jf(e){this._cursor.alternate=e}function zf(e){this._cursor.consequent=e}function eo(){this._tree={type:"ConditionalExpression",test:this._tree},this._cursor=this._tree}function Xf(e){this._placeBeforeCursor({type:"FunctionCall",name:e.value,args:[this._cursor],pool:"transforms"})}function Hh(e){this._placeAtCursor({type:"UnaryExpression",operator:e.value})}function $f(){this._sequenceExpressions?this._sequenceExpressions.push(this._tree):this._sequenceExpressions=[this._tree],this._tree=null,this._cursor=null,this._state="expectOperand"}var Wo={expectOperand:{tokenTypes:{literal:{toState:"expectBinOp"},templateString:{toState:"expectBinOp"},identifier:{toState:"identifier"},unaryOp:{},openParen:{toState:"subExpression"},openCurl:{toState:"expectObjKey",handler:Kf},dot:{toState:"traverse"},openBracket:{toState:"arrayVal",handler:Gf}}},expectBinOp:{tokenTypes:{binaryOp:{toState:"expectOperand"},pipe:{toState:"expectTransform"},dot:{toState:"traverse"},question:{toState:"ternaryMid",handler:eo},semicolon:{handler:$f}},completable:!0},expectTransform:{tokenTypes:{identifier:{toState:"postTransform",handler:Xf}}},expectObjKey:{tokenTypes:{literal:{toState:"expectKeyValSep",handler:fa},identifier:{toState:"expectKeyValSep",handler:fa},closeCurl:{toState:"expectBinOp"}}},expectKeyValSep:{tokenTypes:{colon:{toState:"objVal"}}},postTransform:{tokenTypes:{openParen:{toState:"argVal"},binaryOp:{toState:"expectOperand"},dot:{toState:"traverse"},openBracket:{toState:"filter"},pipe:{toState:"expectTransform"},question:{toState:"ternaryMid",handler:eo}},completable:!0},postArgs:{tokenTypes:{binaryOp:{toState:"expectOperand"},dot:{toState:"traverse"},openBracket:{toState:"filter"},pipe:{toState:"expectTransform"},question:{toState:"ternaryMid",handler:eo}},completable:!0},identifier:{tokenTypes:{binaryOp:{toState:"expectOperand"},dot:{toState:"traverse"},openBracket:{toState:"filter"},openParen:{toState:"argVal",handler:Jf},pipe:{toState:"expectTransform"},question:{toState:"ternaryMid",handler:eo}},completable:!0},traverse:{tokenTypes:{identifier:{toState:"identifier"}}},filter:{subHandler:Vf,endStates:{closeBracket:"identifier"}},subExpression:{subHandler:qf,endStates:{closeParen:"expectBinOp"}},argVal:{subHandler:_f,endStates:{comma:"argVal",closeParen:"postArgs"}},objVal:{subHandler:Yf,endStates:{comma:"expectObjKey",closeCurl:"expectBinOp"}},arrayVal:{subHandler:Uf,endStates:{comma:"arrayVal",closeBracket:"expectBinOp"}},ternaryMid:{subHandler:zf,endStates:{colon:"ternaryEnd"}},ternaryEnd:{subHandler:jf,completable:!0}};var Zf=class e{constructor(t,o,r,a){this._grammar=t,this._lexer=o,this._state="expectOperand",this._tree=null,this._exprStr=r||"",this._relative=!1,this._stopMap=a||{}}addToken(t){if(this._state==="complete")throw new Error("Cannot add a new token to a completed Parser");let o=Wo[this._state],r=this._exprStr;if(this._exprStr+=t.raw,o.subHandler){this._subParser||this._startSubExpression(r);let a=this._subParser.addToken(t);if(a){if(this._endSubExpression(),this._parentStop)return a;this._state=a}}else if(o.tokenTypes?.[t.type]){let a=o.tokenTypes[t.type],f=na[t.type];a.handler&&(f=a.handler),f&&f.call(this,t),a.toState&&(this._state=a.toState)}else{if(this._stopMap[t.type])return this._stopMap[t.type];throw new Error(`Token ${t.raw} (${t.type}) unexpected in expression: ${this._exprStr}`)}return!1}addTokens(t){t.forEach(o=>this.addToken(o))}complete(){if(this._cursor&&!Wo[this._state].completable)throw new Error(`Unexpected end of expression: ${this._exprStr}`);if(this._subParser&&this._endSubExpression(),this._sequenceExpressions){this._sequenceExpressions.push(this._tree);let t={type:"SequenceExpression",expressions:this._sequenceExpressions};return this._state="complete",t}return this._state="complete",this._cursor?this._tree:null}isRelative(){return this._relative}_endSubExpression(){Wo[this._state].subHandler.call(this,this._subParser.complete()),this._subParser=void 0}_placeAtCursor(t){this._cursor?(this._cursor.right=t,this._setParent(t,this._cursor)):this._tree=t,this._cursor=t}_placeBeforeCursor(t){this._cursor=this._cursor?._parent,this._placeAtCursor(t)}_setParent(t,o){Object.defineProperty(t,"_parent",{value:o,writable:!0})}_startSubExpression(t){let o=Wo[this._state].endStates;o||(this._parentStop=!0,o=this._stopMap),this._subParser=new e(this._grammar,this._lexer,t,o)}},qi=Zf;var en=class{constructor(t,o){this._grammar=t,this._exprStr=o,this._ast=null}compile(){let t=new Nf(this._grammar),o=new qi(this._grammar,t),r=t.tokenize(this._exprStr);return o.addTokens(r),this._ast=o.complete(),this}eval(t={}){let o=this._getAst();return new Yi(this._grammar,t).eval(o)}_getAst(){return this._ast||this.compile(),this._ast}},tn=en;var on=()=>({elements:{".":{type:"dot"},"[":{type:"openBracket"},"]":{type:"closeBracket"},"{":{type:"openCurl"},"}":{type:"closeCurl"},":":{type:"colon"},",":{type:"comma"},"(":{type:"openParen"},")":{type:"closeParen"},"?":{type:"question"},";":{type:"semicolon"},"+":{type:"binaryOp",precedence:30,eval:(e,t)=>e+t},"-":{type:"binaryOp",precedence:30,eval:(e,t)=>e-t},"*":{type:"binaryOp",precedence:40,eval:(e,t)=>e*t},"/":{type:"binaryOp",precedence:40,eval:(e,t)=>e/t},"//":{type:"binaryOp",precedence:40,eval:(e,t)=>Math.floor(e/t)},"%":{type:"binaryOp",precedence:50,eval:(e,t)=>e%t},"^":{type:"binaryOp",precedence:50,eval:(e,t)=>Math.pow(e,t)},"==":{type:"binaryOp",precedence:20,eval:(e,t)=>e==t},"!=":{type:"binaryOp",precedence:20,eval:(e,t)=>e!=t},">":{type:"binaryOp",precedence:20,eval:(e,t)=>e>t},">=":{type:"binaryOp",precedence:20,eval:(e,t)=>e>=t},"<":{type:"binaryOp",precedence:20,eval:(e,t)=>e<t},"<=":{type:"binaryOp",precedence:20,eval:(e,t)=>e<=t},"&&":{type:"binaryOp",precedence:10,evalOnDemand:(e,t)=>{let o=e.eval();return o&&t.eval()}},"||":{type:"binaryOp",precedence:10,evalOnDemand:(e,t)=>{let o=e.eval();return o||t.eval()}},in:{type:"binaryOp",precedence:20,eval:(e,t)=>typeof t=="string"||Array.isArray(t)?t.includes(e):!1},"!":{type:"unaryOp",precedence:1/0,eval:e=>!e},"=":{type:"binaryOp",precedence:2,eval:(e,t)=>{throw new Error("Assignment handled specially")}}},functions:{}});var to=class{constructor(){this._grammar=on(),this.expr=this.expr.bind(this)}addBinaryOp(t,o,r,a){this._addGrammarElement(t,{type:"binaryOp",precedence:o,[a?"evalOnDemand":"eval"]:r})}addFunction(t,o){this._grammar.functions[t]=o}addFunctions(t){Object.assign(this._grammar.functions,t)}addUnaryOp(t,o){this._addGrammarElement(t,{type:"unaryOp",weight:1/0,eval:o})}compile(t){return this.createExpression(t).compile()}createExpression(t){return new tn(this._grammar,t)}getFunction(t){return this._grammar.functions[t]}eval(t,o={}){return this.createExpression(t).eval(o)}expr(t,...o){let r="";for(let a=0;a<t.length;a++)r+=t[a],a<o.length&&(r+=o[a]);return this.createExpression(r)}removeOp(t){let o=this._grammar.elements[t];o&&(o.type==="binaryOp"||o.type==="unaryOp")&&Reflect.deleteProperty(this._grammar.elements,t)}_addGrammarElement(t,o){this._grammar.elements[t]=o}},oB=new to;function rn(){let e=new to;return e.addFunction("get",(t,o)=>t.get(o)),e.addFunction("parent",t=>t.parent?.()),e.addFunction("id",t=>t.id()),e.addFunction("cast",t=>t),e.addFunction("log",t=>(console.log(t),t)),e.addFunction("max",Math.max),e.addFunction("min",Math.min),e.addFunction("sqrt",Math.sqrt),e.addFunction("ceil",Math.ceil),e.addFunction("floor",Math.floor),e.addFunction("round",Math.round),e.addFunction("abs",Math.abs),e.addFunction("log10",Math.log10),e.addFunction("parseInt",Number.parseInt),e.addFunction("parseFloat",Number.parseFloat),e.addFunction("split",(t,o)=>t.split(o)),e.addFunction("join",(t,...o)=>[...o].filter(r=>!!r).join(t)),e.addFunction("charAt",(t,o)=>t.charAt(o)),e.addFunction("charCodeAt",(t,o)=>t.charCodeAt(o)),e.addFunction("codePointAt",(t,o)=>t.codePointAt(o)),e.addFunction("includes",(t,o)=>t.includes(o)),e.addFunction("startsWith",(t,o,r)=>t.startsWith(o,r)),e.addFunction("endsWith",(t,o,r)=>t.endsWith(o,r)),e.addFunction("padEnd",(t,o,r)=>t.padEnd(o,r)),e.addFunction("padStart",(t,o,r)=>t.padStart(o,r)),e.addFunction("repeat",(t,o)=>t.repeat(o)),e.addFunction("replace",(t,o,r)=>t.replace(o,r)),e.addFunction("replaceAll",(t,o,r)=>t.replaceAll(o,r)),e.addFunction("slice",(t,o,r)=>t.slice(o,r)),e.addFunction("startsWith",(t,o,r)=>t.startsWith(o,r)),e.addFunction("substring",(t,o,r)=>t.substring(o,r)),e.addFunction("toLowerCase",t=>t.toLowerCase()),e.addFunction("toUpperCase",t=>t.toUpperCase()),e.addFunction("jsonParse",t=>JSON.parse(t)),e.addFunction("trim",t=>t.trim()),e.addFunction("trimEnd",t=>t.trimEnd()),e.addFunction("trimStart",t=>t.trimStart()),e.addFunction("getTag",(t,o)=>{let r=t.get("tags");return r?r[o]:t.get(o)}),e.addBinaryOp("&",15,(t,o)=>t&o),e}var an={};function ji(e,t){let o=`nosig|${e}`;if(!an[o]){if(!e.startsWith("jexl:"))throw new Error("string does not appear to be in jexl format");let a=e.split("jexl:")[1],f=t?t.compile(a):rn().compile(a);an[o]=f}return an[o]}function fn(e){return typeof e=="object"&&e!==null&&"findAppropriateInternetAccount"in e}function nn(e){return typeof e=="object"&&e!==null&&"uri"in e&&!!e.uri}function ln(e){return typeof e=="object"&&e!==null&&"handleId"in e&&!!e.handleId}var la=class extends Error{message;internetAccountId;constructor(t,o){super(t),this.message=t,this.internetAccountId=o,this.name="RetryError"}};function zi(e){return e instanceof Error&&(e.name==="AuthNeededError"||e.url!==void 0)}function Xi(e){return typeof e=="object"&&e!==null&&"__rpcResult"in e&&e.__rpcResult}var sn=function(e,t){return sn=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(o,r){o.__proto__=r}||function(o,r){for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(o[a]=r[a])},sn(e,t)};function _o(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");sn(e,t);function o(){this.constructor=e}e.prototype=t===null?Object.create(t):(o.prototype=t.prototype,new o)}function dn(e){var t=typeof Symbol=="function"&&Symbol.iterator,o=t&&e[t],r=0;if(o)return o.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function oo(e,t){var o=typeof Symbol=="function"&&e[Symbol.iterator];if(!o)return e;var r=o.call(e),a,f=[],n;try{for(;(t===void 0||t-- >0)&&!(a=r.next()).done;)f.push(a.value)}catch(l){n={error:l}}finally{try{a&&!a.done&&(o=r.return)&&o.call(r)}finally{if(n)throw n.error}}return f}function ro(e,t,o){if(o||arguments.length===2)for(var r=0,a=t.length,f;r<a;r++)(f||!(r in t))&&(f||(f=Array.prototype.slice.call(t,0,r)),f[r]=t[r]);return e.concat(f||Array.prototype.slice.call(t))}function He(e){return typeof e=="function"}function sa(e){var t=function(r){Error.call(r),r.stack=new Error().stack},o=e(t);return o.prototype=Object.create(Error.prototype),o.prototype.constructor=o,o}var da=sa(function(e){return function(o){e(this),this.message=o?o.length+` errors occurred during unsubscription:
8
8
  `+o.map(function(r,a){return a+1+") "+r.toString()}).join(`
9
- `):"",this.name="UnsubscriptionError",this.errors=o}});function un(e,t){if(e){var o=e.indexOf(t);0<=o&&e.splice(o,1)}}var ua=(function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,o,r,a,f;if(!this.closed){this.closed=!0;var n=this._parentage;if(n)if(this._parentage=null,Array.isArray(n))try{for(var l=dn(n),u=l.next();!u.done;u=l.next()){var s=u.value;s.remove(this)}}catch(h){t={error:h}}finally{try{u&&!u.done&&(o=l.return)&&o.call(l)}finally{if(t)throw t.error}}else n.remove(this);var d=this.initialTeardown;if(He(d))try{d()}catch(h){f=h instanceof da?h.errors:[h]}var i=this._finalizers;if(i){this._finalizers=null;try{for(var m=dn(i),p=m.next();!p.done;p=m.next()){var x=p.value;try{$i(x)}catch(h){f=f??[],h instanceof da?f=ro(ro([],oo(f)),oo(h.errors)):f.push(h)}}}catch(h){r={error:h}}finally{try{p&&!p.done&&(a=m.return)&&a.call(m)}finally{if(r)throw r.error}}}if(f)throw new da(f)}},e.prototype.add=function(t){var o;if(t&&t!==this)if(this.closed)$i(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(o=this._finalizers)!==null&&o!==void 0?o:[]).push(t)}},e.prototype._hasParent=function(t){var o=this._parentage;return o===t||Array.isArray(o)&&o.includes(t)},e.prototype._addParent=function(t){var o=this._parentage;this._parentage=Array.isArray(o)?(o.push(t),o):o?[o,t]:t},e.prototype._removeParent=function(t){var o=this._parentage;o===t?this._parentage=null:Array.isArray(o)&&un(o,t)},e.prototype.remove=function(t){var o=this._finalizers;o&&un(o,t),t instanceof e&&t._removeParent(this)},e.EMPTY=(function(){var t=new e;return t.closed=!0,t})(),e})();var OB=ua.EMPTY;function Zi(e){return e instanceof ua||e&&"closed"in e&&He(e.remove)&&He(e.add)&&He(e.unsubscribe)}function $i(e){He(e)?e():e.unsubscribe()}var pt={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var ao={setTimeout:function(e,t){for(var o=[],r=2;r<arguments.length;r++)o[r-2]=arguments[r];var a=ao.delegate;return a?.setTimeout?a.setTimeout.apply(a,ro([e,t],oo(o))):setTimeout.apply(void 0,ro([e,t],oo(o)))},clearTimeout:function(e){var t=ao.delegate;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function ep(e){ao.setTimeout(function(){var t=pt.onUnhandledError;if(t)t(e);else throw e})}function pn(){}var tp=(function(){return mn("C",void 0,void 0)})();function op(e){return mn("E",void 0,e)}function rp(e){return mn("N",e,void 0)}function mn(e,t,o){return{kind:e,value:t,error:o}}var xn=null;function ap(e){pt.useDeprecatedSynchronousErrorHandling&&xn&&(xn.errorThrown=!0,xn.error=e)}var hn=(function(e){_o(t,e);function t(o){var r=e.call(this)||this;return r.isStopped=!1,o?(r.destination=o,Zi(o)&&o.add(r)):r.destination=Vh,r}return t.create=function(o,r,a){return new gn(o,r,a)},t.prototype.next=function(o){this.isStopped?An(rp(o),this):this._next(o)},t.prototype.error=function(o){this.isStopped?An(op(o),this):(this.isStopped=!0,this._error(o))},t.prototype.complete=function(){this.isStopped?An(tp,this):(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(o){this.destination.next(o)},t.prototype._error=function(o){try{this.destination.error(o)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t})(ua);var _h=Function.prototype.bind;function cn(e,t){return _h.call(e,t)}var Gh=(function(){function e(t){this.partialObserver=t}return e.prototype.next=function(t){var o=this.partialObserver;if(o.next)try{o.next(t)}catch(r){ia(r)}},e.prototype.error=function(t){var o=this.partialObserver;if(o.error)try{o.error(t)}catch(r){ia(r)}else ia(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(o){ia(o)}},e})(),gn=(function(e){_o(t,e);function t(o,r,a){var f=e.call(this)||this,n;if(He(o)||!o)n={next:o??void 0,error:r??void 0,complete:a??void 0};else{var l;f&&pt.useDeprecatedNextContext?(l=Object.create(o),l.unsubscribe=function(){return f.unsubscribe()},n={next:o.next&&cn(o.next,l),error:o.error&&cn(o.error,l),complete:o.complete&&cn(o.complete,l)}):n=o}return f.destination=new Gh(n),f}return t})(hn);function ia(e){pt.useDeprecatedSynchronousErrorHandling?ap(e):ep(e)}function Uh(e){throw e}function An(e,t){var o=pt.onStoppedNotification;o&&ao.setTimeout(function(){return o(e,t)})}var Vh={closed:!0,next:pn,error:Uh,complete:pn};function Jh(e){return He(e?.lift)}function pa(e){return function(t){if(Jh(t))return t.lift(function(o){try{return e(o,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function fp(e,t,o,r,a){return new Kh(e,t,o,r,a)}var Kh=(function(e){_o(t,e);function t(o,r,a,f,n,l){var u=e.call(this,o)||this;return u.onFinalize=n,u.shouldUnsubscribe=l,u._next=r?function(s){try{r(s)}catch(d){o.error(d)}}:e.prototype._next,u._error=f?function(s){try{f(s)}catch(d){o.error(d)}finally{this.unsubscribe()}}:e.prototype._error,u._complete=a?function(){try{a()}catch(s){o.error(s)}finally{this.unsubscribe()}}:e.prototype._complete,u}return t.prototype.unsubscribe=function(){var o;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;e.prototype.unsubscribe.call(this),!r&&((o=this.onFinalize)===null||o===void 0||o.call(this))}},t})(hn);var np=sa(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function Tn(e,t){var o=typeof t=="object";return new Promise(function(r,a){var f=new gn({next:function(n){r(n),f.unsubscribe()},error:a,complete:function(){o?r(t.defaultValue):a(new np)}});e.subscribe(f)})}function lp(e,t,o,r,a){return function(f,n){var l=o,u=t,s=0;f.subscribe(fp(n,function(d){var i=s++;u=l?e(u,d,i):(l=!0,d),r&&n.next(u)},a&&(function(){l&&n.next(u),n.complete()})))}}function sp(e,t){return pa(lp(e,t,arguments.length>=2,!1,!0))}var Yh=function(e,t){return e.push(t),e};function Sn(){return pa(function(e,t){sp(Yh,[])(e).subscribe(t)})}var ma=S(ve(),1);var dp={};function wn(){return dp}function up(e){dp=e}var qh={};function ip(e){return qh[e]}var TI=180/Math.PI,SI=Math.PI/180;function Xh(e,t){if((0,We.isStateTreeNode)(t)&&!(0,We.isAlive)(t))return t;if(e?.[t.refName]){t=(0,We.isStateTreeNode)(t)?{...(0,We.getSnapshot)(t)}:{...t};let o=e[t.refName];if(o)return{...t,refName:o,originalRefName:t.refName}}return t}async function pp(e,t){let{regions:o=[],adapterConfig:r}=t;if(!t.sessionId)throw new Error("sessionId is required");let a=o.map(n=>n.assemblyName),f=Object.fromEntries(await Promise.all([...new Set(a)].map(async n=>[n,await e.getRefNameMapForAdapter(r,n,t)])));return{...t,regions:o.map((n,l)=>Xh(f[a[l]],n))}}var wI=/electron/i.test(typeof navigator<"u"?navigator.userAgent:"");var CI=typeof jest>"u"?typeof window<"u"&&window.requestIdleCallback?window.requestIdleCallback:e=>setTimeout(()=>{e()},1):e=>{e()};function Rn(e){let t=0;if(e.length===0)return t;for(let o=0;o<e.length;o++){let r=e.charCodeAt(o);t=(t<<5)-t+r,t|=0}return t}function yn(e,t="",o=5e3){let r=[e];for(;r.length;){let a=r.pop();for(let[f,n]of Object.entries(a)){if(t.length>o)return Rn(t);typeof n=="object"&&n!==null?r.push(n):f==="locationType"&&n==="FileHandleLocation"?t+=`${f}-BlobLocation`:f==="handleId"?t+=`blobId-fh-blob-${n}`:t+=`${f}-${n}`}}return`adp-${Rn(t)}`}function mp(e={}){return e.type&&e.adapterId?`${e.type}-${e.adapterId}`:`${yn(e)}`}var xp={};async function $h(e,t,o){let r=o?.type;if(!r)throw new Error(`could not determine adapter type from adapter config snapshot ${JSON.stringify(o)}`);let a=e.getAdapterType(r);if(!a)throw new Error(`unknown data adapter type ${r}`);let f=a.configSchema.create(o,{pluginManager:e}),n=Bt.bind(null,e,t),l=await a.getAdapterClass();return{dataAdapter:new l(f,n,e),sessionIds:new Set([t])}}async function Bt(e,t,o){let r=mp(o);xp[r]??=$h(e,t,o);let a=await xp[r];return a.sessionIds.add(t),a}var Mp=S(Je()),ca=S(se());var Qp=S(Xe());var Go=class{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(t,o){let r=this.length++;for(;r>0;){let a=r-1>>1,f=this.values[a];if(o>=f)break;this.ids[r]=this.ids[a],this.values[r]=f,r=a}this.ids[r]=t,this.values[r]=o}pop(){if(this.length===0)return;let t=this.ids,o=this.values,r=t[0],a=--this.length;if(a>0){let f=t[a],n=o[a],l=0,u=a>>1;for(;l<u;){let s=(l<<1)+1,d=s+1,i=s+(+(d<a)&+(o[d]<o[s]));if(o[i]>=n)break;t[l]=t[i],o[l]=o[i],l=i}t[l]=f,o[l]=n}return r}peek(){return this.length>0?this.ids[0]:void 0}peekValue(){return this.length>0?this.values[0]:void 0}shrink(){this.ids.length=this.values.length=this.length}};var cp=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],Bn=3,It=class e{static from(t,o=0){if(o%8!==0)throw new Error("byteOffset must be 8-byte aligned.");if(!t||t.byteLength===void 0||t.buffer)throw new Error("Data must be an instance of ArrayBuffer or SharedArrayBuffer.");let[r,a]=new Uint8Array(t,o+0,2);if(r!==251)throw new Error("Data does not appear to be in a Flatbush format.");let f=a>>4;if(f!==Bn)throw new Error(`Got v${f} data when expected v${Bn}.`);let n=cp[a&15];if(!n)throw new Error("Unrecognized array type.");let[l]=new Uint16Array(t,o+2,1),[u]=new Uint32Array(t,o+4,1);return new e(u,l,n,void 0,t,o)}constructor(t,o=16,r=Float64Array,a=ArrayBuffer,f,n=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(+o,2),65535),this.byteOffset=n;let l=t,u=l;this._levelBounds=[l*4];do l=Math.ceil(l/this.nodeSize),u+=l,this._levelBounds.push(u*4);while(l!==1);this.ArrayType=r,this.IndexArrayType=u<16384?Uint16Array:Uint32Array;let s=cp.indexOf(r),d=u*4*r.BYTES_PER_ELEMENT;if(s<0)throw new Error(`Unexpected typed array class: ${r}.`);if(f)this.data=f,this._boxes=new r(f,n+8,u*4),this._indices=new this.IndexArrayType(f,n+8+d,u),this._pos=u*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 i=this.data=new a(8+d+u*this.IndexArrayType.BYTES_PER_ELEMENT);this._boxes=new r(i,8,u*4),this._indices=new this.IndexArrayType(i,8+d,u),this._pos=0,this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,new Uint8Array(i,0,2).set([251,(Bn<<4)+s]),new Uint16Array(i,2,1)[0]=o,new Uint32Array(i,4,1)[0]=t}this._queue=new Go}add(t,o,r=t,a=o){let f=this._pos>>2,n=this._boxes;return this._indices[f]=f,n[this._pos++]=t,n[this._pos++]=o,n[this._pos++]=r,n[this._pos++]=a,t<this.minX&&(this.minX=t),o<this.minY&&(this.minY=o),r>this.maxX&&(this.maxX=r),a>this.maxY&&(this.maxY=a),f}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 o=this.maxX-this.minX||1,r=this.maxY-this.minY||1,a=new Uint32Array(this.numItems),f=65535;for(let n=0,l=0;n<this.numItems;n++){let u=t[l++],s=t[l++],d=t[l++],i=t[l++],m=Math.floor(f*((u+d)/2-this.minX)/o),p=Math.floor(f*((s+i)/2-this.minY)/r);a[n]=eg(m,p)}In(a,t,this._indices,0,this.numItems-1,this.nodeSize);for(let n=0,l=0;n<this._levelBounds.length-1;n++){let u=this._levelBounds[n];for(;l<u;){let s=l,d=t[l++],i=t[l++],m=t[l++],p=t[l++];for(let x=1;x<this.nodeSize&&l<u;x++)d=Math.min(d,t[l++]),i=Math.min(i,t[l++]),m=Math.max(m,t[l++]),p=Math.max(p,t[l++]);this._indices[this._pos>>2]=s,t[this._pos++]=d,t[this._pos++]=i,t[this._pos++]=m,t[this._pos++]=p}}}search(t,o,r,a,f){if(this._pos!==this._boxes.length)throw new Error("Data not yet indexed - call index.finish().");let n=this._boxes.length-4,l=[],u=[];for(;n!==void 0;){let s=Math.min(n+this.nodeSize*4,Ap(n,this._levelBounds));for(let d=n;d<s;d+=4){let i=this._boxes[d];if(r<i)continue;let m=this._boxes[d+1];if(a<m)continue;let p=this._boxes[d+2];if(t>p)continue;let x=this._boxes[d+3];if(o>x)continue;let h=this._indices[d>>2]|0;n>=this.numItems*4?l.push(h):(f===void 0||f(h,i,m,p,x))&&u.push(h)}n=l.pop()}return u}neighbors(t,o,r=1/0,a=1/0,f){if(this._pos!==this._boxes.length)throw new Error("Data not yet indexed - call index.finish().");let n=this._boxes.length-4,l=this._queue,u=[],s=a*a;e:for(;n!==void 0;){let d=Math.min(n+this.nodeSize*4,Ap(n,this._levelBounds));for(let i=n;i<d;i+=4){let m=this._indices[i>>2]|0,p=this._boxes[i],x=this._boxes[i+1],h=this._boxes[i+2],g=this._boxes[i+3],T=t<p?p-t:t>h?t-h:0,w=o<x?x-o:o>g?o-g:0,c=T*T+w*w;c>s||(n>=this.numItems*4?l.push(m<<1,c):(f===void 0||f(m))&&l.push((m<<1)+1,c))}for(;l.length&&l.peek()&1;)if(l.peekValue()>s||(u.push(l.pop()>>1),u.length===r))break e;n=l.length?l.pop()>>1:void 0}return l.clear(),u}};function Ap(e,t){let o=0,r=t.length-1;for(;o<r;){let a=o+r>>1;t[a]>e?r=a:o=a+1}return t[o]}function In(e,t,o,r,a,f){if(Math.floor(r/f)>=Math.floor(a/f))return;let n=e[r],l=e[r+a>>1],u=e[a],s=u,d=Math.max(n,l);u>d?s=d:d===n?s=Math.max(l,u):d===l&&(s=Math.max(n,u));let i=r-1,m=a+1;for(;;){do i++;while(e[i]<s);do m--;while(e[m]>s);if(i>=m)break;Zh(e,t,o,i,m)}In(e,t,o,r,m,f),In(e,t,o,m+1,a,f)}function Zh(e,t,o,r,a){let f=e[r];e[r]=e[a],e[a]=f;let n=4*r,l=4*a,u=t[n],s=t[n+1],d=t[n+2],i=t[n+3];t[n]=t[l],t[n+1]=t[l+1],t[n+2]=t[l+2],t[n+3]=t[l+3],t[l]=u,t[l+1]=s,t[l+2]=d,t[l+3]=i;let m=o[r];o[r]=o[a],o[a]=m}function eg(e,t){let o=e^t,r=65535^o,a=65535^(e|t),f=e&(t^65535),n=o|r>>1,l=o>>1^o,u=a>>1^r&f>>1^a,s=o&a>>1^f>>1^f;o=n,r=l,a=u,f=s,n=o&o>>2^r&r>>2,l=o&r>>2^r&(o^r)>>2,u^=o&a>>2^r&f>>2,s^=r&a>>2^(o^r)&f>>2,o=n,r=l,a=u,f=s,n=o&o>>4^r&r>>4,l=o&r>>4^r&(o^r)>>4,u^=o&a>>4^r&f>>4,s^=r&a>>4^(o^r)&f>>4,o=n,r=l,a=u,f=s,u^=o&a>>8^r&f>>8,s^=r&a>>8^(o^r)&f>>8,o=u^u>>1,r=s^s>>1;let d=e^t,i=r|65535^(d|o);return d=(d|d<<8)&16711935,d=(d|d<<4)&252645135,d=(d|d<<2)&858993459,d=(d|d<<1)&1431655765,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,(i<<1|d)>>>0}var hp="bold 10px Courier New,monospace";function Uo(e,t,o,r=!1){if(r)return!0;let a=o.lastInsertedXPerRow.get(t)??-1/0;return Math.abs(e-a)>1*Math.max(1,o.bpPerPx)}function Vo(e,t,o,r,a,f,n){e.spatialIndex.push(n),e.spatialIndexCoords.push(t,o,r,a),e.lastInsertedXPerRow.set(f,t)}function gp(e,t,o,r,a){let{ctx:f,scale:n}=e,l=e.rowHeight/2;f.beginPath(),f.fillStyle="black";for(let u=0,s=0,d=t.length;u<d;u++)if(o[u]!=="-"){if(t[u]==="-"){let i=r+n*s;f.moveTo(i,a+l),f.lineTo(i+n+.4,a+l)}s++}f.stroke()}var On=S(se());function Tp(e){return Object.fromEntries(Object.entries(En(e)).map(([t,o])=>[t,e.palette.getContrastText(o)]))}function En(e){let{bases:t}=e.palette;return{a:t.A.main,c:t.C.main,g:t.G.main,t:t.T.main}}function Ee(e,t,o,r,a,f,n){t+r<0||t>f||(n&&(e.fillStyle=n),e.fillRect(t,o,r,a))}function Sp(){let e=(0,On.measureText)("A"),t=(0,On.measureText)("M")-2;return{charWidth:e,charHeight:t}}function wp(e,t,o,r,a){if(e.showAllLetters)return;let{ctx:f,scale:n,h:l,canvasWidth:u}=e;f.fillStyle="lightgrey";for(let s=0,d=0,i=t.length;s<i;s++){let m=o[s];if(m!=="-"){let p=t[s];if(m.toLowerCase()===p.toLowerCase()&&p!==" "){let x=r+n*d;Ee(f,x,a,n+.4,l,u)}d++}}}function Cp(e,t,o,r,a,f,n,l){let{ctx:u,scale:s,h:d,canvasWidth:i,showAllLetters:m,mismatchRendering:p,colorForBase:x}=e;for(let h=0,g=0,T=t.length;h<T;h++){let w=t[h],c=o[h];if(c!=="-"){if(w!=="-"){let A=r+s*g,C=w.toLowerCase();c.toLowerCase()!==C&&w!==" "?(Ee(u,A,a,s+.4,d,i,p?x[C]??"black":"orange"),Uo(A,f,e)&&Vo(e,A,a,A+e.scale+.4,a+e.h,f,{pos:g+n,chr:l,base:C,rowIndex:f})):m&&(Ee(u,A,a,s+.4,d,i,p?x[C]??"black":"lightblue"),Uo(A,f,e)&&Vo(e,A,a,A+e.scale+.4,a+e.h,f,{pos:g+n,chr:l,base:C,rowIndex:f}))}g++}}}function Rp(e,t,o,r,a){let{ctx:f,scale:n,hp2:l,rowHeight:u,showAllLetters:s,mismatchRendering:d,contrastForBase:i,showAsUpperCase:m,charHeight:p}=e;if(n>=10)for(let x=0,h=0,g=t.length;x<g;x++){let T=o[x];if(T!=="-"){let w=r+n*h,c=(n-10)/2+1,A=t[x];if((s||T.toLowerCase()!==A.toLowerCase())&&A!=="-"){let C=A.toLowerCase();if(f.fillStyle=d?i[C]??"white":"black",u>p){let I=m?A.toUpperCase():A;f.fillText(I,w+c,l+a+3)}}h++}}}var Op=S(se());function Ep(e,t,o,r,a,f,n,l,u){let{ctx:s,scale:d,h:i,canvasWidth:m,rowHeight:p,charHeight:x}=e;for(let h=0,g=0,T=t.length;h<T;h++){let w="";for(;o[h]==="-";){let c=t[h];c!=="-"&&c!==" "&&(w+=c.toLowerCase()),h++}if(w.length>0){let c=r+d*g-1,A,C;if(w.length>10){let R=`${w.length}`;if(f>10)A=c-1,C=2,Ee(s,A,a,C,i,m,"purple");else if(i>x){let B=(0,Op.measureText)(R,10),E=2;A=c-B/2-E,C=B+2*E,Ee(s,A,a,C,i,m,"purple"),s.fillStyle="white",s.fillText(R,c-B/2,a+i*7/8)}else{let B=2;A=c-B,C=2*B,Ee(s,A,a,C,i,m,"purple")}}else{A=c,C=1,Ee(s,A,a,C,i,m,"purple");let R=2;A=c-R,C=1+2*R,f<.2&&p>5&&(Ee(s,c-2,a,5,1,m),Ee(s,c-2,a+i-1,5,1,m))}let I=w.length>10;Uo(A,n,e,!0)&&Vo(e,A,a,A+C,a+e.h,n,{pos:g+l,chr:u,base:w,rowIndex:n,isInsertion:!0,isLargeInsertion:I})}g++}}var bp=S(se());function vp(e,t,o,r,a){let[f]=(0,bp.featureSpanPx)(e,t,o),n=e.get("alignments"),l=e.get("seq");for(let[u,s]of Object.entries(n)){let d=r.get(u);if(d===void 0)continue;let i=s.seq,m=a.offset+a.rowHeight*d;gp(a,i,l,f,m),wp(a,i,l,f,m),Cp(a,i,l,f,m,d,s.start,s.chr),Rp(a,i,l,f,m),Ep(a,i,l,f,m,o,d,s.start,s.chr)}}function Fp(e,t){let{regions:o,bpPerPx:r,rowHeight:a,showAllLetters:f,theme:n,mismatchRendering:l,samples:u,rowProportion:s,showAsUpperCase:d}=t,i=o[0],m=(i.end-i.start)/r,p=a*s,x=(0,Qp.createJBrowseTheme)(n),h=En(x),g=Tp(x),T=new Map(u.map((B,E)=>[B.id,E])),w=1/r,c=p/2,A=(a-p)/2,{charWidth:C,charHeight:I}=Sp();return e.font=hp,{renderingContext:{ctx:e,scale:w,bpPerPx:r,canvasWidth:m,rowHeight:a,h:p,hp2:c,offset:A,colorForBase:h,contrastForBase:g,showAllLetters:f,mismatchRendering:l,showAsUpperCase:d,charWidth:C,charHeight:I,spatialIndex:[],spatialIndexCoords:[],lastInsertedXPerRow:new Map},sampleToRowMap:T,region:i}}function Dp(e,t,o,r,a){vp(e,t,o,r,a)}function kp(e,t){let o=new It(e.spatialIndex.length||1);if(e.spatialIndex.length===0)o.add(0,0,1,1);else for(let r=0,a=e.spatialIndexCoords.length;r<a;r+=4)o.add(e.spatialIndexCoords[r],e.spatialIndexCoords[r+1],e.spatialIndexCoords[r+2],e.spatialIndexCoords[r+3]);return o.finish(),{flatbush:o.data,items:e.spatialIndex,samples:t}}var Jo=class extends Mp.FeatureRendererType{getExpandedRegion(t){let{start:o,end:r}=t,a=1;return{...t,start:Math.floor(Math.max(o-a,0)),end:Math.ceil(r+a)}}async render(t){let{regions:o,bpPerPx:r,samples:a,rowHeight:f,sessionId:n,adapterConfig:l,highResolutionScaling:u=1}=t,s=o[0],d=a.length*f+100,i=(s.end-s.start)/r,m=(0,ca.createCanvas)(Math.ceil(i*u),Math.ceil(d*u)),p=m.getContext("2d");if(!p)throw new Error("Could not get canvas context");u!==1&&p.scale(u,u);let{renderingContext:x,sampleToRowMap:h,region:g}=Fp(p,t),{dataAdapter:T}=await Bt(this.pluginManager,n,l),w=T,c=this.getExpandedRegion(s);await Pt(w.getFeatures(c,t),I=>{this.featurePassesFilters(t,I)&&Dp(I,g,r,h,x)});let{flatbush:A,items:C}=kp(x,a);return{imageData:await(0,ca.createImageBitmap)(m),flatbush:A,items:C,samples:a,features:new Map,width:i,height:d,containsNoTransferables:!0}}};var De=S(D()),Pp=S(Xe());var Lp=S(xe()),ng=(0,Lp.observer)(function(e){let{items:t,displayModel:o,height:r,samples:a,flatbush:f}=e,n=(0,De.useRef)(null),l=(0,De.useMemo)(()=>It.from(f),[f]),[u,s]=(0,De.useState)(!1),d=(0,De.useCallback)((i,m)=>{let p=0,x=0;if(n.current){let A=n.current.getBoundingClientRect();p=i-A.left,x=m-A.top}let h=l.search(p,x,p+1,x+1);if(h.length===0)return;let T=h.find(A=>t[A]?.isInsertion)??h[0],w=T!==void 0?t[T]:void 0;if(!w)return;let c=a[w.rowIndex];return{...w,sampleId:c?.id??"unknown",sampleLabel:c?.label||c?.id||"unknown"}},[l,t,a]);return De.default.createElement("div",{ref:n,onClick:i=>{let m=d(i.clientX,i.clientY);m?.isInsertion&&o.showInsertionSequenceDialog?.({sequence:m.base,sampleLabel:m.sampleLabel,chr:m.chr,pos:m.pos})},onMouseMove:i=>{let m=d(i.clientX,i.clientY);o.setHoveredInfo?.(m),o.setHighlightedRowNames?.(m?.sampleId?[m.sampleId]:void 0),s(!!m?.isInsertion)},onMouseLeave:()=>{o.setHoveredInfo?.(void 0),o.setHighlightedRowNames?.(void 0),s(!1)},style:{overflow:"visible",position:"relative",height:r,cursor:u?"pointer":"default"}},De.default.createElement(Pp.PrerenderedCanvas,{...e,style:{position:"absolute",left:0}}))}),Np=ng;var Hp=S(ze());var lg=(0,Hp.ConfigurationSchema)("LinearMafRenderer",{},{explicitlyTyped:!0}),Wp=lg;function vn(e){e.addRendererType(()=>new Jo({name:"LinearMafRenderer",ReactComponent:Np,configSchema:Wp,pluginManager:e}))}var Up=S(Je()),Vp=S(ve());var F=S(D()),ot=S(Xe()),fo=S(se()),_p=S(ve()),q=S($e()),Gp=S(st()),sg=(0,Gp.makeStyles)()(e=>({textbox:{width:"100%"},paper:{margin:e.spacing(),padding:e.spacing()},submit:{marginTop:25,marginBottom:100,display:"block"}}));function Qn({model:e}){let{classes:t}=sg(),[o,r]=(0,F.useState)(""),[a,f]=(0,F.useState)(),[n,l]=(0,F.useState)(),[u,s]=(0,F.useState)(),[d,i]=(0,F.useState)(),[m,p]=(0,F.useState)("MAF track"),[x,h]=(0,F.useState)("BigMafAdapter"),[g,T]=(0,F.useState)("TBI"),w=(0,_p.getRoot)(e);return F.default.createElement(q.Paper,{className:t.paper},F.default.createElement(q.Paper,null,d?F.default.createElement(ot.ErrorMessage,{error:d}):null,F.default.createElement(q.FormControl,null,F.default.createElement(q.FormLabel,null,"File type"),F.default.createElement(q.RadioGroup,{value:x,onChange:c=>{h(c.target.value)}},["BigMafAdapter","MafTabixAdapter","BgzipTaffyAdapter"].map(c=>F.default.createElement(q.FormControlLabel,{key:c,value:c,control:F.default.createElement(q.Radio,null),checked:x===c,label:c})))),x==="BigMafAdapter"?F.default.createElement(ot.FileSelector,{location:a,name:"Path to bigMaf",rootModel:w,setLocation:c=>{f(c)}}):x==="MafTabixAdapter"?F.default.createElement(F.default.Fragment,null,F.default.createElement(q.FormControl,null,F.default.createElement(q.FormLabel,null,"Index type"),F.default.createElement(q.RadioGroup,{value:x,onChange:c=>{T(c.target.value)}},["TBI","CSI"].map(c=>F.default.createElement(q.FormControlLabel,{key:c,value:c,control:F.default.createElement(q.Radio,null),checked:g===c,label:c})))),F.default.createElement(ot.FileSelector,{location:a,name:"Path to MAF tabix",rootModel:w,setLocation:c=>{f(c)}}),F.default.createElement(ot.FileSelector,{location:n,name:"Path to MAF tabix index",rootModel:w,setLocation:c=>{l(c)}})):F.default.createElement(F.default.Fragment,null,F.default.createElement(ot.FileSelector,{location:a,name:"Path to TAF.gz (Bgzipped TAF)",rootModel:w,setLocation:c=>{f(c)}}),F.default.createElement(ot.FileSelector,{location:n,name:"Path to TAF.gz.tai (TAF index)",rootModel:w,setLocation:c=>{l(c)}}))),F.default.createElement("div",null,F.default.createElement(ot.FileSelector,{location:u,name:"Path to newick tree (.nh)",rootModel:w,setLocation:c=>{s(c)}}),F.default.createElement(q.TextField,{multiline:!0,rows:10,value:o,onChange:c=>{r(c.target.value)},helperText:"Sample names (optional if .nh supplied, required if not)",placeholder:"Enter sample names from the MAF file, one per line, or JSON formatted array of samples",variant:"outlined",fullWidth:!0})),F.default.createElement(q.TextField,{value:m,helperText:"Track name",onChange:c=>{p(c.target.value)}}),F.default.createElement(q.Button,{variant:"contained",className:t.submit,onClick:()=>{try{let c=(0,fo.getSession)(e),A=[];try{A=JSON.parse(o)}catch{A=o.split(/\n|\r\n|\r/)}let C=[`${m.toLowerCase().replaceAll(" ","_")}-${Date.now()}`,c.adminMode?"":"-sessionTrack"].join("");(0,fo.isSessionWithAddTracks)(c)&&(c.addTrackConf({trackId:C,type:"MafTrack",name:m,assemblyNames:[e.assembly],adapter:x==="BigMafAdapter"?{type:x,bigBedLocation:a,samples:A,nhLocation:u}:x==="MafTabixAdapter"?{type:x,bedGzLocation:a,nhLocation:u,index:{indexType:g,location:n},samples:A}:{type:x,tafGzLocation:a,taiLocation:n,nhLocation:u,samples:A}}),e.view?.showTrack(C)),e.clearData(),(0,fo.isSessionModelWithWidgets)(c)&&c.hideWidget(e)}catch(c){i(c)}}},"Submit"))}function Fn(e){e.addAddTrackWorkflowType(()=>new Up.AddTrackWorkflowType({name:"MAF track",ReactComponent:Qn,stateModel:Vp.types.model({})}))}var Ko=class{name;maybeDisplayName;constructor(t){this.name=t?.name||"UNKNOWN",this.maybeDisplayName=t?.displayName}get displayName(){return this.maybeDisplayName||this.name}};var dg=Symbol("mapObjectSkip"),Kp=e=>typeof e=="object"&&e!==null,Jp=e=>{if(!Kp(e)||e instanceof RegExp||e instanceof Error||e instanceof Date||e instanceof Map||e instanceof Set||e instanceof WeakMap||e instanceof WeakSet||e instanceof Promise||e instanceof ArrayBuffer||e instanceof DataView||ArrayBuffer.isView(e)||globalThis.Blob&&e instanceof globalThis.Blob)return!1;let t=e;return!(typeof t.$$typeof=="symbol"||typeof t.asymmetricMatch=="function")},ug=(e,t)=>{if(t){let o=Object.keys(e),r=Object.getOwnPropertySymbols(e).filter(a=>Object.getOwnPropertyDescriptor(e,a)?.enumerable);return[...o,...r]}return Object.keys(e)},Dn=(e,t,o,r=new WeakMap)=>{let{target:a={},deep:f=!1,includeSymbols:n=!1}=o??{},l={deep:f,includeSymbols:n};if(r.has(e))return r.get(e);r.set(e,a);let u=s=>s.map(d=>Jp(d)?Dn(d,t,l,r):d);if(Array.isArray(e))return u(e);for(let s of ug(e,l.includeSymbols)){let d=e[s],i=t(s,d,e);if(i===dg)continue;if(!Array.isArray(i))throw new TypeError(`Mapper must return an array or mapObjectSkip, got ${i===null?"null":typeof i}`);if(i.length<2)throw new TypeError(`Mapper must return an array with at least 2 elements [key, value], got ${i.length} elements`);let[m,p,{shouldRecurse:x=!0}={}]=i;if(m!=="__proto__"){l.deep&&x&&Jp(p)&&(p=Array.isArray(p)?u(p):Dn(p,t,l,r));try{a[m]=p}catch(h){if(h instanceof TypeError&&h.message.includes("read only"))continue;throw h}}}return a};function kn(e,t,o){if(!Kp(e))throw new TypeError(`Expected an object, got \`${e}\` (${typeof e})`);if(Array.isArray(e))throw new TypeError("Expected an object, got an array");return Dn(e,(a,f)=>t(a,f,e),o)}function ig(e,t,o=new WeakSet){let r=f=>{let n=ip(f.handleId);if(!n)throw new Error(`File not in cache for handleId: ${f.handleId}. The file "${f.name}" may need to be reopened.`);let l=`fh-blob-${f.handleId}`;return t[l]=n,{locationType:"BlobLocation",name:f.name,blobId:l}},a=f=>{if(!(!f||typeof f!="object"||o.has(f)))if(o.add(f),Array.isArray(f))for(let n=0;n<f.length;n++){let l=f[n];ln(l)?f[n]=r(l):a(l)}else{let n=f;for(let l of Object.keys(n)){let u=n[l];ln(u)?n[l]=r(u):a(u)}}};a(e)}var Yo=class e extends Ko{pluginManager;constructor(t){super(),this.pluginManager=t}async serializeArguments(t,o){return await this.augmentLocationObjects(t,o),{...t,blobMap:wn()}}async serializeNewAuthArguments(t,o){let r=this.pluginManager.rootModel;if(!fn(r)||t.internetAccountPreAuthorization)return t;let a=r.findAppropriateInternetAccount(t);return a&&(t.internetAccountPreAuthorization=await a.getPreAuthorizationInformation(t)),t}async deserializeArguments(t,o){return t.blobMap&&up(t.blobMap),t}async executeDirect(t){}supportsDirectExecution(){return this.executeDirect!==e.prototype.executeDirect}async serializeReturn(t,o,r){return t}async deserializeReturn(t,o,r){let a;try{a=await t}catch(f){if(zi(f)){let n=this.pluginManager.rootModel?.createEphemeralInternetAccount(`HTTPBasicInternetAccount-${new URL(f.url).origin}`,{},f.url);throw new la("Retrying with created internet account",n.internetAccountId)}throw f}return Xi(a)?a.value:a}async augmentLocationObjects(t,o){let r=this.pluginManager.rootModel,a=[],f=wn(),{renderingProps:n,...l}=t;if(ig(l,f),kn(l,(u,s)=>{if(nn(s)&&a.push(s),Array.isArray(s))for(let d of s)nn(d)&&a.push(d);return[u,s]},{deep:!0}),fn(r)&&r.internetAccounts.length===0)return t;for(let u of a)await this.serializeNewAuthArguments(u,o);return t}};var qo=class e{filterChain;constructor({filters:t,jexl:o}){this.filterChain=t.map(r=>r.trim()).filter(r=>!!r).map(r=>{if(typeof r=="string")return{expr:ji(r,o),string:r};throw new Error(`invalid inputFilter string "${r}"`)})}passes(...t){for(let o of this.filterChain)if(!o.expr.eval({feature:t[0]}))return!1;return!0}toJSON(){return{filters:this.filterChain.map(t=>t.string)}}static fromJSON(t){return new e(t)}};var Et=class extends Yo{async deserializeArguments(t,o){return{...await super.deserializeArguments(t,o),filters:t.filters?new qo({filters:t.filters,jexl:this.pluginManager.jexl}):void 0}}async serializeArguments(t,o){let a=this.pluginManager.rootModel?.session?.assemblyManager;if(!a)throw new Error("no assembly manager");let f=await pp(a,{...t,filters:t.filters?.toJSON().filters});return super.serializeArguments(f,o)}};var jo=class extends Et{name="MafGetSamples";async execute(t,o){let r=this.pluginManager,a=await this.deserializeArguments(t,o),{regions:f,adapterConfig:n,sessionId:l}=a,{dataAdapter:u}=await Bt(r,l,n);return u.getSamples(f,a)}};function Mn(e){e.addRpcMethod(()=>new jo(e))}function Yp({regions:e,showAllLetters:t,samples:o,features:r,includeInsertions:a}){let f=e[0],n=new Map(o.map((d,i)=>[d.id,i])),l=f.end-f.start,u=o.map(()=>new Array(l).fill("-")),s=new Map;for(let d of r.values()){let i=d.get("start"),m=d.get("alignments"),p=d.get("seq");for(let[x,h]of Object.entries(m)){let g=h.seq,T=n.get(x);if(T===void 0)continue;let w=u[T];for(let c=0,A=0,C=g.length;c<C;c++){let I=p[c];if(I!=="-"){let R=g[c],B=i+A-f.start;if(B>=0&&B<l){if(R==="-")w[B]="-";else if(R!==" "){let E=R.toLowerCase();t?w[B]=E:I.toLowerCase()===E?w[B]=".":w[B]=E}}A++}else if(a){let R="";for(;c<g.length&&p[c]==="-";){let B=g[c];R+=B!=="-"&&B!==" "?B.toLowerCase():"-",c++}if(c--,R.length>0){let B=i+A-f.start;if(B>=0&&B<=l){let E=s.get(B)||[];E.push({sequence:R,sampleIndex:T}),s.set(B,E)}}}}}}return a&&s.size>0?pg(u,s,o.length):u.map(d=>d.join(""))}function pg(e,t,o){let r=[...t.keys()].sort((a,f)=>f-a);for(let a of r){let f=t.get(a),n=0;for(let u of f)u.sequence.length>n&&(n=u.sequence.length);let l=new Map;for(let u of f)l.set(u.sampleIndex,u.sequence);for(let u=0;u<o;u++){let s=e[u],d=l.get(u);if(d){let i=d.padEnd(n,"-");s.splice(a,0,...i.split(""))}else{let i=new Array(n).fill("-");s.splice(a,0,...i)}}}return e.map(a=>a.join(""))}var zo=class extends Et{name="MafGetSequences";async execute(t,o){let r=await this.deserializeArguments(t,o),{samples:a,regions:f,adapterConfig:n,sessionId:l,showAllLetters:u,includeInsertions:s}=r,d=(await Bt(this.pluginManager,l,n)).dataAdapter,i=await Tn(d.getFeatures(f[0],r).pipe(Sn()));return Yp({features:new Map(i.map(m=>[m.id(),m])),samples:a,regions:f,showAllLetters:u,includeInsertions:s})}};function Pn(e){e.addRpcMethod(()=>new zo(e))}var zm=S(D()),Xm=S(jp());var em=S(D());var Aa=S(D()),zp=S(se());var Xp=S(xe()),$p=S(st()),mg=(0,$p.makeStyles)()(e=>({highlight:{height:"100%",position:"absolute",background:Ji(e.palette.primary.main).alpha(.4).toRgbString(),borderLeft:`2px solid ${e.palette.primary.main}`,borderRight:`2px solid ${e.palette.primary.main}`,pointerEvents:"none",zIndex:10}})),xg=(0,Xp.observer)(function({model:t}){let{classes:o}=mg(),r=(0,zp.getSession)(t),{assemblyManager:a}=r,f="widgets"in r?r.widgets:void 0;if(!f)return null;let n=[];for(let[,l]of f){let u=l;if(u.type==="MafSequenceWidget"&&u.connectedViewId===t.id){let s=l,{hoverHighlight:d}=s;if(d){let{refName:i,start:m,end:p,assemblyName:x}=d,g=a.get(x)?.getCanonicalRefName(i)??i,T=t.bpToPx({refName:g,coord:m}),w=t.bpToPx({refName:g,coord:p});if(T&&w){let c=Math.min(T.offsetPx,w.offsetPx)-t.offsetPx,A=Math.max(Math.abs(w.offsetPx-T.offsetPx),3);n.push(Aa.default.createElement("div",{key:`maf-hover-${s.id}`,className:o.highlight,style:{left:c,width:A}}))}}}}return Aa.default.createElement(Aa.default.Fragment,null,n)}),Zp=xg;function Ln(e){e.addToExtensionPoint("LinearGenomeView-TracksContainerComponent",(t,o)=>{let r=o.model;return[...t,em.default.createElement(Zp,{key:"maf-sequence-hover-highlight",model:r})]})}var tm=S(ze()),om=(0,tm.ConfigurationSchema)("MafSequenceWidget",{});var rt=S(ve());function rm(){return rt.types.model("MafSequenceWidget",{id:rt.types.identifier,type:rt.types.literal("MafSequenceWidget"),adapterConfig:rt.types.frozen(void 0),samples:rt.types.frozen(void 0),regions:rt.types.frozen(void 0),connectedViewId:rt.types.maybe(rt.types.string)}).volatile(()=>({hoverHighlight:void 0})).actions(e=>({setHoverHighlight(t){e.hoverHighlight=t}}))}function Xn(e){e.addWidgetType(()=>new Xm.default({name:"MafSequenceWidget",heading:"MAF Sequence",configSchema:om,stateModel:rm(),ReactComponent:(0,zm.lazy)(()=>Promise.resolve().then(()=>(jm(),qm)))})),Ln(e)}var ax=S(Je());var $m=S(pr()),Zm=S(se()),ex=S(mr()),tx=S(xr()),ox=S(ve());var $o=class extends $m.BaseFeatureDataAdapter{setupP;async setupPre(){if(!this.getSubAdapter)throw new Error("no getSubAdapter available");return{adapter:(await this.getSubAdapter({...(0,ox.getSnapshot)(this.config),type:"BedTabixAdapter"})).dataAdapter}}async setupPre2(){return this.setupP||(this.setupP=this.setupPre().catch(t=>{throw this.setupP=void 0,t})),this.setupP}async setup(t){let{statusCallback:o=()=>{}}=t||{};return(0,Zm.updateStatus)("Downloading index",o,()=>this.setupPre2())}async getRefNames(t){let{adapter:o}=await this.setup(t);return o.getRefNames()}async getHeader(t){let{adapter:o}=await this.setup(t);return o.getHeader()}getFeatures(t,o){return(0,tx.ObservableCreate)(async r=>{let{adapter:a}=await this.setup(o),f="",n=this.getConf("refAssemblyName");await Pt(a.getFeatures(t,o),l=>{let u=l.get("field5").split(","),s={};for(let d=0,i=u.length;d<i;d++){let p=u[d].split(":"),[x,h,g,T,w,c]=p;if(!x||!c)continue;let{assemblyName:A,chr:C}=ms(x);A&&(f||(f=A),s[A]={chr:C,start:+h,srcSize:+g,strand:T==="-"?-1:1,unknown:+w,seq:c})}r.next(new je(l.id(),l.get("start"),l.get("end"),l.get("refName"),0,s,xs(s,n,t.assemblyName,f)??""))}),r.complete()},o?.stopToken)}async getSamples(t){let o=this.getConf("nhLocation"),r=o.uri==="/path/to/my.nh"?void 0:await(0,ex.openLocation)(o).readFile("utf8");return{samples:lt(this.getConf("samples")),tree:r?Tt(r):void 0}}freeResources(){}};var $n=S(ze());var yg=(0,$n.ConfigurationSchema)("MafTabixAdapter",{samples:{type:"frozen",description:"string[] or {id:string,label:string,color?:string}[]",defaultValue:[]},bedGzLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bed.gz.tbi",locationType:"UriLocation"}},refAssemblyName:{type:"string",defaultValue:""},index:(0,$n.ConfigurationSchema)("Index",{location:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bed.gz.tbi"}},indexType:{type:"string",defaultValue:"TBI"}}),nhLocation:{type:"fileLocation",description:"newick tree",defaultValue:{uri:"/path/to/my.nh",locationType:"UriLocation"}}},{explicitlyTyped:!0,preProcessSnapshot:e=>e.uri?{...e,...e.nhUri?{nhLocation:{uri:e.nhUri,baseUri:e.baseUri}}:{},bedGzLocation:{uri:e.uri,baseUri:e.baseUri},index:{location:{uri:`${e.uri}.tbi`,baseUri:e.baseUri}}}:e}),rx=yg;function Zn(e){return e.addAdapterType(()=>new ax.AdapterType({name:"MafTabixAdapter",AdapterClass:$o,configSchema:rx}))}var Sa=S(Je());var fx=S(ze()),nx=S(Je());function el(e){return(0,fx.ConfigurationSchema)("MafTrack",{},{baseConfiguration:(0,nx.createBaseTrackConfig)(e),explicitIdentifier:"trackId"})}function tl(e){return e.addTrackType(()=>{let t=el(e);return new Sa.TrackType({name:"MafTrack",configSchema:t,displayName:"MAF track",stateModel:(0,Sa.createBaseTrackModel)(e,"MafTrack",t)})})}var lx="1.5.0";var wa=class extends sx.default{name="MafViewerPlugin";version=lx;install(t){qa(t),ja(t),tl(t),Mf(t),vn(t),Zn(t),Fn(t),Pn(t),Mn(t),Xn(t)}configure(t){}};return Ax(Bg);})();
9
+ `):"",this.name="UnsubscriptionError",this.errors=o}});function un(e,t){if(e){var o=e.indexOf(t);0<=o&&e.splice(o,1)}}var ua=(function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,o,r,a,f;if(!this.closed){this.closed=!0;var n=this._parentage;if(n)if(this._parentage=null,Array.isArray(n))try{for(var l=dn(n),u=l.next();!u.done;u=l.next()){var s=u.value;s.remove(this)}}catch(h){t={error:h}}finally{try{u&&!u.done&&(o=l.return)&&o.call(l)}finally{if(t)throw t.error}}else n.remove(this);var d=this.initialTeardown;if(He(d))try{d()}catch(h){f=h instanceof da?h.errors:[h]}var i=this._finalizers;if(i){this._finalizers=null;try{for(var m=dn(i),p=m.next();!p.done;p=m.next()){var x=p.value;try{$i(x)}catch(h){f=f??[],h instanceof da?f=ro(ro([],oo(f)),oo(h.errors)):f.push(h)}}}catch(h){r={error:h}}finally{try{p&&!p.done&&(a=m.return)&&a.call(m)}finally{if(r)throw r.error}}}if(f)throw new da(f)}},e.prototype.add=function(t){var o;if(t&&t!==this)if(this.closed)$i(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(o=this._finalizers)!==null&&o!==void 0?o:[]).push(t)}},e.prototype._hasParent=function(t){var o=this._parentage;return o===t||Array.isArray(o)&&o.includes(t)},e.prototype._addParent=function(t){var o=this._parentage;this._parentage=Array.isArray(o)?(o.push(t),o):o?[o,t]:t},e.prototype._removeParent=function(t){var o=this._parentage;o===t?this._parentage=null:Array.isArray(o)&&un(o,t)},e.prototype.remove=function(t){var o=this._finalizers;o&&un(o,t),t instanceof e&&t._removeParent(this)},e.EMPTY=(function(){var t=new e;return t.closed=!0,t})(),e})();var OB=ua.EMPTY;function Zi(e){return e instanceof ua||e&&"closed"in e&&He(e.remove)&&He(e.add)&&He(e.unsubscribe)}function $i(e){He(e)?e():e.unsubscribe()}var pt={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var ao={setTimeout:function(e,t){for(var o=[],r=2;r<arguments.length;r++)o[r-2]=arguments[r];var a=ao.delegate;return a?.setTimeout?a.setTimeout.apply(a,ro([e,t],oo(o))):setTimeout.apply(void 0,ro([e,t],oo(o)))},clearTimeout:function(e){var t=ao.delegate;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function ep(e){ao.setTimeout(function(){var t=pt.onUnhandledError;if(t)t(e);else throw e})}function pn(){}var tp=(function(){return mn("C",void 0,void 0)})();function op(e){return mn("E",void 0,e)}function rp(e){return mn("N",e,void 0)}function mn(e,t,o){return{kind:e,value:t,error:o}}var xn=null;function ap(e){pt.useDeprecatedSynchronousErrorHandling&&xn&&(xn.errorThrown=!0,xn.error=e)}var hn=(function(e){_o(t,e);function t(o){var r=e.call(this)||this;return r.isStopped=!1,o?(r.destination=o,Zi(o)&&o.add(r)):r.destination=Vh,r}return t.create=function(o,r,a){return new gn(o,r,a)},t.prototype.next=function(o){this.isStopped?An(rp(o),this):this._next(o)},t.prototype.error=function(o){this.isStopped?An(op(o),this):(this.isStopped=!0,this._error(o))},t.prototype.complete=function(){this.isStopped?An(tp,this):(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(o){this.destination.next(o)},t.prototype._error=function(o){try{this.destination.error(o)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t})(ua);var _h=Function.prototype.bind;function cn(e,t){return _h.call(e,t)}var Gh=(function(){function e(t){this.partialObserver=t}return e.prototype.next=function(t){var o=this.partialObserver;if(o.next)try{o.next(t)}catch(r){ia(r)}},e.prototype.error=function(t){var o=this.partialObserver;if(o.error)try{o.error(t)}catch(r){ia(r)}else ia(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(o){ia(o)}},e})(),gn=(function(e){_o(t,e);function t(o,r,a){var f=e.call(this)||this,n;if(He(o)||!o)n={next:o??void 0,error:r??void 0,complete:a??void 0};else{var l;f&&pt.useDeprecatedNextContext?(l=Object.create(o),l.unsubscribe=function(){return f.unsubscribe()},n={next:o.next&&cn(o.next,l),error:o.error&&cn(o.error,l),complete:o.complete&&cn(o.complete,l)}):n=o}return f.destination=new Gh(n),f}return t})(hn);function ia(e){pt.useDeprecatedSynchronousErrorHandling?ap(e):ep(e)}function Uh(e){throw e}function An(e,t){var o=pt.onStoppedNotification;o&&ao.setTimeout(function(){return o(e,t)})}var Vh={closed:!0,next:pn,error:Uh,complete:pn};function Jh(e){return He(e?.lift)}function pa(e){return function(t){if(Jh(t))return t.lift(function(o){try{return e(o,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function fp(e,t,o,r,a){return new Kh(e,t,o,r,a)}var Kh=(function(e){_o(t,e);function t(o,r,a,f,n,l){var u=e.call(this,o)||this;return u.onFinalize=n,u.shouldUnsubscribe=l,u._next=r?function(s){try{r(s)}catch(d){o.error(d)}}:e.prototype._next,u._error=f?function(s){try{f(s)}catch(d){o.error(d)}finally{this.unsubscribe()}}:e.prototype._error,u._complete=a?function(){try{a()}catch(s){o.error(s)}finally{this.unsubscribe()}}:e.prototype._complete,u}return t.prototype.unsubscribe=function(){var o;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;e.prototype.unsubscribe.call(this),!r&&((o=this.onFinalize)===null||o===void 0||o.call(this))}},t})(hn);var np=sa(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function Tn(e,t){var o=typeof t=="object";return new Promise(function(r,a){var f=new gn({next:function(n){r(n),f.unsubscribe()},error:a,complete:function(){o?r(t.defaultValue):a(new np)}});e.subscribe(f)})}function lp(e,t,o,r,a){return function(f,n){var l=o,u=t,s=0;f.subscribe(fp(n,function(d){var i=s++;u=l?e(u,d,i):(l=!0,d),r&&n.next(u)},a&&(function(){l&&n.next(u),n.complete()})))}}function sp(e,t){return pa(lp(e,t,arguments.length>=2,!1,!0))}var Yh=function(e,t){return e.push(t),e};function Sn(){return pa(function(e,t){sp(Yh,[])(e).subscribe(t)})}var ma=S(ve(),1);var dp={};function wn(){return dp}function up(e){dp=e}var qh={};function ip(e){return qh[e]}var TI=180/Math.PI,SI=Math.PI/180;function Xh(e,t){if((0,We.isStateTreeNode)(t)&&!(0,We.isAlive)(t))return t;if(e?.[t.refName]){t=(0,We.isStateTreeNode)(t)?{...(0,We.getSnapshot)(t)}:{...t};let o=e[t.refName];if(o)return{...t,refName:o,originalRefName:t.refName}}return t}async function pp(e,t){let{regions:o=[],adapterConfig:r}=t;if(!t.sessionId)throw new Error("sessionId is required");let a=o.map(n=>n.assemblyName),f=Object.fromEntries(await Promise.all([...new Set(a)].map(async n=>[n,await e.getRefNameMapForAdapter(r,n,t)])));return{...t,regions:o.map((n,l)=>Xh(f[a[l]],n))}}var wI=/electron/i.test(typeof navigator<"u"?navigator.userAgent:"");var CI=typeof jest>"u"?typeof window<"u"&&window.requestIdleCallback?window.requestIdleCallback:e=>setTimeout(()=>{e()},1):e=>{e()};function Rn(e){let t=0;if(e.length===0)return t;for(let o=0;o<e.length;o++){let r=e.charCodeAt(o);t=(t<<5)-t+r,t|=0}return t}function yn(e,t="",o=5e3){let r=[e];for(;r.length;){let a=r.pop();for(let[f,n]of Object.entries(a)){if(t.length>o)return Rn(t);typeof n=="object"&&n!==null?r.push(n):f==="locationType"&&n==="FileHandleLocation"?t+=`${f}-BlobLocation`:f==="handleId"?t+=`blobId-fh-blob-${n}`:t+=`${f}-${n}`}}return`adp-${Rn(t)}`}function mp(e={}){return e.type&&e.adapterId?`${e.type}-${e.adapterId}`:`${yn(e)}`}var xp={};async function $h(e,t,o){let r=o?.type;if(!r)throw new Error(`could not determine adapter type from adapter config snapshot ${JSON.stringify(o)}`);let a=e.getAdapterType(r);if(!a)throw new Error(`unknown data adapter type ${r}`);let f=a.configSchema.create(o,{pluginManager:e}),n=Bt.bind(null,e,t),l=await a.getAdapterClass();return{dataAdapter:new l(f,n,e),sessionIds:new Set([t])}}async function Bt(e,t,o){let r=mp(o);xp[r]??=$h(e,t,o);let a=await xp[r];return a.sessionIds.add(t),a}var Mp=S(Je()),ca=S(se());var Qp=S(Xe());var Go=class{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(t,o){let r=this.length++;for(;r>0;){let a=r-1>>1,f=this.values[a];if(o>=f)break;this.ids[r]=this.ids[a],this.values[r]=f,r=a}this.ids[r]=t,this.values[r]=o}pop(){if(this.length===0)return;let t=this.ids,o=this.values,r=t[0],a=--this.length;if(a>0){let f=t[a],n=o[a],l=0,u=a>>1;for(;l<u;){let s=(l<<1)+1,d=s+1,i=s+(+(d<a)&+(o[d]<o[s]));if(o[i]>=n)break;t[l]=t[i],o[l]=o[i],l=i}t[l]=f,o[l]=n}return r}peek(){return this.length>0?this.ids[0]:void 0}peekValue(){return this.length>0?this.values[0]:void 0}shrink(){this.ids.length=this.values.length=this.length}};var cp=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],Bn=3,It=class e{static from(t,o=0){if(o%8!==0)throw new Error("byteOffset must be 8-byte aligned.");if(!t||t.byteLength===void 0||t.buffer)throw new Error("Data must be an instance of ArrayBuffer or SharedArrayBuffer.");let[r,a]=new Uint8Array(t,o+0,2);if(r!==251)throw new Error("Data does not appear to be in a Flatbush format.");let f=a>>4;if(f!==Bn)throw new Error(`Got v${f} data when expected v${Bn}.`);let n=cp[a&15];if(!n)throw new Error("Unrecognized array type.");let[l]=new Uint16Array(t,o+2,1),[u]=new Uint32Array(t,o+4,1);return new e(u,l,n,void 0,t,o)}constructor(t,o=16,r=Float64Array,a=ArrayBuffer,f,n=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(+o,2),65535),this.byteOffset=n;let l=t,u=l;this._levelBounds=[l*4];do l=Math.ceil(l/this.nodeSize),u+=l,this._levelBounds.push(u*4);while(l!==1);this.ArrayType=r,this.IndexArrayType=u<16384?Uint16Array:Uint32Array;let s=cp.indexOf(r),d=u*4*r.BYTES_PER_ELEMENT;if(s<0)throw new Error(`Unexpected typed array class: ${r}.`);if(f)this.data=f,this._boxes=new r(f,n+8,u*4),this._indices=new this.IndexArrayType(f,n+8+d,u),this._pos=u*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 i=this.data=new a(8+d+u*this.IndexArrayType.BYTES_PER_ELEMENT);this._boxes=new r(i,8,u*4),this._indices=new this.IndexArrayType(i,8+d,u),this._pos=0,this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,new Uint8Array(i,0,2).set([251,(Bn<<4)+s]),new Uint16Array(i,2,1)[0]=o,new Uint32Array(i,4,1)[0]=t}this._queue=new Go}add(t,o,r=t,a=o){let f=this._pos>>2,n=this._boxes;return this._indices[f]=f,n[this._pos++]=t,n[this._pos++]=o,n[this._pos++]=r,n[this._pos++]=a,t<this.minX&&(this.minX=t),o<this.minY&&(this.minY=o),r>this.maxX&&(this.maxX=r),a>this.maxY&&(this.maxY=a),f}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 o=this.maxX-this.minX||1,r=this.maxY-this.minY||1,a=new Uint32Array(this.numItems),f=65535;for(let n=0,l=0;n<this.numItems;n++){let u=t[l++],s=t[l++],d=t[l++],i=t[l++],m=Math.floor(f*((u+d)/2-this.minX)/o),p=Math.floor(f*((s+i)/2-this.minY)/r);a[n]=eg(m,p)}In(a,t,this._indices,0,this.numItems-1,this.nodeSize);for(let n=0,l=0;n<this._levelBounds.length-1;n++){let u=this._levelBounds[n];for(;l<u;){let s=l,d=t[l++],i=t[l++],m=t[l++],p=t[l++];for(let x=1;x<this.nodeSize&&l<u;x++)d=Math.min(d,t[l++]),i=Math.min(i,t[l++]),m=Math.max(m,t[l++]),p=Math.max(p,t[l++]);this._indices[this._pos>>2]=s,t[this._pos++]=d,t[this._pos++]=i,t[this._pos++]=m,t[this._pos++]=p}}}search(t,o,r,a,f){if(this._pos!==this._boxes.length)throw new Error("Data not yet indexed - call index.finish().");let n=this._boxes.length-4,l=[],u=[];for(;n!==void 0;){let s=Math.min(n+this.nodeSize*4,Ap(n,this._levelBounds));for(let d=n;d<s;d+=4){let i=this._boxes[d];if(r<i)continue;let m=this._boxes[d+1];if(a<m)continue;let p=this._boxes[d+2];if(t>p)continue;let x=this._boxes[d+3];if(o>x)continue;let h=this._indices[d>>2]|0;n>=this.numItems*4?l.push(h):(f===void 0||f(h,i,m,p,x))&&u.push(h)}n=l.pop()}return u}neighbors(t,o,r=1/0,a=1/0,f){if(this._pos!==this._boxes.length)throw new Error("Data not yet indexed - call index.finish().");let n=this._boxes.length-4,l=this._queue,u=[],s=a*a;e:for(;n!==void 0;){let d=Math.min(n+this.nodeSize*4,Ap(n,this._levelBounds));for(let i=n;i<d;i+=4){let m=this._indices[i>>2]|0,p=this._boxes[i],x=this._boxes[i+1],h=this._boxes[i+2],g=this._boxes[i+3],T=t<p?p-t:t>h?t-h:0,w=o<x?x-o:o>g?o-g:0,c=T*T+w*w;c>s||(n>=this.numItems*4?l.push(m<<1,c):(f===void 0||f(m))&&l.push((m<<1)+1,c))}for(;l.length&&l.peek()&1;)if(l.peekValue()>s||(u.push(l.pop()>>1),u.length===r))break e;n=l.length?l.pop()>>1:void 0}return l.clear(),u}};function Ap(e,t){let o=0,r=t.length-1;for(;o<r;){let a=o+r>>1;t[a]>e?r=a:o=a+1}return t[o]}function In(e,t,o,r,a,f){if(Math.floor(r/f)>=Math.floor(a/f))return;let n=e[r],l=e[r+a>>1],u=e[a],s=u,d=Math.max(n,l);u>d?s=d:d===n?s=Math.max(l,u):d===l&&(s=Math.max(n,u));let i=r-1,m=a+1;for(;;){do i++;while(e[i]<s);do m--;while(e[m]>s);if(i>=m)break;Zh(e,t,o,i,m)}In(e,t,o,r,m,f),In(e,t,o,m+1,a,f)}function Zh(e,t,o,r,a){let f=e[r];e[r]=e[a],e[a]=f;let n=4*r,l=4*a,u=t[n],s=t[n+1],d=t[n+2],i=t[n+3];t[n]=t[l],t[n+1]=t[l+1],t[n+2]=t[l+2],t[n+3]=t[l+3],t[l]=u,t[l+1]=s,t[l+2]=d,t[l+3]=i;let m=o[r];o[r]=o[a],o[a]=m}function eg(e,t){let o=e^t,r=65535^o,a=65535^(e|t),f=e&(t^65535),n=o|r>>1,l=o>>1^o,u=a>>1^r&f>>1^a,s=o&a>>1^f>>1^f;o=n,r=l,a=u,f=s,n=o&o>>2^r&r>>2,l=o&r>>2^r&(o^r)>>2,u^=o&a>>2^r&f>>2,s^=r&a>>2^(o^r)&f>>2,o=n,r=l,a=u,f=s,n=o&o>>4^r&r>>4,l=o&r>>4^r&(o^r)>>4,u^=o&a>>4^r&f>>4,s^=r&a>>4^(o^r)&f>>4,o=n,r=l,a=u,f=s,u^=o&a>>8^r&f>>8,s^=r&a>>8^(o^r)&f>>8,o=u^u>>1,r=s^s>>1;let d=e^t,i=r|65535^(d|o);return d=(d|d<<8)&16711935,d=(d|d<<4)&252645135,d=(d|d<<2)&858993459,d=(d|d<<1)&1431655765,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,(i<<1|d)>>>0}var hp="bold 10px Courier New,monospace";function Uo(e,t,o,r=!1){if(r)return!0;let a=o.lastInsertedXPerRow.get(t)??-1/0;return Math.abs(e-a)>1*Math.max(1,o.bpPerPx)}function Vo(e,t,o,r,a,f,n){e.spatialIndex.push(n),e.spatialIndexCoords.push(t,o,r,a),e.lastInsertedXPerRow.set(f,t)}function gp(e,t,o,r,a){let{ctx:f,scale:n}=e,l=e.rowHeight/2;f.beginPath(),f.fillStyle="black";for(let u=0,s=0,d=t.length;u<d;u++)if(o[u]!=="-"){if(t[u]==="-"){let i=r+n*s;f.moveTo(i,a+l),f.lineTo(i+n+.4,a+l)}s++}f.stroke()}var On=S(se());function Tp(e){return Object.fromEntries(Object.entries(En(e)).map(([t,o])=>[t,e.palette.getContrastText(o)]))}function En(e){let{bases:t}=e.palette;return{a:t.A.main,c:t.C.main,g:t.G.main,t:t.T.main}}function Ee(e,t,o,r,a,f,n){t+r<0||t>f||(n&&(e.fillStyle=n),e.fillRect(t,o,r,a))}function Sp(){let e=(0,On.measureText)("A"),t=(0,On.measureText)("M")-2;return{charWidth:e,charHeight:t}}function wp(e,t,o,r,a){if(e.showAllLetters)return;let{ctx:f,scale:n,h:l,canvasWidth:u}=e;f.fillStyle="lightgrey";for(let s=0,d=0,i=t.length;s<i;s++){let m=o[s];if(m!=="-"){let p=t[s];if(m.toLowerCase()===p.toLowerCase()&&p!==" "){let x=r+n*d;Ee(f,x,a,n+.4,l,u)}d++}}}function Cp(e,t,o,r,a,f,n,l){let{ctx:u,scale:s,h:d,canvasWidth:i,showAllLetters:m,mismatchRendering:p,colorForBase:x}=e;for(let h=0,g=0,T=t.length;h<T;h++){let w=t[h],c=o[h];if(c!=="-"){if(w!=="-"){let A=r+s*g,C=w.toLowerCase();c.toLowerCase()!==C&&w!==" "?(Ee(u,A,a,s+.4,d,i,p?x[C]??"black":"orange"),Uo(A,f,e)&&Vo(e,A,a,A+e.scale+.4,a+e.h,f,{pos:g+n,chr:l,base:C,rowIndex:f})):m&&(Ee(u,A,a,s+.4,d,i,p?x[C]??"black":"lightblue"),Uo(A,f,e)&&Vo(e,A,a,A+e.scale+.4,a+e.h,f,{pos:g+n,chr:l,base:C,rowIndex:f}))}g++}}}function Rp(e,t,o,r,a){let{ctx:f,scale:n,hp2:l,rowHeight:u,showAllLetters:s,mismatchRendering:d,contrastForBase:i,showAsUpperCase:m,charHeight:p}=e;if(n>=10)for(let x=0,h=0,g=t.length;x<g;x++){let T=o[x];if(T!=="-"){let w=r+n*h,c=(n-10)/2+1,A=t[x];if((s||T.toLowerCase()!==A.toLowerCase())&&A!=="-"){let C=A.toLowerCase();if(f.fillStyle=d?i[C]??"white":"black",u>p){let I=m?A.toUpperCase():A;f.fillText(I,w+c,l+a+3)}}h++}}}var Op=S(se());function Ep(e,t,o,r,a,f,n,l,u){let{ctx:s,scale:d,h:i,canvasWidth:m,rowHeight:p,charHeight:x}=e;for(let h=0,g=0,T=t.length;h<T;h++){let w="";for(;o[h]==="-";){let c=t[h];c!=="-"&&c!==" "&&(w+=c.toLowerCase()),h++}if(w.length>0){let c=r+d*g-1,A,C;if(w.length>10){let R=`${w.length}`;if(f>10)A=c-1,C=2,Ee(s,A,a,C,i,m,"purple");else if(i>x){let B=(0,Op.measureText)(R,10),E=2;A=c-B/2-E,C=B+2*E,Ee(s,A,a,C,i,m,"purple"),s.fillStyle="white",s.fillText(R,c-B/2,a+i*7/8)}else{let B=2;A=c-B,C=2*B,Ee(s,A,a,C,i,m,"purple")}}else{A=c,C=1,Ee(s,A,a,C,i,m,"purple");let R=2;A=c-R,C=1+2*R,f<.2&&p>5&&(Ee(s,c-2,a,5,1,m),Ee(s,c-2,a+i-1,5,1,m))}let I=w.length>10;Uo(A,n,e,!0)&&Vo(e,A,a,A+C,a+e.h,n,{pos:g+l,chr:u,base:w,rowIndex:n,isInsertion:!0,isLargeInsertion:I})}g++}}var bp=S(se());function vp(e,t,o,r,a){let[f]=(0,bp.featureSpanPx)(e,t,o),n=e.get("alignments"),l=e.get("seq");for(let[u,s]of Object.entries(n)){let d=r.get(u);if(d===void 0)continue;let i=s.seq,m=a.offset+a.rowHeight*d;gp(a,i,l,f,m),wp(a,i,l,f,m),Cp(a,i,l,f,m,d,s.start,s.chr),Rp(a,i,l,f,m),Ep(a,i,l,f,m,o,d,s.start,s.chr)}}function Fp(e,t){let{regions:o,bpPerPx:r,rowHeight:a,showAllLetters:f,theme:n,mismatchRendering:l,samples:u,rowProportion:s,showAsUpperCase:d}=t,i=o[0],m=(i.end-i.start)/r,p=a*s,x=(0,Qp.createJBrowseTheme)(n),h=En(x),g=Tp(x),T=new Map(u.map((B,E)=>[B.id,E])),w=1/r,c=p/2,A=(a-p)/2,{charWidth:C,charHeight:I}=Sp();return e.font=hp,{renderingContext:{ctx:e,scale:w,bpPerPx:r,canvasWidth:m,rowHeight:a,h:p,hp2:c,offset:A,colorForBase:h,contrastForBase:g,showAllLetters:f,mismatchRendering:l,showAsUpperCase:d,charWidth:C,charHeight:I,spatialIndex:[],spatialIndexCoords:[],lastInsertedXPerRow:new Map},sampleToRowMap:T,region:i}}function Dp(e,t,o,r,a){vp(e,t,o,r,a)}function kp(e,t){let o=new It(e.spatialIndex.length||1);if(e.spatialIndex.length===0)o.add(0,0,1,1);else for(let r=0,a=e.spatialIndexCoords.length;r<a;r+=4)o.add(e.spatialIndexCoords[r],e.spatialIndexCoords[r+1],e.spatialIndexCoords[r+2],e.spatialIndexCoords[r+3]);return o.finish(),{flatbush:o.data,items:e.spatialIndex,samples:t}}var Jo=class extends Mp.FeatureRendererType{getExpandedRegion(t){let{start:o,end:r}=t,a=1;return{...t,start:Math.floor(Math.max(o-a,0)),end:Math.ceil(r+a)}}async render(t){let{regions:o,bpPerPx:r,samples:a,rowHeight:f,sessionId:n,adapterConfig:l,highResolutionScaling:u=1}=t,s=o[0],d=a.length*f+100,i=(s.end-s.start)/r,m=(0,ca.createCanvas)(Math.ceil(i*u),Math.ceil(d*u)),p=m.getContext("2d");if(!p)throw new Error("Could not get canvas context");u!==1&&p.scale(u,u);let{renderingContext:x,sampleToRowMap:h,region:g}=Fp(p,t),{dataAdapter:T}=await Bt(this.pluginManager,n,l),w=T,c=this.getExpandedRegion(s);await Pt(w.getFeatures(c,t),I=>{this.featurePassesFilters(t,I)&&Dp(I,g,r,h,x)});let{flatbush:A,items:C}=kp(x,a);return{imageData:await(0,ca.createImageBitmap)(m),flatbush:A,items:C,samples:a,features:new Map,width:i,height:d,containsNoTransferables:!0}}};var De=S(D()),Pp=S(Xe());var Lp=S(xe()),ng=(0,Lp.observer)(function(e){let{items:t,displayModel:o,height:r,samples:a,flatbush:f}=e,n=(0,De.useRef)(null),l=(0,De.useMemo)(()=>It.from(f),[f]),[u,s]=(0,De.useState)(!1),d=(0,De.useCallback)((i,m)=>{let p=0,x=0;if(n.current){let A=n.current.getBoundingClientRect();p=i-A.left,x=m-A.top}let h=l.search(p,x,p+1,x+1);if(h.length===0)return;let T=h.find(A=>t[A]?.isInsertion)??h[0],w=T!==void 0?t[T]:void 0;if(!w)return;let c=a[w.rowIndex];return{...w,sampleId:c?.id??"unknown",sampleLabel:c?.label||c?.id||"unknown"}},[l,t,a]);return De.default.createElement("div",{ref:n,onClick:i=>{let m=d(i.clientX,i.clientY);m?.isInsertion&&o.showInsertionSequenceDialog?.({sequence:m.base,sampleLabel:m.sampleLabel,chr:m.chr,pos:m.pos})},onMouseMove:i=>{let m=d(i.clientX,i.clientY);o.setHoveredInfo?.(m),o.setHighlightedRowNames?.(m?.sampleId?[m.sampleId]:void 0),s(!!m?.isInsertion)},onMouseLeave:()=>{o.setHoveredInfo?.(void 0),o.setHighlightedRowNames?.(void 0),s(!1)},style:{overflow:"visible",position:"relative",height:r,cursor:u?"pointer":"default"}},De.default.createElement(Pp.PrerenderedCanvas,{...e,style:{position:"absolute",left:0}}))}),Np=ng;var Hp=S(ze());var lg=(0,Hp.ConfigurationSchema)("LinearMafRenderer",{},{explicitlyTyped:!0}),Wp=lg;function vn(e){e.addRendererType(()=>new Jo({name:"LinearMafRenderer",ReactComponent:Np,configSchema:Wp,pluginManager:e}))}var Up=S(Je()),Vp=S(ve());var F=S(D()),ot=S(Xe()),fo=S(se()),_p=S(ve()),q=S($e()),Gp=S(st()),sg=(0,Gp.makeStyles)()(e=>({textbox:{width:"100%"},paper:{margin:e.spacing(),padding:e.spacing()},submit:{marginTop:25,marginBottom:100,display:"block"}}));function Qn({model:e}){let{classes:t}=sg(),[o,r]=(0,F.useState)(""),[a,f]=(0,F.useState)(),[n,l]=(0,F.useState)(),[u,s]=(0,F.useState)(),[d,i]=(0,F.useState)(),[m,p]=(0,F.useState)("MAF track"),[x,h]=(0,F.useState)("BigMafAdapter"),[g,T]=(0,F.useState)("TBI"),w=(0,_p.getRoot)(e);return F.default.createElement(q.Paper,{className:t.paper},F.default.createElement(q.Paper,null,d?F.default.createElement(ot.ErrorMessage,{error:d}):null,F.default.createElement(q.FormControl,null,F.default.createElement(q.FormLabel,null,"File type"),F.default.createElement(q.RadioGroup,{value:x,onChange:c=>{h(c.target.value)}},["BigMafAdapter","MafTabixAdapter","BgzipTaffyAdapter"].map(c=>F.default.createElement(q.FormControlLabel,{key:c,value:c,control:F.default.createElement(q.Radio,null),checked:x===c,label:c})))),x==="BigMafAdapter"?F.default.createElement(ot.FileSelector,{location:a,name:"Path to bigMaf",rootModel:w,setLocation:c=>{f(c)}}):x==="MafTabixAdapter"?F.default.createElement(F.default.Fragment,null,F.default.createElement(q.FormControl,null,F.default.createElement(q.FormLabel,null,"Index type"),F.default.createElement(q.RadioGroup,{value:x,onChange:c=>{T(c.target.value)}},["TBI","CSI"].map(c=>F.default.createElement(q.FormControlLabel,{key:c,value:c,control:F.default.createElement(q.Radio,null),checked:g===c,label:c})))),F.default.createElement(ot.FileSelector,{location:a,name:"Path to MAF tabix",rootModel:w,setLocation:c=>{f(c)}}),F.default.createElement(ot.FileSelector,{location:n,name:"Path to MAF tabix index",rootModel:w,setLocation:c=>{l(c)}})):F.default.createElement(F.default.Fragment,null,F.default.createElement(ot.FileSelector,{location:a,name:"Path to TAF.gz (Bgzipped TAF)",rootModel:w,setLocation:c=>{f(c)}}),F.default.createElement(ot.FileSelector,{location:n,name:"Path to TAF.gz.tai (TAF index)",rootModel:w,setLocation:c=>{l(c)}}))),F.default.createElement("div",null,F.default.createElement(ot.FileSelector,{location:u,name:"Path to newick tree (.nh)",rootModel:w,setLocation:c=>{s(c)}}),F.default.createElement(q.TextField,{multiline:!0,rows:10,value:o,onChange:c=>{r(c.target.value)},helperText:"Sample names (optional if .nh supplied, required if not)",placeholder:"Enter sample names from the MAF file, one per line, or JSON formatted array of samples",variant:"outlined",fullWidth:!0})),F.default.createElement(q.TextField,{value:m,helperText:"Track name",onChange:c=>{p(c.target.value)}}),F.default.createElement(q.Button,{variant:"contained",className:t.submit,onClick:()=>{try{let c=(0,fo.getSession)(e),A=[];try{A=JSON.parse(o)}catch{A=o.split(/\n|\r\n|\r/)}let C=[`${m.toLowerCase().replaceAll(" ","_")}-${Date.now()}`,c.adminMode?"":"-sessionTrack"].join("");(0,fo.isSessionWithAddTracks)(c)&&(c.addTrackConf({trackId:C,type:"MafTrack",name:m,assemblyNames:[e.assembly],adapter:x==="BigMafAdapter"?{type:x,bigBedLocation:a,samples:A,nhLocation:u}:x==="MafTabixAdapter"?{type:x,bedGzLocation:a,nhLocation:u,index:{indexType:g,location:n},samples:A}:{type:x,tafGzLocation:a,taiLocation:n,nhLocation:u,samples:A}}),e.view?.showTrack(C)),e.clearData(),(0,fo.isSessionModelWithWidgets)(c)&&c.hideWidget(e)}catch(c){i(c)}}},"Submit"))}function Fn(e){e.addAddTrackWorkflowType(()=>new Up.AddTrackWorkflowType({name:"MAF track",ReactComponent:Qn,stateModel:Vp.types.model({})}))}var Ko=class{name;maybeDisplayName;constructor(t){this.name=t?.name||"UNKNOWN",this.maybeDisplayName=t?.displayName}get displayName(){return this.maybeDisplayName||this.name}};var dg=Symbol("mapObjectSkip"),Kp=e=>typeof e=="object"&&e!==null,Jp=e=>{if(!Kp(e)||e instanceof RegExp||e instanceof Error||e instanceof Date||e instanceof Map||e instanceof Set||e instanceof WeakMap||e instanceof WeakSet||e instanceof Promise||e instanceof ArrayBuffer||e instanceof DataView||ArrayBuffer.isView(e)||globalThis.Blob&&e instanceof globalThis.Blob)return!1;let t=e;return!(typeof t.$$typeof=="symbol"||typeof t.asymmetricMatch=="function")},ug=(e,t)=>{if(t){let o=Object.keys(e),r=Object.getOwnPropertySymbols(e).filter(a=>Object.getOwnPropertyDescriptor(e,a)?.enumerable);return[...o,...r]}return Object.keys(e)},Dn=(e,t,o,r=new WeakMap)=>{let{target:a={},deep:f=!1,includeSymbols:n=!1}=o??{},l={deep:f,includeSymbols:n};if(r.has(e))return r.get(e);r.set(e,a);let u=s=>s.map(d=>Jp(d)?Dn(d,t,l,r):d);if(Array.isArray(e))return u(e);for(let s of ug(e,l.includeSymbols)){let d=e[s],i=t(s,d,e);if(i===dg)continue;if(!Array.isArray(i))throw new TypeError(`Mapper must return an array or mapObjectSkip, got ${i===null?"null":typeof i}`);if(i.length<2)throw new TypeError(`Mapper must return an array with at least 2 elements [key, value], got ${i.length} elements`);let[m,p,{shouldRecurse:x=!0}={}]=i;if(m!=="__proto__"){l.deep&&x&&Jp(p)&&(p=Array.isArray(p)?u(p):Dn(p,t,l,r));try{a[m]=p}catch(h){if(h instanceof TypeError&&h.message.includes("read only"))continue;throw h}}}return a};function kn(e,t,o){if(!Kp(e))throw new TypeError(`Expected an object, got \`${e}\` (${typeof e})`);if(Array.isArray(e))throw new TypeError("Expected an object, got an array");return Dn(e,(a,f)=>t(a,f,e),o)}function ig(e,t,o=new WeakSet){let r=f=>{let n=ip(f.handleId);if(!n)throw new Error(`File not in cache for handleId: ${f.handleId}. The file "${f.name}" may need to be reopened.`);let l=`fh-blob-${f.handleId}`;return t[l]=n,{locationType:"BlobLocation",name:f.name,blobId:l}},a=f=>{if(!(!f||typeof f!="object"||o.has(f)))if(o.add(f),Array.isArray(f))for(let n=0;n<f.length;n++){let l=f[n];ln(l)?f[n]=r(l):a(l)}else{let n=f;for(let l of Object.keys(n)){let u=n[l];ln(u)?n[l]=r(u):a(u)}}};a(e)}var Yo=class e extends Ko{pluginManager;constructor(t){super(),this.pluginManager=t}async serializeArguments(t,o){return await this.augmentLocationObjects(t,o),{...t,blobMap:wn()}}async serializeNewAuthArguments(t,o){let r=this.pluginManager.rootModel;if(!fn(r)||t.internetAccountPreAuthorization)return t;let a=r.findAppropriateInternetAccount(t);return a&&(t.internetAccountPreAuthorization=await a.getPreAuthorizationInformation(t)),t}async deserializeArguments(t,o){return t.blobMap&&up(t.blobMap),t}async executeDirect(t){}supportsDirectExecution(){return this.executeDirect!==e.prototype.executeDirect}async serializeReturn(t,o,r){return t}async deserializeReturn(t,o,r){let a;try{a=await t}catch(f){if(zi(f)){let n=this.pluginManager.rootModel?.createEphemeralInternetAccount(`HTTPBasicInternetAccount-${new URL(f.url).origin}`,{},f.url);throw new la("Retrying with created internet account",n.internetAccountId)}throw f}return Xi(a)?a.value:a}async augmentLocationObjects(t,o){let r=this.pluginManager.rootModel,a=[],f=wn(),{renderingProps:n,...l}=t;if(ig(l,f),kn(l,(u,s)=>{if(nn(s)&&a.push(s),Array.isArray(s))for(let d of s)nn(d)&&a.push(d);return[u,s]},{deep:!0}),fn(r)&&r.internetAccounts.length===0)return t;for(let u of a)await this.serializeNewAuthArguments(u,o);return t}};var qo=class e{filterChain;constructor({filters:t,jexl:o}){this.filterChain=t.map(r=>r.trim()).filter(r=>!!r).map(r=>{if(typeof r=="string")return{expr:ji(r,o),string:r};throw new Error(`invalid inputFilter string "${r}"`)})}passes(...t){for(let o of this.filterChain)if(!o.expr.eval({feature:t[0]}))return!1;return!0}toJSON(){return{filters:this.filterChain.map(t=>t.string)}}static fromJSON(t){return new e(t)}};var Et=class extends Yo{async deserializeArguments(t,o){return{...await super.deserializeArguments(t,o),filters:t.filters?new qo({filters:t.filters,jexl:this.pluginManager.jexl}):void 0}}async serializeArguments(t,o){let a=this.pluginManager.rootModel?.session?.assemblyManager;if(!a)throw new Error("no assembly manager");let f=await pp(a,{...t,filters:t.filters?.toJSON().filters});return super.serializeArguments(f,o)}};var jo=class extends Et{name="MafGetSamples";async execute(t,o){let r=this.pluginManager,a=await this.deserializeArguments(t,o),{regions:f,adapterConfig:n,sessionId:l}=a,{dataAdapter:u}=await Bt(r,l,n);return u.getSamples(f,a)}};function Mn(e){e.addRpcMethod(()=>new jo(e))}function Yp({regions:e,showAllLetters:t,samples:o,features:r,includeInsertions:a}){let f=e[0],n=new Map(o.map((d,i)=>[d.id,i])),l=f.end-f.start,u=o.map(()=>new Array(l).fill("-")),s=new Map;for(let d of r.values()){let i=d.get("start"),m=d.get("alignments"),p=d.get("seq");for(let[x,h]of Object.entries(m)){let g=h.seq,T=n.get(x);if(T===void 0)continue;let w=u[T];for(let c=0,A=0,C=g.length;c<C;c++){let I=p[c];if(I!=="-"){let R=g[c],B=i+A-f.start;if(B>=0&&B<l){if(R==="-")w[B]="-";else if(R!==" "){let E=R.toLowerCase();t?w[B]=E:I.toLowerCase()===E?w[B]=".":w[B]=E}}A++}else if(a){let R="";for(;c<g.length&&p[c]==="-";){let B=g[c];R+=B!=="-"&&B!==" "?B.toLowerCase():"-",c++}if(c--,R.length>0){let B=i+A-f.start;if(B>=0&&B<=l){let E=s.get(B)||[];E.push({sequence:R,sampleIndex:T}),s.set(B,E)}}}}}}return a&&s.size>0?pg(u,s,o.length):u.map(d=>d.join(""))}function pg(e,t,o){let r=[...t.keys()].sort((a,f)=>f-a);for(let a of r){let f=t.get(a),n=0;for(let u of f)u.sequence.length>n&&(n=u.sequence.length);let l=new Map;for(let u of f)l.set(u.sampleIndex,u.sequence);for(let u=0;u<o;u++){let s=e[u],d=l.get(u);if(d){let i=d.padEnd(n,"-");s.splice(a,0,...i.split(""))}else{let i=new Array(n).fill("-");s.splice(a,0,...i)}}}return e.map(a=>a.join(""))}var zo=class extends Et{name="MafGetSequences";async execute(t,o){let r=await this.deserializeArguments(t,o),{samples:a,regions:f,adapterConfig:n,sessionId:l,showAllLetters:u,includeInsertions:s}=r,d=(await Bt(this.pluginManager,l,n)).dataAdapter,i=await Tn(d.getFeatures(f[0],r).pipe(Sn()));return Yp({features:new Map(i.map(m=>[m.id(),m])),samples:a,regions:f,showAllLetters:u,includeInsertions:s})}};function Pn(e){e.addRpcMethod(()=>new zo(e))}var zm=S(D()),Xm=S(jp());var em=S(D());var Aa=S(D()),zp=S(se());var Xp=S(xe()),$p=S(st()),mg=(0,$p.makeStyles)()(e=>({highlight:{height:"100%",position:"absolute",background:Ji(e.palette.primary.main).alpha(.4).toRgbString(),borderLeft:`2px solid ${e.palette.primary.main}`,borderRight:`2px solid ${e.palette.primary.main}`,pointerEvents:"none",zIndex:10}})),xg=(0,Xp.observer)(function({model:t}){let{classes:o}=mg(),r=(0,zp.getSession)(t),{assemblyManager:a}=r,f="widgets"in r?r.widgets:void 0;if(!f)return null;let n=[];for(let[,l]of f){let u=l;if(u.type==="MafSequenceWidget"&&u.connectedViewId===t.id){let s=l,{hoverHighlight:d}=s;if(d){let{refName:i,start:m,end:p,assemblyName:x}=d,g=a.get(x)?.getCanonicalRefName(i)??i,T=t.bpToPx({refName:g,coord:m}),w=t.bpToPx({refName:g,coord:p});if(T&&w){let c=Math.min(T.offsetPx,w.offsetPx)-t.offsetPx,A=Math.max(Math.abs(w.offsetPx-T.offsetPx),3);n.push(Aa.default.createElement("div",{key:`maf-hover-${s.id}`,className:o.highlight,style:{left:c,width:A}}))}}}}return Aa.default.createElement(Aa.default.Fragment,null,n)}),Zp=xg;function Ln(e){e.addToExtensionPoint("LinearGenomeView-TracksContainerComponent",(t,o)=>{let r=o.model;return[...t,em.default.createElement(Zp,{key:"maf-sequence-hover-highlight",model:r})]})}var tm=S(ze()),om=(0,tm.ConfigurationSchema)("MafSequenceWidget",{});var rt=S(ve());function rm(){return rt.types.model("MafSequenceWidget",{id:rt.types.identifier,type:rt.types.literal("MafSequenceWidget"),adapterConfig:rt.types.frozen(void 0),samples:rt.types.frozen(void 0),regions:rt.types.frozen(void 0),connectedViewId:rt.types.maybe(rt.types.string)}).volatile(()=>({hoverHighlight:void 0})).actions(e=>({setHoverHighlight(t){e.hoverHighlight=t}}))}function Xn(e){e.addWidgetType(()=>new Xm.default({name:"MafSequenceWidget",heading:"MAF Sequence",configSchema:om,stateModel:rm(),ReactComponent:(0,zm.lazy)(()=>Promise.resolve().then(()=>(jm(),qm)))})),Ln(e)}var ax=S(Je());var $m=S(pr()),Zm=S(se()),ex=S(mr()),tx=S(xr()),ox=S(ve());var $o=class extends $m.BaseFeatureDataAdapter{setupP;async setupPre(){if(!this.getSubAdapter)throw new Error("no getSubAdapter available");return{adapter:(await this.getSubAdapter({...(0,ox.getSnapshot)(this.config),type:"BedTabixAdapter"})).dataAdapter}}async setupPre2(){return this.setupP||(this.setupP=this.setupPre().catch(t=>{throw this.setupP=void 0,t})),this.setupP}async setup(t){let{statusCallback:o=()=>{}}=t||{};return(0,Zm.updateStatus)("Downloading index",o,()=>this.setupPre2())}async getRefNames(t){let{adapter:o}=await this.setup(t);return o.getRefNames()}async getHeader(t){let{adapter:o}=await this.setup(t);return o.getHeader()}getFeatures(t,o){return(0,tx.ObservableCreate)(async r=>{let{adapter:a}=await this.setup(o),f="",n=this.getConf("refAssemblyName");await Pt(a.getFeatures(t,o),l=>{let u=l.get("field5").split(","),s={};for(let d=0,i=u.length;d<i;d++){let p=u[d].split(":"),[x,h,g,T,w,c]=p;if(!x||!c)continue;let{assemblyName:A,chr:C}=ms(x);A&&(f||(f=A),s[A]={chr:C,start:+h,srcSize:+g,strand:T==="-"?-1:1,unknown:+w,seq:c})}r.next(new je(l.id(),l.get("start"),l.get("end"),l.get("refName"),0,s,xs(s,n,t.assemblyName,f)??""))}),r.complete()},o?.stopToken)}async getSamples(t){let o=this.getConf("nhLocation"),r=o.uri==="/path/to/my.nh"?void 0:await(0,ex.openLocation)(o).readFile("utf8");return{samples:lt(this.getConf("samples")),tree:r?Tt(r):void 0}}freeResources(){}};var $n=S(ze());var yg=(0,$n.ConfigurationSchema)("MafTabixAdapter",{samples:{type:"frozen",description:"string[] or {id:string,label:string,color?:string}[]",defaultValue:[]},bedGzLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bed.gz.tbi",locationType:"UriLocation"}},refAssemblyName:{type:"string",defaultValue:""},index:(0,$n.ConfigurationSchema)("Index",{location:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bed.gz.tbi"}},indexType:{type:"string",defaultValue:"TBI"}}),nhLocation:{type:"fileLocation",description:"newick tree",defaultValue:{uri:"/path/to/my.nh",locationType:"UriLocation"}}},{explicitlyTyped:!0,preProcessSnapshot:e=>e.uri?{...e,...e.nhUri?{nhLocation:{uri:e.nhUri,baseUri:e.baseUri}}:{},bedGzLocation:{uri:e.uri,baseUri:e.baseUri},index:{location:{uri:`${e.uri}.tbi`,baseUri:e.baseUri}}}:e}),rx=yg;function Zn(e){return e.addAdapterType(()=>new ax.AdapterType({name:"MafTabixAdapter",AdapterClass:$o,configSchema:rx}))}var Sa=S(Je());var fx=S(ze()),nx=S(Je());function el(e){return(0,fx.ConfigurationSchema)("MafTrack",{},{baseConfiguration:(0,nx.createBaseTrackConfig)(e),explicitIdentifier:"trackId"})}function tl(e){return e.addTrackType(()=>{let t=el(e);return new Sa.TrackType({name:"MafTrack",configSchema:t,displayName:"MAF track",stateModel:(0,Sa.createBaseTrackModel)(e,"MafTrack",t)})})}var lx="1.5.1";var wa=class extends sx.default{name="MafViewerPlugin";version=lx;install(t){qa(t),ja(t),tl(t),Mf(t),vn(t),Zn(t),Fn(t),Pn(t),Mn(t),Xn(t)}configure(t){}};return Ax(Bg);})();
10
10
  /*! Bundled license information:
11
11
 
12
12
  react-is/cjs/react-is.production.min.js: