@weng-lab/genomebrowser 0.0.21 → 0.0.22

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/gbc.umd.js CHANGED
@@ -48,7 +48,7 @@ object-assign
48
48
  */var Yi,rs;function $f(){if(rs)return Yi;rs=1;var e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function n(a){if(a==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}function i(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de",Object.getOwnPropertyNames(a)[0]==="5")return!1;for(var o={},s=0;s<10;s++)o["_"+String.fromCharCode(s)]=s;var c=Object.getOwnPropertyNames(o).map(function(l){return o[l]});if(c.join("")!=="0123456789")return!1;var u={};return"abcdefghijklmnopqrst".split("").forEach(function(l){u[l]=l}),Object.keys(Object.assign({},u)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}return Yi=i()?Object.assign:function(a,o){for(var s,c=n(a),u,l=1;l<arguments.length;l++){s=Object(arguments[l]);for(var d in s)t.call(s,d)&&(c[d]=s[d]);if(e){u=e(s);for(var f=0;f<u.length;f++)r.call(s,u[f])&&(c[u[f]]=s[u[f]])}}return c},Yi}var Ki,ns;function Xi(){if(ns)return Ki;ns=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return Ki=e,Ki}var Ji,is;function as(){return is||(is=1,Ji=Function.call.bind(Object.prototype.hasOwnProperty)),Ji}var Zi,os;function Uf(){if(os)return Zi;os=1;var e=function(){};if(process.env.NODE_ENV!=="production"){var t=Xi(),r={},n=as();e=function(a){var o="Warning: "+a;typeof console<"u"&&console.error(o);try{throw new Error(o)}catch{}}}function i(a,o,s,c,u){if(process.env.NODE_ENV!=="production"){for(var l in a)if(n(a,l)){var d;try{if(typeof a[l]!="function"){var f=Error((c||"React class")+": "+s+" type `"+l+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof a[l]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw f.name="Invariant Violation",f}d=a[l](o,l,c,s,null,t)}catch(E){d=E}if(d&&!(d instanceof Error)&&e((c||"React class")+": type specification of "+s+" `"+l+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof d+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),d instanceof Error&&!(d.message in r)){r[d.message]=!0;var v=u?u():"";e("Failed "+s+" type: "+d.message+(v??""))}}}}return i.resetWarningCache=function(){process.env.NODE_ENV!=="production"&&(r={})},Zi=i,Zi}var ea,ss;function Bf(){if(ss)return ea;ss=1;var e=ts(),t=$f(),r=Xi(),n=as(),i=Uf(),a=function(){};process.env.NODE_ENV!=="production"&&(a=function(s){var c="Warning: "+s;typeof console<"u"&&console.error(c);try{throw new Error(c)}catch{}});function o(){return null}return ea=function(s,c){var u=typeof Symbol=="function"&&Symbol.iterator,l="@@iterator";function d(N){var R=N&&(u&&N[u]||N[l]);if(typeof R=="function")return R}var f="<<anonymous>>",v={array:S("array"),bigint:S("bigint"),bool:S("boolean"),func:S("function"),number:S("number"),object:S("object"),string:S("string"),symbol:S("symbol"),any:_(),arrayOf:m,element:C(),elementType:O(),instanceOf:P,node:V(),objectOf:j,oneOf:A,oneOfType:U,shape:Le,exact:ye};function E(N,R){return N===R?N!==0||1/N===1/R:N!==N&&R!==R}function x(N,R){this.message=N,this.data=R&&typeof R=="object"?R:{},this.stack=""}x.prototype=Error.prototype;function T(N){if(process.env.NODE_ENV!=="production")var R={},X=0;function se(ge,H,ie,ve,le,pe,I){if(ve=ve||f,pe=pe||ie,I!==r){if(c){var L=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw L.name="Invariant Violation",L}else if(process.env.NODE_ENV!=="production"&&typeof console<"u"){var ae=ve+":"+ie;!R[ae]&&X<3&&(a("You are manually calling a React.PropTypes validation function for the `"+pe+"` prop on `"+ve+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),R[ae]=!0,X++)}}return H[ie]==null?ge?H[ie]===null?new x("The "+le+" `"+pe+"` is marked as required "+("in `"+ve+"`, but its value is `null`.")):new x("The "+le+" `"+pe+"` is marked as required in "+("`"+ve+"`, but its value is `undefined`.")):null:N(H,ie,ve,le,pe)}var ee=se.bind(null,!1);return ee.isRequired=se.bind(null,!0),ee}function S(N){function R(X,se,ee,ge,H,ie){var ve=X[se],le=Pe(ve);if(le!==N){var pe=K(ve);return new x("Invalid "+ge+" `"+H+"` of type "+("`"+pe+"` supplied to `"+ee+"`, expected ")+("`"+N+"`."),{expectedType:N})}return null}return T(R)}function _(){return T(o)}function m(N){function R(X,se,ee,ge,H){if(typeof N!="function")return new x("Property `"+H+"` of component `"+ee+"` has invalid PropType notation inside arrayOf.");var ie=X[se];if(!Array.isArray(ie)){var ve=Pe(ie);return new x("Invalid "+ge+" `"+H+"` of type "+("`"+ve+"` supplied to `"+ee+"`, expected an array."))}for(var le=0;le<ie.length;le++){var pe=N(ie,le,ee,ge,H+"["+le+"]",r);if(pe instanceof Error)return pe}return null}return T(R)}function C(){function N(R,X,se,ee,ge){var H=R[X];if(!s(H)){var ie=Pe(H);return new x("Invalid "+ee+" `"+ge+"` of type "+("`"+ie+"` supplied to `"+se+"`, expected a single ReactElement."))}return null}return T(N)}function O(){function N(R,X,se,ee,ge){var H=R[X];if(!e.isValidElementType(H)){var ie=Pe(H);return new x("Invalid "+ee+" `"+ge+"` of type "+("`"+ie+"` supplied to `"+se+"`, expected a single ReactElement type."))}return null}return T(N)}function P(N){function R(X,se,ee,ge,H){if(!(X[se]instanceof N)){var ie=N.name||f,ve=Z(X[se]);return new x("Invalid "+ge+" `"+H+"` of type "+("`"+ve+"` supplied to `"+ee+"`, expected ")+("instance of `"+ie+"`."))}return null}return T(R)}function A(N){if(!Array.isArray(N))return process.env.NODE_ENV!=="production"&&(arguments.length>1?a("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."):a("Invalid argument supplied to oneOf, expected an array.")),o;function R(X,se,ee,ge,H){for(var ie=X[se],ve=0;ve<N.length;ve++)if(E(ie,N[ve]))return null;var le=JSON.stringify(N,function(I,L){var ae=K(L);return ae==="symbol"?String(L):L});return new x("Invalid "+ge+" `"+H+"` of value `"+String(ie)+"` "+("supplied to `"+ee+"`, expected one of "+le+"."))}return T(R)}function j(N){function R(X,se,ee,ge,H){if(typeof N!="function")return new x("Property `"+H+"` of component `"+ee+"` has invalid PropType notation inside objectOf.");var ie=X[se],ve=Pe(ie);if(ve!=="object")return new x("Invalid "+ge+" `"+H+"` of type "+("`"+ve+"` supplied to `"+ee+"`, expected an object."));for(var le in ie)if(n(ie,le)){var pe=N(ie,le,ee,ge,H+"."+le,r);if(pe instanceof Error)return pe}return null}return T(R)}function U(N){if(!Array.isArray(N))return process.env.NODE_ENV!=="production"&&a("Invalid argument supplied to oneOfType, expected an instance of array."),o;for(var R=0;R<N.length;R++){var X=N[R];if(typeof X!="function")return a("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+$(X)+" at index "+R+"."),o}function se(ee,ge,H,ie,ve){for(var le=[],pe=0;pe<N.length;pe++){var I=N[pe],L=I(ee,ge,H,ie,ve,r);if(L==null)return null;L.data&&n(L.data,"expectedType")&&le.push(L.data.expectedType)}var ae=le.length>0?", expected one of type ["+le.join(", ")+"]":"";return new x("Invalid "+ie+" `"+ve+"` supplied to "+("`"+H+"`"+ae+"."))}return T(se)}function V(){function N(R,X,se,ee,ge){return Oe(R[X])?null:new x("Invalid "+ee+" `"+ge+"` supplied to "+("`"+se+"`, expected a ReactNode."))}return T(N)}function me(N,R,X,se,ee){return new x((N||"React class")+": "+R+" type `"+X+"."+se+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+ee+"`.")}function Le(N){function R(X,se,ee,ge,H){var ie=X[se],ve=Pe(ie);if(ve!=="object")return new x("Invalid "+ge+" `"+H+"` of type `"+ve+"` "+("supplied to `"+ee+"`, expected `object`."));for(var le in N){var pe=N[le];if(typeof pe!="function")return me(ee,ge,H,le,K(pe));var I=pe(ie,le,ee,ge,H+"."+le,r);if(I)return I}return null}return T(R)}function ye(N){function R(X,se,ee,ge,H){var ie=X[se],ve=Pe(ie);if(ve!=="object")return new x("Invalid "+ge+" `"+H+"` of type `"+ve+"` "+("supplied to `"+ee+"`, expected `object`."));var le=t({},X[se],N);for(var pe in le){var I=N[pe];if(n(N,pe)&&typeof I!="function")return me(ee,ge,H,pe,K(I));if(!I)return new x("Invalid "+ge+" `"+H+"` key `"+pe+"` supplied to `"+ee+"`.\nBad object: "+JSON.stringify(X[se],null," ")+`
49
49
  Valid keys: `+JSON.stringify(Object.keys(N),null," "));var L=I(ie,pe,ee,ge,H+"."+pe,r);if(L)return L}return null}return T(R)}function Oe(N){switch(typeof N){case"number":case"string":case"undefined":return!0;case"boolean":return!N;case"object":if(Array.isArray(N))return N.every(Oe);if(N===null||s(N))return!0;var R=d(N);if(R){var X=R.call(N),se;if(R!==N.entries){for(;!(se=X.next()).done;)if(!Oe(se.value))return!1}else for(;!(se=X.next()).done;){var ee=se.value;if(ee&&!Oe(ee[1]))return!1}}else return!1;return!0;default:return!1}}function Ve(N,R){return N==="symbol"?!0:R?R["@@toStringTag"]==="Symbol"||typeof Symbol=="function"&&R instanceof Symbol:!1}function Pe(N){var R=typeof N;return Array.isArray(N)?"array":N instanceof RegExp?"object":Ve(R,N)?"symbol":R}function K(N){if(typeof N>"u"||N===null)return""+N;var R=Pe(N);if(R==="object"){if(N instanceof Date)return"date";if(N instanceof RegExp)return"regexp"}return R}function $(N){var R=K(N);switch(R){case"array":case"object":return"an "+R;case"boolean":case"date":case"regexp":return"a "+R;default:return R}}function Z(N){return!N.constructor||!N.constructor.name?f:N.constructor.name}return v.checkPropTypes=i,v.resetWarningCache=i.resetWarningCache,v.PropTypes=v,v},ea}var ta,cs;function zf(){if(cs)return ta;cs=1;var e=Xi();function t(){}function r(){}return r.resetWarningCache=t,ta=function(){function n(o,s,c,u,l,d){if(d!==e){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw f.name="Invariant Violation",f}}n.isRequired=n;function i(){return n}var a={array:n,bigint:n,bool:n,func:n,number:n,object:n,string:n,symbol:n,any:n,arrayOf:i,element:n,elementType:n,instanceOf:i,node:n,objectOf:i,oneOf:i,oneOfType:i,shape:i,exact:i,checkPropTypes:r,resetWarningCache:t};return a.PropTypes=a,a},ta}if(process.env.NODE_ENV!=="production"){var Wf=ts(),Qf=!0;Gi.exports=Bf()(Wf.isElement,Qf)}else Gi.exports=zf()();var us=Gi.exports;function ls(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(r=ls(e[t]))&&(n&&(n+=" "),n+=r);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function fs(){for(var e,t,r=0,n="";r<arguments.length;)(e=arguments[r++])&&(t=ls(e))&&(n&&(n+=" "),n+=t);return n}const Hf=jf(Object.freeze(Object.defineProperty({__proto__:null,clsx:fs,default:fs},Symbol.toStringTag,{value:"Module"})));var Be={},Bt={};Object.defineProperty(Bt,"__esModule",{value:!0}),Bt.dontSetMe=Jf,Bt.findInArray=Gf,Bt.int=Xf,Bt.isFunction=Yf,Bt.isNum=Kf;function Gf(e,t){for(let r=0,n=e.length;r<n;r++)if(t.apply(t,[e[r],r,e]))return e[r]}function Yf(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Function]"}function Kf(e){return typeof e=="number"&&!isNaN(e)}function Xf(e){return parseInt(e,10)}function Jf(e,t,r){if(e[t])return new Error("Invalid prop ".concat(t," passed to ").concat(r," - do not set this, set it on the child."))}var gr={};Object.defineProperty(gr,"__esModule",{value:!0}),gr.browserPrefixToKey=ds,gr.browserPrefixToStyle=Zf,gr.default=void 0,gr.getPrefix=hs;const ra=["Moz","Webkit","O","ms"];function hs(){var e;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";if(typeof window>"u")return"";const r=(e=window.document)===null||e===void 0||(e=e.documentElement)===null||e===void 0?void 0:e.style;if(!r||t in r)return"";for(let n=0;n<ra.length;n++)if(ds(t,ra[n])in r)return ra[n];return""}function ds(e,t){return t?"".concat(t).concat(eh(e)):e}function Zf(e,t){return t?"-".concat(t.toLowerCase(),"-").concat(e):e}function eh(e){let t="",r=!0;for(let n=0;n<e.length;n++)r?(t+=e[n].toUpperCase(),r=!1):e[n]==="-"?r=!0:t+=e[n];return t}gr.default=hs(),Object.defineProperty(Be,"__esModule",{value:!0}),Be.addClassName=ys,Be.addEvent=nh,Be.addUserSelectStyles=ph,Be.createCSSTransform=lh,Be.createSVGTransform=fh,Be.getTouch=hh,Be.getTouchIdentifier=dh,Be.getTranslation=na,Be.innerHeight=sh,Be.innerWidth=ch,Be.matchesSelector=vs,Be.matchesSelectorAndParentsTo=rh,Be.offsetXYFromParent=uh,Be.outerHeight=ah,Be.outerWidth=oh,Be.removeClassName=ms,Be.removeEvent=ih,Be.removeUserSelectStyles=gh;var St=Bt,ps=th(gr);function gs(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,r=new WeakMap;return(gs=function(n){return n?r:t})(e)}function th(e,t){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var r=gs(t);if(r&&r.has(e))return r.get(e);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(a!=="default"&&Object.prototype.hasOwnProperty.call(e,a)){var o=i?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}return n.default=e,r&&r.set(e,n),n}let Hn="";function vs(e,t){return Hn||(Hn=(0,St.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(r){return(0,St.isFunction)(e[r])})),(0,St.isFunction)(e[Hn])?e[Hn](t):!1}function rh(e,t,r){let n=e;do{if(vs(n,t))return!0;if(n===r)return!1;n=n.parentNode}while(n);return!1}function nh(e,t,r,n){if(!e)return;const i={capture:!0,...n};e.addEventListener?e.addEventListener(t,r,i):e.attachEvent?e.attachEvent("on"+t,r):e["on"+t]=r}function ih(e,t,r,n){if(!e)return;const i={capture:!0,...n};e.removeEventListener?e.removeEventListener(t,r,i):e.detachEvent?e.detachEvent("on"+t,r):e["on"+t]=null}function ah(e){let t=e.clientHeight;const r=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,St.int)(r.borderTopWidth),t+=(0,St.int)(r.borderBottomWidth),t}function oh(e){let t=e.clientWidth;const r=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,St.int)(r.borderLeftWidth),t+=(0,St.int)(r.borderRightWidth),t}function sh(e){let t=e.clientHeight;const r=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,St.int)(r.paddingTop),t-=(0,St.int)(r.paddingBottom),t}function ch(e){let t=e.clientWidth;const r=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,St.int)(r.paddingLeft),t-=(0,St.int)(r.paddingRight),t}function uh(e,t,r){const i=t===t.ownerDocument.body?{left:0,top:0}:t.getBoundingClientRect(),a=(e.clientX+t.scrollLeft-i.left)/r,o=(e.clientY+t.scrollTop-i.top)/r;return{x:a,y:o}}function lh(e,t){const r=na(e,t,"px");return{[(0,ps.browserPrefixToKey)("transform",ps.default)]:r}}function fh(e,t){return na(e,t,"")}function na(e,t,r){let{x:n,y:i}=e,a="translate(".concat(n).concat(r,",").concat(i).concat(r,")");if(t){const o="".concat(typeof t.x=="string"?t.x:t.x+r),s="".concat(typeof t.y=="string"?t.y:t.y+r);a="translate(".concat(o,", ").concat(s,")")+a}return a}function hh(e,t){return e.targetTouches&&(0,St.findInArray)(e.targetTouches,r=>t===r.identifier)||e.changedTouches&&(0,St.findInArray)(e.changedTouches,r=>t===r.identifier)}function dh(e){if(e.targetTouches&&e.targetTouches[0])return e.targetTouches[0].identifier;if(e.changedTouches&&e.changedTouches[0])return e.changedTouches[0].identifier}function ph(e){if(!e)return;let t=e.getElementById("react-draggable-style-el");t||(t=e.createElement("style"),t.type="text/css",t.id="react-draggable-style-el",t.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
50
50
  `,t.innerHTML+=`.react-draggable-transparent-selection *::selection {all: inherit;}
51
- `,e.getElementsByTagName("head")[0].appendChild(t)),e.body&&ys(e.body,"react-draggable-transparent-selection")}function gh(e){if(e)try{if(e.body&&ms(e.body,"react-draggable-transparent-selection"),e.selection)e.selection.empty();else{const t=(e.defaultView||window).getSelection();t&&t.type!=="Caret"&&t.removeAllRanges()}}catch{}}function ys(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)")))||(e.className+=" ".concat(t))}function ms(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)"),"g"),"")}var zt={};Object.defineProperty(zt,"__esModule",{value:!0}),zt.canDragX=mh,zt.canDragY=bh,zt.createCoreData=wh,zt.createDraggableData=xh,zt.getBoundPosition=vh,zt.getControlPosition=Eh,zt.snapToGrid=yh;var Tt=Bt,Tr=Be;function vh(e,t,r){if(!e.props.bounds)return[t,r];let{bounds:n}=e.props;n=typeof n=="string"?n:Oh(n);const i=ia(e);if(typeof n=="string"){const{ownerDocument:a}=i,o=a.defaultView;let s;if(n==="parent"?s=i.parentNode:s=a.querySelector(n),!(s instanceof o.HTMLElement))throw new Error('Bounds selector "'+n+'" could not find an element.');const c=s,u=o.getComputedStyle(i),l=o.getComputedStyle(c);n={left:-i.offsetLeft+(0,Tt.int)(l.paddingLeft)+(0,Tt.int)(u.marginLeft),top:-i.offsetTop+(0,Tt.int)(l.paddingTop)+(0,Tt.int)(u.marginTop),right:(0,Tr.innerWidth)(c)-(0,Tr.outerWidth)(i)-i.offsetLeft+(0,Tt.int)(l.paddingRight)-(0,Tt.int)(u.marginRight),bottom:(0,Tr.innerHeight)(c)-(0,Tr.outerHeight)(i)-i.offsetTop+(0,Tt.int)(l.paddingBottom)-(0,Tt.int)(u.marginBottom)}}return(0,Tt.isNum)(n.right)&&(t=Math.min(t,n.right)),(0,Tt.isNum)(n.bottom)&&(r=Math.min(r,n.bottom)),(0,Tt.isNum)(n.left)&&(t=Math.max(t,n.left)),(0,Tt.isNum)(n.top)&&(r=Math.max(r,n.top)),[t,r]}function yh(e,t,r){const n=Math.round(t/e[0])*e[0],i=Math.round(r/e[1])*e[1];return[n,i]}function mh(e){return e.props.axis==="both"||e.props.axis==="x"}function bh(e){return e.props.axis==="both"||e.props.axis==="y"}function Eh(e,t,r){const n=typeof t=="number"?(0,Tr.getTouch)(e,t):null;if(typeof t=="number"&&!n)return null;const i=ia(r),a=r.props.offsetParent||i.offsetParent||i.ownerDocument.body;return(0,Tr.offsetXYFromParent)(n||e,a,r.props.scale)}function wh(e,t,r){const n=!(0,Tt.isNum)(e.lastX),i=ia(e);return n?{node:i,deltaX:0,deltaY:0,lastX:t,lastY:r,x:t,y:r}:{node:i,deltaX:t-e.lastX,deltaY:r-e.lastY,lastX:e.lastX,lastY:e.lastY,x:t,y:r}}function xh(e,t){const r=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/r,y:e.state.y+t.deltaY/r,deltaX:t.deltaX/r,deltaY:t.deltaY/r,lastX:e.state.x,lastY:e.state.y}}function Oh(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}function ia(e){const t=e.findDOMNode();if(!t)throw new Error("<DraggableCore>: Unmounted during event!");return t}var Gn={},Yn={};Object.defineProperty(Yn,"__esModule",{value:!0}),Yn.default=Sh;function Sh(){}Object.defineProperty(Gn,"__esModule",{value:!0}),Gn.default=void 0;var aa=Ch(w),bt=sa(us),Th=sa(tn),pt=Be,er=zt,oa=Bt,rn=sa(Yn);function sa(e){return e&&e.__esModule?e:{default:e}}function bs(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,r=new WeakMap;return(bs=function(n){return n?r:t})(e)}function Ch(e,t){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var r=bs(t);if(r&&r.has(e))return r.get(e);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(a!=="default"&&Object.prototype.hasOwnProperty.call(e,a)){var o=i?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}return n.default=e,r&&r.set(e,n),n}function vt(e,t,r){return t=_h(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _h(e){var t=kh(e,"string");return typeof t=="symbol"?t:String(t)}function kh(e,t){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}const It={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let tr=It.mouse,Kn=class extends aa.Component{constructor(){super(...arguments),vt(this,"dragging",!1),vt(this,"lastX",NaN),vt(this,"lastY",NaN),vt(this,"touchIdentifier",null),vt(this,"mounted",!1),vt(this,"handleDragStart",t=>{if(this.props.onMouseDown(t),!this.props.allowAnyClick&&typeof t.button=="number"&&t.button!==0)return!1;const r=this.findDOMNode();if(!r||!r.ownerDocument||!r.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:n}=r;if(this.props.disabled||!(t.target instanceof n.defaultView.Node)||this.props.handle&&!(0,pt.matchesSelectorAndParentsTo)(t.target,this.props.handle,r)||this.props.cancel&&(0,pt.matchesSelectorAndParentsTo)(t.target,this.props.cancel,r))return;t.type==="touchstart"&&t.preventDefault();const i=(0,pt.getTouchIdentifier)(t);this.touchIdentifier=i;const a=(0,er.getControlPosition)(t,i,this);if(a==null)return;const{x:o,y:s}=a,c=(0,er.createCoreData)(this,o,s);(0,rn.default)("DraggableCore: handleDragStart: %j",c),(0,rn.default)("calling",this.props.onStart),!(this.props.onStart(t,c)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,pt.addUserSelectStyles)(n),this.dragging=!0,this.lastX=o,this.lastY=s,(0,pt.addEvent)(n,tr.move,this.handleDrag),(0,pt.addEvent)(n,tr.stop,this.handleDragStop))}),vt(this,"handleDrag",t=>{const r=(0,er.getControlPosition)(t,this.touchIdentifier,this);if(r==null)return;let{x:n,y:i}=r;if(Array.isArray(this.props.grid)){let s=n-this.lastX,c=i-this.lastY;if([s,c]=(0,er.snapToGrid)(this.props.grid,s,c),!s&&!c)return;n=this.lastX+s,i=this.lastY+c}const a=(0,er.createCoreData)(this,n,i);if((0,rn.default)("DraggableCore: handleDrag: %j",a),this.props.onDrag(t,a)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{const c=document.createEvent("MouseEvents");c.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(c)}return}this.lastX=n,this.lastY=i}),vt(this,"handleDragStop",t=>{if(!this.dragging)return;const r=(0,er.getControlPosition)(t,this.touchIdentifier,this);if(r==null)return;let{x:n,y:i}=r;if(Array.isArray(this.props.grid)){let c=n-this.lastX||0,u=i-this.lastY||0;[c,u]=(0,er.snapToGrid)(this.props.grid,c,u),n=this.lastX+c,i=this.lastY+u}const a=(0,er.createCoreData)(this,n,i);if(this.props.onStop(t,a)===!1||this.mounted===!1)return!1;const s=this.findDOMNode();s&&this.props.enableUserSelectHack&&(0,pt.removeUserSelectStyles)(s.ownerDocument),(0,rn.default)("DraggableCore: handleDragStop: %j",a),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,s&&((0,rn.default)("DraggableCore: Removing handlers"),(0,pt.removeEvent)(s.ownerDocument,tr.move,this.handleDrag),(0,pt.removeEvent)(s.ownerDocument,tr.stop,this.handleDragStop))}),vt(this,"onMouseDown",t=>(tr=It.mouse,this.handleDragStart(t))),vt(this,"onMouseUp",t=>(tr=It.mouse,this.handleDragStop(t))),vt(this,"onTouchStart",t=>(tr=It.touch,this.handleDragStart(t))),vt(this,"onTouchEnd",t=>(tr=It.touch,this.handleDragStop(t)))}componentDidMount(){this.mounted=!0;const t=this.findDOMNode();t&&(0,pt.addEvent)(t,It.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const t=this.findDOMNode();if(t){const{ownerDocument:r}=t;(0,pt.removeEvent)(r,It.mouse.move,this.handleDrag),(0,pt.removeEvent)(r,It.touch.move,this.handleDrag),(0,pt.removeEvent)(r,It.mouse.stop,this.handleDragStop),(0,pt.removeEvent)(r,It.touch.stop,this.handleDragStop),(0,pt.removeEvent)(t,It.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,pt.removeUserSelectStyles)(r)}}findDOMNode(){var t,r;return(t=this.props)!==null&&t!==void 0&&t.nodeRef?(r=this.props)===null||r===void 0||(r=r.nodeRef)===null||r===void 0?void 0:r.current:Th.default.findDOMNode(this)}render(){return aa.cloneElement(aa.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};Gn.default=Kn,vt(Kn,"displayName","DraggableCore"),vt(Kn,"propTypes",{allowAnyClick:bt.default.bool,children:bt.default.node.isRequired,disabled:bt.default.bool,enableUserSelectHack:bt.default.bool,offsetParent:function(e,t){if(e[t]&&e[t].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:bt.default.arrayOf(bt.default.number),handle:bt.default.string,cancel:bt.default.string,nodeRef:bt.default.object,onStart:bt.default.func,onDrag:bt.default.func,onStop:bt.default.func,onMouseDown:bt.default.func,scale:bt.default.number,className:oa.dontSetMe,style:oa.dontSetMe,transform:oa.dontSetMe}),vt(Kn,"defaultProps",{allowAnyClick:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1}),function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DraggableCore",{enumerable:!0,get:function(){return c.default}}),e.default=void 0;var t=f(w),r=l(us),n=l(tn),i=l(Hf),a=Be,o=zt,s=Bt,c=l(Gn),u=l(Yn);function l(_){return _&&_.__esModule?_:{default:_}}function d(_){if(typeof WeakMap!="function")return null;var m=new WeakMap,C=new WeakMap;return(d=function(O){return O?C:m})(_)}function f(_,m){if(_&&_.__esModule)return _;if(_===null||typeof _!="object"&&typeof _!="function")return{default:_};var C=d(m);if(C&&C.has(_))return C.get(_);var O={},P=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var A in _)if(A!=="default"&&Object.prototype.hasOwnProperty.call(_,A)){var j=P?Object.getOwnPropertyDescriptor(_,A):null;j&&(j.get||j.set)?Object.defineProperty(O,A,j):O[A]=_[A]}return O.default=_,C&&C.set(_,O),O}function v(){return v=Object.assign?Object.assign.bind():function(_){for(var m=1;m<arguments.length;m++){var C=arguments[m];for(var O in C)Object.prototype.hasOwnProperty.call(C,O)&&(_[O]=C[O])}return _},v.apply(this,arguments)}function E(_,m,C){return m=x(m),m in _?Object.defineProperty(_,m,{value:C,enumerable:!0,configurable:!0,writable:!0}):_[m]=C,_}function x(_){var m=T(_,"string");return typeof m=="symbol"?m:String(m)}function T(_,m){if(typeof _!="object"||_===null)return _;var C=_[Symbol.toPrimitive];if(C!==void 0){var O=C.call(_,m||"default");if(typeof O!="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(m==="string"?String:Number)(_)}class S extends t.Component{static getDerivedStateFromProps(m,C){let{position:O}=m,{prevPropsPosition:P}=C;return O&&(!P||O.x!==P.x||O.y!==P.y)?((0,u.default)("Draggable: getDerivedStateFromProps %j",{position:O,prevPropsPosition:P}),{x:O.x,y:O.y,prevPropsPosition:{...O}}):null}constructor(m){super(m),E(this,"onDragStart",(C,O)=>{if((0,u.default)("Draggable: onDragStart: %j",O),this.props.onStart(C,(0,o.createDraggableData)(this,O))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),E(this,"onDrag",(C,O)=>{if(!this.state.dragging)return!1;(0,u.default)("Draggable: onDrag: %j",O);const P=(0,o.createDraggableData)(this,O),A={x:P.x,y:P.y,slackX:0,slackY:0};if(this.props.bounds){const{x:U,y:V}=A;A.x+=this.state.slackX,A.y+=this.state.slackY;const[me,Le]=(0,o.getBoundPosition)(this,A.x,A.y);A.x=me,A.y=Le,A.slackX=this.state.slackX+(U-A.x),A.slackY=this.state.slackY+(V-A.y),P.x=A.x,P.y=A.y,P.deltaX=A.x-this.state.x,P.deltaY=A.y-this.state.y}if(this.props.onDrag(C,P)===!1)return!1;this.setState(A)}),E(this,"onDragStop",(C,O)=>{if(!this.state.dragging||this.props.onStop(C,(0,o.createDraggableData)(this,O))===!1)return!1;(0,u.default)("Draggable: onDragStop: %j",O);const A={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:U,y:V}=this.props.position;A.x=U,A.y=V}this.setState(A)}),this.state={dragging:!1,dragged:!1,x:m.position?m.position.x:m.defaultPosition.x,y:m.position?m.position.y:m.defaultPosition.y,prevPropsPosition:{...m.position},slackX:0,slackY:0,isElementSVG:!1},m.position&&!(m.onDrag||m.onStop)&&console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}componentDidMount(){typeof window.SVGElement<"u"&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.setState({dragging:!1})}findDOMNode(){var m,C;return(m=(C=this.props)===null||C===void 0||(C=C.nodeRef)===null||C===void 0?void 0:C.current)!==null&&m!==void 0?m:n.default.findDOMNode(this)}render(){const{axis:m,bounds:C,children:O,defaultPosition:P,defaultClassName:A,defaultClassNameDragging:j,defaultClassNameDragged:U,position:V,positionOffset:me,scale:Le,...ye}=this.props;let Oe={},Ve=null;const K=!!!V||this.state.dragging,$=V||P,Z={x:(0,o.canDragX)(this)&&K?this.state.x:$.x,y:(0,o.canDragY)(this)&&K?this.state.y:$.y};this.state.isElementSVG?Ve=(0,a.createSVGTransform)(Z,me):Oe=(0,a.createCSSTransform)(Z,me);const N=(0,i.default)(O.props.className||"",A,{[j]:this.state.dragging,[U]:this.state.dragged});return t.createElement(c.default,v({},ye,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(O),{className:N,style:{...O.props.style,...Oe},transform:Ve}))}}e.default=S,E(S,"displayName","Draggable"),E(S,"propTypes",{...c.default.propTypes,axis:r.default.oneOf(["both","x","y","none"]),bounds:r.default.oneOfType([r.default.shape({left:r.default.number,right:r.default.number,top:r.default.number,bottom:r.default.number}),r.default.string,r.default.oneOf([!1])]),defaultClassName:r.default.string,defaultClassNameDragging:r.default.string,defaultClassNameDragged:r.default.string,defaultPosition:r.default.shape({x:r.default.number,y:r.default.number}),positionOffset:r.default.shape({x:r.default.oneOfType([r.default.number,r.default.string]),y:r.default.oneOfType([r.default.number,r.default.string])}),position:r.default.shape({x:r.default.number,y:r.default.number}),className:s.dontSetMe,style:s.dontSetMe,transform:s.dontSetMe}),E(S,"defaultProps",{...c.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})}(Xo);const{default:Es,DraggableCore:Dh}=Xo;Wn.exports=Es,Wn.exports.default=Es,Wn.exports.DraggableCore=Dh;var Mh=Wn.exports;const Xn=Ko(Mh);var Re=(e=>(e.FULL="full",e.DENSE="dense",e.SQUISH="squish",e.PACK="pack",e.HIDE="hide",e.DOWNLOAD="download",e))(Re||{}),G=(e=>(e.UNDEFINED="undefined",e.RULER="ruler",e.BIGWIG="bigwig",e.BIGBED="bigbed",e.IMPORTANCE="importance",e.TRANSCRIPT="transcript",e.BAM="bam",e.MOTIF="motif",e.LDTRACK="ldtrack",e))(G||{});function Lh(e){return null}function Ih(e){return null}var Jn=(e=>(e[e.V29=29]="V29",e[e.V40=40]="V40",e[e.V47=47]="V47",e))(Jn||{}),ca=(e=>(e[e.V21=21]="V21",e[e.V25=25]="V25",e[e.V36=36]="V36",e))(ca||{});function Ph(e){return null}const vr=w.createContext({}),Pt=w.createContext(()=>{});var ue=(e=>(e.SET_DOMAIN="setDomain",e.SHIFT_DOMAIN="shiftDomain",e.ZOOM_DOMAIN="zoomDomain",e.SLIDE_DOMAIN="slideDomain",e.SET_DELTA="setDelta",e.ADD_TRACK="addTrack",e.UPDATE_TRACK="updateTrack",e.SET_TRACK_HEIGHT="setTrackHeight",e.SET_TRACK_DATA="setTrackData",e.SET_LOADING="setLoading",e.SWAP_TRACKS="swapTracks",e.RELOAD_TRACKS="reloadTracks",e.SHIFT_TRACK="shiftTrack",e.REMOVE_TRANSLATION="removeTranslation",e.INSERT_TRACK="insertTrack",e.DELETE_TRACK="deleteTrack",e.TRANSLATE_TRACK="translateTrack",e.SET_RANGE="setRange",e.UPDATE_PROPS="updateProps",e.BRING_TO_TOP="bringToTop",e.SET_HOVER="setHover",e.ADD_HIGHLIGHT="addHighlight",e.REMOVE_LAST_HIGHLIGHT="removeLastHighlight",e.REMOVE_HIGHLIGHT="removeHighlight",e))(ue||{});function Nh(e,t){switch(t.type){case"setDomain":const r=t.domain,n=Math.floor((r.end-r.start)/e.preRenderedWidth);return{...e,domain:t.domain,zoomLevel:n};case"addTrack":return e.tracks.find(m=>m.id===t.track.id)?e:{...e,tracks:[...e.tracks,t.track]};case"updateTrack":const a=e.tracks.find(m=>m.id===t.id);if(a){const m={...a,...t.track};return{...e,tracks:e.tracks.map(C=>C.id===t.id?m:C)}}return e;case"setTrackHeight":return{...e,tracks:e.tracks.map(m=>m.id===t.id?{...m,actualHeight:t.height}:m)};case"setTrackData":return{...e,tracks:e.tracks.map(m=>m.id===t.id?{...m,data:t.data}:m)};case"shiftDomain":const o=Math.floor(t.delta/e.preRenderedWidth*(e.domain.end-e.domain.start));return{...e,domain:{...e.domain,start:e.domain.start-o,end:e.domain.end-o}};case"setLoading":return{...e,tracks:e.tracks.map(m=>({...m,data:void 0,...m.trackType===G.MOTIF?{peaks:void 0}:{}}))};case"shiftTrack":const s=e.tracks.findIndex(m=>m.id===t.id1);if(s===-1)return e;const c=e.tracks.findIndex(m=>m.id===t.id2);if(c<0||c>=e.tracks.length)return e;const u=[...e.tracks],[l]=u.splice(s,1);return u.splice(c,0,l),{...e,tracks:u};case"swapTracks":const d=e.tracks.findIndex(m=>m.id===t.id1);if(d===-1)return e;const f=e.tracks.findIndex(m=>m.id===t.id2);if(f<0||f>=e.tracks.length)return e;const v=[...e.tracks];return[v[d],v[f]]=[v[f],v[d]],{...e,tracks:v};case"translateTrack":const E=e.tracks.find(m=>m.id===t.id);if(!E)return e;const x={...E.props,transform:`translate(0, ${t.dist})`};return{...e,tracks:e.tracks.map(m=>m.id===E.id?{...m,props:x}:m)};case"removeTranslation":return t.id==="ALL"?{...e,tracks:e.tracks.map(m=>{if(!m.props)return m;const{transform:C,...O}=m.props;return{...m,props:O}})}:{...e,tracks:e.tracks.map(m=>m.id===t.id?{...m,props:(()=>{if(!m.props)return m.props;const{transform:C,...O}=m.props;return O})()}:m)};case"insertTrack":return{...e,tracks:[...e.tracks.slice(0,t.index),t.track,...e.tracks.slice(t.index)]};case"deleteTrack":return{...e,tracks:e.tracks.filter(m=>m.id!==t.id)};case"setRange":return{...e,tracks:e.tracks.map(m=>m.id===t.id?{...m,props:{...m.props,range:t.range}}:m)};case"updateProps":return{...e,tracks:e.tracks.map(m=>m.id===t.id?{...m,props:{...m.props,...t.props}}:m)};case"bringToTop":const T=e.tracks.find(m=>m.id===t.id);return T?{...e,tracks:[T,...e.tracks.filter(m=>m.id!==t.id)]}:e;case"setDelta":return{...e,delta:t.delta};case"zoomDomain":const S=(e.domain.start+e.domain.end)/2,_=(e.domain.end-e.domain.start)*t.factor;return{...e,domain:{...e.domain,start:Math.floor(S-_/2),end:Math.ceil(S+_/2)},zoomLevel:e.zoomLevel};case"slideDomain":return{...e,domain:{...e.domain,start:e.domain.start+t.delta,end:e.domain.end+t.delta}};case"addHighlight":return e.highlights.some(m=>m.id===t.highlight.id)?e:{...e,highlights:[...e.highlights,t.highlight]};case"removeLastHighlight":return e.highlights.length===0||e.highlights[e.highlights.length-1].domain.chromosome?e:{...e,highlights:e.highlights.slice(0,-1)};case"removeHighlight":return{...e,highlights:e.highlights.filter(m=>m.id!==t.id)};default:return e}}const ws=w.createContext(!1);function Ah({canDrag:e,id:t,height:r,children:n}){var Pe;const a=w.useRef(null),o=w.useContext(Pt),s=w.useContext(vr),[c,u]=w.useState(0),[l,d]=w.useState({x:0,y:0}),[f,v]=w.useState(!1),[E,x]=w.useState({x:0,y:0}),[T,S]=w.useState([]),[_,m]=w.useState([]),[C,O]=w.useState(-1),[P,A]=w.useState(null),[j,U]=w.useState(1);w.useEffect(()=>{const K=document.getElementById("browserSVG");if(A(K),K){const $=K,Z=$.getBoundingClientRect();U(Z.width/$.viewBox.baseVal.width)}},[]);const V=w.useRef(((Pe=s.tracks)==null?void 0:Pe.find(K=>K.id===t))||null);w.useEffect(()=>{if(!s.tracks||f)return;const K=s.tracks.map(N=>N.actualHeight||N.height),$=s.tracks.findIndex(N=>N.id===t);let Z=new Array(K.length).fill(0);Z=K.map((N,R)=>R<$?-K.slice(R,$).reduce((X,se)=>X+se,0):R>$?K.slice($+1,R+1).reduce((X,se)=>X+se,0):0),m(new Array(s.tracks.length).fill(!1)),S(Z)},[s.tracks?s.tracks:[]]);const me=()=>{const K=T.reduce(($,Z,N)=>Math.abs(Z-c)<Math.abs(T[$]-c)?N:$,0);return C!=K&&(C!=-1&&_[C]&&_[K]&&(m($=>{const Z=[...$];return Z[C]=!1,Z}),o({type:ue.REMOVE_TRANSLATION,id:s.tracks[C].id})),m($=>{const Z=[...$];return Z[K]=!0,Z}),o({type:ue.TRANSLATE_TRACK,id:s.tracks[K].id,dist:c<0?r:-r}),O(K)),K},Le=()=>{if(!s.tracks)return;const K=s.tracks.find(Z=>Z.id===t);if(!K)return;const $=s.tracks.slice(0,s.tracks.indexOf(K)).reduce((Z,N)=>Z+(N.actualHeight||N.height),0);x({x:0,y:$+80}),u(0),v(!0)},ye=()=>{s.tracks&&(d({x:0,y:0}),v(!1),o({type:ue.SHIFT_TRACK,id1:t,id2:s.tracks[me()].id}),o({type:ue.REMOVE_TRANSLATION,id:"ALL"}))},Oe=(K,$)=>{u($.y),d({x:0,y:$.y});const Z=me(),N=s.tracks.indexOf(V.current);Z==N||s.tracks[Z]},Ve=w.useRef(null);return p.jsx(ws.Provider,{value:f,children:p.jsx(Xn,{scale:j,nodeRef:a,position:l,axis:"y",handle:".swap-handle",onStart:e&&P?Le:()=>!1,onStop:ye,onDrag:Oe,children:p.jsxs("g",{ref:a,"data-track-id":t,children:[!f&&n,f&&(P?tn.createPortal(p.jsx(Xn,{scale:j,nodeRef:Ve,position:{x:0,y:E.y+l.y},axis:"y",children:p.jsx("g",{ref:Ve,style:{cursor:"grabbing",filter:"drop-shadow(2px 2px 2px gray)"},children:n})}),P):n)]})})})}w.createContext({}),w.createContext(()=>{});const ua=w.createContext({delta:0,setDelta:()=>{}}),la=w.createContext({openModal:null,showModal:()=>{},closeModal:()=>{}});function Fh({children:e,browserState:t,browserDispatch:r,modalState:n,deltaContext:i}){return p.jsx(la.Provider,{value:{...n},children:p.jsx(vr.Provider,{value:t,children:p.jsx(Pt.Provider,{value:r,children:p.jsx(ua.Provider,{value:i,children:e})})})})}function Rh(e){return p.jsxs("svg",{x:e.x,y:e.y,width:e.width,height:e.height,viewBox:"0 0 24.000001 24.000001",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",children:[p.jsx("filter",{id:"a",colorInterpolationFilters:"sRGB",height:"1.39486",width:"1.311082",x:"-.155541",y:"-.19743",children:p.jsx("feGaussianBlur",{stdDeviation:"1.2313672"})}),p.jsxs("g",{transform:"matrix(.96344673 0 0 .96344673 -123.36427 -955.289756)",children:[p.jsx("path",{d:"m132.5 995.4062c-.831 0-1.5 1.5-1.5 1.5s.669 1.5 1.5 1.5h7.6875c-.25613.088-.47997.2851-.59375.5313l-3 6c-.2396.5108.0576 1.1992.59375 1.375l1.8125.625v2.4375c.00005.5236.47642 1 1 1h1c.52358 0 .99995-.4764 1-1v-2.4375l1.8125-.625c.53611-.1758.83335-.8642.59375-1.375l-3-6c-.13219-.2754-.39056-.4647-.6875-.5313h7.78125c.831 0 1.5-1.5 1.5-1.5s-.669-1.5-1.5-1.5z",filter:"url(#a)",opacity:".2"}),p.jsx("path",{d:"m140.3125 997.375c-.31022.06-.58621.2757-.71875.5625l-3 6c-.2396.5108.0576 1.1992.59375 1.375l1.8125.625v2.4375c.00005.5236.47642 1 1 1h1c.52358 0 .99995-.4764 1-1v-2.4375l1.8125-.625c.53611-.1758.83335-.8642.59375-1.375l-3-6c-.17625-.3672-.59466-.6026-1-.5625-.0312-.001-.0625-.001-.0937 0z"}),p.jsx("path",{d:"m140.5 998.375-3 6 2.5.8437v3.1563h1v-3.1563l2.5-.8437z",fill:"#fefefe"}),p.jsxs("g",{transform:"rotate(-90)",children:[p.jsx("rect",{height:"18.999969",rx:"1.43934",ry:"1.5",width:"3.049988",x:"-997.41217",y:"131.00003"}),p.jsx("path",{d:"m-996.41217 132.00003h1v16.999969h-1z",fill:"#fefefe"})]})]})]})}function fa(e){return e/6<10?e<10?e:10:e/6}const xs=({fontSize:e,position:t,width:r,children:n})=>p.jsxs(p.Fragment,{children:[p.jsx("text",{textAnchor:"end",alignmentBaseline:"middle",y:t-3,x:r*.94,fontSize:`${e}px`,style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:n}),p.jsx("line",{x1:r*.96,x2:r,y1:t,y2:t,stroke:"#aaa"})]}),jh=e=>{const t=fa(50),[r,n]=w.useState(null);w.useEffect(()=>{const E=document.getElementById("browserSVG");n(E)},[]);const{showModal:i}=w.useContext(la),[a,o]=w.useState(void 0),s=w.useContext(Pt),c=w.useContext(vr);let u=-1;c.tracks&&(u=c.tracks.findIndex(E=>E.id===e.trackId));const l=E=>{i(e.trackId,E.clientX,E.clientY)},d=E=>{E.preventDefault(),s({type:ue.BRING_TO_TOP,id:e.trackId})};w.useEffect(()=>{o(e.range)},[e.range]);const f=w.useContext(ws),v=E=>{s({type:ue.UPDATE_TRACK,id:e.trackId,track:{hoverColor:E?e.color:void 0}})};return p.jsx("svg",{style:{cursor:e.canDrag&&r?f?"grabbing":"grab":"default"},width:e.width,height:e.height,viewBox:`0 0 ${e.width} ${e.height}`,preserveAspectRatio:"xMinYMin meet",children:p.jsxs("g",{onMouseEnter:()=>v(!0),onMouseLeave:()=>v(!1),height:e.height,width:e.width,children:[p.jsx("rect",{x:0,y:0,width:e.width,height:e.height,fill:"white",className:"swap-handle"}),p.jsx("rect",{x:0,y:0,width:e.width/15,height:e.height,stroke:"#000000",strokeWidth:.5,fill:e.color||"rgb(225,225,225)",style:{cursor:"default"}}),p.jsx("text",{fontSize:`${t}px`,y:e.range===void 0?e.height/2:(e.height+t)/2,x:e.width/10,alignmentBaseline:"middle",style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:e.shortLabel}),p.jsx("line",{stroke:"#ccc",x1:e.width,x2:e.width,y1:0,y2:e.height}),e.trackType!==G.RULER&&r&&p.jsxs("svg",{x:e.width/10,y:e.range===void 0?e.height/2+5:(e.height+t)/2+5,width:35,height:20,cursor:"pointer",children:[p.jsxs("g",{onClick:l,children:[p.jsx("circle",{cx:7.5,cy:7.5,r:7.5,strokeWidth:0,fill:"transparent"}),p.jsx(Ff,{x:0,y:0,height:15,width:15})]}),u>0&&p.jsxs("g",{onClick:d,children:[p.jsx("circle",{cx:22.5,cy:7.5,r:7.5,strokeWidth:0,fill:"transparent"}),p.jsx(Rh,{x:15,y:2,height:15,width:15})]})]}),a&&p.jsxs(p.Fragment,{children:[p.jsx(xs,{position:e.rangePositions.min,width:e.width,fontSize:t||e.height/6,children:Number(a.min).toFixed(2)}),p.jsx(xs,{position:e.rangePositions.max,width:e.width,fontSize:t||e.height/6,children:Number(a.max).toFixed(2)})]})]})})};function Vh(e){return e&&e.props!==void 0}const qh=0,Os=255;function Ss(e){if(e=e.replace(/[^0-9a-f]/gi,""),e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),e.length===8&&(e=e.substring(0,6)),e.length!==6)throw new Error(e+" is not a valid hex color");return e}function Zn(e,t){e=Ss(e);let r="#";for(let n=0;n<3;++n){const i=parseInt(e.substr(n*2,2),16),a=Math.round(Math.min(Math.max(qh,i+t*Os),Os)).toString(16);r+=("00"+a).substr(a.length)}return r}function Ts(e){return parseInt(Ss(e),16)}function $h(e){return e>=16?e.toString(16):`0${e.toString(16)}`}const ha=w.createContext({show:!1,x:0,y:0,id:"",setContextMenu:()=>{},displayMode:void 0}),Uh=e=>{const{x:t,y:r,show:n}=w.useContext(ha);return p.jsx("g",{id:"context-menu",transform:`translate(${t}, ${r})`,style:{visibility:n?"visible":"hidden"},children:p.jsx("foreignObject",{width:e.width,height:e.height,children:e.children})})},rr=(e,t)=>{if(e.createSVGPoint&&e){let n=e.createSVGPoint();return n.x=t.clientX,n.y=t.clientY,n=n.matrixTransform(e.getScreenCTM().inverse()),[n.x,n.y]}const r=e.getBoundingClientRect();return[t.clientX-r.left-e.clientLeft,t.clientY-r.top-e.clientTop]},Bh=(e,t)=>{const r=e.cloneNode(!0),n=t.cloneNode(!0);return'<?xml version="1.0" standalone="no"?>'+'<svg xmlns="http://www.w3.org/2000/svg">'+n.outerHTML.replace(/\n/g,"").replace(/[ ]{8}/g,"")+'<g transform="translate (0,50)">'+r.outerHTML.replace(/\n/g,"").replace(/[ ]{8}/g,"")+"</g></svg>"},zh=(e,t,r)=>{const n=new Blob([Bh(e,t)],{type:"image/svg;charset=utf-8"}),i=URL.createObjectURL(n),a=document.createElement("a");a.href=i,a.download=r,document.body.appendChild(a),a.click(),document.body.removeChild(a)};function Wh(e){return p.jsx("rect",{width:e.width,height:e.height,fill:e.hoverColor||"transparent",fillOpacity:e.hoverColor?.15:0,style:{pointerEvents:"none"}})}const Qh=(e,t)=>e||(!t||!t.substring||!t.length?"":t.length<=20?t:t.substring(0,20)+"..."),et=e=>{var _;const t=w.useContext(Pt),r=w.useContext(ha);w.useEffect(()=>{const m=C=>{const O=document.getElementById("context-menu");O&&!O.contains(C.target)&&r.setContextMenu({show:!1,x:0,y:0,id:""})};return document.addEventListener("click",m),()=>{document.removeEventListener("click",m)}},[r]);const n=()=>{var O,P,A,j;const m=(P=(O=e.svgRef)==null?void 0:O.current)==null?void 0:P.getElementById("wrapped-track-"+e.id),C=(j=(A=e.svgRef)==null?void 0:A.current)==null?void 0:j.getElementById("wrapped-track-ruler");zh(m,C,e.id+".svg")},[i,a]=w.useState(e.height||0),o=w.useCallback(m=>{a(m),e.onHeightChanged&&e.onHeightChanged(m)},[e]);w.useEffect(()=>{t({type:ue.SET_TRACK_HEIGHT,id:e.id,height:i}),e.onHeightChanged&&e.height!==void 0&&e.onHeightChanged(e.height)},[e.height,i]);const s=e.trackMargin||(e.height||e.rowHeight||i)/6,c=e.titleSize||s*2.5,u=e.title?c+5:0,l=s+u,d=Qh(e.shortLabel||"",e.title||""),f=i-l,v=e.width<1e3?e.width/8:150,E=e.width-v,x=i/3,S=(_=e.displayMode)==null?void 0:_.toLowerCase();return p.jsx(Ah,{canDrag:e.canDrag||!1,id:e.id,height:i,children:p.jsxs("g",{id:"wrapped-track-"+e.id,children:[p.jsx("rect",{width:e.width,height:i,fill:"white",style:{pointerEvents:"none"}}),p.jsx("line",{stroke:"#ccc",x1:e.width,x2:e.width,y1:0,y2:i,strokeWidth:2}),e.loading&&!e.error&&p.jsx("g",{transform:`translate(${v+(E-x)/2},${(i-x)/2})`,children:p.jsx(Pf,{width:x,height:x})}),e.error&&p.jsxs("g",{transform:`translate(${v+(E-x)/2},${(i-x)/2})`,children:[p.jsx(Yo,{width:x,height:x}),p.jsx("g",{transform:`translate(${x/2},${x+10})`,children:p.jsx("text",{textAnchor:"middle",fontSize:`${e.titleSize}px`,style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:e.error})})]}),!e.loading&&!e.error&&e.title&&p.jsx("g",{id:`title-${e.id}`,children:p.jsx("text",{style:{cursor:"default"},fill:e.titleColor||"#000000",textAnchor:"middle",x:v+E/2,y:c/2+5,fontSize:`${c}px`,transform:`translate(0,${s})`,alignmentBaseline:"baseline",children:e.title})}),!e.loading&&!e.error&&p.jsx("g",{onContextMenu:m=>{if(e.trackType==G.RULER||!e.svgRef)return;m.preventDefault();const C=rr(e.svgRef.current,m);r.setContextMenu({show:!0,x:C[0]>e.width-80?C[0]-80:C[0],y:C[1],id:e.id,displayMode:S,downloadSVG:n,displayModeOptions:Hh(e.trackType)})},transform:`translate(${v},${i-f})`,children:w.Children.map(e.children,m=>Vh(m)?w.cloneElement(m,{...m.props,height:f,width:e.width-v,hoverColor:e.hoverColor,onHeightChanged:C=>{o(C+l)}}):m)}),e.height!=0&&p.jsx(jh,{canDrag:e.canDrag||!1,trackType:e.trackType||G.UNDEFINED,trackId:e.id,color:e.color,hoverColor:e.hoverColor,shortLabel:d,width:v,height:i,rangePositions:{min:i,max:l},range:e.range}),p.jsx(Wh,{width:e.width,height:i,hoverColor:e.hoverColor})]})})};function Hh(e){switch(e){case G.BIGBED:case G.BAM:return["dense","squish","hide","download"];case G.BIGWIG:return["full","dense","hide","download"];case G.TRANSCRIPT:return["pack","squish","hide","download"];case G.LDTRACK:return["dense","hide","download"];case G.MOTIF:return["dense","squish","hide","download"];default:return["hide","download"]}}let ei;const Gh=new Uint8Array(16);function Yh(){if(!ei&&(ei=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!ei))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return ei(Gh)}const ut=[];for(let e=0;e<256;++e)ut.push((e+256).toString(16).slice(1));function Kh(e,t=0){return ut[e[t+0]]+ut[e[t+1]]+ut[e[t+2]]+ut[e[t+3]]+"-"+ut[e[t+4]]+ut[e[t+5]]+"-"+ut[e[t+6]]+ut[e[t+7]]+"-"+ut[e[t+8]]+ut[e[t+9]]+"-"+ut[e[t+10]]+ut[e[t+11]]+ut[e[t+12]]+ut[e[t+13]]+ut[e[t+14]]+ut[e[t+15]]}let Cs,da,pa=0,ga=0;function Nt(e,t,r){let n=t&&r||0;const i=t||new Array(16);e=e||{};let a=e.node||Cs,o=e.clockseq!==void 0?e.clockseq:da;if(a==null||o==null){const f=e.random||(e.rng||Yh)();a==null&&(a=Cs=[f[0]|1,f[1],f[2],f[3],f[4],f[5]]),o==null&&(o=da=(f[6]<<8|f[7])&16383)}let s=e.msecs!==void 0?e.msecs:Date.now(),c=e.nsecs!==void 0?e.nsecs:ga+1;const u=s-pa+(c-ga)/1e4;if(u<0&&e.clockseq===void 0&&(o=o+1&16383),(u<0||s>pa)&&e.nsecs===void 0&&(c=0),c>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");pa=s,ga=c,da=o,s+=122192928e5;const l=((s&268435455)*1e4+c)%4294967296;i[n++]=l>>>24&255,i[n++]=l>>>16&255,i[n++]=l>>>8&255,i[n++]=l&255;const d=s/4294967296*1e4&268435455;i[n++]=d>>>8&255,i[n++]=d&255,i[n++]=d>>>24&15|16,i[n++]=d>>>16&255,i[n++]=o>>>8|128,i[n++]=o&255;for(let f=0;f<6;++f)i[n+f]=a[f];return t||Kh(i)}function Cr(e,t){return` M ${e} ${t}`}function Ce(e,t){return` L ${e} ${t}`}function Ct(e,t){return r=>(r-e.start)*t/(e.end-e.start)}function _s(e,t){return r=>e.max===e.min?0:(e.max-r)*t/(e.max-e.min)}function Xh(e,t){const r=e.end-e.start,n=t.end-t.start;return i=>(i-e.start)*n/r+t.start}function ks(e,t,r){return Ct(e||t.reduce((n,i)=>({start:i.start<n.start?i.start:n.start,end:i.end>n.end?i.end:n.end}),{start:1/0,end:-1/0}),r)}function nn(e,t,r,n=10){return r=r||0,e.reduce((i,a)=>{let o=!1;for(let s=0;s<i.length;++s)if(t(i[s][i[s].length-1].coordinates.end)+n+r*i[s][i[s].length-1].name.length<=t(a.coordinates.start)){i[s].push(a),o=!0;break}return o||i.push([a]),i},[])}function Jh(e){return e==null?"":""+(e<1e5?e===Math.floor(e)?e:e.toFixed(2):e.toExponential(2))}const Wt=({width:e,height:t,id:r})=>p.jsx("clipPath",{id:r,children:p.jsx("rect",{x:0,y:0,width:e,height:t})}),Kt=w.createContext({show:!1,x:0,y:0,width:0,height:0,content:void 0,setTooltip:()=>{}});var Ds=(e=>(e.ValuedPoint="valuedPoint",e.BigZoomData="bigZoomData",e.BigWigData="bigWigData",e))(Ds||{});function _r(e){return e[0].x!==void 0?"valuedPoint":e[0].minVal!==void 0?"bigZoomData":"bigWigData"}function va(e){return _r(e)==="bigWigData"?e.map(t=>({...t})):_r(e)==="bigZoomData"?e.map(t=>({...t})):_r(e)==="valuedPoint"?e.map(t=>({...t})):[]}const Ms=(e,t)=>{switch(_r(e)){case"bigWigData":return e.forEach(r=>{r.value<t.min&&(r.value=t.min),r.value>t.max&&(r.value=t.max)}),e;case"bigZoomData":return e.forEach(r=>{r.minVal<t.min&&(r.minVal=t.min),r.maxVal>t.max&&(r.maxVal=t.max)}),e;case"valuedPoint":return e.forEach(r=>{r.min<t.min&&(r.min=t.min),r.max>t.max&&(r.max=t.max)}),e;default:return[]}},ya=(e,t)=>({min:e.reduce((r,n)=>t(n)<r?t(n):r,1/0),max:e.reduce((r,n)=>t(n)>r?t(n):r,-1/0)}),ti=e=>{switch(_r(e)){case"bigWigData":return ya(e,t=>t.value);case"bigZoomData":return ya(e,t=>t.maxVal);case"valuedPoint":return ya(e,t=>t.max);default:return{min:0,max:0}}};function Ls(e){return e.value!==void 0}const Zh=e=>{const t={start:e[0].x,end:e[e.length-1].x},r=ks(t,e.map(i=>({start:i.x,end:i.x+1})),100),n=[];for(let i=0;i<=100;++i)n.push({x:i,max:-1/0,min:1/0});return e.reduce((i,a)=>{const o=Math.floor(r(a.x)),s=Math.floor(r(a.x));a.min<i.renderPoints[o].min&&(i.renderPoints[o].min=a.min),a.max>i.renderPoints[o].max&&(i.renderPoints[o].max=a.max);for(let c=o+1;c<=s;++c)i.renderPoints[c].min=a.min,i.renderPoints[c].max=a.max;return a.min<i.range.min&&(i.range.min=a.min),a.max>i.range.max&&(i.range.max=a.max),i},{renderPoints:n,range:{max:-1/0,min:1/0}})};function Is(e,t){if(!e)return{renderPoints:[],range:{max:1,min:0}};const r=e.reduce((s,c)=>({start:c.start<s.start?c.start:s.start,end:c.end>s.end?c.end:s.end}),{start:1/0,end:-1/0}),n=ks(r,e,t),i=[],a={start:Math.floor(n(e[0].start)),end:Math.floor(n(e[e.length-1].end))};for(let s=a.start;s<a.end;++s)i.push({x:s,max:-1/0,min:1/0});const o={renderPoints:i,range:{max:-1/0,min:1/0}};return e.forEach(s=>{const c=Math.floor(n(s.start)),u=Math.floor(n(s.end)),l=Ls(s)?s.value:s.minVal,d=Ls(s)?s.value:s.maxVal;l<o.renderPoints[c].min&&(o.renderPoints[c].min=l),d>o.renderPoints[c].max&&(o.renderPoints[c].max=d);for(let f=c+1;f<u;++f)o.renderPoints[f].min=l,o.renderPoints[f].max=d;l<o.range.min&&(o.range.min=l),d>o.range.max&&(o.range.max=d)}),o}function Dt({canDrag:e,children:t}){const r=w.useRef(null),n=w.useContext(Pt),[i,a]=w.useState(!1),{delta:o,setDelta:s}=w.useContext(ua),[c,u]=w.useState({x:0,y:0}),[l,d]=w.useState(null),[f,v]=w.useState(1);w.useEffect(()=>{const T=document.getElementById("browserSVG");if(d(T),T){const S=T,_=S.getBoundingClientRect();v(_.width/S.viewBox.baseVal.width)}},[]);const E=(T,S)=>{T.preventDefault(),a(!0);const _=S.deltaX;s(o+_)},x=()=>{Math.abs(o)<10||(u({x:o,y:0}),n({type:ue.SHIFT_DOMAIN,delta:o}),a(!1))};return w.useEffect(()=>{i||u({x:o,y:0})},[o]),p.jsx(Xn,{nodeRef:r,scale:f,position:c,axis:"x",onStart:e&&l?()=>{}:()=>!1,onDrag:(T,S)=>E(T,S),onStop:x,children:p.jsx("g",{ref:r,height:"100%",style:{cursor:e&&l?i?"grabbing":"grab":"default"},children:t})})}function kr(e,t){return` L ${e} ${t}`}const ed=e=>{const t=w.useContext(vr),r=w.useContext(Pt),[n,i]=w.useState(va(e.data)),[a,o]=w.useState();w.useEffect(()=>{const C=ti(n);C.min=C.min>0?0:C.min,r({type:ue.UPDATE_PROPS,id:e.id,props:{defaultRange:C}}),o(C)},[]),w.useEffect(()=>{const C=va(e.data),O=ti(C),P={min:O.min>0?0:O.min,max:O.max};i(Ms(C,P)),r({type:ue.UPDATE_PROPS,id:e.id,props:{range:P}}),r({type:ue.UPDATE_PROPS,id:e.id,props:{defaultRange:P}})},[e.data,a,e.domain]),w.useEffect(()=>{if(!e.range)return;const C=va(e.data);i(Ms(C,e.range))},[e.range]);const s=w.useContext(Kt),[c,u]=w.useState(),[l,d]=w.useState(null),f=w.useCallback(C=>{var U;if(t.delta!=0||!((U=e.svgRef)!=null&&U.current))return;const O=rr(e.svgRef.current,C);d([O[0],O[1]]);const P=Math.round(O[0]-150),A=x.renderPoints.find(V=>V.min<1/0&&V.max>-1/0&&V.x===P);if(!A)return;const j=O[0]>e.width-60?O[0]-60+5:O[0]+5;s.setTooltip({show:!0,x:j,y:O[1]-e.height/2,height:80,width:60,content:p.jsx("div",{style:{fontSize:"10px",backgroundColor:"#ffffff",boxShadow:"0 0 4px 0 rgba(0, 0, 0, 0.2)",padding:"5px",display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"center",gap:"5px"},children:p.jsxs("div",{style:{whiteSpace:"nowrap",minWidth:"50px"},children:["value: ",Number(Jh(A.max))]})})})},[e.svgRef,e.width,e.height,t.delta]);w.useEffect(()=>{u(l?l[0]:void 0)},[l]);const v=()=>{s.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0}),u(void 0)};w.useEffect(()=>{if(t.delta!=0){v();return}},[t.delta]);const E=w.useRef(Nt()),x=w.useMemo(()=>n&&n.length&&_r(n)===Ds.ValuedPoint?{renderPoints:n,range:e.range||ti(n)}:Is(n,e.width),[n,e.width,e.domain]),T=w.useMemo(()=>{const C=_s(x.range,e.height),O=x.renderPoints.filter(A=>A.min<1/0&&A.max>-1/0),P=A=>Math.max(0,Math.min(e.height,C(A)));return{maxPath:O.reduce((A,j,U,V)=>A+(j.x?kr(j.x,P(V[U-1]?V[U-1].max:0)):"")+kr(j.x,P(j.max)),"M 0 "+P(0)+" ")+kr(e.width,P(0)),minPath:O.reduce((A,j,U,V)=>A+(j.x?kr(j.x,P(V[U-1]?V[U-1].min:0)):"")+kr(j.x,P(j.min)),"M 0 "+P(0)+" ")+kr(e.width,P(0))}},[x,e.height,e.width]),S=e.color||"#000000",_=w.useMemo(()=>e.noTransparency?S:Zn(S,.5),[e]),m=e.id||E.current.toString();return w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),p.jsx(Dt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{className:e.className,width:e.width,height:e.height,clipPath:`url(#${m})`,children:[p.jsx("rect",{width:e.width,height:e.height,fill:"white",onMouseOut:v}),p.jsx("defs",{children:p.jsx(Wt,{id:m,width:e.width,height:e.height})}),p.jsx("path",{d:T.maxPath,fill:_,style:{cursor:"default",clipPath:`url(#${m})`}}),p.jsx("path",{d:T.minPath,fill:S,style:{cursor:"default",clipPath:`url(#${m})`}}),c!==void 0&&p.jsx("line",{stroke:"#ccc",x1:c-150,x2:c-150,y1:0,y2:e.height}),p.jsx("rect",{width:e.width,height:e.height,fill:"transparent",onMouseMove:C=>{f(C)},onMouseOut:()=>{v()}})]})})},td=e=>{const t=w.useRef(Nt()),r=w.useMemo(()=>e.data&&e.data.length&&e.data[0].x!==void 0?Zh(e.data):Is(e.data,100),[e.data,e.width,e.domain]);r.range||(r.range=ti(r.renderPoints));const n=w.useMemo(()=>{const i=_s(r.range,1),a=r.renderPoints.filter(s=>s.min<1/0&&s.max>-1/0),o=e.color||"#000000";return a.map(s=>Zn(o,i(s.max)))},[e.color,r]);return w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),p.jsx(Dt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{className:e.className,width:e.width,height:e.height,children:[p.jsx("defs",{children:p.jsx("linearGradient",{id:t.current,children:n.map((i,a)=>p.jsx("stop",{offset:`${a}%`,stopColor:i},`${t.current}_pt_${a}`))})}),p.jsx("rect",{width:e.width,height:e.height,fill:"white"}),p.jsx("rect",{width:e.width,height:e.height,fill:e.hoverColor||"transparent",fillOpacity:e.hoverColor?.2:0}),p.jsx("rect",{width:e.width,x:0,y:e.height/3,height:e.height/3,fill:`url('#${t.current}')`})]})})},Dr=e=>{w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]);const t=12,r=32,n=e.height,i=e.width;return p.jsxs("g",{className:e.className,width:e.width,height:e.height,transform:e.transform,children:[e.height!=0&&p.jsx("rect",{width:e.width,height:e.height,fill:"none",onClick:e.onClick}),e.error&&p.jsxs("g",{transform:`translate(${t+(i-r)/2},${(n-r)/2})`,children:[p.jsx(Yo,{width:r,height:r}),p.jsx("g",{transform:`translate(${r/2},${r+10})`,children:p.jsx("text",{textAnchor:"middle",fontSize:"12px",style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:e.text})})]}),!e.error&&e.text&&e.height!=0&&p.jsx("text",{textAnchor:"middle",x:Math.round(+e.width/2),y:Math.round(+e.height/2),style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:e.text})]})},Ps={trackType:G.BIGWIG,titleSize:12,trackMargin:12,displayMode:Re.FULL,canDrag:!0,noTransparency:!0,color:"#ff5555"};function Ns(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},r={...e,trackType:G.BIGWIG,displayMode:e.displayMode};switch(e.displayMode){case Re.FULL:return p.jsx(et,{...r,...t,trackType:G.BIGWIG,displayMode:e.displayMode,children:p.jsx(ed,{...e})});case Re.DENSE:return p.jsx(et,{...r,...t,trackType:G.BIGWIG,displayMode:e.displayMode,children:p.jsx(td,{...e})});case Re.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigWig`),p.jsx(et,{...r,children:p.jsx(Dr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function rd(e,t){const r=[];return e.forEach((n,i)=>(i===0||n.start>e[i-1].end||n.color!=e[i-1].color?r.push({start:t(n.start)<0?0:t(n.start),end:t(n.end)<0?0:t(n.end),color:n.color,name:n.name,score:n.score}):r[r.length-1].end=t(n.end),r)),r}function nd(e,t){return nn(e.sort((r,n)=>r.start-n.start).map(r=>({coordinates:{start:r.start,end:r.end},color:r.color,name:"",score:r.score,rectname:r.name})),t,0).map(r=>r.map(n=>({start:t(n.coordinates.start)<0?0:t(n.coordinates.start),end:t(n.coordinates.end),color:n.color,rectname:n.rectname,name:n.rectname,score:n.score})))}const id={fontSize:"12px",backgroundColor:"#ffffff",border:"1px solid",padding:"1em"},As=e=>p.jsxs("div",{style:id,children:[e.name?`name: ${e.name}`:"",p.jsx("br",{}),e.score!==void 0?`score: ${e.score}`:""]});function Fs(e,t,r,n,i){const a=w.useContext(Kt),o=w.useCallback((c,u)=>{if(!r||!r.current)return;const[l,d]=rr(r.current,c);a.setTooltip({show:!0,x:l>t-100?l-90:l+10,y:d+10,width:100,height:50,content:w.createElement(e,u)})},[e,t,r,a]),s=w.useCallback(()=>{a.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},[a]);return[o,s]}const ad=e=>{const[t,r]=Fs(e.tooltipContent||As,e.width,e.svgRef),n=w.useRef(Nt()),i=w.useCallback(Ct(e.domain,e.width),[e.data]),a=e.color||"#000000",o=e.id||n.current.toString(),s=w.useMemo(()=>rd(e.data||[],i),[e.width,e.data,e.domain]);return w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),p.jsx(Dt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{width:e.width,height:e.height,clipPath:`url(#${o})`,className:e.className,children:[p.jsx("rect",{width:e.width,height:e.height,fill:"white"}),p.jsx("defs",{children:p.jsx(Wt,{id:o,width:e.width,height:e.height})}),s.map((c,u)=>p.jsx("rect",{style:{cursor:e.onClick?"pointer":"default"},height:e.height*.6,width:c.end-c.start,x:c.start,y:e.height*.2,fill:c.color||a,onClick:()=>e.onClick&&e.onClick(c),onMouseOut:()=>{e.onMouseOut&&e.onMouseOut(),r()},onMouseOver:l=>{l.persist(),e.onMouseOver&&e.onMouseOver(c),t(l,c)}},`${o}_${u}`))]})})},od=e=>{const[t,r]=Fs(e.tooltipContent||As,e.width,e.svgRef),n=w.useRef(Nt()),i=w.useCallback(Ct(e.domain,e.width),[e.data]),a=w.useMemo(()=>{const c=e.data?[...e.data]:[];return nd(c,i)},[e.width,e.data,e.domain]),o=e.rowHeight*a.length,s=e.id||n.current.toString();return w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(o)},[a,e.rowHeight,e.onHeightChanged]),p.jsx(Dt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{width:e.width,height:o,clipPath:`url(#${s})`,children:[p.jsx("rect",{width:e.width,height:o,fill:"white"}),p.jsx("defs",{children:p.jsx(Wt,{id:s,width:e.width,height:o})}),a.map((c,u)=>p.jsx("g",{transform:`translate(0, ${u*e.rowHeight})`,children:c.map((l,d)=>p.jsx("rect",{style:{cursor:e.onClick?"pointer":"default"},height:e.rowHeight*.6,width:l.end-l.start<1?1:l.end-l.start,x:l.start,y:e.rowHeight*.2,fill:l.color,onClick:()=>e.onClick&&e.onClick(l),onMouseOut:()=>{e.onMouseOut&&e.onMouseOut(),r()},onMouseOver:f=>{f.persist(),e.onMouseOver&&e.onMouseOver(l),t(f,l)}},`${s}_${d}`))},`group_${u}`))]})})},Rs={trackType:G.BIGBED,displayMode:Re.SQUISH,rowHeight:10,titleSize:12,trackMargin:12,canDrag:!0};function js(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},r={...e,trackType:G.BIGBED,displayMode:e.displayMode};switch(e.displayMode){case Re.DENSE:return p.jsx(et,{...r,...t,trackType:G.BIGBED,displayMode:e.displayMode,children:p.jsx(ad,{...e})});case Re.SQUISH:return p.jsx(et,{...r,...t,trackType:G.BIGBED,displayMode:e.displayMode,children:p.jsx(od,{...e})});case Re.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigBed`),p.jsx(et,{...r,children:p.jsx(Dr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function sd(e,t){return e.coordinates.start===t.coordinates.start?e.coordinates.end-t.coordinates.end:e.coordinates.start-t.coordinates.start}function cd(e,t){return e.reduce((r,n)=>(n.transcripts.filter(i=>i.coordinates.start<t.end&&i.coordinates.end>t.start).forEach(i=>r.push({...i,strand:n.strand})),r),[]).sort((r,n)=>r.coordinates.start-n.coordinates.start)}function ud(e){if(e.length===0)return[];const t=[{coordinates:{...e[0].coordinates}}];return e.slice(1).forEach(r=>{r.coordinates.start<t[t.length-1].coordinates.end?t[t.length-1].coordinates.end=Math.max(t[t.length-1].coordinates.end,r.coordinates.end):t.push({coordinates:{...r.coordinates}})}),t}function ld(e,t){var s;const n=e.transcripts.reduce((c,u)=>[...c,...u.exons||[]],[]).sort(sd),i=n.length===0?[]:[{coordinates:{...n[0].coordinates},UTRs:n[0].UTRs&&[...n[0].UTRs]}],a=new Set(e.transcripts.map(c=>c.color));n.slice(1).forEach(c=>{c.coordinates.start<i[i.length-1].coordinates.end?(i[i.length-1].UTRs=[...i[i.length-1].UTRs||[],...c.UTRs||[]],i[i.length-1].coordinates.end=Math.max(c.coordinates.end,i[i.length-1].coordinates.end)):i.push({coordinates:{...c.coordinates},UTRs:c.UTRs&&[...c.UTRs]})}),i.forEach(c=>{c.UTRs=ud(c.UTRs||[])});let o=a.size===1?a.values().next().value:void 0;return t&&(o=(s=e.name)!=null&&s.includes(t)?"#ff5555":o),{name:e.name||"",strand:e.strand,id:e.id||"",coordinates:{start:Math.min(...n.map(c=>c.coordinates.start)),end:Math.max(...n.map(c=>c.coordinates.end))},exons:i,color:o}}function fd(e,t,r){var n;return{strand:e.strand,name:e.name,id:e.id,color:e.color,coordinates:{end:t(e.coordinates.end),start:t(e.coordinates.start)},exons:((n=e.exons)==null?void 0:n.filter(i=>i.coordinates.end>r.start&&i.coordinates.start<r.end).map(i=>{var a;return{coordinates:{start:t(i.coordinates.start),end:t(i.coordinates.end)},UTRs:((a=i.UTRs)==null?void 0:a.map(o=>({coordinates:{start:t(o.coordinates.start),end:t(o.coordinates.end)}})))||[]}}))||[]}}function hd(e,t,r,n,i,a){let o="";if(e=e<0?0:e,t=t>a?a:t,r==="+")for(let s=e+10;s<t-10;s+=20)o+=Cr(s-i,n-i)+Ce(s,n)+Ce(s-i,n+i)+Ce(s,n)+Ce(s-i,n-i);else if(r==="-")for(let s=e+10;s<t-10;s+=20)o+=Cr(s+i,n-i)+Ce(s,n)+Ce(s+i,n+i)+Ce(s,n)+Ce(s+i,n-i);return o+" M "+e+" "+n+" L "+t+" "+n}function dd(e,t,r,n){var d,f;if(e.coordinates.start>n||e.coordinates.end<0)return"";const i=((d=e.UTRs)==null?void 0:d.filter(v=>v.coordinates.start===e.coordinates.start))||[],a=((f=e.UTRs)==null?void 0:f.filter(v=>v.coordinates.end===e.coordinates.end))||[],o=t-r*.2,s=t+r*.2,c=t-r*.3,u=t+r*.3;if(!i[0]&&!a[0])return Cr(e.coordinates.start,c)+Ce(e.coordinates.end,c)+Ce(e.coordinates.end,u)+Ce(e.coordinates.start,u)+Ce(e.coordinates.start,c);if(i[0]&&i[0].coordinates.end===e.coordinates.end)return Cr(i[0].coordinates.start,o)+Ce(i[0].coordinates.end,o)+Ce(i[0].coordinates.end,s)+Ce(i[0].coordinates.start,s)+Ce(i[0].coordinates.start,o);let l=i[0]?Cr(i[0].coordinates.start,o)+Ce(i[0].coordinates.end,o)+Ce(i[0].coordinates.end,c):Cr(e.coordinates.start,c);return l+=a[0]?Ce(a[0].coordinates.start,c)+Ce(a[0].coordinates.start,o)+Ce(a[0].coordinates.end,o)+Ce(a[0].coordinates.end,s)+Ce(a[0].coordinates.start,s)+Ce(a[0].coordinates.start,u):Ce(e.coordinates.end,c)+Ce(e.coordinates.end,u),l+(i[0]?Ce(i[0].coordinates.end,u)+Ce(i[0].coordinates.end,s)+Ce(i[0].coordinates.start,s)+Ce(i[0].coordinates.start,o):Ce(e.coordinates.start,u)+Ce(e.coordinates.start,c))}function Vs(e,t,r,n,i){var s;const a=fd(e,t,r),o={exons:((s=a.exons)==null?void 0:s.reduce((c,u)=>c+dd(u,n/2,n,i),""))||"",introns:hd(a.coordinates.start,a.coordinates.end,a.strand,n/2,n*.19,i)};return{transcript:a,paths:o}}const pd=e=>{const t=w.useContext(Kt),r=(l,d)=>{if(e.svgRef){const f=rr(e.svgRef.current,l);t.setTooltip({show:!0,x:f[0]>e.width-150?f[0]-150+5:f[0]+5,y:f[1],width:150,height:50,content:p.jsx("span",{style:{fontSize:"10px"},children:d.id})})}},n=()=>{t.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},i=w.useRef(Nt()),a=w.useCallback(Ct(e.domain,e.width),[e.data]),o=e.color||"#000000",s=fa(e.rowHeight)*1.25,c=w.useMemo(()=>nn(cd(e.data||[],e.domain),a,s).map((l,d)=>({y:d*e.rowHeight,transcripts:l.map(f=>Vs(f,a,e.domain,e.rowHeight,e.width))})),[e.data,e.rowHeight,e.width,e.domain]),u=w.useMemo(()=>Math.max(e.rowHeight*c.length,35),[e.rowHeight,c.length]);return console.log(u),w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(u)},[u]),p.jsx(Dt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{children:[p.jsx("rect",{width:e.width,height:u,fill:"white"}),p.jsx("defs",{children:p.jsx(Wt,{id:i.current,width:e.width,height:c.length*e.rowHeight})}),c.map((l,d)=>p.jsx("g",{style:{clipPath:`url(#${i.current})`},transform:`translate(0,${l.y})`,height:e.rowHeight,width:e.width,children:l.transcripts.map((f,v)=>p.jsxs(w.Fragment,{children:[p.jsx("path",{stroke:f.transcript.color||o,fill:f.transcript.color||o,strokeWidth:e.rowHeight/16,d:f.paths.introns+f.paths.exons,style:{cursor:e.onTranscriptClick?"pointer":"default"},onMouseOver:E=>r(E,f.transcript),onMouseOut:n,onClick:()=>e.onTranscriptClick&&e.onTranscriptClick(f.transcript)}),p.jsx("text",{fill:f.transcript.color||o,fontSize:s,x:f.transcript.coordinates.end+5,y:e.rowHeight/2,dominantBaseline:"middle",style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:f.transcript.name})]},`transcript_${v}`))},`row_${d}`))]})})},gd=e=>{const t=w.useContext(Kt),r=(l,d)=>{if(e.svgRef){const f=rr(e.svgRef.current,l);t.setTooltip({show:!0,x:f[0]>e.width-150?f[0]-150+5:f[0]+5,y:f[1],width:150,height:50,content:p.jsx("span",{style:{fontSize:"10px"},children:d.id})})}},n=()=>{t.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},i=w.useRef(Nt()),a=w.useCallback(Ct(e.domain,e.width),[e.data]),o=e.color||"#000000",s=fa(e.rowHeight)*1.25,c=w.useMemo(()=>{var l;return nn(((l=e.data)==null?void 0:l.map(d=>ld(d,e.geneName)))||[],a,s).map((d,f)=>({y:f*e.rowHeight,transcripts:d.map(v=>Vs(v,a,e.domain,e.rowHeight,e.width))}))},[e.data,e.rowHeight,e.width,e.domain]),u=w.useMemo(()=>Math.max(e.rowHeight*c.length,35),[e.rowHeight,c.length]);return w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(u)},[u]),p.jsx(Dt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{children:[p.jsx("rect",{width:e.width,height:u,fill:"white"}),p.jsx("defs",{children:p.jsx(Wt,{id:i.current,width:e.width,height:c.length*e.rowHeight})}),c.map((l,d)=>p.jsx("g",{style:{clipPath:`url(#${i.current})`},transform:`translate(0,${l.y})`,height:e.rowHeight,width:e.width,children:l.transcripts.map((f,v)=>p.jsxs(w.Fragment,{children:[p.jsx("path",{stroke:f.transcript.color||o,fill:f.transcript.color||o,strokeWidth:e.rowHeight/16,d:f.paths.introns+f.paths.exons,style:{cursor:e.onTranscriptClick?"pointer":"default"},onMouseOver:E=>r(E,f.transcript),onMouseOut:n,onClick:()=>e.onTranscriptClick&&e.onTranscriptClick(f.transcript)}),p.jsx("text",{fill:f.transcript.color||o,fontSize:s,x:f.transcript.coordinates.end+5,y:e.rowHeight/2,dominantBaseline:"middle",style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:f.transcript.name})]},`transcript_${v}`))},`row_${d}`))]})})},qs={trackType:G.TRANSCRIPT,displayMode:Re.SQUISH,rowHeight:14,titleSize:12,trackMargin:12,canDrag:!0};function $s(e){const[t,r]=w.useState(!e.data),[n,i]=w.useState(e.data),a={...e,trackType:G.TRANSCRIPT,displayMode:e.displayMode};switch(w.useEffect(()=>{e.data?(i(e.data),r(!1)):r(!0)},[e.data]),w.useEffect(()=>{e.refetch&&e.refetch({variables:{assembly:e.assembly,chromosome:e.domain.chromosome,start:e.domain.start,end:e.domain.end,version:e.version}}).then(({data:o,loading:s,error:c})=>{i(o.gene),r(s)})},[e.version]),e.displayMode){case Re.PACK:return p.jsx(et,{...a,loading:t,trackType:G.TRANSCRIPT,displayMode:e.displayMode,children:p.jsx(pd,{...e,data:n})});case Re.SQUISH:return p.jsx(et,{...a,loading:t,trackType:G.TRANSCRIPT,displayMode:e.displayMode,children:p.jsx(gd,{...e,data:n})});case Re.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigWig`),p.jsx(et,{...a,children:p.jsx(Dr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function vd(e,t){const r=[];return e.sort((n,i)=>n.start-i.start).forEach((n,i)=>(i===0||n.start>e[i-1].end||n.color!=e[i-1].color?r.push({start:t(n.start)<0?0:t(n.start),end:t(n.end),color:n.color,cigarOps:n.cigarOps,strand:n.strand,seq:n.seq}):r[r.length-1].end=t(n.end),r)),r}function yd(e,t,r){return nn(e.sort((n,i)=>n.start-i.start).map(n=>({coordinates:{start:n.start,end:n.end},color:n.color,name:"",cigarOps:n.cigarOps,strand:n.strand,seq:n.seq})),t,0).map(n=>n.map(i=>{var a;return{start:t(i.coordinates.start)<0?0:t(i.coordinates.start),end:t(i.coordinates.end),color:i.color,cigarOps:i.cigarOps.map(o=>({opStart:t(o.opStart)<0?0:t(o.opStart),opEnd:t(o.opEnd),op:o.op})),strand:i.strand,seq:t(i.coordinates.start)<0?(a=i.seq)==null?void 0:a.slice(r.start-i.coordinates.start,i.seq.length):i.seq}}))}const md=e=>{const t=w.useRef(Nt()),r=Ct(e.domain,e.width),n=e.color||"#000000",i=w.useMemo(()=>yd(e.data,r,e.domain),[e.data,e.domain,e.width]),a=e.rowHeight*i.length,o=e.id||t.current.toString();return w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(a)},[i,e.rowHeight,e.onHeightChanged]),p.jsxs("g",{width:e.width,height:a,transform:e.transform,clipPath:`url(#${o})`,children:[p.jsx("defs",{children:p.jsx(Wt,{id:o,width:e.width,height:a})}),i.map((s,c)=>p.jsx("g",{transform:`translate(0, ${c*e.rowHeight})`,children:s.map((u,l)=>{const d=u.cigarOps.map((f,v)=>{let E;return f.op==="S"?E=p.jsx("rect",{height:e.rowHeight*.6,width:f.opEnd-f.opStart<1?1:f.opEnd-f.opStart,x:f.opStart,y:e.rowHeight*.2,style:{fill:"none",strokeDasharray:"2,2",stroke:"black",strokeWidth:.5}},`${l}_${v}`):f.op==="I"?E=p.jsx("rect",{height:e.rowHeight*.6,width:f.opEnd-f.opStart<1?1:f.opEnd-f.opStart,x:f.opStart,y:e.rowHeight*.2,fill:"#ff69b4",children:p.jsx("title",{children:"Insertion"})},`${l}_${v}`):f.op==="D"||f.op==="N"?E=p.jsx("line",{y2:e.rowHeight*.2+e.rowHeight*.6/2,x2:f.opEnd,x1:f.opStart,y1:e.rowHeight*.2+e.rowHeight*.6/2,stroke:"red"},`${l}_${v}`):E=p.jsx("rect",{height:e.rowHeight*.6,width:f.opEnd-f.opStart<1?1:f.opEnd-f.opStart,x:f.opStart,y:e.rowHeight*.2,fill:u.strand!==void 0?u.strand?"#F7F71A":"#53F71A":u.color||n},`${l}_${v}`),E});return p.jsxs("g",{children:[d,e.domain.end-e.domain.start<=200&&u.seq&&p.jsx("text",{fontSize:8,x:u.start,y:e.rowHeight*.2+e.rowHeight*.5,fill:"black",textLength:u.end-u.start,style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:u.seq})]},e.id+"_"+l)})},`group_${c}`))]})},bd=e=>{const t=w.useRef(Nt()),r=Ct(e.domain,e.width),n=e.color||"#000000",i=e.id||t.current.toString(),a=w.useMemo(()=>vd(e.data,r),[e.domain,e.width,e.data]);return w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),p.jsxs("g",{width:e.width,height:e.height,transform:e.transform,clipPath:`url(#${i})`,children:[p.jsx("defs",{children:p.jsx(Wt,{id:i,width:e.width,height:e.height})}),a.map((o,s)=>p.jsx("rect",{height:e.height*.6,width:o.end-o.start,x:o.start,y:e.height*.2,fill:o.strand!==void 0?o.strand?"#F7F71A":"#53F71A":o.color||n},`${i}_${s}`))]})},Ed={displayMode:Re.DENSE,rowHeight:10};function wd(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},r={...e,trackType:G.BIGBED,displayMode:e.displayMode};switch(e.displayMode){case Re.DENSE:return p.jsx(et,{...r,...t,trackType:G.BAM,displayMode:e.displayMode,children:p.jsx(bd,{...e})});case Re.SQUISH:return p.jsx(et,{...r,...t,trackType:G.BAM,displayMode:e.displayMode,children:p.jsx(md,{...e})});case Re.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigBed`),p.jsx(et,{...r,children:p.jsx(Dr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function xd(e,t){return r=>t.start+(t.end-t.start)*((r-e.start)/(e.end-e.start))}function Od(e,t){const r=e.map(t),n=Math.min(...r),i=Math.max(...r);return{start:n>0?0:n,end:i<0?0:i}}function Sd(e){return t=>{const r=e((t<0,t)),n=e((t<0,0)),i=Math.abs(n-r)/100;return[r*(t<0?-1:1),i,t<0?"scale(1,-1)":""]}}function Td(e,t){const r=w.useMemo(()=>Md(e)?e.importance.map((o,s)=>({base:e.sequence.charAt(s),importance:o})):e,[e]),n=w.useMemo(()=>Od(r,o=>o.importance),[r]),i=xd(n,{start:t,end:0}),a=w.useCallback(Sd(i),[n,t]);return[r,a,i]}function Cd(e,t,r){return w.useMemo(()=>e.map(n=>{const i=t.slice(n.coordinates[0],n.coordinates[1]+1).map(s=>s.importance),a=[Math.min(...i),Math.max(...i)],o=r(a[1]);return{...n,y:o,height:r(a[0])-o}}),[e,r])}var Us={exports:{}};(function(e,t){(function(r,n){e.exports=n()})(Rf,function(){return function(r){var n={};function i(a){if(n[a])return n[a].exports;var o=n[a]={i:a,l:!1,exports:{}};return r[a].call(o.exports,o,o.exports,i),o.l=!0,o.exports}return i.m=r,i.c=n,i.d=function(a,o,s){i.o(a,o)||Object.defineProperty(a,o,{enumerable:!0,get:s})},i.r=function(a){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},i.t=function(a,o){if(1&o&&(a=i(a)),8&o||4&o&&typeof a=="object"&&a&&a.__esModule)return a;var s=Object.create(null);if(i.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:a}),2&o&&typeof a!="string")for(var c in a)i.d(s,c,(function(u){return a[u]}).bind(null,c));return s},i.n=function(a){var o=a&&a.__esModule?function(){return a.default}:function(){return a};return i.d(o,"a",o),o},i.o=function(a,o){return Object.prototype.hasOwnProperty.call(a,o)},i.p="/",i(i.s=5)}([function(r,n,i){r.exports=i(3)},function(r,n,i){r.exports=i(4)},function(r,n,i){/*
51
+ `,e.getElementsByTagName("head")[0].appendChild(t)),e.body&&ys(e.body,"react-draggable-transparent-selection")}function gh(e){if(e)try{if(e.body&&ms(e.body,"react-draggable-transparent-selection"),e.selection)e.selection.empty();else{const t=(e.defaultView||window).getSelection();t&&t.type!=="Caret"&&t.removeAllRanges()}}catch{}}function ys(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)")))||(e.className+=" ".concat(t))}function ms(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)"),"g"),"")}var zt={};Object.defineProperty(zt,"__esModule",{value:!0}),zt.canDragX=mh,zt.canDragY=bh,zt.createCoreData=wh,zt.createDraggableData=xh,zt.getBoundPosition=vh,zt.getControlPosition=Eh,zt.snapToGrid=yh;var Tt=Bt,Tr=Be;function vh(e,t,r){if(!e.props.bounds)return[t,r];let{bounds:n}=e.props;n=typeof n=="string"?n:Oh(n);const i=ia(e);if(typeof n=="string"){const{ownerDocument:a}=i,o=a.defaultView;let s;if(n==="parent"?s=i.parentNode:s=a.querySelector(n),!(s instanceof o.HTMLElement))throw new Error('Bounds selector "'+n+'" could not find an element.');const c=s,u=o.getComputedStyle(i),l=o.getComputedStyle(c);n={left:-i.offsetLeft+(0,Tt.int)(l.paddingLeft)+(0,Tt.int)(u.marginLeft),top:-i.offsetTop+(0,Tt.int)(l.paddingTop)+(0,Tt.int)(u.marginTop),right:(0,Tr.innerWidth)(c)-(0,Tr.outerWidth)(i)-i.offsetLeft+(0,Tt.int)(l.paddingRight)-(0,Tt.int)(u.marginRight),bottom:(0,Tr.innerHeight)(c)-(0,Tr.outerHeight)(i)-i.offsetTop+(0,Tt.int)(l.paddingBottom)-(0,Tt.int)(u.marginBottom)}}return(0,Tt.isNum)(n.right)&&(t=Math.min(t,n.right)),(0,Tt.isNum)(n.bottom)&&(r=Math.min(r,n.bottom)),(0,Tt.isNum)(n.left)&&(t=Math.max(t,n.left)),(0,Tt.isNum)(n.top)&&(r=Math.max(r,n.top)),[t,r]}function yh(e,t,r){const n=Math.round(t/e[0])*e[0],i=Math.round(r/e[1])*e[1];return[n,i]}function mh(e){return e.props.axis==="both"||e.props.axis==="x"}function bh(e){return e.props.axis==="both"||e.props.axis==="y"}function Eh(e,t,r){const n=typeof t=="number"?(0,Tr.getTouch)(e,t):null;if(typeof t=="number"&&!n)return null;const i=ia(r),a=r.props.offsetParent||i.offsetParent||i.ownerDocument.body;return(0,Tr.offsetXYFromParent)(n||e,a,r.props.scale)}function wh(e,t,r){const n=!(0,Tt.isNum)(e.lastX),i=ia(e);return n?{node:i,deltaX:0,deltaY:0,lastX:t,lastY:r,x:t,y:r}:{node:i,deltaX:t-e.lastX,deltaY:r-e.lastY,lastX:e.lastX,lastY:e.lastY,x:t,y:r}}function xh(e,t){const r=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/r,y:e.state.y+t.deltaY/r,deltaX:t.deltaX/r,deltaY:t.deltaY/r,lastX:e.state.x,lastY:e.state.y}}function Oh(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}function ia(e){const t=e.findDOMNode();if(!t)throw new Error("<DraggableCore>: Unmounted during event!");return t}var Gn={},Yn={};Object.defineProperty(Yn,"__esModule",{value:!0}),Yn.default=Sh;function Sh(){}Object.defineProperty(Gn,"__esModule",{value:!0}),Gn.default=void 0;var aa=Ch(w),bt=sa(us),Th=sa(tn),pt=Be,er=zt,oa=Bt,rn=sa(Yn);function sa(e){return e&&e.__esModule?e:{default:e}}function bs(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,r=new WeakMap;return(bs=function(n){return n?r:t})(e)}function Ch(e,t){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var r=bs(t);if(r&&r.has(e))return r.get(e);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(a!=="default"&&Object.prototype.hasOwnProperty.call(e,a)){var o=i?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(n,a,o):n[a]=e[a]}return n.default=e,r&&r.set(e,n),n}function vt(e,t,r){return t=_h(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _h(e){var t=kh(e,"string");return typeof t=="symbol"?t:String(t)}function kh(e,t){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}const It={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let tr=It.mouse,Kn=class extends aa.Component{constructor(){super(...arguments),vt(this,"dragging",!1),vt(this,"lastX",NaN),vt(this,"lastY",NaN),vt(this,"touchIdentifier",null),vt(this,"mounted",!1),vt(this,"handleDragStart",t=>{if(this.props.onMouseDown(t),!this.props.allowAnyClick&&typeof t.button=="number"&&t.button!==0)return!1;const r=this.findDOMNode();if(!r||!r.ownerDocument||!r.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:n}=r;if(this.props.disabled||!(t.target instanceof n.defaultView.Node)||this.props.handle&&!(0,pt.matchesSelectorAndParentsTo)(t.target,this.props.handle,r)||this.props.cancel&&(0,pt.matchesSelectorAndParentsTo)(t.target,this.props.cancel,r))return;t.type==="touchstart"&&t.preventDefault();const i=(0,pt.getTouchIdentifier)(t);this.touchIdentifier=i;const a=(0,er.getControlPosition)(t,i,this);if(a==null)return;const{x:o,y:s}=a,c=(0,er.createCoreData)(this,o,s);(0,rn.default)("DraggableCore: handleDragStart: %j",c),(0,rn.default)("calling",this.props.onStart),!(this.props.onStart(t,c)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,pt.addUserSelectStyles)(n),this.dragging=!0,this.lastX=o,this.lastY=s,(0,pt.addEvent)(n,tr.move,this.handleDrag),(0,pt.addEvent)(n,tr.stop,this.handleDragStop))}),vt(this,"handleDrag",t=>{const r=(0,er.getControlPosition)(t,this.touchIdentifier,this);if(r==null)return;let{x:n,y:i}=r;if(Array.isArray(this.props.grid)){let s=n-this.lastX,c=i-this.lastY;if([s,c]=(0,er.snapToGrid)(this.props.grid,s,c),!s&&!c)return;n=this.lastX+s,i=this.lastY+c}const a=(0,er.createCoreData)(this,n,i);if((0,rn.default)("DraggableCore: handleDrag: %j",a),this.props.onDrag(t,a)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{const c=document.createEvent("MouseEvents");c.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(c)}return}this.lastX=n,this.lastY=i}),vt(this,"handleDragStop",t=>{if(!this.dragging)return;const r=(0,er.getControlPosition)(t,this.touchIdentifier,this);if(r==null)return;let{x:n,y:i}=r;if(Array.isArray(this.props.grid)){let c=n-this.lastX||0,u=i-this.lastY||0;[c,u]=(0,er.snapToGrid)(this.props.grid,c,u),n=this.lastX+c,i=this.lastY+u}const a=(0,er.createCoreData)(this,n,i);if(this.props.onStop(t,a)===!1||this.mounted===!1)return!1;const s=this.findDOMNode();s&&this.props.enableUserSelectHack&&(0,pt.removeUserSelectStyles)(s.ownerDocument),(0,rn.default)("DraggableCore: handleDragStop: %j",a),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,s&&((0,rn.default)("DraggableCore: Removing handlers"),(0,pt.removeEvent)(s.ownerDocument,tr.move,this.handleDrag),(0,pt.removeEvent)(s.ownerDocument,tr.stop,this.handleDragStop))}),vt(this,"onMouseDown",t=>(tr=It.mouse,this.handleDragStart(t))),vt(this,"onMouseUp",t=>(tr=It.mouse,this.handleDragStop(t))),vt(this,"onTouchStart",t=>(tr=It.touch,this.handleDragStart(t))),vt(this,"onTouchEnd",t=>(tr=It.touch,this.handleDragStop(t)))}componentDidMount(){this.mounted=!0;const t=this.findDOMNode();t&&(0,pt.addEvent)(t,It.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const t=this.findDOMNode();if(t){const{ownerDocument:r}=t;(0,pt.removeEvent)(r,It.mouse.move,this.handleDrag),(0,pt.removeEvent)(r,It.touch.move,this.handleDrag),(0,pt.removeEvent)(r,It.mouse.stop,this.handleDragStop),(0,pt.removeEvent)(r,It.touch.stop,this.handleDragStop),(0,pt.removeEvent)(t,It.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,pt.removeUserSelectStyles)(r)}}findDOMNode(){var t,r;return(t=this.props)!==null&&t!==void 0&&t.nodeRef?(r=this.props)===null||r===void 0||(r=r.nodeRef)===null||r===void 0?void 0:r.current:Th.default.findDOMNode(this)}render(){return aa.cloneElement(aa.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};Gn.default=Kn,vt(Kn,"displayName","DraggableCore"),vt(Kn,"propTypes",{allowAnyClick:bt.default.bool,children:bt.default.node.isRequired,disabled:bt.default.bool,enableUserSelectHack:bt.default.bool,offsetParent:function(e,t){if(e[t]&&e[t].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:bt.default.arrayOf(bt.default.number),handle:bt.default.string,cancel:bt.default.string,nodeRef:bt.default.object,onStart:bt.default.func,onDrag:bt.default.func,onStop:bt.default.func,onMouseDown:bt.default.func,scale:bt.default.number,className:oa.dontSetMe,style:oa.dontSetMe,transform:oa.dontSetMe}),vt(Kn,"defaultProps",{allowAnyClick:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1}),function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DraggableCore",{enumerable:!0,get:function(){return c.default}}),e.default=void 0;var t=f(w),r=l(us),n=l(tn),i=l(Hf),a=Be,o=zt,s=Bt,c=l(Gn),u=l(Yn);function l(_){return _&&_.__esModule?_:{default:_}}function d(_){if(typeof WeakMap!="function")return null;var m=new WeakMap,C=new WeakMap;return(d=function(O){return O?C:m})(_)}function f(_,m){if(_&&_.__esModule)return _;if(_===null||typeof _!="object"&&typeof _!="function")return{default:_};var C=d(m);if(C&&C.has(_))return C.get(_);var O={},P=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var A in _)if(A!=="default"&&Object.prototype.hasOwnProperty.call(_,A)){var j=P?Object.getOwnPropertyDescriptor(_,A):null;j&&(j.get||j.set)?Object.defineProperty(O,A,j):O[A]=_[A]}return O.default=_,C&&C.set(_,O),O}function v(){return v=Object.assign?Object.assign.bind():function(_){for(var m=1;m<arguments.length;m++){var C=arguments[m];for(var O in C)Object.prototype.hasOwnProperty.call(C,O)&&(_[O]=C[O])}return _},v.apply(this,arguments)}function E(_,m,C){return m=x(m),m in _?Object.defineProperty(_,m,{value:C,enumerable:!0,configurable:!0,writable:!0}):_[m]=C,_}function x(_){var m=T(_,"string");return typeof m=="symbol"?m:String(m)}function T(_,m){if(typeof _!="object"||_===null)return _;var C=_[Symbol.toPrimitive];if(C!==void 0){var O=C.call(_,m||"default");if(typeof O!="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(m==="string"?String:Number)(_)}class S extends t.Component{static getDerivedStateFromProps(m,C){let{position:O}=m,{prevPropsPosition:P}=C;return O&&(!P||O.x!==P.x||O.y!==P.y)?((0,u.default)("Draggable: getDerivedStateFromProps %j",{position:O,prevPropsPosition:P}),{x:O.x,y:O.y,prevPropsPosition:{...O}}):null}constructor(m){super(m),E(this,"onDragStart",(C,O)=>{if((0,u.default)("Draggable: onDragStart: %j",O),this.props.onStart(C,(0,o.createDraggableData)(this,O))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),E(this,"onDrag",(C,O)=>{if(!this.state.dragging)return!1;(0,u.default)("Draggable: onDrag: %j",O);const P=(0,o.createDraggableData)(this,O),A={x:P.x,y:P.y,slackX:0,slackY:0};if(this.props.bounds){const{x:U,y:V}=A;A.x+=this.state.slackX,A.y+=this.state.slackY;const[me,Le]=(0,o.getBoundPosition)(this,A.x,A.y);A.x=me,A.y=Le,A.slackX=this.state.slackX+(U-A.x),A.slackY=this.state.slackY+(V-A.y),P.x=A.x,P.y=A.y,P.deltaX=A.x-this.state.x,P.deltaY=A.y-this.state.y}if(this.props.onDrag(C,P)===!1)return!1;this.setState(A)}),E(this,"onDragStop",(C,O)=>{if(!this.state.dragging||this.props.onStop(C,(0,o.createDraggableData)(this,O))===!1)return!1;(0,u.default)("Draggable: onDragStop: %j",O);const A={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:U,y:V}=this.props.position;A.x=U,A.y=V}this.setState(A)}),this.state={dragging:!1,dragged:!1,x:m.position?m.position.x:m.defaultPosition.x,y:m.position?m.position.y:m.defaultPosition.y,prevPropsPosition:{...m.position},slackX:0,slackY:0,isElementSVG:!1},m.position&&!(m.onDrag||m.onStop)&&console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}componentDidMount(){typeof window.SVGElement<"u"&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.setState({dragging:!1})}findDOMNode(){var m,C;return(m=(C=this.props)===null||C===void 0||(C=C.nodeRef)===null||C===void 0?void 0:C.current)!==null&&m!==void 0?m:n.default.findDOMNode(this)}render(){const{axis:m,bounds:C,children:O,defaultPosition:P,defaultClassName:A,defaultClassNameDragging:j,defaultClassNameDragged:U,position:V,positionOffset:me,scale:Le,...ye}=this.props;let Oe={},Ve=null;const K=!!!V||this.state.dragging,$=V||P,Z={x:(0,o.canDragX)(this)&&K?this.state.x:$.x,y:(0,o.canDragY)(this)&&K?this.state.y:$.y};this.state.isElementSVG?Ve=(0,a.createSVGTransform)(Z,me):Oe=(0,a.createCSSTransform)(Z,me);const N=(0,i.default)(O.props.className||"",A,{[j]:this.state.dragging,[U]:this.state.dragged});return t.createElement(c.default,v({},ye,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(O),{className:N,style:{...O.props.style,...Oe},transform:Ve}))}}e.default=S,E(S,"displayName","Draggable"),E(S,"propTypes",{...c.default.propTypes,axis:r.default.oneOf(["both","x","y","none"]),bounds:r.default.oneOfType([r.default.shape({left:r.default.number,right:r.default.number,top:r.default.number,bottom:r.default.number}),r.default.string,r.default.oneOf([!1])]),defaultClassName:r.default.string,defaultClassNameDragging:r.default.string,defaultClassNameDragged:r.default.string,defaultPosition:r.default.shape({x:r.default.number,y:r.default.number}),positionOffset:r.default.shape({x:r.default.oneOfType([r.default.number,r.default.string]),y:r.default.oneOfType([r.default.number,r.default.string])}),position:r.default.shape({x:r.default.number,y:r.default.number}),className:s.dontSetMe,style:s.dontSetMe,transform:s.dontSetMe}),E(S,"defaultProps",{...c.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})}(Xo);const{default:Es,DraggableCore:Dh}=Xo;Wn.exports=Es,Wn.exports.default=Es,Wn.exports.DraggableCore=Dh;var Mh=Wn.exports;const Xn=Ko(Mh);var Re=(e=>(e.FULL="full",e.DENSE="dense",e.SQUISH="squish",e.PACK="pack",e.HIDE="hide",e.DOWNLOAD="download",e))(Re||{}),G=(e=>(e.UNDEFINED="undefined",e.RULER="ruler",e.BIGWIG="bigwig",e.BIGBED="bigbed",e.IMPORTANCE="importance",e.TRANSCRIPT="transcript",e.BAM="bam",e.MOTIF="motif",e.LDTRACK="ldtrack",e))(G||{});function Lh(e){return null}function Ih(e){return null}var Jn=(e=>(e[e.V29=29]="V29",e[e.V40=40]="V40",e[e.V47=47]="V47",e))(Jn||{}),ca=(e=>(e[e.V21=21]="V21",e[e.V25=25]="V25",e[e.V36=36]="V36",e))(ca||{});function Ph(e){return null}const vr=w.createContext({}),Pt=w.createContext(()=>{});var ue=(e=>(e.SET_DOMAIN="setDomain",e.SHIFT_DOMAIN="shiftDomain",e.ZOOM_DOMAIN="zoomDomain",e.SLIDE_DOMAIN="slideDomain",e.SET_DELTA="setDelta",e.ADD_TRACK="addTrack",e.UPDATE_TRACK="updateTrack",e.SET_TRACK_HEIGHT="setTrackHeight",e.SET_TRACK_DATA="setTrackData",e.SET_LOADING="setLoading",e.SWAP_TRACKS="swapTracks",e.RELOAD_TRACKS="reloadTracks",e.SHIFT_TRACK="shiftTrack",e.REMOVE_TRANSLATION="removeTranslation",e.INSERT_TRACK="insertTrack",e.DELETE_TRACK="deleteTrack",e.TRANSLATE_TRACK="translateTrack",e.SET_RANGE="setRange",e.UPDATE_PROPS="updateProps",e.BRING_TO_TOP="bringToTop",e.SET_HOVER="setHover",e.ADD_HIGHLIGHT="addHighlight",e.REMOVE_LAST_HIGHLIGHT="removeLastHighlight",e.REMOVE_HIGHLIGHT="removeHighlight",e))(ue||{});function Nh(e,t){switch(t.type){case"setDomain":const r=t.domain,n=Math.floor((r.end-r.start)/e.preRenderedWidth);return{...e,domain:t.domain,zoomLevel:n};case"addTrack":return e.tracks.find(m=>m.id===t.track.id)?e:{...e,tracks:[...e.tracks,t.track]};case"updateTrack":const a=e.tracks.find(m=>m.id===t.id);if(a){const m={...a,...t.track};return{...e,tracks:e.tracks.map(C=>C.id===t.id?m:C)}}return e;case"setTrackHeight":return{...e,tracks:e.tracks.map(m=>m.id===t.id?{...m,actualHeight:t.height}:m)};case"setTrackData":return{...e,tracks:e.tracks.map(m=>m.id===t.id?{...m,data:t.data}:m)};case"shiftDomain":const o=Math.floor(t.delta/e.preRenderedWidth*(e.domain.end-e.domain.start));return{...e,domain:{...e.domain,start:e.domain.start-o,end:e.domain.end-o}};case"setLoading":return{...e,tracks:e.tracks.map(m=>({...m,data:void 0,...m.trackType===G.MOTIF?{peaks:void 0}:{}}))};case"shiftTrack":const s=e.tracks.findIndex(m=>m.id===t.id1);if(s===-1)return e;const c=e.tracks.findIndex(m=>m.id===t.id2);if(c<0||c>=e.tracks.length)return e;const u=[...e.tracks],[l]=u.splice(s,1);return u.splice(c,0,l),{...e,tracks:u};case"swapTracks":const d=e.tracks.findIndex(m=>m.id===t.id1);if(d===-1)return e;const f=e.tracks.findIndex(m=>m.id===t.id2);if(f<0||f>=e.tracks.length)return e;const v=[...e.tracks];return[v[d],v[f]]=[v[f],v[d]],{...e,tracks:v};case"translateTrack":const E=e.tracks.find(m=>m.id===t.id);if(!E)return e;const x={...E.props,transform:`translate(0, ${t.dist})`};return{...e,tracks:e.tracks.map(m=>m.id===E.id?{...m,props:x}:m)};case"removeTranslation":return t.id==="ALL"?{...e,tracks:e.tracks.map(m=>{if(!m.props)return m;const{transform:C,...O}=m.props;return{...m,props:O}})}:{...e,tracks:e.tracks.map(m=>m.id===t.id?{...m,props:(()=>{if(!m.props)return m.props;const{transform:C,...O}=m.props;return O})()}:m)};case"insertTrack":return{...e,tracks:[...e.tracks.slice(0,t.index),t.track,...e.tracks.slice(t.index)]};case"deleteTrack":return{...e,tracks:e.tracks.filter(m=>m.id!==t.id)};case"setRange":return{...e,tracks:e.tracks.map(m=>m.id===t.id?{...m,props:{...m.props,range:t.range}}:m)};case"updateProps":return{...e,tracks:e.tracks.map(m=>m.id===t.id?{...m,props:{...m.props,...t.props}}:m)};case"bringToTop":const T=e.tracks.find(m=>m.id===t.id);return T?{...e,tracks:[T,...e.tracks.filter(m=>m.id!==t.id)]}:e;case"setDelta":return{...e,delta:t.delta};case"zoomDomain":const S=(e.domain.start+e.domain.end)/2,_=(e.domain.end-e.domain.start)*t.factor;return{...e,domain:{...e.domain,start:Math.floor(S-_/2),end:Math.ceil(S+_/2)},zoomLevel:e.zoomLevel};case"slideDomain":return{...e,domain:{...e.domain,start:e.domain.start+t.delta,end:e.domain.end+t.delta}};case"addHighlight":return e.highlights.some(m=>m.id===t.highlight.id)?e:{...e,highlights:[...e.highlights,t.highlight]};case"removeLastHighlight":return e.highlights.length===0||e.highlights[e.highlights.length-1].domain.chromosome?e:{...e,highlights:e.highlights.slice(0,-1)};case"removeHighlight":return{...e,highlights:e.highlights.filter(m=>m.id!==t.id)};default:return e}}const ws=w.createContext(!1);function Ah({canDrag:e,id:t,height:r,children:n}){var Pe;const a=w.useRef(null),o=w.useContext(Pt),s=w.useContext(vr),[c,u]=w.useState(0),[l,d]=w.useState({x:0,y:0}),[f,v]=w.useState(!1),[E,x]=w.useState({x:0,y:0}),[T,S]=w.useState([]),[_,m]=w.useState([]),[C,O]=w.useState(-1),[P,A]=w.useState(null),[j,U]=w.useState(1);w.useEffect(()=>{const K=document.getElementById("browserSVG");if(A(K),K){const $=K,Z=$.getBoundingClientRect();U(Z.width/$.viewBox.baseVal.width)}},[]);const V=w.useRef(((Pe=s.tracks)==null?void 0:Pe.find(K=>K.id===t))||null);w.useEffect(()=>{if(!s.tracks||f)return;const K=s.tracks.map(N=>N.actualHeight||N.height),$=s.tracks.findIndex(N=>N.id===t);let Z=new Array(K.length).fill(0);Z=K.map((N,R)=>R<$?-K.slice(R,$).reduce((X,se)=>X+se,0):R>$?K.slice($+1,R+1).reduce((X,se)=>X+se,0):0),m(new Array(s.tracks.length).fill(!1)),S(Z)},[s.tracks?s.tracks:[]]);const me=()=>{const K=T.reduce(($,Z,N)=>Math.abs(Z-c)<Math.abs(T[$]-c)?N:$,0);return C!=K&&(C!=-1&&_[C]&&_[K]&&(m($=>{const Z=[...$];return Z[C]=!1,Z}),o({type:ue.REMOVE_TRANSLATION,id:s.tracks[C].id})),m($=>{const Z=[...$];return Z[K]=!0,Z}),o({type:ue.TRANSLATE_TRACK,id:s.tracks[K].id,dist:c<0?r:-r}),O(K)),K},Le=()=>{if(!s.tracks)return;const K=s.tracks.find(Z=>Z.id===t);if(!K)return;const $=s.tracks.slice(0,s.tracks.indexOf(K)).reduce((Z,N)=>Z+(N.actualHeight||N.height),0);x({x:0,y:$+80}),u(0),v(!0)},ye=()=>{s.tracks&&(d({x:0,y:0}),v(!1),o({type:ue.SHIFT_TRACK,id1:t,id2:s.tracks[me()].id}),o({type:ue.REMOVE_TRANSLATION,id:"ALL"}))},Oe=(K,$)=>{u($.y),d({x:0,y:$.y});const Z=me(),N=s.tracks.indexOf(V.current);Z==N||s.tracks[Z]},Ve=w.useRef(null);return p.jsx(ws.Provider,{value:f,children:p.jsx(Xn,{scale:j,nodeRef:a,position:l,axis:"y",handle:".swap-handle",onStart:e&&P?Le:()=>!1,onStop:ye,onDrag:Oe,children:p.jsxs("g",{ref:a,"data-track-id":t,children:[!f&&n,f&&(P?tn.createPortal(p.jsx(Xn,{scale:j,nodeRef:Ve,position:{x:0,y:E.y+l.y},axis:"y",children:p.jsx("g",{ref:Ve,style:{cursor:"grabbing",filter:"drop-shadow(2px 2px 2px gray)"},children:n})}),P):n)]})})})}w.createContext({}),w.createContext(()=>{});const ua=w.createContext({delta:0,setDelta:()=>{}}),la=w.createContext({openModal:null,showModal:()=>{},closeModal:()=>{}});function Fh({children:e,browserState:t,browserDispatch:r,modalState:n,deltaContext:i}){return p.jsx(la.Provider,{value:{...n},children:p.jsx(vr.Provider,{value:t,children:p.jsx(Pt.Provider,{value:r,children:p.jsx(ua.Provider,{value:i,children:e})})})})}function Rh(e){return p.jsxs("svg",{x:e.x,y:e.y,width:e.width,height:e.height,viewBox:"0 0 24.000001 24.000001",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",children:[p.jsx("filter",{id:"a",colorInterpolationFilters:"sRGB",height:"1.39486",width:"1.311082",x:"-.155541",y:"-.19743",children:p.jsx("feGaussianBlur",{stdDeviation:"1.2313672"})}),p.jsxs("g",{transform:"matrix(.96344673 0 0 .96344673 -123.36427 -955.289756)",children:[p.jsx("path",{d:"m132.5 995.4062c-.831 0-1.5 1.5-1.5 1.5s.669 1.5 1.5 1.5h7.6875c-.25613.088-.47997.2851-.59375.5313l-3 6c-.2396.5108.0576 1.1992.59375 1.375l1.8125.625v2.4375c.00005.5236.47642 1 1 1h1c.52358 0 .99995-.4764 1-1v-2.4375l1.8125-.625c.53611-.1758.83335-.8642.59375-1.375l-3-6c-.13219-.2754-.39056-.4647-.6875-.5313h7.78125c.831 0 1.5-1.5 1.5-1.5s-.669-1.5-1.5-1.5z",filter:"url(#a)",opacity:".2"}),p.jsx("path",{d:"m140.3125 997.375c-.31022.06-.58621.2757-.71875.5625l-3 6c-.2396.5108.0576 1.1992.59375 1.375l1.8125.625v2.4375c.00005.5236.47642 1 1 1h1c.52358 0 .99995-.4764 1-1v-2.4375l1.8125-.625c.53611-.1758.83335-.8642.59375-1.375l-3-6c-.17625-.3672-.59466-.6026-1-.5625-.0312-.001-.0625-.001-.0937 0z"}),p.jsx("path",{d:"m140.5 998.375-3 6 2.5.8437v3.1563h1v-3.1563l2.5-.8437z",fill:"#fefefe"}),p.jsxs("g",{transform:"rotate(-90)",children:[p.jsx("rect",{height:"18.999969",rx:"1.43934",ry:"1.5",width:"3.049988",x:"-997.41217",y:"131.00003"}),p.jsx("path",{d:"m-996.41217 132.00003h1v16.999969h-1z",fill:"#fefefe"})]})]})]})}function fa(e){return e/6<10?e<10?e:10:e/6}const xs=({fontSize:e,position:t,width:r,children:n})=>p.jsxs(p.Fragment,{children:[p.jsx("text",{textAnchor:"end",alignmentBaseline:"middle",y:t-3,x:r*.94,fontSize:`${e}px`,style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:n}),p.jsx("line",{x1:r*.96,x2:r,y1:t,y2:t,stroke:"#aaa"})]}),jh=e=>{const t=fa(50),[r,n]=w.useState(null);w.useEffect(()=>{const E=document.getElementById("browserSVG");n(E)},[]);const{showModal:i}=w.useContext(la),[a,o]=w.useState(void 0),s=w.useContext(Pt),c=w.useContext(vr);let u=-1;c.tracks&&(u=c.tracks.findIndex(E=>E.id===e.trackId));const l=E=>{i(e.trackId,E.clientX,E.clientY)},d=E=>{E.preventDefault(),s({type:ue.BRING_TO_TOP,id:e.trackId})};w.useEffect(()=>{o(e.range)},[e.range]);const f=w.useContext(ws),v=E=>{s({type:ue.UPDATE_TRACK,id:e.trackId,track:{hoverColor:E?e.color:void 0}})};return p.jsx("svg",{style:{cursor:e.canDrag&&r?f?"grabbing":"grab":"default"},width:e.width,height:e.height,viewBox:`0 0 ${e.width} ${e.height}`,preserveAspectRatio:"xMinYMin meet",children:p.jsxs("g",{onMouseEnter:()=>v(!0),onMouseLeave:()=>v(!1),height:e.height,width:e.width,children:[p.jsx("rect",{x:0,y:0,width:e.width,height:e.height,fill:"white",className:"swap-handle"}),p.jsx("rect",{x:0,y:0,width:e.width/15,height:e.height,stroke:"#000000",strokeWidth:.5,fill:e.color||"rgb(225,225,225)",style:{cursor:"default"}}),p.jsx("text",{fontSize:`${t}px`,y:e.range===void 0?e.height/2:(e.height+t)/2,x:e.width/10,alignmentBaseline:"middle",style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:e.shortLabel}),p.jsx("line",{stroke:"#ccc",x1:e.width,x2:e.width,y1:0,y2:e.height}),e.trackType!==G.RULER&&r&&p.jsxs("svg",{x:e.width/10,y:e.range===void 0?e.height/2+5:(e.height+t)/2+5,width:35,height:20,cursor:"pointer",children:[p.jsxs("g",{onClick:l,children:[p.jsx("circle",{cx:7.5,cy:7.5,r:7.5,strokeWidth:0,fill:"transparent"}),p.jsx(Ff,{x:0,y:0,height:15,width:15})]}),u>0&&p.jsxs("g",{onClick:d,children:[p.jsx("circle",{cx:22.5,cy:7.5,r:7.5,strokeWidth:0,fill:"transparent"}),p.jsx(Rh,{x:15,y:2,height:15,width:15})]})]}),a&&p.jsxs(p.Fragment,{children:[p.jsx(xs,{position:e.rangePositions.min,width:e.width,fontSize:t||e.height/6,children:Number(a.min).toFixed(2)}),p.jsx(xs,{position:e.rangePositions.max,width:e.width,fontSize:t||e.height/6,children:Number(a.max).toFixed(2)})]})]})})};function Vh(e){return e&&e.props!==void 0}const qh=0,Os=255;function Ss(e){if(e=e.replace(/[^0-9a-f]/gi,""),e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),e.length===8&&(e=e.substring(0,6)),e.length!==6)throw new Error(e+" is not a valid hex color");return e}function Zn(e,t){e=Ss(e);let r="#";for(let n=0;n<3;++n){const i=parseInt(e.substr(n*2,2),16),a=Math.round(Math.min(Math.max(qh,i+t*Os),Os)).toString(16);r+=("00"+a).substr(a.length)}return r}function Ts(e){return parseInt(Ss(e),16)}function $h(e){return e>=16?e.toString(16):`0${e.toString(16)}`}const ha=w.createContext({show:!1,x:0,y:0,id:"",setContextMenu:()=>{},displayMode:void 0}),Uh=e=>{const{x:t,y:r,show:n}=w.useContext(ha);return p.jsx("g",{id:"context-menu",transform:`translate(${t}, ${r})`,style:{visibility:n?"visible":"hidden"},children:p.jsx("foreignObject",{width:e.width,height:e.height,children:e.children})})},rr=(e,t)=>{if(e.createSVGPoint&&e){let n=e.createSVGPoint();return n.x=t.clientX,n.y=t.clientY,n=n.matrixTransform(e.getScreenCTM().inverse()),[n.x,n.y]}const r=e.getBoundingClientRect();return[t.clientX-r.left-e.clientLeft,t.clientY-r.top-e.clientTop]},Bh=(e,t)=>{const r=e.cloneNode(!0),n=t.cloneNode(!0);return'<?xml version="1.0" standalone="no"?>'+'<svg xmlns="http://www.w3.org/2000/svg">'+n.outerHTML.replace(/\n/g,"").replace(/[ ]{8}/g,"")+'<g transform="translate (0,50)">'+r.outerHTML.replace(/\n/g,"").replace(/[ ]{8}/g,"")+"</g></svg>"},zh=(e,t,r)=>{const n=new Blob([Bh(e,t)],{type:"image/svg;charset=utf-8"}),i=URL.createObjectURL(n),a=document.createElement("a");a.href=i,a.download=r,document.body.appendChild(a),a.click(),document.body.removeChild(a)};function Wh(e){return p.jsx("rect",{width:e.width,height:e.height,fill:e.hoverColor||"transparent",fillOpacity:e.hoverColor?.15:0,style:{pointerEvents:"none"}})}const Qh=(e,t)=>e||(!t||!t.substring||!t.length?"":t.length<=20?t:t.substring(0,20)+"..."),et=e=>{var _;const t=w.useContext(Pt),r=w.useContext(ha);w.useEffect(()=>{const m=C=>{const O=document.getElementById("context-menu");O&&!O.contains(C.target)&&r.setContextMenu({show:!1,x:0,y:0,id:""})};return document.addEventListener("click",m),()=>{document.removeEventListener("click",m)}},[r]);const n=()=>{var O,P,A,j;const m=(P=(O=e.svgRef)==null?void 0:O.current)==null?void 0:P.getElementById("wrapped-track-"+e.id),C=(j=(A=e.svgRef)==null?void 0:A.current)==null?void 0:j.getElementById("wrapped-track-ruler");zh(m,C,e.id+".svg")},[i,a]=w.useState(e.height||0),o=w.useCallback(m=>{a(m),e.onHeightChanged&&e.onHeightChanged(m)},[e]);w.useEffect(()=>{t({type:ue.SET_TRACK_HEIGHT,id:e.id,height:i}),e.onHeightChanged&&e.height!==void 0&&e.onHeightChanged(e.height)},[e.height,i]);const s=e.trackMargin||(e.height||e.rowHeight||i)/6,c=e.titleSize||s*2.5,u=e.title?c+5:0,l=s+u,d=Qh(e.shortLabel||"",e.title||""),f=i-l,v=e.width<1e3?e.width/8:150,E=e.width-v,x=i/3,S=(_=e.displayMode)==null?void 0:_.toLowerCase();return p.jsx(Ah,{canDrag:e.canDrag||!1,id:e.id,height:i,children:p.jsxs("g",{id:"wrapped-track-"+e.id,children:[p.jsx("rect",{width:e.width,height:i,fill:"white",style:{pointerEvents:"none"}}),p.jsx("line",{stroke:"#ccc",x1:e.width,x2:e.width,y1:0,y2:i,strokeWidth:2}),e.loading&&!e.error&&p.jsx("g",{transform:`translate(${v+(E-x)/2},${(i-x)/2})`,children:p.jsx(Pf,{width:x,height:x})}),e.error&&p.jsxs("g",{transform:`translate(${v+(E-x)/2},${(i-x)/2})`,children:[p.jsx(Yo,{width:x,height:x}),p.jsx("g",{transform:`translate(${x/2},${x+10})`,children:p.jsx("text",{textAnchor:"middle",fontSize:`${e.titleSize}px`,style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:e.error})})]}),!e.loading&&!e.error&&e.title&&p.jsx("g",{id:`title-${e.id}`,children:p.jsx("text",{style:{cursor:"default"},fill:e.titleColor||"#000000",textAnchor:"middle",x:v+E/2,y:c/2+5,fontSize:`${c}px`,transform:`translate(0,${s})`,alignmentBaseline:"baseline",children:e.title})}),!e.loading&&!e.error&&p.jsx("g",{onContextMenu:m=>{if(e.trackType==G.RULER||!e.svgRef)return;m.preventDefault();const C=rr(e.svgRef.current,m);r.setContextMenu({show:!0,x:C[0]>e.width-80?C[0]-80:C[0],y:C[1],id:e.id,displayMode:S,downloadSVG:n,displayModeOptions:Hh(e.trackType)})},transform:`translate(${v},${i-f})`,children:w.Children.map(e.children,m=>Vh(m)?w.cloneElement(m,{...m.props,height:f,width:e.width-v,hoverColor:e.hoverColor,onHeightChanged:C=>{o(C+l)}}):m)}),e.height!=0&&p.jsx(jh,{canDrag:e.canDrag||!1,trackType:e.trackType||G.UNDEFINED,trackId:e.id,color:e.color,hoverColor:e.hoverColor,shortLabel:d,width:v,height:i,rangePositions:{min:i,max:l},range:e.range}),p.jsx(Wh,{width:e.width,height:i,hoverColor:e.hoverColor})]})})};function Hh(e){switch(e){case G.BIGBED:case G.BAM:return["dense","squish","hide","download"];case G.BIGWIG:return["full","dense","hide","download"];case G.TRANSCRIPT:return["pack","squish","hide","download"];case G.LDTRACK:return["full","hide","download"];case G.MOTIF:return["dense","squish","hide","download"];default:return["hide","download"]}}let ei;const Gh=new Uint8Array(16);function Yh(){if(!ei&&(ei=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!ei))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return ei(Gh)}const ut=[];for(let e=0;e<256;++e)ut.push((e+256).toString(16).slice(1));function Kh(e,t=0){return ut[e[t+0]]+ut[e[t+1]]+ut[e[t+2]]+ut[e[t+3]]+"-"+ut[e[t+4]]+ut[e[t+5]]+"-"+ut[e[t+6]]+ut[e[t+7]]+"-"+ut[e[t+8]]+ut[e[t+9]]+"-"+ut[e[t+10]]+ut[e[t+11]]+ut[e[t+12]]+ut[e[t+13]]+ut[e[t+14]]+ut[e[t+15]]}let Cs,da,pa=0,ga=0;function Nt(e,t,r){let n=t&&r||0;const i=t||new Array(16);e=e||{};let a=e.node||Cs,o=e.clockseq!==void 0?e.clockseq:da;if(a==null||o==null){const f=e.random||(e.rng||Yh)();a==null&&(a=Cs=[f[0]|1,f[1],f[2],f[3],f[4],f[5]]),o==null&&(o=da=(f[6]<<8|f[7])&16383)}let s=e.msecs!==void 0?e.msecs:Date.now(),c=e.nsecs!==void 0?e.nsecs:ga+1;const u=s-pa+(c-ga)/1e4;if(u<0&&e.clockseq===void 0&&(o=o+1&16383),(u<0||s>pa)&&e.nsecs===void 0&&(c=0),c>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");pa=s,ga=c,da=o,s+=122192928e5;const l=((s&268435455)*1e4+c)%4294967296;i[n++]=l>>>24&255,i[n++]=l>>>16&255,i[n++]=l>>>8&255,i[n++]=l&255;const d=s/4294967296*1e4&268435455;i[n++]=d>>>8&255,i[n++]=d&255,i[n++]=d>>>24&15|16,i[n++]=d>>>16&255,i[n++]=o>>>8|128,i[n++]=o&255;for(let f=0;f<6;++f)i[n+f]=a[f];return t||Kh(i)}function Cr(e,t){return` M ${e} ${t}`}function Ce(e,t){return` L ${e} ${t}`}function Ct(e,t){return r=>(r-e.start)*t/(e.end-e.start)}function _s(e,t){return r=>e.max===e.min?0:(e.max-r)*t/(e.max-e.min)}function Xh(e,t){const r=e.end-e.start,n=t.end-t.start;return i=>(i-e.start)*n/r+t.start}function ks(e,t,r){return Ct(e||t.reduce((n,i)=>({start:i.start<n.start?i.start:n.start,end:i.end>n.end?i.end:n.end}),{start:1/0,end:-1/0}),r)}function nn(e,t,r,n=10){return r=r||0,e.reduce((i,a)=>{let o=!1;for(let s=0;s<i.length;++s)if(t(i[s][i[s].length-1].coordinates.end)+n+r*i[s][i[s].length-1].name.length<=t(a.coordinates.start)){i[s].push(a),o=!0;break}return o||i.push([a]),i},[])}function Jh(e){return e==null?"":""+(e<1e5?e===Math.floor(e)?e:e.toFixed(2):e.toExponential(2))}const Wt=({width:e,height:t,id:r})=>p.jsx("clipPath",{id:r,children:p.jsx("rect",{x:0,y:0,width:e,height:t})}),Kt=w.createContext({show:!1,x:0,y:0,width:0,height:0,content:void 0,setTooltip:()=>{}});var Ds=(e=>(e.ValuedPoint="valuedPoint",e.BigZoomData="bigZoomData",e.BigWigData="bigWigData",e))(Ds||{});function _r(e){return e[0].x!==void 0?"valuedPoint":e[0].minVal!==void 0?"bigZoomData":"bigWigData"}function va(e){return _r(e)==="bigWigData"?e.map(t=>({...t})):_r(e)==="bigZoomData"?e.map(t=>({...t})):_r(e)==="valuedPoint"?e.map(t=>({...t})):[]}const Ms=(e,t)=>{switch(_r(e)){case"bigWigData":return e.forEach(r=>{r.value<t.min&&(r.value=t.min),r.value>t.max&&(r.value=t.max)}),e;case"bigZoomData":return e.forEach(r=>{r.minVal<t.min&&(r.minVal=t.min),r.maxVal>t.max&&(r.maxVal=t.max)}),e;case"valuedPoint":return e.forEach(r=>{r.min<t.min&&(r.min=t.min),r.max>t.max&&(r.max=t.max)}),e;default:return[]}},ya=(e,t)=>({min:e.reduce((r,n)=>t(n)<r?t(n):r,1/0),max:e.reduce((r,n)=>t(n)>r?t(n):r,-1/0)}),ti=e=>{switch(_r(e)){case"bigWigData":return ya(e,t=>t.value);case"bigZoomData":return ya(e,t=>t.maxVal);case"valuedPoint":return ya(e,t=>t.max);default:return{min:0,max:0}}};function Ls(e){return e.value!==void 0}const Zh=e=>{const t={start:e[0].x,end:e[e.length-1].x},r=ks(t,e.map(i=>({start:i.x,end:i.x+1})),100),n=[];for(let i=0;i<=100;++i)n.push({x:i,max:-1/0,min:1/0});return e.reduce((i,a)=>{const o=Math.floor(r(a.x)),s=Math.floor(r(a.x));a.min<i.renderPoints[o].min&&(i.renderPoints[o].min=a.min),a.max>i.renderPoints[o].max&&(i.renderPoints[o].max=a.max);for(let c=o+1;c<=s;++c)i.renderPoints[c].min=a.min,i.renderPoints[c].max=a.max;return a.min<i.range.min&&(i.range.min=a.min),a.max>i.range.max&&(i.range.max=a.max),i},{renderPoints:n,range:{max:-1/0,min:1/0}})};function Is(e,t){if(!e)return{renderPoints:[],range:{max:1,min:0}};const r=e.reduce((s,c)=>({start:c.start<s.start?c.start:s.start,end:c.end>s.end?c.end:s.end}),{start:1/0,end:-1/0}),n=ks(r,e,t),i=[],a={start:Math.floor(n(e[0].start)),end:Math.floor(n(e[e.length-1].end))};for(let s=a.start;s<a.end;++s)i.push({x:s,max:-1/0,min:1/0});const o={renderPoints:i,range:{max:-1/0,min:1/0}};return e.forEach(s=>{const c=Math.floor(n(s.start)),u=Math.floor(n(s.end)),l=Ls(s)?s.value:s.minVal,d=Ls(s)?s.value:s.maxVal;l<o.renderPoints[c].min&&(o.renderPoints[c].min=l),d>o.renderPoints[c].max&&(o.renderPoints[c].max=d);for(let f=c+1;f<u;++f)o.renderPoints[f].min=l,o.renderPoints[f].max=d;l<o.range.min&&(o.range.min=l),d>o.range.max&&(o.range.max=d)}),o}function Dt({canDrag:e,children:t}){const r=w.useRef(null),n=w.useContext(Pt),[i,a]=w.useState(!1),{delta:o,setDelta:s}=w.useContext(ua),[c,u]=w.useState({x:0,y:0}),[l,d]=w.useState(null),[f,v]=w.useState(1);w.useEffect(()=>{const T=document.getElementById("browserSVG");if(d(T),T){const S=T,_=S.getBoundingClientRect();v(_.width/S.viewBox.baseVal.width)}},[]);const E=(T,S)=>{T.preventDefault(),a(!0);const _=S.deltaX;s(o+_)},x=()=>{Math.abs(o)<10||(u({x:o,y:0}),n({type:ue.SHIFT_DOMAIN,delta:o}),a(!1))};return w.useEffect(()=>{i||u({x:o,y:0})},[o]),p.jsx(Xn,{nodeRef:r,scale:f,position:c,axis:"x",onStart:e&&l?()=>{}:()=>!1,onDrag:(T,S)=>E(T,S),onStop:x,children:p.jsx("g",{ref:r,height:"100%",style:{cursor:e&&l?i?"grabbing":"grab":"default"},children:t})})}function kr(e,t){return` L ${e} ${t}`}const ed=e=>{const t=w.useContext(vr),r=w.useContext(Pt),[n,i]=w.useState(va(e.data)),[a,o]=w.useState();w.useEffect(()=>{const C=ti(n);C.min=C.min>0?0:C.min,r({type:ue.UPDATE_PROPS,id:e.id,props:{defaultRange:C}}),o(C)},[]),w.useEffect(()=>{const C=va(e.data),O=ti(C),P={min:O.min>0?0:O.min,max:O.max};i(Ms(C,P)),r({type:ue.UPDATE_PROPS,id:e.id,props:{range:P}}),r({type:ue.UPDATE_PROPS,id:e.id,props:{defaultRange:P}})},[e.data,a,e.domain]),w.useEffect(()=>{if(!e.range)return;const C=va(e.data);i(Ms(C,e.range))},[e.range]);const s=w.useContext(Kt),[c,u]=w.useState(),[l,d]=w.useState(null),f=w.useCallback(C=>{var U;if(t.delta!=0||!((U=e.svgRef)!=null&&U.current))return;const O=rr(e.svgRef.current,C);d([O[0],O[1]]);const P=Math.round(O[0]-150),A=x.renderPoints.find(V=>V.min<1/0&&V.max>-1/0&&V.x===P);if(!A)return;const j=O[0]>e.width-60?O[0]-60+5:O[0]+5;s.setTooltip({show:!0,x:j,y:O[1]-e.height/2,height:80,width:60,content:p.jsx("div",{style:{fontSize:"10px",backgroundColor:"#ffffff",boxShadow:"0 0 4px 0 rgba(0, 0, 0, 0.2)",padding:"5px",display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"center",gap:"5px"},children:p.jsxs("div",{style:{whiteSpace:"nowrap",minWidth:"50px"},children:["value: ",Number(Jh(A.max))]})})})},[e.svgRef,e.width,e.height,t.delta]);w.useEffect(()=>{u(l?l[0]:void 0)},[l]);const v=()=>{s.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0}),u(void 0)};w.useEffect(()=>{if(t.delta!=0){v();return}},[t.delta]);const E=w.useRef(Nt()),x=w.useMemo(()=>n&&n.length&&_r(n)===Ds.ValuedPoint?{renderPoints:n,range:e.range||ti(n)}:Is(n,e.width),[n,e.width,e.domain]),T=w.useMemo(()=>{const C=_s(x.range,e.height),O=x.renderPoints.filter(A=>A.min<1/0&&A.max>-1/0),P=A=>Math.max(0,Math.min(e.height,C(A)));return{maxPath:O.reduce((A,j,U,V)=>A+(j.x?kr(j.x,P(V[U-1]?V[U-1].max:0)):"")+kr(j.x,P(j.max)),"M 0 "+P(0)+" ")+kr(e.width,P(0)),minPath:O.reduce((A,j,U,V)=>A+(j.x?kr(j.x,P(V[U-1]?V[U-1].min:0)):"")+kr(j.x,P(j.min)),"M 0 "+P(0)+" ")+kr(e.width,P(0))}},[x,e.height,e.width]),S=e.color||"#000000",_=w.useMemo(()=>e.noTransparency?S:Zn(S,.5),[e]),m=e.id||E.current.toString();return w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),p.jsx(Dt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{className:e.className,width:e.width,height:e.height,clipPath:`url(#${m})`,children:[p.jsx("rect",{width:e.width,height:e.height,fill:"white",onMouseOut:v}),p.jsx("defs",{children:p.jsx(Wt,{id:m,width:e.width,height:e.height})}),p.jsx("path",{d:T.maxPath,fill:_,style:{cursor:"default",clipPath:`url(#${m})`}}),p.jsx("path",{d:T.minPath,fill:S,style:{cursor:"default",clipPath:`url(#${m})`}}),c!==void 0&&p.jsx("line",{stroke:"#ccc",x1:c-150,x2:c-150,y1:0,y2:e.height}),p.jsx("rect",{width:e.width,height:e.height,fill:"transparent",onMouseMove:C=>{f(C)},onMouseOut:()=>{v()}})]})})},td=e=>{const t=w.useRef(Nt()),r=w.useMemo(()=>e.data&&e.data.length&&e.data[0].x!==void 0?Zh(e.data):Is(e.data,100),[e.data,e.width,e.domain]);r.range||(r.range=ti(r.renderPoints));const n=w.useMemo(()=>{const i=_s(r.range,1),a=r.renderPoints.filter(s=>s.min<1/0&&s.max>-1/0),o=e.color||"#000000";return a.map(s=>Zn(o,i(s.max)))},[e.color,r]);return w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),p.jsx(Dt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{className:e.className,width:e.width,height:e.height,children:[p.jsx("defs",{children:p.jsx("linearGradient",{id:t.current,children:n.map((i,a)=>p.jsx("stop",{offset:`${a}%`,stopColor:i},`${t.current}_pt_${a}`))})}),p.jsx("rect",{width:e.width,height:e.height,fill:"white"}),p.jsx("rect",{width:e.width,height:e.height,fill:e.hoverColor||"transparent",fillOpacity:e.hoverColor?.2:0}),p.jsx("rect",{width:e.width,x:0,y:e.height/3,height:e.height/3,fill:`url('#${t.current}')`})]})})},Dr=e=>{w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]);const t=12,r=32,n=e.height,i=e.width;return p.jsxs("g",{className:e.className,width:e.width,height:e.height,transform:e.transform,children:[e.height!=0&&p.jsx("rect",{width:e.width,height:e.height,fill:"none",onClick:e.onClick}),e.error&&p.jsxs("g",{transform:`translate(${t+(i-r)/2},${(n-r)/2})`,children:[p.jsx(Yo,{width:r,height:r}),p.jsx("g",{transform:`translate(${r/2},${r+10})`,children:p.jsx("text",{textAnchor:"middle",fontSize:"12px",style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:e.text})})]}),!e.error&&e.text&&e.height!=0&&p.jsx("text",{textAnchor:"middle",x:Math.round(+e.width/2),y:Math.round(+e.height/2),style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:e.text})]})},Ps={trackType:G.BIGWIG,titleSize:12,trackMargin:12,displayMode:Re.FULL,canDrag:!0,noTransparency:!0,color:"#ff5555"};function Ns(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},r={...e,trackType:G.BIGWIG,displayMode:e.displayMode};switch(e.displayMode){case Re.FULL:return p.jsx(et,{...r,...t,trackType:G.BIGWIG,displayMode:e.displayMode,children:p.jsx(ed,{...e})});case Re.DENSE:return p.jsx(et,{...r,...t,trackType:G.BIGWIG,displayMode:e.displayMode,children:p.jsx(td,{...e})});case Re.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigWig`),p.jsx(et,{...r,children:p.jsx(Dr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function rd(e,t){const r=[];return e.forEach((n,i)=>(i===0||n.start>e[i-1].end||n.color!=e[i-1].color?r.push({start:t(n.start)<0?0:t(n.start),end:t(n.end)<0?0:t(n.end),color:n.color,name:n.name,score:n.score}):r[r.length-1].end=t(n.end),r)),r}function nd(e,t){return nn(e.sort((r,n)=>r.start-n.start).map(r=>({coordinates:{start:r.start,end:r.end},color:r.color,name:"",score:r.score,rectname:r.name})),t,0).map(r=>r.map(n=>({start:t(n.coordinates.start)<0?0:t(n.coordinates.start),end:t(n.coordinates.end),color:n.color,rectname:n.rectname,name:n.rectname,score:n.score})))}const id={fontSize:"12px",backgroundColor:"#ffffff",border:"1px solid",padding:"1em"},As=e=>p.jsxs("div",{style:id,children:[e.name?`name: ${e.name}`:"",p.jsx("br",{}),e.score!==void 0?`score: ${e.score}`:""]});function Fs(e,t,r,n,i){const a=w.useContext(Kt),o=w.useCallback((c,u)=>{if(!r||!r.current)return;const[l,d]=rr(r.current,c);a.setTooltip({show:!0,x:l>t-100?l-90:l+10,y:d+10,width:100,height:50,content:w.createElement(e,u)})},[e,t,r,a]),s=w.useCallback(()=>{a.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},[a]);return[o,s]}const ad=e=>{const[t,r]=Fs(e.tooltipContent||As,e.width,e.svgRef),n=w.useRef(Nt()),i=w.useCallback(Ct(e.domain,e.width),[e.data]),a=e.color||"#000000",o=e.id||n.current.toString(),s=w.useMemo(()=>rd(e.data||[],i),[e.width,e.data,e.domain]);return w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),p.jsx(Dt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{width:e.width,height:e.height,clipPath:`url(#${o})`,className:e.className,children:[p.jsx("rect",{width:e.width,height:e.height,fill:"white"}),p.jsx("defs",{children:p.jsx(Wt,{id:o,width:e.width,height:e.height})}),s.map((c,u)=>p.jsx("rect",{style:{cursor:e.onClick?"pointer":"default"},height:e.height*.6,width:c.end-c.start,x:c.start,y:e.height*.2,fill:c.color||a,onClick:()=>e.onClick&&e.onClick(c),onMouseOut:()=>{e.onMouseOut&&e.onMouseOut(),r()},onMouseOver:l=>{l.persist(),e.onMouseOver&&e.onMouseOver(c),t(l,c)}},`${o}_${u}`))]})})},od=e=>{const[t,r]=Fs(e.tooltipContent||As,e.width,e.svgRef),n=w.useRef(Nt()),i=w.useCallback(Ct(e.domain,e.width),[e.data]),a=w.useMemo(()=>{const c=e.data?[...e.data]:[];return nd(c,i)},[e.width,e.data,e.domain]),o=e.rowHeight*a.length,s=e.id||n.current.toString();return w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(o)},[a,e.rowHeight,e.onHeightChanged]),p.jsx(Dt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{width:e.width,height:o,clipPath:`url(#${s})`,children:[p.jsx("rect",{width:e.width,height:o,fill:"white"}),p.jsx("defs",{children:p.jsx(Wt,{id:s,width:e.width,height:o})}),a.map((c,u)=>p.jsx("g",{transform:`translate(0, ${u*e.rowHeight})`,children:c.map((l,d)=>p.jsx("rect",{style:{cursor:e.onClick?"pointer":"default"},height:e.rowHeight*.6,width:l.end-l.start<1?1:l.end-l.start,x:l.start,y:e.rowHeight*.2,fill:l.color,onClick:()=>e.onClick&&e.onClick(l),onMouseOut:()=>{e.onMouseOut&&e.onMouseOut(),r()},onMouseOver:f=>{f.persist(),e.onMouseOver&&e.onMouseOver(l),t(f,l)}},`${s}_${d}`))},`group_${u}`))]})})},Rs={trackType:G.BIGBED,displayMode:Re.SQUISH,rowHeight:10,titleSize:12,trackMargin:12,canDrag:!0};function js(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},r={...e,trackType:G.BIGBED,displayMode:e.displayMode};switch(e.displayMode){case Re.DENSE:return p.jsx(et,{...r,...t,trackType:G.BIGBED,displayMode:e.displayMode,children:p.jsx(ad,{...e})});case Re.SQUISH:return p.jsx(et,{...r,...t,trackType:G.BIGBED,displayMode:e.displayMode,children:p.jsx(od,{...e})});case Re.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigBed`),p.jsx(et,{...r,children:p.jsx(Dr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function sd(e,t){return e.coordinates.start===t.coordinates.start?e.coordinates.end-t.coordinates.end:e.coordinates.start-t.coordinates.start}function cd(e,t){return e.reduce((r,n)=>(n.transcripts.filter(i=>i.coordinates.start<t.end&&i.coordinates.end>t.start).forEach(i=>r.push({...i,strand:n.strand})),r),[]).sort((r,n)=>r.coordinates.start-n.coordinates.start)}function ud(e){if(e.length===0)return[];const t=[{coordinates:{...e[0].coordinates}}];return e.slice(1).forEach(r=>{r.coordinates.start<t[t.length-1].coordinates.end?t[t.length-1].coordinates.end=Math.max(t[t.length-1].coordinates.end,r.coordinates.end):t.push({coordinates:{...r.coordinates}})}),t}function ld(e,t){var s;const n=e.transcripts.reduce((c,u)=>[...c,...u.exons||[]],[]).sort(sd),i=n.length===0?[]:[{coordinates:{...n[0].coordinates},UTRs:n[0].UTRs&&[...n[0].UTRs]}],a=new Set(e.transcripts.map(c=>c.color));n.slice(1).forEach(c=>{c.coordinates.start<i[i.length-1].coordinates.end?(i[i.length-1].UTRs=[...i[i.length-1].UTRs||[],...c.UTRs||[]],i[i.length-1].coordinates.end=Math.max(c.coordinates.end,i[i.length-1].coordinates.end)):i.push({coordinates:{...c.coordinates},UTRs:c.UTRs&&[...c.UTRs]})}),i.forEach(c=>{c.UTRs=ud(c.UTRs||[])});let o=a.size===1?a.values().next().value:void 0;return t&&(o=(s=e.name)!=null&&s.includes(t)?"#ff5555":o),{name:e.name||"",strand:e.strand,id:e.id||"",coordinates:{start:Math.min(...n.map(c=>c.coordinates.start)),end:Math.max(...n.map(c=>c.coordinates.end))},exons:i,color:o}}function fd(e,t,r){var n;return{strand:e.strand,name:e.name,id:e.id,color:e.color,coordinates:{end:t(e.coordinates.end),start:t(e.coordinates.start)},exons:((n=e.exons)==null?void 0:n.filter(i=>i.coordinates.end>r.start&&i.coordinates.start<r.end).map(i=>{var a;return{coordinates:{start:t(i.coordinates.start),end:t(i.coordinates.end)},UTRs:((a=i.UTRs)==null?void 0:a.map(o=>({coordinates:{start:t(o.coordinates.start),end:t(o.coordinates.end)}})))||[]}}))||[]}}function hd(e,t,r,n,i,a){let o="";if(e=e<0?0:e,t=t>a?a:t,r==="+")for(let s=e+10;s<t-10;s+=20)o+=Cr(s-i,n-i)+Ce(s,n)+Ce(s-i,n+i)+Ce(s,n)+Ce(s-i,n-i);else if(r==="-")for(let s=e+10;s<t-10;s+=20)o+=Cr(s+i,n-i)+Ce(s,n)+Ce(s+i,n+i)+Ce(s,n)+Ce(s+i,n-i);return o+" M "+e+" "+n+" L "+t+" "+n}function dd(e,t,r,n){var d,f;if(e.coordinates.start>n||e.coordinates.end<0)return"";const i=((d=e.UTRs)==null?void 0:d.filter(v=>v.coordinates.start===e.coordinates.start))||[],a=((f=e.UTRs)==null?void 0:f.filter(v=>v.coordinates.end===e.coordinates.end))||[],o=t-r*.2,s=t+r*.2,c=t-r*.3,u=t+r*.3;if(!i[0]&&!a[0])return Cr(e.coordinates.start,c)+Ce(e.coordinates.end,c)+Ce(e.coordinates.end,u)+Ce(e.coordinates.start,u)+Ce(e.coordinates.start,c);if(i[0]&&i[0].coordinates.end===e.coordinates.end)return Cr(i[0].coordinates.start,o)+Ce(i[0].coordinates.end,o)+Ce(i[0].coordinates.end,s)+Ce(i[0].coordinates.start,s)+Ce(i[0].coordinates.start,o);let l=i[0]?Cr(i[0].coordinates.start,o)+Ce(i[0].coordinates.end,o)+Ce(i[0].coordinates.end,c):Cr(e.coordinates.start,c);return l+=a[0]?Ce(a[0].coordinates.start,c)+Ce(a[0].coordinates.start,o)+Ce(a[0].coordinates.end,o)+Ce(a[0].coordinates.end,s)+Ce(a[0].coordinates.start,s)+Ce(a[0].coordinates.start,u):Ce(e.coordinates.end,c)+Ce(e.coordinates.end,u),l+(i[0]?Ce(i[0].coordinates.end,u)+Ce(i[0].coordinates.end,s)+Ce(i[0].coordinates.start,s)+Ce(i[0].coordinates.start,o):Ce(e.coordinates.start,u)+Ce(e.coordinates.start,c))}function Vs(e,t,r,n,i){var s;const a=fd(e,t,r),o={exons:((s=a.exons)==null?void 0:s.reduce((c,u)=>c+dd(u,n/2,n,i),""))||"",introns:hd(a.coordinates.start,a.coordinates.end,a.strand,n/2,n*.19,i)};return{transcript:a,paths:o}}const pd=e=>{const t=w.useContext(Kt),r=(l,d)=>{if(e.svgRef){const f=rr(e.svgRef.current,l);t.setTooltip({show:!0,x:f[0]>e.width-150?f[0]-150+5:f[0]+5,y:f[1],width:150,height:50,content:p.jsx("span",{style:{fontSize:"10px"},children:d.id})})}},n=()=>{t.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},i=w.useRef(Nt()),a=w.useCallback(Ct(e.domain,e.width),[e.data]),o=e.color||"#000000",s=fa(e.rowHeight)*1.25,c=w.useMemo(()=>nn(cd(e.data||[],e.domain),a,s).map((l,d)=>({y:d*e.rowHeight,transcripts:l.map(f=>Vs(f,a,e.domain,e.rowHeight,e.width))})),[e.data,e.rowHeight,e.width,e.domain]),u=w.useMemo(()=>Math.max(e.rowHeight*c.length,35),[e.rowHeight,c.length]);return console.log(u),w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(u)},[u]),p.jsx(Dt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{children:[p.jsx("rect",{width:e.width,height:u,fill:"white"}),p.jsx("defs",{children:p.jsx(Wt,{id:i.current,width:e.width,height:c.length*e.rowHeight})}),c.map((l,d)=>p.jsx("g",{style:{clipPath:`url(#${i.current})`},transform:`translate(0,${l.y})`,height:e.rowHeight,width:e.width,children:l.transcripts.map((f,v)=>p.jsxs(w.Fragment,{children:[p.jsx("path",{stroke:f.transcript.color||o,fill:f.transcript.color||o,strokeWidth:e.rowHeight/16,d:f.paths.introns+f.paths.exons,style:{cursor:e.onTranscriptClick?"pointer":"default"},onMouseOver:E=>r(E,f.transcript),onMouseOut:n,onClick:()=>e.onTranscriptClick&&e.onTranscriptClick(f.transcript)}),p.jsx("text",{fill:f.transcript.color||o,fontSize:s,x:f.transcript.coordinates.end+5,y:e.rowHeight/2,dominantBaseline:"middle",style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:f.transcript.name})]},`transcript_${v}`))},`row_${d}`))]})})},gd=e=>{const t=w.useContext(Kt),r=(l,d)=>{if(e.svgRef){const f=rr(e.svgRef.current,l);t.setTooltip({show:!0,x:f[0]>e.width-150?f[0]-150+5:f[0]+5,y:f[1],width:150,height:50,content:p.jsx("span",{style:{fontSize:"10px"},children:d.id})})}},n=()=>{t.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},i=w.useRef(Nt()),a=w.useCallback(Ct(e.domain,e.width),[e.data]),o=e.color||"#000000",s=fa(e.rowHeight)*1.25,c=w.useMemo(()=>{var l;return nn(((l=e.data)==null?void 0:l.map(d=>ld(d,e.geneName)))||[],a,s).map((d,f)=>({y:f*e.rowHeight,transcripts:d.map(v=>Vs(v,a,e.domain,e.rowHeight,e.width))}))},[e.data,e.rowHeight,e.width,e.domain]),u=w.useMemo(()=>Math.max(e.rowHeight*c.length,35),[e.rowHeight,c.length]);return w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(u)},[u]),p.jsx(Dt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{children:[p.jsx("rect",{width:e.width,height:u,fill:"white"}),p.jsx("defs",{children:p.jsx(Wt,{id:i.current,width:e.width,height:c.length*e.rowHeight})}),c.map((l,d)=>p.jsx("g",{style:{clipPath:`url(#${i.current})`},transform:`translate(0,${l.y})`,height:e.rowHeight,width:e.width,children:l.transcripts.map((f,v)=>p.jsxs(w.Fragment,{children:[p.jsx("path",{stroke:f.transcript.color||o,fill:f.transcript.color||o,strokeWidth:e.rowHeight/16,d:f.paths.introns+f.paths.exons,style:{cursor:e.onTranscriptClick?"pointer":"default"},onMouseOver:E=>r(E,f.transcript),onMouseOut:n,onClick:()=>e.onTranscriptClick&&e.onTranscriptClick(f.transcript)}),p.jsx("text",{fill:f.transcript.color||o,fontSize:s,x:f.transcript.coordinates.end+5,y:e.rowHeight/2,dominantBaseline:"middle",style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:f.transcript.name})]},`transcript_${v}`))},`row_${d}`))]})})},qs={trackType:G.TRANSCRIPT,displayMode:Re.SQUISH,rowHeight:14,titleSize:12,trackMargin:12,canDrag:!0};function $s(e){const[t,r]=w.useState(!e.data),[n,i]=w.useState(e.data),a={...e,trackType:G.TRANSCRIPT,displayMode:e.displayMode};switch(w.useEffect(()=>{e.data?(i(e.data),r(!1)):r(!0)},[e.data]),w.useEffect(()=>{e.refetch&&e.refetch({variables:{assembly:e.assembly,chromosome:e.domain.chromosome,start:e.domain.start,end:e.domain.end,version:e.version}}).then(({data:o,loading:s,error:c})=>{i(o.gene),r(s)})},[e.version]),e.displayMode){case Re.PACK:return p.jsx(et,{...a,loading:t,trackType:G.TRANSCRIPT,displayMode:e.displayMode,children:p.jsx(pd,{...e,data:n})});case Re.SQUISH:return p.jsx(et,{...a,loading:t,trackType:G.TRANSCRIPT,displayMode:e.displayMode,children:p.jsx(gd,{...e,data:n})});case Re.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigWig`),p.jsx(et,{...a,children:p.jsx(Dr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function vd(e,t){const r=[];return e.sort((n,i)=>n.start-i.start).forEach((n,i)=>(i===0||n.start>e[i-1].end||n.color!=e[i-1].color?r.push({start:t(n.start)<0?0:t(n.start),end:t(n.end),color:n.color,cigarOps:n.cigarOps,strand:n.strand,seq:n.seq}):r[r.length-1].end=t(n.end),r)),r}function yd(e,t,r){return nn(e.sort((n,i)=>n.start-i.start).map(n=>({coordinates:{start:n.start,end:n.end},color:n.color,name:"",cigarOps:n.cigarOps,strand:n.strand,seq:n.seq})),t,0).map(n=>n.map(i=>{var a;return{start:t(i.coordinates.start)<0?0:t(i.coordinates.start),end:t(i.coordinates.end),color:i.color,cigarOps:i.cigarOps.map(o=>({opStart:t(o.opStart)<0?0:t(o.opStart),opEnd:t(o.opEnd),op:o.op})),strand:i.strand,seq:t(i.coordinates.start)<0?(a=i.seq)==null?void 0:a.slice(r.start-i.coordinates.start,i.seq.length):i.seq}}))}const md=e=>{const t=w.useRef(Nt()),r=Ct(e.domain,e.width),n=e.color||"#000000",i=w.useMemo(()=>yd(e.data,r,e.domain),[e.data,e.domain,e.width]),a=e.rowHeight*i.length,o=e.id||t.current.toString();return w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(a)},[i,e.rowHeight,e.onHeightChanged]),p.jsxs("g",{width:e.width,height:a,transform:e.transform,clipPath:`url(#${o})`,children:[p.jsx("defs",{children:p.jsx(Wt,{id:o,width:e.width,height:a})}),i.map((s,c)=>p.jsx("g",{transform:`translate(0, ${c*e.rowHeight})`,children:s.map((u,l)=>{const d=u.cigarOps.map((f,v)=>{let E;return f.op==="S"?E=p.jsx("rect",{height:e.rowHeight*.6,width:f.opEnd-f.opStart<1?1:f.opEnd-f.opStart,x:f.opStart,y:e.rowHeight*.2,style:{fill:"none",strokeDasharray:"2,2",stroke:"black",strokeWidth:.5}},`${l}_${v}`):f.op==="I"?E=p.jsx("rect",{height:e.rowHeight*.6,width:f.opEnd-f.opStart<1?1:f.opEnd-f.opStart,x:f.opStart,y:e.rowHeight*.2,fill:"#ff69b4",children:p.jsx("title",{children:"Insertion"})},`${l}_${v}`):f.op==="D"||f.op==="N"?E=p.jsx("line",{y2:e.rowHeight*.2+e.rowHeight*.6/2,x2:f.opEnd,x1:f.opStart,y1:e.rowHeight*.2+e.rowHeight*.6/2,stroke:"red"},`${l}_${v}`):E=p.jsx("rect",{height:e.rowHeight*.6,width:f.opEnd-f.opStart<1?1:f.opEnd-f.opStart,x:f.opStart,y:e.rowHeight*.2,fill:u.strand!==void 0?u.strand?"#F7F71A":"#53F71A":u.color||n},`${l}_${v}`),E});return p.jsxs("g",{children:[d,e.domain.end-e.domain.start<=200&&u.seq&&p.jsx("text",{fontSize:8,x:u.start,y:e.rowHeight*.2+e.rowHeight*.5,fill:"black",textLength:u.end-u.start,style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:u.seq})]},e.id+"_"+l)})},`group_${c}`))]})},bd=e=>{const t=w.useRef(Nt()),r=Ct(e.domain,e.width),n=e.color||"#000000",i=e.id||t.current.toString(),a=w.useMemo(()=>vd(e.data,r),[e.domain,e.width,e.data]);return w.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),p.jsxs("g",{width:e.width,height:e.height,transform:e.transform,clipPath:`url(#${i})`,children:[p.jsx("defs",{children:p.jsx(Wt,{id:i,width:e.width,height:e.height})}),a.map((o,s)=>p.jsx("rect",{height:e.height*.6,width:o.end-o.start,x:o.start,y:e.height*.2,fill:o.strand!==void 0?o.strand?"#F7F71A":"#53F71A":o.color||n},`${i}_${s}`))]})},Ed={displayMode:Re.DENSE,rowHeight:10};function wd(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},r={...e,trackType:G.BIGBED,displayMode:e.displayMode};switch(e.displayMode){case Re.DENSE:return p.jsx(et,{...r,...t,trackType:G.BAM,displayMode:e.displayMode,children:p.jsx(bd,{...e})});case Re.SQUISH:return p.jsx(et,{...r,...t,trackType:G.BAM,displayMode:e.displayMode,children:p.jsx(md,{...e})});case Re.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigBed`),p.jsx(et,{...r,children:p.jsx(Dr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function xd(e,t){return r=>t.start+(t.end-t.start)*((r-e.start)/(e.end-e.start))}function Od(e,t){const r=e.map(t),n=Math.min(...r),i=Math.max(...r);return{start:n>0?0:n,end:i<0?0:i}}function Sd(e){return t=>{const r=e((t<0,t)),n=e((t<0,0)),i=Math.abs(n-r)/100;return[r*(t<0?-1:1),i,t<0?"scale(1,-1)":""]}}function Td(e,t){const r=w.useMemo(()=>Md(e)?e.importance.map((o,s)=>({base:e.sequence.charAt(s),importance:o})):e,[e]),n=w.useMemo(()=>Od(r,o=>o.importance),[r]),i=xd(n,{start:t,end:0}),a=w.useCallback(Sd(i),[n,t]);return[r,a,i]}function Cd(e,t,r){return w.useMemo(()=>e.map(n=>{const i=t.slice(n.coordinates[0],n.coordinates[1]+1).map(s=>s.importance),a=[Math.min(...i),Math.max(...i)],o=r(a[1]);return{...n,y:o,height:r(a[0])-o}}),[e,r])}var Us={exports:{}};(function(e,t){(function(r,n){e.exports=n()})(Rf,function(){return function(r){var n={};function i(a){if(n[a])return n[a].exports;var o=n[a]={i:a,l:!1,exports:{}};return r[a].call(o.exports,o,o.exports,i),o.l=!0,o.exports}return i.m=r,i.c=n,i.d=function(a,o,s){i.o(a,o)||Object.defineProperty(a,o,{enumerable:!0,get:s})},i.r=function(a){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},i.t=function(a,o){if(1&o&&(a=i(a)),8&o||4&o&&typeof a=="object"&&a&&a.__esModule)return a;var s=Object.create(null);if(i.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:a}),2&o&&typeof a!="string")for(var c in a)i.d(s,c,(function(u){return a[u]}).bind(null,c));return s},i.n=function(a){var o=a&&a.__esModule?function(){return a.default}:function(){return a};return i.d(o,"a",o),o},i.o=function(a,o){return Object.prototype.hasOwnProperty.call(a,o)},i.p="/",i(i.s=5)}([function(r,n,i){r.exports=i(3)},function(r,n,i){r.exports=i(4)},function(r,n,i){/*
52
52
  object-assign
53
53
  (c) Sindre Sorhus
54
54
  @license MIT
@@ -195,7 +195,7 @@ query LD($assembly: String!, $snpids: [String!]) {
195
195
  `)}
196
196
  }
197
197
  }
198
- `,Sl={titleSize:12,ldThreshold:.7,displayMode:Re.FULL,canDrag:!0};function Tl(e){var c,u;const t=w.useContext(Pt),r={...e,trackType:G.LDTRACK,displayMode:e.displayMode},n=_v(Ks),i=ml(_t(n),{variables:{assembly:"GRCh38",snpids:[e.anchor]}}),a=l=>{t({type:ue.UPDATE_PROPS,id:e.id||"",props:{anchor:l.id}})},o=Ks.map(l=>{var d;return{ld:((d=i.data)==null?void 0:d.snpQuery[0][`${l.population}_${l.subpopulation||""}_ld`])||[]}}),s={snps:((c=e.data)==null?void 0:c.snps)||[],ld:o&&((u=o[0])==null?void 0:u.ld)||[]};switch(e.displayMode){case Re.FULL:return p.jsx(et,{...r,loading:i.loading,trackType:G.LDTRACK,displayMode:e.displayMode,children:p.jsx(jd,{...e,onVariantMouseOver:l=>{a(l),e.onVariantMouseOver&&e.onVariantMouseOver(l)},data:s})});default:return console.warn(`Display mode "${e.displayMode}" not supported on BigWig`),p.jsx(et,{...r,children:p.jsx(Dr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}const kv=e=>{const t=e.width<1e3?e.width/8:150,r={...e,height:0,marginSize:t,menuHeight:0,preRenderedWidth:e.width-t,zoomLevel:1,delta:0,highlights:e.highlights||[],tracks:e.tracks||[]};return w.useReducer(Nh,r)};var Cl=Object.prototype.hasOwnProperty;function _l(e,t,r){for(r of e.keys())if(kn(r,t))return r}function kn(e,t){var r,n,i;if(e===t)return!0;if(e&&t&&(r=e.constructor)===t.constructor){if(r===Date)return e.getTime()===t.getTime();if(r===RegExp)return e.toString()===t.toString();if(r===Array){if((n=e.length)===t.length)for(;n--&&kn(e[n],t[n]););return n===-1}if(r===Set){if(e.size!==t.size)return!1;for(n of e)if(i=n,i&&typeof i=="object"&&(i=_l(t,i),!i)||!t.has(i))return!1;return!0}if(r===Map){if(e.size!==t.size)return!1;for(n of e)if(i=n[0],i&&typeof i=="object"&&(i=_l(t,i),!i)||!kn(n[1],t.get(i)))return!1;return!0}if(r===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(r===DataView){if((n=e.byteLength)===t.byteLength)for(;n--&&e.getInt8(n)===t.getInt8(n););return n===-1}if(ArrayBuffer.isView(e)){if((n=e.byteLength)===t.byteLength)for(;n--&&e[n]===t[n];);return n===-1}if(!r||typeof e=="object"){n=0;for(r in e)if(Cl.call(e,r)&&++n&&!Cl.call(t,r)||!(r in t)||!kn(e[r],t[r]))return!1;return Object.keys(t).length===n}}return e!==e&&t!==t}function Dv(e){if(!e||!e.length)throw new Error("useDeepCompareEffect should not be used with no dependencies. Use React.useEffect instead.");if(e.every(Mv))throw new Error("useDeepCompareEffect should not be used with dependencies that are all primitive values. Use React.useEffect instead.")}function Mv(e){return e==null||/^[sbn]/.test(typeof e)}function Lv(e){var t=zn.useRef(e),r=zn.useRef(0);return kn(e,t.current)||(t.current=e,r.current+=1),zn.useMemo(function(){return t.current},[r.current])}function Iv(e,t){return process.env.NODE_ENV!=="production"&&Dv(t),zn.useEffect(e,Lv(t))}function Pv(){const[e,t]=w.useState(null);return{openModal:e,showModal:(i,a,o)=>{t({trackId:i,mouseX:a,mouseY:o})},closeModal:()=>{t(null)}}}function Mi(e,t,r){const[n,i]=w.useState(e),[a,o]=w.useState(r(t)),[s,c]=w.useState(null);return{value:n,valid:a,onChange:l=>{const d=l.target.value,f=d===""?2e3:750;i(d),o(!1),s&&clearTimeout(s);const v=setTimeout(()=>{r(d)||i(t),o(!0)},f);c(v)}}}function Li({children:e}){return p.jsx("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",paddingBlock:"5px"},children:e})}const Nv={position:"fixed",top:"0%",left:"0%",boxShadow:"0 0 10px rgba(0, 0, 0, 0.3)",width:"500px",transform:"translate(-50%, -50%)",background:"#ffffff"},Ii={width:"auto",outline:"#ffffff",border:"1px solid #000000",borderRadius:"2px",paddingRight:"5px"},kl={display:"flex",flexDirection:"column",paddingInline:"5px"},Pi={WebkitAppearance:"none",margin:"0"},Ni={MozAppearance:"textfield",appearance:"textfield"};function Dl(e){switch(e.trackType){case G.BIGWIG:return e.actualHeight;case G.BIGBED:case G.TRANSCRIPT:return e.rowHeight;default:return e.height}}function Av({track:e}){const t=w.useContext(vr),r=w.useContext(Pt),[n,i]=w.useState(t.tracks.find(l=>l.id===e.id)||e),[a,o]=w.useState(Dl(n));w.useEffect(()=>{i(t.tracks.find(l=>l.id===e.id)||e),o(Dl(n))},[e]);const{value:s,valid:c,onChange:u}=Mi((a==null?void 0:a.toString())||"",(a==null?void 0:a.toString())||"",n.trackType===G.BIGWIG?Fv:Rv);return w.useEffect(()=>{c&&(n.trackType===G.BIGWIG?r({type:ue.UPDATE_TRACK,id:n.id,track:{height:parseInt(s)}}):(n.trackType===G.BIGBED||n.trackType===G.TRANSCRIPT)&&r({type:ue.UPDATE_TRACK,id:n.id,track:{rowHeight:parseInt(s)}}))},[s,c]),p.jsxs(Li,{children:[n.trackType===G.BIGWIG?"Height: ":"Row Height: ",p.jsx("input",{id:"heightInput",style:{...Ii,...Pi,...Ni},type:"number",placeholder:(a==null?void 0:a.toString())||"",value:s,onChange:u})]})}function Ml(e){const t=document.getElementById("heightInput");return t?e.length===0?(t.setCustomValidity("Empty input"),t.reportValidity(),!1):isNaN(parseInt(e))?(t.setCustomValidity("Invalid input"),t.reportValidity(),!1):!0:!0}function Fv(e){if(!Ml(e))return!1;const t=document.getElementById("heightInput");return t&&parseInt(e)<50?(t.setCustomValidity("Value must be greater than or equal to 50"),t.reportValidity(),!1):!0}function Rv(e){if(!Ml(e))return!1;const t=document.getElementById("heightInput");return t&&parseInt(e)<10?(t.setCustomValidity("Value must be greater than or equal to 10"),t.reportValidity(),!1):!0}const jv=(e,t,r)=>{if(!r)return!1;const n=document.querySelector('input[id="minInput"]'),i=document.querySelector('input[id="maxInput"]');return!n||!i?!0:e>t?(n.setCustomValidity("Minimum value cannot be greater than maximum value."),n.reportValidity(),!0):e==t?(i.setCustomValidity("Values are equal. Please enter different values."),i.reportValidity(),!0):e<r.min?(n.setCustomValidity("Minimum value cannot be less than the default minimum value."),n.reportValidity(),!0):t>r.max?(i.setCustomValidity("Maximum value cannot be greater than the default maximum value."),i.reportValidity(),!0):!1};function Vv({track:e}){var v,E,x,T,S,_;const t=w.useContext(Pt),[r]=w.useState(((v=e.props)==null?void 0:v.defaultRange)||{min:0,max:0}),[n]=w.useState(((E=e.props)==null?void 0:E.range)||r),i=m=>{const C=document.getElementById("minInput");return C?m.length===0||isNaN(parseFloat(m))?(C.setCustomValidity("Empty input, using default value"),C.reportValidity(),!1):parseFloat(m)<r.min?(C.setCustomValidity("Value must be greater than or equal to "+r.min),C.reportValidity(),!1):(C.setCustomValidity(""),!0):!0},a=m=>{const C=document.getElementById("maxInput");return C?m.length===0||isNaN(parseFloat(m))?(C.setCustomValidity("Empty input, using default value"),C.reportValidity(),!1):parseFloat(m)>r.max?(C.setCustomValidity("Value must be less than or equal to "+r.max),C.reportValidity(),!1):(C.setCustomValidity(""),!0):!0},{value:o,valid:s,onChange:c}=Mi(n.min.toString(),r.min.toString(),i),{value:u,valid:l,onChange:d}=Mi(n.max.toString(),r.max.toString(),a),f=m=>{m.target.select()};return w.useEffect(()=>{!s||!l||jv(parseFloat(o),parseFloat(u),r)||t({type:ue.UPDATE_PROPS,id:e.id,props:{range:{min:parseFloat(o),max:parseFloat(u)}}})},[s,l,o,u]),p.jsxs(Li,{children:[p.jsxs("label",{style:kl,children:["Minimum:",p.jsx("input",{id:"minInput",style:{...Ii,...Pi,...Ni},step:"0.01",type:"number",placeholder:(T=(x=e==null?void 0:e.props)==null?void 0:x.defaultRange)==null?void 0:T.min.toFixed(2),value:Number(o).toFixed(2),onFocus:f,onChange:c})]}),p.jsxs("label",{style:kl,children:["Maximum:",p.jsx("input",{id:"maxInput",style:{...Ii,...Pi,...Ni},step:"0.01",type:"number",placeholder:(_=(S=e==null?void 0:e.props)==null?void 0:S.defaultRange)==null?void 0:_.max.toFixed(2),value:Number(u).toFixed(2),onChange:d,onFocus:f})]})]})}function qv({track:e}){const t=w.useContext(Pt),[r,n]=w.useState(e.version);w.useEffect(()=>{n(e.version)},[e.version]);const i=s=>{n(s);const c=Object.values(Jn).includes(s);t({type:ue.UPDATE_TRACK,id:e.id,track:{version:s,assembly:c?"GRCH38":"mm10"}})},a=s=>({backgroundColor:r===s?e.color:"#858585",color:"white",marginRight:"5px",padding:"10px",border:"none",borderRadius:"5px",cursor:"pointer"}),o=e.assembly.toLowerCase()==="grch38";return p.jsx(Li,{children:p.jsxs("div",{children:[p.jsx("div",{children:o?"Human Assembly Version":"Mouse Assembly Version"}),Object.values(o?Jn:ca).filter(s=>!isNaN(Number(s))).map((s,c)=>p.jsx("button",{onClick:()=>i(Number(s)),style:a(Number(s)),children:s},c))]})})}function Ai(){return(Ai=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function Ll(e,t){if(e==null)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)t.indexOf(r=a[n])>=0||(i[r]=e[r]);return i}function No(e){var t=w.useRef(e),r=w.useRef(function(n){t.current&&t.current(n)});return t.current=e,r.current}var Dn=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=1),e>r?r:e<t?t:e},Mn=function(e){return"touches"in e},Ao=function(e){return e&&e.ownerDocument.defaultView||self},Il=function(e,t,r){var n=e.getBoundingClientRect(),i=Mn(t)?function(a,o){for(var s=0;s<a.length;s++)if(a[s].identifier===o)return a[s];return a[0]}(t.touches,r):t;return{left:Dn((i.pageX-(n.left+Ao(e).pageXOffset))/n.width),top:Dn((i.pageY-(n.top+Ao(e).pageYOffset))/n.height)}},Pl=function(e){!Mn(e)&&e.preventDefault()},Nl=w.memo(function(e){var t=e.onMove,r=e.onKey,n=Ll(e,["onMove","onKey"]),i=w.useRef(null),a=No(t),o=No(r),s=w.useRef(null),c=w.useRef(!1),u=w.useMemo(function(){var v=function(T){Pl(T),(Mn(T)?T.touches.length>0:T.buttons>0)&&i.current?a(Il(i.current,T,s.current)):x(!1)},E=function(){return x(!1)};function x(T){var S=c.current,_=Ao(i.current),m=T?_.addEventListener:_.removeEventListener;m(S?"touchmove":"mousemove",v),m(S?"touchend":"mouseup",E)}return[function(T){var S=T.nativeEvent,_=i.current;if(_&&(Pl(S),!function(C,O){return O&&!Mn(C)}(S,c.current)&&_)){if(Mn(S)){c.current=!0;var m=S.changedTouches||[];m.length&&(s.current=m[0].identifier)}_.focus(),a(Il(_,S,s.current)),x(!0)}},function(T){var S=T.which||T.keyCode;S<37||S>40||(T.preventDefault(),o({left:S===39?.05:S===37?-.05:0,top:S===40?.05:S===38?-.05:0}))},x]},[o,a]),l=u[0],d=u[1],f=u[2];return w.useEffect(function(){return f},[f]),w.createElement("div",Ai({},n,{onTouchStart:l,onMouseDown:l,className:"react-colorful__interactive",ref:i,onKeyDown:d,tabIndex:0,role:"slider"}))}),Fo=function(e){return e.filter(Boolean).join(" ")},Al=function(e){var t=e.color,r=e.left,n=e.top,i=n===void 0?.5:n,a=Fo(["react-colorful__pointer",e.className]);return w.createElement("div",{className:a,style:{top:100*i+"%",left:100*r+"%"}},w.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:t}}))},ft=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=Math.pow(10,t)),Math.round(r*e)/r},$v=function(e){return Qv(Ro(e))},Ro=function(e){return e[0]==="#"&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:e.length===4?ft(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:e.length===8?ft(parseInt(e.substring(6,8),16)/255,2):1}},Uv=function(e){return Wv(zv(e))},Bv=function(e){var t=e.s,r=e.v,n=e.a,i=(200-t)*r/100;return{h:ft(e.h),s:ft(i>0&&i<200?t*r/100/(i<=100?i:200-i)*100:0),l:ft(i/2),a:ft(n,2)}},jo=function(e){var t=Bv(e);return"hsl("+t.h+", "+t.s+"%, "+t.l+"%)"},zv=function(e){var t=e.h,r=e.s,n=e.v,i=e.a;t=t/360*6,r/=100,n/=100;var a=Math.floor(t),o=n*(1-r),s=n*(1-(t-a)*r),c=n*(1-(1-t+a)*r),u=a%6;return{r:ft(255*[n,s,o,o,c,n][u]),g:ft(255*[c,n,n,s,o,o][u]),b:ft(255*[o,o,c,n,n,s][u]),a:ft(i,2)}},Fi=function(e){var t=e.toString(16);return t.length<2?"0"+t:t},Wv=function(e){var t=e.r,r=e.g,n=e.b,i=e.a,a=i<1?Fi(ft(255*i)):"";return"#"+Fi(t)+Fi(r)+Fi(n)+a},Qv=function(e){var t=e.r,r=e.g,n=e.b,i=e.a,a=Math.max(t,r,n),o=a-Math.min(t,r,n),s=o?a===t?(r-n)/o:a===r?2+(n-t)/o:4+(t-r)/o:0;return{h:ft(60*(s<0?s+6:s)),s:ft(a?o/a*100:0),v:ft(a/255*100),a:i}},Hv=w.memo(function(e){var t=e.hue,r=e.onChange,n=Fo(["react-colorful__hue",e.className]);return w.createElement("div",{className:n},w.createElement(Nl,{onMove:function(i){r({h:360*i.left})},onKey:function(i){r({h:Dn(t+360*i.left,0,360)})},"aria-label":"Hue","aria-valuenow":ft(t),"aria-valuemax":"360","aria-valuemin":"0"},w.createElement(Al,{className:"react-colorful__hue-pointer",left:t/360,color:jo({h:t,s:100,v:100,a:1})})))}),Gv=w.memo(function(e){var t=e.hsva,r=e.onChange,n={backgroundColor:jo({h:t.h,s:100,v:100,a:1})};return w.createElement("div",{className:"react-colorful__saturation",style:n},w.createElement(Nl,{onMove:function(i){r({s:100*i.left,v:100-100*i.top})},onKey:function(i){r({s:Dn(t.s+100*i.left,0,100),v:Dn(t.v-100*i.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+ft(t.s)+"%, Brightness "+ft(t.v)+"%"},w.createElement(Al,{className:"react-colorful__saturation-pointer",top:1-t.v/100,left:t.s/100,color:jo(t)})))}),Fl=function(e,t){if(e===t)return!0;for(var r in e)if(e[r]!==t[r])return!1;return!0},Yv=function(e,t){return e.toLowerCase()===t.toLowerCase()||Fl(Ro(e),Ro(t))};function Kv(e,t,r){var n=No(r),i=w.useState(function(){return e.toHsva(t)}),a=i[0],o=i[1],s=w.useRef({color:t,hsva:a});w.useEffect(function(){if(!e.equal(t,s.current.color)){var u=e.toHsva(t);s.current={hsva:u,color:t},o(u)}},[t,e]),w.useEffect(function(){var u;Fl(a,s.current.hsva)||e.equal(u=e.fromHsva(a),s.current.color)||(s.current={hsva:a,color:u},n(u))},[a,e,n]);var c=w.useCallback(function(u){o(function(l){return Object.assign({},l,u)})},[]);return[a,c]}var Xv=typeof window<"u"?w.useLayoutEffect:w.useEffect,Jv=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},Rl=new Map,Zv=function(e){Xv(function(){var t=e.current?e.current.ownerDocument:document;if(t!==void 0&&!Rl.has(t)){var r=t.createElement("style");r.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,Rl.set(t,r);var n=Jv();n&&r.setAttribute("nonce",n),t.head.appendChild(r)}},[])},ey=function(e){var t=e.className,r=e.colorModel,n=e.color,i=n===void 0?r.defaultColor:n,a=e.onChange,o=Ll(e,["className","colorModel","color","onChange"]),s=w.useRef(null);Zv(s);var c=Kv(r,i,a),u=c[0],l=c[1],d=Fo(["react-colorful",t]);return w.createElement("div",Ai({},o,{ref:s,className:d}),w.createElement(Gv,{hsva:u,onChange:l}),w.createElement(Hv,{hue:u.h,onChange:l,className:"react-colorful__last-control"}))},ty={defaultColor:"000",toHsva:$v,fromHsva:function(e){return Uv({h:e.h,s:e.s,v:e.v,a:1})},equal:Yv},ry=function(e){return w.createElement(ey,Ai({},e,{colorModel:ty}))};function ny({track:e}){const t=w.useContext(Pt),[r,n]=w.useState(e),[i,a]=w.useState(r.color),{value:o,valid:s,onChange:c}=Mi(r.title,r.title,ay);w.useEffect(()=>{n(e),a(e.color)},[e.id]);const u=l=>{t({type:ue.UPDATE_TRACK,id:r.id,track:l})};return w.useEffect(()=>{i!==r.color&&u({color:i}),s&&o!==r.title&&u({title:o})},[i,s,o]),p.jsxs(Li,{children:[p.jsx("div",{children:"Color: "}),p.jsx(iy,{color:i||"",onChange:a}),p.jsx("div",{children:"Title: "}),p.jsx("input",{style:{...Ii,...Pi,...Ni},id:"titleInput",type:"text",value:o,placeholder:r.title,onChange:c})]})}function iy({color:e,onChange:t}){const[r,n]=w.useState(!1),i={width:"28px",height:"28px",borderRadius:"8px",border:"3px solid #fff",boxShadow:"0 0 0 1px rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.1)",cursor:"pointer",backgroundColor:e},a={position:"absolute",top:"calc(100% + 2px)",left:"0",borderRadius:"9px",boxShadow:"0 6px 12px rgba(0, 0, 0, 0.15)"};return p.jsxs("div",{style:{position:"relative"},children:[p.jsx("div",{style:i,onClick:()=>n(!r)}),r&&p.jsx("div",{style:a,children:p.jsx(ry,{color:e,onChange:t})})]})}function ay(e){const t=document.getElementById("titleInput");return t==null?!1:e.length===0?(t.setCustomValidity("Empty input"),t.reportValidity(),!1):!0}function oy(){const{openModal:e,closeModal:t}=w.useContext(la),[r,n]=w.useState(!1),i=w.useContext(vr),[a,o]=w.useState(i.tracks.find(l=>l.id===(e==null?void 0:e.trackId))||{});w.useEffect(()=>{o(i.tracks.find(l=>l.id===(e==null?void 0:e.trackId))||{})},[e,i.tracks]);const s=()=>{n(!0)},c=()=>{n(!1)};w.useEffect(()=>{const l=d=>{d.key==="Escape"&&t()};return document.addEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)}},[t]);const u=w.useRef(null);return e?tn.createPortal(p.jsx("div",{className:"modal",children:p.jsx(Xn,{nodeRef:u,handle:".header",onStart:s,onStop:c,children:p.jsxs("div",{ref:u,className:"content",style:{...Nv,position:"absolute",top:e==null?void 0:e.mouseY,left:e==null?void 0:e.mouseX,zIndex:1400},children:[p.jsxs("div",{className:"header",style:{backgroundColor:a.color||"transparent",color:jl(a.color||"transparent"),cursor:r?"grabbing":"grab",display:"flex",flexDirection:"row",justifyContent:"flex-start",alignItems:"center"},children:[p.jsx(sy,{handleClose:t,color:jl(a.color||"transparent")}),p.jsx("div",{style:{margin:"10px"},children:p.jsxs("div",{style:{paddingBottom:"0px",fontSize:"1.2em",fontWeight:"bold"},children:["Configure ",a.title]})})]}),p.jsxs("div",{style:{padding:"5px"},children:[p.jsx(ny,{track:a}),p.jsx(Av,{track:a}),(()=>{switch(a.trackType){case G.BIGWIG:return p.jsx(Vv,{track:a});case G.TRANSCRIPT:return p.jsx(qv,{track:a});default:return null}})()]})]})})}),document.body):null}function sy({handleClose:e,color:t}){const r="25px";return p.jsx("svg",{style:{color:t,fontSize:r,cursor:"pointer",position:"absolute",top:"5px",right:"5px"},onClick:e,width:r,height:r,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.29289 5.29289C5.68342 4.90237 6.31658 4.90237 6.70711 5.29289L12 10.5858L17.2929 5.29289C17.6834 4.90237 18.3166 4.90237 18.7071 5.29289C19.0976 5.68342 19.0976 6.31658 18.7071 6.70711L13.4142 12L18.7071 17.2929C19.0976 17.6834 19.0976 18.3166 18.7071 18.7071C18.3166 19.0976 17.6834 19.0976 17.2929 18.7071L12 13.4142L6.70711 18.7071C6.31658 19.0976 5.68342 19.0976 5.29289 18.7071C4.90237 18.3166 4.90237 17.6834 5.29289 17.2929L10.5858 12L5.29289 6.70711C4.90237 6.31658 4.90237 5.68342 5.29289 5.29289Z",fill:t})})}function jl(e){if(!e)return"#000000";let t,r,n;const i=e.slice(1);return t=parseInt(i.slice(0,2),16),r=parseInt(i.slice(2,4),16),n=parseInt(i.slice(4,6),16),(.299*t+.587*r+.114*n)/255>.5?"#000000":"#ffffff"}function cy(e){return e>=1e9?Math.round(e/1e9)+" Gb":e>=1e6?Math.round(e/1e6)+" Mb":e>=1e3?Math.round(e/1e3)+" kb":e+" bp"}const uy=e=>{const t=w.useMemo(()=>{const r=e.domain.end-e.domain.start,n={start:e.domain.start,end:e.domain.end},i=Ct(n,e.width),o=Math.pow(10,Math.floor(Math.log10(Math.ceil(r/10))))*6,s=(Math.ceil(n.end/o)-Math.ceil(n.start/o))*o/2,c={start:n.start+s/2,end:n.end-s/2},u=[];for(let l=Math.ceil(n.start/o);l<Math.ceil(n.end/o);++l)u.push(p.jsxs("g",{children:[p.jsx("line",{x1:i(l*o),x2:i(l*o),y1:e.height*.6,y2:e.height*.9,stroke:"#000",strokeWidth:.5}),l>=Math.ceil(n.start/o)&&p.jsx("text",{style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},textAnchor:"end",fontSize:e.height/4+"px",x:i(l*o)-5,y:e.height*.85,children:l*o})]},"ruler_"+l));return p.jsxs("g",{width:e.width,height:e.height,children:[p.jsx("line",{x1:i(c.start),x2:i(c.start),y1:e.height*.1,y2:e.height*.4,stroke:"#000",strokeWidth:.5}),p.jsx("line",{x1:i(c.end),x2:i(c.end),y1:e.height*.1,y2:e.height*.4,stroke:"#000",strokeWidth:.5}),p.jsx("line",{x1:i(c.start),x2:i(c.end),y1:e.height*.25,y2:e.height*.25,stroke:"#000",strokeWidth:.5}),p.jsx("text",{style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},x:i(c.start)-5,y:e.height*.35,fontSize:e.height/4+"px",textAnchor:"end",children:cy(c.end-c.start)}),u]})},[e.canDrag===!1&&e.domain]);return p.jsx(Dt,{canDrag:!0,children:t})};function ly(e){return p.jsx(et,{...e,id:"ruler",trackType:G.RULER,children:p.jsx(uy,{...e})})}const fy=e=>{const{x:t,y:r,show:n}=w.useContext(Kt);return p.jsx("g",{transform:`translate(${t}, ${r})`,style:{visibility:n?"visible":"hidden"},children:p.jsx("foreignObject",{width:e.width,height:e.height,style:{overflow:"visible"},children:e.children})})},hy={cursor:"default",fontSize:"12px",padding:"6px 15px 5px 5px"},dy=e=>{var i;const t=w.useCallback(a=>{switch(a){case"download":e.data.downloadSVG&&e.data.downloadSVG();break;default:e.onModeChange&&e.onModeChange(e.data.id,a)}e.setContextMenu({show:!1,x:0,y:0,id:""})},[e.data,e.onModeChange]),[r,n]=w.useState(null);return p.jsx("div",{style:{position:"fixed",background:"white",boxShadow:"0px 2px 10px #999999"},children:(i=e.data.displayModeOptions)==null?void 0:i.map(a=>p.jsx("div",{onMouseOver:()=>n(a),onMouseOut:()=>n(null),onClick:()=>t(a),style:{backgroundColor:e.data.displayMode===a?"#d0d0d0":a===r?"#f0f0f0":"white",...hy},children:e.data.displayMode===a?p.jsx("li",{children:a}):a},a))})};function py(e,t){switch(t.type){case"tooltipChanged":return{...e,tooltip:t.tooltip};case"contextMenuChanged":return{...e,contextmenu:t.contextmenu};default:return e}}function gy({children:e,onModeChange:t}){const[r,n]=w.useReducer(py,{tooltip:{show:!1,x:0,y:0,width:0,height:0,content:void 0},contextmenu:{show:!1,x:0,y:0,id:"",displayMode:void 0,displayModeOptions:void 0}}),i=w.useCallback(o=>{n({type:"tooltipChanged",tooltip:o})},[n]),a=w.useCallback(o=>{n({type:"contextMenuChanged",contextmenu:o})},[n]);return p.jsx(Kt.Provider,{value:{...r.tooltip,setTooltip:i},children:p.jsxs(ha.Provider,{value:{...r.contextmenu,setContextMenu:a},children:[e,p.jsx(fy,{width:r.tooltip.width,height:r.tooltip.height,children:p.jsx("div",{style:{position:"fixed"},children:r.tooltip.content})}),p.jsx(Uh,{width:80,height:150,children:p.jsx(dy,{data:r.contextmenu,onModeChange:t,setContextMenu:a})})]})})}const vy=e=>{const[t,r]=w.useState([0,0]),[n,i]=w.useState(!1),a=w.useCallback((u,l)=>{const d=l.createSVGPoint();d.x=u.clientX,d.y=u.clientY;const f=l.getScreenCTM();return f?d.matrixTransform(f.inverse()):null},[]),o=w.useCallback(u=>{const l=document.getElementById("browserSVG");if(!(l instanceof SVGSVGElement))return;const d=a(u,l);if(!d)return;const f=d.x;r([f,f]),i(!0)},[a]),s=w.useCallback(u=>{if(!n)return;const l=document.getElementById("browserSVG");if(!(l instanceof SVGSVGElement))return;const d=a(u,l);if(!d)return;let f=d.x;f<e.leftMargin&&(f=e.leftMargin),f>e.width&&(f=e.width),r(v=>[v[0],f])},[n,e.width,e.leftMargin,a]),c=w.useCallback(u=>{if(!n||(i(!1),t[1]-t[0]<10))return;u.preventDefault();const l=e.domain.end-e.domain.start,d=e.width-e.leftMargin,f=(Math.min(t[0],t[1])-e.leftMargin)/d,v=(Math.max(t[0],t[1])-e.leftMargin)/d,E={chromosome:e.domain.chromosome,start:Math.floor(e.domain.start+f*l),end:Math.floor(e.domain.start+v*l)};r([0,0]),e.onSelectionEnd(E)},[t]);return w.useEffect(()=>(document.addEventListener("mousemove",s),document.addEventListener("mouseup",c),()=>{document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",c)}),[s,c]),p.jsxs(p.Fragment,{children:[n?tn.createPortal(p.jsx("rect",{id:"selectRegion",fill:"#6666aaaa",stroke:"#000000",strokeWidth:.5,strokeDasharray:"5 5",x:Math.min(t[0],t[1]),y:0,width:Math.abs(t[1]-t[0]),height:e.height}),document.getElementById("browserSVG")):null,p.jsx("rect",{fill:"#ffffff",width:e.width-e.leftMargin,height:e.dragRegionHeight,x:e.leftMargin,y:0,onMouseDown:o})]})};function yy({width:e,innerWidth:t,height:r,svgRef:n,children:i}){return p.jsx("svg",{id:"browserSVG",width:e,viewBox:`0 0 ${t} ${r}`,ref:n,children:i})}function my({children:e,browserState:t,rulerHeight:r}){const[n,i]=w.useState([]);return w.useEffect(()=>{let a=r;const o=t.tracks.map(s=>{const c=a;return a+=s.actualHeight??s.height??0,c});i(o)},[t.tracks]),p.jsx(p.Fragment,{children:n.length>0&&w.Children.map(e,(a,o)=>{const s=a.props,c=n[o];return p.jsx("g",{id:`stacked-track-${s.track.id}`,transform:typeof c=="number"?`translate(0, ${c})`:void 0,children:a},o)})})}const Vl=_t`
198
+ `,Sl={titleSize:12,ldThreshold:.7,displayMode:Re.FULL,canDrag:!0};function Tl(e){var c,u,l;const t=w.useContext(Pt),r={...e,trackType:G.LDTRACK,displayMode:e.displayMode},n=_v(Ks),i=ml(_t(n),{variables:{assembly:"GRCh38",snpids:[e.anchor]}}),a=d=>{t({type:ue.UPDATE_PROPS,id:e.id||"",props:{anchor:d.id}})};let o=[];if(i.data){if(i.data.snpQuery.length===0)return;o=Ks.map(d=>{var f;return{ld:((f=i.data)==null?void 0:f.snpQuery[0][`${d.population}_${d.subpopulation||""}_ld`])||[]}})}const s={snps:((c=e.data)==null?void 0:c.snps)||[],ld:o&&((u=o[0])==null?void 0:u.ld)||((l=e.data)==null?void 0:l.ld)||[]};switch(e.displayMode){case Re.FULL:return p.jsx(et,{...r,loading:s.snps.length===0,trackType:G.LDTRACK,displayMode:e.displayMode,children:p.jsx(jd,{...e,onVariantMouseOver:d=>{a(d),e.onVariantMouseOver&&e.onVariantMouseOver(d)},data:s})});default:return console.warn(`Display mode "${e.displayMode}" not supported on BigWig`),p.jsx(et,{...r,children:p.jsx(Dr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}const kv=e=>{const t=e.width<1e3?e.width/8:150,r={...e,height:0,marginSize:t,menuHeight:0,preRenderedWidth:e.width-t,zoomLevel:1,delta:0,highlights:e.highlights||[],tracks:e.tracks||[]};return w.useReducer(Nh,r)};var Cl=Object.prototype.hasOwnProperty;function _l(e,t,r){for(r of e.keys())if(kn(r,t))return r}function kn(e,t){var r,n,i;if(e===t)return!0;if(e&&t&&(r=e.constructor)===t.constructor){if(r===Date)return e.getTime()===t.getTime();if(r===RegExp)return e.toString()===t.toString();if(r===Array){if((n=e.length)===t.length)for(;n--&&kn(e[n],t[n]););return n===-1}if(r===Set){if(e.size!==t.size)return!1;for(n of e)if(i=n,i&&typeof i=="object"&&(i=_l(t,i),!i)||!t.has(i))return!1;return!0}if(r===Map){if(e.size!==t.size)return!1;for(n of e)if(i=n[0],i&&typeof i=="object"&&(i=_l(t,i),!i)||!kn(n[1],t.get(i)))return!1;return!0}if(r===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(r===DataView){if((n=e.byteLength)===t.byteLength)for(;n--&&e.getInt8(n)===t.getInt8(n););return n===-1}if(ArrayBuffer.isView(e)){if((n=e.byteLength)===t.byteLength)for(;n--&&e[n]===t[n];);return n===-1}if(!r||typeof e=="object"){n=0;for(r in e)if(Cl.call(e,r)&&++n&&!Cl.call(t,r)||!(r in t)||!kn(e[r],t[r]))return!1;return Object.keys(t).length===n}}return e!==e&&t!==t}function Dv(e){if(!e||!e.length)throw new Error("useDeepCompareEffect should not be used with no dependencies. Use React.useEffect instead.");if(e.every(Mv))throw new Error("useDeepCompareEffect should not be used with dependencies that are all primitive values. Use React.useEffect instead.")}function Mv(e){return e==null||/^[sbn]/.test(typeof e)}function Lv(e){var t=zn.useRef(e),r=zn.useRef(0);return kn(e,t.current)||(t.current=e,r.current+=1),zn.useMemo(function(){return t.current},[r.current])}function Iv(e,t){return process.env.NODE_ENV!=="production"&&Dv(t),zn.useEffect(e,Lv(t))}function Pv(){const[e,t]=w.useState(null);return{openModal:e,showModal:(i,a,o)=>{t({trackId:i,mouseX:a,mouseY:o})},closeModal:()=>{t(null)}}}function Mi(e,t,r){const[n,i]=w.useState(e),[a,o]=w.useState(r(t)),[s,c]=w.useState(null);return{value:n,valid:a,onChange:l=>{const d=l.target.value,f=d===""?2e3:750;i(d),o(!1),s&&clearTimeout(s);const v=setTimeout(()=>{r(d)||i(t),o(!0)},f);c(v)}}}function Li({children:e}){return p.jsx("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",paddingBlock:"5px"},children:e})}const Nv={position:"fixed",top:"0%",left:"0%",boxShadow:"0 0 10px rgba(0, 0, 0, 0.3)",width:"500px",transform:"translate(-50%, -50%)",background:"#ffffff"},Ii={width:"auto",outline:"#ffffff",border:"1px solid #000000",borderRadius:"2px",paddingRight:"5px"},kl={display:"flex",flexDirection:"column",paddingInline:"5px"},Pi={WebkitAppearance:"none",margin:"0"},Ni={MozAppearance:"textfield",appearance:"textfield"};function Dl(e){switch(e.trackType){case G.BIGWIG:return e.actualHeight;case G.BIGBED:case G.TRANSCRIPT:return e.rowHeight;default:return e.height}}function Av({track:e}){const t=w.useContext(vr),r=w.useContext(Pt),[n,i]=w.useState(t.tracks.find(l=>l.id===e.id)||e),[a,o]=w.useState(Dl(n));w.useEffect(()=>{i(t.tracks.find(l=>l.id===e.id)||e),o(Dl(n))},[e]);const{value:s,valid:c,onChange:u}=Mi((a==null?void 0:a.toString())||"",(a==null?void 0:a.toString())||"",n.trackType===G.BIGWIG?Fv:Rv);return w.useEffect(()=>{c&&(n.trackType===G.BIGWIG?r({type:ue.UPDATE_TRACK,id:n.id,track:{height:parseInt(s)}}):(n.trackType===G.BIGBED||n.trackType===G.TRANSCRIPT)&&r({type:ue.UPDATE_TRACK,id:n.id,track:{rowHeight:parseInt(s)}}))},[s,c]),p.jsxs(Li,{children:[n.trackType===G.BIGWIG?"Height: ":"Row Height: ",p.jsx("input",{id:"heightInput",style:{...Ii,...Pi,...Ni},type:"number",placeholder:(a==null?void 0:a.toString())||"",value:s,onChange:u})]})}function Ml(e){const t=document.getElementById("heightInput");return t?e.length===0?(t.setCustomValidity("Empty input"),t.reportValidity(),!1):isNaN(parseInt(e))?(t.setCustomValidity("Invalid input"),t.reportValidity(),!1):!0:!0}function Fv(e){if(!Ml(e))return!1;const t=document.getElementById("heightInput");return t&&parseInt(e)<50?(t.setCustomValidity("Value must be greater than or equal to 50"),t.reportValidity(),!1):!0}function Rv(e){if(!Ml(e))return!1;const t=document.getElementById("heightInput");return t&&parseInt(e)<10?(t.setCustomValidity("Value must be greater than or equal to 10"),t.reportValidity(),!1):!0}const jv=(e,t,r)=>{if(!r)return!1;const n=document.querySelector('input[id="minInput"]'),i=document.querySelector('input[id="maxInput"]');return!n||!i?!0:e>t?(n.setCustomValidity("Minimum value cannot be greater than maximum value."),n.reportValidity(),!0):e==t?(i.setCustomValidity("Values are equal. Please enter different values."),i.reportValidity(),!0):e<r.min?(n.setCustomValidity("Minimum value cannot be less than the default minimum value."),n.reportValidity(),!0):t>r.max?(i.setCustomValidity("Maximum value cannot be greater than the default maximum value."),i.reportValidity(),!0):!1};function Vv({track:e}){var v,E,x,T,S,_;const t=w.useContext(Pt),[r]=w.useState(((v=e.props)==null?void 0:v.defaultRange)||{min:0,max:0}),[n]=w.useState(((E=e.props)==null?void 0:E.range)||r),i=m=>{const C=document.getElementById("minInput");return C?m.length===0||isNaN(parseFloat(m))?(C.setCustomValidity("Empty input, using default value"),C.reportValidity(),!1):parseFloat(m)<r.min?(C.setCustomValidity("Value must be greater than or equal to "+r.min),C.reportValidity(),!1):(C.setCustomValidity(""),!0):!0},a=m=>{const C=document.getElementById("maxInput");return C?m.length===0||isNaN(parseFloat(m))?(C.setCustomValidity("Empty input, using default value"),C.reportValidity(),!1):parseFloat(m)>r.max?(C.setCustomValidity("Value must be less than or equal to "+r.max),C.reportValidity(),!1):(C.setCustomValidity(""),!0):!0},{value:o,valid:s,onChange:c}=Mi(n.min.toString(),r.min.toString(),i),{value:u,valid:l,onChange:d}=Mi(n.max.toString(),r.max.toString(),a),f=m=>{m.target.select()};return w.useEffect(()=>{!s||!l||jv(parseFloat(o),parseFloat(u),r)||t({type:ue.UPDATE_PROPS,id:e.id,props:{range:{min:parseFloat(o),max:parseFloat(u)}}})},[s,l,o,u]),p.jsxs(Li,{children:[p.jsxs("label",{style:kl,children:["Minimum:",p.jsx("input",{id:"minInput",style:{...Ii,...Pi,...Ni},step:"0.01",type:"number",placeholder:(T=(x=e==null?void 0:e.props)==null?void 0:x.defaultRange)==null?void 0:T.min.toFixed(2),value:Number(o).toFixed(2),onFocus:f,onChange:c})]}),p.jsxs("label",{style:kl,children:["Maximum:",p.jsx("input",{id:"maxInput",style:{...Ii,...Pi,...Ni},step:"0.01",type:"number",placeholder:(_=(S=e==null?void 0:e.props)==null?void 0:S.defaultRange)==null?void 0:_.max.toFixed(2),value:Number(u).toFixed(2),onChange:d,onFocus:f})]})]})}function qv({track:e}){const t=w.useContext(Pt),[r,n]=w.useState(e.version);w.useEffect(()=>{n(e.version)},[e.version]);const i=s=>{n(s);const c=Object.values(Jn).includes(s);t({type:ue.UPDATE_TRACK,id:e.id,track:{version:s,assembly:c?"GRCH38":"mm10"}})},a=s=>({backgroundColor:r===s?e.color:"#858585",color:"white",marginRight:"5px",padding:"10px",border:"none",borderRadius:"5px",cursor:"pointer"}),o=e.assembly.toLowerCase()==="grch38";return p.jsx(Li,{children:p.jsxs("div",{children:[p.jsx("div",{children:o?"Human Assembly Version":"Mouse Assembly Version"}),Object.values(o?Jn:ca).filter(s=>!isNaN(Number(s))).map((s,c)=>p.jsx("button",{onClick:()=>i(Number(s)),style:a(Number(s)),children:s},c))]})})}function Ai(){return(Ai=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function Ll(e,t){if(e==null)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)t.indexOf(r=a[n])>=0||(i[r]=e[r]);return i}function No(e){var t=w.useRef(e),r=w.useRef(function(n){t.current&&t.current(n)});return t.current=e,r.current}var Dn=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=1),e>r?r:e<t?t:e},Mn=function(e){return"touches"in e},Ao=function(e){return e&&e.ownerDocument.defaultView||self},Il=function(e,t,r){var n=e.getBoundingClientRect(),i=Mn(t)?function(a,o){for(var s=0;s<a.length;s++)if(a[s].identifier===o)return a[s];return a[0]}(t.touches,r):t;return{left:Dn((i.pageX-(n.left+Ao(e).pageXOffset))/n.width),top:Dn((i.pageY-(n.top+Ao(e).pageYOffset))/n.height)}},Pl=function(e){!Mn(e)&&e.preventDefault()},Nl=w.memo(function(e){var t=e.onMove,r=e.onKey,n=Ll(e,["onMove","onKey"]),i=w.useRef(null),a=No(t),o=No(r),s=w.useRef(null),c=w.useRef(!1),u=w.useMemo(function(){var v=function(T){Pl(T),(Mn(T)?T.touches.length>0:T.buttons>0)&&i.current?a(Il(i.current,T,s.current)):x(!1)},E=function(){return x(!1)};function x(T){var S=c.current,_=Ao(i.current),m=T?_.addEventListener:_.removeEventListener;m(S?"touchmove":"mousemove",v),m(S?"touchend":"mouseup",E)}return[function(T){var S=T.nativeEvent,_=i.current;if(_&&(Pl(S),!function(C,O){return O&&!Mn(C)}(S,c.current)&&_)){if(Mn(S)){c.current=!0;var m=S.changedTouches||[];m.length&&(s.current=m[0].identifier)}_.focus(),a(Il(_,S,s.current)),x(!0)}},function(T){var S=T.which||T.keyCode;S<37||S>40||(T.preventDefault(),o({left:S===39?.05:S===37?-.05:0,top:S===40?.05:S===38?-.05:0}))},x]},[o,a]),l=u[0],d=u[1],f=u[2];return w.useEffect(function(){return f},[f]),w.createElement("div",Ai({},n,{onTouchStart:l,onMouseDown:l,className:"react-colorful__interactive",ref:i,onKeyDown:d,tabIndex:0,role:"slider"}))}),Fo=function(e){return e.filter(Boolean).join(" ")},Al=function(e){var t=e.color,r=e.left,n=e.top,i=n===void 0?.5:n,a=Fo(["react-colorful__pointer",e.className]);return w.createElement("div",{className:a,style:{top:100*i+"%",left:100*r+"%"}},w.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:t}}))},ft=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=Math.pow(10,t)),Math.round(r*e)/r},$v=function(e){return Qv(Ro(e))},Ro=function(e){return e[0]==="#"&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:e.length===4?ft(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:e.length===8?ft(parseInt(e.substring(6,8),16)/255,2):1}},Uv=function(e){return Wv(zv(e))},Bv=function(e){var t=e.s,r=e.v,n=e.a,i=(200-t)*r/100;return{h:ft(e.h),s:ft(i>0&&i<200?t*r/100/(i<=100?i:200-i)*100:0),l:ft(i/2),a:ft(n,2)}},jo=function(e){var t=Bv(e);return"hsl("+t.h+", "+t.s+"%, "+t.l+"%)"},zv=function(e){var t=e.h,r=e.s,n=e.v,i=e.a;t=t/360*6,r/=100,n/=100;var a=Math.floor(t),o=n*(1-r),s=n*(1-(t-a)*r),c=n*(1-(1-t+a)*r),u=a%6;return{r:ft(255*[n,s,o,o,c,n][u]),g:ft(255*[c,n,n,s,o,o][u]),b:ft(255*[o,o,c,n,n,s][u]),a:ft(i,2)}},Fi=function(e){var t=e.toString(16);return t.length<2?"0"+t:t},Wv=function(e){var t=e.r,r=e.g,n=e.b,i=e.a,a=i<1?Fi(ft(255*i)):"";return"#"+Fi(t)+Fi(r)+Fi(n)+a},Qv=function(e){var t=e.r,r=e.g,n=e.b,i=e.a,a=Math.max(t,r,n),o=a-Math.min(t,r,n),s=o?a===t?(r-n)/o:a===r?2+(n-t)/o:4+(t-r)/o:0;return{h:ft(60*(s<0?s+6:s)),s:ft(a?o/a*100:0),v:ft(a/255*100),a:i}},Hv=w.memo(function(e){var t=e.hue,r=e.onChange,n=Fo(["react-colorful__hue",e.className]);return w.createElement("div",{className:n},w.createElement(Nl,{onMove:function(i){r({h:360*i.left})},onKey:function(i){r({h:Dn(t+360*i.left,0,360)})},"aria-label":"Hue","aria-valuenow":ft(t),"aria-valuemax":"360","aria-valuemin":"0"},w.createElement(Al,{className:"react-colorful__hue-pointer",left:t/360,color:jo({h:t,s:100,v:100,a:1})})))}),Gv=w.memo(function(e){var t=e.hsva,r=e.onChange,n={backgroundColor:jo({h:t.h,s:100,v:100,a:1})};return w.createElement("div",{className:"react-colorful__saturation",style:n},w.createElement(Nl,{onMove:function(i){r({s:100*i.left,v:100-100*i.top})},onKey:function(i){r({s:Dn(t.s+100*i.left,0,100),v:Dn(t.v-100*i.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+ft(t.s)+"%, Brightness "+ft(t.v)+"%"},w.createElement(Al,{className:"react-colorful__saturation-pointer",top:1-t.v/100,left:t.s/100,color:jo(t)})))}),Fl=function(e,t){if(e===t)return!0;for(var r in e)if(e[r]!==t[r])return!1;return!0},Yv=function(e,t){return e.toLowerCase()===t.toLowerCase()||Fl(Ro(e),Ro(t))};function Kv(e,t,r){var n=No(r),i=w.useState(function(){return e.toHsva(t)}),a=i[0],o=i[1],s=w.useRef({color:t,hsva:a});w.useEffect(function(){if(!e.equal(t,s.current.color)){var u=e.toHsva(t);s.current={hsva:u,color:t},o(u)}},[t,e]),w.useEffect(function(){var u;Fl(a,s.current.hsva)||e.equal(u=e.fromHsva(a),s.current.color)||(s.current={hsva:a,color:u},n(u))},[a,e,n]);var c=w.useCallback(function(u){o(function(l){return Object.assign({},l,u)})},[]);return[a,c]}var Xv=typeof window<"u"?w.useLayoutEffect:w.useEffect,Jv=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},Rl=new Map,Zv=function(e){Xv(function(){var t=e.current?e.current.ownerDocument:document;if(t!==void 0&&!Rl.has(t)){var r=t.createElement("style");r.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,Rl.set(t,r);var n=Jv();n&&r.setAttribute("nonce",n),t.head.appendChild(r)}},[])},ey=function(e){var t=e.className,r=e.colorModel,n=e.color,i=n===void 0?r.defaultColor:n,a=e.onChange,o=Ll(e,["className","colorModel","color","onChange"]),s=w.useRef(null);Zv(s);var c=Kv(r,i,a),u=c[0],l=c[1],d=Fo(["react-colorful",t]);return w.createElement("div",Ai({},o,{ref:s,className:d}),w.createElement(Gv,{hsva:u,onChange:l}),w.createElement(Hv,{hue:u.h,onChange:l,className:"react-colorful__last-control"}))},ty={defaultColor:"000",toHsva:$v,fromHsva:function(e){return Uv({h:e.h,s:e.s,v:e.v,a:1})},equal:Yv},ry=function(e){return w.createElement(ey,Ai({},e,{colorModel:ty}))};function ny({track:e}){const t=w.useContext(Pt),[r,n]=w.useState(e),[i,a]=w.useState(r.color),{value:o,valid:s,onChange:c}=Mi(r.title,r.title,ay);w.useEffect(()=>{n(e),a(e.color)},[e.id]);const u=l=>{t({type:ue.UPDATE_TRACK,id:r.id,track:l})};return w.useEffect(()=>{i!==r.color&&u({color:i}),s&&o!==r.title&&u({title:o})},[i,s,o]),p.jsxs(Li,{children:[p.jsx("div",{children:"Color: "}),p.jsx(iy,{color:i||"",onChange:a}),p.jsx("div",{children:"Title: "}),p.jsx("input",{style:{...Ii,...Pi,...Ni},id:"titleInput",type:"text",value:o,placeholder:r.title,onChange:c})]})}function iy({color:e,onChange:t}){const[r,n]=w.useState(!1),i={width:"28px",height:"28px",borderRadius:"8px",border:"3px solid #fff",boxShadow:"0 0 0 1px rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.1)",cursor:"pointer",backgroundColor:e},a={position:"absolute",top:"calc(100% + 2px)",left:"0",borderRadius:"9px",boxShadow:"0 6px 12px rgba(0, 0, 0, 0.15)"};return p.jsxs("div",{style:{position:"relative"},children:[p.jsx("div",{style:i,onClick:()=>n(!r)}),r&&p.jsx("div",{style:a,children:p.jsx(ry,{color:e,onChange:t})})]})}function ay(e){const t=document.getElementById("titleInput");return t==null?!1:e.length===0?(t.setCustomValidity("Empty input"),t.reportValidity(),!1):!0}function oy(){const{openModal:e,closeModal:t}=w.useContext(la),[r,n]=w.useState(!1),i=w.useContext(vr),[a,o]=w.useState(i.tracks.find(l=>l.id===(e==null?void 0:e.trackId))||{});w.useEffect(()=>{o(i.tracks.find(l=>l.id===(e==null?void 0:e.trackId))||{})},[e,i.tracks]);const s=()=>{n(!0)},c=()=>{n(!1)};w.useEffect(()=>{const l=d=>{d.key==="Escape"&&t()};return document.addEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)}},[t]);const u=w.useRef(null);return e?tn.createPortal(p.jsx("div",{className:"modal",children:p.jsx(Xn,{nodeRef:u,handle:".header",onStart:s,onStop:c,children:p.jsxs("div",{ref:u,className:"content",style:{...Nv,position:"absolute",top:e==null?void 0:e.mouseY,left:e==null?void 0:e.mouseX,zIndex:1400},children:[p.jsxs("div",{className:"header",style:{backgroundColor:a.color||"transparent",color:jl(a.color||"transparent"),cursor:r?"grabbing":"grab",display:"flex",flexDirection:"row",justifyContent:"flex-start",alignItems:"center"},children:[p.jsx(sy,{handleClose:t,color:jl(a.color||"transparent")}),p.jsx("div",{style:{margin:"10px"},children:p.jsxs("div",{style:{paddingBottom:"0px",fontSize:"1.2em",fontWeight:"bold"},children:["Configure ",a.title]})})]}),p.jsxs("div",{style:{padding:"5px"},children:[p.jsx(ny,{track:a}),p.jsx(Av,{track:a}),(()=>{switch(a.trackType){case G.BIGWIG:return p.jsx(Vv,{track:a});case G.TRANSCRIPT:return p.jsx(qv,{track:a});default:return null}})()]})]})})}),document.body):null}function sy({handleClose:e,color:t}){const r="25px";return p.jsx("svg",{style:{color:t,fontSize:r,cursor:"pointer",position:"absolute",top:"5px",right:"5px"},onClick:e,width:r,height:r,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.29289 5.29289C5.68342 4.90237 6.31658 4.90237 6.70711 5.29289L12 10.5858L17.2929 5.29289C17.6834 4.90237 18.3166 4.90237 18.7071 5.29289C19.0976 5.68342 19.0976 6.31658 18.7071 6.70711L13.4142 12L18.7071 17.2929C19.0976 17.6834 19.0976 18.3166 18.7071 18.7071C18.3166 19.0976 17.6834 19.0976 17.2929 18.7071L12 13.4142L6.70711 18.7071C6.31658 19.0976 5.68342 19.0976 5.29289 18.7071C4.90237 18.3166 4.90237 17.6834 5.29289 17.2929L10.5858 12L5.29289 6.70711C4.90237 6.31658 4.90237 5.68342 5.29289 5.29289Z",fill:t})})}function jl(e){if(!e)return"#000000";let t,r,n;const i=e.slice(1);return t=parseInt(i.slice(0,2),16),r=parseInt(i.slice(2,4),16),n=parseInt(i.slice(4,6),16),(.299*t+.587*r+.114*n)/255>.5?"#000000":"#ffffff"}function cy(e){return e>=1e9?Math.round(e/1e9)+" Gb":e>=1e6?Math.round(e/1e6)+" Mb":e>=1e3?Math.round(e/1e3)+" kb":e+" bp"}const uy=e=>{const t=w.useMemo(()=>{const r=e.domain.end-e.domain.start,n={start:e.domain.start,end:e.domain.end},i=Ct(n,e.width),o=Math.pow(10,Math.floor(Math.log10(Math.ceil(r/10))))*6,s=(Math.ceil(n.end/o)-Math.ceil(n.start/o))*o/2,c={start:n.start+s/2,end:n.end-s/2},u=[];for(let l=Math.ceil(n.start/o);l<Math.ceil(n.end/o);++l)u.push(p.jsxs("g",{children:[p.jsx("line",{x1:i(l*o),x2:i(l*o),y1:e.height*.6,y2:e.height*.9,stroke:"#000",strokeWidth:.5}),l>=Math.ceil(n.start/o)&&p.jsx("text",{style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},textAnchor:"end",fontSize:e.height/4+"px",x:i(l*o)-5,y:e.height*.85,children:l*o})]},"ruler_"+l));return p.jsxs("g",{width:e.width,height:e.height,children:[p.jsx("line",{x1:i(c.start),x2:i(c.start),y1:e.height*.1,y2:e.height*.4,stroke:"#000",strokeWidth:.5}),p.jsx("line",{x1:i(c.end),x2:i(c.end),y1:e.height*.1,y2:e.height*.4,stroke:"#000",strokeWidth:.5}),p.jsx("line",{x1:i(c.start),x2:i(c.end),y1:e.height*.25,y2:e.height*.25,stroke:"#000",strokeWidth:.5}),p.jsx("text",{style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},x:i(c.start)-5,y:e.height*.35,fontSize:e.height/4+"px",textAnchor:"end",children:cy(c.end-c.start)}),u]})},[e.canDrag===!1&&e.domain]);return p.jsx(Dt,{canDrag:!0,children:t})};function ly(e){return p.jsx(et,{...e,id:"ruler",trackType:G.RULER,children:p.jsx(uy,{...e})})}const fy=e=>{const{x:t,y:r,show:n}=w.useContext(Kt);return p.jsx("g",{transform:`translate(${t}, ${r})`,style:{visibility:n?"visible":"hidden"},children:p.jsx("foreignObject",{width:e.width,height:e.height,style:{overflow:"visible"},children:e.children})})},hy={cursor:"default",fontSize:"12px",padding:"6px 15px 5px 5px"},dy=e=>{var i;const t=w.useCallback(a=>{switch(a){case"download":e.data.downloadSVG&&e.data.downloadSVG();break;default:e.onModeChange&&e.onModeChange(e.data.id,a)}e.setContextMenu({show:!1,x:0,y:0,id:""})},[e.data,e.onModeChange]),[r,n]=w.useState(null);return p.jsx("div",{style:{position:"fixed",background:"white",boxShadow:"0px 2px 10px #999999"},children:(i=e.data.displayModeOptions)==null?void 0:i.map(a=>p.jsx("div",{onMouseOver:()=>n(a),onMouseOut:()=>n(null),onClick:()=>t(a),style:{backgroundColor:e.data.displayMode===a?"#d0d0d0":a===r?"#f0f0f0":"white",...hy},children:e.data.displayMode===a?p.jsx("li",{children:a}):a},a))})};function py(e,t){switch(t.type){case"tooltipChanged":return{...e,tooltip:t.tooltip};case"contextMenuChanged":return{...e,contextmenu:t.contextmenu};default:return e}}function gy({children:e,onModeChange:t}){const[r,n]=w.useReducer(py,{tooltip:{show:!1,x:0,y:0,width:0,height:0,content:void 0},contextmenu:{show:!1,x:0,y:0,id:"",displayMode:void 0,displayModeOptions:void 0}}),i=w.useCallback(o=>{n({type:"tooltipChanged",tooltip:o})},[n]),a=w.useCallback(o=>{n({type:"contextMenuChanged",contextmenu:o})},[n]);return p.jsx(Kt.Provider,{value:{...r.tooltip,setTooltip:i},children:p.jsxs(ha.Provider,{value:{...r.contextmenu,setContextMenu:a},children:[e,p.jsx(fy,{width:r.tooltip.width,height:r.tooltip.height,children:p.jsx("div",{style:{position:"fixed"},children:r.tooltip.content})}),p.jsx(Uh,{width:80,height:150,children:p.jsx(dy,{data:r.contextmenu,onModeChange:t,setContextMenu:a})})]})})}const vy=e=>{const[t,r]=w.useState([0,0]),[n,i]=w.useState(!1),a=w.useCallback((u,l)=>{const d=l.createSVGPoint();d.x=u.clientX,d.y=u.clientY;const f=l.getScreenCTM();return f?d.matrixTransform(f.inverse()):null},[]),o=w.useCallback(u=>{const l=document.getElementById("browserSVG");if(!(l instanceof SVGSVGElement))return;const d=a(u,l);if(!d)return;const f=d.x;r([f,f]),i(!0)},[a]),s=w.useCallback(u=>{if(!n)return;const l=document.getElementById("browserSVG");if(!(l instanceof SVGSVGElement))return;const d=a(u,l);if(!d)return;let f=d.x;f<e.leftMargin&&(f=e.leftMargin),f>e.width&&(f=e.width),r(v=>[v[0],f])},[n,e.width,e.leftMargin,a]),c=w.useCallback(u=>{if(!n||(i(!1),t[1]-t[0]<10))return;u.preventDefault();const l=e.domain.end-e.domain.start,d=e.width-e.leftMargin,f=(Math.min(t[0],t[1])-e.leftMargin)/d,v=(Math.max(t[0],t[1])-e.leftMargin)/d,E={chromosome:e.domain.chromosome,start:Math.floor(e.domain.start+f*l),end:Math.floor(e.domain.start+v*l)};r([0,0]),e.onSelectionEnd(E)},[t]);return w.useEffect(()=>(document.addEventListener("mousemove",s),document.addEventListener("mouseup",c),()=>{document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",c)}),[s,c]),p.jsxs(p.Fragment,{children:[n?tn.createPortal(p.jsx("rect",{id:"selectRegion",fill:"#6666aaaa",stroke:"#000000",strokeWidth:.5,strokeDasharray:"5 5",x:Math.min(t[0],t[1]),y:0,width:Math.abs(t[1]-t[0]),height:e.height}),document.getElementById("browserSVG")):null,p.jsx("rect",{fill:"#ffffff",width:e.width-e.leftMargin,height:e.dragRegionHeight,x:e.leftMargin,y:0,onMouseDown:o})]})};function yy({width:e,innerWidth:t,height:r,svgRef:n,children:i}){return p.jsx("svg",{id:"browserSVG",width:e,viewBox:`0 0 ${t} ${r}`,ref:n,children:i})}function my({children:e,browserState:t,rulerHeight:r}){const[n,i]=w.useState([]);return w.useEffect(()=>{let a=r;const o=t.tracks.map(s=>{const c=a;return a+=s.actualHeight??s.height??0,c});i(o)},[t.tracks]),p.jsx(p.Fragment,{children:n.length>0&&w.Children.map(e,(a,o)=>{const s=a.props,c=n[o];return p.jsx("g",{id:`stacked-track-${s.track.id}`,transform:typeof c=="number"?`translate(0, ${c})`:void 0,children:a},o)})})}const Vl=_t`
199
199
  query BigRequests($bigRequests: [BigRequest!]!) {
200
200
  bigRequests(requests: $bigRequests) {
201
201
  data
@@ -308,7 +308,7 @@ query Gene($chromosome: String, $assembly: String!, $start: Int, $end: Int, $ver
308
308
  }
309
309
  }
310
310
  }
311
- `;function wy({browserState:e,browserDispatch:t}){const[r,n]=w.useState(),[i,a]=w.useState(),[o,s]=w.useState(),[c,u]=w.useState(),[l,d]=w.useState(),[f,{data:v,loading:E,error:x}]=_n(Vl),[T,{data:S,loading:_,error:m}]=_n(by),[C,{data:O,loading:P,error:A}]=_n(Ey),[j,{data:U,loading:V,error:me}]=_n(Vl),[Le,{data:ye,loading:Oe,error:Ve}]=_n(_t(Cv)),{setDelta:Pe}=w.useContext(ua);return w.useEffect(()=>{n(e.tracks.filter(R=>R.trackType===G.BIGWIG||R.trackType===G.BIGBED).map(R=>({url:R.url||"",chr1:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end,preRenderedWidth:e.preRenderedWidth,zoomLevel:e.zoomLevel})));const K=e.tracks.find(R=>R.trackType===G.TRANSCRIPT);K?(t({type:ue.UPDATE_TRACK,id:K.id,track:{refetch:C}}),a({chromosome:e.domain.chromosome||"chr11",assembly:K.assembly,start:e.domain.start,end:e.domain.end,version:K.version})):a(void 0);const $=e.tracks.find(R=>R.trackType===G.MOTIF);$&&s({range:{chromosome:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end},prange:{chrom:e.domain.chromosome||"chr11",chrom_start:e.domain.start,chrom_end:e.domain.end},assembly:$.assembly,consensus_regex:$.consensusRegex,peaks_accession:$.peaksAccession});const Z=e.tracks.find(R=>R.trackType===G.IMPORTANCE);if(Z){const R=[];R.push({url:Z.url||"",chr1:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end}),R.push({url:Z.signalURL,chr1:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end}),u(R)}const N=e.tracks.find(R=>R.trackType===G.LDTRACK);N&&d({assembly:N.assembly,coordinates:{chromosome:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end}})},[e.tracks.length,e.domain,e.preRenderedWidth,e.zoomLevel]),w.useEffect(()=>{r&&f({variables:{bigRequests:r}})},[r]),w.useEffect(()=>{i&&C({variables:i})},[i]),w.useEffect(()=>{o&&T({variables:o})},[o]),w.useEffect(()=>{c&&j({variables:{bigRequests:c}})},[c]),w.useEffect(()=>{l&&Le({variables:l})},[l]),w.useEffect(()=>{if(E||P||_||V||Oe)return;let K=0;e.tracks.forEach($=>{if($.trackType===G.BIGWIG||$.trackType===G.BIGBED)x?t({type:ue.UPDATE_TRACK,id:$.id,track:{error:x.message||""}}):v&&t({type:ue.UPDATE_TRACK,id:$.id,track:{data:v.bigRequests[K++].data}});else if($.trackType===G.TRANSCRIPT)A?t({type:ue.UPDATE_TRACK,id:$.id,track:{error:A.message||""}}):O&&t({type:ue.UPDATE_TRACK,id:$.id,track:{data:O.gene}});else if($.trackType===G.MOTIF){if(m)t({type:ue.UPDATE_TRACK,id:$.id,track:{error:m.message||""}});else if(S){const Z=S.peaks.peaks.map(R=>({start:R.chrom_start,end:R.chrom_end})),N=S.meme_occurrences.map(R=>({start:R.genomic_region.start,end:R.genomic_region.end,pwm:R.motif.pwm}));t({type:ue.UPDATE_TRACK,id:$.id,track:{data:N,peaks:Z}})}}else if($.trackType===G.IMPORTANCE){if(me)t({type:ue.UPDATE_TRACK,id:$.id,track:{error:me.message||""}});else if(U){const Z=U.bigRequests[0].data[0],N=U.bigRequests[1].data.map(X=>X.value),R={sequence:Z,importance:N};t({type:ue.UPDATE_TRACK,id:$.id,track:{data:R}})}}else if($.trackType===G.LDTRACK){if(Ve)t({type:ue.UPDATE_TRACK,id:$.id,track:{error:Ve.message||""}});else if(ye){const Z=ye.snpQuery.filter(N=>N.coordinates).map(N=>({...N,domain:N.coordinates}));t({type:ue.UPDATE_TRACK,id:$.id,track:{data:{snps:Z,ld:[]}}})}}}),Pe(0)},[v,O,S,U,x,A,m,me,ye,Ve]),null}function xy({domain:e,color:t}){const r=w.useContext(vr);if(e.chromosome&&r.domain.chromosome!=e.chromosome)return null;const[n,i]=w.useState(e.chromosome==null||e.chromosome==""?{start:e.start,end:e.end}:ql(e,r));return w.useEffect(()=>{r.delta==0&&i(e.chromosome==null||e.chromosome==""?{start:e.start,end:e.end}:ql(e,r))},[r.domain,r.delta==0]),p.jsx(Dt,{canDrag:!0,children:p.jsx("rect",{x:n.start-(e.chromosome?0:150),width:n.end-n.start,height:r.height-r.menuHeight,fill:t,fillOpacity:.2,style:{pointerEvents:"none"}})})}function ql(e,t){const r=(e.start-t.domain.start)/(t.domain.end-t.domain.start)*t.preRenderedWidth,n=(e.end-t.domain.start)/(t.domain.end-t.domain.start)*t.preRenderedWidth;return{start:r,end:n}}function Oy({children:e,width:t,browserState:r,browserDispatch:n}){const i=w.useRef(null),[a,o]=w.useState(0),s=Pv(),c=80,u=100,l=E=>{v(1),n({type:ue.SET_LOADING}),n({type:ue.SET_DOMAIN,domain:E}),v(0)},d=(E,x)=>{n({type:ue.UPDATE_TRACK,id:E,track:{displayMode:x}}),x===Re.HIDE&&n({type:ue.DELETE_TRACK,id:E})};Iv(()=>{const E=r.tracks.reduce((x,T)=>x+(T.actualHeight??T.height),0);o(E)},[r.tracks,r.tracks.length]),r.height=c+a+u,r.menuHeight=u,r.marginSize=r.width<1e3?r.width/8:150;const f=w.useRef(!1);w.useEffect(()=>{var x;if(f.current)return;f.current=!0;const E=(x=w.Children.map(e,T=>w.isValidElement(T)?T.props:null))==null?void 0:x.filter(Boolean);E==null||E.forEach(T=>{n({type:ue.ADD_TRACK,track:T}),n({type:ue.BRING_TO_TOP,id:T.id})})},[e,n]);const v=E=>{n({type:ue.SET_DELTA,delta:E})};return p.jsxs(Fh,{browserState:r,browserDispatch:n,modalState:s,deltaContext:{delta:r.delta,setDelta:v},children:[p.jsx(yy,{innerWidth:r.width,width:t,height:r.height,svgRef:i,children:p.jsxs(gy,{onModeChange:d,children:[p.jsx(vy,{width:r.width,height:r.height-c,dragRegionHeight:c,leftMargin:r.marginSize,domain:r.domain,onSelectionEnd:E=>l(E)}),p.jsx(ly,{canDrag:r.delta!=0,width:r.width,height:c,title:"scale",id:"ruler",domain:r.domain,titleSize:12,trackMargin:12}),p.jsx(wy,{browserState:r,browserDispatch:n}),p.jsx(my,{browserState:r,rulerHeight:c,children:r.tracks.map(E=>p.jsx(Sy,{track:E,svgRef:i,browserState:r},E.id+E.height))}),p.jsx("svg",{id:"gb-highlights",x:r.marginSize,x2:r.width,y:0,height:r.height-r.menuHeight,viewBox:`0 0 1500 ${r.height-r.menuHeight}`,children:r.highlights.map(E=>p.jsx(xy,{domain:E.domain,color:E.color},`${E.domain.end}-${E.domain.start}`))})]})}),s.openModal&&p.jsx(oy,{})]})}function Sy({track:e,browserState:t,svgRef:r}){return w.useMemo(()=>{const a=(e.props||{}).transform;if(e.displayMode===Re.HIDE)return null;const{width:o,domain:s}=t;return p.jsx("g",{id:"swap-track-"+e.id,transform:a,children:(()=>{switch(e.trackType){case G.BIGWIG:return p.jsx(Ns,{svgRef:r,...Ps,width:o,domain:s,...e,...e.props,data:e.data});case G.BIGBED:return p.jsx(js,{svgRef:r,...Rs,width:o,domain:s,...e,...e.props,data:e.data});case G.TRANSCRIPT:return p.jsx($s,{svgRef:r,...qs,width:o,domain:s,...e,...e.props,data:e.data});case G.IMPORTANCE:return p.jsx(Ws,{svgRef:r,...zs,width:o,domain:s,...e,...e.props,data:e.data});case G.MOTIF:return p.jsx(Ys,{svgRef:r,...Gs,width:o,domain:s,...e,...e.props,data:e.data});case G.LDTRACK:return p.jsx(Tl,{svgRef:r,...Sl,...e,width:o,domain:s,...e.props,data:e.data});default:return null}})()})},[e,e.props,t,r])}const Ty=new sl({uri:"https://ga.staging.wenglab.org/graphql",cache:new el,connectToDevTools:!0});function Cy({children:e}){return p.jsx(ov,{client:Ty,children:e})}const _y=new Map([["stalk",e=>e.stalk],["gvar",e=>e.default],["gneg",e=>Zn(e.default,.9)]]),ky=e=>{var r;const t=e.type.slice(0,4)==="gpos"?Zn(e.colors.default,1-+e.type.replace(/gpos/g,"")/100):(r=_y.get(e.type))==null?void 0:r.call(null,e.colors);return t===void 0?null:p.jsx("rect",{width:e.width,height:e.height*.8,y:e.height*.1,x:e.x,fill:t,fillOpacity:e.opacity})};function Dy(e,t,r,n){return n?`M ${e} ${r*.1} L ${e+t} ${r/2} L ${e} ${r*.9}`:`M ${e+t} ${r*.1} L ${e} ${r/2} L ${e+t} ${r*.9}`}const My=e=>p.jsx("path",{d:Dy(e.x,e.width,e.height,e.opening),fill:e.color}),Ly=({highlight:e,height:t,x:r})=>{const n=`M ${r(e.start)-5} 0 L ${r(e.start)} ${t*.2} L ${r(e.start)+5} 0`,i=`M ${r(e.start)-5} ${t} L ${r(e.start)} ${t*.8} L ${r(e.start)+5} ${t}`;return p.jsxs(p.Fragment,{children:[p.jsx("path",{d:n,stroke:e.color||"#ff0000",strokeWidth:3,fill:"none"}),p.jsx("path",{d:i,stroke:e.color||"#ff0000",strokeWidth:3,fill:"none"})]})},$l=e=>e.x(e.highlight.end)-e.x(e.highlight.start)<10?p.jsx(Ly,{highlight:e.highlight,x:e.x,height:e.height}):p.jsx("rect",{x:e.x(e.highlight.start),y:0,width:e.x(e.highlight.end)-e.x(e.highlight.start),height:e.height,fill:e.highlight.color||"#ff000088",onMouseOver:e.onMouseOver,onMouseOut:e.onMouseOut,onClick:e.onClick}),Iy={default:"#000000",centromere:"#880000",stalk:"#ff0000"},Py=e=>{const t=e.colors||Iy,r=e.domain||{start:0,end:Math.max(...e.data.map(a=>a.coordinates.end))},n=Ct(r,e.width);let i=0;return p.jsxs("g",{width:e.width,height:e.height,transform:e.transform,children:[e.data.map((a,o)=>{const s=n(a.coordinates.start),c=n(a.coordinates.end)-s;return a.stain==="acen"?p.jsx(My,{width:c,x:s,height:e.height,color:t.centromere,opening:i++===0},o):p.jsx(ky,{type:a.stain,width:c,x:s,height:e.height,colors:t,opacity:e.opacity},o)}),e.highlight?p.jsx($l,{onMouseOut:e.onHighlightMouseOut,onMouseOver:()=>e.onHighlightMouseOver&&e.onHighlightMouseOver(e.highlight,n((e.highlight.start+e.highlight.end)/2),0),onClick:()=>e.onHighlightClick&&e.onHighlightClick(e.highlight,n((e.highlight.start+e.highlight.end)/2),0),highlight:e.highlight,x:n,height:e.height,width:e.width}):null,e.highlights?e.highlights.map((a,o)=>p.jsx($l,{onMouseOut:e.onHighlightMouseOut,onMouseOver:()=>e.onHighlightMouseOver&&e.onHighlightMouseOver(a,n((a.start+a.end)/2),o),highlight:a,x:n,height:e.height,width:e.width,onClick:()=>e.onHighlightClick&&e.onHighlightClick(a,n((a.start+a.end)/2),o)})):null,e.children]})},Ny=_t`
311
+ `;function wy({browserState:e,browserDispatch:t}){const[r,n]=w.useState(),[i,a]=w.useState(),[o,s]=w.useState(),[c,u]=w.useState(),[l,d]=w.useState(),[f,{data:v,loading:E,error:x}]=_n(Vl),[T,{data:S,loading:_,error:m}]=_n(by),[C,{data:O,loading:P,error:A}]=_n(Ey),[j,{data:U,loading:V,error:me}]=_n(Vl),[Le,{data:ye,loading:Oe,error:Ve}]=_n(_t(Cv)),{setDelta:Pe}=w.useContext(ua);return w.useEffect(()=>{n(e.tracks.filter(R=>R.trackType===G.BIGWIG||R.trackType===G.BIGBED).map(R=>({url:R.url||"",chr1:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end,preRenderedWidth:e.preRenderedWidth,zoomLevel:e.zoomLevel})));const K=e.tracks.find(R=>R.trackType===G.TRANSCRIPT);K?(t({type:ue.UPDATE_TRACK,id:K.id,track:{refetch:C}}),a({chromosome:e.domain.chromosome||"chr11",assembly:K.assembly,start:e.domain.start,end:e.domain.end,version:K.version})):a(void 0);const $=e.tracks.find(R=>R.trackType===G.MOTIF);$&&s({range:{chromosome:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end},prange:{chrom:e.domain.chromosome||"chr11",chrom_start:e.domain.start,chrom_end:e.domain.end},assembly:$.assembly,consensus_regex:$.consensusRegex,peaks_accession:$.peaksAccession});const Z=e.tracks.find(R=>R.trackType===G.IMPORTANCE);if(Z){const R=[];R.push({url:Z.url||"",chr1:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end}),R.push({url:Z.signalURL,chr1:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end}),u(R)}const N=e.tracks.find(R=>R.trackType===G.LDTRACK);N&&d({assembly:N.assembly,coordinates:{chromosome:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end}})},[e.tracks.length,e.domain,e.preRenderedWidth,e.zoomLevel]),w.useEffect(()=>{r&&f({variables:{bigRequests:r}})},[r]),w.useEffect(()=>{i&&C({variables:i})},[i]),w.useEffect(()=>{o&&T({variables:o})},[o]),w.useEffect(()=>{c&&j({variables:{bigRequests:c}})},[c]),w.useEffect(()=>{l&&Le({variables:l})},[l]),w.useEffect(()=>{if(E||P||_||V||Oe)return;let K=0;e.tracks.forEach($=>{if($.trackType===G.BIGWIG||$.trackType===G.BIGBED){if(x)t({type:ue.UPDATE_TRACK,id:$.id,track:{error:x.message||""}});else if(v){if(v.bigRequests.length===0)return;t({type:ue.UPDATE_TRACK,id:$.id,track:{data:v.bigRequests[K++].data}})}}else if($.trackType===G.TRANSCRIPT)A?t({type:ue.UPDATE_TRACK,id:$.id,track:{error:A.message||""}}):O&&t({type:ue.UPDATE_TRACK,id:$.id,track:{data:O.gene}});else if($.trackType===G.MOTIF){if(m)t({type:ue.UPDATE_TRACK,id:$.id,track:{error:m.message||""}});else if(S){const Z=S.peaks.peaks.map(R=>({start:R.chrom_start,end:R.chrom_end})),N=S.meme_occurrences.map(R=>({start:R.genomic_region.start,end:R.genomic_region.end,pwm:R.motif.pwm}));t({type:ue.UPDATE_TRACK,id:$.id,track:{data:N,peaks:Z}})}}else if($.trackType===G.IMPORTANCE){if(me)t({type:ue.UPDATE_TRACK,id:$.id,track:{error:me.message||""}});else if(U){const Z=U.bigRequests[0].data[0],N=U.bigRequests[1].data.map(X=>X.value),R={sequence:Z,importance:N};t({type:ue.UPDATE_TRACK,id:$.id,track:{data:R}})}}else if($.trackType===G.LDTRACK){if(Ve)t({type:ue.UPDATE_TRACK,id:$.id,track:{error:Ve.message||""}});else if(ye){const Z=ye.snpQuery.filter(N=>N.coordinates).map(N=>({...N,domain:N.coordinates}));t({type:ue.UPDATE_TRACK,id:$.id,track:{data:{snps:Z,ld:[]}}})}}}),Pe(0)},[v,O,S,U,x,A,m,me,ye,Ve]),null}function xy({domain:e,color:t}){const r=w.useContext(vr);if(e.chromosome&&r.domain.chromosome!=e.chromosome)return null;const[n,i]=w.useState(e.chromosome==null||e.chromosome==""?{start:e.start,end:e.end}:ql(e,r));return w.useEffect(()=>{r.delta==0&&i(e.chromosome==null||e.chromosome==""?{start:e.start,end:e.end}:ql(e,r))},[r.domain,r.delta==0]),p.jsx(Dt,{canDrag:!0,children:p.jsx("rect",{x:n.start-(e.chromosome?0:150),width:n.end-n.start,height:r.height-r.menuHeight,fill:t,fillOpacity:.2,style:{pointerEvents:"none"}})})}function ql(e,t){const r=(e.start-t.domain.start)/(t.domain.end-t.domain.start)*t.preRenderedWidth,n=(e.end-t.domain.start)/(t.domain.end-t.domain.start)*t.preRenderedWidth;return{start:r,end:n}}function Oy({children:e,width:t,browserState:r,browserDispatch:n}){const i=w.useRef(null),[a,o]=w.useState(0),s=Pv(),c=80,u=100,l=E=>{v(1),n({type:ue.SET_LOADING}),n({type:ue.SET_DOMAIN,domain:E}),v(0)},d=(E,x)=>{n({type:ue.UPDATE_TRACK,id:E,track:{displayMode:x}}),x===Re.HIDE&&n({type:ue.DELETE_TRACK,id:E})};Iv(()=>{const E=r.tracks.reduce((x,T)=>x+(T.actualHeight??T.height),0);o(E)},[r.tracks,r.tracks.length]),r.height=c+a+u,r.menuHeight=u,r.marginSize=r.width<1e3?r.width/8:150;const f=w.useRef(!1);w.useEffect(()=>{var x;if(f.current)return;f.current=!0;const E=(x=w.Children.map(e,T=>w.isValidElement(T)?T.props:null))==null?void 0:x.filter(Boolean);E==null||E.forEach(T=>{n({type:ue.ADD_TRACK,track:T}),n({type:ue.BRING_TO_TOP,id:T.id})})},[e,n]);const v=E=>{n({type:ue.SET_DELTA,delta:E})};return p.jsxs(Fh,{browserState:r,browserDispatch:n,modalState:s,deltaContext:{delta:r.delta,setDelta:v},children:[p.jsx(yy,{innerWidth:r.width,width:t,height:r.height,svgRef:i,children:p.jsxs(gy,{onModeChange:d,children:[p.jsx(vy,{width:r.width,height:r.height-c,dragRegionHeight:c,leftMargin:r.marginSize,domain:r.domain,onSelectionEnd:E=>l(E)}),p.jsx(ly,{canDrag:r.delta!=0,width:r.width,height:c,title:"scale",id:"ruler",domain:r.domain,titleSize:12,trackMargin:12}),p.jsx(wy,{browserState:r,browserDispatch:n}),p.jsx(my,{browserState:r,rulerHeight:c,children:r.tracks.map(E=>p.jsx(Sy,{track:E,svgRef:i,browserState:r},E.id+E.height))}),p.jsx("svg",{id:"gb-highlights",x:r.marginSize,x2:r.width,y:0,height:r.height-r.menuHeight,viewBox:`0 0 1500 ${r.height-r.menuHeight}`,children:r.highlights.map(E=>p.jsx(xy,{domain:E.domain,color:E.color},`${E.domain.end}-${E.domain.start}`))})]})}),s.openModal&&p.jsx(oy,{})]})}function Sy({track:e,browserState:t,svgRef:r}){return w.useMemo(()=>{const a=(e.props||{}).transform;if(e.displayMode===Re.HIDE)return null;const{width:o,domain:s}=t;return p.jsx("g",{id:"swap-track-"+e.id,transform:a,children:(()=>{switch(e.trackType){case G.BIGWIG:return p.jsx(Ns,{svgRef:r,...Ps,width:o,domain:s,...e,...e.props,data:e.data});case G.BIGBED:return p.jsx(js,{svgRef:r,...Rs,width:o,domain:s,...e,...e.props,data:e.data});case G.TRANSCRIPT:return p.jsx($s,{svgRef:r,...qs,width:o,domain:s,...e,...e.props,data:e.data});case G.IMPORTANCE:return p.jsx(Ws,{svgRef:r,...zs,width:o,domain:s,...e,...e.props,data:e.data});case G.MOTIF:return p.jsx(Ys,{svgRef:r,...Gs,width:o,domain:s,...e,...e.props,data:e.data});case G.LDTRACK:return p.jsx(Tl,{svgRef:r,...Sl,...e,width:o,domain:s,...e.props,data:e.data});default:return null}})()})},[e,e.props,t,r])}const Ty=new sl({uri:"https://ga.staging.wenglab.org/graphql",cache:new el,connectToDevTools:!0});function Cy({children:e}){return p.jsx(ov,{client:Ty,children:e})}const _y=new Map([["stalk",e=>e.stalk],["gvar",e=>e.default],["gneg",e=>Zn(e.default,.9)]]),ky=e=>{var r;const t=e.type.slice(0,4)==="gpos"?Zn(e.colors.default,1-+e.type.replace(/gpos/g,"")/100):(r=_y.get(e.type))==null?void 0:r.call(null,e.colors);return t===void 0?null:p.jsx("rect",{width:e.width,height:e.height*.8,y:e.height*.1,x:e.x,fill:t,fillOpacity:e.opacity})};function Dy(e,t,r,n){return n?`M ${e} ${r*.1} L ${e+t} ${r/2} L ${e} ${r*.9}`:`M ${e+t} ${r*.1} L ${e} ${r/2} L ${e+t} ${r*.9}`}const My=e=>p.jsx("path",{d:Dy(e.x,e.width,e.height,e.opening),fill:e.color}),Ly=({highlight:e,height:t,x:r})=>{const n=`M ${r(e.start)-5} 0 L ${r(e.start)} ${t*.2} L ${r(e.start)+5} 0`,i=`M ${r(e.start)-5} ${t} L ${r(e.start)} ${t*.8} L ${r(e.start)+5} ${t}`;return p.jsxs(p.Fragment,{children:[p.jsx("path",{d:n,stroke:e.color||"#ff0000",strokeWidth:3,fill:"none"}),p.jsx("path",{d:i,stroke:e.color||"#ff0000",strokeWidth:3,fill:"none"})]})},$l=e=>e.x(e.highlight.end)-e.x(e.highlight.start)<10?p.jsx(Ly,{highlight:e.highlight,x:e.x,height:e.height}):p.jsx("rect",{x:e.x(e.highlight.start),y:0,width:e.x(e.highlight.end)-e.x(e.highlight.start),height:e.height,fill:e.highlight.color||"#ff000088",onMouseOver:e.onMouseOver,onMouseOut:e.onMouseOut,onClick:e.onClick}),Iy={default:"#000000",centromere:"#880000",stalk:"#ff0000"},Py=e=>{const t=e.colors||Iy,r=e.domain||{start:0,end:Math.max(...e.data.map(a=>a.coordinates.end))},n=Ct(r,e.width);let i=0;return p.jsxs("g",{width:e.width,height:e.height,transform:e.transform,children:[e.data.map((a,o)=>{const s=n(a.coordinates.start),c=n(a.coordinates.end)-s;return a.stain==="acen"?p.jsx(My,{width:c,x:s,height:e.height,color:t.centromere,opening:i++===0},o):p.jsx(ky,{type:a.stain,width:c,x:s,height:e.height,colors:t,opacity:e.opacity},o)}),e.highlight?p.jsx($l,{onMouseOut:e.onHighlightMouseOut,onMouseOver:()=>e.onHighlightMouseOver&&e.onHighlightMouseOver(e.highlight,n((e.highlight.start+e.highlight.end)/2),0),onClick:()=>e.onHighlightClick&&e.onHighlightClick(e.highlight,n((e.highlight.start+e.highlight.end)/2),0),highlight:e.highlight,x:n,height:e.height,width:e.width}):null,e.highlights?e.highlights.map((a,o)=>p.jsx($l,{onMouseOut:e.onHighlightMouseOut,onMouseOver:()=>e.onHighlightMouseOver&&e.onHighlightMouseOver(a,n((a.start+a.end)/2),o),highlight:a,x:n,height:e.height,width:e.width,onClick:()=>e.onHighlightClick&&e.onHighlightClick(a,n((a.start+a.end)/2),o)})):null,e.children]})},Ny=_t`
312
312
  query cytobands($assembly: String!, $chromosome: String) {
313
313
  cytoband(assembly: $assembly, chromosome: $chromosome) {
314
314
  stain