jbrowse-plugin-graphgenomeviewer 7.1.5 → 7.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{GraphGenomeView-GQRUDWBS.js → GraphGenomeView-JYD7HBX7.js} +2 -2
- package/dist/chunks/{LinearGraphDisplay-62N6ZNWO.js → LinearGraphDisplay-QYPXZEX7.js} +2 -2
- package/dist/chunks/{chunk-46CFLCVZ.js → chunk-LP73EZV4.js} +3 -3
- package/dist/chunks/{chunk-46CFLCVZ.js.map → chunk-LP73EZV4.js.map} +4 -4
- package/dist/chunks/chunk-SP3OUF6G.js +2 -0
- package/dist/chunks/chunk-SP3OUF6G.js.map +7 -0
- package/dist/chunks/{renderSvg-RR4VUNIL.js → renderSvg-LBMWZDLB.js} +2 -2
- package/dist/jbrowse-plugin-graphgenomeviewer.esm.js +1 -1
- package/dist/jbrowse-plugin-graphgenomeviewer.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/GraphGenomeView/components/FacetPanels.tsx +0 -3
- package/src/GraphGenomeView/components/GraphCanvas.tsx +13 -5
- package/src/GraphGenomeView/components/usePaneGestures.test.tsx +67 -0
- package/src/GraphGenomeView/components/usePaneGestures.ts +46 -14
- package/src/version.ts +1 -1
- package/dist/chunks/chunk-62TV2NQA.js +0 -2
- package/dist/chunks/chunk-62TV2NQA.js.map +0 -7
- /package/dist/chunks/{GraphGenomeView-GQRUDWBS.js.map → GraphGenomeView-JYD7HBX7.js.map} +0 -0
- /package/dist/chunks/{LinearGraphDisplay-62N6ZNWO.js.map → LinearGraphDisplay-QYPXZEX7.js.map} +0 -0
- /package/dist/chunks/{renderSvg-RR4VUNIL.js.map → renderSvg-LBMWZDLB.js.map} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as C}from"./chunk-
|
|
1
|
+
import{a as C}from"./chunk-SP3OUF6G.js";import"./chunk-7UTCUHQI.js";import"./chunk-LP73EZV4.js";import"./chunk-YNTSFMXQ.js";import{k as d}from"./chunk-NM7JYFMG.js";import"./chunk-XO2PD5JO.js";import"./chunk-X7LTMIYL.js";import"./chunk-HYKQBZA4.js";import"./chunk-A7DB4V4C.js";import"./chunk-QJMXLCUM.js";import"./chunk-QKEY7EU7.js";import"./chunk-Y7UUDKJL.js";import"./chunk-HVBY3TGB.js";import"./chunk-YBLNN5FU.js";import"./chunk-MVVXRZXV.js";import"./chunk-KM3QNC77.js";import"./chunk-5OI6LO4I.js";import"./chunk-NDRLCGPC.js";import"./chunk-TENPGIPX.js";import{h as x}from"./chunk-YU7T5WOQ.js";import{A as l,F as L,H as p,e as s,j as v,o as n,x as G}from"./chunk-UGCNPRKC.js";import{a as y,b as a,c as r,d as i}from"./chunk-JMBDTNUR.js";var w=d()({paper:{padding:16,margin:8,maxWidth:560,marginInline:"auto",display:"flex",flexDirection:"column",gap:12},row:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8}}),E=i(function({model:e}){let{classes:t}=w();return e.isLoading?r(l,{className:t.paper,"data-testid":"graph-genome-loading",children:[r("div",{className:t.row,children:[a(v,{variant:"h6",message:e.statusMessage}),a(n,{size:"small","data-testid":"graph-genome-cancel",onClick:()=>{e.cancelLoad()},children:"Cancel"})]}),a(G,{variant:"indeterminate"})]}):e.error?a(l,{className:t.paper,children:a(s,{error:e.error,onReset:()=>{e.retryLoad()}})}):a(l,{className:t.paper,"data-testid":"graph-genome-load-canceled",children:r("div",{className:t.row,children:[a(p,{variant:"h6",children:"Loading canceled"}),a(n,{variant:"contained",size:"small","data-testid":"graph-genome-retry",onClick:()=>{e.retryLoad()},children:"Retry"})]})})}),g=E;var F=`H VN:Z:1.0
|
|
2
2
|
S 1 ACGT
|
|
3
3
|
S 2 GGCC
|
|
4
4
|
S 3 TTAA
|
|
@@ -7,4 +7,4 @@ L 1 + 2 + 0M
|
|
|
7
7
|
L 1 + 3 + 0M
|
|
8
8
|
L 2 + 4 + 0M
|
|
9
9
|
L 3 + 4 + 0M`,S=d()({column:{display:"flex",flexDirection:"column",gap:8},rowEnd:{display:"flex",gap:8,alignItems:"flex-end"},rowCenter:{display:"flex",gap:8,alignItems:"center"},flex1:{flex:1},paper:{padding:16,margin:8,maxWidth:560,marginInline:"auto"},header:{marginBottom:12},footer:{marginTop:12,display:"flex",justifyContent:"flex-end"}}),T=i(function({model:e}){let{classes:t}=S(),[m,M]=x("");function u(){let o=m.trim();o&&e.loadGFAFromLocation({uri:o,locationType:"UriLocation"})}function N(o){let c=o.target.files?.[0];o.target.value="",c&&c.text().then(f=>e.loadGFA(f,c.name)).catch(f=>{e.setError(f)})}return r(l,{className:t.paper,children:[a("div",{className:t.header,children:a(p,{variant:"h6",children:"Load a GFA graph"})}),r("div",{className:t.column,children:[r("div",{className:t.rowCenter,children:[r(n,{variant:"outlined",component:"label",size:"small",children:["Choose file",a("input",{type:"file",accept:".gfa,.gfa1,.gfa2",hidden:!0,onChange:o=>{N(o)}})]}),a(p,{variant:"caption",color:"text.secondary",children:"Whole-file GFA; best for small/medium graphs."})]}),r("div",{className:t.rowEnd,children:[a(L,{size:"small",label:"URL",placeholder:"https://example.com/graph.gfa",value:m,onChange:o=>{M(o.target.value)},onKeyDown:o=>{o.key==="Enter"&&u()},className:t.flex1}),a(n,{variant:"contained",onClick:()=>{u()},disabled:!m.trim(),children:"Open"})]})]}),a("div",{className:t.footer,children:a(n,{size:"small",onClick:()=>{e.loadGFA(F,"Example graph")},children:"Load 4-node example"})}),e.error?a(s,{error:e.error}):null]})}),P=T;var A=i(function({model:e}){return e.hasGraph?a(C,{model:e}):e.canRetryLoad&&(e.error||e.loadCanceled)?a(g,{model:e}):r(y,{children:[e.isLoading?a(g,{model:e}):null,a("div",{hidden:e.isLoading,children:a(P,{model:e})})]})}),J=A;export{J as default};
|
|
10
|
-
//# sourceMappingURL=GraphGenomeView-
|
|
10
|
+
//# sourceMappingURL=GraphGenomeView-JYD7HBX7.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as g}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=LinearGraphDisplay-
|
|
1
|
+
import{a as g}from"./chunk-SP3OUF6G.js";import"./chunk-7UTCUHQI.js";import"./chunk-LP73EZV4.js";import"./chunk-YNTSFMXQ.js";import"./chunk-NM7JYFMG.js";import"./chunk-XO2PD5JO.js";import"./chunk-X7LTMIYL.js";import"./chunk-HYKQBZA4.js";import"./chunk-A7DB4V4C.js";import"./chunk-QJMXLCUM.js";import"./chunk-QKEY7EU7.js";import"./chunk-Y7UUDKJL.js";import"./chunk-HVBY3TGB.js";import"./chunk-YBLNN5FU.js";import"./chunk-MVVXRZXV.js";import"./chunk-KM3QNC77.js";import"./chunk-5OI6LO4I.js";import"./chunk-NDRLCGPC.js";import"./chunk-TENPGIPX.js";import{h as y}from"./chunk-YU7T5WOQ.js";import"./chunk-UGCNPRKC.js";import{b as e,c as l,d as T}from"./chunk-JMBDTNUR.js";var s=JBrowseExports["@jbrowse/display-kit/DisplayBackgroundProgress"];var v=s&&s.__esModule?s.default:s;var i=JBrowseExports["@jbrowse/display-kit/DisplayErrorBar"];var h=i&&i.__esModule?i.default:i;var a=JBrowseExports["@jbrowse/display-kit/DisplayLoadingOverlay"];var O=a&&a.__esModule?a.default:a;var n=JBrowseExports["@jbrowse/display-kit/TooLargeMessage"];var f=n&&n.__esModule?n.default:n;var t=JBrowseExports["@jbrowse/display-ui"],p=r=>t!=null&&r in Object(t)?t[r]:Object.assign(function(){throw new Error("This JBrowse does not provide '"+r+"' from '@jbrowse/display-ui' to plugins: GraphGenomeView was built for a different JBrowse version, so update the plugin or JBrowse")},{jbrowseHostMissing:r});var w=p("BottomRightCornerContext");var c=p("TrackOverlayPortal");var L=p("useChromeOverlayOverride");var j=t&&t.__esModule?t.default:t;var D={TooLarge:f,ErrorBar:h,Loading:O,BackgroundProgress:v};function d({model:r,phase:o,drawn:u,testid:_,style:C,children:E,...B}){let{TooLarge:G,ErrorBar:S,Loading:b,BackgroundProgress:m}=L()??D,[P,A]=y(null),x={...B,"data-testid":_,"data-display-id":r.configuration.displayId,"data-display-drawn":u,"data-display-phase":o};return o==="tooLarge"?e("div",{style:{display:"contents"},...x,children:e(c,{children:e("div",{style:{pointerEvents:"auto"},children:e(G,{model:r})})})}):l("div",{style:{position:"relative",height:r.height,...C},...x,children:[e(w,{value:P,children:E}),l(c,{children:[e(S,{model:r,visible:o==="error"}),e(b,{model:r,visible:o==="loading"||o==="canceled",immediate:!u}),e("div",{ref:A,style:{position:"absolute",bottom:2,right:2,display:"flex",flexDirection:"column",alignItems:"flex-end",gap:4,pointerEvents:"none"},children:e(m,{model:r,visible:o==="ready"})})]})]})}var I=T(function({model:o}){return e(d,{model:o,phase:o.displayPhase,drawn:o.painted&&o.geometryPainted,testid:"linear-graph-display","data-layout":o.chosenLayoutMode,"data-cut-tier":o.cutTier,"data-recuts":o.recuts,"data-node-count":o.hasGraph?o.nodeCount:void 0,"data-loading":o.isLoading?"":void 0,style:{width:o.paneWidth,height:o.height,overflow:"hidden"},children:e(g,{model:o,ownChrome:!1})})}),Q=I;export{Q as default};
|
|
2
|
+
//# sourceMappingURL=LinearGraphDisplay-QYPXZEX7.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{Aa as Te,C as Le,D as Me,E as Pe,F as ve,I as Ce,La as oe,Ma as ae,S as y,Sa as N,T as Q,Ta as se,Ua as ie,W as _e,Ya as We,Z as Oe,_ as ee,_a as Ne,a as fe,b as be,ba as Ae,cb as Ge,ea as Ee,fa as te,hb as De,j as Y,ja as ne,k as V,nb as He,o as T,pa as Be,t as xe,u as ye,v as K,va as Ie,x as Se,xa as re}from"./chunk-XO2PD5JO.js";import{c as ke,i as j,j as Re,l as J,v as Z}from"./chunk-X7LTMIYL.js";import{F as q,j as M,l as $,m as z}from"./chunk-HYKQBZA4.js";import{b as P,c as W}from"./chunk-A7DB4V4C.js";import{e as X}from"./chunk-NDRLCGPC.js";import{a as he,c as A,d as ge,e as me,f as F,g as we}from"./chunk-YU7T5WOQ.js";import{a as O,b as p,c as R,d as m}from"./chunk-JMBDTNUR.js";function $e(e,t){return{position:"absolute",left:0,top:0,pointerEvents:"none",overflow:t,zIndex:e}}var S=m(function({model:t,zIndex:n,overflow:o="hidden",testId:r,children:i}){return p("svg",{style:$e(n,o),width:t.paneWidth,height:t.canvasHeight,"data-testid":r,children:i})});function E({model:e,zIndex:t,shown:n=!0,testId:o,paint:r}){let i=we(null);return ge(()=>{if(n)return fe(()=>{let l=i.current,s=l?.getContext("2d");if(l&&s){let u=e.paneWidth,c=e.canvasHeight,d=_e(l,u,c);s.setTransform(d,0,0,d,0,0),s.clearRect(0,0,u,c),r(s,d)}})},[e,n,r]),p("canvas",{ref:i,"data-testid":n?o:void 0,style:{...$e(t),display:n?"block":"none"}})}var ot=m(function({model:t}){let{bubbleHalos:n,hoveredBubble:o}=t;if(n.length===0)return null;let{scaleX:r,scaleY:i,translateX:l,translateY:s}=t,u=t.contigThickness*We;return p(S,{model:t,zIndex:2,testId:"graph-bubble-halos",children:p("g",{transform:`translate(${l} ${s}) scale(${r} ${i})`,children:n.filter(c=>!c.whole&&(!c.tick||o&&P(c.bubble,o))).map(c=>p("path",{d:c.path,fill:"none",stroke:y[c.kind],strokeOpacity:o&&P(c.bubble,o)?.45:t.bubbleFaded(c)?.06:.22,strokeWidth:u,strokeLinecap:"round",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke"},W(c.bubble)))})})}),qt=ot;var w=18,B=48,st="rgb(160, 160, 160)",it="rgba(160, 160, 160, 0.45)",lt=6,Ue=7,pt="#b8b8c0",le=ye-4;function U(e){return e.kind==="fill"?e.width??w:w}var L=e=>[{offset:0,color:e}];function G(e,t,n,o=w){return{key:e,label:n,swatch:{kind:"fill",stops:L(t),width:o}}}function Ke(e){return e.flatMap((t,n)=>[{offset:n/e.length,color:t},{offset:(n+1)/e.length,color:t}])}function ct(e){let t=e.openBubble;if(!t)return[];let n=e.bubbleHalos.find(o=>P(o.bubble,t));return[{key:"open",label:`open: ${n?.label??"bubble"}`,swatch:n?{kind:"halo",color:y[n.kind]}:{kind:"blank"},closesBubble:!0}]}function ut(e){let t=e.walkLift?void 0:e.referenceRampDomain;if(!t)return[];let n=Math.round(t.start),o=Math.round(t.end),{offReference:r,unplaced:i}=e.referenceRampOffKeys;return[{key:"ramp",label:`${n.toLocaleString("en-US")}-${o.toLocaleString("en-US")} (${q(o-n)})`,swatch:{kind:"fill",stops:T,width:B}},...r?[G("off",J,"off the reference",B)]:[],...i?[G("unplaced",st,"no reference position",B)]:[]]}function dt(e){let t=e.walkLift;if(t)return t.walks.map(r=>Z(r.encoding));if(e.effectiveColorScheme==="reference-position")return[T];let n=e.referenceStripBlocks.map(r=>r.colors[0]).filter((r,i,l)=>r!==l[i-1]),o=Math.min(lt,n.length);return[o===0?L(j):Array.from({length:o},(r,i)=>({offset:o>1?i/(o-1):0,color:n[o>1?Math.round(i*(n.length-1)/(o-1)):0]}))]}function ft(e){if(!e.referenceStripShown)return[];let t=(e.walkLift?.walks.length??0)>1;return[{key:"strip",label:`top strip: reference${t?", a row per walk":""}`,swatch:{kind:"bands",bands:dt(e)}},...e.referenceStripFaded?[G("strip-faded",j,e.walkLift?`reference not on ${t?"that row's walk":e.liftedWalksLabel}`:"reference outside the open bubble")]:[],...e.referenceStripOverhangs?[{key:"overhang",label:"graph runs past this edge",swatch:{kind:"overhang"}}]:[]]}function bt(e){let t=new Map;for(let n of e.bubbleHalos)if(!n.whole){let o=y[n.kind],r=t.get(o)??new Set;r.add(Q[n.kind]),t.set(o,r)}return[...t].map(([n,o])=>{let r=[...o].join(" or ");return{key:`halo-${n}`,label:r===Q.superbubble?r:`${r} bubble`,swatch:{kind:"halo",color:n}}})}function ht(e){return e.genePins.some(t=>t.exonsByNode.length>0)?[{key:"exon",label:"exon",swatch:{kind:"outline",color:N,stroke:2,radius:5,height:8}}]:[]}function gt(e){let t=e.foldNote;return t?[{key:"fold",label:t}]:[]}function mt(e){return e.pathLegend.map(({name:t,label:n,color:o})=>({key:`path-${t}`,label:n,swatch:{kind:"line",color:o}}))}function v(e,t,n){return{key:e,label:n,swatch:{kind:"fill",stops:t,height:Ue,square:!0}}}function wt(e){let{roles:t,haplotypeTube:n,bundled:o,values:r,logWidths:i,foldBp:l,forwardReads:s,reverseReads:u,substitution:c,insertion:d,deletion:f}=e.tubeMapKeys,h=e.readsShown,a=[];return r&&a.push(v("value-reference",L(re),"reference"),...r.map(({value:b,color:g})=>v(`value-${b}`,L(g),b))),t&&a.push(v("ref",L(re),"reference"),v("hap",L(n),o?"shared route, \xD7n haplotypes":"haplotype")),s&&a.push(v("fwd",Ke(Y),"read on the forward strand")),u&&a.push(v("rev",Ke(V),"read on the reverse strand")),h&&h.shown<h.total&&a.push({key:"sampled",label:`${h.shown.toLocaleString("en-US")} of ${h.total.toLocaleString("en-US")} reads shown`,swatch:{kind:"blank"}}),c&&a.push({key:"sub",label:"read mismatch",swatch:{kind:"glyph",char:"A"}}),d&&a.push({key:"ins",label:"read insertion",swatch:{kind:"glyph",char:"*"}}),f&&a.push(v("del",L("grey"),"read deletion")),l!==void 0&&a.push({key:"tube-fold",label:`haplotype variant < ${q(l)}`,swatch:{kind:"tick",color:Ee(),height:Ue,backing:pt}}),i&&a.push({key:"log",label:"width grows with log of length",swatch:{kind:"bracket"}}),a}function kt(e){return e.kind==="gene"?{kind:"outline",color:xe,stroke:1.5,radius:0,height:le}:{kind:"fill",stops:e.kind==="bar"&&e.ramp?T:L(e.fill),height:e.kind==="gap"?K:le}}function Rt(e){let t=e.walkRowBars;if(!t)return[];let n=[t.reference,...t.rows].flatMap(r=>r.call??[]),o=(r,i,l)=>({key:r,label:l,swatch:{kind:"tick",color:i,height:le}});return[...Le(t,{ramp:e.referenceRampDomain,genes:e.walkRowGeneKey}).map(r=>({key:`rows-${r.label}`,label:r.label,swatch:r.note?void 0:kt(r.swatch)})),...n.some(r=>r.spanningReads!==0)?[o("call",Me,"allele length called for this walk")]:[],...n.some(r=>r.spanningReads===0)?[o("unbacked",Pe,"called with no read spanning it")]:[],...n.some(r=>r.agrees===!1)?[o("disagrees",ve,`walk and call over ${Math.round(.1*100)}% apart`)]:[]]}function xt(e,t){let n=Ge(t,e.walkReference);return{key:`walk-${t.name}`,strong:e.walkLabel(t.name),label:n.delta+n.outside+n.reversed,swatch:{kind:"fill",stops:Z(t.encoding),width:n.shades?B:w},under:n.scale,title:n.hover,walk:t}}function Xe(e,t,n=w){return[...e.liftPaintsOffReference?[G("lift-off",J,"off the reference",n)]:[],G("faded",it,t,n)]}function yt(e){let t=e.walkLift;if(!t||e.facetPanels)return[];let n=t.walks.map(r=>xt(e,r)),o=n.some(r=>U(r.swatch)===B)?B:w;return[...n,...Xe(e,`not on ${e.liftedWalksLabel}`,o)]}function jn(e){return e.facetPanels?Xe(e,"not on the panel's walk"):[]}function Jn(e){return[{testid:"graph-open-bubble-legend",rows:ct(e)},{testid:"graph-ramp-legend",rows:ut(e)},{testid:"graph-reference-strip-legend",rows:ft(e)},{testid:"graph-halo-legend",rows:bt(e)},{testid:"graph-gene-legend",rows:ht(e)},{testid:"graph-fold-legend",rows:gt(e)},{testid:"graph-path-legend",rows:mt(e)},{testid:"graph-tube-map-legend",rows:wt(e)},{testid:"graph-walk-rows-legend",rows:Rt(e)},{testid:"graph-walk-readout",rows:yt(e)}].filter(t=>t.rows.length>0)}function St(e){return e==="class"?"className":/^(data|aria)-/.test(e)?e:e.replace(/-([a-z])/g,(t,n)=>n.toUpperCase())}function Fe(e,t){if(typeof e=="string")return e;let n={key:t};for(let[o,r]of Object.entries(e.attrs))r!==void 0&&(n[St(o)]=r);return he(e.tag,n,...e.children.map(Fe))}function I(){return me().replaceAll(/[^\w-]/g,"")}function D({el:e}){return Fe(e,0)}function Ye({id:e,x:t,y:n,stops:o,width:r,height:i,square:l}){let s=u=>p("rect",{x:t,y:n,width:r,height:i,rx:l?0:2,fill:u});return o.length>1?R(O,{children:[p("defs",{children:p("linearGradient",{id:e,children:o.map((u,c)=>p("stop",{offset:u.offset,stopColor:u.color},c))})}),s(`url(#${e})`)]}):s(o[0].color)}var Ve=e=>e.length>1?3:4;function pe(e){switch(e.kind){case"fill":return e.height??8;case"bands":return Ve(e.bands)*e.bands.length;case"line":return 3;case"halo":case"overhang":return 10;case"outline":case"tick":return e.height;case"glyph":return 15;case"bracket":return 7;case"blank":return 0}}function Lt({swatch:e,x:t,id:n}){switch(e.kind){case"fill":{let r=pe(e);return p(Ye,{id:n,x:t,y:-5-r/2,stops:e.stops,width:U(e),height:r,square:e.square})}case"bands":{let r=Ve(e.bands),i=-5-pe(e)/2;return p(O,{children:e.bands.map((l,s)=>p(Ye,{id:`${n}-${s}`,x:t,y:i+s*r,stops:l,width:w,height:r,square:!0},s))})}case"line":return p("rect",{x:t,y:-5-1.5,width:w,height:3,rx:2,fill:e.color});case"halo":return p("line",{x1:t+5,x2:t+13,y1:-5,y2:-5,stroke:e.color,strokeOpacity:.35,strokeWidth:8,strokeLinecap:"round"});case"outline":{let r=e.stroke/2;return p("rect",{x:t+r,y:-5-e.height/2+r,width:w-e.stroke,height:e.height-e.stroke,rx:Math.max(0,e.radius-r),fill:"none",stroke:e.color,strokeWidth:e.stroke})}case"overhang":return p("path",{transform:`translate(${t} -10)`,d:"M0,5 L8,0 L8,10 Z M18,5 L10,0 L10,10 Z",fill:"#18181c"});case"glyph":return p("text",{x:t+w/2,y:-1,textAnchor:"middle",fontFamily:"monospace",fontSize:12,fill:"currentColor",children:e.char});case"tick":{let r=-5-e.height/2;return R(O,{children:[e.backing?p("rect",{x:t,y:r,width:w,height:e.height,fill:e.backing}):null,p("rect",{x:t+w/2-1,y:r,width:2,height:e.height,fill:e.color})]})}case"bracket":return p("path",{transform:`translate(${t} ${-5-3.5})`,d:`M0.5,6 V1.5 H5.5 V6 M8.5,6 V1.5 H${w-.5} V6`,fill:"none",stroke:Oe()});case"blank":return null}}function or({swatch:e}){let t=I(),n=pe(e);return p("svg",{width:U(e),height:n,overflow:"visible",style:{flex:"none"},children:p("g",{transform:`translate(0 ${n/2+5})`,children:p(Lt,{swatch:e,x:0,id:t})})})}function ze(e,t,n){return{x:e-n/2,y:t-M-$+2,width:n,height:M+$*2-2}}function qe(e,t,n){let o=ze(e.x,e.y,e.w);return t>=o.x&&t<=o.x+o.width&&n>=o.y&&n<=o.y+o.height}function H({x:e,y:t,w:n,text:o,note:r,color:i,edge:l=i,italic:s,dimmed:u,title:c,testId:d,onClick:f,onHover:h}){return R("g",{style:{pointerEvents:f||h?"auto":"none",cursor:f?"pointer":void 0,opacity:u?.35:1},"data-testid":d,onClick:f,onMouseEnter:()=>{h?.(!0)},onMouseLeave:()=>{h?.(!1)},children:[c?p("title",{children:c}):null,p("rect",{...ze(e,t,n),rx:3,fill:"rgba(255,255,255,0.85)",stroke:l,strokeWidth:1}),R("text",{x:e,y:t,fontSize:M,fontFamily:"sans-serif",fontStyle:s?"italic":void 0,fontWeight:s?600:void 0,fill:i,textAnchor:"middle",children:[o,r?p("tspan",{fontStyle:"normal",fontWeight:"normal",children:r}):null]})]})}var je="#1c1c22",ce=9,ue=3;function Mr({genes:e},t,n){let o=e.find(l=>qe(l,t,n))?.item;if(!o)return;let{gene:r}=o,i=Ne(o);return{label:r.name,readout:`${r.refName}:${r.start.toLocaleString()}-${r.end.toLocaleString()}${i?`, ${i} in the cut`:""}`}}var Mt=m(function({model:t}){let{bubbles:n,genes:o,ticks:r}=t.overlayLabels;if(n.length+o.length+r.length===0)return null;let{scaleY:i,translateY:l,contigThickness:s,hoveredBubble:u}=t,c=u?r.find(a=>P(a.item.bubble,u)):void 0,d=a=>r[Number(a.getAttribute("data-tick"))],f=a=>t.bubbleFaded(a),h=a=>t.bubbleIsOpen(a.bubble);return R(S,{model:t,zIndex:3,testId:"graph-label-layer",children:[p("g",{"data-testid":"graph-bubble-ticks",onClick:a=>{let b=d(a.target);b&&t.toggleBubble(b.item.bubble)},onMouseOver:a=>{let b=d(a.target);b&&t.setHoveredBubble(b.item.bubble)},onMouseOut:()=>{X(t)&&t.setHoveredBubble(null)},children:r.map(({item:a,x:b,y:g},k)=>p("rect",{"data-tick":k,x:b-ue/2,y:g-ce,width:ue,height:ce,rx:ue/2,fill:y[a.kind],opacity:f(a)?.35:1,style:{pointerEvents:"all",cursor:"pointer"}},W(a.bubble)))}),o.map(({item:a,x:b,y:g,w:k,text:x})=>{let{gene:_}=a;return R("g",{children:[p("line",{x1:b,x2:b,y1:g-M-2,y2:a.at.y*i+l+s/2,stroke:je,strokeWidth:.8,strokeOpacity:.6}),p(H,{x:b,y:g,w:k,text:_.name,note:x.slice(_.name.length)||void 0,color:je,edge:N,italic:!0,testId:"graph-gene-pin-label"})]},`${_.name}-${_.start}`)}),n.map(({item:a,x:b,y:g,w:k,text:x})=>p(H,{x:b,y:g,w:k,text:x,color:y[a.kind],dimmed:f(a),title:`${a.label}
|
|
2
|
-
${a.bubble.segmentCount} segments${a.bubble.covering?"":h(a)?" \xB7 click to close":" \xB7 click to open"}`,testId:"graph-bubble-halo-label",onClick:a.bubble.covering?void 0:()=>{t.toggleBubble(a.bubble)},onHover:_=>{X(t)&&t.setHoveredBubble(_?a.bubble:null)}},W(a.bubble))),c?p(H,{x:c.x,y:c.y-ce-4,w:z(c.item.label),text:c.item.label,color:y[c.item.kind],testId:"graph-bubble-tick-label"}):null]})}),
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{Aa as Te,C as Le,D as Me,E as Pe,F as ve,I as Ce,La as oe,Ma as ae,S as y,Sa as N,T as Q,Ta as se,Ua as ie,W as _e,Ya as We,Z as Oe,_ as ee,_a as Ne,a as fe,b as be,ba as Ae,cb as Ge,ea as Ee,fa as te,hb as De,j as Y,ja as ne,k as V,nb as He,o as T,pa as Be,t as xe,u as ye,v as K,va as Ie,x as Se,xa as re}from"./chunk-XO2PD5JO.js";import{c as ke,i as j,j as Re,l as J,v as Z}from"./chunk-X7LTMIYL.js";import{F as q,j as M,l as $,m as z}from"./chunk-HYKQBZA4.js";import{b as P,c as W}from"./chunk-A7DB4V4C.js";import{e as X}from"./chunk-NDRLCGPC.js";import{a as he,c as A,d as ge,e as me,f as F,g as we}from"./chunk-YU7T5WOQ.js";import{a as O,b as p,c as R,d as m}from"./chunk-JMBDTNUR.js";function $e(e,t){return{position:"absolute",left:0,top:0,pointerEvents:"none",overflow:t,zIndex:e}}var S=m(function({model:t,zIndex:n,overflow:o="hidden",testId:r,children:i}){return p("svg",{style:$e(n,o),width:t.paneWidth,height:t.canvasHeight,"data-testid":r,children:i})});function E({model:e,zIndex:t,shown:n=!0,testId:o,paint:r}){let i=we(null);return ge(()=>{if(n)return fe(()=>{let l=i.current,s=l?.getContext("2d");if(l&&s){let u=e.paneWidth,c=e.canvasHeight,d=_e(l,u,c);s.setTransform(d,0,0,d,0,0),s.clearRect(0,0,u,c),r(s,d)}})},[e,n,r]),p("canvas",{ref:i,"data-testid":n?o:void 0,style:{...$e(t),display:n?"block":"none"}})}var ot=m(function({model:t}){let{bubbleHalos:n,hoveredBubble:o}=t;if(n.length===0)return null;let{scaleX:r,scaleY:i,translateX:l,translateY:s}=t,u=t.contigThickness*We;return p(S,{model:t,zIndex:2,testId:"graph-bubble-halos",children:p("g",{transform:`translate(${l} ${s}) scale(${r} ${i})`,children:n.filter(c=>!c.whole&&(!c.tick||o&&P(c.bubble,o))).map(c=>p("path",{d:c.path,fill:"none",stroke:y[c.kind],strokeOpacity:o&&P(c.bubble,o)?.45:t.bubbleFaded(c)?.06:.22,strokeWidth:u,strokeLinecap:"round",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke"},W(c.bubble)))})})}),qt=ot;var w=18,B=48,st="rgb(160, 160, 160)",it="rgba(160, 160, 160, 0.45)",lt=6,Ue=7,pt="#b8b8c0",le=ye-4;function U(e){return e.kind==="fill"?e.width??w:w}var L=e=>[{offset:0,color:e}];function G(e,t,n,o=w){return{key:e,label:n,swatch:{kind:"fill",stops:L(t),width:o}}}function Ke(e){return e.flatMap((t,n)=>[{offset:n/e.length,color:t},{offset:(n+1)/e.length,color:t}])}function ct(e){let t=e.openBubble;if(!t)return[];let n=e.bubbleHalos.find(o=>P(o.bubble,t));return[{key:"open",label:`open: ${n?.label??"bubble"}`,swatch:n?{kind:"halo",color:y[n.kind]}:{kind:"blank"},closesBubble:!0}]}function ut(e){let t=e.walkLift?void 0:e.referenceRampDomain;if(!t)return[];let n=Math.round(t.start),o=Math.round(t.end),{offReference:r,unplaced:i}=e.referenceRampOffKeys;return[{key:"ramp",label:`${n.toLocaleString("en-US")}-${o.toLocaleString("en-US")} (${q(o-n)})`,swatch:{kind:"fill",stops:T,width:B}},...r?[G("off",J,"off the reference",B)]:[],...i?[G("unplaced",st,"no reference position",B)]:[]]}function dt(e){let t=e.walkLift;if(t)return t.walks.map(r=>Z(r.encoding));if(e.effectiveColorScheme==="reference-position")return[T];let n=e.referenceStripBlocks.map(r=>r.colors[0]).filter((r,i,l)=>r!==l[i-1]),o=Math.min(lt,n.length);return[o===0?L(j):Array.from({length:o},(r,i)=>({offset:o>1?i/(o-1):0,color:n[o>1?Math.round(i*(n.length-1)/(o-1)):0]}))]}function ft(e){if(!e.referenceStripShown)return[];let t=(e.walkLift?.walks.length??0)>1;return[{key:"strip",label:`top strip: reference${t?", a row per walk":""}`,swatch:{kind:"bands",bands:dt(e)}},...e.referenceStripFaded?[G("strip-faded",j,e.walkLift?`reference not on ${t?"that row's walk":e.liftedWalksLabel}`:"reference outside the open bubble")]:[],...e.referenceStripOverhangs?[{key:"overhang",label:"graph runs past this edge",swatch:{kind:"overhang"}}]:[]]}function bt(e){let t=new Map;for(let n of e.bubbleHalos)if(!n.whole){let o=y[n.kind],r=t.get(o)??new Set;r.add(Q[n.kind]),t.set(o,r)}return[...t].map(([n,o])=>{let r=[...o].join(" or ");return{key:`halo-${n}`,label:r===Q.superbubble?r:`${r} bubble`,swatch:{kind:"halo",color:n}}})}function ht(e){return e.genePins.some(t=>t.exonsByNode.length>0)?[{key:"exon",label:"exon",swatch:{kind:"outline",color:N,stroke:2,radius:5,height:8}}]:[]}function gt(e){let t=e.foldNote;return t?[{key:"fold",label:t}]:[]}function mt(e){return e.pathLegend.map(({name:t,label:n,color:o})=>({key:`path-${t}`,label:n,swatch:{kind:"line",color:o}}))}function v(e,t,n){return{key:e,label:n,swatch:{kind:"fill",stops:t,height:Ue,square:!0}}}function wt(e){let{roles:t,haplotypeTube:n,bundled:o,values:r,logWidths:i,foldBp:l,forwardReads:s,reverseReads:u,substitution:c,insertion:d,deletion:f}=e.tubeMapKeys,h=e.readsShown,a=[];return r&&a.push(v("value-reference",L(re),"reference"),...r.map(({value:b,color:g})=>v(`value-${b}`,L(g),b))),t&&a.push(v("ref",L(re),"reference"),v("hap",L(n),o?"shared route, \xD7n haplotypes":"haplotype")),s&&a.push(v("fwd",Ke(Y),"read on the forward strand")),u&&a.push(v("rev",Ke(V),"read on the reverse strand")),h&&h.shown<h.total&&a.push({key:"sampled",label:`${h.shown.toLocaleString("en-US")} of ${h.total.toLocaleString("en-US")} reads shown`,swatch:{kind:"blank"}}),c&&a.push({key:"sub",label:"read mismatch",swatch:{kind:"glyph",char:"A"}}),d&&a.push({key:"ins",label:"read insertion",swatch:{kind:"glyph",char:"*"}}),f&&a.push(v("del",L("grey"),"read deletion")),l!==void 0&&a.push({key:"tube-fold",label:`haplotype variant < ${q(l)}`,swatch:{kind:"tick",color:Ee(),height:Ue,backing:pt}}),i&&a.push({key:"log",label:"width grows with log of length",swatch:{kind:"bracket"}}),a}function kt(e){return e.kind==="gene"?{kind:"outline",color:xe,stroke:1.5,radius:0,height:le}:{kind:"fill",stops:e.kind==="bar"&&e.ramp?T:L(e.fill),height:e.kind==="gap"?K:le}}function Rt(e){let t=e.walkRowBars;if(!t)return[];let n=[t.reference,...t.rows].flatMap(r=>r.call??[]),o=(r,i,l)=>({key:r,label:l,swatch:{kind:"tick",color:i,height:le}});return[...Le(t,{ramp:e.referenceRampDomain,genes:e.walkRowGeneKey}).map(r=>({key:`rows-${r.label}`,label:r.label,swatch:r.note?void 0:kt(r.swatch)})),...n.some(r=>r.spanningReads!==0)?[o("call",Me,"allele length called for this walk")]:[],...n.some(r=>r.spanningReads===0)?[o("unbacked",Pe,"called with no read spanning it")]:[],...n.some(r=>r.agrees===!1)?[o("disagrees",ve,`walk and call over ${Math.round(.1*100)}% apart`)]:[]]}function xt(e,t){let n=Ge(t,e.walkReference);return{key:`walk-${t.name}`,strong:e.walkLabel(t.name),label:n.delta+n.outside+n.reversed,swatch:{kind:"fill",stops:Z(t.encoding),width:n.shades?B:w},under:n.scale,title:n.hover,walk:t}}function Xe(e,t,n=w){return[...e.liftPaintsOffReference?[G("lift-off",J,"off the reference",n)]:[],G("faded",it,t,n)]}function yt(e){let t=e.walkLift;if(!t||e.facetPanels)return[];let n=t.walks.map(r=>xt(e,r)),o=n.some(r=>U(r.swatch)===B)?B:w;return[...n,...Xe(e,`not on ${e.liftedWalksLabel}`,o)]}function jn(e){return e.facetPanels?Xe(e,"not on the panel's walk"):[]}function Jn(e){return[{testid:"graph-open-bubble-legend",rows:ct(e)},{testid:"graph-ramp-legend",rows:ut(e)},{testid:"graph-reference-strip-legend",rows:ft(e)},{testid:"graph-halo-legend",rows:bt(e)},{testid:"graph-gene-legend",rows:ht(e)},{testid:"graph-fold-legend",rows:gt(e)},{testid:"graph-path-legend",rows:mt(e)},{testid:"graph-tube-map-legend",rows:wt(e)},{testid:"graph-walk-rows-legend",rows:Rt(e)},{testid:"graph-walk-readout",rows:yt(e)}].filter(t=>t.rows.length>0)}function St(e){return e==="class"?"className":/^(data|aria)-/.test(e)?e:e.replace(/-([a-z])/g,(t,n)=>n.toUpperCase())}function Fe(e,t){if(typeof e=="string")return e;let n={key:t};for(let[o,r]of Object.entries(e.attrs))r!==void 0&&(n[St(o)]=r);return he(e.tag,n,...e.children.map(Fe))}function I(){return me().replaceAll(/[^\w-]/g,"")}function D({el:e}){return Fe(e,0)}function Ye({id:e,x:t,y:n,stops:o,width:r,height:i,square:l}){let s=u=>p("rect",{x:t,y:n,width:r,height:i,rx:l?0:2,fill:u});return o.length>1?R(O,{children:[p("defs",{children:p("linearGradient",{id:e,children:o.map((u,c)=>p("stop",{offset:u.offset,stopColor:u.color},c))})}),s(`url(#${e})`)]}):s(o[0].color)}var Ve=e=>e.length>1?3:4;function pe(e){switch(e.kind){case"fill":return e.height??8;case"bands":return Ve(e.bands)*e.bands.length;case"line":return 3;case"halo":case"overhang":return 10;case"outline":case"tick":return e.height;case"glyph":return 15;case"bracket":return 7;case"blank":return 0}}function Lt({swatch:e,x:t,id:n}){switch(e.kind){case"fill":{let r=pe(e);return p(Ye,{id:n,x:t,y:-5-r/2,stops:e.stops,width:U(e),height:r,square:e.square})}case"bands":{let r=Ve(e.bands),i=-5-pe(e)/2;return p(O,{children:e.bands.map((l,s)=>p(Ye,{id:`${n}-${s}`,x:t,y:i+s*r,stops:l,width:w,height:r,square:!0},s))})}case"line":return p("rect",{x:t,y:-5-1.5,width:w,height:3,rx:2,fill:e.color});case"halo":return p("line",{x1:t+5,x2:t+13,y1:-5,y2:-5,stroke:e.color,strokeOpacity:.35,strokeWidth:8,strokeLinecap:"round"});case"outline":{let r=e.stroke/2;return p("rect",{x:t+r,y:-5-e.height/2+r,width:w-e.stroke,height:e.height-e.stroke,rx:Math.max(0,e.radius-r),fill:"none",stroke:e.color,strokeWidth:e.stroke})}case"overhang":return p("path",{transform:`translate(${t} -10)`,d:"M0,5 L8,0 L8,10 Z M18,5 L10,0 L10,10 Z",fill:"#18181c"});case"glyph":return p("text",{x:t+w/2,y:-1,textAnchor:"middle",fontFamily:"monospace",fontSize:12,fill:"currentColor",children:e.char});case"tick":{let r=-5-e.height/2;return R(O,{children:[e.backing?p("rect",{x:t,y:r,width:w,height:e.height,fill:e.backing}):null,p("rect",{x:t+w/2-1,y:r,width:2,height:e.height,fill:e.color})]})}case"bracket":return p("path",{transform:`translate(${t} ${-5-3.5})`,d:`M0.5,6 V1.5 H5.5 V6 M8.5,6 V1.5 H${w-.5} V6`,fill:"none",stroke:Oe()});case"blank":return null}}function or({swatch:e}){let t=I(),n=pe(e);return p("svg",{width:U(e),height:n,overflow:"visible",style:{flex:"none"},children:p("g",{transform:`translate(0 ${n/2+5})`,children:p(Lt,{swatch:e,x:0,id:t})})})}var Mt=m(function({model:t}){let n=`exon-outline-${I()}`,{genePins:o,walkLift:r,nodeInk:i}=t,{scaleX:l,scaleY:s,translateX:u,translateY:c,paneWidth:d,canvasHeight:f}=t,h=r?void 0:t.openBubbleFocus,a=h?o.map(g=>({...g,exonsByNode:g.exonsByNode.filter(k=>h.nodeIds.has(k.nodeId))})):o,b=ie(se(a,i.halfWidthPx,r),{id:n,width:d,height:f,transform:`translate(${u} ${c}) scale(${l} ${s})`});return b?p(S,{model:t,zIndex:2,testId:"graph-gene-pins",children:p(D,{el:b})}):null}),ur=Mt;function ze(e,t,n){return{x:e-n/2,y:t-M-$+2,width:n,height:M+$*2-2}}function qe(e,t,n){let o=ze(e.x,e.y,e.w);return t>=o.x&&t<=o.x+o.width&&n>=o.y&&n<=o.y+o.height}function H({x:e,y:t,w:n,text:o,note:r,color:i,edge:l=i,italic:s,dimmed:u,title:c,testId:d,onClick:f,onHover:h}){return R("g",{style:{pointerEvents:f||h?"auto":"none",cursor:f?"pointer":void 0,opacity:u?.35:1},"data-testid":d,onClick:f,onMouseEnter:()=>{h?.(!0)},onMouseLeave:()=>{h?.(!1)},children:[c?p("title",{children:c}):null,p("rect",{...ze(e,t,n),rx:3,fill:"rgba(255,255,255,0.85)",stroke:l,strokeWidth:1}),R("text",{x:e,y:t,fontSize:M,fontFamily:"sans-serif",fontStyle:s?"italic":void 0,fontWeight:s?600:void 0,fill:i,textAnchor:"middle",children:[o,r?p("tspan",{fontStyle:"normal",fontWeight:"normal",children:r}):null]})]})}var je="#1c1c22",ce=9,ue=3;function Er({genes:e},t,n){let o=e.find(l=>qe(l,t,n))?.item;if(!o)return;let{gene:r}=o,i=Ne(o);return{label:r.name,readout:`${r.refName}:${r.start.toLocaleString()}-${r.end.toLocaleString()}${i?`, ${i} in the cut`:""}`}}var Pt=m(function({model:t}){let{bubbles:n,genes:o,ticks:r}=t.overlayLabels;if(n.length+o.length+r.length===0)return null;let{scaleY:i,translateY:l,contigThickness:s,hoveredBubble:u}=t,c=u?r.find(a=>P(a.item.bubble,u)):void 0,d=a=>r[Number(a.getAttribute("data-tick"))],f=a=>t.bubbleFaded(a),h=a=>t.bubbleIsOpen(a.bubble);return R(S,{model:t,zIndex:3,testId:"graph-label-layer",children:[p("g",{"data-testid":"graph-bubble-ticks",onClick:a=>{let b=d(a.target);b&&t.toggleBubble(b.item.bubble)},onMouseOver:a=>{let b=d(a.target);b&&t.setHoveredBubble(b.item.bubble)},onMouseOut:()=>{X(t)&&t.setHoveredBubble(null)},children:r.map(({item:a,x:b,y:g},k)=>p("rect",{"data-tick":k,x:b-ue/2,y:g-ce,width:ue,height:ce,rx:ue/2,fill:y[a.kind],opacity:f(a)?.35:1,style:{pointerEvents:"all",cursor:"pointer"}},W(a.bubble)))}),o.map(({item:a,x:b,y:g,w:k,text:x})=>{let{gene:_}=a;return R("g",{children:[p("line",{x1:b,x2:b,y1:g-M-2,y2:a.at.y*i+l+s/2,stroke:je,strokeWidth:.8,strokeOpacity:.6}),p(H,{x:b,y:g,w:k,text:_.name,note:x.slice(_.name.length)||void 0,color:je,edge:N,italic:!0,testId:"graph-gene-pin-label"})]},`${_.name}-${_.start}`)}),n.map(({item:a,x:b,y:g,w:k,text:x})=>p(H,{x:b,y:g,w:k,text:x,color:y[a.kind],dimmed:f(a),title:`${a.label}
|
|
2
|
+
${a.bubble.segmentCount} segments${a.bubble.covering?"":h(a)?" \xB7 click to close":" \xB7 click to open"}`,testId:"graph-bubble-halo-label",onClick:a.bubble.covering?void 0:()=>{t.toggleBubble(a.bubble)},onHover:_=>{X(t)&&t.setHoveredBubble(_?a.bubble:null)}},W(a.bubble))),c?p(H,{x:c.x,y:c.y-ce-4,w:z(c.item.label),text:c.item.label,color:y[c.item.kind],testId:"graph-bubble-tick-label"}):null]})}),Br=Pt;function vt(e,t,{lit:n,dpr:o}){let r=t.hostBpFrame;r&&He(e,t.referenceStripBlocks,r,{width:t.paneWidth,lit:n,dpr:o})}var Ct=m(function({model:t}){let n=A((o,r)=>{vt(o,t,{lit:t.referenceStripLit,dpr:r})},[t]);return p(E,{model:t,zIndex:5,shown:t.referenceStripShown,testId:"graph-reference-strip",paint:n})}),Hr=Ct;var _t=.45;function Ot(e,t,{highlightNode:n}){let o=t.tubeMapPicture,r=t.tubeMapFrame;if(!o||!r)return;let i=t.paneWidth,l=t.tubeMapPanelViews;if(l){At(e,t,l,n);return}let s={...r,width:i,highlightNode:n,tubeColors:t.tubeMapTubeColors,nodeColors:t.tubeMapNodeColors};ne(e,o,s);let u=t.layoutResult?.tubeMap;u&&(oe(e,o,u.graph,s),ae(e,u,s)),te(e,t.tubeMapDeviations,s),Ae(e,t.tubeMapConnectors,t.connectorZoneBottom,s);let{bounds:c}=o;De(e,t.tubeMapGenes,s,r.y(c.minY)-2);let d=t.tubeMapRulerBoxes;d&&ee(e,d,s,r.y(c.maxY)+4,t.layoutResult?.referenceAxis)}function At(e,t,n,o){let r=t.paneWidth;for(let s of n){if(s.bottom<0||s.titleTop>t.canvasHeight)continue;let u={...s.frame,width:r,highlightNode:o,tubeColors:s.tubeColors,nodeColors:s.nodeColors};ne(e,s.picture,u),oe(e,s.picture,s.panel.result.tubeMap.graph,u),ae(e,s.panel.result.tubeMap,u),e.globalAlpha=_t,te(e,s.deviations,u),e.globalAlpha=1,e.strokeStyle="rgba(0,0,0,0.15)",e.lineWidth=1,e.beginPath(),e.moveTo(0,Math.round(s.titleTop)+.5),e.lineTo(r,Math.round(s.titleTop)+.5),e.stroke(),e.font=Te,e.textAlign="left",e.textBaseline="top",e.fillStyle="rgba(0,0,0,0.85)",e.fillText(s.label,6,s.titleTop+4)}let i=n.at(-1),l=t.tubeMapPanelRulerBoxes;i&&l&&ee(e,l,{...i.frame,width:r},i.bottom+4,!0)}var Et=m(function({model:t}){let n=A(o=>{Ot(o,t,{highlightNode:t.selectedNode})},[t]);return p(E,{model:t,zIndex:1,shown:!!t.tubeMapPicture,testId:"graph-tube-map",paint:n})}),Zr=Et;var C=JBrowseExports["@jbrowse/render-core/marks"],Bt=e=>C!=null&&e in Object(C)?C[e]:Object.assign(function(){throw new Error("This JBrowse does not provide '"+e+"' from '@jbrowse/render-core/marks' to plugins: GraphGenomeView was built for a different JBrowse version, so update the plugin or JBrowse")},{jbrowseHostMissing:e});var Je=Bt("spanMark");var to=C&&C.__esModule?C.default:C;function et(e){if(e.startsWith("#")){let r=Number.parseInt(e.slice(1),16);return[r>>16&255,r>>8&255,r&255]}let[t=0,n=0,o=0]=e.match(/[\d.]+/g).map(Number);return e.startsWith("hsl")?Re(t,n/100,o/100).map(r=>r*255):[t,n,o]}var tt=([e,t,n])=>ke(Math.round(e),Math.round(t),Math.round(n),255),Ze=new Map;function It(e){let t=Ze.get(e);return t===void 0&&(t=tt(et(e)),Ze.set(e,t)),t}function Tt(e,t,n){let o=e.start+e.bp,r=Se(e,t);if("fill"in r)return[[e.start,o,It(r.fill)]];let i=r.stops.map(et),l=r.stops.map(d=>Number(/[\d.]+/.exec(d)[0])),s=Math.abs(l.at(-1)-l[0]),u=Math.max(1,Math.min(Math.ceil(e.bp*n),Math.ceil(s),e.bp)),c=[];for(let d=0;d<u;d++){let f=(d+.5)/u*(i.length-1),h=Math.min(Math.floor(f),i.length-2),a=i[h],b=i[h+1],g=f-h;c.push([Math.round(e.start+e.bp*d/u),Math.round(e.start+e.bp*(d+1)/u),tt([0,1,2].map(k=>a[k]+(b[k]-a[k])*g))])}return c}function Qe(e){return{x:new Uint32Array(e),x2:new Uint32Array(e),row:new Uint32Array(e),color:new Uint32Array(e),count:0}}function de(e,t,n){return{x:e.x.subarray(t,n),x2:e.x2.subarray(t,n),row:e.row.subarray(t,n),color:e.color.subarray(t,n),count:n-t}}function nt(e,t,n){let o=e.map(d=>Ce(d.runs,t).map(f=>({gap:f.gap,pieces:Tt(f,n,t)}))),r=0;for(let d of o)for(let f of d)r+=f.pieces.length;let i=Qe(r),l=Qe(r),s=new Uint32Array(e.length+1),u=new Uint32Array(e.length+1),c=1;return o.forEach((d,f)=>{for(let h of d){let a=h.gap?l:i;for(let[b,g,k]of h.pieces){let x=a.count++;a.x[x]=b,a.x2[x]=g,a.row[x]=f,a.color[x]=k,c=Math.max(c,a.x2[x])}}s[f+1]=i.count,u[f+1]=l.count}),{bars:de(i,0,i.count),gaps:de(l,0,l.count),barRows:s,gapRows:u,longest:c}}function rt(e,t,n){let{longest:o}=t,r={start:0,end:o,screenStartPx:n.origin*n.scaleX+n.translateX,screenEndPx:(n.origin+o)*n.scaleX+n.translateX,reversed:!1,displayedRegionIndex:0},i={canvasWidth:n.width,canvasHeight:n.height},l=n.rowPx*n.scaleY;for(let{first:s,count:u,rowY:c}of n.blocks){let d=l/2-n.translateY-(c-s*n.rowPx)*n.scaleY,f=(c-n.rowPx/2)*n.scaleY+n.translateY;if(!(f>n.height||f+u*l<0))for(let[h,a,b]of[[t.bars,t.barRows,n.barPx],[t.gaps,t.gapRows,Math.min(K,n.barPx)]])Je.paintBlock(e,de(h,a[s],a[s+u]),r,i,{rowHeight:l,rowProportion:b/l,minWidthPx:1,seamPx:0,scrollTop:d})}}function Wt({model:e}){let t=F(()=>be(()=>{let o=e.walkRowBars;return o?nt([o.reference,...o.rows],e.scaleX,e.referenceRampDomain):void 0}),[e]),n=A(o=>{let r=e.walkRowBars,i=e.walkRowPlacement,l=e.walkRowPitch,s=t.get();if(!r||!i||!l||!s)return;let u=e.walkRowGroups?.sections,c=u?.length?[{first:0,count:1,rowY:i.rowY(0)},...u.map(d=>({first:d.first,count:d.count,rowY:i.rowY(d.first)}))]:[{first:0,count:r.rows.length+1,rowY:i.rowY(0)}];rt(o,s,{...e.screenTransform,width:e.paneWidth,height:e.canvasHeight,rowPx:l.rowPx,barPx:l.barPx,origin:r.origin,blocks:c})},[e,t]);return p(E,{model:e,zIndex:3,testId:"graph-walk-rows-spans",paint:n})}var Nt=m(function({model:t,vector:n=!1}){let o=I(),r=t.walkRowBars,i=t.walkRowPlacement,l=t.walkRowPitch,s=F(()=>r&&{...r,reference:{...r.reference,runs:[]},rows:r.rows.map(a=>({...a,runs:[]}))},[r]);if(!r||!s||!i||!l)return null;let{paneWidth:u,canvasHeight:c}=t,d=t.hoveredWalkRowText?[r.reference,...r.rows].findIndex(a=>a.name===t.hoveredWalkRow):-1,f=d>=0?{row:[r.reference,...r.rows][d],start:t.toScreen({x:r.origin,y:i.rowY(d)})}:void 0,h={...t.screenTransform,width:u,height:c,...l};return R(O,{children:[n?null:p(Wt,{model:t}),R(S,{model:t,zIndex:3,overflow:"visible",testId:"graph-walk-rows",children:[Ie(n?r:s,t.walkRowGroups?.sections??[],i.rowY,h,{ramp:t.referenceRampDomain,rowGenes:t.walkRowGenes,idPrefix:o}).map((a,b)=>p(D,{el:a},b)),i.headers.map(a=>p("text",{x:10,y:t.toScreen({x:0,y:a.top}).y+Be-4,fontFamily:"sans-serif",fontSize:11,fontWeight:"bold",fill:"#333","data-testid":"graph-walk-section",children:a.title},a.key)),f?p("rect",{"data-testid":"graph-walk-row-hovered",x:f.start.x-2,y:f.start.y-l.rowPx/2-1,width:f.row.bp*t.scaleX+4,height:l.rowPx+2,fill:"none",stroke:"#111",strokeWidth:1}):null]})]})}),go=Nt;export{$e as a,S as b,qt as c,I as d,D as e,U as f,kt as g,xt as h,jn as i,Jn as j,Lt as k,or as l,ur as m,Er as n,Br as o,vt as p,Hr as q,Ot as r,Zr as s,go as t};
|
|
3
|
+
//# sourceMappingURL=chunk-LP73EZV4.js.map
|