PageSourceSearch

https://www.ensembl.org/static/326.df73a9df820383015fa4.js

js ensembl.org collected 2026-09-24 08:30:12 UTC 68,280 bytes, 2 lines download raw bytes

1"use strict";(globalThis.webpackChunkensembl_new||=[]).push([[326],{70582(e,t,n){var s,a=n(96540);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)({}).hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},o.apply(null,arguments)}const i=e=>a.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 32 32"},e),s||(s=a.createElement("path",{d:"M3.6 2.7c0 .1-.1.2-.1.3s0 .2.1.3l11.9 16.3c.2.3.6.3.8.2.1 0 .1-.1.2-.2L28.4 3.3c.2-.3.1-.6-.2-.8-.1-.1-.2-.1-.3-.1H4.1c-.2 0-.4.1-.5.3M29.335 29.65c1 0 1.667-.833 1.667-1.667v-1.766c0-1-.833-1.667-1.667-1.667H2.67c-.834 0-1.667.667-1.667 1.667v1.766c0 .834.667 1.667 1.667 1.667z"})));n.d(t,["A",0,i])},14121(e,t,n){var s,a=n(96540);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)({}).hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},o.apply(null,arguments)}const i=e=>a.createElement("svg",o({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 32 32"},e),s||(s=a.createElement("path",{d:"M16 31C7.7 31 1 24.3 1 16S7.7 1 16 1s15 6.7 15 15-6.7 15-15 15m8-16.9h-6.1V8c0-.5-.4-1-1-1H15c-.5 0-1 .4-1 1v6.1H8c-.5 0-1 .4-1 1V17c0 .5.4 1 1 1h6.1v6c0 .6.5 1 1 1H17c.6 0 1-.5 1-1v-6.1h6c.6 0 1-.5 1-1V15c0-.5-.5-.9-1-.9"})));n.d(t,["A",0,i])},59969(e,t,n){n.r(t),n.d(t,{default:()=>Bo});var s=n(96540),a=n(78281),o=n(25508);const i=(e,t)=>e.regionActivityViewer.ui[t]?.mainContentBottomView??"dataviz",r=(e,t)=>e.regionActivityViewer.ui[t]?.sidebarView??"default",l=(0,o.Mz)([e=>e.regionActivityViewer.ui,(e,t)=>t],(e,t)=>e[t]?.histones??[]);var c=n(67297);const d=()=>{const e=(0,s.useContext)(c.G);if(!e)throw new Error("useActivityViewerIds must be used within ActivityViewerIdContext");return e},m=(0,s.createContext)({isLoading:!1,isError:!1,baseEpigenomes:null,filteredCombinedEpigenomes:null,sortedCombinedEpigenomes:null,epigenomeSortingDimensions:null,allEpigenomeSortableDimensions:[],epigenomeCombiningDimensions:[],epigenomeMetadataDimensionsResponse:null}),u=()=>{const e=(0,s.useContext)(m);if(!e)throw new Error("useEpigenomes must be used within ActivityViewerEpigenomesContext");return e},g=e=>e.regionActivityViewer.epigenomeSelection,p=(e,t)=>e.regionActivityViewer.epigenomeSelection[t]??null,h=(0,o.Mz)([g,(e,t)=>t],(e,t)=>{const n={},s=e[t];if(!s)return n;for(const[e,t]of Object.entries(s.selectionCriteria))t.length&&(n[e]=new Set(t));return n}),f=(0,o.Mz)([g,(e,t)=>t],(e,t)=>
1e[t]?.combiningDimensions??[]);var x=n(2858),_=n(57097);const y=e=>{const t=[];for(const[n,s]of Object.entries(e))if(s.default_values.length)for(const e of s.default_values)t.push({dimensionName:n,value:e});return t},v=()=>{const e=(0,a.GV)(x.t)??"",{epigenomeMetadataDimensionsResponse:t}=u(),n=(0,a.GV)(t=>p(t,e)),o=(0,a.jL)();(0,s.useEffect)(()=>{if(e&&t&&!n){const n=y(t.dimensions);for(const{dimensionName:t,value:s}of n)o((0,_.nH)({genomeId:e,dimensionName:t,value:s}))}},[t,n,e])};var j=n(18093),b=n(19098),w=n(99794);const N=()=>{const{activeGenomeId:e,genomeId:t,genomeIdInUrl:n,genomeIdForUrl:o,locationForUrl:i}=d(),r=(0,j.Zp)(),l=(0,a.jL)();(0,s.useEffect)(()=>{if(o&&o!==n){const e=b.Sw({genomeId:o,location:i});r(e,{replace:!0})}t&&t!==e?l((0,w.BS)(t)):e||l((0,w.gw)())},[e,t,n,o,i])};var k=n(4292),C=n(54690);const I="2025-02",E=e=>`${e.regionName}:${e.start}-${e.end}`,A=k.Ay.injectEndpoints({endpoints:e=>({regulatoryDataAvailability:e.query({query:e=>{const{assemblyId:t}=e;return{url:`${C.A.regulationApiBaseUrl}/annotation/v0.11/release/${I}/assembly/${t}/availability`}}}),regionOverview:e.query({query:e=>{const{assemblyId:t,location:n}=e;return{url:`${C.A.regulationApiBaseUrl}/annotation/v0.11/release/${I}/assembly/${t}?location=${n}`}}}),focusGene:e.query({queryFn:async(e,t,n,s)=>{const{assemblyId:a,geneId:o}=e;try{const e=`${C.A.regulationApiBaseUrl}/annotation/v0.11/release/${I}/assembly/${a}/gene/${o}`;return{data:(await s(e)).data}}catch{return{error:{status:"FETCH_ERROR",error:`Failed to fetch gene ${o}`}}}}}),baseEpigenomes:e.query({query:e=>({url:`${C.A.regulationApiBaseUrl}/epigenomes/v0.8/release/${I}/base_epigenomes/assembly/${e.assemblyId}`})}),epigenomeMetadataDimensions:e.query({query:e=>({url:`${C.A.regulationApiBaseUrl}/epigenomes/v0.8/release/${I}/metadata_dimensions/assembly/${e.assemblyId}`})}),epigenomesActivity:e.query({queryFn:async(e,t,n,s)=>{const{assemblyId:a,epigenomeIds:o,locations:i,regionName:r}=e,l=`${C.A.regulationApiBaseUrl}/epigenomes/v0.8/release/${I}/region_activity/assembly/${a}`,c={region_name:r,locations:i,epigenome_ids:D(o)},{data:d,error:m}=await s({url:l,headers:{"Content-Type":"application/json"},method:"POST",body:JSON.stringify(c)});return m?{error:m}:{data:d}}}),epigenomeLabels:e.query({queryFn:async(e,t,n,s)=>{const{assemblyId:a,epigenomeIds:o,combiningDimensions:i}=e,r=`${C.A.regulationApiBaseUrl}/epigenomes/v0.8/release/${I}/labels/assembly/${a}?add_nbsp=true`,l={collapsed_by:i,epigenome_ids:D(o)},{data:c,error:d}=await s({url:r,headers:{"Content-Type":"application/json"},method:"POST",body:JSON.stringify(l)});return d?{error:d}:{data:c}}}),epigenomesGeneActivity:e.query({queryFn:async(e,t,n,s)=>{const{assemblyId:a,epigenomeIds:o,geneId:i}=e,r=`${C.A.regulationApiBaseUrl}/epigenomes/v0.8/release/${I}/gene_activity/assembly/${a}/gene/${i}`,l={epigenome_ids:D(o)},{data:c,error:d}=await s({url:r,headers:{"Content-Type":"application/json"},method:"POST",body:JSON.stringify(l)});return d?{error:d}:{data:c}}})})}),D=e=>e.map(e=>e.split(", ")),{useRegulatoryDataAvailabilityQuery:T,useRegionOverviewQuery:S,useFocusGeneQuery:M,useEpigenomeMetadataDimensionsQuery:O,useBaseEpigenomesQuery:L,useEpigenomesActivityQuery:$,useEpigenomeLabelsQuery:R,useEpigenomesGeneActivityQuery:V}=A;var B=n(69e3);const G=e=>{const{epigenomes:t,selectionCriteria:n,selectedMetadataDimensions:s}=e;if(!s.length)return t;let a=t,o=[];for(const e of s){for(const t of a){const s=t[e];if("string"==typeof s)n[e].has(s)&&o.push(t);else if(Array.isArray(s))for(const a of s)n[e].has(a)&&o.push(t)}a=o,o=[]}return a},F=(e,t)=>{const n=t.reduce((t,n)=>`${t}-${e[n]}`,"");return`${e.term}${n}`},P=({epigenome:e,combiningDimensions:t,existingCombinedEpigenome:n})=>{const s={id:e.id};for(const a of Object.keys(e))t.includes(a)||("id"===a?s.id=n?`${n.id}, ${e.id}`:e.id:s[a]=e[a]);return s},q=({sortingDimensions:e,epigenomes:t})=>t.toSorted((t,n)=>{for(const s of e){const e=W(t,s),a=W(n,s);if(null!=e&&null!=a&&e!==a)return e.localeCompare(a)}return 0}),W=(e,t)=>{const n=e[t];return Array.isArray(n)?n.join(", "):String(n)};var z=n(74848);const U=()=>{const{genomeId:e,assemblyAccessionId:t}=d(),n=(0,a.GV)(t=>h(t,e??"")),o=(0,a.GV)(t=>f(t,e??"")),i=(0,a.GV)(t=>((e,t)=>{const n=p(e,t);return n?.sortingDimensions??null})(t,e??"")),{isLoading:r,isError:l,currentData:c}=L({assemblyId:t??""},{skip:!t}),{isLoading:m,isError:u,currentData:g}=O({assemblyId:t??""},{skip:!t}),x=(0,s.useMemo)(()=>g?Object.keys(g.dimensions):[],[g]),_=(0,s.useMemo)(()=>c?(e=>{const{epigenomes:t,selectionCriteria:n}=e,s=Object.keys(n);return G({epigenomes:t,selectionCriteria:n,selectedMetadataDimensions:s})})({epigenomes:c,selectionCriteria:n}):[],[c,n]),y=(0,s.useMemo)(()=>o.length?(({baseEpigenomes:e,combiningDimensions:t,allEpigenomeDimensions:n})=>{const s=new Map,a=n.filter(e=>!t.includes(e));for(const n of e){const e=F(n,a),o=s.get(e),i=P({epigenome:n,combiningDimensions:t,existingCombinedEpigenome:o});s.set(e,i)}return[...s.values()]})({baseEpigenomes:_,combiningDimensions:o,allEpigenomeDimensions:x}):_,[_,o,x]),{isLoading:v,isError:j,currentData:b}=R({assemblyId:t??"",combiningDimensions:o,epigenomeIds:y.map(({id:e})=>e)},{skip:!t||!y.length}),w=(0,s.useMemo)(()=>y.map((e,t)=>({...e,label:b?.[t].label??""})),[b,y]),N=(0,s.useMemo)(()=>Y({storedSortingDimensions:i,allSortableDimensions:g?.ui_spec.sortable??[],combiningDimensions:o}),[i,g,o]),k=N.slice(0,3),C=q({epigenomes:w,sortingDimensions:k});return{isLoading:r||m||v,isError:l||u||j,baseEpigenomes:c??null,epigenomeMetadataDimensionsResponse:g??null,filteredCombinedEpigenomes:y,sortedCombinedEpigenomes:C,epigenomeSortingDimensions:k,allEpigenomeSortableDimensions:N,epigenomeCombiningDimensions:o}},Y=({storedSortingDimensions:e,allSortableDimensions:t,combiningDimensions:n})=>{e=e??[];const s=new Set(e),a=t.filter(e=>!s.has(e));return[...e].concat(a).filter(e=>!n.includes(e))},H=({children:e})=>{const t=U();return(0,z.jsx)(m,{value:t,children:e})};var X=n(53940),Z=n(43558),J=n(79479),Q=n(12574),K=n(89259),ee=n(78880),te=n(57374),ne=n(68180);const se=()=>{const e=(0,a.GV)(Q.u),t=(0,a.GV)(x.t),n=(0,j.Zp)(),{removeGenome:s}=(0,J.A)(),o=e=>{const t=e.genome_tag??e.genome_id,s=b.Sw({genomeId:t});n(s)},i=e.map((e,n)=>(0,z.jsx)(te.Y,{species:e,isActive:e.genome_id===t,onClick:o,onRemove:s},n)),r=(0,z.jsx)(ne.A,{children:i}),l=(0,z.jsx)(K.td,{children:Z.td.REGULATORY_ACTIVITY_VIEWER}),c=t?r:"To start using this app...";return(0,z.jsx)(K.Ay,{topLeft:l,topRight:(0,z.jsx)(ee.A,{}),mainContent:c})},ae=(0,s.memo)(se);var oe=n(81897),ie=n(44721),re=n(6428);const le="feature__ActivityViewerFocusFeatureInfo__1ZaiG",ce="labelledElement__ActivityViewerFocusFeatureInfo__1ZaiG",de="smallLight__ActivityViewerFocusFeatureInfo__1ZaiG",me=({assemblyId:e,geneId:t,regionName:n})=>{const{data:s}=M({assemblyId:e,geneId:t});return s?(0,z.jsxs)("div",{className:le,children:[(0,z.jsxs)("span",{className:ce,children:[(0,z.jsx)("span",{className:de,children:"Gene"}),(0,z.jsx)(re.A,{symbol:s.symbol,stable_id:s.stable_id})]}),(0,z.jsx)(ue,{biotype:s.biotype}),(0,z.jsx)("span",{children:(0,ie.C)(s.strand)}),(0,z.jsx)(ge,{regionName:n,start:s.start,end:s.end})]}):null},ue=({biotype:e})=>(0,z.jsxs)("span",{className:ce,children:[(0,z.jsx)("span",{className:de,children:"Biotype"}),(0,z.jsx)("span",{children:e})]}),ge=({regionName:e,start:t,end:n})=>{const s=(0,oe.W)({chromosome:e,start:t,end:n});return(0,z.jsx)("span",{children:s})},pe=()=>{const{assemblyAccessionId:e,focusGeneId:t,location:n}=d();return e&&n&&t?(0,z.jsx)(me,{assemblyId:e,geneId:t,regionName:n.regionName}):null},he="grid__ActivityViewerTopBar__VLN3K",fe="title__ActivityViewerTopBar__VLN3K",xe=()=>(0,z.jsxs)("div",{className:he,children:[(0,z.jsx)("div",{className:fe,children:"Regulation"}),(0,z.jsx)(pe,{})]});var _e=n(39338),ye=n(77086),ve=n(83846),je=n(72795),be=n(70582),we=n(91209),Ne=n(51932);const ke=()=>(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(_e.A,{status:we.n.DISABLED,description:"Search",className:Ne.A.sidebarIcon,image:ye.A}),(0,z.jsx)(_e.A,{status:we.n.DISABLED,description:"Previously viewed",className:Ne.A.sidebarIcon,image:ve.A}),(0,z.jsx)(_e.A,{status:we.n.DISABLED,description:"Share",className:Ne.A.sidebarIcon,image:je.A}),(0,z.jsx)(_e.A,{status:we.n.DISABLED,description:"Download",className:Ne.A.sidebarIcon,image:be.A})]});var Ce=n(71581),Ie=n(28722);const Ee="topPanel__ActivityViewerInterstitial__uEDnx",Ae="main__ActivityViewerInterstitial__uEDnx",De=()=>{const{genomeId:e,genomeIdForUrl:t}=d(),{data:n}=(0,Ie.QT)(e??"",{skip:!e});let s;if(n){const e=n.find(e=>"location"===e.type);e&&(s=b.Sw({genomeId:t,location:e.id}))}return location?(0,z.jsxs)("div",{children:[(0,z.jsx)("div",{className:Ee}),(0,z.jsx)("div",{className:Ae,children:s&&(0,z.jsx)(Ce.N_,{to:s,children:"Example location"})})]}):(0,z.jsxs)("div",{children:[(0,z.jsx)("div",{className:Ee}),(0,z.jsx)("div",{className:Ae,children:"Please select reference human or reference mouse assembly."})]})};var Te=n(5308);const Se=({isLoading:e})=>(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(ae,{}),(0,z.jsxs)("div",{children:[(0,z.jsx)("div",{className:Ee}),(0,z.jsx)("div",{className:Ae,children:e?(0,z.jsx)(Te.m,{}):(0,z.jsx)("div",{children:"This assembly does not have regulatory activity data"})})]})]}),Me=e=>{const{genes:t}=e,n=t.filter(t=>Ve({feature:t,start:e.start,end:e.end})),s=[],a=[];for(const e of n){const t="forward"===e.strand?s:a,n=$e(e);let o=!0;for(const s of t)if(Oe(s,e)){s.push(n),o=!1;break}
1o&&t.push([n])}return{forwardStrandTracks:s,reverseStrandTracks:a}},Oe=(e,t)=>{for(const n of e)if(Le(t,n.data))return!1;return!0},Le=(e,t)=>e.start>=t.start&&e.start<=t.end||t.start>=e.start&&t.start<=e.end,$e=e=>({data:e}),Re=e=>{const{regulatory_features:{feature_types:t,data:n}}=e;let s=[];const a=n.filter(t=>Ve({feature:t,start:e.start,end:e.end}));for(const e of a){const n=t[e.feature_type]?.track_index;if("number"!=typeof n)continue;const a=s[n];a?a.push(e):s[n]=[e]}return s=s.filter(e=>!!e),s},Ve=e=>{const{feature:t,start:n,end:s}=e;if(!n||!s)return!0;const a=!!t.extended_start&&(t.extended_start>n&&t.extended_start<s),o=!!t.extended_end&&(t.extended_end>n&&t.extended_end<s),i=t.start>n&&t.start<s,r=t.end>n&&t.end<s,l=(t.extended_start&&t.extended_start<n||t.start<n)&&(t.extended_end&&t.extended_end>s||t.end>s);return a||o||i||r||l},Be=e=>({geneTracks:Me({genes:e.data.genes,start:e.start,end:e.end}),regulatoryFeatureTracks:Re({regulatory_features:e.data.regulatory_features,start:e.start,end:e.end})});var Ge=n(31635),Fe=n(27291),Pe=function(e){function t(t){var n=e.call(this)||this;return n._value=t,n}return(0,Ge.C6)(t,e),Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(t){var n=e.prototype._subscribe.call(this,t);return!n.closed&&t.next(this._value),n},t.prototype.getValue=function(){var e=this,t=e.hasError,n=e.thrownError,s=e._value;if(t)throw n;return this._throwIfClosed(),s},t.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},t}(Fe.B),qe=n(16126),We=n(95864),ze=n(59099),Ue=n(44240),Ye=n(81160),He=n(69636);const Xe=1e6,Ze=({start:e,end:t})=>{const n=Je(e),s=Qe(t),a=[];for(let e=n;e<s;e+=Xe)a.push({start:e,end:e+Xe-1});return a},Je=e=>{if(e<1)throw new Error("Feature coordinates can only be represented with positive integers");return e%Xe===0&&(e-=1),Math.floor(e/Xe)*Xe+1},Qe=e=>Math.ceil(e/Xe)*Xe,Ke=({start:e,end:t})=>`${e}-${t}`,et=(new Pe({status:"not_requested",data:null}).asObservable(),new Fe.B),tt=e=>{et.next({type:"region-details-query",payload:e})},nt=et.pipe((0,qe.p)(e=>{const{assemblyId:t,regionName:n,start:s,end:a}=e.payload,o=lt.getValue();return!Ze({start:s,end:a}).map(Ke).every(e=>{const s=o.loadingLocations?.some(s=>s.assemblyId===t&&s.regionName===n&&s.bin===e),a=o.data?.bins[e]&&o.data.assemblyId===t&&o.data.region.name===n;return s||a})})),st=(nt.pipe((0,We.H)(e=>dt(e.payload).pipe((0,ze.M)(t=>{if("error"in t)return;const{assemblyId:n}=e.payload,s={assemblyId:n,region:t.region,bins:st({requestParams:e.payload,response:t}),regulatory_feature_types:t.regulatory_features.feature_types};at.next({type:"region-details-response",payload:s})})))).subscribe(),({requestParams:e,response:t})=>{const{start:n,end:s}=e,{genes:a,regulatory_features:{data:o}}=t,i=Ze({start:n,end:s}).reduce((e,{start:t,end:n})=>(e[Ke({start:t,end:n})]={genes:[],regulatory_features:[]},e),{}),r=e=>{i[e]={genes:[],regulatory_features:[]}};for(const e of a){const t=Ze({start:e.start,end:e.end}).map(e=>Ke({start:e.start,end:e.end}));for(const n of t)i[n]||r(n),i[n].genes.push(e)}for(const e of o){const t=Ze({start:e.start,end:e.end}).map(e=>Ke({start:e.start,end:e.end}));for(const n of t)i[n]||r(n),i[n].regulatory_features.push(e)}return i}),at=new Fe.B;(0,Ue.h)(nt,at).pipe((0,Ye.T)(e=>{const t=lt.getValue();if("region-details-query"===e.type){const{start:n,end:s}=e.payload,a=Je(n),o=Qe(s),i=Ze({start:a,end:o}).map(Ke);return ot(t,{...e.payload,binKeys:i})}if("region-details-response"===e.type)return it(t,e.payload)})).subscribe(e=>{e&&lt.next(e)});const ot=(e,t)=>{e.data?.assemblyId&&e.data.assemblyId!==t.assemblyId&&(e={...rt});const n=t.binKeys.map(e=>({assemblyId:t.assemblyId,regionName:t.regionName,bin:e})),s=e.loadingLocations??[];return{...e,loadingLocations:[...s,...n]}},it=(e,t)=>{const n={...e.data?.bins};let s=[...e.loadingLocations??[]];for(const e of Object.keys(t.bins))n[e]=t.bins[e],s=s.filter(n=>!(n.assemblyId===t.assemblyId&&n.regionName===t.region.name&&n.bin===e));const a=e.data?{...e.data.regulatory_feature_types,...t.regulatory_feature_types}:t.regulatory_feature_types;return{loadingLocations:s.length?s:null,data:{...e.data??{},assemblyId:t.assemblyId,region:t.region,bins:n,regulatory_feature_types:a}}},rt={loadingLocations:null,data:null},lt=new Pe(rt),ct=lt.asObservable(),dt=e=>{const{assemblyId:t,regionName:n,start:s,end:a}=e,o=`${n}:${s}-${a}`,i=`${C.A.regulationApiBaseUrl}/annotation/v0.11/release/2025-02/assembly/${t}?location=${o}`;return(0,He.h)(i)},mt=({assemblyId:e,regionName:t,start:n,end:s})=>({assemblyId:e,regionName:t,start:Je(n),end:Qe(s)}),ut=(e,t)=>e.end>=t.start&&e.start<=t.end,gt=e=>
1{const[t,n]=(0,s.useState)(null),a=e?.assemblyId,o=e?.regionName,i=e?.start,r=e?.end;return(0,s.useEffect)(()=>{if(!(a&&o&&i&&r))return;var e;const t=(e={assemblyId:a,regionName:o,start:i,end:r},ct.pipe((0,qe.p)(t=>{if(!t.data)return!1;const n=t.data.region.length,s=Ze({start:Math.max(e.start,1),end:Math.min(e.end,n)}).map(Ke);return e.assemblyId===t.data.assemblyId&&e.regionName===t.data.region.name&&s.every(e=>!!t.data.bins[e])}),(0,Ye.T)(t=>{const n=t.data.region.length,s=t.data,a=Ze({start:Math.max(e.start,1),end:Math.min(e.end,n)}).map(Ke),o=[],i=[];for(let t=0;t<a.length;t++){const n=a[t],r=s.bins[n],l=t>0?a[t-1]:null,c=l?parseInt(l.split("-").pop()):null;for(const t of r.genes)ut(t,e)&&(c&&t.start<=c||o.push(t));for(const t of r.regulatory_features)ut(t,e)&&(c&&t.start<=c||i.push(t))}return{assemblyId:s.assemblyId,region:s.region,genes:o,regulatory_features:{feature_types:s.regulatory_feature_types,data:i}}}))).subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[a,o,i,r]),{data:t}};var pt=n(73271);const ht=({location:e,detailLocation:t,scale:n})=>{const s=e.start;return n(s+((t?t.start:s)-s))},ft=({distance:e,scale:t})=>{const n=t.invert(Math.abs(e)),s=t.domain()[0];return Math.round(n-s)},xt=1e6;var _t=n(5393);const yt="image__RegionOverviewImage__buBT-",vt="interactiveArea__RegionOverviewImage__buBT-",jt=e=>{const{exons:t,trackY:n,scale:s,color:a}=e;return t.map(e=>{const t=s(e.start),o=s(e.end),i=Math.max(o-t,.2);return(0,z.jsx)("rect",{x:t,y:n,width:i,height:8,fill:"none",stroke:a,"data-start":e.start,"data-end":e.end,"data-start-scaled":s(e.start),"data-end-scaled":s(e.end)},e.start)})},bt=e=>{const{cdsFragments:t,trackY:n,scale:s,color:a}=e;return t.map((e,o)=>{const i=t[o-1],r=i&&e.start-i.end===1?i.end:e.start,l=s(r),c=s(e.end)-l;if(!c)return null;const d=e.count;return(0,z.jsx)("rect",{x:l,y:n,width:c,height:8,fill:a,"data-start":e.start,"data-end":e.end,"data-start-scaled":s(e.start),"data-end-scaled":s(e.end),opacity:d},e.start)})},wt=e=>{const{introns:t,trackY:n,scale:s,color:a}=e;return t.map(e=>{const t=n+4,o=s(e.start),i=s(e.end);return(0,z.jsx)("line",{x1:o,x2:i,y1:t,y2:t,stroke:a,strokeWidth:"1"},`intron-${e.start}-${e.end}`)})},Nt=({from:e,to:t,scale:n,color:s,offsetTop:a,direction:o})=>{const[i]=n.domain(),r=n(i+(t-e+1));if(r<2)return null;const l=n(e),c=l+r,d=a+4,m="left"===o?l:n(t),u=(0,z.jsx)("line",{x1:l,x2:c,y1:d,y2:d,stroke:s,strokeDasharray:2,strokeWidth:"1"}),g=(0,z.jsx)("line",{x1:m,x2:m,y1:a,y2:a+8,stroke:s,strokeWidth:"1"});return(0,z.jsxs)(z.Fragment,{children:[u,g]})},kt=e=>{const{gene:t,offsetTop:n,scale:s}=e,{start:a,end:o}=t.data,i=s(a),r=s(o)-s(a),l=n;return(0,z.jsx)("rect",{x:i,y:l,width:r,height:8,fill:"transparent",onClick:e.onClick,className:vt})},Ct=e=>{const{gene:t,region:n,scale:s,offsetTop:a,isFocused:o}=e,i=o?"black":"#0099ff",r=a,{merged_exons:l}=t.data,c=[];for(let e=1;e<l.length;e++){const t=l[e-1],n=l[e],s=t.end,a=n.start;c.push({start:s,end:a})}const d=l.at(0),m=l.at(-1),u=t.data.start<d.start,g=t.data.end>m.end;return(0,z.jsxs)("g",{"data-name":"gene","data-symbol":t.data.symbol,children:[u&&(0,z.jsx)(Nt,{from:t.data.start,to:d.start,scale:s,offsetTop:a,color:i,direction:"left"}),(0,z.jsx)(jt,{exons:l,trackY:r,scale:s,color:i}),(0,z.jsx)(bt,{cdsFragments:t.data.cds_counts,trackY:r,scale:s,color:i}),(0,z.jsx)(wt,{introns:c,trackY:r,scale:s,color:i}),g&&(0,z.jsx)(Nt,{from:m.end,to:t.data.end,scale:s,offsetTop:a,color:i,direction:"right"}),(0,z.jsx)(kt,{...e,onClick:e=>{e.preventDefault(),e.stopPropagation();const s={type:"gene",coordinates:{x:e.nativeEvent.offsetX,y:e.nativeEvent.offsetY},content:{stable_id:t.data.stable_id,unversioned_stable_id:t.data.unversioned_stable_id,symbol:t.data.symbol,biotype:t.data.biotype,region_name:n.name,start:t.data.start,end:t.data.end,strand:t.data.strand}},a=new CustomEvent("popup-message",{detail:s,bubbles:!0});e.currentTarget.dispatchEvent(a)},start:t.data.start,end:t.data.end})]})},It=e=>{const{gene:t,scale:n,offsetTop:s,isFocused:a}=e,o=a?"black":"#0099ff",{data:{start:i,end:r}}=t,l=n(i),c=n(r),d=Math.max(c-l,.2);return(0,z.jsx)("rect",{x:l,width:d,y:s,height:8,fill:o})},Et=e=>{const{scale:t,feature:n,featureTypesMap:s,offsetTop:a}=e,o=t(n.start),i=t(n.end),r=Math.max(i-o,2),l=s[n.feature_type].color;return(0,z.jsx)("rect",{x:o,width:r,y:a,height:8,fill:l})},At=e=>{const{scale:t,feature:n,featureTypesMap:s,offsetTop:a,side:o}=e,i="left"===o?n.extended_start:n.extended_end,r="left"===o?i===n.start:i===n.end;if(!i||r)return null;const l=t(i),c="left"===o?t(n.start)-l:l-t(n.end),d="left"===o?l:t(n.end),m=s[n.feature_type].color;return c<=0?null:(0,z.jsx)("rect",{x:d,width:c,y:a+2,height:4,fill:m})},Dt=e=>
1{const{feature:t,region:n}=e;return(0,z.jsxs)("g",{className:vt,onClick:e=>{e.preventDefault(),e.stopPropagation();const s={type:"regulatory-feature",coordinates:{x:e.nativeEvent.offsetX,y:e.nativeEvent.offsetY},content:{id:t.id,feature_type:t.feature_type,region_name:n.name,start:t.start,end:t.end,extended_start:t.extended_start,extended_end:t.extended_end}},a=new CustomEvent("popup-message",{detail:s,bubbles:!0});e.currentTarget.dispatchEvent(a)},children:[(0,z.jsx)(At,{...e,side:"left"}),(0,z.jsx)(Et,{...e}),(0,z.jsx)(At,{...e,side:"right"})]})},Tt=6.75,St="black",Mt=e=>{const{strand:t,site:n}=e,{yStart:s,yEnd:a,x:o,isOverlapping:i}=n,r=o,l="forward"===t?r+6:r-6,c="forward"===t?l+Tt:l-Tt,d=`${l}, ${a-3}`,m=`${l}, ${a+3}`,u=`${c}, ${a}`;return(0,z.jsxs)("g",{"data-name":"transcription start site",children:[(0,z.jsx)("line",{x1:r,x2:r,y1:s,y2:a,stroke:St,strokeWidth:"1"}),(0,z.jsx)("line",{x1:r,x2:l,y1:a,y2:a,stroke:St,strokeWidth:"1"}),i?(0,z.jsx)("line",{x1:l,x2:c,y1:a,y2:a,stroke:St,strokeWidth:"1"}):(0,z.jsx)("polygon",{points:`${d} ${u} ${m}`})]})},Ot=({tss:e,geneTracks:t,trackIndex:n,trackOffsetsTop:s,strand:a,scale:o})=>{let i=[],r=-1/0;for(const t of e){const e=o(t.position);if(e-r<2){const n=i.at(-1);n?n.count+=1:(i.push({position:t.position,x:e,count:1}),r=e)}else i.push({position:t.position,x:e,count:1}),r=e}const l=Lt({geneTracks:t,trackIndex:n,trackOffsetsTop:s,tssList:i,strand:a,scale:o}),c=[];"forward"===a&&(i=i.reverse());for(const e of i){const t=c.at(-1);if(!t){c.push({...e,yStart:l,yEnd:"forward"===a?l-12:l+12,isOverlapping:!1});continue}const n=13.75,s="forward"===a?e.x+n:e.x-n,o="forward"===a?t.x<=s:t.x>=s,i={...e,yStart:t.yStart,yEnd:"forward"===a?l-12:l+12,isOverlapping:o};c.push(i)}return c},Lt=({geneTracks:e,trackIndex:t,trackOffsetsTop:n,tssList:s,strand:a,scale:o})=>{const i=e.slice(t+1);if(0===i.length)return"forward"===a?n[t]-2:n[t]+11+2;let r=0;for(const e of i)for(const t of e){const e=o(t.data.start),n=o(t.data.end);let a=!1;for(const t of s)if(t.x>=e&&t.x<=n){a=!0;break}if(a){r++;break}}const l="forward"===a?Math.max(t-r,0):Math.min(t+r,n.length-1);return"forward"===a?n[l]-2:n[l]+11+2},$t=e=>Ot(e).map(t=>(0,s.createElement)(Mt,{...e,site:t,key:`tss-${t.position}`})),Rt=(e,t)=>"selection-start"===t.type?{originX:t.payload.originX,latestX:t.payload.latestX}:"selection-update"===t.type?e?{...e,latestX:t.payload.x}:null:"selection-clear"===t.type?null:e,Vt=e=>({start:Math.min(e.originX,e.latestX),end:Math.max(e.originX,e.latestX)}),Bt=({ref:e,onSelectionCompleted:t})=>{const[n,a]=(0,s.useReducer)(Rt,null),o=(0,s.useRef)(n),i=(0,s.useRef)(null),r=(0,s.useRef)(null),l=(0,s.useRef)(t);o.current=n,l.current=t,(0,s.useEffect)(()=>(e.current&&(r.current=e.current.getBoundingClientRect(),e.current.addEventListener("mousedown",c)),()=>{e.current&&e.current.removeEventListener("mousedown",c)}),[e.current]);const c=t=>{const n=t.target;if(n!==e.current&&"inert-area"!==n.dataset.name)return;const s=t.clientY,a=n.getBoundingClientRect();Math.round(s)-Math.round(a.y)>15||(i.current=t.offsetX,document.addEventListener("mousemove",d))},d=e=>{const t=e.offsetX;Math.abs(t-i.current)>5&&(m(e),document.removeEventListener("mousemove",d))},m=e=>{if(e instanceof MouseEvent){const t=e.offsetX;a({type:"selection-start",payload:{originX:i.current,latestX:t}}),document.addEventListener("mousemove",u),document.addEventListener("mouseup",g)}},u=e=>{if(e instanceof MouseEvent){const t=e.clientX-r.current.x;if(t<0||t>r.current.width)return;a({type:"selection-update",payload:{x:t}})}},g=()=>{o.current&&l.current(Vt(o.current)),p(),a({type:"selection-clear"})},p=()=>{document.removeEventListener("mousemove",u),document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",g)};return n?Vt(n):null},Gt=({id:e,selectionStart:t,selectionEnd:n,height:s,width:a})=>{const o=a-n;return(0,z.jsxs)("filter",{id:e,children:[(0,z.jsx)("feFlood",{floodColor:"#e5eaf0",floodOpacity:"1",x:"0",y:"0",height:s,width:Math.max(t,1),result:"A"}),(0,z.jsx)("feFlood",{floodColor:"#e5eaf0",floodOpacity:"1",x:n,y:"0",height:s,width:Math.max(o,1),result:"D"}),(0,z.jsx)("feComposite",{operator:"in",in2:"SourceGraphic",in:"D",result:"C"}),(0,z.jsx)("feComposite",{operator:"in",in2:"SourceGraphic",in:"A",result:"B"}),(0,z.jsxs)("feMerge",{children:[(0,z.jsx)("feMergeNode",{in:"B"}),(0,z.jsx)("feMergeNode",{in:"C"})]}),(0,z.jsx)("feComposite",{operator:"over",in2:"SourceGraphic"})]})},Ft=({height:e,width:t,selectionStart:n,selectionEnd:s})=>(0,z.jsxs)("g",{children:[(0,z.jsx)("rect",{x:0,width:n,y:0,height:e,fill:"transparent","data-name":"inert-area"}),(0,z.jsx)("rect",{x:s,width:t-s,y:0,height:e,fill:"transparent","data-name":"inert-area"})]}),Pt=e=>{const{activeGenomeId:t,regionName:n,scale:s,imageRef:o,children:r}=e,l=(0,a.GV)(e=>i(e,t)),c=(0,j.zy)(),d=(0,j.Zp)(),m=(0,a.jL)(),u=Bt({ref:o,onSelectionCompleted:e=>{const{start:a,end:o}=e,i=Math.round(s.invert(a)),r=Math.round(s.invert(o)),{pathname:u,search:g}=c,p=`${n}:${i}-${r}`,h=new URLSearchParams(g);h.set("location",p);const f=decodeURIComponent(h.toString());d(`${u}?${f}`,{replace:!0}),"dataviz"!==l&&m((0,B.NO)({genomeId:t,view:"dataviz"}))}}),g="greyscale";return(0,z.jsxs)(z.Fragment,{children:[u&&(0,z.jsx)(Gt,{id:g,height:e.height,width:e.width,selectionStart:u.start,selectionEnd:u.end}),(0,z.jsx)("g",{filter:u?`url(#${g})`:void 0,children:r}),u&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("rect",{x:u.start,width:u.end-u.start,y:2,height:e.height-4,fill:"none",stroke:"#d90000",strokeDasharray:"2"}),(0,z.jsx)(Ft,{width:e.width,height:e.height,selectionStart:u.start,selectionEnd:u.end})]})]})},qt=(e,t)=>"set-initial-state"===t.type?t.payload:"update-position"===t.type?{...e,currentOffset:t.payload.distance}:e,Wt=e=>({initialOffset:e,currentOffset:0}),zt=e=>{const{location:t,regionDetailLocation:n,scale:a,children:o}=e,i=ht({location:t,detailLocation:n,scale:a}),r=Wt(i),[l,c]=(0,s.useReducer)(qt,r),d=(e=>{const{initialOffset:t,currentOffset:n}=e;return-1*t+n})(l),m=(0,j.Zp)(),u=(0,j.zy)(),g=(0,s.useRef)(null),p=(0,s.useRef)(l);p.current=l;const h=(0,s.useRef)(t),f=(0,s.useRef)(n),x=(0,s.useRef)(a);if(t!==h.current||n!==f.current||a!==x.current){const e=ht({location:t,detailLocation:n,scale:a}),s=Wt(e);c({type:"set-initial-state",payload:s}),h.current=t,f.current=n,x.current=a}const _=e=>{const t=e.closest("svg");t?.addEventListener("mousedown",v)},y=e=>{const t=e.closest("svg");t?.removeEventListener("mousedown",v)},v=e=>{const{currentTarget:t}=e;if(!(t instanceof SVGSVGElement))return;const n=e.offsetY;
1Math.round(n)<15||(g.current=e.offsetX,t.addEventListener("mousemove",b),t.addEventListener("mouseup",w))},b=e=>{const s=e.offsetX-g.current,o=ft({distance:s,scale:a});!n||s>0&&n.start-o<t.start||s<0&&n.end+o>t.end||c({type:"update-position",payload:{distance:s}})},w=e=>{const t=e.currentTarget;t.removeEventListener("mousemove",b),t.removeEventListener("mouseup",w),N()},N=()=>{const e=p.current.currentOffset;if(!e)return;const{start:s,end:o}=(({location:e,detailLocation:t,scale:n,distance:s})=>{const{start:a,end:o}=e,{start:i,end:r}=t,l=r-i,c=ft({distance:s,scale:n});return s>0?i-c>=a?{start:i-c,end:r-c}:{start:a,end:a+l}:r+c<=o?{start:i+c,end:r+c}:{start:o-l,end:o}})({location:t,detailLocation:n??t,scale:a,distance:e}),{regionName:i}=t,{pathname:r,search:l}=u,c=`${i}:${s}-${o}`,d=new URLSearchParams(l);d.set("location",c);const g=decodeURIComponent(d.toString());m(`${r}?${g}`,{replace:!0})};return(0,z.jsx)("g",{transform:`translate(${d}, 0)`,ref:e=>(_(e),()=>{y(e)}),children:o})};var Ut=n(46942),Yt=n.n(Ut),Ht=n(9185),Xt=n(19016);const Zt="regularRow__AcrivityViewerPopupContent__-VHgw",Jt="strand__AcrivityViewerPopupContent__-VHgw",Qt="light__AcrivityViewerPopupContent__-VHgw",Kt=e=>{const{content:t}=e,n=(0,s.useRef)(null),a=t.symbol?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("span",{children:t.symbol})," ",(0,z.jsx)("span",{children:t.stable_id})]}):(0,z.jsx)("span",{children:t.stable_id});return(0,z.jsxs)("div",{ref:n,children:[(0,z.jsxs)("div",{className:Zt,children:[(0,z.jsx)("span",{className:Qt,children:"Gene "}),a]}),(0,z.jsxs)("div",{className:Zt,children:[(0,z.jsx)("span",{className:Qt,children:"Biotype "}),(0,z.jsx)("span",{children:t.biotype})]}),(0,z.jsxs)("div",{className:Qt,children:[(0,z.jsxs)("span",{className:Jt,children:[(0,ie.C)(t.strand)," "]}),(0,z.jsx)("span",{children:(0,oe.W)({chromosome:t.region_name,start:t.start,end:t.end})})]}),(0,z.jsx)("div",{children:(0,z.jsx)(Xt.A,{onClick:()=>{const s=new CustomEvent("focus-gene",{bubbles:!0,detail:t});n.current?.dispatchEvent(s),e.onClose()},children:"Make focus"})})]})},en=e=>{const{content:t}=e;return(0,z.jsxs)("div",{children:[(0,z.jsxs)("div",{className:Zt,children:[(0,z.jsx)("span",{className:Qt,children:"Regulatory feature "}),t.id]}),(0,z.jsxs)("div",{className:Zt,children:[(0,z.jsx)("span",{className:Qt,children:"Type "}),(0,z.jsx)("span",{children:t.feature_type})]}),(0,z.jsxs)("div",{className:Qt,children:[(0,z.jsx)("span",{className:Qt,children:"Core "}),(0,z.jsx)("span",{children:(0,oe.W)({chromosome:t.region_name,start:t.start,end:t.end})})]}),t.extended_start&&t.extended_end&&(0,z.jsxs)("div",{className:Qt,children:[(0,z.jsx)("span",{className:Qt,children:"Bounds "}),(0,z.jsx)("span",{children:(0,oe.W)({chromosome:t.region_name,start:t.extended_start,end:t.extended_end})})]})]})},tn=e=>"gene"===e.message.type?(0,z.jsx)(Kt,{content:e.message.content,onClose:e.onClose}):"regulatory-feature"===e.message.type?(0,z.jsx)(en,{content:e.message.content}):null;var nn=n(99128),sn=n(93573);const an=e=>{const[t,n]=(0,s.useState)(null),[a,o]=(0,s.useState)(null);(0,s.useImperativeHandle)(e.ref,()=>({showPopup:e=>{n(e)}}));const i=()=>{n(null)},r=Yt()(sn.A.toolbox,nn.A.pointerBoxShadow);if(!t)return null;const{coordinates:{x:l,y:c}}=t;return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("rect",{ref:o,x:l,y:c,width:1,height:1,fill:"transparent"}),a&&(0,z.jsx)(Ht.A,{position:Ht.y.RIGHT_BOTTOM,anchor:a,onOutsideClick:i,className:r,children:(0,z.jsx)(tn,{message:t,onClose:i})})]})},on=e=>{const{activeGenomeId:t,width:n,featureTracks:a,data:o,location:i,extendedLocation:r,focusGeneId:l}=e,[c,d]=(0,_t.A)(null),m=(0,s.useRef)(null),{imageHeight:u,regulatoryFeatureTracksTopOffset:g}=un(a),p=(({location:e,detailLocation:t,viewportWidth:n})=>{const s=e.end-e.start+1,a=s/(t?t.end-t.start+1:s),o=Math.floor(n*a);return(0,pt.m4Y)().domain([e.start,e.end]).rangeRound([0,o])})({location:r,detailLocation:i,viewportWidth:n}),h=(({location:e,detailLocation:t,viewportWidth:n})=>{const s=t??e,{start:a,end:o}=s;return(0,pt.m4Y)().domain([a,o]).rangeRound([0,n])})({location:r,detailLocation:i,viewportWidth:n}),{geneTracks:f}=a;return(0,z.jsxs)("svg",{viewBox:`0 0 ${n} ${u}`,ref:e=>{d(e);const t=e=>{const t=e.detail;m.current?.showPopup(t)};return e.addEventListener("popup-message",t),()=>{e.removeEventListener("popup-message",t)}},className:yt,style:{width:"100%",height:`${u}px`,borderStyle:"dashed",borderWidth:"1px",borderColor:"var(--color-dark-grey)",borderRadius:"6px"},children:[(0,z.jsx)(Pt,{activeGenomeId:t,regionName:i.regionName,imageRef:c,height:u,width:n,scale:h,children:(0,z.jsxs)(zt,{location:r,regi
1onDetailLocation:i,scale:p,children:[(0,z.jsx)(rn,{regionData:o,tracks:f,scale:p,width:n,focusGeneId:l,location:i}),(0,z.jsx)(dn,{offsetTop:g,features:o.regulatory_features.data,featureTypesMap:o.regulatory_features.feature_types,regionData:o,scale:p})]})}),(0,z.jsx)(an,{ref:m})]})},rn=e=>{const{forwardStrandTracks:t,reverseStrandTracks:n}=e.tracks;let s=40;const a=[],o=[];for(let e=t.length;e>0;e--){const t=40+11*(e-1);a.push(t),s+=11}const i=s+5.5;s=i+11;for(let e=0;e<n.length;e++)o.push(s),s+=11;s+=11;const[r,l]=[e.tracks.forwardStrandTracks,e.tracks.reverseStrandTracks].map((t,n)=>{const s=0===n?a:o;return t.map((n,a)=>(0,z.jsx)(ln,{regionData:e.regionData,location:e.location,tracks:t,trackIndex:a,trackOffsetsTop:s,scale:e.scale,focusGeneId:e.focusGeneId},a))});return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("g",{children:r}),(0,z.jsx)(cn,{width:e.width,offsetTop:i}),(0,z.jsx)("g",{children:l})]})},ln=e=>{const{location:t,tracks:n,trackIndex:a,trackOffsetsTop:o,scale:i,focusGeneId:r}=e,l=n[a],c=o[a],d=t.end-t.start>xt,m=l.map(t=>{const l=r===t.data.unversioned_stable_id;return d?(0,z.jsx)(It,{gene:t,region:e.regionData.region,scale:i,offsetTop:c,isFocused:l},t.data.stable_id):(0,z.jsxs)(s.Fragment,{children:[(0,z.jsx)(Ct,{gene:t,region:e.regionData.region,offsetTop:c,scale:i,isFocused:l}),(0,z.jsx)($t,{tss:t.data.tss,strand:t.data.strand,scale:i,geneTracks:n,trackIndex:a,trackOffsetsTop:o})]},t.data.stable_id)});return(0,z.jsx)("g",{children:m})},cn=e=>{const t=e.offsetTop,n=3*e.width;return(0,z.jsx)("line",{x1:"0",x2:n,y1:t,y2:t,strokeDasharray:"2",stroke:"#ccd3d8",strokeWidth:"1"})},dn=e=>{const{features:t,featureTypesMap:n,offsetTop:s,regionData:a,scale:o}=e;let i=[];for(const e of t){const t=n[e.feature_type]?.track_index;if("number"!=typeof t)continue;const s=i[t];s?s.push(e):i[t]=[e]}i=i.filter(e=>!!e);const r=i.map((e,t)=>(0,z.jsx)(mn,{track:e,regionData:a,featureTypesMap:n,offsetTop:s+18*t,scale:o},t));return(0,z.jsx)("g",{children:r})},mn=e=>{const{track:t,featureTypesMap:n,offsetTop:s,scale:a,regionData:o}=e,i=t.map((e,i)=>{const r=i>0?t[i-1]:null,l=e.extended_start??e.start,c=e.extended_end??e.end,d=a(l),m=a(c),u=r?.extended_start??r?.start,g=r?.extended_end??r?.end,p=u?a(u):-1,h=g?a(g):-1;return d===p&&m===h?null:(0,z.jsx)(Dt,{feature:e,featureTypesMap:n,region:o.region,offsetTop:s,scale:a},e.id)});return(0,z.jsx)("g",{children:i})},un=e=>{const{geneTracks:t,regulatoryFeatureTracks:n}=e,{forwardStrandTracks:s,reverseStrandTracks:a}=t,o=40+11*s.length+5.5,i=o+11+11*a.length+38;return{strandDividerTopOffset:o,regulatoryFeatureTracksTopOffset:i,imageHeight:i+18*n.length}},gn=(0,s.memo)(on);var pn,hn=n(14121);function fn(){return fn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)({}).hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},fn.apply(null,arguments)}const xn=e=>s.createElement("svg",fn({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 32 32"},e),pn||(pn=s.createElement("path",{d:"M16 31C7.7 31 1 24.3 1 16S7.7 1 16 1s15 6.7 15 15-6.7 15-15 15m8-13.1c.6 0 1-.5 1-1V15c0-.6-.5-1-1-1H8c-.5 0-1 .4-1 1v1.9c0 .5.4 1 1 1z"}))),_n="buttons__RegionOverviewZoomButtons__YIzbD",yn="button__RegionOverviewZoomButtons__YIzbD",vn=({location:e})=>{const t=e,n=t.end-t.start,s=Math.round(n/2),a=Math.round(s/2),o=t.start+a;return{start:o,end:o+s}},jn=({location:e,regionLength:t})=>{const n=2*(e.end-e.start),s=Math.round(n/4);return{start:Math.max(e.start-s,1),end:Math.min(e.end+s,t)}},bn=e=>{const t=(0,j.Zp)(),n=(0,j.zy)(),s=({start:s,end:a})=>{const{regionName:o}=e.location,{pathname:i,search:r}=n,l=`${o}:${s}-${a}`,c=new URLSearchParams(r);c.set("location",l);const d=decodeURIComponent(c.toString());t(`${i}?${d}`,{replace:!0})};return(0,z.jsxs)("div",{className:_n,children:[(0,z.jsx)("button",{className:yn,onClick:()=>{const t=jn(e);s(t)},"aria-label":"Zoom out",children:(0,z.jsx)(xn,{})}),(0,z.jsx)("button",{className:yn,onClick:()=>{const t=vn(e);s(t)},"aria-label":"Zoom in",children:(0,z.jsx)(hn.A,{})})]})},wn="grid__RegionOverview__7hBOC",Nn="topLeftColumn__RegionOverview__7hBOC",kn="topMiddleColumn__RegionOverview__7hBOC",Cn="leftColumn__RegionOverview__7hBOC",In="middleColumn__RegionOverview__7hBOC",En="imageContainer__RegionOverview__7hBOC",An="light__RegionOverview__7hBOC",Dn=e=>{const{data:t}=e,{region:{name:n,coordinate_system:s}}=t;return(0,z.jsxs)("div",{children:[(0,z.jsx)("span",{className:An,children:s+" "}),(0,z.jsx)("span",{children:n})]})},Tn=e=>{const{topOffsets:t}
1=e,{strandDividerTopOffset:n,regulatoryFeatureTracksTopOffset:s}=t;return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("div",{style:{position:"absolute",top:`${n}px`,right:"16px",transform:"translateY(-50%)"},children:"Genes"}),(0,z.jsx)("div",{style:{position:"absolute",top:`${s}px`,right:"16px",transform:"translateY(-50%)"},children:"Regulatory features"})]})},Sn=()=>{const{activeGenomeId:e,assemblyAccessionId:t,location:n,genomeIdForUrl:a,locationForUrl:o,focusGeneId:i}=d(),[,r]=(0,s.useTransition)(),[l,c]=(0,s.useState)(0),m=(0,j.Zp)(),u=(0,s.useRef)(l);u.current=l;const g=(0,s.useMemo)(()=>n?(({regionName:e,start:t,end:n})=>{const s=n-t+1;return{regionName:e,start:Math.max(t-s,1),end:n+s}})({...n}):null,[n]),p=t&&n&&g?{assemblyId:t,regionName:n.regionName,start:g.start,end:g.end}:null,{data:h}=gt(p),f=(0,s.useDeferredValue)(h),x=n?.regionName,_=h?.region.length;_&&g&&(g.end=Math.min(g?.end,_)),(0,s.useEffect)(()=>{if(!g||!t)return;const e=mt({...g,assemblyId:t});tt(e)},[t,n,g]),(0,s.useEffect)(()=>{if(!t||!x||!_)return;const e=mt({assemblyId:t,regionName:x,start:1,end:_});tt(e)},[t,x,_]);const y=e=>{if(!a||!o)return;const t=e.detail,n=b.Sw({genomeId:a,location:o,focusGeneId:t.unversioned_stable_id});m(n)},v=(0,s.useMemo)(()=>f?Be({data:f}):null,[f]),w=v?un(v):null;return e?(0,z.jsxs)("div",{className:wn,children:[(0,z.jsx)("div",{className:Nn,children:f&&(0,z.jsx)(Dn,{data:f})}),(0,z.jsx)("div",{className:kn,children:n&&_&&(0,z.jsx)(bn,{genomeId:e,location:n,regionLength:_})}),(0,z.jsx)("div",{className:Cn,children:f&&w&&(0,z.jsx)(Tn,{topOffsets:w})}),(0,z.jsx)("div",{className:In,ref:e=>{const t=new ResizeObserver(e=>{const[t]=e,{width:n}=t.contentRect;n!==u.current&&r(()=>{c(n)})});return t.observe(e),document.addEventListener("focus-gene",y),()=>{document.removeEventListener("focus-gene",y),t.disconnect()}},children:(0,z.jsx)("div",{className:En,children:n&&g&&f&&v&&l&&(0,z.jsx)(gn,{activeGenomeId:e,data:f,featureTracks:v,focusGeneId:i,width:l,location:n,extendedLocation:g})})})]}):null},Mn=({sortedEpigenomes:e,tracks:t})=>e.map(e=>t.find(t=>t.epigenome_ids.join(", ")===e.id)),On=e=>({openChromatin:{signals:Ln(e),peaks:$n(e)},histones:{narrowPeaks:Rn(e),gappedPeaks:Vn(e)}}),Ln=({track:e,location:t,scale:n})=>{const s=e.open_chromatin.signal,a=[];for(const e of s){if(e.end<t.start||e.start>t.end)continue;const s=Math.max(t.start,e.start),o=Math.min(t.end,e.end),i=e.value,r=n(s),l=n(o)-r,c=a.at(-1);if((c?r-c.x:1)>=1){const e={x:r,width:Math.max(l,1),value:i};a.push(e)}else{const e=Math.round((i+c.value)/2);c.value=e}}return a},$n=({track:e,location:t,scale:n})=>{const s=e.open_chromatin.peaks,a=[];for(const e of s){if(e.end<t.start||e.start>t.end)continue;const s=Math.max(t.start,e.start),o=Math.min(t.end,e.end),i=n(s),r=n(o)-i;if(!r)continue;const l={x:i,width:r};a.push(l)}return a},Rn=({metadata:e,track:t,location:n,scale:s})=>{const a=e.histone,o=Object.keys(a).filter(e=>"narrow"===a[e].peak_type),i=t.histones,r=[];for(const e of Object.keys(i)){if(!o.includes(e))continue;const t=o.indexOf(e),l=i[e];for(const o of l){if(o.end<n.start||o.start>n.end)continue;const i=Math.max(o.start,n.start),l=Math.min(o.end,n.end),c=s(i),d=s(l)-c;if(!d)continue;const m={type:"narrow_peak",x:c,width:d,label:a[e].label,color:a[e].color,order:t};r.push(m)}}return r},Vn=({metadata:e,track:t,location:n,scale:s})=>{const a=e.histone,o=Object.keys(a).filter(e=>"gapped"===a[e].peak_type),i=t.histones,r=[];for(const e of Object.keys(i)){if(!o.includes(e))continue;const t=o.indexOf(e),l=i[e];for(const o of l){if(o.end<n.start||o.start>n.end)continue;const i=[],l=[];for(let e=0;e<o.block_starts.length;e++){const t=o.block_starts[e],a=Math.max(o.start+t,n.start),r=o.block_sizes[e],c=Math.min(a+r-1,n.end);if(a>n.end||c<n.start)continue;const d=s(a),m=s(c)-d;if(!m)continue;const u={x:d,width:m},g=i.at(-1);if(g){const e=g.x+g.width,t={x:e,width:u.x-e};t.width&&l.push(t)}i.push(u)}if(0===i.length){const e={x:s(o.start),width:1};i.push(e)}const c=i.toSorted((e,t)=>e.x===t.x?e.width-t.width:e.x-t.x).filter((e,t,n)=>{if(t<n.length-1){const s=n[t+1];if(e.x===s.x&&e.width===s.width)return!1}return!0}),d=l.toSorted((e,t)=>
1e.x===t.x?e.width-t.width:e.x-t.x).filter((e,t,n)=>{if(t<n.length-1){const s=n[t+1];if(e.x===s.x&&e.width===s.width)return!1}return!0}),m=a[e].label,u={type:"gapped_peak",id:`gapped-peak-${m}-${i.map(e=>`${e.x}-${e.width}`)}`,blocks:c,connectors:d,label:m,color:a[e].color,order:t};r.push(u)}}const l=[],c=new Set;for(const e of r)c.has(e.id)||(c.add(e.id),l.push(e));return l},Bn=e=>{const{width:t}=e,[n,o]=(0,s.useTransition)(),[i,r]=(0,s.useState)(null),{genomeId:l,assemblyAccessionId:c,location:m}=d(),{filteredCombinedEpigenomes:g,sortedCombinedEpigenomes:p}=u(),h=(0,a.jL)(),f=g?.map(e=>e.id),{isLoading:x,currentData:_}=S({assemblyId:c||"",location:m?E(m):""},{skip:!c||!m}),{isFetching:y,currentData:v}=$({assemblyId:c??"",epigenomeIds:f??[],regionName:m?.regionName??"",locations:m?[{start:m.start,end:m.end}]:[]},{skip:!c||!f||!m});return(0,s.useEffect)(()=>{if(!l||!v)return;const e=Object.values(v.track_metadata.histone);h((0,B.ux)({genomeId:l,histones:e}))},[v]),(0,s.useEffect)(()=>{if(!(t&&m&&_&&v))return;const e=(0,pt.m4Y)().domain([m.start,m.end]).rangeRound([0,Math.floor(t)]),n={data:Mn({sortedEpigenomes:(s={data:v,location:m,sortedEpigenomes:p??[],scale:e}).sortedEpigenomes,tracks:s.data.track_data}).map(e=>On({metadata:s.data.track_metadata,track:e,location:s.location,scale:s.scale}))};var s;o(()=>{r({location:m,scale:e,regionOverviewData:_,epigenomeActivityData:n})})},[t,m?.start,m?.end,_,v,p]),{data:i,isLoading:x||y,isTransitionPending:n}},Gn={isOpen:!1,isAvailable:!1}
1,Fn=new Pe(Gn),Pn=e=>{const t={...Fn.value,...e};Fn.next(t)},qn=Fn.asObservable();var Wn=n(74281),zn=n(76813),Un=n(18315);const Yn="container__EpigenomeLabels__0aNOq",Hn="epigenomeLabel__EpigenomeLabels__0aNOq",Xn="epigenomeTextLabel__EpigenomeLabels__0aNOq",Zn="epigenomeColorLabel__EpigenomeLabels__0aNOq",Jn="coloredBlock__EpigenomeLabels__0aNOq",Qn="labelPopupContent__EpigenomeLabels__0aNOq",Kn="dimensionName__EpigenomeLabels__0aNOq",es=["#80ccff","#fcb6b5"],ts=["#0399ff","#b6e1ff"],ns=["#024b02","#cce5cd"],ss=({epigenomes:e,sortingDimensions:t})=>{const n=t.map((t,n)=>{const s=ds(e,t),a=cs(s,n),o=ms(s,a);return ls({epigenomes:e,dimension:t,colorMap:o})}),s=[],a=n[0];for(let e=0;e<a.length;e++){const t=[];for(const s of n)t.push(s[e]);s.push(t)}return s},as=({data:e,epigenome:t,displayDimensions:n,allDimensions:s})=>(0,z.jsxs)("div",{className:Hn,children:[(0,z.jsx)(os,{epigenome:t,displayDimensions:n,allDimensions:s}),(0,z.jsx)(rs,{data:e})]}),os=({epigenome:e,displayDimensions:t,allDimensions:n})=>{const[s,a]=(0,zn.A)();return(0,z.jsxs)("div",{className:Xn,style:{height:40},children:[(0,z.jsx)("span",{ref:s,children:e.label}),a&&(0,z.jsx)(Un.A,{anchor:s.current,autoAdjust:!0,children:(0,z.jsx)(is,{epigenome:e,displayDimensions:t,allDimensions:n})})]})},is=({epigenome:e,displayDimensions:t,allDimensions:n})=>{const s=t.map(t=>{if(t in e){const s=Array.isArray(e[t])?e[t].join(", "):e[t];return{label:n[t].name,value:s}}}).filter(e=>!!e);return(0,z.jsx)("div",{className:Qn,children:s.map(e=>(0,z.jsxs)("p",{children:[(0,z.jsxs)("span",{className:Kn,children:[e.label,":"]}),(0,z.jsx)("span",{children:e.value})]},e.label))})},rs=({data:e})=>(0,z.jsx)("div",{className:Zn,children:e.map((e,t)=>(0,z.jsx)("div",{className:Jn,style:{backgroundColor:e.color,height:"24px",margin:"1px 0"}},t))}),ls=({epigenomes:e,dimension:t,colorMap:n})=>e.map(e=>{const s=e[t],a=W(e,t),o=n[a];return{dimension:t,value:s,stringifiedValue:a,color:o}}),cs=(e,t)=>{const n=[es,ts,ns][t],s=(0,pt.dJd)(...n);return(0,pt.ydU)(s,e.length)},ds=(e,t)=>{const n=new Set;for(const s of e){const e=W(s,t);n.has(e)||n.add(e)}return[...n]},ms=(e,t)=>{const n={};return e.forEach((e,s)=>{n[e]=t[s]}),n},us=e=>{const{epigenomes:t,sortingDimensions:n,displayDimensions:s,allDimensions:a}=e,o=ss({epigenomes:t,sortingDimensions:n});return(0,z.jsx)("div",{className:Yn,children:o.map((e,n)=>(0,z.jsx)(as,{epigenome:t[n],data:e,displayDimensions:s,allDimensions:a},n))})},gs="outerGrid__SelectedEpigenomes__wBD8Y",ps="mainColumn__SelectedEpigenomes__wBD8Y",hs="epigenomesTable__SelectedEpigenomes__wBD8Y",fs="noEpigenomesMessage__SelectedEpigenomes__wBD8Y",xs=e=>{const{genomeId:t}=e,{sortedCombinedEpigenomes:n,epigenomeSortingDimensions:s,epigenomeMetadataDimensionsResponse:o}=u(),i=(0,a.GV)(e=>f(e,t));if(!n||!o||!s?.length)return null;const r=js(o),l=ss({epigenomes:n,sortingDimensions:s});return(0,z.jsx)("div",{className:gs,children:(0,z.jsxs)("div",{className:ps,children:[(0,z.jsxs)(Wn.XI,{className:hs,children:[(0,z.jsx)("thead",{children:(0,z.jsxs)("tr",{children:[(0,z.jsx)(Wn.fR,{children:"Label"}),r.map(e=>_s(e.dimensionName,i)?null:(0,z.jsx)(Wn.fR,{children:e.columnHeading},e.dimensionName))]})}),(0,z.jsx)("tbody",{children:n.map((e,t)=>(0,z.jsxs)("tr",{children:[(0,z.jsx)("td",{style:{position:"relative"},children:(0,z.jsx)(vs,{data:l,rowIndex:t})}),r.map(t=>!_s(t.dimensionName,i)&&(0,z.jsx)("td",{children:ys(e[t.dimensionName])},t.dimensionName))]},t))})]}),!n.length&&(0,z.jsx)("div",{className:fs,children:"Use 'Configure' to select the data to display"})]})})},_s=(e,t)=>t.includes(e),ys=e=>Array.isArray(e)?e.join(", "):"string"==typeof e?e:"-",vs=({data:e,rowIndex:t})=>{const n=e[t];return(0,z.jsx)("div",{style:{display:"flex",columnGap:"2px"},children:n.map(({color:e},t)=>(0,z.jsx)("div",{style:{width:"3px",height:"24px",backgroundColor:e}},t))})},js=e=>{const{ui_spec:t,dimensions:n}=e;return t.table_layout.map(e=>({dimensionName:e,columnHeading:n[e].name}))},bs=(0,s.memo)(xs),ws="container__EpigenomesTable__REsE0",Ns="table__EpigenomesTable__REsE0",ks="tableCellContent__EpigenomesTable__REsE0",Cs="colorLabel__EpigenomesTable__REsE0",Is=({displayType:e,showFullTable:t})=>{const{sortedCombinedEpigenomes:n,epigenomeSortingDimensions:s,epigenomeMetadataDimensionsResponse:a,epigenomeCombiningDimensions:o}=u();if(!n||!a||!s?.length)return null;const i=As({sortingDimensionNames:s,allTableDimensionNames:a.ui_spec.table_layout,metadataDimensions:a.dimensions,getShortList:"partial"===e}),r=e=>o.includes(e),l=ss({epigenomes:n,sortingDimensions:s});
1return(0,z.jsxs)(Wn.XI,{className:Ns,children:[(0,z.jsx)("thead",{children:(0,z.jsxs)("tr",{children:[i.map(e=>r(e.dimensionName)?null:(0,z.jsx)(Wn.fR,{children:e.columnHeading},e.dimensionName)),"partial"===e&&(0,z.jsx)(Wn.fR,{children:(0,z.jsx)(Xt.A,{onClick:t,children:"Show more"})})]})}),(0,z.jsx)("tbody",{children:n.map((t,n)=>(0,z.jsxs)("tr",{children:[i.map((e,s)=>r(e.dimensionName)?null:(0,z.jsx)("td",{children:(0,z.jsxs)("div",{className:ks,style:{height:"calc(40px - 18px - 1px)"},children:[(0,z.jsx)(Es,{color:l[n]?.[s]?.color}),(0,z.jsx)("span",{children:ys(t[e.dimensionName])})]})},e.dimensionName)),"partial"===e&&(0,z.jsx)("td",{})]},t.id))})]})},Es=({color:e})=>e?(0,z.jsx)("span",{className:Cs,style:{backgroundColor:e}}):null,As=({sortingDimensionNames:e,allTableDimensionNames:t,metadataDimensions:n,getShortList:s})=>{let a=[];if(s)a=e;else{const n=t.filter(t=>!e.includes(t));a=e.concat(...n)}return a.map(e=>({dimensionName:e,columnHeading:n[e].name}))},Ds=()=>{const[e,t]=(0,s.useState)("partial");return(0,s.useEffect)(()=>(Pn({isAvailable:!0}),()=>{Pn({isAvailable:!1,isOpen:!1})}),[]),(0,s.useEffect)(()=>{const e=qn.subscribe(e=>{e.isOpen?t("partial"):t(null)});return()=>{e.unsubscribe()}},[]),null===e?null:(0,z.jsx)("div",{className:ws,children:(0,z.jsx)(Is,{displayType:e,showFullTable:()=>{t("full")}})})},Ts=e=>{const t=e.width,n=Bs(e.data);return(0,z.jsx)("svg",{viewBox:`0 0 ${t} ${n}`,style:{width:"100%",height:`${n}px`},children:(0,z.jsx)(Ss,{...e})})},Ss=({data:e})=>e.data.map((e,t)=>(0,z.jsx)(Ms,{data:e,offsetTop:40*t},t)),Ms=e=>(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(Os,{...e}),(0,z.jsx)(Ls,{...e}),(0,z.jsx)($s,{...e}),(0,z.jsx)(Rs,{...e})]}),Os=({data:e,offsetTop:t})=>e.openChromatin.signals.map(e=>(0,z.jsx)("rect",{x:e.x,y:t+2,width:e.width,height:8,fill:Fs(e.value)},`${e.value}-${e.x}-${e.width}`)),Ls=({data:e,offsetTop:t})=>e.openChromatin.peaks.map(e=>(0,z.jsx)("rect",{x:e.x,y:t+1,width:e.width,height:10,"data-type":"open-chromatin-peak",stroke:"black",fill:"none"},`${e.x}-${e.width}`)),$s=({data:e,offsetTop:t})=>e.histones.narrowPeaks.map(e=>{const n=e.order,s=t,a=s+10+4+6*n;return(0,z.jsx)("rect",{x:e.x,y:a,width:e.width,height:2,"data-type":"histone-narrow-peak","data-order":n,"data-track-offset-top":s,fill:e.color},`narrow-peak-${e.label}-${e.x}-${e.width}`)}),Rs=({data:e,offsetTop:t})=>{const n=e.histones.narrowPeaks.reduce((e,t)=>Math.max(e,t.order),0);return e.histones.gappedPeaks.map(e=>(0,z.jsx)(Vs,{peakData:e,trackOffsetTop:t,narrowPeakTracksCount:n},`${e.id}`))},Vs=({peakData:e,trackOffsetTop:t,narrowPeakTracksCount:n})=>{const s=t+10+4+6*n+4+6*e.order,a=s+1,o=e.blocks.map(t=>(0,z.jsx)("rect",{x:t.x,y:s,width:t.width,height:2,"data-type":"histone-gapped-peak-block",fill:e.color},`gapped-peak-block-${e.label}-${t.x}-${t.width}`)),i=e.connectors.map(t=>(0,z.jsx)("line",{x1:t.x,x2:t.x+t.width,y1:a,y2:a,strokeWidth:1,stroke:e.color,strokeDasharray:"1"},`gapped-peak-connector-${t.x}-${t.width}`));return(0,z.jsxs)(z.Fragment,{children:[o,i]})},Bs=({data:e})=>40*e.length,Gs=(0,pt.m4Y)().domain([1,9]).range(["#f1f1f1","#474747"]).interpolate(pt.bEH),Fs=e=>Gs(e),Ps=(0,s.memo)(Ts),qs="container__EpigenomesActivityContainer__ilCLl",Ws="loaderContainer__EpigenomesActivityContainer__ilCLl",zs=e=>{const{isPending:t,...n}=e;return(0,z.jsxs)("div",{className:qs,children:[t&&(0,z.jsx)(Us,{}),!t&&(0,z.jsx)(Ds,{}),(0,z.jsx)(Ps,{...n})]})},Us=()=>(0,z.jsx)("div",{className:Ws,children:(0,z.jsx)(Te.m,{})}),Ys=(0,s.memo)(zs),Hs=()=>{const{sortedCombinedEpigenomes:e}=u(),{assemblyAccessionId:t,focusGeneId:n}=d(),s=e?.map(e=>e.id),{currentData:a}=V({assemblyId:t??"",geneId:n??"",epigenomeIds:s??[]},{skip:!t||!n||!s});if(!a)return null;const o=40*a.gene_activity.length;return(0,z.jsxs)("svg",{viewBox:`0 0 100 ${o}`,style:{width:"100px",height:`${o}px`,overflow:"visible"},width:100,children:[(0,z.jsx)(Js,{medianValue:a.median}),a.gene_activity.map(({epigenome_ids:e,value:t},n)=>{const s=e.join(", ");return(0,z.jsx)(Xs,{value:t,trackIndex:n},s)}),(0,z.jsx)(Zs,{value:a.median,height:o})]})},Xs=({value:e,trackIndex:t})=>{if(!e)return null;const n=Math.round(60*e),s=n,a=60-n,o=40*t;return(0,z.jsxs)("g",{transform:`translate(0, ${o})`,children:[(0,z.jsx)("rect",{x:0,y:2,width:n,height:6,fill:"#6f8190"}),(0,z.jsx)("rect",{x:s,y:2,width:a,height:6,fill:"#e9ecee"}),(0,z.jsx)("text",{x:70,y:7.5,style:{fontSize:"11px",fontWeight:300},children:e})]})},Zs=({value:e,height:t})=>{const n=Math.round(60*e);return(0,z.jsx)("line",{x1:n,x2:n,y1:0,y2:t,stroke:"#ff9900",strokeDasharray:"2"})},Js=({medianValue:e})=>(0,z.jsxs)("g",{transform:"translate(0, -30)",style:{fontWeight:300},children:[(0,z.jsx)("text",{x:0,y:0,children:"Expression level"}),(0,z.jsxs)("text",{x:0,y:18,style:{fontSize:"11px",whiteSpace:"pre"},children:["Median ","  ",(0,z.jsx)("tspan",{style:{fontWeight:400},children:e})]})]}),Qs=(0,s.memo)(Hs),Ks="container__ActivityViewerMiddleColumnLoader__XOEWd",ea=()=>(0,z.jsx)("div",{className:Ks,children:(0,z.jsx)(Te.m,{})}),ta="section__RegionActivitySection__h7mkG",na="grid__RegionActivitySection__h7mkG",sa="leftColumn__RegionActivitySection__h7mkG",aa="middleColumn__RegionActivitySection__h7mkG",oa="rightColumn__RegionActivitySection__h7mkG",ia=()=>{const{location:e}=d();if(!e)return null;if(e.end-e.start+1>xt){const e=Yt()(ta,na);return(0,z.jsx)("div",{className:e,children:(0,z.jsx)("div",{className:aa,children:"Please zoom in to view the details"})})}return(0,z.jsx)(ra,{})},ra=()=>
1{const[e,t]=(0,s.useTransition)(),[n,a]=(0,s.useState)(0),{sortedCombinedEpigenomes:o,epigenomeSortingDimensions:i,epigenomeMetadataDimensionsResponse:r}=u(),l=(0,s.useRef)(n);l.current=n;const{data:c,isLoading:d,isTransitionPending:m}=Bn({width:n}),g=Yt()(ta,na),p=d||m||e;return(0,z.jsxs)("div",{className:g,children:[(0,z.jsx)("div",{className:Yt()(sa),children:c&&r&&(0,z.jsx)(us,{epigenomes:o??[],sortingDimensions:i??[],displayDimensions:r.ui_spec.table_layout,allDimensions:r.dimensions})}),(0,z.jsx)("div",{className:aa,ref:e=>{const n=new ResizeObserver(e=>{const[n]=e,{width:s}=n.contentRect;s!==l.current&&t(()=>{a(s)})});return n.observe(e),()=>{n.disconnect()}},children:c&&n?(0,z.jsx)(Ys,{data:c.epigenomeActivityData,scale:c.scale,width:n,isPending:p}):(0,z.jsx)(ea,{})}),(0,z.jsx)("div",{className:Yt()(oa),children:c&&(0,z.jsx)(Qs,{})})]})},la=(0,s.memo)(ia);var ca=n(36722),da=n(85100);const ma="secondaryText__RegulatoryFeatureLegend__18ShL",ua="label__RegulatoryFeatureLegend__18ShL",ga="primaryText__RegulatoryFeatureLegend__18ShL",pa=e=>(0,z.jsx)(da.s$,{children:Object.values(e.featureTypes).map(e=>(0,z.jsxs)(da.Jv,{children:[(0,z.jsx)(da.yd,{style:{backgroundColor:e.color}}),(0,z.jsxs)("span",{className:ua,children:[(0,z.jsx)("span",{className:ga,children:e.label}),e.description&&(0,z.jsx)("span",{className:ma,children:e.description})]})]},e.label))});var ha=n(73788);const fa="openChromatinPeak__ActivityTracksLegend__73mx+",xa="openChromatinSignal__ActivityTracksLegend__73mx+",_a="histone__ActivityTracksLegend__73mx+",ya="histoneMarker__ActivityTracksLegend__73mx+",va=({label:e,color:t})=>(0,z.jsxs)(da.Jv,{className:_a,children:[(0,z.jsx)(da.yd,{className:ya,style:{backgroundColor:t}}),(0,z.jsx)("span",{children:e})]}),ja=({genomeId:e})=>{const t=(0,a.GV)(t=>l(t,e));return(0,z.jsxs)(da.s$,{children:[(0,z.jsxs)(da.Jv,{children:[(0,z.jsx)(da.yd,{className:fa}),(0,z.jsx)("span",{children:"Open chromatin: Peak"})]}),(0,z.jsxs)(da.Jv,{children:[(0,z.jsx)(da.yd,{className:xa}),(0,z.jsx)("span",{children:"Open chromatin: Signal"})]}),t.map(e=>(0,z.jsx)(va,{...e},e.label))]})},ba="features__SidebarDefaultView__cFzOb",wa="activeFeature__SidebarDefaultView__cFzOb",Na=({genes:e,onGeneFocus:t,focusGeneId:n})=>{const s=e.map(e=>{const s=e.unversioned_stable_id===n;return(0,z.jsx)(Xt.A,{onClick:()=>t(e),disabled:s,className:s?wa:void 0,children:(0,z.jsx)(re.A,{symbol:e.symbol,stable_id:e.stable_id})},e.stable_id)});return(0,z.jsx)("div",{className:ba,children:s})},ka=()=>(0,z.jsx)("div",{children:"Please zoom in into the region to see the list of genes"}),Ca=()=>{const{genomeId:e,assemblyAccessionId:t,location:n,genomeIdForUrl:a,locationForUrl:o,focusGeneId:i}=d(),r=(0,j.Zp)(),l=(0,s.useMemo)(()=>t&&n?{assemblyId:t,regionName:n.regionName,start:n.start,end:n.end}:null,[t,n]),{data:c}=gt(l);if((0,s.useEffect)(()=>{if(!t||!n)return;const e=mt({assemblyId:t,regionName:n.regionName,start:n.start,end:n.end});tt(e)},[t,n]),!c||!n)return null;const{start:m,end:u}=n,g=u-m+1>xt;return(0,z.jsxs)("div",{children:[(0,z.jsxs)(ha.iV,{children:[(0,z.jsx)(ha.iS,{children:"Genes"}),(0,z.jsx)(ha.we,{children:g?(0,z.jsx)(ka,{}):(0,z.jsx)(Na,{genes:c.genes,onGeneFocus:e=>{if(!a||!o)return;const t=b.Sw({genomeId:a,location:o,focusGeneId:e.unversioned_stable_id});r(t)},focusGeneId:i})})]}),(0,z.jsxs)(ha.iV,{children:[(0,z.jsx)(ha.iS,{children:"Regulatory features"}),(0,z.jsx)(ha.we,{children:(0,z.jsx)(pa,{featureTypes:c.regulatory_features.feature_types})})]}),(0,z.jsxs)(ha.iV,{children:[(0,z.jsx)(ha.iS,{children:"Epigenome tracks"}),(0,z.jsx)(ha.we,{children:e&&(0,z.jsx)(ja,{genomeId:e})})]})]})},Ia=e=>{const{activeMetadataDimension:t,selectionCriteria:n,epigenomes:s}=e,a=Object.keys(n).filter(e=>e!==t);if(!a.length)return s;let o=s,i=[];for(const e of a){for(const t of o){const s=t[e];if("string"==typeof s)n[e].has(s)&&i.push(t);else if(Array.isArray(s))for(const a of s)n[e].has(a)&&i.push(t)}o=i,i=[]}return o};var Ea=n(71847);const Aa="grid__EpigenomeSelectableMetadataItem__crjTj",Da="count__EpigenomeSelectableMetadataItem__crjTj",Ta=e=>(0,z.jsxs)("div",{className:Aa,children:[(0,z.jsx)("span",{children:e.name}),(0,z.jsx)("span",{className:Da,children:e.count}),(0,z.jsx)(Ea.A,{onChange:t=>{const n=e.dimensionName,s=e.name;t.currentTarget.checked?e.onAdd({dimensionName:n,value:s}):e.onRemove({dimensionName:n,value:s})},checked:e.isSelected})]}),Sa=(0,s.memo)(Ta),Ma="filtersSection__EpigenomeFilters__ucBF3",Oa="filtersSectionBody__EpigenomeFilters__ucBF3",La=({sectionId:e,selectionCriteria:t,metadataDimensions:n,epigenomes:s,onSelectionCriterionAdded:a,onSelectionCriterionRemoved:o})=>{const i=e,{metadataItems:r,counts:l}=(e=>{const{dimensionName:t,selectionCriteria:n}=e,s={},a=Ia({selectionCriteria:n,epigenomes:e.epigenomes,activeMetadataDimension:t});for(const e of a){let n=e[t];if(n){"string"==typeof n&&(n=[n]);for(const e of n)s[e]?s[e]+=1:s[e]=1}}const o=e.metadataItems.values.filter(e=>"string"==typeof e?s[e]||n[t]?.has(e):"value"in e&&(s[e.value]||n[t]?.has(e.value)));return{metadataItems:{name:e.metadataItems.name,values:o},counts:s}})({epigenomes:s,dimensionName:i,selectionCriteria:t,metadataItems:n[i]}),c=t[i]??new Set,d=r.values.map(e=>{let t=null;if("string"==typeof e)t=e;else{if(!("value"in e))return null;t=e.value}return(0,z.jsx)(Sa,{dimensionName:i,name:t,isSelected:c.has(t),count:l[t]??0,onAdd:a,onRemove:o},t)});return(0,z.jsxs)(ha.iV,{className:Ma,children:[(0,z.jsx)(ha.iS,{children:r.name}),(0,z.jsx)(ha.we,{className:Oa,children:d})]})},$a=e=>{const{genomeId:t}=e,{baseEpigenomes:n,epigenomeMetadataDimensionsResponse:o}=u(),i=(0,a.GV)(e=>h(e,t)),r=(0,a.jL)(),l=(0,s.useCallback)(e=>{r((0,_.nH)({...e,genomeId:t}))},[]),c=(0,s.useCallback)(e=>{r((0,_.OW)({...e,genomeId:t}))},[]);if(!o||!n)return null;const d=o.dimensions,m=o.ui_spec.filter_layout.flat();return(0,z.jsx)("div",{children:m.map(e=>(0,z.jsx)(La,{sectionId:e,selectionCriteria:i,metadataDimensions:d,epigenomes:n,onSelectionCriterionAdded:l,onSelectionCriterionRemoved:c},e))})},Ra="dimensionPanel__CombinableMetadataDimensions__4KAe4",Va="note__CombinableMetadataDimensions__4KAe4",Ba="strong__CombinableMetadataDimensions__4KAe4",Ga=()=>(0,z.jsxs)("p",{className:Va,children:["You can combine the epigenomes by one or more dimensions listed below. Pick dimensions that you would like"," ",(0,z.jsx)("span",{className:Ba,children:"not"})," to distinguish epigenomes by."]}),Fa=({dimensionId:e,dimensionName:t,isSelected:n,onToggle:s})=>(0,z.jsxs)("div",{className:Ra,children:[(0,z.jsx)("div",{children:t}),(0,z.jsx)(Ea.A,{checked:n,onChange:t=>{const n=t.target.checked;s(e,n)}})]}),Pa=e=>{const{genomeId:t}=e,{epigenomeCombiningDimensions:n,epigenomeMetadataDimensionsResponse:s}=u(),o=s?.ui_spec.collapsible??[],i=(0,a.jL)();if(!s)return null;const r=(e,s)=>{const a=s?n.concat(e):n.filter(t=>t!==e);i((0,_.Kn)({genomeId:t,dimensionNames:a}))};return(0,z.jsxs)("div",{children:[(0,z.jsx)(Ga,{}),o.map(e=>(0,z.jsx)(Fa,{dimensionId:e,dimensionName:s.dimensions[e].name,isSelected:n.includes(e),onToggle:r},e))]})};var qa=n(74373);const Wa="dimensionPanel__EpigenomesOrderConfigurator__4EC4r",za="sortButtons__EpigenomesOrderConfigurator__4EC4r",Ua="sortArrow__EpigenomesOrderConfigurator__4EC4r",Ya="sortArrowDown__EpigenomesOrderConfigurator__4EC4r",Ha="note__EpigenomesOrderConfigurator__4EC4r",Xa=()=>(0,z.jsx)("p",{className:Ha,children:"Epigenomes are sorted by the values of the below dimensions. The dimension at the top of the list is used for sorting first; then the following two dimensions are be used to break the ties."}),Za=({dimensionId:e,dimensionName:t,isFirst:n,isLast:s,onRankChange:a})=>(0,z.jsxs)("div",{className:Wa,children:[(0,z.jsx)("div",{children:t}),(0,z.jsxs)("div",{className:za,children:[(0,z.jsx)("button",{onClick:()=>a(e,"up"),"aria-label":"Increase sort order",disabled:n,children:(0,z.jsx)(qa.A,{className:Ua})}),(0,z.jsx)("button",{onClick:()=>a(e,"down"),"aria-label":"Decrease sort order",disabled:s,children:(0,z.jsx)(qa.A,{className:Yt()(Ua,Ya)})})]})]}),Ja=e=>{const{genomeId:t}=e,{allEpigenomeSortableDimensions:n,epigenomeMetadataDimensionsResponse:o}=u(),i=(0,a.jL)(),r=(0,s.useCallback)((e,s)=>{const a=[...n],o=a.indexOf(e),r="up"===s?o-1:o+1,l=a[r];a[r]=e,a[o]=l,i((0,_.yu)({genomeId:t,dimensionNames:a}))},[t,n]);return o&&n?(0,z.jsxs)("div",{children:[(0,z.jsx)(Xa,{}),n.map((e,t)=>(0,z.jsx)(Za,{dimensionId:e,isFirst:0===t,isLast:t===n.length-1,dimensionName:o.dimensions[e].name,onRankChange:r},e))]}):null},Qa="navigation__ConfigurationsView__fXTQo",Ka=({activeView:e,onViewChange:t})=>(0,z.jsxs)("div",{className:Qa,children:[(0,z.jsx)(Xt.A,{disabled:"filters"===e,onClick:()=>t("filters"),children:"Filter"}),(0,z.jsx)(Xt.A,{disabled:"combine-epigenomes"===e,onClick:()=>t("combine-epigenomes"),children:"Combine"}),(0,z.jsx)(Xt.A,{disabled:"sort-epigenomes"===e,onClick:()=>t("sort-epigenomes"),children:"Sort"})]}),eo=({activeView:e,genomeId:t})=>"filters"===e?(0,z.jsx)($a,{genomeId:t}):"combine-epigenomes"===e?(0,z.jsx)(Pa,{genomeId:t}):"sort-epigenomes"===e?(0,z.jsx)(Ja,{genomeId:t}):null,to=e=>
1{const[t,n]=(0,s.useState)("filters"),{genomeId:a}=e;return a?(0,z.jsxs)("div",{children:[(0,z.jsx)(Ka,{activeView:t,onViewChange:n}),(0,z.jsx)(eo,{activeView:t,genomeId:a})]}):null},no=e=>{const{genomeId:t}=e,n=(0,a.GV)(e=>r(e,t??""));return(0,z.jsxs)(ca.A,{children:["default"===n&&(0,z.jsx)(Ca,{}),"configuration"===n&&(0,z.jsx)(to,{genomeId:t})]})},so="container__SidebarNavigation__7EHWS",ao="tab__SidebarNavigation__7EHWS",oo="activeTab__SidebarNavigation__7EHWS",io=e=>{const{genomeId:t}=e,n=(0,a.jL)(),s=(0,a.GV)(e=>r(e,t??""));if(!t)return null;const o=e=>{n((0,B.ay)({genomeId:t,view:e}))},i="default"===s,l=Yt()(ao,{[oo]:i}),c="configuration"===s,d=Yt()(ao,{[oo]:c});return(0,z.jsxs)("div",{className:so,children:[(0,z.jsx)(Xt.A,{onClick:()=>o("default"),disabled:i,className:l,children:"In this region"}),(0,z.jsx)(Xt.A,{onClick:()=>o("configuration"),disabled:c,className:d,children:"Configure"})]})};var ro=n(91815),lo=n(17275),co=n(59965);const mo="button__EpigenomesTableToggle__Xaf6O",uo="chevronContainer__EpigenomesTableToggle__Xaf6O",go=e
1=>{const[t,n]=(0,s.useState)(Gn),a=()=>{Pn({isOpen:!1})};if((0,s.useEffect)(()=>{const e=qn.subscribe(e=>{n(e)});return()=>{e.unsubscribe()}},[]),t.isOpen)return(0,z.jsx)(co.b,{className:e.className,onClick:a,label:"Row info","aria-label":"hide table of epigenomes"});const o=Yt()(mo,e.className);return(0,z.jsxs)("button",{className:o,onClick:()=>{Pn({isOpen:!0})},"aria-label":"show table of epigenomes",disabled:!t.isAvailable,children:[(0,z.jsx)("span",{children:"Row info"}),(0,z.jsx)("span",{className:uo,children:(0,z.jsx)(lo.A,{direction:"right"})})]})},po="outerGrid__MainContentBottomViewControls__60MBu",ho="rightColumn__MainContentBottomViewControls__60MBu",fo="innerGrid__MainContentBottomViewControls__60MBu",xo="innerInfoArea__MainContentBottomViewControls__60MBu",_o="innerControlsArea__MainContentBottomViewControls__60MBu",yo="sectionTitleAndLocation__MainContentBottomViewControls__60MBu",vo="sectionTitle__MainContentBottomViewControls__60MBu",jo="viewButtons__MainContentBottomViewControls__60MBu",bo="epigenomesTableToggle__MainContentBottomViewControls__60MBu",wo="viewButtonActive__MainContentBottomViewControls__60MBu",No="strong__MainContentBottomViewControls__60MBu",ko=e=>(0,z.jsx)("div",{className:yo,children:e.children}),Co=()=>(0,z.jsx)("span",{className:vo,children:"Region activity"}),Io=({location:e})=>{if(!e)return null;const t=(0,oe.W)({chromosome:e.regionName,start:e.start,end:e.end});return(0,z.jsx)("span",{children:t})},Eo=({genomeId:e})=>{const t=(0,a.GV)(t=>i(t,e)),n=(0,a.jL)(),s=t=>{n((0,B.NO)({genomeId:e,view:t}))};return(0,z.jsxs)("div",{className:jo,children:[(0,z.jsx)(Ao,{view:"epigenomes-list",activeView:t,onClick:()=>s("epigenomes-list"),children:"Epigenomes"}),(0,z.jsx)(Ao,{view:"dataviz",activeView:t,onClick:()=>s("dataviz"),children:"Visualise"}),(0,z.jsx)(ro.tA,{onClick:()=>{n((0,B.ay)({genomeId:e,view:"configuration"}))},children:"Configure"})]})},Ao=({view:e,activeView:t,children:n,onClick:s})=>{const a=e===t,o=a?wo:void 0;return(0,z.jsx)(ro.tA,{className:o,onClick:s,disabled:a,children:n})},Do=({genomeId:e})=>"dataviz"!==(0,a.GV)(t=>i(t,e))?null:(0,z.jsx)(go,{className:bo}),To=({epigenomes:e})=>{const t=e.length;return(0,z.jsxs)("div",{children:[(0,z.jsx)("span",{className:No,children:t})," epigenomes"]})},So=()=>{const{genomeId:e,location:t}=d(),{sortedCombinedEpigenomes:n}=u();return e?(0,z.jsxs)("div",{className:po,children:[(0,z.jsx)(Do,{genomeId:e}),(0,z.jsxs)("div",{className:fo,children:[(0,z.jsx)("div",{className:xo,children:(0,z.jsxs)(ko,{children:[(0,z.jsx)(Co,{}),(0,z.jsx)(Io,{location:t})]})}),(0,z.jsx)("div",{className:_o,children:(0,z.jsx)(Eo,{genomeId:e})})]}),(0,z.jsx)("div",{className:ho,children:(0,z.jsx)(To,{epigenomes:n||[]})})]}):null},Mo="container__RegulatoryActivityViewer__J8Ovv",Oo="mainContentContainer__RegulatoryActivityViewer__J8Ovv",Lo=()=>{const{genomeId:e,assemblyAccessionId:t,genomeIdInUrl:n,location:s}=d(),o=(0,a.GV)(t=>((e,t)=>e.regionActivityViewer.ui[t]?.isSidebarOpen??!0)(t,e??""));N(),v();const i=(0,a.jL)(),{isFetching:r,currentData:l}=T({assemblyId:t??""},{skip:!t}),c=l?.available;return n?r||!c?(0,z.jsx)("div",{className:Mo,children:(0,z.jsx)(Se,{isLoading:r})}):s?(0,z.jsxs)("div",{className:Mo,children:[(0,z.jsx)(ae,{}),(0,z.jsx)(X.v,{mainContent:(0,z.jsx)($o,{genomeId:e??null}),sidebarContent:(0,z.jsx)(no,{genomeId:e??null}),isSidebarOpen:o,topbarContent:(0,z.jsx)(xe,{}),sidebarNavigation:(0,z.jsx)(io,{genomeId:e??null}),sidebarToolstripContent:(0,z.jsx)(ke,{}),onSidebarToggle:()=>{e&&i(o?(0,B.$t)({genomeId:e}):(0,B.p$)({genomeId:e}))},viewportWidth:1800})]}):(0,z.jsxs)("div",{className:Mo,children:[(0,z.jsx)(ae,{}),(0,z.jsx)(De,{})]}):(0,z.jsxs)("div",{className:Mo,children:[(0,z.jsx)(ae,{}),(0,z.jsx)("div",{children:"Please select a genome."})]})},$o=(0,s.memo)(({genomeId:e})=>e?(0,z.jsxs)("div",{className:Oo,children:[(0,z.jsxs)("div",{style:{position:"sticky",top:0,backgroundColor:"var(--color-white)",zIndex:1},children:[(0,z.jsx)(Sn,{}),(0,z.jsx)("div",{style:{margin:"0.6rem 0"}}),(0,z.jsx)(So,{})]}),(0,z.jsx)("div",{style:{margin:"0.6rem 0"}}),(0,z.jsx)(Ro,{genomeId:e}),(0,z.jsx)("div",{style:{margin:"4rem 0"}})]}):null),Ro=({genomeId:e})=>{const t=(0,a.GV)(t=>i(t,e));return(0,z.jsxs)(z.Fragment,{children:["epigenomes-list"===t&&(0,z.jsx)(bs,{genomeId:e}),"dataviz"===t&&(0,z.jsx)(la,{})]})},Vo=(0,s.memo)(Lo),Bo=()=>(0,z.jsx)(H,{children:(0,z.jsx)(Vo,{})})},71847(e,t,n){n.d(t,{A:()=>r});var s=n(46942),a=n.n(s);const o="checkbox__Checkbox__9j+s0";var i=n(74848);const r=e=>{const{className:t,...n}=e,s=a()(o,t);return(0,i.jsx)("input",{...n,type:"checkbox",className:s})}},6428(e,t,n){n.d(t,{A:()=>l});var s=n(46942),a=n.n(s);const o="geneName__GeneName__efD2v",i="geneNamePrimary__GeneName__efD2v";var r=n(74848);
1const l=({symbol:e,stable_id:t,className:n})=>{const s=e??t,l=e?t:null,c=a()(o,n);return(0,r.jsxs)("span",{className:c,children:[(0,r.jsx)("span",{className:i,children:s}),l&&(0,r.jsx)("span",{children:l})]})}},44721(e,t,n){function s(e){return"forward"===e?"forward strand":"reverse strand"}n.d(t,{C:()=>s})}}]);
2//# sourceMappingURL=326.df73a9df820383015fa4.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.