1"use strict";(self.webpackChunkcov_spectrum_website=self.webpackChunkcov_spectrum_website||[]).push([[1877],{6528:(e,a,s)=>{s.d(a,{B:()=>w,a:()=>p});var t=s(579),n=s(5043),i=s(9062),o=s(1908),r=s(4018);const l=(0,i.m)()({block:{display:"block"}});function c(e){let{checked:a,disabled:s,label:n,onChange:i}=e;const{classes:c}=l();return(0,t.jsx)(o.F,{disabled:s,className:c.block,control:(0,t.jsx)(r.C,{checked:a,onChange:i}),label:n})}function m(e){let{feature:a,assembly:s}=e;var t;const n=null===(t=a.get("ALT"))||void 0===t?void 0:t[0],o=n?(0,i.aU)(n):void 0,r=a.get("start"),l=a.get("refName"),c=e=>s.getCanonicalRefName(e)||e;if("<TRA>"===n){const e=a.get("INFO");return{pos:r,refName:c(l),mateRefName:c(e.CHR2[0]),matePos:e.END[0]-1}}if(null!=o&&o.MatePosition){const e=o.MatePosition.split(":");return{pos:r,refName:c(l),mateRefName:c(e[0]),matePos:+e[1]-1}}if(a.get("mate")){const e=a.get("mate");return{pos:r,refName:c(l),mateRefName:c(e.refName),matePos:e.start}}return{pos:r,refName:c(l),mateRefName:c(l),matePos:a.get("end")}}function d(e){return e.map((e=>{let{id:a,displays:s,...t}=e;return{...t,displays:s.map((e=>{let{id:a,...s}=e;return s}))}}))}function f(e){return`${e.get("name")||e.get("id")||"breakend"} split detail`}const w=(0,i.o)((function(e){let{session:a,handleClose:s,feature:o,assemblyName:r,stableViewId:l,view:w}=e;const[u,p]=(0,n.useState)(!0),[y,b]=(0,n.useState)(!0);return(0,t.jsxs)(i.a.Dialog,{open:!0,onClose:s,title:"Multi-level breakpoint split view options",children:[(0,t.jsxs)(i.D,{children:[(0,t.jsx)("div",{children:"Launch multi-level breakpoint split view"}),w?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(c,{checked:u,label:"Copy tracks into the new view",onChange:e=>{p(e.target.checked)}}),u?(0,t.jsx)(c,{checked:y,disabled:!u,label:"Mirror the copied tracks (only available if copying tracks and using two level)",onChange:e=>{b(e.target.checked)}}):null]}):null]}),(0,t.jsxs)(i.d,{children:[(0,t.jsx)(i.B,{onClick:()=>{(async()=>{try{await async function(e){let{stableViewId:a,feature:s,assemblyName:t,session:n,mirror:o,tracks:r=[]}=e;const{assemblyManager:l}=n,c=await l.waitForAssembly(t);if(!c)throw new Error(`assembly ${t} not found`);const{refName:w,pos:u,mateRefName:p,matePos:y}=m({feature:s,assembly:c});let b=n.views.find((e=>e.id===a));b||(b=n.addView("BreakpointSplitView",{id:a,type:"BreakpointSplitView",displayName:f(s),views:[{type:"LinearGenomeView",hideHeader:!0,tracks:d(r)},{type:"LinearGenomeView",hideHeader:!0,tracks:d(o?[...r].reverse():r)}]})),b.setDisplayName(f(s));const v=c.regions.find((e=>e.refName===w)),N=c.regions.find((e=>e.refName===p));if(!v||!N)throw new Error("can't find regions");await Promise.all([b.views[0].navToLocations([{refName:w,start:v.start,end:u,assemblyName:t},{refName:w,start:u+1,end:v.end,assemblyName:t}]),b.views[1].navToLocations([{refName:p,start:N.start,end:y,assemblyName:t},{refName:p,start:y+1,end:N.end,assemblyName:t}])]),await i.u.when((()=>b.views[1].initialized&&b.views[0].initialized)),b.views[1].zoomTo(10),b.views[0].zoomTo(10),b.views[1].centerAt(y,p),b.views[0].centerAt(u,w)}({stableViewId:l,session:a,tracks:u&&w?(0,i.e)(w.tracks):[],mirror:y,feature:o,assemblyName:r})}catch(e){console.error(e),a.notifyError(`${e}`,e)}})(),s()},variant:"contained",color:"primary",autoFocus:!0,children:"OK"}),(0,t.jsx)(i.B,{color:"secondary",variant:"contained",onClick:()=>{s()},children:"Cancel"})]})]})}));async function u(e){let{stableViewId:a,feature:s,assemblyName:t,session:n,tracks:o,windowSize:r=0,focusOnBreakends:l}=e;var c;const{snap:w,coverage:u}=l?function(e){let{feature:a,session:s,assemblyName:t,windowSize:n=0}=e;const{assemblyManager:o}=s,r=o.get(t);if(!r)throw new Error(`assembly ${t} not found`);if(!r.regions)throw new Error(`assembly ${t} regions not loaded`);const l=m({feature:a,assembly:r}),{refName:c,mateRefName:d}=l,w=r.regions.find((e=>e.refName===c)),u=r.regions.find((e=>e.refName===d));return{coverage:l,snap:{type:"BreakpointSplitView",views:[{type:"LinearGenomeView",displayedRegions:i.u.gatherOverlaps([{...w,end:l.pos+n,assemblyName:t},{...u,start:l.matePos-n,assemblyName:t}])}],displayName:f(a)}}}({feature:s,assemblyName:t,session:n,windowSize:r}):function(e){let{feature:a,session:s,assemblyName:t}=e;const{assemblyManager:n}=s,o=n.get(t);if(!o)throw new Error(`assembly ${t} not found`);if(!o.regions)throw new Error(`assembly ${t} regions not loaded`);const r=m({feature:a,assembly:o}),{refName:l,mateRefName:c}=r,d=o.regions.find((e=>e.refName===l)),w=o.regions.find((e=>e.refName===c));return{coverage:r,snap:{type:"BreakpointSplitView",views:[{type:"LinearGenomeView",displayedRegions:i.u.gatherOverlaps([{...d,assemblyName:t},{...w,assemblyName:t}])}],displayName:f(a)}}}({feature:s,assemblyName:t,session:n}),{refName:p,pos:y,mateRefName:b,matePos:v}=u;let N=n.views.find((e=>e.id===a));N?(null===(c=N.views[0])||void 0===c||c.setDisplayedRegions(w.views[0].displayedRegions),N.setDisplayName(w.displayName)):N=n.addView("BreakpointSplitView",{...w,views:[{...w.views[0],tracks:o?d((0,i.e)(o)):[]}]});const g=N.views[0];await i.u.when((()=>g.initialized));const h=g.bpToPx({coord:Math.max(0,y-r),refName:p}),k=g.bpToPx({coord:v+r,refName:b});h&&k?g.moveTo({...h,offset:h.offsetPx},{...k,offset:k.offsetPx}):i.u.getSession(g).notify("Unable to navigate to breakpoint")}const p=(0,i.o)((function(e){let{session:a,handleClose:s,feature:o,stableViewId:r,assemblyName:l,view:m}=e;
1const[d,f]=(0,n.useState)(!0),[w,p]=(0,n.useState)(!0),[y,b]=i.u.useLocalStorage("breakpointWindowSize","5000");return(0,t.jsxs)(i.a.Dialog,{open:!0,onClose:s,title:"Single-level breakpoint split view options",children:[(0,t.jsxs)(i.D,{children:[m?(0,t.jsx)(c,{checked:d,label:"Copy tracks into the new view",onChange:e=>{f(e.target.checked)}}):null,(0,t.jsx)(c,{checked:d,label:"Focus on breakends",onChange:e=>{p(e.target.checked)}}),(0,t.jsx)(i.c,{label:"Window size (bp)",value:y,onChange:e=>{b(e.target.value)}})]}),(0,t.jsxs)(i.d,{children:[(0,t.jsx)(i.B,{onClick:()=>{(async()=>{try{const{assemblyManager:e}=a;if(!await e.waitForAssembly(l))throw new Error(`assembly ${l} not found`);await u({feature:o,assemblyName:l,focusOnBreakends:w,session:a,stableViewId:r,tracks:null==m?void 0:m.tracks,windowSize:+y||0})}catch(e){console.error(e),a.notifyError(`${e}`,e)}})(),s()},variant:"contained",color:"primary",autoFocus:!0,children:"OK"}),(0,t.jsx)(i.B,{color:"secondary",variant:"contained",onClick:()=>{s()},children:"Cancel"})]})]})}))},1877:(e,a,s)=>{s.r(a),s.d(a,{default:()=>t.a});var t=s(6528);s(9062)}}]); 2//# sourceMappingURL=1877.94e4103d.chunk.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.