@weng-lab/genomebrowser 0.0.15 → 0.0.16
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.cjs.js +1 -1
- package/dist/gbc.cjs.js.map +1 -1
- package/dist/gbc.es.js +10 -10
- package/dist/gbc.es.js.map +1 -1
- package/dist/gbc.umd.js +27 -27
- package/dist/gbc.umd.js.map +1 -1
- package/package.json +2 -2
package/dist/gbc.cjs.js
CHANGED
|
@@ -48,7 +48,7 @@ object-assign
|
|
|
48
48
|
*/var ln,ia;function Yc(){if(ia)return ln;ia=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 ln=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 h in s)t.call(s,h)&&(c[h]=s[h]);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},ln}var fn,aa;function mi(){if(aa)return fn;aa=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return fn=e,fn}var hn,oa;function Vo(){return oa||(oa=1,hn=Function.call.bind(Object.prototype.hasOwnProperty)),hn}var dn,sa;function Xc(){if(sa)return dn;sa=1;var e=function(){};if(process.env.NODE_ENV!=="production"){var t=mi(),r={},n=Vo();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 h;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}h=a[l](o,l,c,s,null,t)}catch(p){h=p}if(h&&!(h 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 h+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),h instanceof Error&&!(h.message in r)){r[h.message]=!0;var v=u?u():"";e("Failed "+s+" type: "+h.message+(v??""))}}}}return i.resetWarningCache=function(){process.env.NODE_ENV!=="production"&&(r={})},dn=i,dn}var vn,ca;function Kc(){if(ca)return vn;ca=1;var e=Lo(),t=Yc(),r=mi(),n=Vo(),i=Xc(),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 vn=function(s,c){var u=typeof Symbol=="function"&&Symbol.iterator,l="@@iterator";function h(C){var k=C&&(u&&C[u]||C[l]);if(typeof k=="function")return k}var f="<<anonymous>>",v={array:m("array"),bigint:m("bigint"),bool:m("boolean"),func:m("function"),number:m("number"),object:m("object"),string:m("string"),symbol:m("symbol"),any:y(),arrayOf:g,element:S(),elementType:E(),instanceOf:_,node:A(),objectOf:I,oneOf:D,oneOfType:j,shape:me,exact:ie};function p(C,k){return C===k?C!==0||1/C===1/k:C!==C&&k!==k}function b(C,k){this.message=C,this.data=k&&typeof k=="object"?k:{},this.stack=""}b.prototype=Error.prototype;function w(C){if(process.env.NODE_ENV!=="production")var k={},V=0;function q(z,U,Q,H,ne,G,Oe){if(H=H||f,G=G||Q,Oe!==r){if(c){var R=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 R.name="Invariant Violation",R}else if(process.env.NODE_ENV!=="production"&&typeof console<"u"){var Fe=H+":"+Q;!k[Fe]&&V<3&&(a("You are manually calling a React.PropTypes validation function for the `"+G+"` prop on `"+H+"`. 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."),k[Fe]=!0,V++)}}return U[Q]==null?z?U[Q]===null?new b("The "+ne+" `"+G+"` is marked as required "+("in `"+H+"`, but its value is `null`.")):new b("The "+ne+" `"+G+"` is marked as required in "+("`"+H+"`, but its value is `undefined`.")):null:C(U,Q,H,ne,G)}var L=q.bind(null,!1);return L.isRequired=q.bind(null,!0),L}function m(C){function k(V,q,L,z,U,Q){var H=V[q],ne=X(H);if(ne!==C){var G=Z(H);return new b("Invalid "+z+" `"+U+"` of type "+("`"+G+"` supplied to `"+L+"`, expected ")+("`"+C+"`."),{expectedType:C})}return null}return w(k)}function y(){return w(o)}function g(C){function k(V,q,L,z,U){if(typeof C!="function")return new b("Property `"+U+"` of component `"+L+"` has invalid PropType notation inside arrayOf.");var Q=V[q];if(!Array.isArray(Q)){var H=X(Q);return new b("Invalid "+z+" `"+U+"` of type "+("`"+H+"` supplied to `"+L+"`, expected an array."))}for(var ne=0;ne<Q.length;ne++){var G=C(Q,ne,L,z,U+"["+ne+"]",r);if(G instanceof Error)return G}return null}return w(k)}function S(){function C(k,V,q,L,z){var U=k[V];if(!s(U)){var Q=X(U);return new b("Invalid "+L+" `"+z+"` of type "+("`"+Q+"` supplied to `"+q+"`, expected a single ReactElement."))}return null}return w(C)}function E(){function C(k,V,q,L,z){var U=k[V];if(!e.isValidElementType(U)){var Q=X(U);return new b("Invalid "+L+" `"+z+"` of type "+("`"+Q+"` supplied to `"+q+"`, expected a single ReactElement type."))}return null}return w(C)}function _(C){function k(V,q,L,z,U){if(!(V[q]instanceof C)){var Q=C.name||f,H=se(V[q]);return new b("Invalid "+z+" `"+U+"` of type "+("`"+H+"` supplied to `"+L+"`, expected ")+("instance of `"+Q+"`."))}return null}return w(k)}function D(C){if(!Array.isArray(C))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 k(V,q,L,z,U){for(var Q=V[q],H=0;H<C.length;H++)if(p(Q,C[H]))return null;var ne=JSON.stringify(C,function(Oe,R){var Fe=Z(R);return Fe==="symbol"?String(R):R});return new b("Invalid "+z+" `"+U+"` of value `"+String(Q)+"` "+("supplied to `"+L+"`, expected one of "+ne+"."))}return w(k)}function I(C){function k(V,q,L,z,U){if(typeof C!="function")return new b("Property `"+U+"` of component `"+L+"` has invalid PropType notation inside objectOf.");var Q=V[q],H=X(Q);if(H!=="object")return new b("Invalid "+z+" `"+U+"` of type "+("`"+H+"` supplied to `"+L+"`, expected an object."));for(var ne in Q)if(n(Q,ne)){var G=C(Q,ne,L,z,U+"."+ne,r);if(G instanceof Error)return G}return null}return w(k)}function j(C){if(!Array.isArray(C))return process.env.NODE_ENV!=="production"&&a("Invalid argument supplied to oneOfType, expected an instance of array."),o;for(var k=0;k<C.length;k++){var V=C[k];if(typeof V!="function")return a("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+le(V)+" at index "+k+"."),o}function q(L,z,U,Q,H){for(var ne=[],G=0;G<C.length;G++){var Oe=C[G],R=Oe(L,z,U,Q,H,r);if(R==null)return null;R.data&&n(R.data,"expectedType")&&ne.push(R.data.expectedType)}var Fe=ne.length>0?", expected one of type ["+ne.join(", ")+"]":"";return new b("Invalid "+Q+" `"+H+"` supplied to "+("`"+U+"`"+Fe+"."))}return w(q)}function A(){function C(k,V,q,L,z){return ue(k[V])?null:new b("Invalid "+L+" `"+z+"` supplied to "+("`"+q+"`, expected a ReactNode."))}return w(C)}function ce(C,k,V,q,L){return new b((C||"React class")+": "+k+" type `"+V+"."+q+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+L+"`.")}function me(C){function k(V,q,L,z,U){var Q=V[q],H=X(Q);if(H!=="object")return new b("Invalid "+z+" `"+U+"` of type `"+H+"` "+("supplied to `"+L+"`, expected `object`."));for(var ne in C){var G=C[ne];if(typeof G!="function")return ce(L,z,U,ne,Z(G));var Oe=G(Q,ne,L,z,U+"."+ne,r);if(Oe)return Oe}return null}return w(k)}function ie(C){function k(V,q,L,z,U){var Q=V[q],H=X(Q);if(H!=="object")return new b("Invalid "+z+" `"+U+"` of type `"+H+"` "+("supplied to `"+L+"`, expected `object`."));var ne=t({},V[q],C);for(var G in ne){var Oe=C[G];if(n(C,G)&&typeof Oe!="function")return ce(L,z,U,G,Z(Oe));if(!Oe)return new b("Invalid "+z+" `"+U+"` key `"+G+"` supplied to `"+L+"`.\nBad object: "+JSON.stringify(V[q],null," ")+`
|
|
49
49
|
Valid keys: `+JSON.stringify(Object.keys(C),null," "));var R=Oe(Q,G,L,z,U+"."+G,r);if(R)return R}return null}return w(k)}function ue(C){switch(typeof C){case"number":case"string":case"undefined":return!0;case"boolean":return!C;case"object":if(Array.isArray(C))return C.every(ue);if(C===null||s(C))return!0;var k=h(C);if(k){var V=k.call(C),q;if(k!==C.entries){for(;!(q=V.next()).done;)if(!ue(q.value))return!1}else for(;!(q=V.next()).done;){var L=q.value;if(L&&!ue(L[1]))return!1}}else return!1;return!0;default:return!1}}function J(C,k){return C==="symbol"?!0:k?k["@@toStringTag"]==="Symbol"||typeof Symbol=="function"&&k instanceof Symbol:!1}function X(C){var k=typeof C;return Array.isArray(C)?"array":C instanceof RegExp?"object":J(k,C)?"symbol":k}function Z(C){if(typeof C>"u"||C===null)return""+C;var k=X(C);if(k==="object"){if(C instanceof Date)return"date";if(C instanceof RegExp)return"regexp"}return k}function le(C){var k=Z(C);switch(k){case"array":case"object":return"an "+k;case"boolean":case"date":case"regexp":return"a "+k;default:return k}}function se(C){return!C.constructor||!C.constructor.name?f:C.constructor.name}return v.checkPropTypes=i,v.resetWarningCache=i.resetWarningCache,v.PropTypes=v,v},vn}var pn,ua;function Jc(){if(ua)return pn;ua=1;var e=mi();function t(){}function r(){}return r.resetWarningCache=t,pn=function(){function n(o,s,c,u,l,h){if(h!==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},pn}if(process.env.NODE_ENV!=="production"){var Zc=Lo(),eu=!0;Vn.exports=Kc()(Zc.isElement,eu)}else Vn.exports=Jc()();var qo=Vn.exports;function Bo(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=Bo(e[t]))&&(n&&(n+=" "),n+=r);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function la(){for(var e,t,r=0,n="";r<arguments.length;)(e=arguments[r++])&&(t=Bo(e))&&(n&&(n+=" "),n+=t);return n}const tu=Object.freeze(Object.defineProperty({__proto__:null,clsx:la,default:la},Symbol.toStringTag,{value:"Module"})),ru=zc(tu);var de={},qe={};Object.defineProperty(qe,"__esModule",{value:!0});qe.dontSetMe=su;qe.findInArray=nu;qe.int=ou;qe.isFunction=iu;qe.isNum=au;function nu(e,t){for(let r=0,n=e.length;r<n;r++)if(t.apply(t,[e[r],r,e]))return e[r]}function iu(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Function]"}function au(e){return typeof e=="number"&&!isNaN(e)}function ou(e){return parseInt(e,10)}function su(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 ht={};Object.defineProperty(ht,"__esModule",{value:!0});ht.browserPrefixToKey=Qo;ht.browserPrefixToStyle=cu;ht.default=void 0;ht.getPrefix=Uo;const yn=["Moz","Webkit","O","ms"];function Uo(){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<yn.length;n++)if(Qo(t,yn[n])in r)return yn[n];return""}function Qo(e,t){return t?"".concat(t).concat(uu(e)):e}function cu(e,t){return t?"-".concat(t.toLowerCase(),"-").concat(e):e}function uu(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}ht.default=Uo();Object.defineProperty(de,"__esModule",{value:!0});de.addClassName=zo;de.addEvent=hu;de.addUserSelectStyles=Su;de.createCSSTransform=bu;de.createSVGTransform=xu;de.getTouch=Eu;de.getTouchIdentifier=wu;de.getTranslation=bi;de.innerHeight=yu;de.innerWidth=gu;de.matchesSelector=Wo;de.matchesSelectorAndParentsTo=fu;de.offsetXYFromParent=mu;de.outerHeight=vu;de.outerWidth=pu;de.removeClassName=Ho;de.removeEvent=du;de.removeUserSelectStyles=Tu;var ke=qe,fa=lu(ht);function $o(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,r=new WeakMap;return($o=function(n){return n?r:t})(e)}function lu(e,t){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var r=$o(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 pr="";function Wo(e,t){return pr||(pr=(0,ke.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(r){return(0,ke.isFunction)(e[r])})),(0,ke.isFunction)(e[pr])?e[pr](t):!1}function fu(e,t,r){let n=e;do{if(Wo(n,t))return!0;if(n===r)return!1;n=n.parentNode}while(n);return!1}function hu(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 du(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 vu(e){let t=e.clientHeight;const r=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,ke.int)(r.borderTopWidth),t+=(0,ke.int)(r.borderBottomWidth),t}function pu(e){let t=e.clientWidth;const r=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,ke.int)(r.borderLeftWidth),t+=(0,ke.int)(r.borderRightWidth),t}function yu(e){let t=e.clientHeight;const r=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,ke.int)(r.paddingTop),t-=(0,ke.int)(r.paddingBottom),t}function gu(e){let t=e.clientWidth;const r=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,ke.int)(r.paddingLeft),t-=(0,ke.int)(r.paddingRight),t}function mu(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 bu(e,t){const r=bi(e,t,"px");return{[(0,fa.browserPrefixToKey)("transform",fa.default)]:r}}function xu(e,t){return bi(e,t,"")}function bi(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 Eu(e,t){return e.targetTouches&&(0,ke.findInArray)(e.targetTouches,r=>t===r.identifier)||e.changedTouches&&(0,ke.findInArray)(e.changedTouches,r=>t===r.identifier)}function wu(e){if(e.targetTouches&&e.targetTouches[0])return e.targetTouches[0].identifier;if(e.changedTouches&&e.changedTouches[0])return e.changedTouches[0].identifier}function Su(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&&zo(e.body,"react-draggable-transparent-selection")}function Tu(e){if(e)try{if(e.body&&Ho(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 zo(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)")))||(e.className+=" ".concat(t))}function Ho(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)"),"g"),"")}var Be={};Object.defineProperty(Be,"__esModule",{value:!0});Be.canDragX=Cu;Be.canDragY=Du;Be.createCoreData=Iu;Be.createDraggableData=Ru;Be.getBoundPosition=Ou;Be.getControlPosition=ku;Be.snapToGrid=_u;var De=qe,xt=de;function Ou(e,t,r){if(!e.props.bounds)return[t,r];let{bounds:n}=e.props;n=typeof n=="string"?n:Mu(n);const i=xi(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,De.int)(l.paddingLeft)+(0,De.int)(u.marginLeft),top:-i.offsetTop+(0,De.int)(l.paddingTop)+(0,De.int)(u.marginTop),right:(0,xt.innerWidth)(c)-(0,xt.outerWidth)(i)-i.offsetLeft+(0,De.int)(l.paddingRight)-(0,De.int)(u.marginRight),bottom:(0,xt.innerHeight)(c)-(0,xt.outerHeight)(i)-i.offsetTop+(0,De.int)(l.paddingBottom)-(0,De.int)(u.marginBottom)}}return(0,De.isNum)(n.right)&&(t=Math.min(t,n.right)),(0,De.isNum)(n.bottom)&&(r=Math.min(r,n.bottom)),(0,De.isNum)(n.left)&&(t=Math.max(t,n.left)),(0,De.isNum)(n.top)&&(r=Math.max(r,n.top)),[t,r]}function _u(e,t,r){const n=Math.round(t/e[0])*e[0],i=Math.round(r/e[1])*e[1];return[n,i]}function Cu(e){return e.props.axis==="both"||e.props.axis==="x"}function Du(e){return e.props.axis==="both"||e.props.axis==="y"}function ku(e,t,r){const n=typeof t=="number"?(0,xt.getTouch)(e,t):null;if(typeof t=="number"&&!n)return null;const i=xi(r),a=r.props.offsetParent||i.offsetParent||i.ownerDocument.body;return(0,xt.offsetXYFromParent)(n||e,a,r.props.scale)}function Iu(e,t,r){const n=!(0,De.isNum)(e.lastX),i=xi(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 Ru(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 Mu(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}function xi(e){const t=e.findDOMNode();if(!t)throw new Error("<DraggableCore>: Unmounted during event!");return t}var $r={},Wr={};Object.defineProperty(Wr,"__esModule",{value:!0});Wr.default=Pu;function Pu(){}Object.defineProperty($r,"__esModule",{value:!0});$r.default=void 0;var gn=ju(x),_e=Ei(qo),Nu=Ei(or),we=de,He=Be,mn=qe,Vt=Ei(Wr);function Ei(e){return e&&e.__esModule?e:{default:e}}function Go(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,r=new WeakMap;return(Go=function(n){return n?r:t})(e)}function ju(e,t){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var r=Go(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 Se(e,t,r){return t=Au(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Au(e){var t=Fu(e,"string");return typeof t=="symbol"?t:String(t)}function Fu(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 Pe={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let Ge=Pe.mouse,zr=class extends gn.Component{constructor(){super(...arguments),Se(this,"dragging",!1),Se(this,"lastX",NaN),Se(this,"lastY",NaN),Se(this,"touchIdentifier",null),Se(this,"mounted",!1),Se(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,we.matchesSelectorAndParentsTo)(t.target,this.props.handle,r)||this.props.cancel&&(0,we.matchesSelectorAndParentsTo)(t.target,this.props.cancel,r))return;t.type==="touchstart"&&t.preventDefault();const i=(0,we.getTouchIdentifier)(t);this.touchIdentifier=i;const a=(0,He.getControlPosition)(t,i,this);if(a==null)return;const{x:o,y:s}=a,c=(0,He.createCoreData)(this,o,s);(0,Vt.default)("DraggableCore: handleDragStart: %j",c),(0,Vt.default)("calling",this.props.onStart),!(this.props.onStart(t,c)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,we.addUserSelectStyles)(n),this.dragging=!0,this.lastX=o,this.lastY=s,(0,we.addEvent)(n,Ge.move,this.handleDrag),(0,we.addEvent)(n,Ge.stop,this.handleDragStop))}),Se(this,"handleDrag",t=>{const r=(0,He.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,He.snapToGrid)(this.props.grid,s,c),!s&&!c)return;n=this.lastX+s,i=this.lastY+c}const a=(0,He.createCoreData)(this,n,i);if((0,Vt.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}),Se(this,"handleDragStop",t=>{if(!this.dragging)return;const r=(0,He.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,He.snapToGrid)(this.props.grid,c,u),n=this.lastX+c,i=this.lastY+u}const a=(0,He.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,we.removeUserSelectStyles)(s.ownerDocument),(0,Vt.default)("DraggableCore: handleDragStop: %j",a),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,s&&((0,Vt.default)("DraggableCore: Removing handlers"),(0,we.removeEvent)(s.ownerDocument,Ge.move,this.handleDrag),(0,we.removeEvent)(s.ownerDocument,Ge.stop,this.handleDragStop))}),Se(this,"onMouseDown",t=>(Ge=Pe.mouse,this.handleDragStart(t))),Se(this,"onMouseUp",t=>(Ge=Pe.mouse,this.handleDragStop(t))),Se(this,"onTouchStart",t=>(Ge=Pe.touch,this.handleDragStart(t))),Se(this,"onTouchEnd",t=>(Ge=Pe.touch,this.handleDragStop(t)))}componentDidMount(){this.mounted=!0;const t=this.findDOMNode();t&&(0,we.addEvent)(t,Pe.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const t=this.findDOMNode();if(t){const{ownerDocument:r}=t;(0,we.removeEvent)(r,Pe.mouse.move,this.handleDrag),(0,we.removeEvent)(r,Pe.touch.move,this.handleDrag),(0,we.removeEvent)(r,Pe.mouse.stop,this.handleDragStop),(0,we.removeEvent)(r,Pe.touch.stop,this.handleDragStop),(0,we.removeEvent)(t,Pe.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,we.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:Nu.default.findDOMNode(this)}render(){return gn.cloneElement(gn.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};$r.default=zr;Se(zr,"displayName","DraggableCore");Se(zr,"propTypes",{allowAnyClick:_e.default.bool,children:_e.default.node.isRequired,disabled:_e.default.bool,enableUserSelectHack:_e.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:_e.default.arrayOf(_e.default.number),handle:_e.default.string,cancel:_e.default.string,nodeRef:_e.default.object,onStart:_e.default.func,onDrag:_e.default.func,onStop:_e.default.func,onMouseDown:_e.default.func,scale:_e.default.number,className:mn.dontSetMe,style:mn.dontSetMe,transform:mn.dontSetMe});Se(zr,"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(x),r=l(qo),n=l(or),i=l(ru),a=de,o=Be,s=qe,c=l($r),u=l(Wr);function l(y){return y&&y.__esModule?y:{default:y}}function h(y){if(typeof WeakMap!="function")return null;var g=new WeakMap,S=new WeakMap;return(h=function(E){return E?S:g})(y)}function f(y,g){if(y&&y.__esModule)return y;if(y===null||typeof y!="object"&&typeof y!="function")return{default:y};var S=h(g);if(S&&S.has(y))return S.get(y);var E={},_=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var D in y)if(D!=="default"&&Object.prototype.hasOwnProperty.call(y,D)){var I=_?Object.getOwnPropertyDescriptor(y,D):null;I&&(I.get||I.set)?Object.defineProperty(E,D,I):E[D]=y[D]}return E.default=y,S&&S.set(y,E),E}function v(){return v=Object.assign?Object.assign.bind():function(y){for(var g=1;g<arguments.length;g++){var S=arguments[g];for(var E in S)Object.prototype.hasOwnProperty.call(S,E)&&(y[E]=S[E])}return y},v.apply(this,arguments)}function p(y,g,S){return g=b(g),g in y?Object.defineProperty(y,g,{value:S,enumerable:!0,configurable:!0,writable:!0}):y[g]=S,y}function b(y){var g=w(y,"string");return typeof g=="symbol"?g:String(g)}function w(y,g){if(typeof y!="object"||y===null)return y;var S=y[Symbol.toPrimitive];if(S!==void 0){var E=S.call(y,g||"default");if(typeof E!="object")return E;throw new TypeError("@@toPrimitive must return a primitive value.")}return(g==="string"?String:Number)(y)}class m extends t.Component{static getDerivedStateFromProps(g,S){let{position:E}=g,{prevPropsPosition:_}=S;return E&&(!_||E.x!==_.x||E.y!==_.y)?((0,u.default)("Draggable: getDerivedStateFromProps %j",{position:E,prevPropsPosition:_}),{x:E.x,y:E.y,prevPropsPosition:{...E}}):null}constructor(g){super(g),p(this,"onDragStart",(S,E)=>{if((0,u.default)("Draggable: onDragStart: %j",E),this.props.onStart(S,(0,o.createDraggableData)(this,E))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),p(this,"onDrag",(S,E)=>{if(!this.state.dragging)return!1;(0,u.default)("Draggable: onDrag: %j",E);const _=(0,o.createDraggableData)(this,E),D={x:_.x,y:_.y,slackX:0,slackY:0};if(this.props.bounds){const{x:j,y:A}=D;D.x+=this.state.slackX,D.y+=this.state.slackY;const[ce,me]=(0,o.getBoundPosition)(this,D.x,D.y);D.x=ce,D.y=me,D.slackX=this.state.slackX+(j-D.x),D.slackY=this.state.slackY+(A-D.y),_.x=D.x,_.y=D.y,_.deltaX=D.x-this.state.x,_.deltaY=D.y-this.state.y}if(this.props.onDrag(S,_)===!1)return!1;this.setState(D)}),p(this,"onDragStop",(S,E)=>{if(!this.state.dragging||this.props.onStop(S,(0,o.createDraggableData)(this,E))===!1)return!1;(0,u.default)("Draggable: onDragStop: %j",E);const D={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:j,y:A}=this.props.position;D.x=j,D.y=A}this.setState(D)}),this.state={dragging:!1,dragged:!1,x:g.position?g.position.x:g.defaultPosition.x,y:g.position?g.position.y:g.defaultPosition.y,prevPropsPosition:{...g.position},slackX:0,slackY:0,isElementSVG:!1},g.position&&!(g.onDrag||g.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 g,S;return(g=(S=this.props)===null||S===void 0||(S=S.nodeRef)===null||S===void 0?void 0:S.current)!==null&&g!==void 0?g:n.default.findDOMNode(this)}render(){const{axis:g,bounds:S,children:E,defaultPosition:_,defaultClassName:D,defaultClassNameDragging:I,defaultClassNameDragged:j,position:A,positionOffset:ce,scale:me,...ie}=this.props;let ue={},J=null;const Z=!!!A||this.state.dragging,le=A||_,se={x:(0,o.canDragX)(this)&&Z?this.state.x:le.x,y:(0,o.canDragY)(this)&&Z?this.state.y:le.y};this.state.isElementSVG?J=(0,a.createSVGTransform)(se,ce):ue=(0,a.createCSSTransform)(se,ce);const C=(0,i.default)(E.props.className||"",D,{[I]:this.state.dragging,[j]:this.state.dragged});return t.createElement(c.default,v({},ie,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(E),{className:C,style:{...E.props.style,...ue},transform:J}))}}e.default=m,p(m,"displayName","Draggable"),p(m,"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}),p(m,"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})})(Fo);const{default:Yo,DraggableCore:Lu}=Fo;Qr.exports=Yo;Qr.exports.default=Yo;Qr.exports.DraggableCore=Lu;var Vu=Qr.exports;const Mr=Ao(Vu),Nt=x.createContext({}),Ue=x.createContext(()=>{});var B=(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))(B||{});function qu(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:[...e.tracks,t.track]};case"updateTrack":const i=e.tracks.find(y=>y.id===t.id);if(i){const y={...i,...t.track};return{...e,tracks:e.tracks.map(g=>g.id===t.id?y:g)}}return e;case"setTrackHeight":return{...e,tracks:e.tracks.map(y=>y.id===t.id?{...y,actualHeight:t.height}:y)};case"setTrackData":return{...e,tracks:e.tracks.map(y=>y.id===t.id?{...y,data:t.data}:y)};case"shiftDomain":const a=Math.floor(t.delta/e.preRenderedWidth*(e.domain.end-e.domain.start));return{...e,domain:{...e.domain,start:e.domain.start-a,end:e.domain.end-a}};case"setLoading":return{...e,tracks:e.tracks.map(y=>({...y,data:[]}))};case"shiftTrack":const o=e.tracks.findIndex(y=>y.id===t.id1);if(o===-1)return e;const s=e.tracks.findIndex(y=>y.id===t.id2);if(s<0||s>=e.tracks.length)return e;const c=[...e.tracks],[u]=c.splice(o,1);return c.splice(s,0,u),{...e,tracks:c};case"swapTracks":const l=e.tracks.findIndex(y=>y.id===t.id1);if(l===-1)return e;const h=e.tracks.findIndex(y=>y.id===t.id2);if(h<0||h>=e.tracks.length)return e;const f=[...e.tracks];return[f[l],f[h]]=[f[h],f[l]],{...e,tracks:f};case"translateTrack":const v=e.tracks.find(y=>y.id===t.id);if(!v)return e;const p={...v.props,transform:`translate(0, ${t.dist})`};return{...e,tracks:e.tracks.map(y=>y.id===v.id?{...y,props:p}:y)};case"removeTranslation":return t.id==="ALL"?{...e,tracks:e.tracks.map(y=>{if(!y.props)return y;const{transform:g,...S}=y.props;return{...y,props:S}})}:{...e,tracks:e.tracks.map(y=>y.id===t.id?{...y,props:(()=>{if(!y.props)return y.props;const{transform:g,...S}=y.props;return S})()}:y)};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(y=>y.id!==t.id)};case"setRange":return{...e,tracks:e.tracks.map(y=>y.id===t.id?{...y,props:{...y.props,range:t.range}}:y)};case"updateProps":return{...e,tracks:e.tracks.map(y=>y.id===t.id?{...y,props:{...y.props,...t.props}}:y)};case"bringToTop":const b=e.tracks.find(y=>y.id===t.id);return b?{...e,tracks:[b,...e.tracks.filter(y=>y.id!==t.id)]}:e;case"setDelta":return{...e,delta:t.delta};case"zoomDomain":const w=(e.domain.start+e.domain.end)/2,m=(e.domain.end-e.domain.start)*t.factor;return{...e,domain:{...e.domain,start:Math.floor(w-m/2),end:Math.ceil(w+m/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(y=>y.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(y=>y.id!==t.id)};default:return e}}const Xo=x.createContext(!1);function Bu({canDrag:e,id:t,height:r,children:n}){var ue;const a=x.useRef(null),o=x.useContext(Ue),s=x.useContext(Nt),[c,u]=x.useState(0),[l,h]=x.useState({x:0,y:0}),[f,v]=x.useState(!1),[p,b]=x.useState({x:0,y:0}),[w,m]=x.useState([]),[y,g]=x.useState([]),[S,E]=x.useState(-1),[_,D]=x.useState(null);x.useEffect(()=>{const J=document.getElementById("browserSVG");D(J)},[]);const I=x.useRef(((ue=s.tracks)==null?void 0:ue.find(J=>J.id===t))||null);x.useEffect(()=>{if(!s.tracks||f)return;const J=s.tracks.map(le=>le.actualHeight||le.height),X=s.tracks.findIndex(le=>le.id===t);let Z=new Array(J.length).fill(0);Z=J.map((le,se)=>se<X?-J.slice(se,X).reduce((C,k)=>C+k,0):se>X?J.slice(X+1,se+1).reduce((C,k)=>C+k,0):0),g(new Array(s.tracks.length).fill(!1)),m(Z)},[s.tracks?s.tracks:[]]);const j=()=>{const J=w.reduce((X,Z,le)=>Math.abs(Z-c)<Math.abs(w[X]-c)?le:X,0);return S!=J&&(S!=-1&&y[S]&&y[J]&&(g(X=>{const Z=[...X];return Z[S]=!1,Z}),o({type:B.REMOVE_TRANSLATION,id:s.tracks[S].id})),g(X=>{const Z=[...X];return Z[J]=!0,Z}),o({type:B.TRANSLATE_TRACK,id:s.tracks[J].id,dist:c<0?r:-r}),E(J)),J},A=()=>{if(!s.tracks)return;const J=s.tracks.find(Z=>Z.id===t);if(!J)return;const X=s.tracks.slice(0,s.tracks.indexOf(J)).reduce((Z,le)=>Z+(le.actualHeight||le.height),0);b({x:0,y:X+80}),u(0),v(!0)},ce=()=>{s.tracks&&(h({x:0,y:0}),v(!1),o({type:B.SHIFT_TRACK,id1:t,id2:s.tracks[j()].id}),o({type:B.REMOVE_TRANSLATION,id:"ALL"}))},me=(J,X)=>{u(X.y),h({x:0,y:X.y});const Z=j(),le=s.tracks.indexOf(I.current);Z==le||s.tracks[Z]},ie=x.useRef(null);return d.jsx(Xo.Provider,{value:f,children:d.jsx(Mr,{nodeRef:a,position:l,axis:"y",handle:".swap-handle",onStart:e&&_?A:()=>!1,onStop:ce,onDrag:me,children:d.jsxs("g",{ref:a,"data-track-id":t,children:[!f&&n,f&&(_?or.createPortal(d.jsx(Mr,{nodeRef:ie,position:{x:0,y:p.y+l.y},axis:"y",children:d.jsx("g",{ref:ie,style:{cursor:"grabbing",filter:"drop-shadow(2px 2px 2px gray)"},children:n})}),_):n)]})})})}x.createContext({});x.createContext(()=>{});const wi=x.createContext({delta:0,setDelta:()=>{}}),Si=x.createContext({openModal:null,showModal:()=>{},closeModal:()=>{}});function Uu({children:e,browserState:t,browserDispatch:r,modalState:n,deltaContext:i}){return d.jsx(Si.Provider,{value:{...n},children:d.jsx(Nt.Provider,{value:t,children:d.jsx(Ue.Provider,{value:r,children:d.jsx(wi.Provider,{value:i,children:e})})})})}var pe=(e=>(e.FULL="full",e.DENSE="dense",e.SQUISH="squish",e.PACK="pack",e.HIDE="hide",e.DOWNLOAD="download",e))(pe||{}),F=(e=>(e.UNDEFINED="undefined",e.RULER="ruler",e.BIGWIG="bigwig",e.BIGBED="bigbed",e.TRANSCRIPT="transcript",e.BAM="bam",e.MOTIF="motif",e.LDTRACK="ldtrack",e))(F||{});function Qu(e){return null}function $u(e){return null}var Pr=(e=>(e[e.V29=29]="V29",e[e.V40=40]="V40",e[e.V47=47]="V47",e))(Pr||{}),Ti=(e=>(e[e.V21=21]="V21",e[e.V25=25]="V25",e[e.V36=36]="V36",e))(Ti||{});function Wu(e){return null}function zu(e){return d.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:[d.jsx("filter",{id:"a",colorInterpolationFilters:"sRGB",height:"1.39486",width:"1.311082",x:"-.155541",y:"-.19743",children:d.jsx("feGaussianBlur",{stdDeviation:"1.2313672"})}),d.jsxs("g",{transform:"matrix(.96344673 0 0 .96344673 -123.36427 -955.289756)",children:[d.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"}),d.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"}),d.jsx("path",{d:"m140.5 998.375-3 6 2.5.8437v3.1563h1v-3.1563l2.5-.8437z",fill:"#fefefe"}),d.jsxs("g",{transform:"rotate(-90)",children:[d.jsx("rect",{height:"18.999969",rx:"1.43934",ry:"1.5",width:"3.049988",x:"-997.41217",y:"131.00003"}),d.jsx("path",{d:"m-996.41217 132.00003h1v16.999969h-1z",fill:"#fefefe"})]})]})]})}function dt(e){return d.jsx("rect",{width:e.width,height:e.height,fill:e.hoverColor||"transparent",fillOpacity:e.hoverColor?.15:0,style:{pointerEvents:"none"}})}function Oi(e){return e/6<10?e<10?e:10:e/6}const ha=({fontSize:e,position:t,width:r,children:n})=>d.jsxs(d.Fragment,{children:[d.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}),d.jsx("line",{x1:r*.96,x2:r,y1:t,y2:t,stroke:"#aaa"})]}),Hu=e=>{const t=Oi(50),[r,n]=x.useState(null);x.useEffect(()=>{const p=document.getElementById("browserSVG");n(p)},[]);const{showModal:i}=x.useContext(Si),[a,o]=x.useState(void 0),s=x.useContext(Ue),c=x.useContext(Nt);let u=-1;c.tracks&&(u=c.tracks.findIndex(p=>p.id===e.trackId));const l=p=>{i(e.trackId,p.clientX,p.clientY)},h=p=>{p.preventDefault(),s({type:B.BRING_TO_TOP,id:e.trackId})};x.useEffect(()=>{o(e.range)},[e.range]);const f=x.useContext(Xo),v=p=>{s({type:B.UPDATE_TRACK,id:e.trackId,track:{hoverColor:p?e.color:void 0}})};return d.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:d.jsxs("g",{onMouseEnter:()=>v(!0),onMouseLeave:()=>v(!1),height:e.height,width:e.width,children:[d.jsx("rect",{x:0,y:0,width:e.width,height:e.height,fill:"white",className:"swap-handle"}),d.jsx(dt,{width:e.width,height:e.height,hoverColor:e.hoverColor}),d.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"}}),d.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}),d.jsx("line",{stroke:"#ccc",x1:e.width,x2:e.width,y1:0,y2:e.height}),e.trackType!==F.RULER&&r&&d.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:[d.jsxs("g",{onClick:l,children:[d.jsx("circle",{cx:7.5,cy:7.5,r:7.5,strokeWidth:0,fill:"transparent"}),d.jsx(Wc,{x:0,y:0,height:15,width:15})]}),u>0&&d.jsxs("g",{onClick:h,children:[d.jsx("circle",{cx:22.5,cy:7.5,r:7.5,strokeWidth:0,fill:"transparent"}),d.jsx(zu,{x:15,y:2,height:15,width:15})]})]}),a&&d.jsxs(d.Fragment,{children:[d.jsx(ha,{position:e.rangePositions.min,width:e.width,fontSize:t||e.height/6,children:Number(a.min).toFixed(2)}),d.jsx(ha,{position:e.rangePositions.max,width:e.width,fontSize:t||e.height/6,children:Number(a.max).toFixed(2)})]})]})})};function Gu(e){return e&&e.props!==void 0}const Yu=0,da=255;function Xu(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 Hr(e,t){e=Xu(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(Yu,i+t*da),da)).toString(16);r+=("00"+a).substr(a.length)}return r}const _i=x.createContext({show:!1,x:0,y:0,id:"",setContextMenu:()=>{},displayMode:void 0}),Ku=e=>{const{x:t,y:r,show:n}=x.useContext(_i);return d.jsx("g",{id:"context-menu",transform:`translate(${t}, ${r})`,style:{visibility:n?"visible":"hidden"},children:d.jsx("foreignObject",{width:e.width,height:e.height,children:e.children})})},sr=(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]},Ju=(e,t)=>{let 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>"},Zu=(e,t,r)=>{let n=new Blob([Ju(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)},el=(e,t)=>e||(!t||!t.substring||!t.length?"":t.length<=20?t:t.substring(0,20)+"..."),Ie=e=>{var y;const t=x.useContext(Ue),r=x.useContext(_i);x.useEffect(()=>{const g=S=>{const E=document.getElementById("context-menu");E&&!E.contains(S.target)&&r.setContextMenu({show:!1,x:0,y:0,id:""})};return document.addEventListener("click",g),()=>{document.removeEventListener("click",g)}},[r]);const n=()=>{var E,_,D,I;const g=(_=(E=e.svgRef)==null?void 0:E.current)==null?void 0:_.getElementById("wrapped-track-"+e.id),S=(I=(D=e.svgRef)==null?void 0:D.current)==null?void 0:I.getElementById("wrapped-track-ruler");Zu(g,S,e.id+".svg")},[i,a]=x.useState(e.height||0),o=x.useCallback(g=>{a(g),e.onHeightChanged&&e.onHeightChanged(g)},[e]);x.useEffect(()=>{t({type:B.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,h=el(e.shortLabel||"",e.title||""),f=i-l,v=e.width<1e3?e.width/8:150,p=e.width-v,b=i/3,m=(y=e.displayMode)==null?void 0:y.toLowerCase();return d.jsx(Bu,{canDrag:e.canDrag||!1,id:e.id,height:i,children:d.jsxs("g",{id:"wrapped-track-"+e.id,children:[d.jsx("rect",{width:e.width,height:i,fill:"white",style:{pointerEvents:"none"}}),d.jsx("line",{stroke:"#ccc",x1:e.width,x2:e.width,y1:0,y2:i,strokeWidth:2}),e.loading&&!e.error&&d.jsx("g",{transform:`translate(${v+(p-b)/2},${(i-b)/2})`,children:d.jsx(Uc,{width:b,height:b})}),e.error&&d.jsxs("g",{transform:`translate(${v+(p-b)/2},${(i-b)/2})`,children:[d.jsx(jo,{width:b,height:b}),d.jsx("g",{transform:`translate(${b/2},${b+10})`,children:d.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&&d.jsxs("g",{id:`title-${e.id}`,children:[d.jsx("text",{style:{cursor:"default"},fill:e.titleColor||"#000000",textAnchor:"middle",x:v+p/2,y:c/2+5,fontSize:`${c}px`,transform:`translate(0,${s})`,alignmentBaseline:"baseline",children:e.title}),e.trackType!==F.RULER&&d.jsx(dt,{width:e.width,height:i,hoverColor:e.hoverColor})]}),!e.loading&&!e.error&&d.jsx("g",{onContextMenu:g=>{if(e.trackType==F.RULER||!e.svgRef)return;g.preventDefault();let S=sr(e.svgRef.current,g);r.setContextMenu({show:!0,x:S[0]>e.width-80?S[0]-80:S[0],y:S[1],id:e.id,displayMode:m,downloadSVG:n,displayModeOptions:tl(e.trackType)})},transform:`translate(${v},${i-f})`,children:x.Children.map(e.children,g=>Gu(g)?x.cloneElement(g,{...g.props,height:f,width:e.width-v,hoverColor:e.hoverColor,onHeightChanged:S=>{o(S+l)}}):g)}),e.height!=0&&d.jsx(Hu,{canDrag:e.canDrag||!1,trackType:e.trackType||F.UNDEFINED,trackId:e.id,color:e.color,hoverColor:e.hoverColor,shortLabel:h,width:v,height:i,rangePositions:{min:i,max:l},range:e.range})]})})};function tl(e){switch(e){case F.BIGBED:case F.BAM:return["dense","squish","hide","download"];case F.BIGWIG:return["full","dense","hide","download"];case F.TRANSCRIPT:return["pack","squish","hide","download"];case F.LDTRACK:return["dense","hide","download"];default:return["hide","download"]}}let yr;const rl=new Uint8Array(16);function nl(){if(!yr&&(yr=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!yr))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return yr(rl)}const xe=[];for(let e=0;e<256;++e)xe.push((e+256).toString(16).slice(1));function il(e,t=0){return xe[e[t+0]]+xe[e[t+1]]+xe[e[t+2]]+xe[e[t+3]]+"-"+xe[e[t+4]]+xe[e[t+5]]+"-"+xe[e[t+6]]+xe[e[t+7]]+"-"+xe[e[t+8]]+xe[e[t+9]]+"-"+xe[e[t+10]]+xe[e[t+11]]+xe[e[t+12]]+xe[e[t+13]]+xe[e[t+14]]+xe[e[t+15]]}let va,bn,xn=0,En=0;function at(e,t,r){let n=t&&r||0;const i=t||new Array(16);e=e||{};let a=e.node||va,o=e.clockseq!==void 0?e.clockseq:bn;if(a==null||o==null){const f=e.random||(e.rng||nl)();a==null&&(a=va=[f[0]|1,f[1],f[2],f[3],f[4],f[5]]),o==null&&(o=bn=(f[6]<<8|f[7])&16383)}let s=e.msecs!==void 0?e.msecs:Date.now(),c=e.nsecs!==void 0?e.nsecs:En+1;const u=s-xn+(c-En)/1e4;if(u<0&&e.clockseq===void 0&&(o=o+1&16383),(u<0||s>xn)&&e.nsecs===void 0&&(c=0),c>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");xn=s,En=c,bn=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 h=s/4294967296*1e4&268435455;i[n++]=h>>>8&255,i[n++]=h&255,i[n++]=h>>>24&15|16,i[n++]=h>>>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||il(i)}function Et(e,t){return` M ${e} ${t}`}function Y(e,t){return` L ${e} ${t}`}function Le(e,t){return r=>(r-e.start)*t/(e.end-e.start)}function Ko(e,t){return r=>e.max===e.min?0:(e.max-r)*t/(e.max-e.min)}function Jo(e,t,r){return Le(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 Gr(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 pa(e){return e!==void 0?""+(e<1e5?e===Math.floor(e)?e:e.toFixed(2):e.toExponential(2)):""}const vt=({width:e,height:t,id:r})=>d.jsx("clipPath",{id:r,children:d.jsx("rect",{x:0,y:0,width:e,height:t})}),jt=x.createContext({show:!1,x:0,y:0,width:0,height:0,content:void 0,setTooltip:()=>{}});var Zo=(e=>(e.ValuedPoint="valuedPoint",e.BigZoomData="bigZoomData",e.BigWigData="bigWigData",e))(Zo||{});function _t(e){return e[0].x!==void 0?"valuedPoint":e[0].minVal!==void 0?"bigZoomData":"bigWigData"}function ya(e){return _t(e)==="bigWigData"?e.map(t=>({...t})):_t(e)==="bigZoomData"?e.map(t=>({...t})):_t(e)==="valuedPoint"?e.map(t=>({...t})):[]}const al=(e,t)=>{switch(_t(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[]}},wn=(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)}),Sr=e=>{switch(_t(e)){case"bigWigData":return wn(e,t=>t.value);case"bigZoomData":return wn(e,t=>t.maxVal);case"valuedPoint":return wn(e,t=>t.max);default:return{min:0,max:0}}};function ga(e){return e.value!==void 0}const ol=e=>{let t={start:e[0].x,end:e[e.length-1].x},r=Jo(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)=>{let 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 es(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=Jo(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=ga(s)?s.value:s.minVal,h=ga(s)?s.value:s.maxVal;l<o.renderPoints[c].min&&(o.renderPoints[c].min=l),h>o.renderPoints[c].max&&(o.renderPoints[c].max=h);for(let f=c+1;f<u;++f)o.renderPoints[f].min=l,o.renderPoints[f].max=h;l<o.range.min&&(o.range.min=l),h>o.range.max&&(o.range.max=h)}),o}function ot({canDrag:e,children:t}){const r=x.useRef(null),n=x.useContext(Ue),[i,a]=x.useState(!1),{delta:o,setDelta:s}=x.useContext(wi),[c,u]=x.useState({x:0,y:0}),[l,h]=x.useState(null);x.useEffect(()=>{const p=document.getElementById("browserSVG");h(p)},[]);const f=(p,b)=>{p.preventDefault(),a(!0),s(o+b.deltaX)},v=()=>{Math.abs(o)<10||(u({x:o,y:0}),n({type:B.SHIFT_DOMAIN,delta:o}),a(!1))};return x.useEffect(()=>{i||u({x:o,y:0})},[o]),d.jsx(Mr,{nodeRef:r,position:c,axis:"x",onStart:e&&l?()=>{}:()=>!1,onDrag:(p,b)=>f(p,b),onStop:v,children:d.jsx("g",{ref:r,height:"100%",style:{cursor:e&&l?i?"grabbing":"grab":"default"},children:t})})}function pt(e,t){return` L ${e} ${t}`}const sl=e=>{const t=x.useContext(Ue),[r,n]=x.useState(ya(e.data)),[i,a]=x.useState();x.useEffect(()=>{const m=Sr(r);m.min===null&&(m.min=0),t({type:B.UPDATE_PROPS,id:e.id,props:{defaultRange:m}}),a(m)},[]),x.useEffect(()=>{const m=ya(e.data);n(al(m,e.range||Sr(m))),e.range===void 0&&t({type:B.UPDATE_PROPS,id:e.id,props:{range:i}})},[e.range,e.data,i]);const o=x.useContext(jt),[s,c]=x.useState(),u=m=>{if(e.svgRef){const y=sr(e.svgRef.current,m);c(y[0]);const S=f.renderPoints.filter(E=>E.min<1/0&&E.max>-1/0).find(E=>E.x===Math.round(y[0]-150));o.setTooltip({show:!0,x:y[0]>e.width-60?y[0]-60+5:y[0]+5,y:y[1]-e.height,height:80,width:60,content:d.jsxs("div",{style:{fontSize:"10px",backgroundColor:"#ffffff",border:"1px solid"},children:["value: ",Number(pa(S==null?void 0:S.max))+Number(pa(S==null?void 0:S.min))/2]})})}},l=()=>{o.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0}),c(void 0)},h=x.useRef(at()),f=x.useMemo(()=>r&&r.length&&_t(r)===Zo.ValuedPoint?{renderPoints:r,range:e.range||Sr(r)}:es(r,e.width),[r,e.width,e.domain]),v=x.useMemo(()=>{const m=Ko(f.range,e.height),y=f.renderPoints.filter(S=>S.min<1/0&&S.max>-1/0),g=S=>Math.max(0,Math.min(e.height,m(S)));return{maxPath:y.reduce((S,E,_,D)=>S+(E.x?pt(E.x,g(D[_-1]?D[_-1].max:0)):"")+pt(E.x,g(E.max)),"M 0 "+g(0)+" ")+pt(e.width,g(0)),minPath:y.reduce((S,E,_,D)=>S+(E.x?pt(E.x,g(D[_-1]?D[_-1].min:0)):"")+pt(E.x,g(E.min)),"M 0 "+g(0)+" ")+pt(e.width,g(0))}},[f,e.height,e.width]),p=e.color||"#000000",b=x.useMemo(()=>e.noTransparency?p:Hr(p,.5),[e]),w=e.id||h.current.toString();return x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),d.jsx(ot,{canDrag:e.canDrag||!1,children:d.jsxs("g",{className:e.className,width:e.width,height:e.height,clipPath:`url(#${w})`,children:[d.jsx("rect",{width:e.width,height:e.height,fill:"white",onMouseOut:l}),d.jsx(dt,{width:e.width,height:e.height,hoverColor:e.hoverColor}),d.jsx("defs",{children:d.jsx(vt,{id:w,width:e.width,height:e.height})}),d.jsx("path",{d:v.maxPath,fill:b,style:{cursor:"default",clipPath:`url(#${w})`},onMouseOut:l,onMouseOver:m=>{m.persist(),u(m)}}),d.jsx("path",{d:v.minPath,fill:p,style:{cursor:"default",clipPath:`url(#${w})`},onMouseOut:l,onMouseOver:m=>{m.persist(),u(m)}}),s!==void 0&&d.jsx("line",{stroke:"#ccc",x1:s-150,x2:s-150,y1:0,y2:e.height})]})})},cl=e=>{const t=x.useRef(at()),r=x.useMemo(()=>e.data&&e.data.length&&e.data[0].x!==void 0?ol(e.data):es(e.data,100),[e.data,e.width,e.domain]);r.range||(r.range=Sr(r.renderPoints));const n=x.useMemo(()=>{const i=Ko(r.range,1),a=r.renderPoints.filter(s=>s.min<1/0&&s.max>-1/0),o=e.color||"#000000";return a.map(s=>Hr(o,i(s.max)))},[e.color,r]);return x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),d.jsx(ot,{canDrag:e.canDrag||!1,children:d.jsxs("g",{className:e.className,width:e.width,height:e.height,children:[d.jsx("defs",{children:d.jsx("linearGradient",{id:t.current,children:n.map((i,a)=>d.jsx("stop",{offset:`${a}%`,stopColor:i},`${t.current}_pt_${a}`))})}),d.jsx("rect",{width:e.width,height:e.height,fill:"white"}),d.jsx("rect",{width:e.width,height:e.height,fill:e.hoverColor||"transparent",fillOpacity:e.hoverColor?.2:0}),d.jsx("rect",{width:e.width,x:0,y:e.height/3,height:e.height/3,fill:`url('#${t.current}')`})]})})},Yr=e=>{x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]);const t=12,r=32,n=e.height,i=e.width;return d.jsxs("g",{className:e.className,width:e.width,height:e.height,transform:e.transform,children:[e.height!=0&&d.jsx("rect",{width:e.width,height:e.height,fill:"none",onClick:e.onClick}),e.error&&d.jsxs("g",{transform:`translate(${t+(i-r)/2},${(n-r)/2})`,children:[d.jsx(jo,{width:r,height:r}),d.jsx("g",{transform:`translate(${r/2},${r+10})`,children:d.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&&d.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})]})},ts={trackType:F.BIGWIG,titleSize:12,trackMargin:12,displayMode:pe.FULL,canDrag:!0,noTransparency:!0,color:"#ff5555"};function rs(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},r={...e,trackType:F.BIGWIG,displayMode:e.displayMode};switch(e.displayMode){case pe.FULL:return d.jsx(Ie,{...r,...t,trackType:F.BIGWIG,displayMode:e.displayMode,children:d.jsx(sl,{...e})});case pe.DENSE:return d.jsx(Ie,{...r,...t,trackType:F.BIGWIG,displayMode:e.displayMode,children:d.jsx(cl,{...e})});case pe.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigWig`),d.jsx(Ie,{...r,children:d.jsx(Yr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function ul(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 ll(e,t){return Gr(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 fl={fontSize:"12px",backgroundColor:"#ffffff",border:"1px solid",padding:"1em"},ns=e=>d.jsxs("div",{style:fl,children:[e.name?`name: ${e.name}`:"",d.jsx("br",{}),e.score!==void 0?`score: ${e.score}`:""]});function is(e,t,r,n,i){const a=x.useContext(jt),o=x.useCallback((c,u)=>{if(!r||!r.current)return;const[l,h]=sr(r.current,c);a.setTooltip({show:!0,x:l>t-100?l-90:l+10,y:h+10,width:100,height:50,content:x.createElement(e,u)})},[e,t,r,a]),s=x.useCallback(()=>{a.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},[a]);return[o,s]}const hl=e=>{const[t,r]=is(e.tooltipContent||ns,e.width,e.svgRef),n=x.useRef(at()),i=x.useCallback(Le(e.domain,e.width),[e.data]),a=e.color||"#000000",o=e.id||n.current.toString(),s=x.useMemo(()=>ul(e.data||[],i),[e.width,e.data,e.domain]);return x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),d.jsx(ot,{canDrag:e.canDrag||!1,children:d.jsxs("g",{width:e.width,height:e.height,clipPath:`url(#${o})`,className:e.className,children:[d.jsx("rect",{width:e.width,height:e.height,fill:"white"}),d.jsx("defs",{children:d.jsx(vt,{id:o,width:e.width,height:e.height})}),s.map((c,u)=>d.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}`)),d.jsx(dt,{width:e.width,height:e.height,hoverColor:e.hoverColor})]})})},dl=e=>{const[t,r]=is(e.tooltipContent||ns,e.width,e.svgRef),n=x.useRef(at()),i=x.useCallback(Le(e.domain,e.width),[e.data]),a=x.useMemo(()=>{const c=e.data?[...e.data]:[];return ll(c,i)},[e.width,e.data,e.domain]),o=e.rowHeight*a.length,s=e.id||n.current.toString();return x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(o)},[a,e.rowHeight,e.onHeightChanged]),d.jsx(ot,{canDrag:e.canDrag||!1,children:d.jsxs("g",{width:e.width,height:o,clipPath:`url(#${s})`,children:[d.jsx("rect",{width:e.width,height:o,fill:"white"}),d.jsx("defs",{children:d.jsx(vt,{id:s,width:e.width,height:o})}),a.map((c,u)=>d.jsx("g",{transform:`translate(0, ${u*e.rowHeight})`,children:c.map((l,h)=>d.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}_${h}`))},`group_${u}`)),d.jsx(dt,{width:e.width,height:o,hoverColor:e.hoverColor})]})})},as={trackType:F.BIGBED,displayMode:pe.SQUISH,rowHeight:10,titleSize:12,trackMargin:12,canDrag:!0};function os(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},r={...e,trackType:F.BIGBED,displayMode:e.displayMode};switch(e.displayMode){case pe.DENSE:return d.jsx(Ie,{...r,...t,trackType:F.BIGBED,displayMode:e.displayMode,children:d.jsx(hl,{...e})});case pe.SQUISH:return d.jsx(Ie,{...r,...t,trackType:F.BIGBED,displayMode:e.displayMode,children:d.jsx(dl,{...e})});case pe.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigBed`),d.jsx(Ie,{...r,children:d.jsx(Yr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function vl(e,t){return e.coordinates.start===t.coordinates.start?e.coordinates.end-t.coordinates.end:e.coordinates.start-t.coordinates.start}function pl(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 yl(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 gl(e,t){var s;const n=e.transcripts.reduce((c,u)=>[...c,...u.exons||[]],[]).sort(vl),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=yl(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 ml(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 bl(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+=Et(s-i,n-i)+Y(s,n)+Y(s-i,n+i)+Y(s,n)+Y(s-i,n-i);else if(r==="-")for(let s=e+10;s<t-10;s+=20)o+=Et(s+i,n-i)+Y(s,n)+Y(s+i,n+i)+Y(s,n)+Y(s+i,n-i);return o+" M "+e+" "+n+" L "+t+" "+n}function xl(e,t,r,n){var h,f;if(e.coordinates.start>n||e.coordinates.end<0)return"";const i=((h=e.UTRs)==null?void 0:h.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 Et(e.coordinates.start,c)+Y(e.coordinates.end,c)+Y(e.coordinates.end,u)+Y(e.coordinates.start,u)+Y(e.coordinates.start,c);if(i[0]&&i[0].coordinates.end===e.coordinates.end)return Et(i[0].coordinates.start,o)+Y(i[0].coordinates.end,o)+Y(i[0].coordinates.end,s)+Y(i[0].coordinates.start,s)+Y(i[0].coordinates.start,o);let l=i[0]?Et(i[0].coordinates.start,o)+Y(i[0].coordinates.end,o)+Y(i[0].coordinates.end,c):Et(e.coordinates.start,c);return l+=a[0]?Y(a[0].coordinates.start,c)+Y(a[0].coordinates.start,o)+Y(a[0].coordinates.end,o)+Y(a[0].coordinates.end,s)+Y(a[0].coordinates.start,s)+Y(a[0].coordinates.start,u):Y(e.coordinates.end,c)+Y(e.coordinates.end,u),l+(i[0]?Y(i[0].coordinates.end,u)+Y(i[0].coordinates.end,s)+Y(i[0].coordinates.start,s)+Y(i[0].coordinates.start,o):Y(e.coordinates.start,u)+Y(e.coordinates.start,c))}function ss(e,t,r,n,i){var s;const a=ml(e,t,r),o={exons:((s=a.exons)==null?void 0:s.reduce((c,u)=>c+xl(u,n/2,n,i),""))||"",introns:bl(a.coordinates.start,a.coordinates.end,a.strand,n/2,n*.19,i)};return{transcript:a,paths:o}}const El=e=>{const t=x.useContext(jt),r=(l,h)=>{if(e.svgRef){let f=sr(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:d.jsx("span",{style:{fontSize:"10px"},children:h.id})})}},n=()=>{t.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},i=x.useRef(at()),a=x.useCallback(Le(e.domain,e.width),[e.data]),o=e.color||"#000000",s=Oi(e.rowHeight)*1.25,c=x.useMemo(()=>Gr(pl(e.data||[],e.domain),a,s).map((l,h)=>({y:h*e.rowHeight,transcripts:l.map(f=>ss(f,a,e.domain,e.rowHeight,e.width))})),[e.data,e.rowHeight,e.width,e.domain]),u=x.useMemo(()=>e.rowHeight*c.length,[e.rowHeight,c.length]);return x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(u)},[u]),d.jsx(ot,{canDrag:e.canDrag||!1,children:d.jsxs("g",{children:[d.jsx("rect",{width:e.width,height:u,fill:"white"}),d.jsx("defs",{children:d.jsx(vt,{id:i.current,width:e.width,height:c.length*e.rowHeight})}),c.map((l,h)=>d.jsx("g",{style:{clipPath:`url(#${i.current})`},transform:`translate(0,${l.y})`,height:e.rowHeight,width:e.width,children:l.transcripts.map((f,v)=>d.jsxs(x.Fragment,{children:[d.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:p=>r(p,f.transcript),onMouseOut:n,onClick:()=>e.onTranscriptClick&&e.onTranscriptClick(f.transcript)}),d.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_${h}`)),d.jsx(dt,{width:e.width,height:u,hoverColor:e.hoverColor})]})})},wl=e=>{const t=x.useContext(jt),r=(l,h)=>{if(e.svgRef){let f=sr(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:d.jsx("span",{style:{fontSize:"10px"},children:h.id})})}},n=()=>{t.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},i=x.useRef(at()),a=x.useCallback(Le(e.domain,e.width),[e.data]),o=e.color||"#000000",s=Oi(e.rowHeight)*1.25,c=x.useMemo(()=>{var l;return Gr(((l=e.data)==null?void 0:l.map(h=>gl(h,e.geneName)))||[],a,s).map((h,f)=>({y:f*e.rowHeight,transcripts:h.map(v=>ss(v,a,e.domain,e.rowHeight,e.width))}))},[e.data,e.rowHeight,e.width,e.domain]),u=x.useMemo(()=>e.rowHeight*c.length,[e.rowHeight,c.length]);return x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(u)},[u]),d.jsx(ot,{canDrag:e.canDrag||!1,children:d.jsxs("g",{children:[d.jsx("rect",{width:e.width,height:u,fill:"white"}),d.jsx("defs",{children:d.jsx(vt,{id:i.current,width:e.width,height:c.length*e.rowHeight})}),c.map((l,h)=>d.jsx("g",{style:{clipPath:`url(#${i.current})`},transform:`translate(0,${l.y})`,height:e.rowHeight,width:e.width,children:l.transcripts.map((f,v)=>d.jsxs(x.Fragment,{children:[d.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:p=>r(p,f.transcript),onMouseOut:n,onClick:()=>e.onTranscriptClick&&e.onTranscriptClick(f.transcript)}),d.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_${h}`)),d.jsx(dt,{width:e.width,height:u,hoverColor:e.hoverColor})]})})},cs={trackType:F.TRANSCRIPT,displayMode:pe.SQUISH,rowHeight:14,titleSize:12,trackMargin:12,canDrag:!0};function us(e){const[t,r]=x.useState(!(e.data&&e.data[0])),[n,i]=x.useState(e.data),a={...e,trackType:F.TRANSCRIPT,displayMode:e.displayMode};switch(x.useEffect(()=>{e.data&&e.data.length>0?(i(e.data),r(!1)):r(!0)},[e.data]),x.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 pe.PACK:return d.jsx(Ie,{...a,loading:t,trackType:F.TRANSCRIPT,displayMode:e.displayMode,children:d.jsx(El,{...e,data:n})});case pe.SQUISH:return d.jsx(Ie,{...a,loading:t,trackType:F.TRANSCRIPT,displayMode:e.displayMode,children:d.jsx(wl,{...e,data:n})});case pe.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigWig`),d.jsx(Ie,{...a,children:d.jsx(Yr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function Sl(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 Tl(e,t,r){return Gr(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 Ol=e=>{const t=x.useRef(at()),r=Le(e.domain,e.width),n=e.color||"#000000",i=x.useMemo(()=>Tl(e.data,r,e.domain),[e.data,e.domain,e.width]),a=e.rowHeight*i.length,o=e.id||t.current.toString();return x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(a)},[i,e.rowHeight,e.onHeightChanged]),d.jsxs("g",{width:e.width,height:a,transform:e.transform,clipPath:`url(#${o})`,children:[d.jsx("defs",{children:d.jsx(vt,{id:o,width:e.width,height:a})}),i.map((s,c)=>d.jsx("g",{transform:`translate(0, ${c*e.rowHeight})`,children:s.map((u,l)=>{let h=u.cigarOps.map((f,v)=>{let p;return f.op==="S"?p=d.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"?p=d.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:d.jsx("title",{children:"Insertion"})},`${l}_${v}`):f.op==="D"||f.op==="N"?p=d.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}`):p=d.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}`),p});return d.jsxs("g",{children:[h,e.domain.end-e.domain.start<=200&&u.seq&&d.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}`))]})},_l=e=>{const t=x.useRef(at()),r=Le(e.domain,e.width),n=e.color||"#000000",i=e.id||t.current.toString(),a=x.useMemo(()=>Sl(e.data,r),[e.domain,e.width,e.data]);return x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),d.jsxs("g",{width:e.width,height:e.height,transform:e.transform,clipPath:`url(#${i})`,children:[d.jsx("defs",{children:d.jsx(vt,{id:i,width:e.width,height:e.height})}),a.map((o,s)=>d.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}`))]})},Cl={displayMode:pe.DENSE,rowHeight:10};function Dl(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},r={...e,trackType:F.BIGBED,displayMode:e.displayMode};switch(e.displayMode){case pe.DENSE:return d.jsx(Ie,{...r,...t,trackType:F.BAM,displayMode:e.displayMode,children:d.jsx(_l,{...e})});case pe.SQUISH:return d.jsx(Ie,{...r,...t,trackType:F.BAM,displayMode:e.displayMode,children:d.jsx(Ol,{...e})});case pe.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigBed`),d.jsx(Ie,{...r,children:d.jsx(Yr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}const kl=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 x.useReducer(qu,r)};var ma=Object.prototype.hasOwnProperty;function ba(e,t,r){for(r of e.keys())if(zt(r,t))return r}function zt(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--&&zt(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=ba(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=ba(t,i),!i)||!zt(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(ma.call(e,r)&&++n&&!ma.call(t,r)||!(r in t)||!zt(e[r],t[r]))return!1;return Object.keys(t).length===n}}return e!==e&&t!==t}function Il(e){if(!e||!e.length)throw new Error("useDeepCompareEffect should not be used with no dependencies. Use React.useEffect instead.");if(e.every(Rl))throw new Error("useDeepCompareEffect should not be used with dependencies that are all primitive values. Use React.useEffect instead.")}function Rl(e){return e==null||/^[sbn]/.test(typeof e)}function Ml(e){var t=wr.useRef(e),r=wr.useRef(0);return zt(e,t.current)||(t.current=e,r.current+=1),wr.useMemo(function(){return t.current},[r.current])}function Pl(e,t){return process.env.NODE_ENV!=="production"&&Il(t),wr.useEffect(e,Ml(t))}function Nl(){const[e,t]=x.useState(null);return{openModal:e,showModal:(i,a,o)=>{t({trackId:i,mouseX:a,mouseY:o})},closeModal:()=>{t(null)}}}function Nr(e,t,r){const[n,i]=x.useState(e),[a,o]=x.useState(r(t)),[s,c]=x.useState(null);return{value:n,valid:a,onChange:l=>{const h=l.target.value,f=h===""?2e3:750;i(h),o(!1),s&&clearTimeout(s);const v=setTimeout(()=>{r(h)||i(t),o(!0)},f);c(v)}}}function Xr({children:e}){return d.jsx("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",paddingBlock:"5px"},children:e})}const jl={position:"fixed",top:"0%",left:"0%",boxShadow:"0 0 10px rgba(0, 0, 0, 0.3)",width:"500px",transform:"translate(-50%, -50%)",background:"#ffffff"},jr={width:"auto",outline:"#ffffff",border:"1px solid #000000",borderRadius:"2px",paddingRight:"5px"},xa={display:"flex",flexDirection:"column",paddingInline:"5px"},Ar={WebkitAppearance:"none",margin:"0"},Fr={MozAppearance:"textfield",appearance:"textfield"};function Ea(e){switch(e.trackType){case F.BIGWIG:return e.actualHeight;case F.BIGBED:case F.TRANSCRIPT:return e.rowHeight;default:return e.height}}function Al({track:e}){const t=x.useContext(Nt),r=x.useContext(Ue),[n,i]=x.useState(t.tracks.find(l=>l.id===e.id)||e),[a,o]=x.useState(Ea(n));x.useEffect(()=>{i(t.tracks.find(l=>l.id===e.id)||e),o(Ea(n))},[e]);const{value:s,valid:c,onChange:u}=Nr((a==null?void 0:a.toString())||"",(a==null?void 0:a.toString())||"",n.trackType===F.BIGWIG?Fl:Ll);return x.useEffect(()=>{c&&(n.trackType===F.BIGWIG?r({type:B.UPDATE_TRACK,id:n.id,track:{height:parseInt(s)}}):(n.trackType===F.BIGBED||n.trackType===F.TRANSCRIPT)&&r({type:B.UPDATE_TRACK,id:n.id,track:{rowHeight:parseInt(s)}}))},[s,c]),d.jsxs(Xr,{children:[n.trackType===F.BIGWIG?"Height: ":"Row Height: ",d.jsx("input",{id:"heightInput",style:{...jr,...Ar,...Fr},type:"number",placeholder:(a==null?void 0:a.toString())||"",value:s,onChange:u})]})}function ls(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 Fl(e){if(!ls(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 Ll(e){if(!ls(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 Vl=(e,t,r)=>{if(!r)return!1;const n=document.querySelector('input[id="minInput"]'),i=document.querySelector('input[id="maxInput"]');return 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 ql({track:e}){var v,p,b,w,m,y;const t=x.useContext(Ue),[r]=x.useState(((v=e.props)==null?void 0:v.defaultRange)||{min:0,max:0}),[n]=x.useState(((p=e.props)==null?void 0:p.range)||r),i=g=>{const S=document.getElementById("minInput");return S?g.length===0||isNaN(parseFloat(g))?(S.setCustomValidity("Empty input, using default value"),S.reportValidity(),!1):parseFloat(g)<r.min?(S.setCustomValidity("Value must be greater than or equal to "+r.min),S.reportValidity(),!1):(S.setCustomValidity(""),!0):!0},a=g=>{const S=document.getElementById("maxInput");return S?g.length===0||isNaN(parseFloat(g))?(S.setCustomValidity("Empty input, using default value"),S.reportValidity(),!1):parseFloat(g)>r.max?(S.setCustomValidity("Value must be less than or equal to "+r.max),S.reportValidity(),!1):(S.setCustomValidity(""),!0):!0},{value:o,valid:s,onChange:c}=Nr(n.min.toString(),r.min.toString(),i),{value:u,valid:l,onChange:h}=Nr(n.max.toString(),r.max.toString(),a),f=g=>{g.target.select()};return x.useEffect(()=>{!s||!l||Vl(parseFloat(o),parseFloat(u),r)||t({type:B.UPDATE_PROPS,id:e.id,props:{range:{min:parseFloat(o),max:parseFloat(u)}}})},[s,l,o,u]),d.jsxs(Xr,{children:[d.jsxs("label",{style:xa,children:["Minimum:",d.jsx("input",{id:"minInput",style:{...jr,...Ar,...Fr},step:"0.001",type:"number",placeholder:((w=(b=e==null?void 0:e.props)==null?void 0:b.defaultRange)==null?void 0:w.min.toFixed(2))+"",value:o,onFocus:f,onChange:c})]}),d.jsxs("label",{style:xa,children:["Maximum:",d.jsx("input",{id:"maxInput",style:{...jr,...Ar,...Fr},step:"0.001",type:"number",placeholder:((y=(m=e==null?void 0:e.props)==null?void 0:m.defaultRange)==null?void 0:y.max.toFixed(4))+"",value:u,onFocus:f,onChange:h})]})]})}function Bl({track:e}){const t=x.useContext(Ue),[r,n]=x.useState(e.version);x.useEffect(()=>{n(e.version)},[e.version]);const i=s=>{n(s);const c=Object.values(Pr).includes(s);t({type:B.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"?"Human":"Mouse";return d.jsx(Xr,{children:d.jsxs("div",{children:[d.jsx("div",{children:o?"Human Assembly Version":"Mouse Assembly Version"}),Object.values(o?Pr:Ti).filter(s=>!isNaN(Number(s))).map((s,c)=>d.jsx("button",{onClick:()=>i(Number(s)),style:a(Number(s)),children:s},c))]})})}function Kr(){return(Kr=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 fs(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 qn(e){var t=x.useRef(e),r=x.useRef(function(n){t.current&&t.current(n)});return t.current=e,r.current}var Jt=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=1),e>r?r:e<t?t:e},Ht=function(e){return"touches"in e},Bn=function(e){return e&&e.ownerDocument.defaultView||self},wa=function(e,t,r){var n=e.getBoundingClientRect(),i=Ht(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:Jt((i.pageX-(n.left+Bn(e).pageXOffset))/n.width),top:Jt((i.pageY-(n.top+Bn(e).pageYOffset))/n.height)}},Sa=function(e){!Ht(e)&&e.preventDefault()},hs=x.memo(function(e){var t=e.onMove,r=e.onKey,n=fs(e,["onMove","onKey"]),i=x.useRef(null),a=qn(t),o=qn(r),s=x.useRef(null),c=x.useRef(!1),u=x.useMemo(function(){var v=function(w){Sa(w),(Ht(w)?w.touches.length>0:w.buttons>0)&&i.current?a(wa(i.current,w,s.current)):b(!1)},p=function(){return b(!1)};function b(w){var m=c.current,y=Bn(i.current),g=w?y.addEventListener:y.removeEventListener;g(m?"touchmove":"mousemove",v),g(m?"touchend":"mouseup",p)}return[function(w){var m=w.nativeEvent,y=i.current;if(y&&(Sa(m),!function(S,E){return E&&!Ht(S)}(m,c.current)&&y)){if(Ht(m)){c.current=!0;var g=m.changedTouches||[];g.length&&(s.current=g[0].identifier)}y.focus(),a(wa(y,m,s.current)),b(!0)}},function(w){var m=w.which||w.keyCode;m<37||m>40||(w.preventDefault(),o({left:m===39?.05:m===37?-.05:0,top:m===40?.05:m===38?-.05:0}))},b]},[o,a]),l=u[0],h=u[1],f=u[2];return x.useEffect(function(){return f},[f]),x.createElement("div",Kr({},n,{onTouchStart:l,onMouseDown:l,className:"react-colorful__interactive",ref:i,onKeyDown:h,tabIndex:0,role:"slider"}))}),Ci=function(e){return e.filter(Boolean).join(" ")},ds=function(e){var t=e.color,r=e.left,n=e.top,i=n===void 0?.5:n,a=Ci(["react-colorful__pointer",e.className]);return x.createElement("div",{className:a,style:{top:100*i+"%",left:100*r+"%"}},x.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:t}}))},Ee=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=Math.pow(10,t)),Math.round(r*e)/r},Ul=function(e){return Hl(Un(e))},Un=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?Ee(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?Ee(parseInt(e.substring(6,8),16)/255,2):1}},Ql=function(e){return zl(Wl(e))},$l=function(e){var t=e.s,r=e.v,n=e.a,i=(200-t)*r/100;return{h:Ee(e.h),s:Ee(i>0&&i<200?t*r/100/(i<=100?i:200-i)*100:0),l:Ee(i/2),a:Ee(n,2)}},Qn=function(e){var t=$l(e);return"hsl("+t.h+", "+t.s+"%, "+t.l+"%)"},Wl=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:Ee(255*[n,s,o,o,c,n][u]),g:Ee(255*[c,n,n,s,o,o][u]),b:Ee(255*[o,o,c,n,n,s][u]),a:Ee(i,2)}},gr=function(e){var t=e.toString(16);return t.length<2?"0"+t:t},zl=function(e){var t=e.r,r=e.g,n=e.b,i=e.a,a=i<1?gr(Ee(255*i)):"";return"#"+gr(t)+gr(r)+gr(n)+a},Hl=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:Ee(60*(s<0?s+6:s)),s:Ee(a?o/a*100:0),v:Ee(a/255*100),a:i}},Gl=x.memo(function(e){var t=e.hue,r=e.onChange,n=Ci(["react-colorful__hue",e.className]);return x.createElement("div",{className:n},x.createElement(hs,{onMove:function(i){r({h:360*i.left})},onKey:function(i){r({h:Jt(t+360*i.left,0,360)})},"aria-label":"Hue","aria-valuenow":Ee(t),"aria-valuemax":"360","aria-valuemin":"0"},x.createElement(ds,{className:"react-colorful__hue-pointer",left:t/360,color:Qn({h:t,s:100,v:100,a:1})})))}),Yl=x.memo(function(e){var t=e.hsva,r=e.onChange,n={backgroundColor:Qn({h:t.h,s:100,v:100,a:1})};return x.createElement("div",{className:"react-colorful__saturation",style:n},x.createElement(hs,{onMove:function(i){r({s:100*i.left,v:100-100*i.top})},onKey:function(i){r({s:Jt(t.s+100*i.left,0,100),v:Jt(t.v-100*i.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+Ee(t.s)+"%, Brightness "+Ee(t.v)+"%"},x.createElement(ds,{className:"react-colorful__saturation-pointer",top:1-t.v/100,left:t.s/100,color:Qn(t)})))}),vs=function(e,t){if(e===t)return!0;for(var r in e)if(e[r]!==t[r])return!1;return!0},Xl=function(e,t){return e.toLowerCase()===t.toLowerCase()||vs(Un(e),Un(t))};function Kl(e,t,r){var n=qn(r),i=x.useState(function(){return e.toHsva(t)}),a=i[0],o=i[1],s=x.useRef({color:t,hsva:a});x.useEffect(function(){if(!e.equal(t,s.current.color)){var u=e.toHsva(t);s.current={hsva:u,color:t},o(u)}},[t,e]),x.useEffect(function(){var u;vs(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=x.useCallback(function(u){o(function(l){return Object.assign({},l,u)})},[]);return[a,c]}var Jl=typeof window<"u"?x.useLayoutEffect:x.useEffect,Zl=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},Ta=new Map,ef=function(e){Jl(function(){var t=e.current?e.current.ownerDocument:document;if(t!==void 0&&!Ta.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}`,Ta.set(t,r);var n=Zl();n&&r.setAttribute("nonce",n),t.head.appendChild(r)}},[])},tf=function(e){var t=e.className,r=e.colorModel,n=e.color,i=n===void 0?r.defaultColor:n,a=e.onChange,o=fs(e,["className","colorModel","color","onChange"]),s=x.useRef(null);ef(s);var c=Kl(r,i,a),u=c[0],l=c[1],h=Ci(["react-colorful",t]);return x.createElement("div",Kr({},o,{ref:s,className:h}),x.createElement(Yl,{hsva:u,onChange:l}),x.createElement(Gl,{hue:u.h,onChange:l,className:"react-colorful__last-control"}))},rf={defaultColor:"000",toHsva:Ul,fromHsva:function(e){return Ql({h:e.h,s:e.s,v:e.v,a:1})},equal:Xl},nf=function(e){return x.createElement(tf,Kr({},e,{colorModel:rf}))};function af({track:e}){const t=x.useContext(Ue),[r,n]=x.useState(e),[i,a]=x.useState(r.color),{value:o,valid:s,onChange:c}=Nr(r.title,r.title,sf);x.useEffect(()=>{n(e),a(e.color)},[e.id]);const u=l=>{t({type:B.UPDATE_TRACK,id:r.id,track:l})};return x.useEffect(()=>{i!==r.color&&u({color:i}),s&&o!==r.title&&u({title:o})},[i,s,o]),d.jsxs(Xr,{children:[d.jsx("div",{children:"Color: "}),d.jsx(of,{color:i||"",onChange:a}),d.jsx("div",{children:"Title: "}),d.jsx("input",{style:{...jr,...Ar,...Fr},id:"titleInput",type:"text",value:o,placeholder:r.title,onChange:c})]})}function of({color:e,onChange:t}){const[r,n]=x.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 d.jsxs("div",{style:{position:"relative"},children:[d.jsx("div",{style:i,onClick:()=>n(!r)}),r&&d.jsx("div",{style:a,children:d.jsx(nf,{color:e,onChange:t})})]})}function sf(e){const t=document.getElementById("titleInput");return t==null?!1:e.length===0?(t.setCustomValidity("Empty input"),t.reportValidity(),!1):!0}function cf(){const{openModal:e,closeModal:t}=x.useContext(Si),[r,n]=x.useState(!1),i=x.useContext(Nt),[a,o]=x.useState(i.tracks.find(l=>l.id===(e==null?void 0:e.trackId))||{});x.useEffect(()=>{o(i.tracks.find(l=>l.id===(e==null?void 0:e.trackId))||{})},[e,i.tracks]);const s=()=>{n(!0)},c=()=>{n(!1)};x.useEffect(()=>{const l=h=>{h.key==="Escape"&&t()};return document.addEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)}},[t]);const u=x.useRef(null);return e?or.createPortal(d.jsx("div",{className:"modal",children:d.jsx(Mr,{nodeRef:u,handle:".header",onStart:s,onStop:c,children:d.jsxs("div",{ref:u,className:"content",style:{...jl,position:"absolute",top:e==null?void 0:e.mouseY,left:e==null?void 0:e.mouseX},children:[d.jsxs("div",{className:"header",style:{backgroundColor:a.color||"transparent",color:Oa(a.color||"transparent"),cursor:r?"grabbing":"grab",display:"flex",flexDirection:"row",justifyContent:"flex-start",alignItems:"center"},children:[d.jsx(uf,{handleClose:t,color:Oa(a.color||"transparent")}),d.jsx("div",{style:{margin:"10px"},children:d.jsxs("div",{style:{paddingBottom:"0px",fontSize:"1.2em",fontWeight:"bold"},children:["Configure ",a.title]})})]}),d.jsxs("div",{style:{padding:"5px"},children:[d.jsx(af,{track:a}),d.jsx(Al,{track:a}),(()=>{switch(a.trackType){case F.BIGWIG:return d.jsx(ql,{track:a});case F.TRANSCRIPT:return d.jsx(Bl,{track:a});default:return null}})()]})]})})}),document.body):null}function uf({handleClose:e,color:t}){const r="25px";return d.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:d.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 Oa(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 lf(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 ff=e=>{const t=x.useMemo(()=>{const r=e.domain.end-e.domain.start,n={start:e.domain.start,end:e.domain.end},i=Le(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(d.jsxs("g",{children:[d.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)&&d.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 d.jsxs("g",{width:e.width,height:e.height,children:[d.jsx("line",{x1:i(c.start),x2:i(c.start),y1:e.height*.1,y2:e.height*.4,stroke:"#000",strokeWidth:.5}),d.jsx("line",{x1:i(c.end),x2:i(c.end),y1:e.height*.1,y2:e.height*.4,stroke:"#000",strokeWidth:.5}),d.jsx("line",{x1:i(c.start),x2:i(c.end),y1:e.height*.25,y2:e.height*.25,stroke:"#000",strokeWidth:.5}),d.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:lf(c.end-c.start)}),u]})},[e.canDrag===!1&&e.domain]);return d.jsx(ot,{canDrag:!0,children:t})};function hf(e){return d.jsx(Ie,{...e,id:"ruler",trackType:F.RULER,children:d.jsx(ff,{...e})})}const df=e=>{const{x:t,y:r,show:n}=x.useContext(jt);return d.jsx("g",{transform:`translate(${t}, ${r})`,style:{visibility:n?"visible":"hidden"},children:d.jsx("foreignObject",{width:e.width,height:e.height,style:{overflow:"visible"},children:e.children})})},vf={cursor:"default",fontSize:"12px",padding:"6px 15px 5px 5px"},pf=e=>{var i;const t=x.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]=x.useState(null);return d.jsx("div",{style:{position:"fixed",background:"white",boxShadow:"0px 2px 10px #999999"},children:(i=e.data.displayModeOptions)==null?void 0:i.map(a=>d.jsx("div",{onMouseOver:()=>n(a),onMouseOut:()=>n(null),onClick:()=>t(a),style:{backgroundColor:e.data.displayMode===a?"#d0d0d0":a===r?"#f0f0f0":"white",...vf},children:e.data.displayMode===a?d.jsx("li",{children:a}):a},a))})};function yf(e,t){switch(t.type){case"tooltipChanged":return{...e,tooltip:t.tooltip};case"contextMenuChanged":return{...e,contextmenu:t.contextmenu};default:return e}}function gf({children:e,onModeChange:t}){const[r,n]=x.useReducer(yf,{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=x.useCallback(o=>{n({type:"tooltipChanged",tooltip:o})},[n]),a=x.useCallback(o=>{n({type:"contextMenuChanged",contextmenu:o})},[n]);return d.jsx(jt.Provider,{value:{...r.tooltip,setTooltip:i},children:d.jsxs(_i.Provider,{value:{...r.contextmenu,setContextMenu:a},children:[e,d.jsx(df,{width:r.tooltip.width,height:r.tooltip.height,children:d.jsx("div",{style:{position:"fixed"},children:r.tooltip.content})}),d.jsx(Ku,{width:80,height:150,children:d.jsx(pf,{data:r.contextmenu,onModeChange:t,setContextMenu:a})})]})})}const mf=e=>{const[t,r]=x.useState([0,0]),[n,i]=x.useState(!1),a=x.useCallback((u,l)=>{const h=l.createSVGPoint();h.x=u.clientX,h.y=u.clientY;const f=l.getScreenCTM();return f?h.matrixTransform(f.inverse()):null},[]),o=x.useCallback(u=>{const l=document.getElementById("browserSVG");if(!(l instanceof SVGSVGElement))return;const h=a(u,l);if(!h)return;const f=h.x;r([f,f]),i(!0)},[a]),s=x.useCallback(u=>{if(!n)return;const l=document.getElementById("browserSVG");if(!(l instanceof SVGSVGElement))return;const h=a(u,l);if(!h)return;let f=h.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=x.useCallback(u=>{if(!n)return;i(!1),u.preventDefault();const l=e.domain.end-e.domain.start,h=e.width-e.leftMargin,f=(Math.min(t[0],t[1])-e.leftMargin)/h,v=(Math.max(t[0],t[1])-e.leftMargin)/h,p={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(p)},[t]);return x.useEffect(()=>(document.addEventListener("mousemove",s),document.addEventListener("mouseup",c),()=>{document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",c)}),[s,c]),d.jsxs(d.Fragment,{children:[n?or.createPortal(d.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,d.jsx("rect",{fill:"#ffffff",width:e.width-e.leftMargin,height:e.dragRegionHeight,x:e.leftMargin,y:0,onMouseDown:o})]})};function bf({width:e,innerWidth:t,height:r,svgRef:n,children:i}){return d.jsx("svg",{id:"browserSVG",width:e,viewBox:`0 0 ${t} ${r}`,ref:n,children:i})}function xf({children:e,browserState:t,rulerHeight:r}){const[n,i]=x.useState([]);return x.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]),d.jsx(d.Fragment,{children:n.length>0&&x.Children.map(e,(a,o)=>{const s=a.props,c=n[o];return d.jsx("g",{id:`stacked-track-${s.track.id}`,transform:typeof c=="number"?`translate(0, ${c})`:void 0,children:a},o)})})}var $n=function(e,t){return $n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[i]=n[i])},$n(e,t)};function Qe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");$n(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}var T=function(){return T=Object.assign||function(t){for(var r,n=1,i=arguments.length;n<i;n++){r=arguments[n];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(t[a]=r[a])}return t},T.apply(this,arguments)};function je(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]]);return r}function Xe(e,t,r,n){function i(a){return a instanceof r?a:new r(function(o){o(a)})}return new(r||(r=Promise))(function(a,o){function s(l){try{u(n.next(l))}catch(h){o(h)}}function c(l){try{u(n.throw(l))}catch(h){o(h)}}function u(l){l.done?a(l.value):i(l.value).then(s,c)}u((n=n.apply(e,t||[])).next())})}function Ke(e,t){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return o.next=s(0),o.throw=s(1),o.return=s(2),typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(u){return function(l){return c([u,l])}}function c(u){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(r=0)),r;)try{if(n=1,i&&(a=u[0]&2?i.return:u[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,u[1])).done)return a;switch(i=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,i=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]<a[3])){r.label=u[1];break}if(u[0]===6&&r.label<a[1]){r.label=a[1],a=u;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(u);break}a[2]&&r.ops.pop(),r.trys.pop();continue}u=t.call(e,r)}catch(l){u=[6,l],i=0}finally{n=a=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function Ce(e,t,r){if(r||arguments.length===2)for(var n=0,i=t.length,a;n<i;n++)(a||!(n in t))&&(a||(a=Array.prototype.slice.call(t,0,n)),a[n]=t[n]);return e.concat(a||Array.prototype.slice.call(t))}var Sn="Invariant Violation",_a=Object.setPrototypeOf,Ef=_a===void 0?function(e,t){return e.__proto__=t,e}:_a,ps=function(e){Qe(t,e);function t(r){r===void 0&&(r=Sn);var n=e.call(this,typeof r=="number"?Sn+": "+r+" (see https://github.com/apollographql/invariant-packages)":r)||this;return n.framesToPop=1,n.name=Sn,Ef(n,t.prototype),n}return t}(Error);function ct(e,t){if(!e)throw new ps(t)}var ys=["debug","log","warn","error","silent"],wf=ys.indexOf("log");function mr(e){return function(){if(ys.indexOf(e)>=wf){var t=console[e]||console.log;return t.apply(console,arguments)}}}(function(e){e.debug=mr("debug"),e.log=mr("log"),e.warn=mr("warn"),e.error=mr("error")})(ct||(ct={}));var Di="3.11.10";function Ne(e){try{return e()}catch{}}const Wn=Ne(function(){return globalThis})||Ne(function(){return window})||Ne(function(){return self})||Ne(function(){return global})||Ne(function(){return Ne.constructor("return this")()});var Ca=new Map;function zn(e){var t=Ca.get(e)||1;return Ca.set(e,t+1),"".concat(e,":").concat(t,":").concat(Math.random().toString(36).slice(2))}function gs(e,t){t===void 0&&(t=0);var r=zn("stringifyForDisplay");return JSON.stringify(e,function(n,i){return i===void 0?r:i},t).split(JSON.stringify(r)).join("<undefined>")}function br(e){return function(t){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];if(typeof t=="number"){var i=t;t=ki(i),t||(t=Ii(i,r),r=[])}e.apply(void 0,[t].concat(r))}}var N=Object.assign(function(t,r){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];t||ct(t,ki(r,n)||Ii(r,n))},{debug:br(ct.debug),log:br(ct.log),warn:br(ct.warn),error:br(ct.error)});function Te(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return new ps(ki(e,t)||Ii(e,t))}var Da=Symbol.for("ApolloErrorMessageHandler_"+Di);function ms(e){if(typeof e=="string")return e;try{return gs(e,2).slice(0,1e3)}catch{return"<non-serializable>"}}function ki(e,t){if(t===void 0&&(t=[]),!!e)return Wn[Da]&&Wn[Da](e,t.map(ms))}function Ii(e,t){if(t===void 0&&(t=[]),!!e)return"An error occurred! For more details, see the full error text at https://go.apollo.dev/c/err#".concat(encodeURIComponent(JSON.stringify({version:Di,message:e,args:t.map(ms)})))}function Tr(e,t){if(!!!e)throw new Error(t)}function Sf(e){return typeof e=="object"&&e!==null}function Tf(e,t){if(!!!e)throw new Error("Unexpected invariant triggered.")}const Of=/\r\n|[\n\r]/g;function Hn(e,t){let r=0,n=1;for(const i of e.body.matchAll(Of)){if(typeof i.index=="number"||Tf(!1),i.index>=t)break;r=i.index+i[0].length,n+=1}return{line:n,column:t+1-r}}function _f(e){return bs(e.source,Hn(e.source,e.start))}function bs(e,t){const r=e.locationOffset.column-1,n="".padStart(r)+e.body,i=t.line-1,a=e.locationOffset.line-1,o=t.line+a,s=t.line===1?r:0,c=t.column+s,u=`${e.name}:${o}:${c}
|
|
51
|
+
`,e.getElementsByTagName("head")[0].appendChild(t)),e.body&&zo(e.body,"react-draggable-transparent-selection")}function Tu(e){if(e)try{if(e.body&&Ho(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 zo(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)")))||(e.className+=" ".concat(t))}function Ho(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)"),"g"),"")}var Be={};Object.defineProperty(Be,"__esModule",{value:!0});Be.canDragX=Cu;Be.canDragY=Du;Be.createCoreData=Iu;Be.createDraggableData=Ru;Be.getBoundPosition=Ou;Be.getControlPosition=ku;Be.snapToGrid=_u;var De=qe,xt=de;function Ou(e,t,r){if(!e.props.bounds)return[t,r];let{bounds:n}=e.props;n=typeof n=="string"?n:Mu(n);const i=xi(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,De.int)(l.paddingLeft)+(0,De.int)(u.marginLeft),top:-i.offsetTop+(0,De.int)(l.paddingTop)+(0,De.int)(u.marginTop),right:(0,xt.innerWidth)(c)-(0,xt.outerWidth)(i)-i.offsetLeft+(0,De.int)(l.paddingRight)-(0,De.int)(u.marginRight),bottom:(0,xt.innerHeight)(c)-(0,xt.outerHeight)(i)-i.offsetTop+(0,De.int)(l.paddingBottom)-(0,De.int)(u.marginBottom)}}return(0,De.isNum)(n.right)&&(t=Math.min(t,n.right)),(0,De.isNum)(n.bottom)&&(r=Math.min(r,n.bottom)),(0,De.isNum)(n.left)&&(t=Math.max(t,n.left)),(0,De.isNum)(n.top)&&(r=Math.max(r,n.top)),[t,r]}function _u(e,t,r){const n=Math.round(t/e[0])*e[0],i=Math.round(r/e[1])*e[1];return[n,i]}function Cu(e){return e.props.axis==="both"||e.props.axis==="x"}function Du(e){return e.props.axis==="both"||e.props.axis==="y"}function ku(e,t,r){const n=typeof t=="number"?(0,xt.getTouch)(e,t):null;if(typeof t=="number"&&!n)return null;const i=xi(r),a=r.props.offsetParent||i.offsetParent||i.ownerDocument.body;return(0,xt.offsetXYFromParent)(n||e,a,r.props.scale)}function Iu(e,t,r){const n=!(0,De.isNum)(e.lastX),i=xi(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 Ru(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 Mu(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}function xi(e){const t=e.findDOMNode();if(!t)throw new Error("<DraggableCore>: Unmounted during event!");return t}var $r={},Wr={};Object.defineProperty(Wr,"__esModule",{value:!0});Wr.default=Pu;function Pu(){}Object.defineProperty($r,"__esModule",{value:!0});$r.default=void 0;var gn=ju(x),_e=Ei(qo),Nu=Ei(or),we=de,He=Be,mn=qe,Vt=Ei(Wr);function Ei(e){return e&&e.__esModule?e:{default:e}}function Go(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,r=new WeakMap;return(Go=function(n){return n?r:t})(e)}function ju(e,t){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var r=Go(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 Se(e,t,r){return t=Au(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Au(e){var t=Fu(e,"string");return typeof t=="symbol"?t:String(t)}function Fu(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 Pe={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let Ge=Pe.mouse,zr=class extends gn.Component{constructor(){super(...arguments),Se(this,"dragging",!1),Se(this,"lastX",NaN),Se(this,"lastY",NaN),Se(this,"touchIdentifier",null),Se(this,"mounted",!1),Se(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,we.matchesSelectorAndParentsTo)(t.target,this.props.handle,r)||this.props.cancel&&(0,we.matchesSelectorAndParentsTo)(t.target,this.props.cancel,r))return;t.type==="touchstart"&&t.preventDefault();const i=(0,we.getTouchIdentifier)(t);this.touchIdentifier=i;const a=(0,He.getControlPosition)(t,i,this);if(a==null)return;const{x:o,y:s}=a,c=(0,He.createCoreData)(this,o,s);(0,Vt.default)("DraggableCore: handleDragStart: %j",c),(0,Vt.default)("calling",this.props.onStart),!(this.props.onStart(t,c)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,we.addUserSelectStyles)(n),this.dragging=!0,this.lastX=o,this.lastY=s,(0,we.addEvent)(n,Ge.move,this.handleDrag),(0,we.addEvent)(n,Ge.stop,this.handleDragStop))}),Se(this,"handleDrag",t=>{const r=(0,He.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,He.snapToGrid)(this.props.grid,s,c),!s&&!c)return;n=this.lastX+s,i=this.lastY+c}const a=(0,He.createCoreData)(this,n,i);if((0,Vt.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}),Se(this,"handleDragStop",t=>{if(!this.dragging)return;const r=(0,He.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,He.snapToGrid)(this.props.grid,c,u),n=this.lastX+c,i=this.lastY+u}const a=(0,He.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,we.removeUserSelectStyles)(s.ownerDocument),(0,Vt.default)("DraggableCore: handleDragStop: %j",a),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,s&&((0,Vt.default)("DraggableCore: Removing handlers"),(0,we.removeEvent)(s.ownerDocument,Ge.move,this.handleDrag),(0,we.removeEvent)(s.ownerDocument,Ge.stop,this.handleDragStop))}),Se(this,"onMouseDown",t=>(Ge=Pe.mouse,this.handleDragStart(t))),Se(this,"onMouseUp",t=>(Ge=Pe.mouse,this.handleDragStop(t))),Se(this,"onTouchStart",t=>(Ge=Pe.touch,this.handleDragStart(t))),Se(this,"onTouchEnd",t=>(Ge=Pe.touch,this.handleDragStop(t)))}componentDidMount(){this.mounted=!0;const t=this.findDOMNode();t&&(0,we.addEvent)(t,Pe.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const t=this.findDOMNode();if(t){const{ownerDocument:r}=t;(0,we.removeEvent)(r,Pe.mouse.move,this.handleDrag),(0,we.removeEvent)(r,Pe.touch.move,this.handleDrag),(0,we.removeEvent)(r,Pe.mouse.stop,this.handleDragStop),(0,we.removeEvent)(r,Pe.touch.stop,this.handleDragStop),(0,we.removeEvent)(t,Pe.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,we.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:Nu.default.findDOMNode(this)}render(){return gn.cloneElement(gn.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};$r.default=zr;Se(zr,"displayName","DraggableCore");Se(zr,"propTypes",{allowAnyClick:_e.default.bool,children:_e.default.node.isRequired,disabled:_e.default.bool,enableUserSelectHack:_e.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:_e.default.arrayOf(_e.default.number),handle:_e.default.string,cancel:_e.default.string,nodeRef:_e.default.object,onStart:_e.default.func,onDrag:_e.default.func,onStop:_e.default.func,onMouseDown:_e.default.func,scale:_e.default.number,className:mn.dontSetMe,style:mn.dontSetMe,transform:mn.dontSetMe});Se(zr,"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(x),r=l(qo),n=l(or),i=l(ru),a=de,o=Be,s=qe,c=l($r),u=l(Wr);function l(y){return y&&y.__esModule?y:{default:y}}function h(y){if(typeof WeakMap!="function")return null;var g=new WeakMap,S=new WeakMap;return(h=function(E){return E?S:g})(y)}function f(y,g){if(y&&y.__esModule)return y;if(y===null||typeof y!="object"&&typeof y!="function")return{default:y};var S=h(g);if(S&&S.has(y))return S.get(y);var E={},_=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var D in y)if(D!=="default"&&Object.prototype.hasOwnProperty.call(y,D)){var I=_?Object.getOwnPropertyDescriptor(y,D):null;I&&(I.get||I.set)?Object.defineProperty(E,D,I):E[D]=y[D]}return E.default=y,S&&S.set(y,E),E}function v(){return v=Object.assign?Object.assign.bind():function(y){for(var g=1;g<arguments.length;g++){var S=arguments[g];for(var E in S)Object.prototype.hasOwnProperty.call(S,E)&&(y[E]=S[E])}return y},v.apply(this,arguments)}function p(y,g,S){return g=b(g),g in y?Object.defineProperty(y,g,{value:S,enumerable:!0,configurable:!0,writable:!0}):y[g]=S,y}function b(y){var g=w(y,"string");return typeof g=="symbol"?g:String(g)}function w(y,g){if(typeof y!="object"||y===null)return y;var S=y[Symbol.toPrimitive];if(S!==void 0){var E=S.call(y,g||"default");if(typeof E!="object")return E;throw new TypeError("@@toPrimitive must return a primitive value.")}return(g==="string"?String:Number)(y)}class m extends t.Component{static getDerivedStateFromProps(g,S){let{position:E}=g,{prevPropsPosition:_}=S;return E&&(!_||E.x!==_.x||E.y!==_.y)?((0,u.default)("Draggable: getDerivedStateFromProps %j",{position:E,prevPropsPosition:_}),{x:E.x,y:E.y,prevPropsPosition:{...E}}):null}constructor(g){super(g),p(this,"onDragStart",(S,E)=>{if((0,u.default)("Draggable: onDragStart: %j",E),this.props.onStart(S,(0,o.createDraggableData)(this,E))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),p(this,"onDrag",(S,E)=>{if(!this.state.dragging)return!1;(0,u.default)("Draggable: onDrag: %j",E);const _=(0,o.createDraggableData)(this,E),D={x:_.x,y:_.y,slackX:0,slackY:0};if(this.props.bounds){const{x:j,y:A}=D;D.x+=this.state.slackX,D.y+=this.state.slackY;const[ce,me]=(0,o.getBoundPosition)(this,D.x,D.y);D.x=ce,D.y=me,D.slackX=this.state.slackX+(j-D.x),D.slackY=this.state.slackY+(A-D.y),_.x=D.x,_.y=D.y,_.deltaX=D.x-this.state.x,_.deltaY=D.y-this.state.y}if(this.props.onDrag(S,_)===!1)return!1;this.setState(D)}),p(this,"onDragStop",(S,E)=>{if(!this.state.dragging||this.props.onStop(S,(0,o.createDraggableData)(this,E))===!1)return!1;(0,u.default)("Draggable: onDragStop: %j",E);const D={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:j,y:A}=this.props.position;D.x=j,D.y=A}this.setState(D)}),this.state={dragging:!1,dragged:!1,x:g.position?g.position.x:g.defaultPosition.x,y:g.position?g.position.y:g.defaultPosition.y,prevPropsPosition:{...g.position},slackX:0,slackY:0,isElementSVG:!1},g.position&&!(g.onDrag||g.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 g,S;return(g=(S=this.props)===null||S===void 0||(S=S.nodeRef)===null||S===void 0?void 0:S.current)!==null&&g!==void 0?g:n.default.findDOMNode(this)}render(){const{axis:g,bounds:S,children:E,defaultPosition:_,defaultClassName:D,defaultClassNameDragging:I,defaultClassNameDragged:j,position:A,positionOffset:ce,scale:me,...ie}=this.props;let ue={},J=null;const Z=!!!A||this.state.dragging,le=A||_,se={x:(0,o.canDragX)(this)&&Z?this.state.x:le.x,y:(0,o.canDragY)(this)&&Z?this.state.y:le.y};this.state.isElementSVG?J=(0,a.createSVGTransform)(se,ce):ue=(0,a.createCSSTransform)(se,ce);const C=(0,i.default)(E.props.className||"",D,{[I]:this.state.dragging,[j]:this.state.dragged});return t.createElement(c.default,v({},ie,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(E),{className:C,style:{...E.props.style,...ue},transform:J}))}}e.default=m,p(m,"displayName","Draggable"),p(m,"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}),p(m,"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})})(Fo);const{default:Yo,DraggableCore:Lu}=Fo;Qr.exports=Yo;Qr.exports.default=Yo;Qr.exports.DraggableCore=Lu;var Vu=Qr.exports;const Mr=Ao(Vu),Nt=x.createContext({}),Ue=x.createContext(()=>{});var B=(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))(B||{});function qu(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:[...e.tracks,t.track]};case"updateTrack":const i=e.tracks.find(y=>y.id===t.id);if(i){const y={...i,...t.track};return{...e,tracks:e.tracks.map(g=>g.id===t.id?y:g)}}return e;case"setTrackHeight":return{...e,tracks:e.tracks.map(y=>y.id===t.id?{...y,actualHeight:t.height}:y)};case"setTrackData":return{...e,tracks:e.tracks.map(y=>y.id===t.id?{...y,data:t.data}:y)};case"shiftDomain":const a=Math.floor(t.delta/e.preRenderedWidth*(e.domain.end-e.domain.start));return{...e,domain:{...e.domain,start:e.domain.start-a,end:e.domain.end-a}};case"setLoading":return{...e,tracks:e.tracks.map(y=>({...y,data:[]}))};case"shiftTrack":const o=e.tracks.findIndex(y=>y.id===t.id1);if(o===-1)return e;const s=e.tracks.findIndex(y=>y.id===t.id2);if(s<0||s>=e.tracks.length)return e;const c=[...e.tracks],[u]=c.splice(o,1);return c.splice(s,0,u),{...e,tracks:c};case"swapTracks":const l=e.tracks.findIndex(y=>y.id===t.id1);if(l===-1)return e;const h=e.tracks.findIndex(y=>y.id===t.id2);if(h<0||h>=e.tracks.length)return e;const f=[...e.tracks];return[f[l],f[h]]=[f[h],f[l]],{...e,tracks:f};case"translateTrack":const v=e.tracks.find(y=>y.id===t.id);if(!v)return e;const p={...v.props,transform:`translate(0, ${t.dist})`};return{...e,tracks:e.tracks.map(y=>y.id===v.id?{...y,props:p}:y)};case"removeTranslation":return t.id==="ALL"?{...e,tracks:e.tracks.map(y=>{if(!y.props)return y;const{transform:g,...S}=y.props;return{...y,props:S}})}:{...e,tracks:e.tracks.map(y=>y.id===t.id?{...y,props:(()=>{if(!y.props)return y.props;const{transform:g,...S}=y.props;return S})()}:y)};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(y=>y.id!==t.id)};case"setRange":return{...e,tracks:e.tracks.map(y=>y.id===t.id?{...y,props:{...y.props,range:t.range}}:y)};case"updateProps":return{...e,tracks:e.tracks.map(y=>y.id===t.id?{...y,props:{...y.props,...t.props}}:y)};case"bringToTop":const b=e.tracks.find(y=>y.id===t.id);return b?{...e,tracks:[b,...e.tracks.filter(y=>y.id!==t.id)]}:e;case"setDelta":return{...e,delta:t.delta};case"zoomDomain":const w=(e.domain.start+e.domain.end)/2,m=(e.domain.end-e.domain.start)*t.factor;return{...e,domain:{...e.domain,start:Math.floor(w-m/2),end:Math.ceil(w+m/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(y=>y.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(y=>y.id!==t.id)};default:return e}}const Xo=x.createContext(!1);function Bu({canDrag:e,id:t,height:r,children:n}){var ue;const a=x.useRef(null),o=x.useContext(Ue),s=x.useContext(Nt),[c,u]=x.useState(0),[l,h]=x.useState({x:0,y:0}),[f,v]=x.useState(!1),[p,b]=x.useState({x:0,y:0}),[w,m]=x.useState([]),[y,g]=x.useState([]),[S,E]=x.useState(-1),[_,D]=x.useState(null);x.useEffect(()=>{const J=document.getElementById("browserSVG");D(J)},[]);const I=x.useRef(((ue=s.tracks)==null?void 0:ue.find(J=>J.id===t))||null);x.useEffect(()=>{if(!s.tracks||f)return;const J=s.tracks.map(le=>le.actualHeight||le.height),X=s.tracks.findIndex(le=>le.id===t);let Z=new Array(J.length).fill(0);Z=J.map((le,se)=>se<X?-J.slice(se,X).reduce((C,k)=>C+k,0):se>X?J.slice(X+1,se+1).reduce((C,k)=>C+k,0):0),g(new Array(s.tracks.length).fill(!1)),m(Z)},[s.tracks?s.tracks:[]]);const j=()=>{const J=w.reduce((X,Z,le)=>Math.abs(Z-c)<Math.abs(w[X]-c)?le:X,0);return S!=J&&(S!=-1&&y[S]&&y[J]&&(g(X=>{const Z=[...X];return Z[S]=!1,Z}),o({type:B.REMOVE_TRANSLATION,id:s.tracks[S].id})),g(X=>{const Z=[...X];return Z[J]=!0,Z}),o({type:B.TRANSLATE_TRACK,id:s.tracks[J].id,dist:c<0?r:-r}),E(J)),J},A=()=>{if(!s.tracks)return;const J=s.tracks.find(Z=>Z.id===t);if(!J)return;const X=s.tracks.slice(0,s.tracks.indexOf(J)).reduce((Z,le)=>Z+(le.actualHeight||le.height),0);b({x:0,y:X+80}),u(0),v(!0)},ce=()=>{s.tracks&&(h({x:0,y:0}),v(!1),o({type:B.SHIFT_TRACK,id1:t,id2:s.tracks[j()].id}),o({type:B.REMOVE_TRANSLATION,id:"ALL"}))},me=(J,X)=>{u(X.y),h({x:0,y:X.y});const Z=j(),le=s.tracks.indexOf(I.current);Z==le||s.tracks[Z]},ie=x.useRef(null);return d.jsx(Xo.Provider,{value:f,children:d.jsx(Mr,{nodeRef:a,position:l,axis:"y",handle:".swap-handle",onStart:e&&_?A:()=>!1,onStop:ce,onDrag:me,children:d.jsxs("g",{ref:a,"data-track-id":t,children:[!f&&n,f&&(_?or.createPortal(d.jsx(Mr,{nodeRef:ie,position:{x:0,y:p.y+l.y},axis:"y",children:d.jsx("g",{ref:ie,style:{cursor:"grabbing",filter:"drop-shadow(2px 2px 2px gray)"},children:n})}),_):n)]})})})}x.createContext({});x.createContext(()=>{});const wi=x.createContext({delta:0,setDelta:()=>{}}),Si=x.createContext({openModal:null,showModal:()=>{},closeModal:()=>{}});function Uu({children:e,browserState:t,browserDispatch:r,modalState:n,deltaContext:i}){return d.jsx(Si.Provider,{value:{...n},children:d.jsx(Nt.Provider,{value:t,children:d.jsx(Ue.Provider,{value:r,children:d.jsx(wi.Provider,{value:i,children:e})})})})}var pe=(e=>(e.FULL="full",e.DENSE="dense",e.SQUISH="squish",e.PACK="pack",e.HIDE="hide",e.DOWNLOAD="download",e))(pe||{}),F=(e=>(e.UNDEFINED="undefined",e.RULER="ruler",e.BIGWIG="bigwig",e.BIGBED="bigbed",e.TRANSCRIPT="transcript",e.BAM="bam",e.MOTIF="motif",e.LDTRACK="ldtrack",e))(F||{});function Qu(e){return null}function $u(e){return null}var Pr=(e=>(e[e.V29=29]="V29",e[e.V40=40]="V40",e[e.V47=47]="V47",e))(Pr||{}),Ti=(e=>(e[e.V21=21]="V21",e[e.V25=25]="V25",e[e.V36=36]="V36",e))(Ti||{});function Wu(e){return null}function zu(e){return d.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:[d.jsx("filter",{id:"a",colorInterpolationFilters:"sRGB",height:"1.39486",width:"1.311082",x:"-.155541",y:"-.19743",children:d.jsx("feGaussianBlur",{stdDeviation:"1.2313672"})}),d.jsxs("g",{transform:"matrix(.96344673 0 0 .96344673 -123.36427 -955.289756)",children:[d.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"}),d.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"}),d.jsx("path",{d:"m140.5 998.375-3 6 2.5.8437v3.1563h1v-3.1563l2.5-.8437z",fill:"#fefefe"}),d.jsxs("g",{transform:"rotate(-90)",children:[d.jsx("rect",{height:"18.999969",rx:"1.43934",ry:"1.5",width:"3.049988",x:"-997.41217",y:"131.00003"}),d.jsx("path",{d:"m-996.41217 132.00003h1v16.999969h-1z",fill:"#fefefe"})]})]})]})}function dt(e){return d.jsx("rect",{width:e.width,height:e.height,fill:e.hoverColor||"transparent",fillOpacity:e.hoverColor?.15:0,style:{pointerEvents:"none"}})}function Oi(e){return e/6<10?e<10?e:10:e/6}const ha=({fontSize:e,position:t,width:r,children:n})=>d.jsxs(d.Fragment,{children:[d.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}),d.jsx("line",{x1:r*.96,x2:r,y1:t,y2:t,stroke:"#aaa"})]}),Hu=e=>{const t=Oi(50),[r,n]=x.useState(null);x.useEffect(()=>{const p=document.getElementById("browserSVG");n(p)},[]);const{showModal:i}=x.useContext(Si),[a,o]=x.useState(void 0),s=x.useContext(Ue),c=x.useContext(Nt);let u=-1;c.tracks&&(u=c.tracks.findIndex(p=>p.id===e.trackId));const l=p=>{i(e.trackId,p.clientX,p.clientY)},h=p=>{p.preventDefault(),s({type:B.BRING_TO_TOP,id:e.trackId})};x.useEffect(()=>{o(e.range)},[e.range]);const f=x.useContext(Xo),v=p=>{s({type:B.UPDATE_TRACK,id:e.trackId,track:{hoverColor:p?e.color:void 0}})};return d.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:d.jsxs("g",{onMouseEnter:()=>v(!0),onMouseLeave:()=>v(!1),height:e.height,width:e.width,children:[d.jsx("rect",{x:0,y:0,width:e.width,height:e.height,fill:"white",className:"swap-handle"}),d.jsx(dt,{width:e.width,height:e.height,hoverColor:e.hoverColor}),d.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"}}),d.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}),d.jsx("line",{stroke:"#ccc",x1:e.width,x2:e.width,y1:0,y2:e.height}),e.trackType!==F.RULER&&r&&d.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:[d.jsxs("g",{onClick:l,children:[d.jsx("circle",{cx:7.5,cy:7.5,r:7.5,strokeWidth:0,fill:"transparent"}),d.jsx(Wc,{x:0,y:0,height:15,width:15})]}),u>0&&d.jsxs("g",{onClick:h,children:[d.jsx("circle",{cx:22.5,cy:7.5,r:7.5,strokeWidth:0,fill:"transparent"}),d.jsx(zu,{x:15,y:2,height:15,width:15})]})]}),a&&d.jsxs(d.Fragment,{children:[d.jsx(ha,{position:e.rangePositions.min,width:e.width,fontSize:t||e.height/6,children:Number(a.min).toFixed(2)}),d.jsx(ha,{position:e.rangePositions.max,width:e.width,fontSize:t||e.height/6,children:Number(a.max).toFixed(2)})]})]})})};function Gu(e){return e&&e.props!==void 0}const Yu=0,da=255;function Xu(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 Hr(e,t){e=Xu(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(Yu,i+t*da),da)).toString(16);r+=("00"+a).substr(a.length)}return r}const _i=x.createContext({show:!1,x:0,y:0,id:"",setContextMenu:()=>{},displayMode:void 0}),Ku=e=>{const{x:t,y:r,show:n}=x.useContext(_i);return d.jsx("g",{id:"context-menu",transform:`translate(${t}, ${r})`,style:{visibility:n?"visible":"hidden"},children:d.jsx("foreignObject",{width:e.width,height:e.height,children:e.children})})},sr=(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]},Ju=(e,t)=>{let 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>"},Zu=(e,t,r)=>{let n=new Blob([Ju(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)},el=(e,t)=>e||(!t||!t.substring||!t.length?"":t.length<=20?t:t.substring(0,20)+"..."),Ie=e=>{var y;const t=x.useContext(Ue),r=x.useContext(_i);x.useEffect(()=>{const g=S=>{const E=document.getElementById("context-menu");E&&!E.contains(S.target)&&r.setContextMenu({show:!1,x:0,y:0,id:""})};return document.addEventListener("click",g),()=>{document.removeEventListener("click",g)}},[r]);const n=()=>{var E,_,D,I;const g=(_=(E=e.svgRef)==null?void 0:E.current)==null?void 0:_.getElementById("wrapped-track-"+e.id),S=(I=(D=e.svgRef)==null?void 0:D.current)==null?void 0:I.getElementById("wrapped-track-ruler");Zu(g,S,e.id+".svg")},[i,a]=x.useState(e.height||0),o=x.useCallback(g=>{a(g),e.onHeightChanged&&e.onHeightChanged(g)},[e]);x.useEffect(()=>{t({type:B.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,h=el(e.shortLabel||"",e.title||""),f=i-l,v=e.width<1e3?e.width/8:150,p=e.width-v,b=i/3,m=(y=e.displayMode)==null?void 0:y.toLowerCase();return d.jsx(Bu,{canDrag:e.canDrag||!1,id:e.id,height:i,children:d.jsxs("g",{id:"wrapped-track-"+e.id,children:[d.jsx("rect",{width:e.width,height:i,fill:"white",style:{pointerEvents:"none"}}),d.jsx("line",{stroke:"#ccc",x1:e.width,x2:e.width,y1:0,y2:i,strokeWidth:2}),e.loading&&!e.error&&d.jsx("g",{transform:`translate(${v+(p-b)/2},${(i-b)/2})`,children:d.jsx(Uc,{width:b,height:b})}),e.error&&d.jsxs("g",{transform:`translate(${v+(p-b)/2},${(i-b)/2})`,children:[d.jsx(jo,{width:b,height:b}),d.jsx("g",{transform:`translate(${b/2},${b+10})`,children:d.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&&d.jsxs("g",{id:`title-${e.id}`,children:[d.jsx("text",{style:{cursor:"default"},fill:e.titleColor||"#000000",textAnchor:"middle",x:v+p/2,y:c/2+5,fontSize:`${c}px`,transform:`translate(0,${s})`,alignmentBaseline:"baseline",children:e.title}),e.trackType!==F.RULER&&d.jsx(dt,{width:e.width,height:i,hoverColor:e.hoverColor})]}),!e.loading&&!e.error&&d.jsx("g",{onContextMenu:g=>{if(e.trackType==F.RULER||!e.svgRef)return;g.preventDefault();let S=sr(e.svgRef.current,g);r.setContextMenu({show:!0,x:S[0]>e.width-80?S[0]-80:S[0],y:S[1],id:e.id,displayMode:m,downloadSVG:n,displayModeOptions:tl(e.trackType)})},transform:`translate(${v},${i-f})`,children:x.Children.map(e.children,g=>Gu(g)?x.cloneElement(g,{...g.props,height:f,width:e.width-v,hoverColor:e.hoverColor,onHeightChanged:S=>{o(S+l)}}):g)}),e.height!=0&&d.jsx(Hu,{canDrag:e.canDrag||!1,trackType:e.trackType||F.UNDEFINED,trackId:e.id,color:e.color,hoverColor:e.hoverColor,shortLabel:h,width:v,height:i,rangePositions:{min:i,max:l},range:e.range})]})})};function tl(e){switch(e){case F.BIGBED:case F.BAM:return["dense","squish","hide","download"];case F.BIGWIG:return["full","dense","hide","download"];case F.TRANSCRIPT:return["pack","squish","hide","download"];case F.LDTRACK:return["dense","hide","download"];default:return["hide","download"]}}let yr;const rl=new Uint8Array(16);function nl(){if(!yr&&(yr=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!yr))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return yr(rl)}const xe=[];for(let e=0;e<256;++e)xe.push((e+256).toString(16).slice(1));function il(e,t=0){return xe[e[t+0]]+xe[e[t+1]]+xe[e[t+2]]+xe[e[t+3]]+"-"+xe[e[t+4]]+xe[e[t+5]]+"-"+xe[e[t+6]]+xe[e[t+7]]+"-"+xe[e[t+8]]+xe[e[t+9]]+"-"+xe[e[t+10]]+xe[e[t+11]]+xe[e[t+12]]+xe[e[t+13]]+xe[e[t+14]]+xe[e[t+15]]}let va,bn,xn=0,En=0;function at(e,t,r){let n=t&&r||0;const i=t||new Array(16);e=e||{};let a=e.node||va,o=e.clockseq!==void 0?e.clockseq:bn;if(a==null||o==null){const f=e.random||(e.rng||nl)();a==null&&(a=va=[f[0]|1,f[1],f[2],f[3],f[4],f[5]]),o==null&&(o=bn=(f[6]<<8|f[7])&16383)}let s=e.msecs!==void 0?e.msecs:Date.now(),c=e.nsecs!==void 0?e.nsecs:En+1;const u=s-xn+(c-En)/1e4;if(u<0&&e.clockseq===void 0&&(o=o+1&16383),(u<0||s>xn)&&e.nsecs===void 0&&(c=0),c>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");xn=s,En=c,bn=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 h=s/4294967296*1e4&268435455;i[n++]=h>>>8&255,i[n++]=h&255,i[n++]=h>>>24&15|16,i[n++]=h>>>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||il(i)}function Et(e,t){return` M ${e} ${t}`}function Y(e,t){return` L ${e} ${t}`}function Le(e,t){return r=>(r-e.start)*t/(e.end-e.start)}function Ko(e,t){return r=>e.max===e.min?0:(e.max-r)*t/(e.max-e.min)}function Jo(e,t,r){return Le(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 Gr(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 pa(e){return e!==void 0?""+(e<1e5?e===Math.floor(e)?e:e.toFixed(2):e.toExponential(2)):""}const vt=({width:e,height:t,id:r})=>d.jsx("clipPath",{id:r,children:d.jsx("rect",{x:0,y:0,width:e,height:t})}),jt=x.createContext({show:!1,x:0,y:0,width:0,height:0,content:void 0,setTooltip:()=>{}});var Zo=(e=>(e.ValuedPoint="valuedPoint",e.BigZoomData="bigZoomData",e.BigWigData="bigWigData",e))(Zo||{});function _t(e){return e[0].x!==void 0?"valuedPoint":e[0].minVal!==void 0?"bigZoomData":"bigWigData"}function ya(e){return _t(e)==="bigWigData"?e.map(t=>({...t})):_t(e)==="bigZoomData"?e.map(t=>({...t})):_t(e)==="valuedPoint"?e.map(t=>({...t})):[]}const al=(e,t)=>{switch(_t(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[]}},wn=(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)}),Sr=e=>{switch(_t(e)){case"bigWigData":return wn(e,t=>t.value);case"bigZoomData":return wn(e,t=>t.maxVal);case"valuedPoint":return wn(e,t=>t.max);default:return{min:0,max:0}}};function ga(e){return e.value!==void 0}const ol=e=>{let t={start:e[0].x,end:e[e.length-1].x},r=Jo(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)=>{let 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 es(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=Jo(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=ga(s)?s.value:s.minVal,h=ga(s)?s.value:s.maxVal;l<o.renderPoints[c].min&&(o.renderPoints[c].min=l),h>o.renderPoints[c].max&&(o.renderPoints[c].max=h);for(let f=c+1;f<u;++f)o.renderPoints[f].min=l,o.renderPoints[f].max=h;l<o.range.min&&(o.range.min=l),h>o.range.max&&(o.range.max=h)}),o}function ot({canDrag:e,children:t}){const r=x.useRef(null),n=x.useContext(Ue),[i,a]=x.useState(!1),{delta:o,setDelta:s}=x.useContext(wi),[c,u]=x.useState({x:0,y:0}),[l,h]=x.useState(null);x.useEffect(()=>{const p=document.getElementById("browserSVG");h(p)},[]);const f=(p,b)=>{p.preventDefault(),a(!0),s(o+b.deltaX)},v=()=>{Math.abs(o)<10||(u({x:o,y:0}),n({type:B.SHIFT_DOMAIN,delta:o}),a(!1))};return x.useEffect(()=>{i||u({x:o,y:0})},[o]),d.jsx(Mr,{nodeRef:r,position:c,axis:"x",onStart:e&&l?()=>{}:()=>!1,onDrag:(p,b)=>f(p,b),onStop:v,children:d.jsx("g",{ref:r,height:"100%",style:{cursor:e&&l?i?"grabbing":"grab":"default"},children:t})})}function pt(e,t){return` L ${e} ${t}`}const sl=e=>{const t=x.useContext(Ue),[r,n]=x.useState(ya(e.data)),[i,a]=x.useState();x.useEffect(()=>{const m=Sr(r);m.min===null&&(m.min=0),t({type:B.UPDATE_PROPS,id:e.id,props:{defaultRange:m}}),a(m)},[]),x.useEffect(()=>{const m=ya(e.data);n(al(m,e.range||Sr(m))),e.range===void 0&&t({type:B.UPDATE_PROPS,id:e.id,props:{range:i}})},[e.range,e.data,i]);const o=x.useContext(jt),[s,c]=x.useState(),u=m=>{if(e.svgRef){const y=sr(e.svgRef.current,m);c(y[0]);const S=f.renderPoints.filter(E=>E.min<1/0&&E.max>-1/0).find(E=>E.x===Math.round(y[0]-150));o.setTooltip({show:!0,x:y[0]>e.width-60?y[0]-60+5:y[0]+5,y:y[1]-e.height,height:80,width:60,content:d.jsxs("div",{style:{fontSize:"10px",backgroundColor:"#ffffff",border:"1px solid"},children:["value: ",Number(pa(S==null?void 0:S.max))+Number(pa(S==null?void 0:S.min))/2]})})}},l=()=>{o.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0}),c(void 0)},h=x.useRef(at()),f=x.useMemo(()=>r&&r.length&&_t(r)===Zo.ValuedPoint?{renderPoints:r,range:e.range||Sr(r)}:es(r,e.width),[r,e.width,e.domain]),v=x.useMemo(()=>{const m=Ko(f.range,e.height),y=f.renderPoints.filter(S=>S.min<1/0&&S.max>-1/0),g=S=>Math.max(0,Math.min(e.height,m(S)));return{maxPath:y.reduce((S,E,_,D)=>S+(E.x?pt(E.x,g(D[_-1]?D[_-1].max:0)):"")+pt(E.x,g(E.max)),"M 0 "+g(0)+" ")+pt(e.width,g(0)),minPath:y.reduce((S,E,_,D)=>S+(E.x?pt(E.x,g(D[_-1]?D[_-1].min:0)):"")+pt(E.x,g(E.min)),"M 0 "+g(0)+" ")+pt(e.width,g(0))}},[f,e.height,e.width]),p=e.color||"#000000",b=x.useMemo(()=>e.noTransparency?p:Hr(p,.5),[e]),w=e.id||h.current.toString();return x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),d.jsx(ot,{canDrag:e.canDrag||!1,children:d.jsxs("g",{className:e.className,width:e.width,height:e.height,clipPath:`url(#${w})`,children:[d.jsx("rect",{width:e.width,height:e.height,fill:"white",onMouseOut:l}),d.jsx(dt,{width:e.width,height:e.height,hoverColor:e.hoverColor}),d.jsx("defs",{children:d.jsx(vt,{id:w,width:e.width,height:e.height})}),d.jsx("path",{d:v.maxPath,fill:b,style:{cursor:"default",clipPath:`url(#${w})`},onMouseOut:l,onMouseOver:m=>{m.persist(),u(m)}}),d.jsx("path",{d:v.minPath,fill:p,style:{cursor:"default",clipPath:`url(#${w})`},onMouseOut:l,onMouseOver:m=>{m.persist(),u(m)}}),s!==void 0&&d.jsx("line",{stroke:"#ccc",x1:s-150,x2:s-150,y1:0,y2:e.height})]})})},cl=e=>{const t=x.useRef(at()),r=x.useMemo(()=>e.data&&e.data.length&&e.data[0].x!==void 0?ol(e.data):es(e.data,100),[e.data,e.width,e.domain]);r.range||(r.range=Sr(r.renderPoints));const n=x.useMemo(()=>{const i=Ko(r.range,1),a=r.renderPoints.filter(s=>s.min<1/0&&s.max>-1/0),o=e.color||"#000000";return a.map(s=>Hr(o,i(s.max)))},[e.color,r]);return x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),d.jsx(ot,{canDrag:e.canDrag||!1,children:d.jsxs("g",{className:e.className,width:e.width,height:e.height,children:[d.jsx("defs",{children:d.jsx("linearGradient",{id:t.current,children:n.map((i,a)=>d.jsx("stop",{offset:`${a}%`,stopColor:i},`${t.current}_pt_${a}`))})}),d.jsx("rect",{width:e.width,height:e.height,fill:"white"}),d.jsx("rect",{width:e.width,height:e.height,fill:e.hoverColor||"transparent",fillOpacity:e.hoverColor?.2:0}),d.jsx("rect",{width:e.width,x:0,y:e.height/3,height:e.height/3,fill:`url('#${t.current}')`})]})})},Yr=e=>{x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]);const t=12,r=32,n=e.height,i=e.width;return d.jsxs("g",{className:e.className,width:e.width,height:e.height,transform:e.transform,children:[e.height!=0&&d.jsx("rect",{width:e.width,height:e.height,fill:"none",onClick:e.onClick}),e.error&&d.jsxs("g",{transform:`translate(${t+(i-r)/2},${(n-r)/2})`,children:[d.jsx(jo,{width:r,height:r}),d.jsx("g",{transform:`translate(${r/2},${r+10})`,children:d.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&&d.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})]})},ts={trackType:F.BIGWIG,titleSize:12,trackMargin:12,displayMode:pe.FULL,canDrag:!0,noTransparency:!0,color:"#ff5555"};function rs(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},r={...e,trackType:F.BIGWIG,displayMode:e.displayMode};switch(e.displayMode){case pe.FULL:return d.jsx(Ie,{...r,...t,trackType:F.BIGWIG,displayMode:e.displayMode,children:d.jsx(sl,{...e})});case pe.DENSE:return d.jsx(Ie,{...r,...t,trackType:F.BIGWIG,displayMode:e.displayMode,children:d.jsx(cl,{...e})});case pe.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigWig`),d.jsx(Ie,{...r,children:d.jsx(Yr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function ul(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 ll(e,t){return Gr(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 fl={fontSize:"12px",backgroundColor:"#ffffff",border:"1px solid",padding:"1em"},ns=e=>d.jsxs("div",{style:fl,children:[e.name?`name: ${e.name}`:"",d.jsx("br",{}),e.score!==void 0?`score: ${e.score}`:""]});function is(e,t,r,n,i){const a=x.useContext(jt),o=x.useCallback((c,u)=>{if(!r||!r.current)return;const[l,h]=sr(r.current,c);a.setTooltip({show:!0,x:l>t-100?l-90:l+10,y:h+10,width:100,height:50,content:x.createElement(e,u)})},[e,t,r,a]),s=x.useCallback(()=>{a.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},[a]);return[o,s]}const hl=e=>{const[t,r]=is(e.tooltipContent||ns,e.width,e.svgRef),n=x.useRef(at()),i=x.useCallback(Le(e.domain,e.width),[e.data]),a=e.color||"#000000",o=e.id||n.current.toString(),s=x.useMemo(()=>ul(e.data||[],i),[e.width,e.data,e.domain]);return x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),d.jsx(ot,{canDrag:e.canDrag||!1,children:d.jsxs("g",{width:e.width,height:e.height,clipPath:`url(#${o})`,className:e.className,children:[d.jsx("rect",{width:e.width,height:e.height,fill:"white"}),d.jsx("defs",{children:d.jsx(vt,{id:o,width:e.width,height:e.height})}),s.map((c,u)=>d.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}`)),d.jsx(dt,{width:e.width,height:e.height,hoverColor:e.hoverColor})]})})},dl=e=>{const[t,r]=is(e.tooltipContent||ns,e.width,e.svgRef),n=x.useRef(at()),i=x.useCallback(Le(e.domain,e.width),[e.data]),a=x.useMemo(()=>{const c=e.data?[...e.data]:[];return ll(c,i)},[e.width,e.data,e.domain]),o=e.rowHeight*a.length,s=e.id||n.current.toString();return x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(o)},[a,e.rowHeight,e.onHeightChanged]),d.jsx(ot,{canDrag:e.canDrag||!1,children:d.jsxs("g",{width:e.width,height:o,clipPath:`url(#${s})`,children:[d.jsx("rect",{width:e.width,height:o,fill:"white"}),d.jsx("defs",{children:d.jsx(vt,{id:s,width:e.width,height:o})}),a.map((c,u)=>d.jsx("g",{transform:`translate(0, ${u*e.rowHeight})`,children:c.map((l,h)=>d.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}_${h}`))},`group_${u}`)),d.jsx(dt,{width:e.width,height:o,hoverColor:e.hoverColor})]})})},as={trackType:F.BIGBED,displayMode:pe.SQUISH,rowHeight:10,titleSize:12,trackMargin:12,canDrag:!0};function os(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},r={...e,trackType:F.BIGBED,displayMode:e.displayMode};switch(e.displayMode){case pe.DENSE:return d.jsx(Ie,{...r,...t,trackType:F.BIGBED,displayMode:e.displayMode,children:d.jsx(hl,{...e})});case pe.SQUISH:return d.jsx(Ie,{...r,...t,trackType:F.BIGBED,displayMode:e.displayMode,children:d.jsx(dl,{...e})});case pe.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigBed`),d.jsx(Ie,{...r,children:d.jsx(Yr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function vl(e,t){return e.coordinates.start===t.coordinates.start?e.coordinates.end-t.coordinates.end:e.coordinates.start-t.coordinates.start}function pl(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 yl(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 gl(e,t){var s;const n=e.transcripts.reduce((c,u)=>[...c,...u.exons||[]],[]).sort(vl),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=yl(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 ml(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 bl(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+=Et(s-i,n-i)+Y(s,n)+Y(s-i,n+i)+Y(s,n)+Y(s-i,n-i);else if(r==="-")for(let s=e+10;s<t-10;s+=20)o+=Et(s+i,n-i)+Y(s,n)+Y(s+i,n+i)+Y(s,n)+Y(s+i,n-i);return o+" M "+e+" "+n+" L "+t+" "+n}function xl(e,t,r,n){var h,f;if(e.coordinates.start>n||e.coordinates.end<0)return"";const i=((h=e.UTRs)==null?void 0:h.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 Et(e.coordinates.start,c)+Y(e.coordinates.end,c)+Y(e.coordinates.end,u)+Y(e.coordinates.start,u)+Y(e.coordinates.start,c);if(i[0]&&i[0].coordinates.end===e.coordinates.end)return Et(i[0].coordinates.start,o)+Y(i[0].coordinates.end,o)+Y(i[0].coordinates.end,s)+Y(i[0].coordinates.start,s)+Y(i[0].coordinates.start,o);let l=i[0]?Et(i[0].coordinates.start,o)+Y(i[0].coordinates.end,o)+Y(i[0].coordinates.end,c):Et(e.coordinates.start,c);return l+=a[0]?Y(a[0].coordinates.start,c)+Y(a[0].coordinates.start,o)+Y(a[0].coordinates.end,o)+Y(a[0].coordinates.end,s)+Y(a[0].coordinates.start,s)+Y(a[0].coordinates.start,u):Y(e.coordinates.end,c)+Y(e.coordinates.end,u),l+(i[0]?Y(i[0].coordinates.end,u)+Y(i[0].coordinates.end,s)+Y(i[0].coordinates.start,s)+Y(i[0].coordinates.start,o):Y(e.coordinates.start,u)+Y(e.coordinates.start,c))}function ss(e,t,r,n,i){var s;const a=ml(e,t,r),o={exons:((s=a.exons)==null?void 0:s.reduce((c,u)=>c+xl(u,n/2,n,i),""))||"",introns:bl(a.coordinates.start,a.coordinates.end,a.strand,n/2,n*.19,i)};return{transcript:a,paths:o}}const El=e=>{const t=x.useContext(jt),r=(l,h)=>{if(e.svgRef){let f=sr(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:d.jsx("span",{style:{fontSize:"10px"},children:h.id})})}},n=()=>{t.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},i=x.useRef(at()),a=x.useCallback(Le(e.domain,e.width),[e.data]),o=e.color||"#000000",s=Oi(e.rowHeight)*1.25,c=x.useMemo(()=>Gr(pl(e.data||[],e.domain),a,s).map((l,h)=>({y:h*e.rowHeight,transcripts:l.map(f=>ss(f,a,e.domain,e.rowHeight,e.width))})),[e.data,e.rowHeight,e.width,e.domain]),u=x.useMemo(()=>e.rowHeight*c.length,[e.rowHeight,c.length]);return x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(u)},[u]),d.jsx(ot,{canDrag:e.canDrag||!1,children:d.jsxs("g",{children:[d.jsx("rect",{width:e.width,height:u,fill:"white"}),d.jsx("defs",{children:d.jsx(vt,{id:i.current,width:e.width,height:c.length*e.rowHeight})}),c.map((l,h)=>d.jsx("g",{style:{clipPath:`url(#${i.current})`},transform:`translate(0,${l.y})`,height:e.rowHeight,width:e.width,children:l.transcripts.map((f,v)=>d.jsxs(x.Fragment,{children:[d.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:p=>r(p,f.transcript),onMouseOut:n,onClick:()=>e.onTranscriptClick&&e.onTranscriptClick(f.transcript)}),d.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_${h}`)),d.jsx(dt,{width:e.width,height:u,hoverColor:e.hoverColor})]})})},wl=e=>{const t=x.useContext(jt),r=(l,h)=>{if(e.svgRef){let f=sr(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:d.jsx("span",{style:{fontSize:"10px"},children:h.id})})}},n=()=>{t.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},i=x.useRef(at()),a=x.useCallback(Le(e.domain,e.width),[e.data]),o=e.color||"#000000",s=Oi(e.rowHeight)*1.25,c=x.useMemo(()=>{var l;return Gr(((l=e.data)==null?void 0:l.map(h=>gl(h,e.geneName)))||[],a,s).map((h,f)=>({y:f*e.rowHeight,transcripts:h.map(v=>ss(v,a,e.domain,e.rowHeight,e.width))}))},[e.data,e.rowHeight,e.width,e.domain]),u=x.useMemo(()=>e.rowHeight*c.length,[e.rowHeight,c.length]);return x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(u)},[u]),d.jsx(ot,{canDrag:e.canDrag||!1,children:d.jsxs("g",{children:[d.jsx("rect",{width:e.width,height:u,fill:"white"}),d.jsx("defs",{children:d.jsx(vt,{id:i.current,width:e.width,height:c.length*e.rowHeight})}),c.map((l,h)=>d.jsx("g",{style:{clipPath:`url(#${i.current})`},transform:`translate(0,${l.y})`,height:e.rowHeight,width:e.width,children:l.transcripts.map((f,v)=>d.jsxs(x.Fragment,{children:[d.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:p=>r(p,f.transcript),onMouseOut:n,onClick:()=>e.onTranscriptClick&&e.onTranscriptClick(f.transcript)}),d.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_${h}`)),d.jsx(dt,{width:e.width,height:u,hoverColor:e.hoverColor})]})})},cs={trackType:F.TRANSCRIPT,displayMode:pe.SQUISH,rowHeight:14,titleSize:12,trackMargin:12,canDrag:!0};function us(e){const[t,r]=x.useState(!(e.data&&e.data[0])),[n,i]=x.useState(e.data),a={...e,trackType:F.TRANSCRIPT,displayMode:e.displayMode};switch(x.useEffect(()=>{e.data&&e.data.length>0?(i(e.data),r(!1)):r(!0)},[e.data]),x.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 pe.PACK:return d.jsx(Ie,{...a,loading:t,trackType:F.TRANSCRIPT,displayMode:e.displayMode,children:d.jsx(El,{...e,data:n})});case pe.SQUISH:return d.jsx(Ie,{...a,loading:t,trackType:F.TRANSCRIPT,displayMode:e.displayMode,children:d.jsx(wl,{...e,data:n})});case pe.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigWig`),d.jsx(Ie,{...a,children:d.jsx(Yr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function Sl(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 Tl(e,t,r){return Gr(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 Ol=e=>{const t=x.useRef(at()),r=Le(e.domain,e.width),n=e.color||"#000000",i=x.useMemo(()=>Tl(e.data,r,e.domain),[e.data,e.domain,e.width]),a=e.rowHeight*i.length,o=e.id||t.current.toString();return x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(a)},[i,e.rowHeight,e.onHeightChanged]),d.jsxs("g",{width:e.width,height:a,transform:e.transform,clipPath:`url(#${o})`,children:[d.jsx("defs",{children:d.jsx(vt,{id:o,width:e.width,height:a})}),i.map((s,c)=>d.jsx("g",{transform:`translate(0, ${c*e.rowHeight})`,children:s.map((u,l)=>{let h=u.cigarOps.map((f,v)=>{let p;return f.op==="S"?p=d.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"?p=d.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:d.jsx("title",{children:"Insertion"})},`${l}_${v}`):f.op==="D"||f.op==="N"?p=d.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}`):p=d.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}`),p});return d.jsxs("g",{children:[h,e.domain.end-e.domain.start<=200&&u.seq&&d.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}`))]})},_l=e=>{const t=x.useRef(at()),r=Le(e.domain,e.width),n=e.color||"#000000",i=e.id||t.current.toString(),a=x.useMemo(()=>Sl(e.data,r),[e.domain,e.width,e.data]);return x.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),d.jsxs("g",{width:e.width,height:e.height,transform:e.transform,clipPath:`url(#${i})`,children:[d.jsx("defs",{children:d.jsx(vt,{id:i,width:e.width,height:e.height})}),a.map((o,s)=>d.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}`))]})},Cl={displayMode:pe.DENSE,rowHeight:10};function Dl(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},r={...e,trackType:F.BIGBED,displayMode:e.displayMode};switch(e.displayMode){case pe.DENSE:return d.jsx(Ie,{...r,...t,trackType:F.BAM,displayMode:e.displayMode,children:d.jsx(_l,{...e})});case pe.SQUISH:return d.jsx(Ie,{...r,...t,trackType:F.BAM,displayMode:e.displayMode,children:d.jsx(Ol,{...e})});case pe.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigBed`),d.jsx(Ie,{...r,children:d.jsx(Yr,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}const kl=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 x.useReducer(qu,r)};var ma=Object.prototype.hasOwnProperty;function ba(e,t,r){for(r of e.keys())if(zt(r,t))return r}function zt(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--&&zt(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=ba(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=ba(t,i),!i)||!zt(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(ma.call(e,r)&&++n&&!ma.call(t,r)||!(r in t)||!zt(e[r],t[r]))return!1;return Object.keys(t).length===n}}return e!==e&&t!==t}function Il(e){if(!e||!e.length)throw new Error("useDeepCompareEffect should not be used with no dependencies. Use React.useEffect instead.");if(e.every(Rl))throw new Error("useDeepCompareEffect should not be used with dependencies that are all primitive values. Use React.useEffect instead.")}function Rl(e){return e==null||/^[sbn]/.test(typeof e)}function Ml(e){var t=wr.useRef(e),r=wr.useRef(0);return zt(e,t.current)||(t.current=e,r.current+=1),wr.useMemo(function(){return t.current},[r.current])}function Pl(e,t){return process.env.NODE_ENV!=="production"&&Il(t),wr.useEffect(e,Ml(t))}function Nl(){const[e,t]=x.useState(null);return{openModal:e,showModal:(i,a,o)=>{t({trackId:i,mouseX:a,mouseY:o})},closeModal:()=>{t(null)}}}function Nr(e,t,r){const[n,i]=x.useState(e),[a,o]=x.useState(r(t)),[s,c]=x.useState(null);return{value:n,valid:a,onChange:l=>{const h=l.target.value,f=h===""?2e3:750;i(h),o(!1),s&&clearTimeout(s);const v=setTimeout(()=>{r(h)||i(t),o(!0)},f);c(v)}}}function Xr({children:e}){return d.jsx("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",paddingBlock:"5px"},children:e})}const jl={position:"fixed",top:"0%",left:"0%",boxShadow:"0 0 10px rgba(0, 0, 0, 0.3)",width:"500px",transform:"translate(-50%, -50%)",background:"#ffffff"},jr={width:"auto",outline:"#ffffff",border:"1px solid #000000",borderRadius:"2px",paddingRight:"5px"},xa={display:"flex",flexDirection:"column",paddingInline:"5px"},Ar={WebkitAppearance:"none",margin:"0"},Fr={MozAppearance:"textfield",appearance:"textfield"};function Ea(e){switch(e.trackType){case F.BIGWIG:return e.actualHeight;case F.BIGBED:case F.TRANSCRIPT:return e.rowHeight;default:return e.height}}function Al({track:e}){const t=x.useContext(Nt),r=x.useContext(Ue),[n,i]=x.useState(t.tracks.find(l=>l.id===e.id)||e),[a,o]=x.useState(Ea(n));x.useEffect(()=>{i(t.tracks.find(l=>l.id===e.id)||e),o(Ea(n))},[e]);const{value:s,valid:c,onChange:u}=Nr((a==null?void 0:a.toString())||"",(a==null?void 0:a.toString())||"",n.trackType===F.BIGWIG?Fl:Ll);return x.useEffect(()=>{c&&(n.trackType===F.BIGWIG?r({type:B.UPDATE_TRACK,id:n.id,track:{height:parseInt(s)}}):(n.trackType===F.BIGBED||n.trackType===F.TRANSCRIPT)&&r({type:B.UPDATE_TRACK,id:n.id,track:{rowHeight:parseInt(s)}}))},[s,c]),d.jsxs(Xr,{children:[n.trackType===F.BIGWIG?"Height: ":"Row Height: ",d.jsx("input",{id:"heightInput",style:{...jr,...Ar,...Fr},type:"number",placeholder:(a==null?void 0:a.toString())||"",value:s,onChange:u})]})}function ls(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 Fl(e){if(!ls(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 Ll(e){if(!ls(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 Vl=(e,t,r)=>{if(!r)return!1;const n=document.querySelector('input[id="minInput"]'),i=document.querySelector('input[id="maxInput"]');return 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 ql({track:e}){var v,p,b,w,m,y;const t=x.useContext(Ue),[r]=x.useState(((v=e.props)==null?void 0:v.defaultRange)||{min:0,max:0}),[n]=x.useState(((p=e.props)==null?void 0:p.range)||r),i=g=>{const S=document.getElementById("minInput");return S?g.length===0||isNaN(parseFloat(g))?(S.setCustomValidity("Empty input, using default value"),S.reportValidity(),!1):parseFloat(g)<r.min?(S.setCustomValidity("Value must be greater than or equal to "+r.min),S.reportValidity(),!1):(S.setCustomValidity(""),!0):!0},a=g=>{const S=document.getElementById("maxInput");return S?g.length===0||isNaN(parseFloat(g))?(S.setCustomValidity("Empty input, using default value"),S.reportValidity(),!1):parseFloat(g)>r.max?(S.setCustomValidity("Value must be less than or equal to "+r.max),S.reportValidity(),!1):(S.setCustomValidity(""),!0):!0},{value:o,valid:s,onChange:c}=Nr(n.min.toString(),r.min.toString(),i),{value:u,valid:l,onChange:h}=Nr(n.max.toString(),r.max.toString(),a),f=g=>{g.target.select()};return x.useEffect(()=>{!s||!l||Vl(parseFloat(o),parseFloat(u),r)||t({type:B.UPDATE_PROPS,id:e.id,props:{range:{min:parseFloat(o),max:parseFloat(u)}}})},[s,l,o,u]),d.jsxs(Xr,{children:[d.jsxs("label",{style:xa,children:["Minimum:",d.jsx("input",{id:"minInput",style:{...jr,...Ar,...Fr},step:"0.01",type:"number",placeholder:(w=(b=e==null?void 0:e.props)==null?void 0:b.defaultRange)==null?void 0:w.min.toFixed(2),value:Number(o).toFixed(2),onFocus:f,onChange:c})]}),d.jsxs("label",{style:xa,children:["Maximum:",d.jsx("input",{id:"maxInput",style:{...jr,...Ar,...Fr},step:"0.01",type:"number",placeholder:(y=(m=e==null?void 0:e.props)==null?void 0:m.defaultRange)==null?void 0:y.max.toFixed(2),value:Number(u).toFixed(2),onChange:h,onFocus:f})]})]})}function Bl({track:e}){const t=x.useContext(Ue),[r,n]=x.useState(e.version);x.useEffect(()=>{n(e.version)},[e.version]);const i=s=>{n(s);const c=Object.values(Pr).includes(s);t({type:B.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"?"Human":"Mouse";return d.jsx(Xr,{children:d.jsxs("div",{children:[d.jsx("div",{children:o?"Human Assembly Version":"Mouse Assembly Version"}),Object.values(o?Pr:Ti).filter(s=>!isNaN(Number(s))).map((s,c)=>d.jsx("button",{onClick:()=>i(Number(s)),style:a(Number(s)),children:s},c))]})})}function Kr(){return(Kr=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 fs(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 qn(e){var t=x.useRef(e),r=x.useRef(function(n){t.current&&t.current(n)});return t.current=e,r.current}var Jt=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=1),e>r?r:e<t?t:e},Ht=function(e){return"touches"in e},Bn=function(e){return e&&e.ownerDocument.defaultView||self},wa=function(e,t,r){var n=e.getBoundingClientRect(),i=Ht(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:Jt((i.pageX-(n.left+Bn(e).pageXOffset))/n.width),top:Jt((i.pageY-(n.top+Bn(e).pageYOffset))/n.height)}},Sa=function(e){!Ht(e)&&e.preventDefault()},hs=x.memo(function(e){var t=e.onMove,r=e.onKey,n=fs(e,["onMove","onKey"]),i=x.useRef(null),a=qn(t),o=qn(r),s=x.useRef(null),c=x.useRef(!1),u=x.useMemo(function(){var v=function(w){Sa(w),(Ht(w)?w.touches.length>0:w.buttons>0)&&i.current?a(wa(i.current,w,s.current)):b(!1)},p=function(){return b(!1)};function b(w){var m=c.current,y=Bn(i.current),g=w?y.addEventListener:y.removeEventListener;g(m?"touchmove":"mousemove",v),g(m?"touchend":"mouseup",p)}return[function(w){var m=w.nativeEvent,y=i.current;if(y&&(Sa(m),!function(S,E){return E&&!Ht(S)}(m,c.current)&&y)){if(Ht(m)){c.current=!0;var g=m.changedTouches||[];g.length&&(s.current=g[0].identifier)}y.focus(),a(wa(y,m,s.current)),b(!0)}},function(w){var m=w.which||w.keyCode;m<37||m>40||(w.preventDefault(),o({left:m===39?.05:m===37?-.05:0,top:m===40?.05:m===38?-.05:0}))},b]},[o,a]),l=u[0],h=u[1],f=u[2];return x.useEffect(function(){return f},[f]),x.createElement("div",Kr({},n,{onTouchStart:l,onMouseDown:l,className:"react-colorful__interactive",ref:i,onKeyDown:h,tabIndex:0,role:"slider"}))}),Ci=function(e){return e.filter(Boolean).join(" ")},ds=function(e){var t=e.color,r=e.left,n=e.top,i=n===void 0?.5:n,a=Ci(["react-colorful__pointer",e.className]);return x.createElement("div",{className:a,style:{top:100*i+"%",left:100*r+"%"}},x.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:t}}))},Ee=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=Math.pow(10,t)),Math.round(r*e)/r},Ul=function(e){return Hl(Un(e))},Un=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?Ee(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?Ee(parseInt(e.substring(6,8),16)/255,2):1}},Ql=function(e){return zl(Wl(e))},$l=function(e){var t=e.s,r=e.v,n=e.a,i=(200-t)*r/100;return{h:Ee(e.h),s:Ee(i>0&&i<200?t*r/100/(i<=100?i:200-i)*100:0),l:Ee(i/2),a:Ee(n,2)}},Qn=function(e){var t=$l(e);return"hsl("+t.h+", "+t.s+"%, "+t.l+"%)"},Wl=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:Ee(255*[n,s,o,o,c,n][u]),g:Ee(255*[c,n,n,s,o,o][u]),b:Ee(255*[o,o,c,n,n,s][u]),a:Ee(i,2)}},gr=function(e){var t=e.toString(16);return t.length<2?"0"+t:t},zl=function(e){var t=e.r,r=e.g,n=e.b,i=e.a,a=i<1?gr(Ee(255*i)):"";return"#"+gr(t)+gr(r)+gr(n)+a},Hl=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:Ee(60*(s<0?s+6:s)),s:Ee(a?o/a*100:0),v:Ee(a/255*100),a:i}},Gl=x.memo(function(e){var t=e.hue,r=e.onChange,n=Ci(["react-colorful__hue",e.className]);return x.createElement("div",{className:n},x.createElement(hs,{onMove:function(i){r({h:360*i.left})},onKey:function(i){r({h:Jt(t+360*i.left,0,360)})},"aria-label":"Hue","aria-valuenow":Ee(t),"aria-valuemax":"360","aria-valuemin":"0"},x.createElement(ds,{className:"react-colorful__hue-pointer",left:t/360,color:Qn({h:t,s:100,v:100,a:1})})))}),Yl=x.memo(function(e){var t=e.hsva,r=e.onChange,n={backgroundColor:Qn({h:t.h,s:100,v:100,a:1})};return x.createElement("div",{className:"react-colorful__saturation",style:n},x.createElement(hs,{onMove:function(i){r({s:100*i.left,v:100-100*i.top})},onKey:function(i){r({s:Jt(t.s+100*i.left,0,100),v:Jt(t.v-100*i.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+Ee(t.s)+"%, Brightness "+Ee(t.v)+"%"},x.createElement(ds,{className:"react-colorful__saturation-pointer",top:1-t.v/100,left:t.s/100,color:Qn(t)})))}),vs=function(e,t){if(e===t)return!0;for(var r in e)if(e[r]!==t[r])return!1;return!0},Xl=function(e,t){return e.toLowerCase()===t.toLowerCase()||vs(Un(e),Un(t))};function Kl(e,t,r){var n=qn(r),i=x.useState(function(){return e.toHsva(t)}),a=i[0],o=i[1],s=x.useRef({color:t,hsva:a});x.useEffect(function(){if(!e.equal(t,s.current.color)){var u=e.toHsva(t);s.current={hsva:u,color:t},o(u)}},[t,e]),x.useEffect(function(){var u;vs(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=x.useCallback(function(u){o(function(l){return Object.assign({},l,u)})},[]);return[a,c]}var Jl=typeof window<"u"?x.useLayoutEffect:x.useEffect,Zl=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},Ta=new Map,ef=function(e){Jl(function(){var t=e.current?e.current.ownerDocument:document;if(t!==void 0&&!Ta.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}`,Ta.set(t,r);var n=Zl();n&&r.setAttribute("nonce",n),t.head.appendChild(r)}},[])},tf=function(e){var t=e.className,r=e.colorModel,n=e.color,i=n===void 0?r.defaultColor:n,a=e.onChange,o=fs(e,["className","colorModel","color","onChange"]),s=x.useRef(null);ef(s);var c=Kl(r,i,a),u=c[0],l=c[1],h=Ci(["react-colorful",t]);return x.createElement("div",Kr({},o,{ref:s,className:h}),x.createElement(Yl,{hsva:u,onChange:l}),x.createElement(Gl,{hue:u.h,onChange:l,className:"react-colorful__last-control"}))},rf={defaultColor:"000",toHsva:Ul,fromHsva:function(e){return Ql({h:e.h,s:e.s,v:e.v,a:1})},equal:Xl},nf=function(e){return x.createElement(tf,Kr({},e,{colorModel:rf}))};function af({track:e}){const t=x.useContext(Ue),[r,n]=x.useState(e),[i,a]=x.useState(r.color),{value:o,valid:s,onChange:c}=Nr(r.title,r.title,sf);x.useEffect(()=>{n(e),a(e.color)},[e.id]);const u=l=>{t({type:B.UPDATE_TRACK,id:r.id,track:l})};return x.useEffect(()=>{i!==r.color&&u({color:i}),s&&o!==r.title&&u({title:o})},[i,s,o]),d.jsxs(Xr,{children:[d.jsx("div",{children:"Color: "}),d.jsx(of,{color:i||"",onChange:a}),d.jsx("div",{children:"Title: "}),d.jsx("input",{style:{...jr,...Ar,...Fr},id:"titleInput",type:"text",value:o,placeholder:r.title,onChange:c})]})}function of({color:e,onChange:t}){const[r,n]=x.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 d.jsxs("div",{style:{position:"relative"},children:[d.jsx("div",{style:i,onClick:()=>n(!r)}),r&&d.jsx("div",{style:a,children:d.jsx(nf,{color:e,onChange:t})})]})}function sf(e){const t=document.getElementById("titleInput");return t==null?!1:e.length===0?(t.setCustomValidity("Empty input"),t.reportValidity(),!1):!0}function cf(){const{openModal:e,closeModal:t}=x.useContext(Si),[r,n]=x.useState(!1),i=x.useContext(Nt),[a,o]=x.useState(i.tracks.find(l=>l.id===(e==null?void 0:e.trackId))||{});x.useEffect(()=>{o(i.tracks.find(l=>l.id===(e==null?void 0:e.trackId))||{})},[e,i.tracks]);const s=()=>{n(!0)},c=()=>{n(!1)};x.useEffect(()=>{const l=h=>{h.key==="Escape"&&t()};return document.addEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)}},[t]);const u=x.useRef(null);return e?or.createPortal(d.jsx("div",{className:"modal",children:d.jsx(Mr,{nodeRef:u,handle:".header",onStart:s,onStop:c,children:d.jsxs("div",{ref:u,className:"content",style:{...jl,position:"absolute",top:e==null?void 0:e.mouseY,left:e==null?void 0:e.mouseX},children:[d.jsxs("div",{className:"header",style:{backgroundColor:a.color||"transparent",color:Oa(a.color||"transparent"),cursor:r?"grabbing":"grab",display:"flex",flexDirection:"row",justifyContent:"flex-start",alignItems:"center"},children:[d.jsx(uf,{handleClose:t,color:Oa(a.color||"transparent")}),d.jsx("div",{style:{margin:"10px"},children:d.jsxs("div",{style:{paddingBottom:"0px",fontSize:"1.2em",fontWeight:"bold"},children:["Configure ",a.title]})})]}),d.jsxs("div",{style:{padding:"5px"},children:[d.jsx(af,{track:a}),d.jsx(Al,{track:a}),(()=>{switch(a.trackType){case F.BIGWIG:return d.jsx(ql,{track:a});case F.TRANSCRIPT:return d.jsx(Bl,{track:a});default:return null}})()]})]})})}),document.body):null}function uf({handleClose:e,color:t}){const r="25px";return d.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:d.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 Oa(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 lf(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 ff=e=>{const t=x.useMemo(()=>{const r=e.domain.end-e.domain.start,n={start:e.domain.start,end:e.domain.end},i=Le(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(d.jsxs("g",{children:[d.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)&&d.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 d.jsxs("g",{width:e.width,height:e.height,children:[d.jsx("line",{x1:i(c.start),x2:i(c.start),y1:e.height*.1,y2:e.height*.4,stroke:"#000",strokeWidth:.5}),d.jsx("line",{x1:i(c.end),x2:i(c.end),y1:e.height*.1,y2:e.height*.4,stroke:"#000",strokeWidth:.5}),d.jsx("line",{x1:i(c.start),x2:i(c.end),y1:e.height*.25,y2:e.height*.25,stroke:"#000",strokeWidth:.5}),d.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:lf(c.end-c.start)}),u]})},[e.canDrag===!1&&e.domain]);return d.jsx(ot,{canDrag:!0,children:t})};function hf(e){return d.jsx(Ie,{...e,id:"ruler",trackType:F.RULER,children:d.jsx(ff,{...e})})}const df=e=>{const{x:t,y:r,show:n}=x.useContext(jt);return d.jsx("g",{transform:`translate(${t}, ${r})`,style:{visibility:n?"visible":"hidden"},children:d.jsx("foreignObject",{width:e.width,height:e.height,style:{overflow:"visible"},children:e.children})})},vf={cursor:"default",fontSize:"12px",padding:"6px 15px 5px 5px"},pf=e=>{var i;const t=x.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]=x.useState(null);return d.jsx("div",{style:{position:"fixed",background:"white",boxShadow:"0px 2px 10px #999999"},children:(i=e.data.displayModeOptions)==null?void 0:i.map(a=>d.jsx("div",{onMouseOver:()=>n(a),onMouseOut:()=>n(null),onClick:()=>t(a),style:{backgroundColor:e.data.displayMode===a?"#d0d0d0":a===r?"#f0f0f0":"white",...vf},children:e.data.displayMode===a?d.jsx("li",{children:a}):a},a))})};function yf(e,t){switch(t.type){case"tooltipChanged":return{...e,tooltip:t.tooltip};case"contextMenuChanged":return{...e,contextmenu:t.contextmenu};default:return e}}function gf({children:e,onModeChange:t}){const[r,n]=x.useReducer(yf,{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=x.useCallback(o=>{n({type:"tooltipChanged",tooltip:o})},[n]),a=x.useCallback(o=>{n({type:"contextMenuChanged",contextmenu:o})},[n]);return d.jsx(jt.Provider,{value:{...r.tooltip,setTooltip:i},children:d.jsxs(_i.Provider,{value:{...r.contextmenu,setContextMenu:a},children:[e,d.jsx(df,{width:r.tooltip.width,height:r.tooltip.height,children:d.jsx("div",{style:{position:"fixed"},children:r.tooltip.content})}),d.jsx(Ku,{width:80,height:150,children:d.jsx(pf,{data:r.contextmenu,onModeChange:t,setContextMenu:a})})]})})}const mf=e=>{const[t,r]=x.useState([0,0]),[n,i]=x.useState(!1),a=x.useCallback((u,l)=>{const h=l.createSVGPoint();h.x=u.clientX,h.y=u.clientY;const f=l.getScreenCTM();return f?h.matrixTransform(f.inverse()):null},[]),o=x.useCallback(u=>{const l=document.getElementById("browserSVG");if(!(l instanceof SVGSVGElement))return;const h=a(u,l);if(!h)return;const f=h.x;r([f,f]),i(!0)},[a]),s=x.useCallback(u=>{if(!n)return;const l=document.getElementById("browserSVG");if(!(l instanceof SVGSVGElement))return;const h=a(u,l);if(!h)return;let f=h.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=x.useCallback(u=>{if(!n||(i(!1),t[1]-t[0]<10))return;u.preventDefault();const l=e.domain.end-e.domain.start,h=e.width-e.leftMargin,f=(Math.min(t[0],t[1])-e.leftMargin)/h,v=(Math.max(t[0],t[1])-e.leftMargin)/h,p={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(p)},[t]);return x.useEffect(()=>(document.addEventListener("mousemove",s),document.addEventListener("mouseup",c),()=>{document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",c)}),[s,c]),d.jsxs(d.Fragment,{children:[n?or.createPortal(d.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,d.jsx("rect",{fill:"#ffffff",width:e.width-e.leftMargin,height:e.dragRegionHeight,x:e.leftMargin,y:0,onMouseDown:o})]})};function bf({width:e,innerWidth:t,height:r,svgRef:n,children:i}){return d.jsx("svg",{id:"browserSVG",width:e,viewBox:`0 0 ${t} ${r}`,ref:n,children:i})}function xf({children:e,browserState:t,rulerHeight:r}){const[n,i]=x.useState([]);return x.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]),d.jsx(d.Fragment,{children:n.length>0&&x.Children.map(e,(a,o)=>{const s=a.props,c=n[o];return d.jsx("g",{id:`stacked-track-${s.track.id}`,transform:typeof c=="number"?`translate(0, ${c})`:void 0,children:a},o)})})}var $n=function(e,t){return $n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[i]=n[i])},$n(e,t)};function Qe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");$n(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}var T=function(){return T=Object.assign||function(t){for(var r,n=1,i=arguments.length;n<i;n++){r=arguments[n];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(t[a]=r[a])}return t},T.apply(this,arguments)};function je(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]]);return r}function Xe(e,t,r,n){function i(a){return a instanceof r?a:new r(function(o){o(a)})}return new(r||(r=Promise))(function(a,o){function s(l){try{u(n.next(l))}catch(h){o(h)}}function c(l){try{u(n.throw(l))}catch(h){o(h)}}function u(l){l.done?a(l.value):i(l.value).then(s,c)}u((n=n.apply(e,t||[])).next())})}function Ke(e,t){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return o.next=s(0),o.throw=s(1),o.return=s(2),typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(u){return function(l){return c([u,l])}}function c(u){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(r=0)),r;)try{if(n=1,i&&(a=u[0]&2?i.return:u[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,u[1])).done)return a;switch(i=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,i=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]<a[3])){r.label=u[1];break}if(u[0]===6&&r.label<a[1]){r.label=a[1],a=u;break}if(a&&r.label<a[2]){r.label=a[2],r.ops.push(u);break}a[2]&&r.ops.pop(),r.trys.pop();continue}u=t.call(e,r)}catch(l){u=[6,l],i=0}finally{n=a=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function Ce(e,t,r){if(r||arguments.length===2)for(var n=0,i=t.length,a;n<i;n++)(a||!(n in t))&&(a||(a=Array.prototype.slice.call(t,0,n)),a[n]=t[n]);return e.concat(a||Array.prototype.slice.call(t))}var Sn="Invariant Violation",_a=Object.setPrototypeOf,Ef=_a===void 0?function(e,t){return e.__proto__=t,e}:_a,ps=function(e){Qe(t,e);function t(r){r===void 0&&(r=Sn);var n=e.call(this,typeof r=="number"?Sn+": "+r+" (see https://github.com/apollographql/invariant-packages)":r)||this;return n.framesToPop=1,n.name=Sn,Ef(n,t.prototype),n}return t}(Error);function ct(e,t){if(!e)throw new ps(t)}var ys=["debug","log","warn","error","silent"],wf=ys.indexOf("log");function mr(e){return function(){if(ys.indexOf(e)>=wf){var t=console[e]||console.log;return t.apply(console,arguments)}}}(function(e){e.debug=mr("debug"),e.log=mr("log"),e.warn=mr("warn"),e.error=mr("error")})(ct||(ct={}));var Di="3.11.10";function Ne(e){try{return e()}catch{}}const Wn=Ne(function(){return globalThis})||Ne(function(){return window})||Ne(function(){return self})||Ne(function(){return global})||Ne(function(){return Ne.constructor("return this")()});var Ca=new Map;function zn(e){var t=Ca.get(e)||1;return Ca.set(e,t+1),"".concat(e,":").concat(t,":").concat(Math.random().toString(36).slice(2))}function gs(e,t){t===void 0&&(t=0);var r=zn("stringifyForDisplay");return JSON.stringify(e,function(n,i){return i===void 0?r:i},t).split(JSON.stringify(r)).join("<undefined>")}function br(e){return function(t){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];if(typeof t=="number"){var i=t;t=ki(i),t||(t=Ii(i,r),r=[])}e.apply(void 0,[t].concat(r))}}var N=Object.assign(function(t,r){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];t||ct(t,ki(r,n)||Ii(r,n))},{debug:br(ct.debug),log:br(ct.log),warn:br(ct.warn),error:br(ct.error)});function Te(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return new ps(ki(e,t)||Ii(e,t))}var Da=Symbol.for("ApolloErrorMessageHandler_"+Di);function ms(e){if(typeof e=="string")return e;try{return gs(e,2).slice(0,1e3)}catch{return"<non-serializable>"}}function ki(e,t){if(t===void 0&&(t=[]),!!e)return Wn[Da]&&Wn[Da](e,t.map(ms))}function Ii(e,t){if(t===void 0&&(t=[]),!!e)return"An error occurred! For more details, see the full error text at https://go.apollo.dev/c/err#".concat(encodeURIComponent(JSON.stringify({version:Di,message:e,args:t.map(ms)})))}function Tr(e,t){if(!!!e)throw new Error(t)}function Sf(e){return typeof e=="object"&&e!==null}function Tf(e,t){if(!!!e)throw new Error("Unexpected invariant triggered.")}const Of=/\r\n|[\n\r]/g;function Hn(e,t){let r=0,n=1;for(const i of e.body.matchAll(Of)){if(typeof i.index=="number"||Tf(!1),i.index>=t)break;r=i.index+i[0].length,n+=1}return{line:n,column:t+1-r}}function _f(e){return bs(e.source,Hn(e.source,e.start))}function bs(e,t){const r=e.locationOffset.column-1,n="".padStart(r)+e.body,i=t.line-1,a=e.locationOffset.line-1,o=t.line+a,s=t.line===1?r:0,c=t.column+s,u=`${e.name}:${o}:${c}
|
|
52
52
|
`,l=n.split(/\r\n|[\n\r]/g),h=l[i];if(h.length>120){const f=Math.floor(c/80),v=c%80,p=[];for(let b=0;b<h.length;b+=80)p.push(h.slice(b,b+80));return u+ka([[`${o} |`,p[0]],...p.slice(1,f+1).map(b=>["|",b]),["|","^".padStart(v)],["|",p[f+1]]])}return u+ka([[`${o-1} |`,l[i-1]],[`${o} |`,h],["|","^".padStart(c)],[`${o+1} |`,l[i+1]]])}function ka(e){const t=e.filter(([n,i])=>i!==void 0),r=Math.max(...t.map(([n])=>n.length));return t.map(([n,i])=>n.padStart(r)+(i?" "+i:"")).join(`
|
|
53
53
|
`)}function Cf(e){const t=e[0];return t==null||"kind"in t||"length"in t?{nodes:t,source:e[1],positions:e[2],path:e[3],originalError:e[4],extensions:e[5]}:t}class Ri extends Error{constructor(t,...r){var n,i,a;const{nodes:o,source:s,positions:c,path:u,originalError:l,extensions:h}=Cf(r);super(t),this.name="GraphQLError",this.path=u??void 0,this.originalError=l??void 0,this.nodes=Ia(Array.isArray(o)?o:o?[o]:void 0);const f=Ia((n=this.nodes)===null||n===void 0?void 0:n.map(p=>p.loc).filter(p=>p!=null));this.source=s??(f==null||(i=f[0])===null||i===void 0?void 0:i.source),this.positions=c??(f==null?void 0:f.map(p=>p.start)),this.locations=c&&s?c.map(p=>Hn(s,p)):f==null?void 0:f.map(p=>Hn(p.source,p.start));const v=Sf(l==null?void 0:l.extensions)?l==null?void 0:l.extensions:void 0;this.extensions=(a=h??v)!==null&&a!==void 0?a:Object.create(null),Object.defineProperties(this,{message:{writable:!0,enumerable:!0},name:{enumerable:!1},nodes:{enumerable:!1},source:{enumerable:!1},positions:{enumerable:!1},originalError:{enumerable:!1}}),l!=null&&l.stack?Object.defineProperty(this,"stack",{value:l.stack,writable:!0,configurable:!0}):Error.captureStackTrace?Error.captureStackTrace(this,Ri):Object.defineProperty(this,"stack",{value:Error().stack,writable:!0,configurable:!0})}get[Symbol.toStringTag](){return"GraphQLError"}toString(){let t=this.message;if(this.nodes)for(const r of this.nodes)r.loc&&(t+=`
|
|
54
54
|
|