@weng-lab/genomebrowser 0.0.21 → 0.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -30,4 +30,4 @@ export declare const DefaultLD: {
30
30
  displayMode: DisplayMode;
31
31
  canDrag: boolean;
32
32
  };
33
- export default function LD(props: LDProps & LDOptions): import("react/jsx-runtime").JSX.Element;
33
+ export default function LD(props: LDProps & LDOptions): import("react/jsx-runtime").JSX.Element | undefined;
package/dist/gbc.cjs.js CHANGED
@@ -48,7 +48,7 @@ object-assign
48
48
  */var ra,js;function Lh(){if(js)return ra;js=1;var e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;function r(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 ra=i()?Object.assign:function(a,o){for(var s,c=r(a),u,l=1;l<arguments.length;l++){s=Object(arguments[l]);for(var d in s)t.call(s,d)&&(c[d]=s[d]);if(e){u=e(s);for(var f=0;f<u.length;f++)n.call(s,u[f])&&(c[u[f]]=s[u[f]])}}return c},ra}var ia,Ps;function fo(){if(Ps)return ia;Ps=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return ia=e,ia}var aa,Ns;function bu(){return Ns||(Ns=1,aa=Function.call.bind(Object.prototype.hasOwnProperty)),aa}var oa,As;function Ih(){if(As)return oa;As=1;var e=function(){};if(process.env.NODE_ENV!=="production"){var t=fo(),n={},r=bu();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(r(a,l)){var d;try{if(typeof a[l]!="function"){var f=Error((c||"React class")+": "+s+" type `"+l+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof a[l]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw f.name="Invariant Violation",f}d=a[l](o,l,c,s,null,t)}catch(x){d=x}if(d&&!(d instanceof Error)&&e((c||"React class")+": type specification of "+s+" `"+l+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof d+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),d instanceof Error&&!(d.message in n)){n[d.message]=!0;var g=u?u():"";e("Failed "+s+" type: "+d.message+(g??""))}}}}return i.resetWarningCache=function(){process.env.NODE_ENV!=="production"&&(n={})},oa=i,oa}var sa,Fs;function Rh(){if(Fs)return sa;Fs=1;var e=yu(),t=Lh(),n=fo(),r=bu(),i=Ih(),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 sa=function(s,c){var u=typeof Symbol=="function"&&Symbol.iterator,l="@@iterator";function d(j){var A=j&&(u&&j[u]||j[l]);if(typeof A=="function")return A}var f="<<anonymous>>",g={array:S("array"),bigint:S("bigint"),bool:S("boolean"),func:S("function"),number:S("number"),object:S("object"),string:S("string"),symbol:S("symbol"),any:_(),arrayOf:y,element:C(),elementType:O(),instanceOf:R,node:V(),objectOf:F,oneOf:P,oneOfType:U,shape:_e,exact:ve};function x(j,A){return j===A?j!==0||1/j===1/A:j!==j&&A!==A}function w(j,A){this.message=j,this.data=A&&typeof A=="object"?A:{},this.stack=""}w.prototype=Error.prototype;function T(j){if(process.env.NODE_ENV!=="production")var A={},Y=0;function se(me,H,re,ge,ue,pe,I){if(ge=ge||f,pe=pe||re,I!==n){if(c){var L=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw L.name="Invariant Violation",L}else if(process.env.NODE_ENV!=="production"&&typeof console<"u"){var ae=ge+":"+re;!A[ae]&&Y<3&&(a("You are manually calling a React.PropTypes validation function for the `"+pe+"` prop on `"+ge+"`. 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."),A[ae]=!0,Y++)}}return H[re]==null?me?H[re]===null?new w("The "+ue+" `"+pe+"` is marked as required "+("in `"+ge+"`, but its value is `null`.")):new w("The "+ue+" `"+pe+"` is marked as required in "+("`"+ge+"`, but its value is `undefined`.")):null:j(H,re,ge,ue,pe)}var ee=se.bind(null,!1);return ee.isRequired=se.bind(null,!0),ee}function S(j){function A(Y,se,ee,me,H,re){var ge=Y[se],ue=Ie(ge);if(ue!==j){var pe=G(ge);return new w("Invalid "+me+" `"+H+"` of type "+("`"+pe+"` supplied to `"+ee+"`, expected ")+("`"+j+"`."),{expectedType:j})}return null}return T(A)}function _(){return T(o)}function y(j){function A(Y,se,ee,me,H){if(typeof j!="function")return new w("Property `"+H+"` of component `"+ee+"` has invalid PropType notation inside arrayOf.");var re=Y[se];if(!Array.isArray(re)){var ge=Ie(re);return new w("Invalid "+me+" `"+H+"` of type "+("`"+ge+"` supplied to `"+ee+"`, expected an array."))}for(var ue=0;ue<re.length;ue++){var pe=j(re,ue,ee,me,H+"["+ue+"]",n);if(pe instanceof Error)return pe}return null}return T(A)}function C(){function j(A,Y,se,ee,me){var H=A[Y];if(!s(H)){var re=Ie(H);return new w("Invalid "+ee+" `"+me+"` of type "+("`"+re+"` supplied to `"+se+"`, expected a single ReactElement."))}return null}return T(j)}function O(){function j(A,Y,se,ee,me){var H=A[Y];if(!e.isValidElementType(H)){var re=Ie(H);return new w("Invalid "+ee+" `"+me+"` of type "+("`"+re+"` supplied to `"+se+"`, expected a single ReactElement type."))}return null}return T(j)}function R(j){function A(Y,se,ee,me,H){if(!(Y[se]instanceof j)){var re=j.name||f,ge=Z(Y[se]);return new w("Invalid "+me+" `"+H+"` of type "+("`"+ge+"` supplied to `"+ee+"`, expected ")+("instance of `"+re+"`."))}return null}return T(A)}function P(j){if(!Array.isArray(j))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 A(Y,se,ee,me,H){for(var re=Y[se],ge=0;ge<j.length;ge++)if(x(re,j[ge]))return null;var ue=JSON.stringify(j,function(I,L){var ae=G(L);return ae==="symbol"?String(L):L});return new w("Invalid "+me+" `"+H+"` of value `"+String(re)+"` "+("supplied to `"+ee+"`, expected one of "+ue+"."))}return T(A)}function F(j){function A(Y,se,ee,me,H){if(typeof j!="function")return new w("Property `"+H+"` of component `"+ee+"` has invalid PropType notation inside objectOf.");var re=Y[se],ge=Ie(re);if(ge!=="object")return new w("Invalid "+me+" `"+H+"` of type "+("`"+ge+"` supplied to `"+ee+"`, expected an object."));for(var ue in re)if(r(re,ue)){var pe=j(re,ue,ee,me,H+"."+ue,n);if(pe instanceof Error)return pe}return null}return T(A)}function U(j){if(!Array.isArray(j))return process.env.NODE_ENV!=="production"&&a("Invalid argument supplied to oneOfType, expected an instance of array."),o;for(var A=0;A<j.length;A++){var Y=j[A];if(typeof Y!="function")return a("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+$(Y)+" at index "+A+"."),o}function se(ee,me,H,re,ge){for(var ue=[],pe=0;pe<j.length;pe++){var I=j[pe],L=I(ee,me,H,re,ge,n);if(L==null)return null;L.data&&r(L.data,"expectedType")&&ue.push(L.data.expectedType)}var ae=ue.length>0?", expected one of type ["+ue.join(", ")+"]":"";return new w("Invalid "+re+" `"+ge+"` supplied to "+("`"+H+"`"+ae+"."))}return T(se)}function V(){function j(A,Y,se,ee,me){return we(A[Y])?null:new w("Invalid "+ee+" `"+me+"` supplied to "+("`"+se+"`, expected a ReactNode."))}return T(j)}function ye(j,A,Y,se,ee){return new w((j||"React class")+": "+A+" type `"+Y+"."+se+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+ee+"`.")}function _e(j){function A(Y,se,ee,me,H){var re=Y[se],ge=Ie(re);if(ge!=="object")return new w("Invalid "+me+" `"+H+"` of type `"+ge+"` "+("supplied to `"+ee+"`, expected `object`."));for(var ue in j){var pe=j[ue];if(typeof pe!="function")return ye(ee,me,H,ue,G(pe));var I=pe(re,ue,ee,me,H+"."+ue,n);if(I)return I}return null}return T(A)}function ve(j){function A(Y,se,ee,me,H){var re=Y[se],ge=Ie(re);if(ge!=="object")return new w("Invalid "+me+" `"+H+"` of type `"+ge+"` "+("supplied to `"+ee+"`, expected `object`."));var ue=t({},Y[se],j);for(var pe in ue){var I=j[pe];if(r(j,pe)&&typeof I!="function")return ye(ee,me,H,pe,G(I));if(!I)return new w("Invalid "+me+" `"+H+"` key `"+pe+"` supplied to `"+ee+"`.\nBad object: "+JSON.stringify(Y[se],null," ")+`
49
49
  Valid keys: `+JSON.stringify(Object.keys(j),null," "));var L=I(re,pe,ee,me,H+"."+pe,n);if(L)return L}return null}return T(A)}function we(j){switch(typeof j){case"number":case"string":case"undefined":return!0;case"boolean":return!j;case"object":if(Array.isArray(j))return j.every(we);if(j===null||s(j))return!0;var A=d(j);if(A){var Y=A.call(j),se;if(A!==j.entries){for(;!(se=Y.next()).done;)if(!we(se.value))return!1}else for(;!(se=Y.next()).done;){var ee=se.value;if(ee&&!we(ee[1]))return!1}}else return!1;return!0;default:return!1}}function Ne(j,A){return j==="symbol"?!0:A?A["@@toStringTag"]==="Symbol"||typeof Symbol=="function"&&A instanceof Symbol:!1}function Ie(j){var A=typeof j;return Array.isArray(j)?"array":j instanceof RegExp?"object":Ne(A,j)?"symbol":A}function G(j){if(typeof j>"u"||j===null)return""+j;var A=Ie(j);if(A==="object"){if(j instanceof Date)return"date";if(j instanceof RegExp)return"regexp"}return A}function $(j){var A=G(j);switch(A){case"array":case"object":return"an "+A;case"boolean":case"date":case"regexp":return"a "+A;default:return A}}function Z(j){return!j.constructor||!j.constructor.name?f:j.constructor.name}return g.checkPropTypes=i,g.resetWarningCache=i.resetWarningCache,g.PropTypes=g,g},sa}var ca,Vs;function jh(){if(Vs)return ca;Vs=1;var e=fo();function t(){}function n(){}return n.resetWarningCache=t,ca=function(){function r(o,s,c,u,l,d){if(d!==e){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw f.name="Invariant Violation",f}}r.isRequired=r;function i(){return r}var a={array:r,bigint:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:i,element:r,elementType:r,instanceOf:i,node:r,objectOf:i,oneOf:i,oneOfType:i,shape:i,exact:i,checkPropTypes:n,resetWarningCache:t};return a.PropTypes=a,a},ca}if(process.env.NODE_ENV!=="production"){var Ph=yu(),Nh=!0;Ia.exports=Rh()(Ph.isElement,Nh)}else Ia.exports=jh()();var xu=Ia.exports;function Eu(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=Eu(e[t]))&&(r&&(r+=" "),r+=n);else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}function qs(){for(var e,t,n=0,r="";n<arguments.length;)(e=arguments[n++])&&(t=Eu(e))&&(r&&(r+=" "),r+=t);return r}const Ah=Object.freeze(Object.defineProperty({__proto__:null,clsx:qs,default:qs},Symbol.toStringTag,{value:"Module"})),Fh=kh(Ah);var We={},Wt={};Object.defineProperty(Wt,"__esModule",{value:!0});Wt.dontSetMe=Bh;Wt.findInArray=Vh;Wt.int=Uh;Wt.isFunction=qh;Wt.isNum=$h;function Vh(e,t){for(let n=0,r=e.length;n<r;n++)if(t.apply(t,[e[n],n,e]))return e[n]}function qh(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Function]"}function $h(e){return typeof e=="number"&&!isNaN(e)}function Uh(e){return parseInt(e,10)}function Bh(e,t,n){if(e[t])return new Error("Invalid prop ".concat(t," passed to ").concat(n," - do not set this, set it on the child."))}var On={};Object.defineProperty(On,"__esModule",{value:!0});On.browserPrefixToKey=Ou;On.browserPrefixToStyle=zh;On.default=void 0;On.getPrefix=wu;const ua=["Moz","Webkit","O","ms"];function wu(){var e;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";if(typeof window>"u")return"";const n=(e=window.document)===null||e===void 0||(e=e.documentElement)===null||e===void 0?void 0:e.style;if(!n||t in n)return"";for(let r=0;r<ua.length;r++)if(Ou(t,ua[r])in n)return ua[r];return""}function Ou(e,t){return t?"".concat(t).concat(Wh(e)):e}function zh(e,t){return t?"-".concat(t.toLowerCase(),"-").concat(e):e}function Wh(e){let t="",n=!0;for(let r=0;r<e.length;r++)n?(t+=e[r].toUpperCase(),n=!1):e[r]==="-"?n=!0:t+=e[r];return t}On.default=wu();Object.defineProperty(We,"__esModule",{value:!0});We.addClassName=Cu;We.addEvent=Gh;We.addUserSelectStyles=ad;We.createCSSTransform=td;We.createSVGTransform=nd;We.getTouch=rd;We.getTouchIdentifier=id;We.getTranslation=ho;We.innerHeight=Jh;We.innerWidth=Zh;We.matchesSelector=Tu;We.matchesSelectorAndParentsTo=Hh;We.offsetXYFromParent=ed;We.outerHeight=Kh;We.outerWidth=Xh;We.removeClassName=_u;We.removeEvent=Yh;We.removeUserSelectStyles=od;var Tt=Wt,$s=Qh(On);function Su(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,n=new WeakMap;return(Su=function(r){return r?n:t})(e)}function Qh(e,t){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var n=Su(t);if(n&&n.has(e))return n.get(e);var r={},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(r,a,o):r[a]=e[a]}return r.default=e,n&&n.set(e,r),r}let ti="";function Tu(e,t){return ti||(ti=(0,Tt.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(n){return(0,Tt.isFunction)(e[n])})),(0,Tt.isFunction)(e[ti])?e[ti](t):!1}function Hh(e,t,n){let r=e;do{if(Tu(r,t))return!0;if(r===n)return!1;r=r.parentNode}while(r);return!1}function Gh(e,t,n,r){if(!e)return;const i={capture:!0,...r};e.addEventListener?e.addEventListener(t,n,i):e.attachEvent?e.attachEvent("on"+t,n):e["on"+t]=n}function Yh(e,t,n,r){if(!e)return;const i={capture:!0,...r};e.removeEventListener?e.removeEventListener(t,n,i):e.detachEvent?e.detachEvent("on"+t,n):e["on"+t]=null}function Kh(e){let t=e.clientHeight;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,Tt.int)(n.borderTopWidth),t+=(0,Tt.int)(n.borderBottomWidth),t}function Xh(e){let t=e.clientWidth;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,Tt.int)(n.borderLeftWidth),t+=(0,Tt.int)(n.borderRightWidth),t}function Jh(e){let t=e.clientHeight;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,Tt.int)(n.paddingTop),t-=(0,Tt.int)(n.paddingBottom),t}function Zh(e){let t=e.clientWidth;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,Tt.int)(n.paddingLeft),t-=(0,Tt.int)(n.paddingRight),t}function ed(e,t,n){const i=t===t.ownerDocument.body?{left:0,top:0}:t.getBoundingClientRect(),a=(e.clientX+t.scrollLeft-i.left)/n,o=(e.clientY+t.scrollTop-i.top)/n;return{x:a,y:o}}function td(e,t){const n=ho(e,t,"px");return{[(0,$s.browserPrefixToKey)("transform",$s.default)]:n}}function nd(e,t){return ho(e,t,"")}function ho(e,t,n){let{x:r,y:i}=e,a="translate(".concat(r).concat(n,",").concat(i).concat(n,")");if(t){const o="".concat(typeof t.x=="string"?t.x:t.x+n),s="".concat(typeof t.y=="string"?t.y:t.y+n);a="translate(".concat(o,", ").concat(s,")")+a}return a}function rd(e,t){return e.targetTouches&&(0,Tt.findInArray)(e.targetTouches,n=>t===n.identifier)||e.changedTouches&&(0,Tt.findInArray)(e.changedTouches,n=>t===n.identifier)}function id(e){if(e.targetTouches&&e.targetTouches[0])return e.targetTouches[0].identifier;if(e.changedTouches&&e.changedTouches[0])return e.changedTouches[0].identifier}function ad(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&&Cu(e.body,"react-draggable-transparent-selection")}function od(e){if(e)try{if(e.body&&_u(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 Cu(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)")))||(e.className+=" ".concat(t))}function _u(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)"),"g"),"")}var Qt={};Object.defineProperty(Qt,"__esModule",{value:!0});Qt.canDragX=ud;Qt.canDragY=ld;Qt.createCoreData=hd;Qt.createDraggableData=dd;Qt.getBoundPosition=sd;Qt.getControlPosition=fd;Qt.snapToGrid=cd;var St=Wt,Nn=We;function sd(e,t,n){if(!e.props.bounds)return[t,n];let{bounds:r}=e.props;r=typeof r=="string"?r:pd(r);const i=po(e);if(typeof r=="string"){const{ownerDocument:a}=i,o=a.defaultView;let s;if(r==="parent"?s=i.parentNode:s=a.querySelector(r),!(s instanceof o.HTMLElement))throw new Error('Bounds selector "'+r+'" could not find an element.');const c=s,u=o.getComputedStyle(i),l=o.getComputedStyle(c);r={left:-i.offsetLeft+(0,St.int)(l.paddingLeft)+(0,St.int)(u.marginLeft),top:-i.offsetTop+(0,St.int)(l.paddingTop)+(0,St.int)(u.marginTop),right:(0,Nn.innerWidth)(c)-(0,Nn.outerWidth)(i)-i.offsetLeft+(0,St.int)(l.paddingRight)-(0,St.int)(u.marginRight),bottom:(0,Nn.innerHeight)(c)-(0,Nn.outerHeight)(i)-i.offsetTop+(0,St.int)(l.paddingBottom)-(0,St.int)(u.marginBottom)}}return(0,St.isNum)(r.right)&&(t=Math.min(t,r.right)),(0,St.isNum)(r.bottom)&&(n=Math.min(n,r.bottom)),(0,St.isNum)(r.left)&&(t=Math.max(t,r.left)),(0,St.isNum)(r.top)&&(n=Math.max(n,r.top)),[t,n]}function cd(e,t,n){const r=Math.round(t/e[0])*e[0],i=Math.round(n/e[1])*e[1];return[r,i]}function ud(e){return e.props.axis==="both"||e.props.axis==="x"}function ld(e){return e.props.axis==="both"||e.props.axis==="y"}function fd(e,t,n){const r=typeof t=="number"?(0,Nn.getTouch)(e,t):null;if(typeof t=="number"&&!r)return null;const i=po(n),a=n.props.offsetParent||i.offsetParent||i.ownerDocument.body;return(0,Nn.offsetXYFromParent)(r||e,a,n.props.scale)}function hd(e,t,n){const r=!(0,St.isNum)(e.lastX),i=po(e);return r?{node:i,deltaX:0,deltaY:0,lastX:t,lastY:n,x:t,y:n}:{node:i,deltaX:t-e.lastX,deltaY:n-e.lastY,lastX:e.lastX,lastY:e.lastY,x:t,y:n}}function dd(e,t){const n=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/n,y:e.state.y+t.deltaY/n,deltaX:t.deltaX/n,deltaY:t.deltaY/n,lastX:e.state.x,lastY:e.state.y}}function pd(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}function po(e){const t=e.findDOMNode();if(!t)throw new Error("<DraggableCore>: Unmounted during event!");return t}var Mi={},Li={};Object.defineProperty(Li,"__esModule",{value:!0});Li.default=md;function md(){}Object.defineProperty(Mi,"__esModule",{value:!0});Mi.default=void 0;var la=vd(E),Et=mo(xu),gd=mo(Nr),pt=We,tn=Qt,fa=Wt,pr=mo(Li);function mo(e){return e&&e.__esModule?e:{default:e}}function ku(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,n=new WeakMap;return(ku=function(r){return r?n:t})(e)}function vd(e,t){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var n=ku(t);if(n&&n.has(e))return n.get(e);var r={},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(r,a,o):r[a]=e[a]}return r.default=e,n&&n.set(e,r),r}function gt(e,t,n){return t=yd(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yd(e){var t=bd(e,"string");return typeof t=="symbol"?t:String(t)}function bd(e,t){if(typeof e!="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}const At={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let nn=At.mouse,Ii=class extends la.Component{constructor(){super(...arguments),gt(this,"dragging",!1),gt(this,"lastX",NaN),gt(this,"lastY",NaN),gt(this,"touchIdentifier",null),gt(this,"mounted",!1),gt(this,"handleDragStart",t=>{if(this.props.onMouseDown(t),!this.props.allowAnyClick&&typeof t.button=="number"&&t.button!==0)return!1;const n=this.findDOMNode();if(!n||!n.ownerDocument||!n.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:r}=n;if(this.props.disabled||!(t.target instanceof r.defaultView.Node)||this.props.handle&&!(0,pt.matchesSelectorAndParentsTo)(t.target,this.props.handle,n)||this.props.cancel&&(0,pt.matchesSelectorAndParentsTo)(t.target,this.props.cancel,n))return;t.type==="touchstart"&&t.preventDefault();const i=(0,pt.getTouchIdentifier)(t);this.touchIdentifier=i;const a=(0,tn.getControlPosition)(t,i,this);if(a==null)return;const{x:o,y:s}=a,c=(0,tn.createCoreData)(this,o,s);(0,pr.default)("DraggableCore: handleDragStart: %j",c),(0,pr.default)("calling",this.props.onStart),!(this.props.onStart(t,c)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,pt.addUserSelectStyles)(r),this.dragging=!0,this.lastX=o,this.lastY=s,(0,pt.addEvent)(r,nn.move,this.handleDrag),(0,pt.addEvent)(r,nn.stop,this.handleDragStop))}),gt(this,"handleDrag",t=>{const n=(0,tn.getControlPosition)(t,this.touchIdentifier,this);if(n==null)return;let{x:r,y:i}=n;if(Array.isArray(this.props.grid)){let s=r-this.lastX,c=i-this.lastY;if([s,c]=(0,tn.snapToGrid)(this.props.grid,s,c),!s&&!c)return;r=this.lastX+s,i=this.lastY+c}const a=(0,tn.createCoreData)(this,r,i);if((0,pr.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=r,this.lastY=i}),gt(this,"handleDragStop",t=>{if(!this.dragging)return;const n=(0,tn.getControlPosition)(t,this.touchIdentifier,this);if(n==null)return;let{x:r,y:i}=n;if(Array.isArray(this.props.grid)){let c=r-this.lastX||0,u=i-this.lastY||0;[c,u]=(0,tn.snapToGrid)(this.props.grid,c,u),r=this.lastX+c,i=this.lastY+u}const a=(0,tn.createCoreData)(this,r,i);if(this.props.onStop(t,a)===!1||this.mounted===!1)return!1;const s=this.findDOMNode();s&&this.props.enableUserSelectHack&&(0,pt.removeUserSelectStyles)(s.ownerDocument),(0,pr.default)("DraggableCore: handleDragStop: %j",a),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,s&&((0,pr.default)("DraggableCore: Removing handlers"),(0,pt.removeEvent)(s.ownerDocument,nn.move,this.handleDrag),(0,pt.removeEvent)(s.ownerDocument,nn.stop,this.handleDragStop))}),gt(this,"onMouseDown",t=>(nn=At.mouse,this.handleDragStart(t))),gt(this,"onMouseUp",t=>(nn=At.mouse,this.handleDragStop(t))),gt(this,"onTouchStart",t=>(nn=At.touch,this.handleDragStart(t))),gt(this,"onTouchEnd",t=>(nn=At.touch,this.handleDragStop(t)))}componentDidMount(){this.mounted=!0;const t=this.findDOMNode();t&&(0,pt.addEvent)(t,At.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const t=this.findDOMNode();if(t){const{ownerDocument:n}=t;(0,pt.removeEvent)(n,At.mouse.move,this.handleDrag),(0,pt.removeEvent)(n,At.touch.move,this.handleDrag),(0,pt.removeEvent)(n,At.mouse.stop,this.handleDragStop),(0,pt.removeEvent)(n,At.touch.stop,this.handleDragStop),(0,pt.removeEvent)(t,At.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,pt.removeUserSelectStyles)(n)}}findDOMNode(){var t,n;return(t=this.props)!==null&&t!==void 0&&t.nodeRef?(n=this.props)===null||n===void 0||(n=n.nodeRef)===null||n===void 0?void 0:n.current:gd.default.findDOMNode(this)}render(){return la.cloneElement(la.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};Mi.default=Ii;gt(Ii,"displayName","DraggableCore");gt(Ii,"propTypes",{allowAnyClick:Et.default.bool,children:Et.default.node.isRequired,disabled:Et.default.bool,enableUserSelectHack:Et.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:Et.default.arrayOf(Et.default.number),handle:Et.default.string,cancel:Et.default.string,nodeRef:Et.default.object,onStart:Et.default.func,onDrag:Et.default.func,onStop:Et.default.func,onMouseDown:Et.default.func,scale:Et.default.number,className:fa.dontSetMe,style:fa.dontSetMe,transform:fa.dontSetMe});gt(Ii,"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(E),n=l(xu),r=l(Nr),i=l(Fh),a=We,o=Qt,s=Wt,c=l(Mi),u=l(Li);function l(_){return _&&_.__esModule?_:{default:_}}function d(_){if(typeof WeakMap!="function")return null;var y=new WeakMap,C=new WeakMap;return(d=function(O){return O?C:y})(_)}function f(_,y){if(_&&_.__esModule)return _;if(_===null||typeof _!="object"&&typeof _!="function")return{default:_};var C=d(y);if(C&&C.has(_))return C.get(_);var O={},R=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var P in _)if(P!=="default"&&Object.prototype.hasOwnProperty.call(_,P)){var F=R?Object.getOwnPropertyDescriptor(_,P):null;F&&(F.get||F.set)?Object.defineProperty(O,P,F):O[P]=_[P]}return O.default=_,C&&C.set(_,O),O}function g(){return g=Object.assign?Object.assign.bind():function(_){for(var y=1;y<arguments.length;y++){var C=arguments[y];for(var O in C)Object.prototype.hasOwnProperty.call(C,O)&&(_[O]=C[O])}return _},g.apply(this,arguments)}function x(_,y,C){return y=w(y),y in _?Object.defineProperty(_,y,{value:C,enumerable:!0,configurable:!0,writable:!0}):_[y]=C,_}function w(_){var y=T(_,"string");return typeof y=="symbol"?y:String(y)}function T(_,y){if(typeof _!="object"||_===null)return _;var C=_[Symbol.toPrimitive];if(C!==void 0){var O=C.call(_,y||"default");if(typeof O!="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(y==="string"?String:Number)(_)}class S extends t.Component{static getDerivedStateFromProps(y,C){let{position:O}=y,{prevPropsPosition:R}=C;return O&&(!R||O.x!==R.x||O.y!==R.y)?((0,u.default)("Draggable: getDerivedStateFromProps %j",{position:O,prevPropsPosition:R}),{x:O.x,y:O.y,prevPropsPosition:{...O}}):null}constructor(y){super(y),x(this,"onDragStart",(C,O)=>{if((0,u.default)("Draggable: onDragStart: %j",O),this.props.onStart(C,(0,o.createDraggableData)(this,O))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),x(this,"onDrag",(C,O)=>{if(!this.state.dragging)return!1;(0,u.default)("Draggable: onDrag: %j",O);const R=(0,o.createDraggableData)(this,O),P={x:R.x,y:R.y,slackX:0,slackY:0};if(this.props.bounds){const{x:U,y:V}=P;P.x+=this.state.slackX,P.y+=this.state.slackY;const[ye,_e]=(0,o.getBoundPosition)(this,P.x,P.y);P.x=ye,P.y=_e,P.slackX=this.state.slackX+(U-P.x),P.slackY=this.state.slackY+(V-P.y),R.x=P.x,R.y=P.y,R.deltaX=P.x-this.state.x,R.deltaY=P.y-this.state.y}if(this.props.onDrag(C,R)===!1)return!1;this.setState(P)}),x(this,"onDragStop",(C,O)=>{if(!this.state.dragging||this.props.onStop(C,(0,o.createDraggableData)(this,O))===!1)return!1;(0,u.default)("Draggable: onDragStop: %j",O);const P={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:U,y:V}=this.props.position;P.x=U,P.y=V}this.setState(P)}),this.state={dragging:!1,dragged:!1,x:y.position?y.position.x:y.defaultPosition.x,y:y.position?y.position.y:y.defaultPosition.y,prevPropsPosition:{...y.position},slackX:0,slackY:0,isElementSVG:!1},y.position&&!(y.onDrag||y.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 y,C;return(y=(C=this.props)===null||C===void 0||(C=C.nodeRef)===null||C===void 0?void 0:C.current)!==null&&y!==void 0?y:r.default.findDOMNode(this)}render(){const{axis:y,bounds:C,children:O,defaultPosition:R,defaultClassName:P,defaultClassNameDragging:F,defaultClassNameDragged:U,position:V,positionOffset:ye,scale:_e,...ve}=this.props;let we={},Ne=null;const G=!!!V||this.state.dragging,$=V||R,Z={x:(0,o.canDragX)(this)&&G?this.state.x:$.x,y:(0,o.canDragY)(this)&&G?this.state.y:$.y};this.state.isElementSVG?Ne=(0,a.createSVGTransform)(Z,ye):we=(0,a.createCSSTransform)(Z,ye);const j=(0,i.default)(O.props.className||"",P,{[F]:this.state.dragging,[U]:this.state.dragged});return t.createElement(c.default,g({},ve,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(O),{className:j,style:{...O.props.style,...we},transform:Ne}))}}e.default=S,x(S,"displayName","Draggable"),x(S,"propTypes",{...c.default.propTypes,axis:n.default.oneOf(["both","x","y","none"]),bounds:n.default.oneOfType([n.default.shape({left:n.default.number,right:n.default.number,top:n.default.number,bottom:n.default.number}),n.default.string,n.default.oneOf([!1])]),defaultClassName:n.default.string,defaultClassNameDragging:n.default.string,defaultClassNameDragged:n.default.string,defaultPosition:n.default.shape({x:n.default.number,y:n.default.number}),positionOffset:n.default.shape({x:n.default.oneOfType([n.default.number,n.default.string]),y:n.default.oneOfType([n.default.number,n.default.string])}),position:n.default.shape({x:n.default.number,y:n.default.number}),className:s.dontSetMe,style:s.dontSetMe,transform:s.dontSetMe}),x(S,"defaultProps",{...c.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})})(vu);const{default:Du,DraggableCore:xd}=vu;Di.exports=Du;Di.exports.default=Du;Di.exports.DraggableCore=xd;var Ed=Di.exports;const yi=gu(Ed);var Fe=(e=>(e.FULL="full",e.DENSE="dense",e.SQUISH="squish",e.PACK="pack",e.HIDE="hide",e.DOWNLOAD="download",e))(Fe||{}),X=(e=>(e.UNDEFINED="undefined",e.RULER="ruler",e.BIGWIG="bigwig",e.BIGBED="bigbed",e.IMPORTANCE="importance",e.TRANSCRIPT="transcript",e.BAM="bam",e.MOTIF="motif",e.LDTRACK="ldtrack",e))(X||{});function wd(e){return null}function Od(e){return null}var bi=(e=>(e[e.V29=29]="V29",e[e.V40=40]="V40",e[e.V47=47]="V47",e))(bi||{}),go=(e=>(e[e.V21=21]="V21",e[e.V25=25]="V25",e[e.V36=36]="V36",e))(go||{});function Sd(e){return null}const Sn=E.createContext({}),qt=E.createContext(()=>{});var le=(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))(le||{});function Td(e,t){switch(t.type){case"setDomain":const n=t.domain,r=Math.floor((n.end-n.start)/e.preRenderedWidth);return{...e,domain:t.domain,zoomLevel:r};case"addTrack":return e.tracks.find(y=>y.id===t.track.id)?e:{...e,tracks:[...e.tracks,t.track]};case"updateTrack":const a=e.tracks.find(y=>y.id===t.id);if(a){const y={...a,...t.track};return{...e,tracks:e.tracks.map(C=>C.id===t.id?y:C)}}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 o=Math.floor(t.delta/e.preRenderedWidth*(e.domain.end-e.domain.start));return{...e,domain:{...e.domain,start:e.domain.start-o,end:e.domain.end-o}};case"setLoading":return{...e,tracks:e.tracks.map(y=>({...y,data:void 0,...y.trackType===X.MOTIF?{peaks:void 0}:{}}))};case"shiftTrack":const s=e.tracks.findIndex(y=>y.id===t.id1);if(s===-1)return e;const c=e.tracks.findIndex(y=>y.id===t.id2);if(c<0||c>=e.tracks.length)return e;const u=[...e.tracks],[l]=u.splice(s,1);return u.splice(c,0,l),{...e,tracks:u};case"swapTracks":const d=e.tracks.findIndex(y=>y.id===t.id1);if(d===-1)return e;const f=e.tracks.findIndex(y=>y.id===t.id2);if(f<0||f>=e.tracks.length)return e;const g=[...e.tracks];return[g[d],g[f]]=[g[f],g[d]],{...e,tracks:g};case"translateTrack":const x=e.tracks.find(y=>y.id===t.id);if(!x)return e;const w={...x.props,transform:`translate(0, ${t.dist})`};return{...e,tracks:e.tracks.map(y=>y.id===x.id?{...y,props:w}:y)};case"removeTranslation":return t.id==="ALL"?{...e,tracks:e.tracks.map(y=>{if(!y.props)return y;const{transform:C,...O}=y.props;return{...y,props:O}})}:{...e,tracks:e.tracks.map(y=>y.id===t.id?{...y,props:(()=>{if(!y.props)return y.props;const{transform:C,...O}=y.props;return O})()}: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 T=e.tracks.find(y=>y.id===t.id);return T?{...e,tracks:[T,...e.tracks.filter(y=>y.id!==t.id)]}:e;case"setDelta":return{...e,delta:t.delta};case"zoomDomain":const S=(e.domain.start+e.domain.end)/2,_=(e.domain.end-e.domain.start)*t.factor;return{...e,domain:{...e.domain,start:Math.floor(S-_/2),end:Math.ceil(S+_/2)},zoomLevel:e.zoomLevel};case"slideDomain":return{...e,domain:{...e.domain,start:e.domain.start+t.delta,end:e.domain.end+t.delta}};case"addHighlight":return e.highlights.some(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 Mu=E.createContext(!1);function Cd({canDrag:e,id:t,height:n,children:r}){var Ie;const a=E.useRef(null),o=E.useContext(qt),s=E.useContext(Sn),[c,u]=E.useState(0),[l,d]=E.useState({x:0,y:0}),[f,g]=E.useState(!1),[x,w]=E.useState({x:0,y:0}),[T,S]=E.useState([]),[_,y]=E.useState([]),[C,O]=E.useState(-1),[R,P]=E.useState(null),[F,U]=E.useState(1);E.useEffect(()=>{const G=document.getElementById("browserSVG");if(P(G),G){const $=G,Z=$.getBoundingClientRect();U(Z.width/$.viewBox.baseVal.width)}},[]);const V=E.useRef(((Ie=s.tracks)==null?void 0:Ie.find(G=>G.id===t))||null);E.useEffect(()=>{if(!s.tracks||f)return;const G=s.tracks.map(j=>j.actualHeight||j.height),$=s.tracks.findIndex(j=>j.id===t);let Z=new Array(G.length).fill(0);Z=G.map((j,A)=>A<$?-G.slice(A,$).reduce((Y,se)=>Y+se,0):A>$?G.slice($+1,A+1).reduce((Y,se)=>Y+se,0):0),y(new Array(s.tracks.length).fill(!1)),S(Z)},[s.tracks?s.tracks:[]]);const ye=()=>{const G=T.reduce(($,Z,j)=>Math.abs(Z-c)<Math.abs(T[$]-c)?j:$,0);return C!=G&&(C!=-1&&_[C]&&_[G]&&(y($=>{const Z=[...$];return Z[C]=!1,Z}),o({type:le.REMOVE_TRANSLATION,id:s.tracks[C].id})),y($=>{const Z=[...$];return Z[G]=!0,Z}),o({type:le.TRANSLATE_TRACK,id:s.tracks[G].id,dist:c<0?n:-n}),O(G)),G},_e=()=>{if(!s.tracks)return;const G=s.tracks.find(Z=>Z.id===t);if(!G)return;const $=s.tracks.slice(0,s.tracks.indexOf(G)).reduce((Z,j)=>Z+(j.actualHeight||j.height),0);w({x:0,y:$+80}),u(0),g(!0)},ve=()=>{s.tracks&&(d({x:0,y:0}),g(!1),o({type:le.SHIFT_TRACK,id1:t,id2:s.tracks[ye()].id}),o({type:le.REMOVE_TRANSLATION,id:"ALL"}))},we=(G,$)=>{u($.y),d({x:0,y:$.y});const Z=ye(),j=s.tracks.indexOf(V.current);Z==j||s.tracks[Z]},Ne=E.useRef(null);return p.jsx(Mu.Provider,{value:f,children:p.jsx(yi,{scale:F,nodeRef:a,position:l,axis:"y",handle:".swap-handle",onStart:e&&R?_e:()=>!1,onStop:ve,onDrag:we,children:p.jsxs("g",{ref:a,"data-track-id":t,children:[!f&&r,f&&(R?Nr.createPortal(p.jsx(yi,{scale:F,nodeRef:Ne,position:{x:0,y:x.y+l.y},axis:"y",children:p.jsx("g",{ref:Ne,style:{cursor:"grabbing",filter:"drop-shadow(2px 2px 2px gray)"},children:r})}),R):r)]})})})}E.createContext({});E.createContext(()=>{});const vo=E.createContext({delta:0,setDelta:()=>{}}),yo=E.createContext({openModal:null,showModal:()=>{},closeModal:()=>{}});function _d({children:e,browserState:t,browserDispatch:n,modalState:r,deltaContext:i}){return p.jsx(yo.Provider,{value:{...r},children:p.jsx(Sn.Provider,{value:t,children:p.jsx(qt.Provider,{value:n,children:p.jsx(vo.Provider,{value:i,children:e})})})})}function kd(e){return p.jsxs("svg",{x:e.x,y:e.y,width:e.width,height:e.height,viewBox:"0 0 24.000001 24.000001",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",children:[p.jsx("filter",{id:"a",colorInterpolationFilters:"sRGB",height:"1.39486",width:"1.311082",x:"-.155541",y:"-.19743",children:p.jsx("feGaussianBlur",{stdDeviation:"1.2313672"})}),p.jsxs("g",{transform:"matrix(.96344673 0 0 .96344673 -123.36427 -955.289756)",children:[p.jsx("path",{d:"m132.5 995.4062c-.831 0-1.5 1.5-1.5 1.5s.669 1.5 1.5 1.5h7.6875c-.25613.088-.47997.2851-.59375.5313l-3 6c-.2396.5108.0576 1.1992.59375 1.375l1.8125.625v2.4375c.00005.5236.47642 1 1 1h1c.52358 0 .99995-.4764 1-1v-2.4375l1.8125-.625c.53611-.1758.83335-.8642.59375-1.375l-3-6c-.13219-.2754-.39056-.4647-.6875-.5313h7.78125c.831 0 1.5-1.5 1.5-1.5s-.669-1.5-1.5-1.5z",filter:"url(#a)",opacity:".2"}),p.jsx("path",{d:"m140.3125 997.375c-.31022.06-.58621.2757-.71875.5625l-3 6c-.2396.5108.0576 1.1992.59375 1.375l1.8125.625v2.4375c.00005.5236.47642 1 1 1h1c.52358 0 .99995-.4764 1-1v-2.4375l1.8125-.625c.53611-.1758.83335-.8642.59375-1.375l-3-6c-.17625-.3672-.59466-.6026-1-.5625-.0312-.001-.0625-.001-.0937 0z"}),p.jsx("path",{d:"m140.5 998.375-3 6 2.5.8437v3.1563h1v-3.1563l2.5-.8437z",fill:"#fefefe"}),p.jsxs("g",{transform:"rotate(-90)",children:[p.jsx("rect",{height:"18.999969",rx:"1.43934",ry:"1.5",width:"3.049988",x:"-997.41217",y:"131.00003"}),p.jsx("path",{d:"m-996.41217 132.00003h1v16.999969h-1z",fill:"#fefefe"})]})]})]})}function bo(e){return e/6<10?e<10?e:10:e/6}const Us=({fontSize:e,position:t,width:n,children:r})=>p.jsxs(p.Fragment,{children:[p.jsx("text",{textAnchor:"end",alignmentBaseline:"middle",y:t-3,x:n*.94,fontSize:`${e}px`,style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:r}),p.jsx("line",{x1:n*.96,x2:n,y1:t,y2:t,stroke:"#aaa"})]}),Dd=e=>{const t=bo(50),[n,r]=E.useState(null);E.useEffect(()=>{const x=document.getElementById("browserSVG");r(x)},[]);const{showModal:i}=E.useContext(yo),[a,o]=E.useState(void 0),s=E.useContext(qt),c=E.useContext(Sn);let u=-1;c.tracks&&(u=c.tracks.findIndex(x=>x.id===e.trackId));const l=x=>{i(e.trackId,x.clientX,x.clientY)},d=x=>{x.preventDefault(),s({type:le.BRING_TO_TOP,id:e.trackId})};E.useEffect(()=>{o(e.range)},[e.range]);const f=E.useContext(Mu),g=x=>{s({type:le.UPDATE_TRACK,id:e.trackId,track:{hoverColor:x?e.color:void 0}})};return p.jsx("svg",{style:{cursor:e.canDrag&&n?f?"grabbing":"grab":"default"},width:e.width,height:e.height,viewBox:`0 0 ${e.width} ${e.height}`,preserveAspectRatio:"xMinYMin meet",children:p.jsxs("g",{onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1),height:e.height,width:e.width,children:[p.jsx("rect",{x:0,y:0,width:e.width,height:e.height,fill:"white",className:"swap-handle"}),p.jsx("rect",{x:0,y:0,width:e.width/15,height:e.height,stroke:"#000000",strokeWidth:.5,fill:e.color||"rgb(225,225,225)",style:{cursor:"default"}}),p.jsx("text",{fontSize:`${t}px`,y:e.range===void 0?e.height/2:(e.height+t)/2,x:e.width/10,alignmentBaseline:"middle",style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:e.shortLabel}),p.jsx("line",{stroke:"#ccc",x1:e.width,x2:e.width,y1:0,y2:e.height}),e.trackType!==X.RULER&&n&&p.jsxs("svg",{x:e.width/10,y:e.range===void 0?e.height/2+5:(e.height+t)/2+5,width:35,height:20,cursor:"pointer",children:[p.jsxs("g",{onClick:l,children:[p.jsx("circle",{cx:7.5,cy:7.5,r:7.5,strokeWidth:0,fill:"transparent"}),p.jsx(Ch,{x:0,y:0,height:15,width:15})]}),u>0&&p.jsxs("g",{onClick:d,children:[p.jsx("circle",{cx:22.5,cy:7.5,r:7.5,strokeWidth:0,fill:"transparent"}),p.jsx(kd,{x:15,y:2,height:15,width:15})]})]}),a&&p.jsxs(p.Fragment,{children:[p.jsx(Us,{position:e.rangePositions.min,width:e.width,fontSize:t||e.height/6,children:Number(a.min).toFixed(2)}),p.jsx(Us,{position:e.rangePositions.max,width:e.width,fontSize:t||e.height/6,children:Number(a.max).toFixed(2)})]})]})})};function Md(e){return e&&e.props!==void 0}const Ld=0,Bs=255;function Lu(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 Ri(e,t){e=Lu(e);let n="#";for(let r=0;r<3;++r){const i=parseInt(e.substr(r*2,2),16),a=Math.round(Math.min(Math.max(Ld,i+t*Bs),Bs)).toString(16);n+=("00"+a).substr(a.length)}return n}function zs(e){return parseInt(Lu(e),16)}function Id(e){return e>=16?e.toString(16):`0${e.toString(16)}`}const xo=E.createContext({show:!1,x:0,y:0,id:"",setContextMenu:()=>{},displayMode:void 0}),Rd=e=>{const{x:t,y:n,show:r}=E.useContext(xo);return p.jsx("g",{id:"context-menu",transform:`translate(${t}, ${n})`,style:{visibility:r?"visible":"hidden"},children:p.jsx("foreignObject",{width:e.width,height:e.height,children:e.children})})},pn=(e,t)=>{if(e.createSVGPoint&&e){let r=e.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,r=r.matrixTransform(e.getScreenCTM().inverse()),[r.x,r.y]}const n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]},jd=(e,t)=>{const n=e.cloneNode(!0),r=t.cloneNode(!0);return'<?xml version="1.0" standalone="no"?>'+'<svg xmlns="http://www.w3.org/2000/svg">'+r.outerHTML.replace(/\n/g,"").replace(/[ ]{8}/g,"")+'<g transform="translate (0,50)">'+n.outerHTML.replace(/\n/g,"").replace(/[ ]{8}/g,"")+"</g></svg>"},Pd=(e,t,n)=>{const r=new Blob([jd(e,t)],{type:"image/svg;charset=utf-8"}),i=URL.createObjectURL(r),a=document.createElement("a");a.href=i,a.download=n,document.body.appendChild(a),a.click(),document.body.removeChild(a)};function Nd(e){return p.jsx("rect",{width:e.width,height:e.height,fill:e.hoverColor||"transparent",fillOpacity:e.hoverColor?.15:0,style:{pointerEvents:"none"}})}const Ad=(e,t)=>e||(!t||!t.substring||!t.length?"":t.length<=20?t:t.substring(0,20)+"..."),tt=e=>{var _;const t=E.useContext(qt),n=E.useContext(xo);E.useEffect(()=>{const y=C=>{const O=document.getElementById("context-menu");O&&!O.contains(C.target)&&n.setContextMenu({show:!1,x:0,y:0,id:""})};return document.addEventListener("click",y),()=>{document.removeEventListener("click",y)}},[n]);const r=()=>{var O,R,P,F;const y=(R=(O=e.svgRef)==null?void 0:O.current)==null?void 0:R.getElementById("wrapped-track-"+e.id),C=(F=(P=e.svgRef)==null?void 0:P.current)==null?void 0:F.getElementById("wrapped-track-ruler");Pd(y,C,e.id+".svg")},[i,a]=E.useState(e.height||0),o=E.useCallback(y=>{a(y),e.onHeightChanged&&e.onHeightChanged(y)},[e]);E.useEffect(()=>{t({type:le.SET_TRACK_HEIGHT,id:e.id,height:i}),e.onHeightChanged&&e.height!==void 0&&e.onHeightChanged(e.height)},[e.height,i]);const s=e.trackMargin||(e.height||e.rowHeight||i)/6,c=e.titleSize||s*2.5,u=e.title?c+5:0,l=s+u,d=Ad(e.shortLabel||"",e.title||""),f=i-l,g=e.width<1e3?e.width/8:150,x=e.width-g,w=i/3,S=(_=e.displayMode)==null?void 0:_.toLowerCase();return p.jsx(Cd,{canDrag:e.canDrag||!1,id:e.id,height:i,children:p.jsxs("g",{id:"wrapped-track-"+e.id,children:[p.jsx("rect",{width:e.width,height:i,fill:"white",style:{pointerEvents:"none"}}),p.jsx("line",{stroke:"#ccc",x1:e.width,x2:e.width,y1:0,y2:i,strokeWidth:2}),e.loading&&!e.error&&p.jsx("g",{transform:`translate(${g+(x-w)/2},${(i-w)/2})`,children:p.jsx(Oh,{width:w,height:w})}),e.error&&p.jsxs("g",{transform:`translate(${g+(x-w)/2},${(i-w)/2})`,children:[p.jsx(mu,{width:w,height:w}),p.jsx("g",{transform:`translate(${w/2},${w+10})`,children:p.jsx("text",{textAnchor:"middle",fontSize:`${e.titleSize}px`,style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:e.error})})]}),!e.loading&&!e.error&&e.title&&p.jsx("g",{id:`title-${e.id}`,children:p.jsx("text",{style:{cursor:"default"},fill:e.titleColor||"#000000",textAnchor:"middle",x:g+x/2,y:c/2+5,fontSize:`${c}px`,transform:`translate(0,${s})`,alignmentBaseline:"baseline",children:e.title})}),!e.loading&&!e.error&&p.jsx("g",{onContextMenu:y=>{if(e.trackType==X.RULER||!e.svgRef)return;y.preventDefault();const C=pn(e.svgRef.current,y);n.setContextMenu({show:!0,x:C[0]>e.width-80?C[0]-80:C[0],y:C[1],id:e.id,displayMode:S,downloadSVG:r,displayModeOptions:Fd(e.trackType)})},transform:`translate(${g},${i-f})`,children:E.Children.map(e.children,y=>Md(y)?E.cloneElement(y,{...y.props,height:f,width:e.width-g,hoverColor:e.hoverColor,onHeightChanged:C=>{o(C+l)}}):y)}),e.height!=0&&p.jsx(Dd,{canDrag:e.canDrag||!1,trackType:e.trackType||X.UNDEFINED,trackId:e.id,color:e.color,hoverColor:e.hoverColor,shortLabel:d,width:g,height:i,rangePositions:{min:i,max:l},range:e.range}),p.jsx(Nd,{width:e.width,height:i,hoverColor:e.hoverColor})]})})};function Fd(e){switch(e){case X.BIGBED:case X.BAM:return["dense","squish","hide","download"];case X.BIGWIG:return["full","dense","hide","download"];case X.TRANSCRIPT:return["pack","squish","hide","download"];case X.LDTRACK:return["dense","hide","download"];case X.MOTIF:return["dense","squish","hide","download"];default:return["hide","download"]}}let ni;const Vd=new Uint8Array(16);function qd(){if(!ni&&(ni=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!ni))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return ni(Vd)}const ft=[];for(let e=0;e<256;++e)ft.push((e+256).toString(16).slice(1));function $d(e,t=0){return ft[e[t+0]]+ft[e[t+1]]+ft[e[t+2]]+ft[e[t+3]]+"-"+ft[e[t+4]]+ft[e[t+5]]+"-"+ft[e[t+6]]+ft[e[t+7]]+"-"+ft[e[t+8]]+ft[e[t+9]]+"-"+ft[e[t+10]]+ft[e[t+11]]+ft[e[t+12]]+ft[e[t+13]]+ft[e[t+14]]+ft[e[t+15]]}let Ws,ha,da=0,pa=0;function $t(e,t,n){let r=t&&n||0;const i=t||new Array(16);e=e||{};let a=e.node||Ws,o=e.clockseq!==void 0?e.clockseq:ha;if(a==null||o==null){const f=e.random||(e.rng||qd)();a==null&&(a=Ws=[f[0]|1,f[1],f[2],f[3],f[4],f[5]]),o==null&&(o=ha=(f[6]<<8|f[7])&16383)}let s=e.msecs!==void 0?e.msecs:Date.now(),c=e.nsecs!==void 0?e.nsecs:pa+1;const u=s-da+(c-pa)/1e4;if(u<0&&e.clockseq===void 0&&(o=o+1&16383),(u<0||s>da)&&e.nsecs===void 0&&(c=0),c>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");da=s,pa=c,ha=o,s+=122192928e5;const l=((s&268435455)*1e4+c)%4294967296;i[r++]=l>>>24&255,i[r++]=l>>>16&255,i[r++]=l>>>8&255,i[r++]=l&255;const d=s/4294967296*1e4&268435455;i[r++]=d>>>8&255,i[r++]=d&255,i[r++]=d>>>24&15|16,i[r++]=d>>>16&255,i[r++]=o>>>8|128,i[r++]=o&255;for(let f=0;f<6;++f)i[r+f]=a[f];return t||$d(i)}function An(e,t){return` M ${e} ${t}`}function Te(e,t){return` L ${e} ${t}`}function Ct(e,t){return n=>(n-e.start)*t/(e.end-e.start)}function Iu(e,t){return n=>e.max===e.min?0:(e.max-n)*t/(e.max-e.min)}function Ud(e,t){const n=e.end-e.start,r=t.end-t.start;return i=>(i-e.start)*r/n+t.start}function Ru(e,t,n){return Ct(e||t.reduce((r,i)=>({start:i.start<r.start?i.start:r.start,end:i.end>r.end?i.end:r.end}),{start:1/0,end:-1/0}),n)}function Ar(e,t,n,r=10){return n=n||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)+r+n*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 Bd(e){return e==null?"":""+(e<1e5?e===Math.floor(e)?e:e.toFixed(2):e.toExponential(2))}const Ht=({width:e,height:t,id:n})=>p.jsx("clipPath",{id:n,children:p.jsx("rect",{x:0,y:0,width:e,height:t})}),Jt=E.createContext({show:!1,x:0,y:0,width:0,height:0,content:void 0,setTooltip:()=>{}});var ju=(e=>(e.ValuedPoint="valuedPoint",e.BigZoomData="bigZoomData",e.BigWigData="bigWigData",e))(ju||{});function Bn(e){return e[0].x!==void 0?"valuedPoint":e[0].minVal!==void 0?"bigZoomData":"bigWigData"}function ma(e){return Bn(e)==="bigWigData"?e.map(t=>({...t})):Bn(e)==="bigZoomData"?e.map(t=>({...t})):Bn(e)==="valuedPoint"?e.map(t=>({...t})):[]}const Qs=(e,t)=>{switch(Bn(e)){case"bigWigData":return e.forEach(n=>{n.value<t.min&&(n.value=t.min),n.value>t.max&&(n.value=t.max)}),e;case"bigZoomData":return e.forEach(n=>{n.minVal<t.min&&(n.minVal=t.min),n.maxVal>t.max&&(n.maxVal=t.max)}),e;case"valuedPoint":return e.forEach(n=>{n.min<t.min&&(n.min=t.min),n.max>t.max&&(n.max=t.max)}),e;default:return[]}},ga=(e,t)=>({min:e.reduce((n,r)=>t(r)<n?t(r):n,1/0),max:e.reduce((n,r)=>t(r)>n?t(r):n,-1/0)}),ui=e=>{switch(Bn(e)){case"bigWigData":return ga(e,t=>t.value);case"bigZoomData":return ga(e,t=>t.maxVal);case"valuedPoint":return ga(e,t=>t.max);default:return{min:0,max:0}}};function Hs(e){return e.value!==void 0}const zd=e=>{const t={start:e[0].x,end:e[e.length-1].x},n=Ru(t,e.map(i=>({start:i.x,end:i.x+1})),100),r=[];for(let i=0;i<=100;++i)r.push({x:i,max:-1/0,min:1/0});return e.reduce((i,a)=>{const o=Math.floor(n(a.x)),s=Math.floor(n(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:r,range:{max:-1/0,min:1/0}})};function Pu(e,t){if(!e)return{renderPoints:[],range:{max:1,min:0}};const n=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}),r=Ru(n,e,t),i=[],a={start:Math.floor(r(e[0].start)),end:Math.floor(r(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(r(s.start)),u=Math.floor(r(s.end)),l=Hs(s)?s.value:s.minVal,d=Hs(s)?s.value:s.maxVal;l<o.renderPoints[c].min&&(o.renderPoints[c].min=l),d>o.renderPoints[c].max&&(o.renderPoints[c].max=d);for(let f=c+1;f<u;++f)o.renderPoints[f].min=l,o.renderPoints[f].max=d;l<o.range.min&&(o.range.min=l),d>o.range.max&&(o.range.max=d)}),o}function Mt({canDrag:e,children:t}){const n=E.useRef(null),r=E.useContext(qt),[i,a]=E.useState(!1),{delta:o,setDelta:s}=E.useContext(vo),[c,u]=E.useState({x:0,y:0}),[l,d]=E.useState(null),[f,g]=E.useState(1);E.useEffect(()=>{const T=document.getElementById("browserSVG");if(d(T),T){const S=T,_=S.getBoundingClientRect();g(_.width/S.viewBox.baseVal.width)}},[]);const x=(T,S)=>{T.preventDefault(),a(!0);const _=S.deltaX;s(o+_)},w=()=>{Math.abs(o)<10||(u({x:o,y:0}),r({type:le.SHIFT_DOMAIN,delta:o}),a(!1))};return E.useEffect(()=>{i||u({x:o,y:0})},[o]),p.jsx(yi,{nodeRef:n,scale:f,position:c,axis:"x",onStart:e&&l?()=>{}:()=>!1,onDrag:(T,S)=>x(T,S),onStop:w,children:p.jsx("g",{ref:n,height:"100%",style:{cursor:e&&l?i?"grabbing":"grab":"default"},children:t})})}function Ln(e,t){return` L ${e} ${t}`}const Wd=e=>{const t=E.useContext(Sn),n=E.useContext(qt),[r,i]=E.useState(ma(e.data)),[a,o]=E.useState();E.useEffect(()=>{const C=ui(r);C.min=C.min>0?0:C.min,n({type:le.UPDATE_PROPS,id:e.id,props:{defaultRange:C}}),o(C)},[]),E.useEffect(()=>{const C=ma(e.data),O=ui(C),R={min:O.min>0?0:O.min,max:O.max};i(Qs(C,R)),n({type:le.UPDATE_PROPS,id:e.id,props:{range:R}}),n({type:le.UPDATE_PROPS,id:e.id,props:{defaultRange:R}})},[e.data,a,e.domain]),E.useEffect(()=>{if(!e.range)return;const C=ma(e.data);i(Qs(C,e.range))},[e.range]);const s=E.useContext(Jt),[c,u]=E.useState(),[l,d]=E.useState(null),f=E.useCallback(C=>{var U;if(t.delta!=0||!((U=e.svgRef)!=null&&U.current))return;const O=pn(e.svgRef.current,C);d([O[0],O[1]]);const R=Math.round(O[0]-150),P=w.renderPoints.find(V=>V.min<1/0&&V.max>-1/0&&V.x===R);if(!P)return;const F=O[0]>e.width-60?O[0]-60+5:O[0]+5;s.setTooltip({show:!0,x:F,y:O[1]-e.height/2,height:80,width:60,content:p.jsx("div",{style:{fontSize:"10px",backgroundColor:"#ffffff",boxShadow:"0 0 4px 0 rgba(0, 0, 0, 0.2)",padding:"5px",display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"center",gap:"5px"},children:p.jsxs("div",{style:{whiteSpace:"nowrap",minWidth:"50px"},children:["value: ",Number(Bd(P.max))]})})})},[e.svgRef,e.width,e.height,t.delta]);E.useEffect(()=>{u(l?l[0]:void 0)},[l]);const g=()=>{s.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0}),u(void 0)};E.useEffect(()=>{if(t.delta!=0){g();return}},[t.delta]);const x=E.useRef($t()),w=E.useMemo(()=>r&&r.length&&Bn(r)===ju.ValuedPoint?{renderPoints:r,range:e.range||ui(r)}:Pu(r,e.width),[r,e.width,e.domain]),T=E.useMemo(()=>{const C=Iu(w.range,e.height),O=w.renderPoints.filter(P=>P.min<1/0&&P.max>-1/0),R=P=>Math.max(0,Math.min(e.height,C(P)));return{maxPath:O.reduce((P,F,U,V)=>P+(F.x?Ln(F.x,R(V[U-1]?V[U-1].max:0)):"")+Ln(F.x,R(F.max)),"M 0 "+R(0)+" ")+Ln(e.width,R(0)),minPath:O.reduce((P,F,U,V)=>P+(F.x?Ln(F.x,R(V[U-1]?V[U-1].min:0)):"")+Ln(F.x,R(F.min)),"M 0 "+R(0)+" ")+Ln(e.width,R(0))}},[w,e.height,e.width]),S=e.color||"#000000",_=E.useMemo(()=>e.noTransparency?S:Ri(S,.5),[e]),y=e.id||x.current.toString();return E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),p.jsx(Mt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{className:e.className,width:e.width,height:e.height,clipPath:`url(#${y})`,children:[p.jsx("rect",{width:e.width,height:e.height,fill:"white",onMouseOut:g}),p.jsx("defs",{children:p.jsx(Ht,{id:y,width:e.width,height:e.height})}),p.jsx("path",{d:T.maxPath,fill:_,style:{cursor:"default",clipPath:`url(#${y})`}}),p.jsx("path",{d:T.minPath,fill:S,style:{cursor:"default",clipPath:`url(#${y})`}}),c!==void 0&&p.jsx("line",{stroke:"#ccc",x1:c-150,x2:c-150,y1:0,y2:e.height}),p.jsx("rect",{width:e.width,height:e.height,fill:"transparent",onMouseMove:C=>{f(C)},onMouseOut:()=>{g()}})]})})},Qd=e=>{const t=E.useRef($t()),n=E.useMemo(()=>e.data&&e.data.length&&e.data[0].x!==void 0?zd(e.data):Pu(e.data,100),[e.data,e.width,e.domain]);n.range||(n.range=ui(n.renderPoints));const r=E.useMemo(()=>{const i=Iu(n.range,1),a=n.renderPoints.filter(s=>s.min<1/0&&s.max>-1/0),o=e.color||"#000000";return a.map(s=>Ri(o,i(s.max)))},[e.color,n]);return E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),p.jsx(Mt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{className:e.className,width:e.width,height:e.height,children:[p.jsx("defs",{children:p.jsx("linearGradient",{id:t.current,children:r.map((i,a)=>p.jsx("stop",{offset:`${a}%`,stopColor:i},`${t.current}_pt_${a}`))})}),p.jsx("rect",{width:e.width,height:e.height,fill:"white"}),p.jsx("rect",{width:e.width,height:e.height,fill:e.hoverColor||"transparent",fillOpacity:e.hoverColor?.2:0}),p.jsx("rect",{width:e.width,x:0,y:e.height/3,height:e.height/3,fill:`url('#${t.current}')`})]})})},Xn=e=>{E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]);const t=12,n=32,r=e.height,i=e.width;return p.jsxs("g",{className:e.className,width:e.width,height:e.height,transform:e.transform,children:[e.height!=0&&p.jsx("rect",{width:e.width,height:e.height,fill:"none",onClick:e.onClick}),e.error&&p.jsxs("g",{transform:`translate(${t+(i-n)/2},${(r-n)/2})`,children:[p.jsx(mu,{width:n,height:n}),p.jsx("g",{transform:`translate(${n/2},${n+10})`,children:p.jsx("text",{textAnchor:"middle",fontSize:"12px",style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:e.text})})]}),!e.error&&e.text&&e.height!=0&&p.jsx("text",{textAnchor:"middle",x:Math.round(+e.width/2),y:Math.round(+e.height/2),style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:e.text})]})},Nu={trackType:X.BIGWIG,titleSize:12,trackMargin:12,displayMode:Fe.FULL,canDrag:!0,noTransparency:!0,color:"#ff5555"};function Au(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},n={...e,trackType:X.BIGWIG,displayMode:e.displayMode};switch(e.displayMode){case Fe.FULL:return p.jsx(tt,{...n,...t,trackType:X.BIGWIG,displayMode:e.displayMode,children:p.jsx(Wd,{...e})});case Fe.DENSE:return p.jsx(tt,{...n,...t,trackType:X.BIGWIG,displayMode:e.displayMode,children:p.jsx(Qd,{...e})});case Fe.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigWig`),p.jsx(tt,{...n,children:p.jsx(Xn,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function Hd(e,t){const n=[];return e.forEach((r,i)=>(i===0||r.start>e[i-1].end||r.color!=e[i-1].color?n.push({start:t(r.start)<0?0:t(r.start),end:t(r.end)<0?0:t(r.end),color:r.color,name:r.name,score:r.score}):n[n.length-1].end=t(r.end),n)),n}function Gd(e,t){return Ar(e.sort((n,r)=>n.start-r.start).map(n=>({coordinates:{start:n.start,end:n.end},color:n.color,name:"",score:n.score,rectname:n.name})),t,0).map(n=>n.map(r=>({start:t(r.coordinates.start)<0?0:t(r.coordinates.start),end:t(r.coordinates.end),color:r.color,rectname:r.rectname,name:r.rectname,score:r.score})))}const Yd={fontSize:"12px",backgroundColor:"#ffffff",border:"1px solid",padding:"1em"},Fu=e=>p.jsxs("div",{style:Yd,children:[e.name?`name: ${e.name}`:"",p.jsx("br",{}),e.score!==void 0?`score: ${e.score}`:""]});function Vu(e,t,n,r,i){const a=E.useContext(Jt),o=E.useCallback((c,u)=>{if(!n||!n.current)return;const[l,d]=pn(n.current,c);a.setTooltip({show:!0,x:l>t-100?l-90:l+10,y:d+10,width:100,height:50,content:E.createElement(e,u)})},[e,t,n,a]),s=E.useCallback(()=>{a.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},[a]);return[o,s]}const Kd=e=>{const[t,n]=Vu(e.tooltipContent||Fu,e.width,e.svgRef),r=E.useRef($t()),i=E.useCallback(Ct(e.domain,e.width),[e.data]),a=e.color||"#000000",o=e.id||r.current.toString(),s=E.useMemo(()=>Hd(e.data||[],i),[e.width,e.data,e.domain]);return E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),p.jsx(Mt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{width:e.width,height:e.height,clipPath:`url(#${o})`,className:e.className,children:[p.jsx("rect",{width:e.width,height:e.height,fill:"white"}),p.jsx("defs",{children:p.jsx(Ht,{id:o,width:e.width,height:e.height})}),s.map((c,u)=>p.jsx("rect",{style:{cursor:e.onClick?"pointer":"default"},height:e.height*.6,width:c.end-c.start,x:c.start,y:e.height*.2,fill:c.color||a,onClick:()=>e.onClick&&e.onClick(c),onMouseOut:()=>{e.onMouseOut&&e.onMouseOut(),n()},onMouseOver:l=>{l.persist(),e.onMouseOver&&e.onMouseOver(c),t(l,c)}},`${o}_${u}`))]})})},Xd=e=>{const[t,n]=Vu(e.tooltipContent||Fu,e.width,e.svgRef),r=E.useRef($t()),i=E.useCallback(Ct(e.domain,e.width),[e.data]),a=E.useMemo(()=>{const c=e.data?[...e.data]:[];return Gd(c,i)},[e.width,e.data,e.domain]),o=e.rowHeight*a.length,s=e.id||r.current.toString();return E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(o)},[a,e.rowHeight,e.onHeightChanged]),p.jsx(Mt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{width:e.width,height:o,clipPath:`url(#${s})`,children:[p.jsx("rect",{width:e.width,height:o,fill:"white"}),p.jsx("defs",{children:p.jsx(Ht,{id:s,width:e.width,height:o})}),a.map((c,u)=>p.jsx("g",{transform:`translate(0, ${u*e.rowHeight})`,children:c.map((l,d)=>p.jsx("rect",{style:{cursor:e.onClick?"pointer":"default"},height:e.rowHeight*.6,width:l.end-l.start<1?1:l.end-l.start,x:l.start,y:e.rowHeight*.2,fill:l.color,onClick:()=>e.onClick&&e.onClick(l),onMouseOut:()=>{e.onMouseOut&&e.onMouseOut(),n()},onMouseOver:f=>{f.persist(),e.onMouseOver&&e.onMouseOver(l),t(f,l)}},`${s}_${d}`))},`group_${u}`))]})})},qu={trackType:X.BIGBED,displayMode:Fe.SQUISH,rowHeight:10,titleSize:12,trackMargin:12,canDrag:!0};function $u(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},n={...e,trackType:X.BIGBED,displayMode:e.displayMode};switch(e.displayMode){case Fe.DENSE:return p.jsx(tt,{...n,...t,trackType:X.BIGBED,displayMode:e.displayMode,children:p.jsx(Kd,{...e})});case Fe.SQUISH:return p.jsx(tt,{...n,...t,trackType:X.BIGBED,displayMode:e.displayMode,children:p.jsx(Xd,{...e})});case Fe.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigBed`),p.jsx(tt,{...n,children:p.jsx(Xn,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function Jd(e,t){return e.coordinates.start===t.coordinates.start?e.coordinates.end-t.coordinates.end:e.coordinates.start-t.coordinates.start}function Zd(e,t){return e.reduce((n,r)=>(r.transcripts.filter(i=>i.coordinates.start<t.end&&i.coordinates.end>t.start).forEach(i=>n.push({...i,strand:r.strand})),n),[]).sort((n,r)=>n.coordinates.start-r.coordinates.start)}function e0(e){if(e.length===0)return[];const t=[{coordinates:{...e[0].coordinates}}];return e.slice(1).forEach(n=>{n.coordinates.start<t[t.length-1].coordinates.end?t[t.length-1].coordinates.end=Math.max(t[t.length-1].coordinates.end,n.coordinates.end):t.push({coordinates:{...n.coordinates}})}),t}function t0(e,t){var s;const r=e.transcripts.reduce((c,u)=>[...c,...u.exons||[]],[]).sort(Jd),i=r.length===0?[]:[{coordinates:{...r[0].coordinates},UTRs:r[0].UTRs&&[...r[0].UTRs]}],a=new Set(e.transcripts.map(c=>c.color));r.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=e0(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(...r.map(c=>c.coordinates.start)),end:Math.max(...r.map(c=>c.coordinates.end))},exons:i,color:o}}function n0(e,t,n){var r;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:((r=e.exons)==null?void 0:r.filter(i=>i.coordinates.end>n.start&&i.coordinates.start<n.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 r0(e,t,n,r,i,a){let o="";if(e=e<0?0:e,t=t>a?a:t,n==="+")for(let s=e+10;s<t-10;s+=20)o+=An(s-i,r-i)+Te(s,r)+Te(s-i,r+i)+Te(s,r)+Te(s-i,r-i);else if(n==="-")for(let s=e+10;s<t-10;s+=20)o+=An(s+i,r-i)+Te(s,r)+Te(s+i,r+i)+Te(s,r)+Te(s+i,r-i);return o+" M "+e+" "+r+" L "+t+" "+r}function i0(e,t,n,r){var d,f;if(e.coordinates.start>r||e.coordinates.end<0)return"";const i=((d=e.UTRs)==null?void 0:d.filter(g=>g.coordinates.start===e.coordinates.start))||[],a=((f=e.UTRs)==null?void 0:f.filter(g=>g.coordinates.end===e.coordinates.end))||[],o=t-n*.2,s=t+n*.2,c=t-n*.3,u=t+n*.3;if(!i[0]&&!a[0])return An(e.coordinates.start,c)+Te(e.coordinates.end,c)+Te(e.coordinates.end,u)+Te(e.coordinates.start,u)+Te(e.coordinates.start,c);if(i[0]&&i[0].coordinates.end===e.coordinates.end)return An(i[0].coordinates.start,o)+Te(i[0].coordinates.end,o)+Te(i[0].coordinates.end,s)+Te(i[0].coordinates.start,s)+Te(i[0].coordinates.start,o);let l=i[0]?An(i[0].coordinates.start,o)+Te(i[0].coordinates.end,o)+Te(i[0].coordinates.end,c):An(e.coordinates.start,c);return l+=a[0]?Te(a[0].coordinates.start,c)+Te(a[0].coordinates.start,o)+Te(a[0].coordinates.end,o)+Te(a[0].coordinates.end,s)+Te(a[0].coordinates.start,s)+Te(a[0].coordinates.start,u):Te(e.coordinates.end,c)+Te(e.coordinates.end,u),l+(i[0]?Te(i[0].coordinates.end,u)+Te(i[0].coordinates.end,s)+Te(i[0].coordinates.start,s)+Te(i[0].coordinates.start,o):Te(e.coordinates.start,u)+Te(e.coordinates.start,c))}function Uu(e,t,n,r,i){var s;const a=n0(e,t,n),o={exons:((s=a.exons)==null?void 0:s.reduce((c,u)=>c+i0(u,r/2,r,i),""))||"",introns:r0(a.coordinates.start,a.coordinates.end,a.strand,r/2,r*.19,i)};return{transcript:a,paths:o}}const a0=e=>{const t=E.useContext(Jt),n=(l,d)=>{if(e.svgRef){const f=pn(e.svgRef.current,l);t.setTooltip({show:!0,x:f[0]>e.width-150?f[0]-150+5:f[0]+5,y:f[1],width:150,height:50,content:p.jsx("span",{style:{fontSize:"10px"},children:d.id})})}},r=()=>{t.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},i=E.useRef($t()),a=E.useCallback(Ct(e.domain,e.width),[e.data]),o=e.color||"#000000",s=bo(e.rowHeight)*1.25,c=E.useMemo(()=>Ar(Zd(e.data||[],e.domain),a,s).map((l,d)=>({y:d*e.rowHeight,transcripts:l.map(f=>Uu(f,a,e.domain,e.rowHeight,e.width))})),[e.data,e.rowHeight,e.width,e.domain]),u=E.useMemo(()=>Math.max(e.rowHeight*c.length,35),[e.rowHeight,c.length]);return console.log(u),E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(u)},[u]),p.jsx(Mt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{children:[p.jsx("rect",{width:e.width,height:u,fill:"white"}),p.jsx("defs",{children:p.jsx(Ht,{id:i.current,width:e.width,height:c.length*e.rowHeight})}),c.map((l,d)=>p.jsx("g",{style:{clipPath:`url(#${i.current})`},transform:`translate(0,${l.y})`,height:e.rowHeight,width:e.width,children:l.transcripts.map((f,g)=>p.jsxs(E.Fragment,{children:[p.jsx("path",{stroke:f.transcript.color||o,fill:f.transcript.color||o,strokeWidth:e.rowHeight/16,d:f.paths.introns+f.paths.exons,style:{cursor:e.onTranscriptClick?"pointer":"default"},onMouseOver:x=>n(x,f.transcript),onMouseOut:r,onClick:()=>e.onTranscriptClick&&e.onTranscriptClick(f.transcript)}),p.jsx("text",{fill:f.transcript.color||o,fontSize:s,x:f.transcript.coordinates.end+5,y:e.rowHeight/2,dominantBaseline:"middle",style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:f.transcript.name})]},`transcript_${g}`))},`row_${d}`))]})})},o0=e=>{const t=E.useContext(Jt),n=(l,d)=>{if(e.svgRef){const f=pn(e.svgRef.current,l);t.setTooltip({show:!0,x:f[0]>e.width-150?f[0]-150+5:f[0]+5,y:f[1],width:150,height:50,content:p.jsx("span",{style:{fontSize:"10px"},children:d.id})})}},r=()=>{t.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},i=E.useRef($t()),a=E.useCallback(Ct(e.domain,e.width),[e.data]),o=e.color||"#000000",s=bo(e.rowHeight)*1.25,c=E.useMemo(()=>{var l;return Ar(((l=e.data)==null?void 0:l.map(d=>t0(d,e.geneName)))||[],a,s).map((d,f)=>({y:f*e.rowHeight,transcripts:d.map(g=>Uu(g,a,e.domain,e.rowHeight,e.width))}))},[e.data,e.rowHeight,e.width,e.domain]),u=E.useMemo(()=>Math.max(e.rowHeight*c.length,35),[e.rowHeight,c.length]);return E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(u)},[u]),p.jsx(Mt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{children:[p.jsx("rect",{width:e.width,height:u,fill:"white"}),p.jsx("defs",{children:p.jsx(Ht,{id:i.current,width:e.width,height:c.length*e.rowHeight})}),c.map((l,d)=>p.jsx("g",{style:{clipPath:`url(#${i.current})`},transform:`translate(0,${l.y})`,height:e.rowHeight,width:e.width,children:l.transcripts.map((f,g)=>p.jsxs(E.Fragment,{children:[p.jsx("path",{stroke:f.transcript.color||o,fill:f.transcript.color||o,strokeWidth:e.rowHeight/16,d:f.paths.introns+f.paths.exons,style:{cursor:e.onTranscriptClick?"pointer":"default"},onMouseOver:x=>n(x,f.transcript),onMouseOut:r,onClick:()=>e.onTranscriptClick&&e.onTranscriptClick(f.transcript)}),p.jsx("text",{fill:f.transcript.color||o,fontSize:s,x:f.transcript.coordinates.end+5,y:e.rowHeight/2,dominantBaseline:"middle",style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:f.transcript.name})]},`transcript_${g}`))},`row_${d}`))]})})},Bu={trackType:X.TRANSCRIPT,displayMode:Fe.SQUISH,rowHeight:14,titleSize:12,trackMargin:12,canDrag:!0};function zu(e){const[t,n]=E.useState(!e.data),[r,i]=E.useState(e.data),a={...e,trackType:X.TRANSCRIPT,displayMode:e.displayMode};switch(E.useEffect(()=>{e.data?(i(e.data),n(!1)):n(!0)},[e.data]),E.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),n(s)})},[e.version]),e.displayMode){case Fe.PACK:return p.jsx(tt,{...a,loading:t,trackType:X.TRANSCRIPT,displayMode:e.displayMode,children:p.jsx(a0,{...e,data:r})});case Fe.SQUISH:return p.jsx(tt,{...a,loading:t,trackType:X.TRANSCRIPT,displayMode:e.displayMode,children:p.jsx(o0,{...e,data:r})});case Fe.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigWig`),p.jsx(tt,{...a,children:p.jsx(Xn,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function s0(e,t){const n=[];return e.sort((r,i)=>r.start-i.start).forEach((r,i)=>(i===0||r.start>e[i-1].end||r.color!=e[i-1].color?n.push({start:t(r.start)<0?0:t(r.start),end:t(r.end),color:r.color,cigarOps:r.cigarOps,strand:r.strand,seq:r.seq}):n[n.length-1].end=t(r.end),n)),n}function c0(e,t,n){return Ar(e.sort((r,i)=>r.start-i.start).map(r=>({coordinates:{start:r.start,end:r.end},color:r.color,name:"",cigarOps:r.cigarOps,strand:r.strand,seq:r.seq})),t,0).map(r=>r.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(n.start-i.coordinates.start,i.seq.length):i.seq}}))}const u0=e=>{const t=E.useRef($t()),n=Ct(e.domain,e.width),r=e.color||"#000000",i=E.useMemo(()=>c0(e.data,n,e.domain),[e.data,e.domain,e.width]),a=e.rowHeight*i.length,o=e.id||t.current.toString();return E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(a)},[i,e.rowHeight,e.onHeightChanged]),p.jsxs("g",{width:e.width,height:a,transform:e.transform,clipPath:`url(#${o})`,children:[p.jsx("defs",{children:p.jsx(Ht,{id:o,width:e.width,height:a})}),i.map((s,c)=>p.jsx("g",{transform:`translate(0, ${c*e.rowHeight})`,children:s.map((u,l)=>{const d=u.cigarOps.map((f,g)=>{let x;return f.op==="S"?x=p.jsx("rect",{height:e.rowHeight*.6,width:f.opEnd-f.opStart<1?1:f.opEnd-f.opStart,x:f.opStart,y:e.rowHeight*.2,style:{fill:"none",strokeDasharray:"2,2",stroke:"black",strokeWidth:.5}},`${l}_${g}`):f.op==="I"?x=p.jsx("rect",{height:e.rowHeight*.6,width:f.opEnd-f.opStart<1?1:f.opEnd-f.opStart,x:f.opStart,y:e.rowHeight*.2,fill:"#ff69b4",children:p.jsx("title",{children:"Insertion"})},`${l}_${g}`):f.op==="D"||f.op==="N"?x=p.jsx("line",{y2:e.rowHeight*.2+e.rowHeight*.6/2,x2:f.opEnd,x1:f.opStart,y1:e.rowHeight*.2+e.rowHeight*.6/2,stroke:"red"},`${l}_${g}`):x=p.jsx("rect",{height:e.rowHeight*.6,width:f.opEnd-f.opStart<1?1:f.opEnd-f.opStart,x:f.opStart,y:e.rowHeight*.2,fill:u.strand!==void 0?u.strand?"#F7F71A":"#53F71A":u.color||r},`${l}_${g}`),x});return p.jsxs("g",{children:[d,e.domain.end-e.domain.start<=200&&u.seq&&p.jsx("text",{fontSize:8,x:u.start,y:e.rowHeight*.2+e.rowHeight*.5,fill:"black",textLength:u.end-u.start,style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:u.seq})]},e.id+"_"+l)})},`group_${c}`))]})},l0=e=>{const t=E.useRef($t()),n=Ct(e.domain,e.width),r=e.color||"#000000",i=e.id||t.current.toString(),a=E.useMemo(()=>s0(e.data,n),[e.domain,e.width,e.data]);return E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),p.jsxs("g",{width:e.width,height:e.height,transform:e.transform,clipPath:`url(#${i})`,children:[p.jsx("defs",{children:p.jsx(Ht,{id:i,width:e.width,height:e.height})}),a.map((o,s)=>p.jsx("rect",{height:e.height*.6,width:o.end-o.start,x:o.start,y:e.height*.2,fill:o.strand!==void 0?o.strand?"#F7F71A":"#53F71A":o.color||r},`${i}_${s}`))]})},f0={displayMode:Fe.DENSE,rowHeight:10};function h0(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},n={...e,trackType:X.BIGBED,displayMode:e.displayMode};switch(e.displayMode){case Fe.DENSE:return p.jsx(tt,{...n,...t,trackType:X.BAM,displayMode:e.displayMode,children:p.jsx(l0,{...e})});case Fe.SQUISH:return p.jsx(tt,{...n,...t,trackType:X.BAM,displayMode:e.displayMode,children:p.jsx(u0,{...e})});case Fe.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigBed`),p.jsx(tt,{...n,children:p.jsx(Xn,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function d0(e,t){return n=>t.start+(t.end-t.start)*((n-e.start)/(e.end-e.start))}function p0(e,t){const n=e.map(t),r=Math.min(...n),i=Math.max(...n);return{start:r>0?0:r,end:i<0?0:i}}function m0(e){return t=>{const n=e((t<0,t)),r=e((t<0,0)),i=Math.abs(r-n)/100;return[n*(t<0?-1:1),i,t<0?"scale(1,-1)":""]}}function g0(e,t){const n=E.useMemo(()=>E0(e)?e.importance.map((o,s)=>({base:e.sequence.charAt(s),importance:o})):e,[e]),r=E.useMemo(()=>p0(n,o=>o.importance),[n]),i=d0(r,{start:t,end:0}),a=E.useCallback(m0(i),[r,t]);return[n,a,i]}function v0(e,t,n){return E.useMemo(()=>e.map(r=>{const i=t.slice(r.coordinates[0],r.coordinates[1]+1).map(s=>s.importance),a=[Math.min(...i),Math.max(...i)],o=n(a[1]);return{...r,y:o,height:n(a[0])-o}}),[e,n])}var Wu={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(_h,function(){return function(n){var r={};function i(a){if(r[a])return r[a].exports;var o=r[a]={i:a,l:!1,exports:{}};return n[a].call(o.exports,o,o.exports,i),o.l=!0,o.exports}return i.m=n,i.c=r,i.d=function(a,o,s){i.o(a,o)||Object.defineProperty(a,o,{enumerable:!0,get:s})},i.r=function(a){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},i.t=function(a,o){if(1&o&&(a=i(a)),8&o||4&o&&typeof a=="object"&&a&&a.__esModule)return a;var s=Object.create(null);if(i.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:a}),2&o&&typeof a!="string")for(var c in a)i.d(s,c,(function(u){return a[u]}).bind(null,c));return s},i.n=function(a){var o=a&&a.__esModule?function(){return a.default}:function(){return a};return i.d(o,"a",o),o},i.o=function(a,o){return Object.prototype.hasOwnProperty.call(a,o)},i.p="/",i(i.s=5)}([function(n,r,i){n.exports=i(3)},function(n,r,i){n.exports=i(4)},function(n,r,i){/*
51
+ `,e.getElementsByTagName("head")[0].appendChild(t)),e.body&&Cu(e.body,"react-draggable-transparent-selection")}function od(e){if(e)try{if(e.body&&_u(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 Cu(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)")))||(e.className+=" ".concat(t))}function _u(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)"),"g"),"")}var Qt={};Object.defineProperty(Qt,"__esModule",{value:!0});Qt.canDragX=ud;Qt.canDragY=ld;Qt.createCoreData=hd;Qt.createDraggableData=dd;Qt.getBoundPosition=sd;Qt.getControlPosition=fd;Qt.snapToGrid=cd;var St=Wt,Nn=We;function sd(e,t,n){if(!e.props.bounds)return[t,n];let{bounds:r}=e.props;r=typeof r=="string"?r:pd(r);const i=po(e);if(typeof r=="string"){const{ownerDocument:a}=i,o=a.defaultView;let s;if(r==="parent"?s=i.parentNode:s=a.querySelector(r),!(s instanceof o.HTMLElement))throw new Error('Bounds selector "'+r+'" could not find an element.');const c=s,u=o.getComputedStyle(i),l=o.getComputedStyle(c);r={left:-i.offsetLeft+(0,St.int)(l.paddingLeft)+(0,St.int)(u.marginLeft),top:-i.offsetTop+(0,St.int)(l.paddingTop)+(0,St.int)(u.marginTop),right:(0,Nn.innerWidth)(c)-(0,Nn.outerWidth)(i)-i.offsetLeft+(0,St.int)(l.paddingRight)-(0,St.int)(u.marginRight),bottom:(0,Nn.innerHeight)(c)-(0,Nn.outerHeight)(i)-i.offsetTop+(0,St.int)(l.paddingBottom)-(0,St.int)(u.marginBottom)}}return(0,St.isNum)(r.right)&&(t=Math.min(t,r.right)),(0,St.isNum)(r.bottom)&&(n=Math.min(n,r.bottom)),(0,St.isNum)(r.left)&&(t=Math.max(t,r.left)),(0,St.isNum)(r.top)&&(n=Math.max(n,r.top)),[t,n]}function cd(e,t,n){const r=Math.round(t/e[0])*e[0],i=Math.round(n/e[1])*e[1];return[r,i]}function ud(e){return e.props.axis==="both"||e.props.axis==="x"}function ld(e){return e.props.axis==="both"||e.props.axis==="y"}function fd(e,t,n){const r=typeof t=="number"?(0,Nn.getTouch)(e,t):null;if(typeof t=="number"&&!r)return null;const i=po(n),a=n.props.offsetParent||i.offsetParent||i.ownerDocument.body;return(0,Nn.offsetXYFromParent)(r||e,a,n.props.scale)}function hd(e,t,n){const r=!(0,St.isNum)(e.lastX),i=po(e);return r?{node:i,deltaX:0,deltaY:0,lastX:t,lastY:n,x:t,y:n}:{node:i,deltaX:t-e.lastX,deltaY:n-e.lastY,lastX:e.lastX,lastY:e.lastY,x:t,y:n}}function dd(e,t){const n=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/n,y:e.state.y+t.deltaY/n,deltaX:t.deltaX/n,deltaY:t.deltaY/n,lastX:e.state.x,lastY:e.state.y}}function pd(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}function po(e){const t=e.findDOMNode();if(!t)throw new Error("<DraggableCore>: Unmounted during event!");return t}var Mi={},Li={};Object.defineProperty(Li,"__esModule",{value:!0});Li.default=md;function md(){}Object.defineProperty(Mi,"__esModule",{value:!0});Mi.default=void 0;var la=vd(E),Et=mo(xu),gd=mo(Nr),pt=We,tn=Qt,fa=Wt,pr=mo(Li);function mo(e){return e&&e.__esModule?e:{default:e}}function ku(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,n=new WeakMap;return(ku=function(r){return r?n:t})(e)}function vd(e,t){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var n=ku(t);if(n&&n.has(e))return n.get(e);var r={},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(r,a,o):r[a]=e[a]}return r.default=e,n&&n.set(e,r),r}function gt(e,t,n){return t=yd(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yd(e){var t=bd(e,"string");return typeof t=="symbol"?t:String(t)}function bd(e,t){if(typeof e!="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}const At={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let nn=At.mouse,Ii=class extends la.Component{constructor(){super(...arguments),gt(this,"dragging",!1),gt(this,"lastX",NaN),gt(this,"lastY",NaN),gt(this,"touchIdentifier",null),gt(this,"mounted",!1),gt(this,"handleDragStart",t=>{if(this.props.onMouseDown(t),!this.props.allowAnyClick&&typeof t.button=="number"&&t.button!==0)return!1;const n=this.findDOMNode();if(!n||!n.ownerDocument||!n.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:r}=n;if(this.props.disabled||!(t.target instanceof r.defaultView.Node)||this.props.handle&&!(0,pt.matchesSelectorAndParentsTo)(t.target,this.props.handle,n)||this.props.cancel&&(0,pt.matchesSelectorAndParentsTo)(t.target,this.props.cancel,n))return;t.type==="touchstart"&&t.preventDefault();const i=(0,pt.getTouchIdentifier)(t);this.touchIdentifier=i;const a=(0,tn.getControlPosition)(t,i,this);if(a==null)return;const{x:o,y:s}=a,c=(0,tn.createCoreData)(this,o,s);(0,pr.default)("DraggableCore: handleDragStart: %j",c),(0,pr.default)("calling",this.props.onStart),!(this.props.onStart(t,c)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,pt.addUserSelectStyles)(r),this.dragging=!0,this.lastX=o,this.lastY=s,(0,pt.addEvent)(r,nn.move,this.handleDrag),(0,pt.addEvent)(r,nn.stop,this.handleDragStop))}),gt(this,"handleDrag",t=>{const n=(0,tn.getControlPosition)(t,this.touchIdentifier,this);if(n==null)return;let{x:r,y:i}=n;if(Array.isArray(this.props.grid)){let s=r-this.lastX,c=i-this.lastY;if([s,c]=(0,tn.snapToGrid)(this.props.grid,s,c),!s&&!c)return;r=this.lastX+s,i=this.lastY+c}const a=(0,tn.createCoreData)(this,r,i);if((0,pr.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=r,this.lastY=i}),gt(this,"handleDragStop",t=>{if(!this.dragging)return;const n=(0,tn.getControlPosition)(t,this.touchIdentifier,this);if(n==null)return;let{x:r,y:i}=n;if(Array.isArray(this.props.grid)){let c=r-this.lastX||0,u=i-this.lastY||0;[c,u]=(0,tn.snapToGrid)(this.props.grid,c,u),r=this.lastX+c,i=this.lastY+u}const a=(0,tn.createCoreData)(this,r,i);if(this.props.onStop(t,a)===!1||this.mounted===!1)return!1;const s=this.findDOMNode();s&&this.props.enableUserSelectHack&&(0,pt.removeUserSelectStyles)(s.ownerDocument),(0,pr.default)("DraggableCore: handleDragStop: %j",a),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,s&&((0,pr.default)("DraggableCore: Removing handlers"),(0,pt.removeEvent)(s.ownerDocument,nn.move,this.handleDrag),(0,pt.removeEvent)(s.ownerDocument,nn.stop,this.handleDragStop))}),gt(this,"onMouseDown",t=>(nn=At.mouse,this.handleDragStart(t))),gt(this,"onMouseUp",t=>(nn=At.mouse,this.handleDragStop(t))),gt(this,"onTouchStart",t=>(nn=At.touch,this.handleDragStart(t))),gt(this,"onTouchEnd",t=>(nn=At.touch,this.handleDragStop(t)))}componentDidMount(){this.mounted=!0;const t=this.findDOMNode();t&&(0,pt.addEvent)(t,At.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const t=this.findDOMNode();if(t){const{ownerDocument:n}=t;(0,pt.removeEvent)(n,At.mouse.move,this.handleDrag),(0,pt.removeEvent)(n,At.touch.move,this.handleDrag),(0,pt.removeEvent)(n,At.mouse.stop,this.handleDragStop),(0,pt.removeEvent)(n,At.touch.stop,this.handleDragStop),(0,pt.removeEvent)(t,At.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,pt.removeUserSelectStyles)(n)}}findDOMNode(){var t,n;return(t=this.props)!==null&&t!==void 0&&t.nodeRef?(n=this.props)===null||n===void 0||(n=n.nodeRef)===null||n===void 0?void 0:n.current:gd.default.findDOMNode(this)}render(){return la.cloneElement(la.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};Mi.default=Ii;gt(Ii,"displayName","DraggableCore");gt(Ii,"propTypes",{allowAnyClick:Et.default.bool,children:Et.default.node.isRequired,disabled:Et.default.bool,enableUserSelectHack:Et.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:Et.default.arrayOf(Et.default.number),handle:Et.default.string,cancel:Et.default.string,nodeRef:Et.default.object,onStart:Et.default.func,onDrag:Et.default.func,onStop:Et.default.func,onMouseDown:Et.default.func,scale:Et.default.number,className:fa.dontSetMe,style:fa.dontSetMe,transform:fa.dontSetMe});gt(Ii,"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(E),n=l(xu),r=l(Nr),i=l(Fh),a=We,o=Qt,s=Wt,c=l(Mi),u=l(Li);function l(_){return _&&_.__esModule?_:{default:_}}function d(_){if(typeof WeakMap!="function")return null;var y=new WeakMap,C=new WeakMap;return(d=function(O){return O?C:y})(_)}function f(_,y){if(_&&_.__esModule)return _;if(_===null||typeof _!="object"&&typeof _!="function")return{default:_};var C=d(y);if(C&&C.has(_))return C.get(_);var O={},R=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var P in _)if(P!=="default"&&Object.prototype.hasOwnProperty.call(_,P)){var F=R?Object.getOwnPropertyDescriptor(_,P):null;F&&(F.get||F.set)?Object.defineProperty(O,P,F):O[P]=_[P]}return O.default=_,C&&C.set(_,O),O}function g(){return g=Object.assign?Object.assign.bind():function(_){for(var y=1;y<arguments.length;y++){var C=arguments[y];for(var O in C)Object.prototype.hasOwnProperty.call(C,O)&&(_[O]=C[O])}return _},g.apply(this,arguments)}function x(_,y,C){return y=w(y),y in _?Object.defineProperty(_,y,{value:C,enumerable:!0,configurable:!0,writable:!0}):_[y]=C,_}function w(_){var y=T(_,"string");return typeof y=="symbol"?y:String(y)}function T(_,y){if(typeof _!="object"||_===null)return _;var C=_[Symbol.toPrimitive];if(C!==void 0){var O=C.call(_,y||"default");if(typeof O!="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(y==="string"?String:Number)(_)}class S extends t.Component{static getDerivedStateFromProps(y,C){let{position:O}=y,{prevPropsPosition:R}=C;return O&&(!R||O.x!==R.x||O.y!==R.y)?((0,u.default)("Draggable: getDerivedStateFromProps %j",{position:O,prevPropsPosition:R}),{x:O.x,y:O.y,prevPropsPosition:{...O}}):null}constructor(y){super(y),x(this,"onDragStart",(C,O)=>{if((0,u.default)("Draggable: onDragStart: %j",O),this.props.onStart(C,(0,o.createDraggableData)(this,O))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),x(this,"onDrag",(C,O)=>{if(!this.state.dragging)return!1;(0,u.default)("Draggable: onDrag: %j",O);const R=(0,o.createDraggableData)(this,O),P={x:R.x,y:R.y,slackX:0,slackY:0};if(this.props.bounds){const{x:U,y:V}=P;P.x+=this.state.slackX,P.y+=this.state.slackY;const[ye,_e]=(0,o.getBoundPosition)(this,P.x,P.y);P.x=ye,P.y=_e,P.slackX=this.state.slackX+(U-P.x),P.slackY=this.state.slackY+(V-P.y),R.x=P.x,R.y=P.y,R.deltaX=P.x-this.state.x,R.deltaY=P.y-this.state.y}if(this.props.onDrag(C,R)===!1)return!1;this.setState(P)}),x(this,"onDragStop",(C,O)=>{if(!this.state.dragging||this.props.onStop(C,(0,o.createDraggableData)(this,O))===!1)return!1;(0,u.default)("Draggable: onDragStop: %j",O);const P={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:U,y:V}=this.props.position;P.x=U,P.y=V}this.setState(P)}),this.state={dragging:!1,dragged:!1,x:y.position?y.position.x:y.defaultPosition.x,y:y.position?y.position.y:y.defaultPosition.y,prevPropsPosition:{...y.position},slackX:0,slackY:0,isElementSVG:!1},y.position&&!(y.onDrag||y.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 y,C;return(y=(C=this.props)===null||C===void 0||(C=C.nodeRef)===null||C===void 0?void 0:C.current)!==null&&y!==void 0?y:r.default.findDOMNode(this)}render(){const{axis:y,bounds:C,children:O,defaultPosition:R,defaultClassName:P,defaultClassNameDragging:F,defaultClassNameDragged:U,position:V,positionOffset:ye,scale:_e,...ve}=this.props;let we={},Ne=null;const G=!!!V||this.state.dragging,$=V||R,Z={x:(0,o.canDragX)(this)&&G?this.state.x:$.x,y:(0,o.canDragY)(this)&&G?this.state.y:$.y};this.state.isElementSVG?Ne=(0,a.createSVGTransform)(Z,ye):we=(0,a.createCSSTransform)(Z,ye);const j=(0,i.default)(O.props.className||"",P,{[F]:this.state.dragging,[U]:this.state.dragged});return t.createElement(c.default,g({},ve,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(O),{className:j,style:{...O.props.style,...we},transform:Ne}))}}e.default=S,x(S,"displayName","Draggable"),x(S,"propTypes",{...c.default.propTypes,axis:n.default.oneOf(["both","x","y","none"]),bounds:n.default.oneOfType([n.default.shape({left:n.default.number,right:n.default.number,top:n.default.number,bottom:n.default.number}),n.default.string,n.default.oneOf([!1])]),defaultClassName:n.default.string,defaultClassNameDragging:n.default.string,defaultClassNameDragged:n.default.string,defaultPosition:n.default.shape({x:n.default.number,y:n.default.number}),positionOffset:n.default.shape({x:n.default.oneOfType([n.default.number,n.default.string]),y:n.default.oneOfType([n.default.number,n.default.string])}),position:n.default.shape({x:n.default.number,y:n.default.number}),className:s.dontSetMe,style:s.dontSetMe,transform:s.dontSetMe}),x(S,"defaultProps",{...c.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})})(vu);const{default:Du,DraggableCore:xd}=vu;Di.exports=Du;Di.exports.default=Du;Di.exports.DraggableCore=xd;var Ed=Di.exports;const yi=gu(Ed);var Fe=(e=>(e.FULL="full",e.DENSE="dense",e.SQUISH="squish",e.PACK="pack",e.HIDE="hide",e.DOWNLOAD="download",e))(Fe||{}),X=(e=>(e.UNDEFINED="undefined",e.RULER="ruler",e.BIGWIG="bigwig",e.BIGBED="bigbed",e.IMPORTANCE="importance",e.TRANSCRIPT="transcript",e.BAM="bam",e.MOTIF="motif",e.LDTRACK="ldtrack",e))(X||{});function wd(e){return null}function Od(e){return null}var bi=(e=>(e[e.V29=29]="V29",e[e.V40=40]="V40",e[e.V47=47]="V47",e))(bi||{}),go=(e=>(e[e.V21=21]="V21",e[e.V25=25]="V25",e[e.V36=36]="V36",e))(go||{});function Sd(e){return null}const Sn=E.createContext({}),qt=E.createContext(()=>{});var le=(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))(le||{});function Td(e,t){switch(t.type){case"setDomain":const n=t.domain,r=Math.floor((n.end-n.start)/e.preRenderedWidth);return{...e,domain:t.domain,zoomLevel:r};case"addTrack":return e.tracks.find(y=>y.id===t.track.id)?e:{...e,tracks:[...e.tracks,t.track]};case"updateTrack":const a=e.tracks.find(y=>y.id===t.id);if(a){const y={...a,...t.track};return{...e,tracks:e.tracks.map(C=>C.id===t.id?y:C)}}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 o=Math.floor(t.delta/e.preRenderedWidth*(e.domain.end-e.domain.start));return{...e,domain:{...e.domain,start:e.domain.start-o,end:e.domain.end-o}};case"setLoading":return{...e,tracks:e.tracks.map(y=>({...y,data:void 0,...y.trackType===X.MOTIF?{peaks:void 0}:{}}))};case"shiftTrack":const s=e.tracks.findIndex(y=>y.id===t.id1);if(s===-1)return e;const c=e.tracks.findIndex(y=>y.id===t.id2);if(c<0||c>=e.tracks.length)return e;const u=[...e.tracks],[l]=u.splice(s,1);return u.splice(c,0,l),{...e,tracks:u};case"swapTracks":const d=e.tracks.findIndex(y=>y.id===t.id1);if(d===-1)return e;const f=e.tracks.findIndex(y=>y.id===t.id2);if(f<0||f>=e.tracks.length)return e;const g=[...e.tracks];return[g[d],g[f]]=[g[f],g[d]],{...e,tracks:g};case"translateTrack":const x=e.tracks.find(y=>y.id===t.id);if(!x)return e;const w={...x.props,transform:`translate(0, ${t.dist})`};return{...e,tracks:e.tracks.map(y=>y.id===x.id?{...y,props:w}:y)};case"removeTranslation":return t.id==="ALL"?{...e,tracks:e.tracks.map(y=>{if(!y.props)return y;const{transform:C,...O}=y.props;return{...y,props:O}})}:{...e,tracks:e.tracks.map(y=>y.id===t.id?{...y,props:(()=>{if(!y.props)return y.props;const{transform:C,...O}=y.props;return O})()}: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 T=e.tracks.find(y=>y.id===t.id);return T?{...e,tracks:[T,...e.tracks.filter(y=>y.id!==t.id)]}:e;case"setDelta":return{...e,delta:t.delta};case"zoomDomain":const S=(e.domain.start+e.domain.end)/2,_=(e.domain.end-e.domain.start)*t.factor;return{...e,domain:{...e.domain,start:Math.floor(S-_/2),end:Math.ceil(S+_/2)},zoomLevel:e.zoomLevel};case"slideDomain":return{...e,domain:{...e.domain,start:e.domain.start+t.delta,end:e.domain.end+t.delta}};case"addHighlight":return e.highlights.some(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 Mu=E.createContext(!1);function Cd({canDrag:e,id:t,height:n,children:r}){var Ie;const a=E.useRef(null),o=E.useContext(qt),s=E.useContext(Sn),[c,u]=E.useState(0),[l,d]=E.useState({x:0,y:0}),[f,g]=E.useState(!1),[x,w]=E.useState({x:0,y:0}),[T,S]=E.useState([]),[_,y]=E.useState([]),[C,O]=E.useState(-1),[R,P]=E.useState(null),[F,U]=E.useState(1);E.useEffect(()=>{const G=document.getElementById("browserSVG");if(P(G),G){const $=G,Z=$.getBoundingClientRect();U(Z.width/$.viewBox.baseVal.width)}},[]);const V=E.useRef(((Ie=s.tracks)==null?void 0:Ie.find(G=>G.id===t))||null);E.useEffect(()=>{if(!s.tracks||f)return;const G=s.tracks.map(j=>j.actualHeight||j.height),$=s.tracks.findIndex(j=>j.id===t);let Z=new Array(G.length).fill(0);Z=G.map((j,A)=>A<$?-G.slice(A,$).reduce((Y,se)=>Y+se,0):A>$?G.slice($+1,A+1).reduce((Y,se)=>Y+se,0):0),y(new Array(s.tracks.length).fill(!1)),S(Z)},[s.tracks?s.tracks:[]]);const ye=()=>{const G=T.reduce(($,Z,j)=>Math.abs(Z-c)<Math.abs(T[$]-c)?j:$,0);return C!=G&&(C!=-1&&_[C]&&_[G]&&(y($=>{const Z=[...$];return Z[C]=!1,Z}),o({type:le.REMOVE_TRANSLATION,id:s.tracks[C].id})),y($=>{const Z=[...$];return Z[G]=!0,Z}),o({type:le.TRANSLATE_TRACK,id:s.tracks[G].id,dist:c<0?n:-n}),O(G)),G},_e=()=>{if(!s.tracks)return;const G=s.tracks.find(Z=>Z.id===t);if(!G)return;const $=s.tracks.slice(0,s.tracks.indexOf(G)).reduce((Z,j)=>Z+(j.actualHeight||j.height),0);w({x:0,y:$+80}),u(0),g(!0)},ve=()=>{s.tracks&&(d({x:0,y:0}),g(!1),o({type:le.SHIFT_TRACK,id1:t,id2:s.tracks[ye()].id}),o({type:le.REMOVE_TRANSLATION,id:"ALL"}))},we=(G,$)=>{u($.y),d({x:0,y:$.y});const Z=ye(),j=s.tracks.indexOf(V.current);Z==j||s.tracks[Z]},Ne=E.useRef(null);return p.jsx(Mu.Provider,{value:f,children:p.jsx(yi,{scale:F,nodeRef:a,position:l,axis:"y",handle:".swap-handle",onStart:e&&R?_e:()=>!1,onStop:ve,onDrag:we,children:p.jsxs("g",{ref:a,"data-track-id":t,children:[!f&&r,f&&(R?Nr.createPortal(p.jsx(yi,{scale:F,nodeRef:Ne,position:{x:0,y:x.y+l.y},axis:"y",children:p.jsx("g",{ref:Ne,style:{cursor:"grabbing",filter:"drop-shadow(2px 2px 2px gray)"},children:r})}),R):r)]})})})}E.createContext({});E.createContext(()=>{});const vo=E.createContext({delta:0,setDelta:()=>{}}),yo=E.createContext({openModal:null,showModal:()=>{},closeModal:()=>{}});function _d({children:e,browserState:t,browserDispatch:n,modalState:r,deltaContext:i}){return p.jsx(yo.Provider,{value:{...r},children:p.jsx(Sn.Provider,{value:t,children:p.jsx(qt.Provider,{value:n,children:p.jsx(vo.Provider,{value:i,children:e})})})})}function kd(e){return p.jsxs("svg",{x:e.x,y:e.y,width:e.width,height:e.height,viewBox:"0 0 24.000001 24.000001",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",children:[p.jsx("filter",{id:"a",colorInterpolationFilters:"sRGB",height:"1.39486",width:"1.311082",x:"-.155541",y:"-.19743",children:p.jsx("feGaussianBlur",{stdDeviation:"1.2313672"})}),p.jsxs("g",{transform:"matrix(.96344673 0 0 .96344673 -123.36427 -955.289756)",children:[p.jsx("path",{d:"m132.5 995.4062c-.831 0-1.5 1.5-1.5 1.5s.669 1.5 1.5 1.5h7.6875c-.25613.088-.47997.2851-.59375.5313l-3 6c-.2396.5108.0576 1.1992.59375 1.375l1.8125.625v2.4375c.00005.5236.47642 1 1 1h1c.52358 0 .99995-.4764 1-1v-2.4375l1.8125-.625c.53611-.1758.83335-.8642.59375-1.375l-3-6c-.13219-.2754-.39056-.4647-.6875-.5313h7.78125c.831 0 1.5-1.5 1.5-1.5s-.669-1.5-1.5-1.5z",filter:"url(#a)",opacity:".2"}),p.jsx("path",{d:"m140.3125 997.375c-.31022.06-.58621.2757-.71875.5625l-3 6c-.2396.5108.0576 1.1992.59375 1.375l1.8125.625v2.4375c.00005.5236.47642 1 1 1h1c.52358 0 .99995-.4764 1-1v-2.4375l1.8125-.625c.53611-.1758.83335-.8642.59375-1.375l-3-6c-.17625-.3672-.59466-.6026-1-.5625-.0312-.001-.0625-.001-.0937 0z"}),p.jsx("path",{d:"m140.5 998.375-3 6 2.5.8437v3.1563h1v-3.1563l2.5-.8437z",fill:"#fefefe"}),p.jsxs("g",{transform:"rotate(-90)",children:[p.jsx("rect",{height:"18.999969",rx:"1.43934",ry:"1.5",width:"3.049988",x:"-997.41217",y:"131.00003"}),p.jsx("path",{d:"m-996.41217 132.00003h1v16.999969h-1z",fill:"#fefefe"})]})]})]})}function bo(e){return e/6<10?e<10?e:10:e/6}const Us=({fontSize:e,position:t,width:n,children:r})=>p.jsxs(p.Fragment,{children:[p.jsx("text",{textAnchor:"end",alignmentBaseline:"middle",y:t-3,x:n*.94,fontSize:`${e}px`,style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:r}),p.jsx("line",{x1:n*.96,x2:n,y1:t,y2:t,stroke:"#aaa"})]}),Dd=e=>{const t=bo(50),[n,r]=E.useState(null);E.useEffect(()=>{const x=document.getElementById("browserSVG");r(x)},[]);const{showModal:i}=E.useContext(yo),[a,o]=E.useState(void 0),s=E.useContext(qt),c=E.useContext(Sn);let u=-1;c.tracks&&(u=c.tracks.findIndex(x=>x.id===e.trackId));const l=x=>{i(e.trackId,x.clientX,x.clientY)},d=x=>{x.preventDefault(),s({type:le.BRING_TO_TOP,id:e.trackId})};E.useEffect(()=>{o(e.range)},[e.range]);const f=E.useContext(Mu),g=x=>{s({type:le.UPDATE_TRACK,id:e.trackId,track:{hoverColor:x?e.color:void 0}})};return p.jsx("svg",{style:{cursor:e.canDrag&&n?f?"grabbing":"grab":"default"},width:e.width,height:e.height,viewBox:`0 0 ${e.width} ${e.height}`,preserveAspectRatio:"xMinYMin meet",children:p.jsxs("g",{onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1),height:e.height,width:e.width,children:[p.jsx("rect",{x:0,y:0,width:e.width,height:e.height,fill:"white",className:"swap-handle"}),p.jsx("rect",{x:0,y:0,width:e.width/15,height:e.height,stroke:"#000000",strokeWidth:.5,fill:e.color||"rgb(225,225,225)",style:{cursor:"default"}}),p.jsx("text",{fontSize:`${t}px`,y:e.range===void 0?e.height/2:(e.height+t)/2,x:e.width/10,alignmentBaseline:"middle",style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:e.shortLabel}),p.jsx("line",{stroke:"#ccc",x1:e.width,x2:e.width,y1:0,y2:e.height}),e.trackType!==X.RULER&&n&&p.jsxs("svg",{x:e.width/10,y:e.range===void 0?e.height/2+5:(e.height+t)/2+5,width:35,height:20,cursor:"pointer",children:[p.jsxs("g",{onClick:l,children:[p.jsx("circle",{cx:7.5,cy:7.5,r:7.5,strokeWidth:0,fill:"transparent"}),p.jsx(Ch,{x:0,y:0,height:15,width:15})]}),u>0&&p.jsxs("g",{onClick:d,children:[p.jsx("circle",{cx:22.5,cy:7.5,r:7.5,strokeWidth:0,fill:"transparent"}),p.jsx(kd,{x:15,y:2,height:15,width:15})]})]}),a&&p.jsxs(p.Fragment,{children:[p.jsx(Us,{position:e.rangePositions.min,width:e.width,fontSize:t||e.height/6,children:Number(a.min).toFixed(2)}),p.jsx(Us,{position:e.rangePositions.max,width:e.width,fontSize:t||e.height/6,children:Number(a.max).toFixed(2)})]})]})})};function Md(e){return e&&e.props!==void 0}const Ld=0,Bs=255;function Lu(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 Ri(e,t){e=Lu(e);let n="#";for(let r=0;r<3;++r){const i=parseInt(e.substr(r*2,2),16),a=Math.round(Math.min(Math.max(Ld,i+t*Bs),Bs)).toString(16);n+=("00"+a).substr(a.length)}return n}function zs(e){return parseInt(Lu(e),16)}function Id(e){return e>=16?e.toString(16):`0${e.toString(16)}`}const xo=E.createContext({show:!1,x:0,y:0,id:"",setContextMenu:()=>{},displayMode:void 0}),Rd=e=>{const{x:t,y:n,show:r}=E.useContext(xo);return p.jsx("g",{id:"context-menu",transform:`translate(${t}, ${n})`,style:{visibility:r?"visible":"hidden"},children:p.jsx("foreignObject",{width:e.width,height:e.height,children:e.children})})},pn=(e,t)=>{if(e.createSVGPoint&&e){let r=e.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,r=r.matrixTransform(e.getScreenCTM().inverse()),[r.x,r.y]}const n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]},jd=(e,t)=>{const n=e.cloneNode(!0),r=t.cloneNode(!0);return'<?xml version="1.0" standalone="no"?>'+'<svg xmlns="http://www.w3.org/2000/svg">'+r.outerHTML.replace(/\n/g,"").replace(/[ ]{8}/g,"")+'<g transform="translate (0,50)">'+n.outerHTML.replace(/\n/g,"").replace(/[ ]{8}/g,"")+"</g></svg>"},Pd=(e,t,n)=>{const r=new Blob([jd(e,t)],{type:"image/svg;charset=utf-8"}),i=URL.createObjectURL(r),a=document.createElement("a");a.href=i,a.download=n,document.body.appendChild(a),a.click(),document.body.removeChild(a)};function Nd(e){return p.jsx("rect",{width:e.width,height:e.height,fill:e.hoverColor||"transparent",fillOpacity:e.hoverColor?.15:0,style:{pointerEvents:"none"}})}const Ad=(e,t)=>e||(!t||!t.substring||!t.length?"":t.length<=20?t:t.substring(0,20)+"..."),tt=e=>{var _;const t=E.useContext(qt),n=E.useContext(xo);E.useEffect(()=>{const y=C=>{const O=document.getElementById("context-menu");O&&!O.contains(C.target)&&n.setContextMenu({show:!1,x:0,y:0,id:""})};return document.addEventListener("click",y),()=>{document.removeEventListener("click",y)}},[n]);const r=()=>{var O,R,P,F;const y=(R=(O=e.svgRef)==null?void 0:O.current)==null?void 0:R.getElementById("wrapped-track-"+e.id),C=(F=(P=e.svgRef)==null?void 0:P.current)==null?void 0:F.getElementById("wrapped-track-ruler");Pd(y,C,e.id+".svg")},[i,a]=E.useState(e.height||0),o=E.useCallback(y=>{a(y),e.onHeightChanged&&e.onHeightChanged(y)},[e]);E.useEffect(()=>{t({type:le.SET_TRACK_HEIGHT,id:e.id,height:i}),e.onHeightChanged&&e.height!==void 0&&e.onHeightChanged(e.height)},[e.height,i]);const s=e.trackMargin||(e.height||e.rowHeight||i)/6,c=e.titleSize||s*2.5,u=e.title?c+5:0,l=s+u,d=Ad(e.shortLabel||"",e.title||""),f=i-l,g=e.width<1e3?e.width/8:150,x=e.width-g,w=i/3,S=(_=e.displayMode)==null?void 0:_.toLowerCase();return p.jsx(Cd,{canDrag:e.canDrag||!1,id:e.id,height:i,children:p.jsxs("g",{id:"wrapped-track-"+e.id,children:[p.jsx("rect",{width:e.width,height:i,fill:"white",style:{pointerEvents:"none"}}),p.jsx("line",{stroke:"#ccc",x1:e.width,x2:e.width,y1:0,y2:i,strokeWidth:2}),e.loading&&!e.error&&p.jsx("g",{transform:`translate(${g+(x-w)/2},${(i-w)/2})`,children:p.jsx(Oh,{width:w,height:w})}),e.error&&p.jsxs("g",{transform:`translate(${g+(x-w)/2},${(i-w)/2})`,children:[p.jsx(mu,{width:w,height:w}),p.jsx("g",{transform:`translate(${w/2},${w+10})`,children:p.jsx("text",{textAnchor:"middle",fontSize:`${e.titleSize}px`,style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:e.error})})]}),!e.loading&&!e.error&&e.title&&p.jsx("g",{id:`title-${e.id}`,children:p.jsx("text",{style:{cursor:"default"},fill:e.titleColor||"#000000",textAnchor:"middle",x:g+x/2,y:c/2+5,fontSize:`${c}px`,transform:`translate(0,${s})`,alignmentBaseline:"baseline",children:e.title})}),!e.loading&&!e.error&&p.jsx("g",{onContextMenu:y=>{if(e.trackType==X.RULER||!e.svgRef)return;y.preventDefault();const C=pn(e.svgRef.current,y);n.setContextMenu({show:!0,x:C[0]>e.width-80?C[0]-80:C[0],y:C[1],id:e.id,displayMode:S,downloadSVG:r,displayModeOptions:Fd(e.trackType)})},transform:`translate(${g},${i-f})`,children:E.Children.map(e.children,y=>Md(y)?E.cloneElement(y,{...y.props,height:f,width:e.width-g,hoverColor:e.hoverColor,onHeightChanged:C=>{o(C+l)}}):y)}),e.height!=0&&p.jsx(Dd,{canDrag:e.canDrag||!1,trackType:e.trackType||X.UNDEFINED,trackId:e.id,color:e.color,hoverColor:e.hoverColor,shortLabel:d,width:g,height:i,rangePositions:{min:i,max:l},range:e.range}),p.jsx(Nd,{width:e.width,height:i,hoverColor:e.hoverColor})]})})};function Fd(e){switch(e){case X.BIGBED:case X.BAM:return["dense","squish","hide","download"];case X.BIGWIG:return["full","dense","hide","download"];case X.TRANSCRIPT:return["pack","squish","hide","download"];case X.LDTRACK:return["full","hide","download"];case X.MOTIF:return["dense","squish","hide","download"];default:return["hide","download"]}}let ni;const Vd=new Uint8Array(16);function qd(){if(!ni&&(ni=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!ni))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return ni(Vd)}const ft=[];for(let e=0;e<256;++e)ft.push((e+256).toString(16).slice(1));function $d(e,t=0){return ft[e[t+0]]+ft[e[t+1]]+ft[e[t+2]]+ft[e[t+3]]+"-"+ft[e[t+4]]+ft[e[t+5]]+"-"+ft[e[t+6]]+ft[e[t+7]]+"-"+ft[e[t+8]]+ft[e[t+9]]+"-"+ft[e[t+10]]+ft[e[t+11]]+ft[e[t+12]]+ft[e[t+13]]+ft[e[t+14]]+ft[e[t+15]]}let Ws,ha,da=0,pa=0;function $t(e,t,n){let r=t&&n||0;const i=t||new Array(16);e=e||{};let a=e.node||Ws,o=e.clockseq!==void 0?e.clockseq:ha;if(a==null||o==null){const f=e.random||(e.rng||qd)();a==null&&(a=Ws=[f[0]|1,f[1],f[2],f[3],f[4],f[5]]),o==null&&(o=ha=(f[6]<<8|f[7])&16383)}let s=e.msecs!==void 0?e.msecs:Date.now(),c=e.nsecs!==void 0?e.nsecs:pa+1;const u=s-da+(c-pa)/1e4;if(u<0&&e.clockseq===void 0&&(o=o+1&16383),(u<0||s>da)&&e.nsecs===void 0&&(c=0),c>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");da=s,pa=c,ha=o,s+=122192928e5;const l=((s&268435455)*1e4+c)%4294967296;i[r++]=l>>>24&255,i[r++]=l>>>16&255,i[r++]=l>>>8&255,i[r++]=l&255;const d=s/4294967296*1e4&268435455;i[r++]=d>>>8&255,i[r++]=d&255,i[r++]=d>>>24&15|16,i[r++]=d>>>16&255,i[r++]=o>>>8|128,i[r++]=o&255;for(let f=0;f<6;++f)i[r+f]=a[f];return t||$d(i)}function An(e,t){return` M ${e} ${t}`}function Te(e,t){return` L ${e} ${t}`}function Ct(e,t){return n=>(n-e.start)*t/(e.end-e.start)}function Iu(e,t){return n=>e.max===e.min?0:(e.max-n)*t/(e.max-e.min)}function Ud(e,t){const n=e.end-e.start,r=t.end-t.start;return i=>(i-e.start)*r/n+t.start}function Ru(e,t,n){return Ct(e||t.reduce((r,i)=>({start:i.start<r.start?i.start:r.start,end:i.end>r.end?i.end:r.end}),{start:1/0,end:-1/0}),n)}function Ar(e,t,n,r=10){return n=n||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)+r+n*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 Bd(e){return e==null?"":""+(e<1e5?e===Math.floor(e)?e:e.toFixed(2):e.toExponential(2))}const Ht=({width:e,height:t,id:n})=>p.jsx("clipPath",{id:n,children:p.jsx("rect",{x:0,y:0,width:e,height:t})}),Jt=E.createContext({show:!1,x:0,y:0,width:0,height:0,content:void 0,setTooltip:()=>{}});var ju=(e=>(e.ValuedPoint="valuedPoint",e.BigZoomData="bigZoomData",e.BigWigData="bigWigData",e))(ju||{});function Bn(e){return e[0].x!==void 0?"valuedPoint":e[0].minVal!==void 0?"bigZoomData":"bigWigData"}function ma(e){return Bn(e)==="bigWigData"?e.map(t=>({...t})):Bn(e)==="bigZoomData"?e.map(t=>({...t})):Bn(e)==="valuedPoint"?e.map(t=>({...t})):[]}const Qs=(e,t)=>{switch(Bn(e)){case"bigWigData":return e.forEach(n=>{n.value<t.min&&(n.value=t.min),n.value>t.max&&(n.value=t.max)}),e;case"bigZoomData":return e.forEach(n=>{n.minVal<t.min&&(n.minVal=t.min),n.maxVal>t.max&&(n.maxVal=t.max)}),e;case"valuedPoint":return e.forEach(n=>{n.min<t.min&&(n.min=t.min),n.max>t.max&&(n.max=t.max)}),e;default:return[]}},ga=(e,t)=>({min:e.reduce((n,r)=>t(r)<n?t(r):n,1/0),max:e.reduce((n,r)=>t(r)>n?t(r):n,-1/0)}),ui=e=>{switch(Bn(e)){case"bigWigData":return ga(e,t=>t.value);case"bigZoomData":return ga(e,t=>t.maxVal);case"valuedPoint":return ga(e,t=>t.max);default:return{min:0,max:0}}};function Hs(e){return e.value!==void 0}const zd=e=>{const t={start:e[0].x,end:e[e.length-1].x},n=Ru(t,e.map(i=>({start:i.x,end:i.x+1})),100),r=[];for(let i=0;i<=100;++i)r.push({x:i,max:-1/0,min:1/0});return e.reduce((i,a)=>{const o=Math.floor(n(a.x)),s=Math.floor(n(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:r,range:{max:-1/0,min:1/0}})};function Pu(e,t){if(!e)return{renderPoints:[],range:{max:1,min:0}};const n=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}),r=Ru(n,e,t),i=[],a={start:Math.floor(r(e[0].start)),end:Math.floor(r(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(r(s.start)),u=Math.floor(r(s.end)),l=Hs(s)?s.value:s.minVal,d=Hs(s)?s.value:s.maxVal;l<o.renderPoints[c].min&&(o.renderPoints[c].min=l),d>o.renderPoints[c].max&&(o.renderPoints[c].max=d);for(let f=c+1;f<u;++f)o.renderPoints[f].min=l,o.renderPoints[f].max=d;l<o.range.min&&(o.range.min=l),d>o.range.max&&(o.range.max=d)}),o}function Mt({canDrag:e,children:t}){const n=E.useRef(null),r=E.useContext(qt),[i,a]=E.useState(!1),{delta:o,setDelta:s}=E.useContext(vo),[c,u]=E.useState({x:0,y:0}),[l,d]=E.useState(null),[f,g]=E.useState(1);E.useEffect(()=>{const T=document.getElementById("browserSVG");if(d(T),T){const S=T,_=S.getBoundingClientRect();g(_.width/S.viewBox.baseVal.width)}},[]);const x=(T,S)=>{T.preventDefault(),a(!0);const _=S.deltaX;s(o+_)},w=()=>{Math.abs(o)<10||(u({x:o,y:0}),r({type:le.SHIFT_DOMAIN,delta:o}),a(!1))};return E.useEffect(()=>{i||u({x:o,y:0})},[o]),p.jsx(yi,{nodeRef:n,scale:f,position:c,axis:"x",onStart:e&&l?()=>{}:()=>!1,onDrag:(T,S)=>x(T,S),onStop:w,children:p.jsx("g",{ref:n,height:"100%",style:{cursor:e&&l?i?"grabbing":"grab":"default"},children:t})})}function Ln(e,t){return` L ${e} ${t}`}const Wd=e=>{const t=E.useContext(Sn),n=E.useContext(qt),[r,i]=E.useState(ma(e.data)),[a,o]=E.useState();E.useEffect(()=>{const C=ui(r);C.min=C.min>0?0:C.min,n({type:le.UPDATE_PROPS,id:e.id,props:{defaultRange:C}}),o(C)},[]),E.useEffect(()=>{const C=ma(e.data),O=ui(C),R={min:O.min>0?0:O.min,max:O.max};i(Qs(C,R)),n({type:le.UPDATE_PROPS,id:e.id,props:{range:R}}),n({type:le.UPDATE_PROPS,id:e.id,props:{defaultRange:R}})},[e.data,a,e.domain]),E.useEffect(()=>{if(!e.range)return;const C=ma(e.data);i(Qs(C,e.range))},[e.range]);const s=E.useContext(Jt),[c,u]=E.useState(),[l,d]=E.useState(null),f=E.useCallback(C=>{var U;if(t.delta!=0||!((U=e.svgRef)!=null&&U.current))return;const O=pn(e.svgRef.current,C);d([O[0],O[1]]);const R=Math.round(O[0]-150),P=w.renderPoints.find(V=>V.min<1/0&&V.max>-1/0&&V.x===R);if(!P)return;const F=O[0]>e.width-60?O[0]-60+5:O[0]+5;s.setTooltip({show:!0,x:F,y:O[1]-e.height/2,height:80,width:60,content:p.jsx("div",{style:{fontSize:"10px",backgroundColor:"#ffffff",boxShadow:"0 0 4px 0 rgba(0, 0, 0, 0.2)",padding:"5px",display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"center",gap:"5px"},children:p.jsxs("div",{style:{whiteSpace:"nowrap",minWidth:"50px"},children:["value: ",Number(Bd(P.max))]})})})},[e.svgRef,e.width,e.height,t.delta]);E.useEffect(()=>{u(l?l[0]:void 0)},[l]);const g=()=>{s.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0}),u(void 0)};E.useEffect(()=>{if(t.delta!=0){g();return}},[t.delta]);const x=E.useRef($t()),w=E.useMemo(()=>r&&r.length&&Bn(r)===ju.ValuedPoint?{renderPoints:r,range:e.range||ui(r)}:Pu(r,e.width),[r,e.width,e.domain]),T=E.useMemo(()=>{const C=Iu(w.range,e.height),O=w.renderPoints.filter(P=>P.min<1/0&&P.max>-1/0),R=P=>Math.max(0,Math.min(e.height,C(P)));return{maxPath:O.reduce((P,F,U,V)=>P+(F.x?Ln(F.x,R(V[U-1]?V[U-1].max:0)):"")+Ln(F.x,R(F.max)),"M 0 "+R(0)+" ")+Ln(e.width,R(0)),minPath:O.reduce((P,F,U,V)=>P+(F.x?Ln(F.x,R(V[U-1]?V[U-1].min:0)):"")+Ln(F.x,R(F.min)),"M 0 "+R(0)+" ")+Ln(e.width,R(0))}},[w,e.height,e.width]),S=e.color||"#000000",_=E.useMemo(()=>e.noTransparency?S:Ri(S,.5),[e]),y=e.id||x.current.toString();return E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),p.jsx(Mt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{className:e.className,width:e.width,height:e.height,clipPath:`url(#${y})`,children:[p.jsx("rect",{width:e.width,height:e.height,fill:"white",onMouseOut:g}),p.jsx("defs",{children:p.jsx(Ht,{id:y,width:e.width,height:e.height})}),p.jsx("path",{d:T.maxPath,fill:_,style:{cursor:"default",clipPath:`url(#${y})`}}),p.jsx("path",{d:T.minPath,fill:S,style:{cursor:"default",clipPath:`url(#${y})`}}),c!==void 0&&p.jsx("line",{stroke:"#ccc",x1:c-150,x2:c-150,y1:0,y2:e.height}),p.jsx("rect",{width:e.width,height:e.height,fill:"transparent",onMouseMove:C=>{f(C)},onMouseOut:()=>{g()}})]})})},Qd=e=>{const t=E.useRef($t()),n=E.useMemo(()=>e.data&&e.data.length&&e.data[0].x!==void 0?zd(e.data):Pu(e.data,100),[e.data,e.width,e.domain]);n.range||(n.range=ui(n.renderPoints));const r=E.useMemo(()=>{const i=Iu(n.range,1),a=n.renderPoints.filter(s=>s.min<1/0&&s.max>-1/0),o=e.color||"#000000";return a.map(s=>Ri(o,i(s.max)))},[e.color,n]);return E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),p.jsx(Mt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{className:e.className,width:e.width,height:e.height,children:[p.jsx("defs",{children:p.jsx("linearGradient",{id:t.current,children:r.map((i,a)=>p.jsx("stop",{offset:`${a}%`,stopColor:i},`${t.current}_pt_${a}`))})}),p.jsx("rect",{width:e.width,height:e.height,fill:"white"}),p.jsx("rect",{width:e.width,height:e.height,fill:e.hoverColor||"transparent",fillOpacity:e.hoverColor?.2:0}),p.jsx("rect",{width:e.width,x:0,y:e.height/3,height:e.height/3,fill:`url('#${t.current}')`})]})})},Xn=e=>{E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]);const t=12,n=32,r=e.height,i=e.width;return p.jsxs("g",{className:e.className,width:e.width,height:e.height,transform:e.transform,children:[e.height!=0&&p.jsx("rect",{width:e.width,height:e.height,fill:"none",onClick:e.onClick}),e.error&&p.jsxs("g",{transform:`translate(${t+(i-n)/2},${(r-n)/2})`,children:[p.jsx(mu,{width:n,height:n}),p.jsx("g",{transform:`translate(${n/2},${n+10})`,children:p.jsx("text",{textAnchor:"middle",fontSize:"12px",style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:e.text})})]}),!e.error&&e.text&&e.height!=0&&p.jsx("text",{textAnchor:"middle",x:Math.round(+e.width/2),y:Math.round(+e.height/2),style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:e.text})]})},Nu={trackType:X.BIGWIG,titleSize:12,trackMargin:12,displayMode:Fe.FULL,canDrag:!0,noTransparency:!0,color:"#ff5555"};function Au(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},n={...e,trackType:X.BIGWIG,displayMode:e.displayMode};switch(e.displayMode){case Fe.FULL:return p.jsx(tt,{...n,...t,trackType:X.BIGWIG,displayMode:e.displayMode,children:p.jsx(Wd,{...e})});case Fe.DENSE:return p.jsx(tt,{...n,...t,trackType:X.BIGWIG,displayMode:e.displayMode,children:p.jsx(Qd,{...e})});case Fe.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigWig`),p.jsx(tt,{...n,children:p.jsx(Xn,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function Hd(e,t){const n=[];return e.forEach((r,i)=>(i===0||r.start>e[i-1].end||r.color!=e[i-1].color?n.push({start:t(r.start)<0?0:t(r.start),end:t(r.end)<0?0:t(r.end),color:r.color,name:r.name,score:r.score}):n[n.length-1].end=t(r.end),n)),n}function Gd(e,t){return Ar(e.sort((n,r)=>n.start-r.start).map(n=>({coordinates:{start:n.start,end:n.end},color:n.color,name:"",score:n.score,rectname:n.name})),t,0).map(n=>n.map(r=>({start:t(r.coordinates.start)<0?0:t(r.coordinates.start),end:t(r.coordinates.end),color:r.color,rectname:r.rectname,name:r.rectname,score:r.score})))}const Yd={fontSize:"12px",backgroundColor:"#ffffff",border:"1px solid",padding:"1em"},Fu=e=>p.jsxs("div",{style:Yd,children:[e.name?`name: ${e.name}`:"",p.jsx("br",{}),e.score!==void 0?`score: ${e.score}`:""]});function Vu(e,t,n,r,i){const a=E.useContext(Jt),o=E.useCallback((c,u)=>{if(!n||!n.current)return;const[l,d]=pn(n.current,c);a.setTooltip({show:!0,x:l>t-100?l-90:l+10,y:d+10,width:100,height:50,content:E.createElement(e,u)})},[e,t,n,a]),s=E.useCallback(()=>{a.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},[a]);return[o,s]}const Kd=e=>{const[t,n]=Vu(e.tooltipContent||Fu,e.width,e.svgRef),r=E.useRef($t()),i=E.useCallback(Ct(e.domain,e.width),[e.data]),a=e.color||"#000000",o=e.id||r.current.toString(),s=E.useMemo(()=>Hd(e.data||[],i),[e.width,e.data,e.domain]);return E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),p.jsx(Mt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{width:e.width,height:e.height,clipPath:`url(#${o})`,className:e.className,children:[p.jsx("rect",{width:e.width,height:e.height,fill:"white"}),p.jsx("defs",{children:p.jsx(Ht,{id:o,width:e.width,height:e.height})}),s.map((c,u)=>p.jsx("rect",{style:{cursor:e.onClick?"pointer":"default"},height:e.height*.6,width:c.end-c.start,x:c.start,y:e.height*.2,fill:c.color||a,onClick:()=>e.onClick&&e.onClick(c),onMouseOut:()=>{e.onMouseOut&&e.onMouseOut(),n()},onMouseOver:l=>{l.persist(),e.onMouseOver&&e.onMouseOver(c),t(l,c)}},`${o}_${u}`))]})})},Xd=e=>{const[t,n]=Vu(e.tooltipContent||Fu,e.width,e.svgRef),r=E.useRef($t()),i=E.useCallback(Ct(e.domain,e.width),[e.data]),a=E.useMemo(()=>{const c=e.data?[...e.data]:[];return Gd(c,i)},[e.width,e.data,e.domain]),o=e.rowHeight*a.length,s=e.id||r.current.toString();return E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(o)},[a,e.rowHeight,e.onHeightChanged]),p.jsx(Mt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{width:e.width,height:o,clipPath:`url(#${s})`,children:[p.jsx("rect",{width:e.width,height:o,fill:"white"}),p.jsx("defs",{children:p.jsx(Ht,{id:s,width:e.width,height:o})}),a.map((c,u)=>p.jsx("g",{transform:`translate(0, ${u*e.rowHeight})`,children:c.map((l,d)=>p.jsx("rect",{style:{cursor:e.onClick?"pointer":"default"},height:e.rowHeight*.6,width:l.end-l.start<1?1:l.end-l.start,x:l.start,y:e.rowHeight*.2,fill:l.color,onClick:()=>e.onClick&&e.onClick(l),onMouseOut:()=>{e.onMouseOut&&e.onMouseOut(),n()},onMouseOver:f=>{f.persist(),e.onMouseOver&&e.onMouseOver(l),t(f,l)}},`${s}_${d}`))},`group_${u}`))]})})},qu={trackType:X.BIGBED,displayMode:Fe.SQUISH,rowHeight:10,titleSize:12,trackMargin:12,canDrag:!0};function $u(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},n={...e,trackType:X.BIGBED,displayMode:e.displayMode};switch(e.displayMode){case Fe.DENSE:return p.jsx(tt,{...n,...t,trackType:X.BIGBED,displayMode:e.displayMode,children:p.jsx(Kd,{...e})});case Fe.SQUISH:return p.jsx(tt,{...n,...t,trackType:X.BIGBED,displayMode:e.displayMode,children:p.jsx(Xd,{...e})});case Fe.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigBed`),p.jsx(tt,{...n,children:p.jsx(Xn,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function Jd(e,t){return e.coordinates.start===t.coordinates.start?e.coordinates.end-t.coordinates.end:e.coordinates.start-t.coordinates.start}function Zd(e,t){return e.reduce((n,r)=>(r.transcripts.filter(i=>i.coordinates.start<t.end&&i.coordinates.end>t.start).forEach(i=>n.push({...i,strand:r.strand})),n),[]).sort((n,r)=>n.coordinates.start-r.coordinates.start)}function e0(e){if(e.length===0)return[];const t=[{coordinates:{...e[0].coordinates}}];return e.slice(1).forEach(n=>{n.coordinates.start<t[t.length-1].coordinates.end?t[t.length-1].coordinates.end=Math.max(t[t.length-1].coordinates.end,n.coordinates.end):t.push({coordinates:{...n.coordinates}})}),t}function t0(e,t){var s;const r=e.transcripts.reduce((c,u)=>[...c,...u.exons||[]],[]).sort(Jd),i=r.length===0?[]:[{coordinates:{...r[0].coordinates},UTRs:r[0].UTRs&&[...r[0].UTRs]}],a=new Set(e.transcripts.map(c=>c.color));r.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=e0(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(...r.map(c=>c.coordinates.start)),end:Math.max(...r.map(c=>c.coordinates.end))},exons:i,color:o}}function n0(e,t,n){var r;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:((r=e.exons)==null?void 0:r.filter(i=>i.coordinates.end>n.start&&i.coordinates.start<n.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 r0(e,t,n,r,i,a){let o="";if(e=e<0?0:e,t=t>a?a:t,n==="+")for(let s=e+10;s<t-10;s+=20)o+=An(s-i,r-i)+Te(s,r)+Te(s-i,r+i)+Te(s,r)+Te(s-i,r-i);else if(n==="-")for(let s=e+10;s<t-10;s+=20)o+=An(s+i,r-i)+Te(s,r)+Te(s+i,r+i)+Te(s,r)+Te(s+i,r-i);return o+" M "+e+" "+r+" L "+t+" "+r}function i0(e,t,n,r){var d,f;if(e.coordinates.start>r||e.coordinates.end<0)return"";const i=((d=e.UTRs)==null?void 0:d.filter(g=>g.coordinates.start===e.coordinates.start))||[],a=((f=e.UTRs)==null?void 0:f.filter(g=>g.coordinates.end===e.coordinates.end))||[],o=t-n*.2,s=t+n*.2,c=t-n*.3,u=t+n*.3;if(!i[0]&&!a[0])return An(e.coordinates.start,c)+Te(e.coordinates.end,c)+Te(e.coordinates.end,u)+Te(e.coordinates.start,u)+Te(e.coordinates.start,c);if(i[0]&&i[0].coordinates.end===e.coordinates.end)return An(i[0].coordinates.start,o)+Te(i[0].coordinates.end,o)+Te(i[0].coordinates.end,s)+Te(i[0].coordinates.start,s)+Te(i[0].coordinates.start,o);let l=i[0]?An(i[0].coordinates.start,o)+Te(i[0].coordinates.end,o)+Te(i[0].coordinates.end,c):An(e.coordinates.start,c);return l+=a[0]?Te(a[0].coordinates.start,c)+Te(a[0].coordinates.start,o)+Te(a[0].coordinates.end,o)+Te(a[0].coordinates.end,s)+Te(a[0].coordinates.start,s)+Te(a[0].coordinates.start,u):Te(e.coordinates.end,c)+Te(e.coordinates.end,u),l+(i[0]?Te(i[0].coordinates.end,u)+Te(i[0].coordinates.end,s)+Te(i[0].coordinates.start,s)+Te(i[0].coordinates.start,o):Te(e.coordinates.start,u)+Te(e.coordinates.start,c))}function Uu(e,t,n,r,i){var s;const a=n0(e,t,n),o={exons:((s=a.exons)==null?void 0:s.reduce((c,u)=>c+i0(u,r/2,r,i),""))||"",introns:r0(a.coordinates.start,a.coordinates.end,a.strand,r/2,r*.19,i)};return{transcript:a,paths:o}}const a0=e=>{const t=E.useContext(Jt),n=(l,d)=>{if(e.svgRef){const f=pn(e.svgRef.current,l);t.setTooltip({show:!0,x:f[0]>e.width-150?f[0]-150+5:f[0]+5,y:f[1],width:150,height:50,content:p.jsx("span",{style:{fontSize:"10px"},children:d.id})})}},r=()=>{t.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},i=E.useRef($t()),a=E.useCallback(Ct(e.domain,e.width),[e.data]),o=e.color||"#000000",s=bo(e.rowHeight)*1.25,c=E.useMemo(()=>Ar(Zd(e.data||[],e.domain),a,s).map((l,d)=>({y:d*e.rowHeight,transcripts:l.map(f=>Uu(f,a,e.domain,e.rowHeight,e.width))})),[e.data,e.rowHeight,e.width,e.domain]),u=E.useMemo(()=>Math.max(e.rowHeight*c.length,35),[e.rowHeight,c.length]);return console.log(u),E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(u)},[u]),p.jsx(Mt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{children:[p.jsx("rect",{width:e.width,height:u,fill:"white"}),p.jsx("defs",{children:p.jsx(Ht,{id:i.current,width:e.width,height:c.length*e.rowHeight})}),c.map((l,d)=>p.jsx("g",{style:{clipPath:`url(#${i.current})`},transform:`translate(0,${l.y})`,height:e.rowHeight,width:e.width,children:l.transcripts.map((f,g)=>p.jsxs(E.Fragment,{children:[p.jsx("path",{stroke:f.transcript.color||o,fill:f.transcript.color||o,strokeWidth:e.rowHeight/16,d:f.paths.introns+f.paths.exons,style:{cursor:e.onTranscriptClick?"pointer":"default"},onMouseOver:x=>n(x,f.transcript),onMouseOut:r,onClick:()=>e.onTranscriptClick&&e.onTranscriptClick(f.transcript)}),p.jsx("text",{fill:f.transcript.color||o,fontSize:s,x:f.transcript.coordinates.end+5,y:e.rowHeight/2,dominantBaseline:"middle",style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:f.transcript.name})]},`transcript_${g}`))},`row_${d}`))]})})},o0=e=>{const t=E.useContext(Jt),n=(l,d)=>{if(e.svgRef){const f=pn(e.svgRef.current,l);t.setTooltip({show:!0,x:f[0]>e.width-150?f[0]-150+5:f[0]+5,y:f[1],width:150,height:50,content:p.jsx("span",{style:{fontSize:"10px"},children:d.id})})}},r=()=>{t.setTooltip({show:!1,x:0,y:0,content:void 0,width:0,height:0})},i=E.useRef($t()),a=E.useCallback(Ct(e.domain,e.width),[e.data]),o=e.color||"#000000",s=bo(e.rowHeight)*1.25,c=E.useMemo(()=>{var l;return Ar(((l=e.data)==null?void 0:l.map(d=>t0(d,e.geneName)))||[],a,s).map((d,f)=>({y:f*e.rowHeight,transcripts:d.map(g=>Uu(g,a,e.domain,e.rowHeight,e.width))}))},[e.data,e.rowHeight,e.width,e.domain]),u=E.useMemo(()=>Math.max(e.rowHeight*c.length,35),[e.rowHeight,c.length]);return E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(u)},[u]),p.jsx(Mt,{canDrag:e.canDrag||!1,children:p.jsxs("g",{children:[p.jsx("rect",{width:e.width,height:u,fill:"white"}),p.jsx("defs",{children:p.jsx(Ht,{id:i.current,width:e.width,height:c.length*e.rowHeight})}),c.map((l,d)=>p.jsx("g",{style:{clipPath:`url(#${i.current})`},transform:`translate(0,${l.y})`,height:e.rowHeight,width:e.width,children:l.transcripts.map((f,g)=>p.jsxs(E.Fragment,{children:[p.jsx("path",{stroke:f.transcript.color||o,fill:f.transcript.color||o,strokeWidth:e.rowHeight/16,d:f.paths.introns+f.paths.exons,style:{cursor:e.onTranscriptClick?"pointer":"default"},onMouseOver:x=>n(x,f.transcript),onMouseOut:r,onClick:()=>e.onTranscriptClick&&e.onTranscriptClick(f.transcript)}),p.jsx("text",{fill:f.transcript.color||o,fontSize:s,x:f.transcript.coordinates.end+5,y:e.rowHeight/2,dominantBaseline:"middle",style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:f.transcript.name})]},`transcript_${g}`))},`row_${d}`))]})})},Bu={trackType:X.TRANSCRIPT,displayMode:Fe.SQUISH,rowHeight:14,titleSize:12,trackMargin:12,canDrag:!0};function zu(e){const[t,n]=E.useState(!e.data),[r,i]=E.useState(e.data),a={...e,trackType:X.TRANSCRIPT,displayMode:e.displayMode};switch(E.useEffect(()=>{e.data?(i(e.data),n(!1)):n(!0)},[e.data]),E.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),n(s)})},[e.version]),e.displayMode){case Fe.PACK:return p.jsx(tt,{...a,loading:t,trackType:X.TRANSCRIPT,displayMode:e.displayMode,children:p.jsx(a0,{...e,data:r})});case Fe.SQUISH:return p.jsx(tt,{...a,loading:t,trackType:X.TRANSCRIPT,displayMode:e.displayMode,children:p.jsx(o0,{...e,data:r})});case Fe.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigWig`),p.jsx(tt,{...a,children:p.jsx(Xn,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function s0(e,t){const n=[];return e.sort((r,i)=>r.start-i.start).forEach((r,i)=>(i===0||r.start>e[i-1].end||r.color!=e[i-1].color?n.push({start:t(r.start)<0?0:t(r.start),end:t(r.end),color:r.color,cigarOps:r.cigarOps,strand:r.strand,seq:r.seq}):n[n.length-1].end=t(r.end),n)),n}function c0(e,t,n){return Ar(e.sort((r,i)=>r.start-i.start).map(r=>({coordinates:{start:r.start,end:r.end},color:r.color,name:"",cigarOps:r.cigarOps,strand:r.strand,seq:r.seq})),t,0).map(r=>r.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(n.start-i.coordinates.start,i.seq.length):i.seq}}))}const u0=e=>{const t=E.useRef($t()),n=Ct(e.domain,e.width),r=e.color||"#000000",i=E.useMemo(()=>c0(e.data,n,e.domain),[e.data,e.domain,e.width]),a=e.rowHeight*i.length,o=e.id||t.current.toString();return E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(a)},[i,e.rowHeight,e.onHeightChanged]),p.jsxs("g",{width:e.width,height:a,transform:e.transform,clipPath:`url(#${o})`,children:[p.jsx("defs",{children:p.jsx(Ht,{id:o,width:e.width,height:a})}),i.map((s,c)=>p.jsx("g",{transform:`translate(0, ${c*e.rowHeight})`,children:s.map((u,l)=>{const d=u.cigarOps.map((f,g)=>{let x;return f.op==="S"?x=p.jsx("rect",{height:e.rowHeight*.6,width:f.opEnd-f.opStart<1?1:f.opEnd-f.opStart,x:f.opStart,y:e.rowHeight*.2,style:{fill:"none",strokeDasharray:"2,2",stroke:"black",strokeWidth:.5}},`${l}_${g}`):f.op==="I"?x=p.jsx("rect",{height:e.rowHeight*.6,width:f.opEnd-f.opStart<1?1:f.opEnd-f.opStart,x:f.opStart,y:e.rowHeight*.2,fill:"#ff69b4",children:p.jsx("title",{children:"Insertion"})},`${l}_${g}`):f.op==="D"||f.op==="N"?x=p.jsx("line",{y2:e.rowHeight*.2+e.rowHeight*.6/2,x2:f.opEnd,x1:f.opStart,y1:e.rowHeight*.2+e.rowHeight*.6/2,stroke:"red"},`${l}_${g}`):x=p.jsx("rect",{height:e.rowHeight*.6,width:f.opEnd-f.opStart<1?1:f.opEnd-f.opStart,x:f.opStart,y:e.rowHeight*.2,fill:u.strand!==void 0?u.strand?"#F7F71A":"#53F71A":u.color||r},`${l}_${g}`),x});return p.jsxs("g",{children:[d,e.domain.end-e.domain.start<=200&&u.seq&&p.jsx("text",{fontSize:8,x:u.start,y:e.rowHeight*.2+e.rowHeight*.5,fill:"black",textLength:u.end-u.start,style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},children:u.seq})]},e.id+"_"+l)})},`group_${c}`))]})},l0=e=>{const t=E.useRef($t()),n=Ct(e.domain,e.width),r=e.color||"#000000",i=e.id||t.current.toString(),a=E.useMemo(()=>s0(e.data,n),[e.domain,e.width,e.data]);return E.useEffect(()=>{e.onHeightChanged&&e.onHeightChanged(e.height)},[e.height]),p.jsxs("g",{width:e.width,height:e.height,transform:e.transform,clipPath:`url(#${i})`,children:[p.jsx("defs",{children:p.jsx(Ht,{id:i,width:e.width,height:e.height})}),a.map((o,s)=>p.jsx("rect",{height:e.height*.6,width:o.end-o.start,x:o.start,y:e.height*.2,fill:o.strand!==void 0?o.strand?"#F7F71A":"#53F71A":o.color||r},`${i}_${s}`))]})},f0={displayMode:Fe.DENSE,rowHeight:10};function h0(e){const t=e.data&&e.data[0]?{loading:!1}:{loading:!0},n={...e,trackType:X.BIGBED,displayMode:e.displayMode};switch(e.displayMode){case Fe.DENSE:return p.jsx(tt,{...n,...t,trackType:X.BAM,displayMode:e.displayMode,children:p.jsx(l0,{...e})});case Fe.SQUISH:return p.jsx(tt,{...n,...t,trackType:X.BAM,displayMode:e.displayMode,children:p.jsx(u0,{...e})});case Fe.HIDE:return null;default:return console.warn(`Display mode "${e.displayMode}" not supported on BigBed`),p.jsx(tt,{...n,children:p.jsx(Xn,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}function d0(e,t){return n=>t.start+(t.end-t.start)*((n-e.start)/(e.end-e.start))}function p0(e,t){const n=e.map(t),r=Math.min(...n),i=Math.max(...n);return{start:r>0?0:r,end:i<0?0:i}}function m0(e){return t=>{const n=e((t<0,t)),r=e((t<0,0)),i=Math.abs(r-n)/100;return[n*(t<0?-1:1),i,t<0?"scale(1,-1)":""]}}function g0(e,t){const n=E.useMemo(()=>E0(e)?e.importance.map((o,s)=>({base:e.sequence.charAt(s),importance:o})):e,[e]),r=E.useMemo(()=>p0(n,o=>o.importance),[n]),i=d0(r,{start:t,end:0}),a=E.useCallback(m0(i),[r,t]);return[n,a,i]}function v0(e,t,n){return E.useMemo(()=>e.map(r=>{const i=t.slice(r.coordinates[0],r.coordinates[1]+1).map(s=>s.importance),a=[Math.min(...i),Math.max(...i)],o=n(a[1]);return{...r,y:o,height:n(a[0])-o}}),[e,n])}var Wu={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(_h,function(){return function(n){var r={};function i(a){if(r[a])return r[a].exports;var o=r[a]={i:a,l:!1,exports:{}};return n[a].call(o.exports,o,o.exports,i),o.l=!0,o.exports}return i.m=n,i.c=r,i.d=function(a,o,s){i.o(a,o)||Object.defineProperty(a,o,{enumerable:!0,get:s})},i.r=function(a){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},i.t=function(a,o){if(1&o&&(a=i(a)),8&o||4&o&&typeof a=="object"&&a&&a.__esModule)return a;var s=Object.create(null);if(i.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:a}),2&o&&typeof a!="string")for(var c in a)i.d(s,c,(function(u){return a[u]}).bind(null,c));return s},i.n=function(a){var o=a&&a.__esModule?function(){return a.default}:function(){return a};return i.d(o,"a",o),o},i.o=function(a,o){return Object.prototype.hasOwnProperty.call(a,o)},i.p="/",i(i.s=5)}([function(n,r,i){n.exports=i(3)},function(n,r,i){n.exports=i(4)},function(n,r,i){/*
52
52
  object-assign
53
53
  (c) Sindre Sorhus
54
54
  @license MIT
@@ -195,7 +195,7 @@ query LD($assembly: String!, $snpids: [String!]) {
195
195
  `)}
196
196
  }
197
197
  }
198
- `,Ef={titleSize:12,ldThreshold:.7,displayMode:Fe.FULL,canDrag:!0};function wf(e){var c,u;const t=E.useContext(qt),n={...e,trackType:X.LDTRACK,displayMode:e.displayMode},r=Ev(Xs),i=gf(_t(r),{variables:{assembly:"GRCh38",snpids:[e.anchor]}}),a=l=>{t({type:le.UPDATE_PROPS,id:e.id||"",props:{anchor:l.id}})},o=Xs.map(l=>{var d;return{ld:((d=i.data)==null?void 0:d.snpQuery[0][`${l.population}_${l.subpopulation||""}_ld`])||[]}}),s={snps:((c=e.data)==null?void 0:c.snps)||[],ld:o&&((u=o[0])==null?void 0:u.ld)||[]};switch(e.displayMode){case Fe.FULL:return p.jsx(tt,{...n,loading:i.loading,trackType:X.LDTRACK,displayMode:e.displayMode,children:p.jsx(D0,{...e,onVariantMouseOver:l=>{a(l),e.onVariantMouseOver&&e.onVariantMouseOver(l)},data:s})});default:return console.warn(`Display mode "${e.displayMode}" not supported on BigWig`),p.jsx(tt,{...n,children:p.jsx(Xn,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}const wv=e=>{const t=e.width<1e3?e.width/8:150,n={...e,height:0,marginSize:t,menuHeight:0,preRenderedWidth:e.width-t,zoomLevel:1,delta:0,highlights:e.highlights||[],tracks:e.tracks||[]};return E.useReducer(Td,n)};var nu=Object.prototype.hasOwnProperty;function ru(e,t,n){for(n of e.keys())if(Cr(n,t))return n}function Cr(e,t){var n,r,i;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&Cr(e[r],t[r]););return r===-1}if(n===Set){if(e.size!==t.size)return!1;for(r of e)if(i=r,i&&typeof i=="object"&&(i=ru(t,i),!i)||!t.has(i))return!1;return!0}if(n===Map){if(e.size!==t.size)return!1;for(r of e)if(i=r[0],i&&typeof i=="object"&&(i=ru(t,i),!i)||!Cr(r[1],t.get(i)))return!1;return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((r=e.byteLength)===t.byteLength)for(;r--&&e.getInt8(r)===t.getInt8(r););return r===-1}if(ArrayBuffer.isView(e)){if((r=e.byteLength)===t.byteLength)for(;r--&&e[r]===t[r];);return r===-1}if(!n||typeof e=="object"){r=0;for(n in e)if(nu.call(e,n)&&++r&&!nu.call(t,n)||!(n in t)||!Cr(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}function Ov(e){if(!e||!e.length)throw new Error("useDeepCompareEffect should not be used with no dependencies. Use React.useEffect instead.");if(e.every(Sv))throw new Error("useDeepCompareEffect should not be used with dependencies that are all primitive values. Use React.useEffect instead.")}function Sv(e){return e==null||/^[sbn]/.test(typeof e)}function Tv(e){var t=ci.useRef(e),n=ci.useRef(0);return Cr(e,t.current)||(t.current=e,n.current+=1),ci.useMemo(function(){return t.current},[n.current])}function Cv(e,t){return process.env.NODE_ENV!=="production"&&Ov(t),ci.useEffect(e,Tv(t))}function _v(){const[e,t]=E.useState(null);return{openModal:e,showModal:(i,a,o)=>{t({trackId:i,mouseX:a,mouseY:o})},closeModal:()=>{t(null)}}}function Ti(e,t,n){const[r,i]=E.useState(e),[a,o]=E.useState(n(t)),[s,c]=E.useState(null);return{value:r,valid:a,onChange:l=>{const d=l.target.value,f=d===""?2e3:750;i(d),o(!1),s&&clearTimeout(s);const g=setTimeout(()=>{n(d)||i(t),o(!0)},f);c(g)}}}function Wi({children:e}){return p.jsx("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",paddingBlock:"5px"},children:e})}const kv={position:"fixed",top:"0%",left:"0%",boxShadow:"0 0 10px rgba(0, 0, 0, 0.3)",width:"500px",transform:"translate(-50%, -50%)",background:"#ffffff"},Ci={width:"auto",outline:"#ffffff",border:"1px solid #000000",borderRadius:"2px",paddingRight:"5px"},iu={display:"flex",flexDirection:"column",paddingInline:"5px"},_i={WebkitAppearance:"none",margin:"0"},ki={MozAppearance:"textfield",appearance:"textfield"};function au(e){switch(e.trackType){case X.BIGWIG:return e.actualHeight;case X.BIGBED:case X.TRANSCRIPT:return e.rowHeight;default:return e.height}}function Dv({track:e}){const t=E.useContext(Sn),n=E.useContext(qt),[r,i]=E.useState(t.tracks.find(l=>l.id===e.id)||e),[a,o]=E.useState(au(r));E.useEffect(()=>{i(t.tracks.find(l=>l.id===e.id)||e),o(au(r))},[e]);const{value:s,valid:c,onChange:u}=Ti((a==null?void 0:a.toString())||"",(a==null?void 0:a.toString())||"",r.trackType===X.BIGWIG?Mv:Lv);return E.useEffect(()=>{c&&(r.trackType===X.BIGWIG?n({type:le.UPDATE_TRACK,id:r.id,track:{height:parseInt(s)}}):(r.trackType===X.BIGBED||r.trackType===X.TRANSCRIPT)&&n({type:le.UPDATE_TRACK,id:r.id,track:{rowHeight:parseInt(s)}}))},[s,c]),p.jsxs(Wi,{children:[r.trackType===X.BIGWIG?"Height: ":"Row Height: ",p.jsx("input",{id:"heightInput",style:{...Ci,..._i,...ki},type:"number",placeholder:(a==null?void 0:a.toString())||"",value:s,onChange:u})]})}function Of(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 Mv(e){if(!Of(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 Lv(e){if(!Of(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 Iv=(e,t,n)=>{if(!n)return!1;const r=document.querySelector('input[id="minInput"]'),i=document.querySelector('input[id="maxInput"]');return!r||!i?!0:e>t?(r.setCustomValidity("Minimum value cannot be greater than maximum value."),r.reportValidity(),!0):e==t?(i.setCustomValidity("Values are equal. Please enter different values."),i.reportValidity(),!0):e<n.min?(r.setCustomValidity("Minimum value cannot be less than the default minimum value."),r.reportValidity(),!0):t>n.max?(i.setCustomValidity("Maximum value cannot be greater than the default maximum value."),i.reportValidity(),!0):!1};function Rv({track:e}){var g,x,w,T,S,_;const t=E.useContext(qt),[n]=E.useState(((g=e.props)==null?void 0:g.defaultRange)||{min:0,max:0}),[r]=E.useState(((x=e.props)==null?void 0:x.range)||n),i=y=>{const C=document.getElementById("minInput");return C?y.length===0||isNaN(parseFloat(y))?(C.setCustomValidity("Empty input, using default value"),C.reportValidity(),!1):parseFloat(y)<n.min?(C.setCustomValidity("Value must be greater than or equal to "+n.min),C.reportValidity(),!1):(C.setCustomValidity(""),!0):!0},a=y=>{const C=document.getElementById("maxInput");return C?y.length===0||isNaN(parseFloat(y))?(C.setCustomValidity("Empty input, using default value"),C.reportValidity(),!1):parseFloat(y)>n.max?(C.setCustomValidity("Value must be less than or equal to "+n.max),C.reportValidity(),!1):(C.setCustomValidity(""),!0):!0},{value:o,valid:s,onChange:c}=Ti(r.min.toString(),n.min.toString(),i),{value:u,valid:l,onChange:d}=Ti(r.max.toString(),n.max.toString(),a),f=y=>{y.target.select()};return E.useEffect(()=>{!s||!l||Iv(parseFloat(o),parseFloat(u),n)||t({type:le.UPDATE_PROPS,id:e.id,props:{range:{min:parseFloat(o),max:parseFloat(u)}}})},[s,l,o,u]),p.jsxs(Wi,{children:[p.jsxs("label",{style:iu,children:["Minimum:",p.jsx("input",{id:"minInput",style:{...Ci,..._i,...ki},step:"0.01",type:"number",placeholder:(T=(w=e==null?void 0:e.props)==null?void 0:w.defaultRange)==null?void 0:T.min.toFixed(2),value:Number(o).toFixed(2),onFocus:f,onChange:c})]}),p.jsxs("label",{style:iu,children:["Maximum:",p.jsx("input",{id:"maxInput",style:{...Ci,..._i,...ki},step:"0.01",type:"number",placeholder:(_=(S=e==null?void 0:e.props)==null?void 0:S.defaultRange)==null?void 0:_.max.toFixed(2),value:Number(u).toFixed(2),onChange:d,onFocus:f})]})]})}function jv({track:e}){const t=E.useContext(qt),[n,r]=E.useState(e.version);E.useEffect(()=>{r(e.version)},[e.version]);const i=s=>{r(s);const c=Object.values(bi).includes(s);t({type:le.UPDATE_TRACK,id:e.id,track:{version:s,assembly:c?"GRCH38":"mm10"}})},a=s=>({backgroundColor:n===s?e.color:"#858585",color:"white",marginRight:"5px",padding:"10px",border:"none",borderRadius:"5px",cursor:"pointer"}),o=e.assembly.toLowerCase()==="grch38";return p.jsx(Wi,{children:p.jsxs("div",{children:[p.jsx("div",{children:o?"Human Assembly Version":"Mouse Assembly Version"}),Object.values(o?bi:go).filter(s=>!isNaN(Number(s))).map((s,c)=>p.jsx("button",{onClick:()=>i(Number(s)),style:a(Number(s)),children:s},c))]})})}function Qi(){return(Qi=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function Sf(e,t){if(e==null)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(i[n]=e[n]);return i}function so(e){var t=E.useRef(e),n=E.useRef(function(r){t.current&&t.current(r)});return t.current=e,n.current}var Pr=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=1),e>n?n:e<t?t:e},_r=function(e){return"touches"in e},co=function(e){return e&&e.ownerDocument.defaultView||self},ou=function(e,t,n){var r=e.getBoundingClientRect(),i=_r(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,n):t;return{left:Pr((i.pageX-(r.left+co(e).pageXOffset))/r.width),top:Pr((i.pageY-(r.top+co(e).pageYOffset))/r.height)}},su=function(e){!_r(e)&&e.preventDefault()},Tf=E.memo(function(e){var t=e.onMove,n=e.onKey,r=Sf(e,["onMove","onKey"]),i=E.useRef(null),a=so(t),o=so(n),s=E.useRef(null),c=E.useRef(!1),u=E.useMemo(function(){var g=function(T){su(T),(_r(T)?T.touches.length>0:T.buttons>0)&&i.current?a(ou(i.current,T,s.current)):w(!1)},x=function(){return w(!1)};function w(T){var S=c.current,_=co(i.current),y=T?_.addEventListener:_.removeEventListener;y(S?"touchmove":"mousemove",g),y(S?"touchend":"mouseup",x)}return[function(T){var S=T.nativeEvent,_=i.current;if(_&&(su(S),!function(C,O){return O&&!_r(C)}(S,c.current)&&_)){if(_r(S)){c.current=!0;var y=S.changedTouches||[];y.length&&(s.current=y[0].identifier)}_.focus(),a(ou(_,S,s.current)),w(!0)}},function(T){var S=T.which||T.keyCode;S<37||S>40||(T.preventDefault(),o({left:S===39?.05:S===37?-.05:0,top:S===40?.05:S===38?-.05:0}))},w]},[o,a]),l=u[0],d=u[1],f=u[2];return E.useEffect(function(){return f},[f]),E.createElement("div",Qi({},r,{onTouchStart:l,onMouseDown:l,className:"react-colorful__interactive",ref:i,onKeyDown:d,tabIndex:0,role:"slider"}))}),Ho=function(e){return e.filter(Boolean).join(" ")},Cf=function(e){var t=e.color,n=e.left,r=e.top,i=r===void 0?.5:r,a=Ho(["react-colorful__pointer",e.className]);return E.createElement("div",{className:a,style:{top:100*i+"%",left:100*n+"%"}},E.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:t}}))},ht=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=Math.pow(10,t)),Math.round(n*e)/n},Pv=function(e){return qv(uo(e))},uo=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?ht(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?ht(parseInt(e.substring(6,8),16)/255,2):1}},Nv=function(e){return Vv(Fv(e))},Av=function(e){var t=e.s,n=e.v,r=e.a,i=(200-t)*n/100;return{h:ht(e.h),s:ht(i>0&&i<200?t*n/100/(i<=100?i:200-i)*100:0),l:ht(i/2),a:ht(r,2)}},lo=function(e){var t=Av(e);return"hsl("+t.h+", "+t.s+"%, "+t.l+"%)"},Fv=function(e){var t=e.h,n=e.s,r=e.v,i=e.a;t=t/360*6,n/=100,r/=100;var a=Math.floor(t),o=r*(1-n),s=r*(1-(t-a)*n),c=r*(1-(1-t+a)*n),u=a%6;return{r:ht(255*[r,s,o,o,c,r][u]),g:ht(255*[c,r,r,s,o,o][u]),b:ht(255*[o,o,c,r,r,s][u]),a:ht(i,2)}},si=function(e){var t=e.toString(16);return t.length<2?"0"+t:t},Vv=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=i<1?si(ht(255*i)):"";return"#"+si(t)+si(n)+si(r)+a},qv=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=Math.max(t,n,r),o=a-Math.min(t,n,r),s=o?a===t?(n-r)/o:a===n?2+(r-t)/o:4+(t-n)/o:0;return{h:ht(60*(s<0?s+6:s)),s:ht(a?o/a*100:0),v:ht(a/255*100),a:i}},$v=E.memo(function(e){var t=e.hue,n=e.onChange,r=Ho(["react-colorful__hue",e.className]);return E.createElement("div",{className:r},E.createElement(Tf,{onMove:function(i){n({h:360*i.left})},onKey:function(i){n({h:Pr(t+360*i.left,0,360)})},"aria-label":"Hue","aria-valuenow":ht(t),"aria-valuemax":"360","aria-valuemin":"0"},E.createElement(Cf,{className:"react-colorful__hue-pointer",left:t/360,color:lo({h:t,s:100,v:100,a:1})})))}),Uv=E.memo(function(e){var t=e.hsva,n=e.onChange,r={backgroundColor:lo({h:t.h,s:100,v:100,a:1})};return E.createElement("div",{className:"react-colorful__saturation",style:r},E.createElement(Tf,{onMove:function(i){n({s:100*i.left,v:100-100*i.top})},onKey:function(i){n({s:Pr(t.s+100*i.left,0,100),v:Pr(t.v-100*i.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+ht(t.s)+"%, Brightness "+ht(t.v)+"%"},E.createElement(Cf,{className:"react-colorful__saturation-pointer",top:1-t.v/100,left:t.s/100,color:lo(t)})))}),_f=function(e,t){if(e===t)return!0;for(var n in e)if(e[n]!==t[n])return!1;return!0},Bv=function(e,t){return e.toLowerCase()===t.toLowerCase()||_f(uo(e),uo(t))};function zv(e,t,n){var r=so(n),i=E.useState(function(){return e.toHsva(t)}),a=i[0],o=i[1],s=E.useRef({color:t,hsva:a});E.useEffect(function(){if(!e.equal(t,s.current.color)){var u=e.toHsva(t);s.current={hsva:u,color:t},o(u)}},[t,e]),E.useEffect(function(){var u;_f(a,s.current.hsva)||e.equal(u=e.fromHsva(a),s.current.color)||(s.current={hsva:a,color:u},r(u))},[a,e,r]);var c=E.useCallback(function(u){o(function(l){return Object.assign({},l,u)})},[]);return[a,c]}var Wv=typeof window<"u"?E.useLayoutEffect:E.useEffect,Qv=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},cu=new Map,Hv=function(e){Wv(function(){var t=e.current?e.current.ownerDocument:document;if(t!==void 0&&!cu.has(t)){var n=t.createElement("style");n.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}`,cu.set(t,n);var r=Qv();r&&n.setAttribute("nonce",r),t.head.appendChild(n)}},[])},Gv=function(e){var t=e.className,n=e.colorModel,r=e.color,i=r===void 0?n.defaultColor:r,a=e.onChange,o=Sf(e,["className","colorModel","color","onChange"]),s=E.useRef(null);Hv(s);var c=zv(n,i,a),u=c[0],l=c[1],d=Ho(["react-colorful",t]);return E.createElement("div",Qi({},o,{ref:s,className:d}),E.createElement(Uv,{hsva:u,onChange:l}),E.createElement($v,{hue:u.h,onChange:l,className:"react-colorful__last-control"}))},Yv={defaultColor:"000",toHsva:Pv,fromHsva:function(e){return Nv({h:e.h,s:e.s,v:e.v,a:1})},equal:Bv},Kv=function(e){return E.createElement(Gv,Qi({},e,{colorModel:Yv}))};function Xv({track:e}){const t=E.useContext(qt),[n,r]=E.useState(e),[i,a]=E.useState(n.color),{value:o,valid:s,onChange:c}=Ti(n.title,n.title,Zv);E.useEffect(()=>{r(e),a(e.color)},[e.id]);const u=l=>{t({type:le.UPDATE_TRACK,id:n.id,track:l})};return E.useEffect(()=>{i!==n.color&&u({color:i}),s&&o!==n.title&&u({title:o})},[i,s,o]),p.jsxs(Wi,{children:[p.jsx("div",{children:"Color: "}),p.jsx(Jv,{color:i||"",onChange:a}),p.jsx("div",{children:"Title: "}),p.jsx("input",{style:{...Ci,..._i,...ki},id:"titleInput",type:"text",value:o,placeholder:n.title,onChange:c})]})}function Jv({color:e,onChange:t}){const[n,r]=E.useState(!1),i={width:"28px",height:"28px",borderRadius:"8px",border:"3px solid #fff",boxShadow:"0 0 0 1px rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.1)",cursor:"pointer",backgroundColor:e},a={position:"absolute",top:"calc(100% + 2px)",left:"0",borderRadius:"9px",boxShadow:"0 6px 12px rgba(0, 0, 0, 0.15)"};return p.jsxs("div",{style:{position:"relative"},children:[p.jsx("div",{style:i,onClick:()=>r(!n)}),n&&p.jsx("div",{style:a,children:p.jsx(Kv,{color:e,onChange:t})})]})}function Zv(e){const t=document.getElementById("titleInput");return t==null?!1:e.length===0?(t.setCustomValidity("Empty input"),t.reportValidity(),!1):!0}function ey(){const{openModal:e,closeModal:t}=E.useContext(yo),[n,r]=E.useState(!1),i=E.useContext(Sn),[a,o]=E.useState(i.tracks.find(l=>l.id===(e==null?void 0:e.trackId))||{});E.useEffect(()=>{o(i.tracks.find(l=>l.id===(e==null?void 0:e.trackId))||{})},[e,i.tracks]);const s=()=>{r(!0)},c=()=>{r(!1)};E.useEffect(()=>{const l=d=>{d.key==="Escape"&&t()};return document.addEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)}},[t]);const u=E.useRef(null);return e?Nr.createPortal(p.jsx("div",{className:"modal",children:p.jsx(yi,{nodeRef:u,handle:".header",onStart:s,onStop:c,children:p.jsxs("div",{ref:u,className:"content",style:{...kv,position:"absolute",top:e==null?void 0:e.mouseY,left:e==null?void 0:e.mouseX,zIndex:1400},children:[p.jsxs("div",{className:"header",style:{backgroundColor:a.color||"transparent",color:uu(a.color||"transparent"),cursor:n?"grabbing":"grab",display:"flex",flexDirection:"row",justifyContent:"flex-start",alignItems:"center"},children:[p.jsx(ty,{handleClose:t,color:uu(a.color||"transparent")}),p.jsx("div",{style:{margin:"10px"},children:p.jsxs("div",{style:{paddingBottom:"0px",fontSize:"1.2em",fontWeight:"bold"},children:["Configure ",a.title]})})]}),p.jsxs("div",{style:{padding:"5px"},children:[p.jsx(Xv,{track:a}),p.jsx(Dv,{track:a}),(()=>{switch(a.trackType){case X.BIGWIG:return p.jsx(Rv,{track:a});case X.TRANSCRIPT:return p.jsx(jv,{track:a});default:return null}})()]})]})})}),document.body):null}function ty({handleClose:e,color:t}){const n="25px";return p.jsx("svg",{style:{color:t,fontSize:n,cursor:"pointer",position:"absolute",top:"5px",right:"5px"},onClick:e,width:n,height:n,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.29289 5.29289C5.68342 4.90237 6.31658 4.90237 6.70711 5.29289L12 10.5858L17.2929 5.29289C17.6834 4.90237 18.3166 4.90237 18.7071 5.29289C19.0976 5.68342 19.0976 6.31658 18.7071 6.70711L13.4142 12L18.7071 17.2929C19.0976 17.6834 19.0976 18.3166 18.7071 18.7071C18.3166 19.0976 17.6834 19.0976 17.2929 18.7071L12 13.4142L6.70711 18.7071C6.31658 19.0976 5.68342 19.0976 5.29289 18.7071C4.90237 18.3166 4.90237 17.6834 5.29289 17.2929L10.5858 12L5.29289 6.70711C4.90237 6.31658 4.90237 5.68342 5.29289 5.29289Z",fill:t})})}function uu(e){if(!e)return"#000000";let t,n,r;const i=e.slice(1);return t=parseInt(i.slice(0,2),16),n=parseInt(i.slice(2,4),16),r=parseInt(i.slice(4,6),16),(.299*t+.587*n+.114*r)/255>.5?"#000000":"#ffffff"}function ny(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 ry=e=>{const t=E.useMemo(()=>{const n=e.domain.end-e.domain.start,r={start:e.domain.start,end:e.domain.end},i=Ct(r,e.width),o=Math.pow(10,Math.floor(Math.log10(Math.ceil(n/10))))*6,s=(Math.ceil(r.end/o)-Math.ceil(r.start/o))*o/2,c={start:r.start+s/2,end:r.end-s/2},u=[];for(let l=Math.ceil(r.start/o);l<Math.ceil(r.end/o);++l)u.push(p.jsxs("g",{children:[p.jsx("line",{x1:i(l*o),x2:i(l*o),y1:e.height*.6,y2:e.height*.9,stroke:"#000",strokeWidth:.5}),l>=Math.ceil(r.start/o)&&p.jsx("text",{style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},textAnchor:"end",fontSize:e.height/4+"px",x:i(l*o)-5,y:e.height*.85,children:l*o})]},"ruler_"+l));return p.jsxs("g",{width:e.width,height:e.height,children:[p.jsx("line",{x1:i(c.start),x2:i(c.start),y1:e.height*.1,y2:e.height*.4,stroke:"#000",strokeWidth:.5}),p.jsx("line",{x1:i(c.end),x2:i(c.end),y1:e.height*.1,y2:e.height*.4,stroke:"#000",strokeWidth:.5}),p.jsx("line",{x1:i(c.start),x2:i(c.end),y1:e.height*.25,y2:e.height*.25,stroke:"#000",strokeWidth:.5}),p.jsx("text",{style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},x:i(c.start)-5,y:e.height*.35,fontSize:e.height/4+"px",textAnchor:"end",children:ny(c.end-c.start)}),u]})},[e.canDrag===!1&&e.domain]);return p.jsx(Mt,{canDrag:!0,children:t})};function iy(e){return p.jsx(tt,{...e,id:"ruler",trackType:X.RULER,children:p.jsx(ry,{...e})})}const ay=e=>{const{x:t,y:n,show:r}=E.useContext(Jt);return p.jsx("g",{transform:`translate(${t}, ${n})`,style:{visibility:r?"visible":"hidden"},children:p.jsx("foreignObject",{width:e.width,height:e.height,style:{overflow:"visible"},children:e.children})})},oy={cursor:"default",fontSize:"12px",padding:"6px 15px 5px 5px"},sy=e=>{var i;const t=E.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]),[n,r]=E.useState(null);return p.jsx("div",{style:{position:"fixed",background:"white",boxShadow:"0px 2px 10px #999999"},children:(i=e.data.displayModeOptions)==null?void 0:i.map(a=>p.jsx("div",{onMouseOver:()=>r(a),onMouseOut:()=>r(null),onClick:()=>t(a),style:{backgroundColor:e.data.displayMode===a?"#d0d0d0":a===n?"#f0f0f0":"white",...oy},children:e.data.displayMode===a?p.jsx("li",{children:a}):a},a))})};function cy(e,t){switch(t.type){case"tooltipChanged":return{...e,tooltip:t.tooltip};case"contextMenuChanged":return{...e,contextmenu:t.contextmenu};default:return e}}function uy({children:e,onModeChange:t}){const[n,r]=E.useReducer(cy,{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=E.useCallback(o=>{r({type:"tooltipChanged",tooltip:o})},[r]),a=E.useCallback(o=>{r({type:"contextMenuChanged",contextmenu:o})},[r]);return p.jsx(Jt.Provider,{value:{...n.tooltip,setTooltip:i},children:p.jsxs(xo.Provider,{value:{...n.contextmenu,setContextMenu:a},children:[e,p.jsx(ay,{width:n.tooltip.width,height:n.tooltip.height,children:p.jsx("div",{style:{position:"fixed"},children:n.tooltip.content})}),p.jsx(Rd,{width:80,height:150,children:p.jsx(sy,{data:n.contextmenu,onModeChange:t,setContextMenu:a})})]})})}const ly=e=>{const[t,n]=E.useState([0,0]),[r,i]=E.useState(!1),a=E.useCallback((u,l)=>{const d=l.createSVGPoint();d.x=u.clientX,d.y=u.clientY;const f=l.getScreenCTM();return f?d.matrixTransform(f.inverse()):null},[]),o=E.useCallback(u=>{const l=document.getElementById("browserSVG");if(!(l instanceof SVGSVGElement))return;const d=a(u,l);if(!d)return;const f=d.x;n([f,f]),i(!0)},[a]),s=E.useCallback(u=>{if(!r)return;const l=document.getElementById("browserSVG");if(!(l instanceof SVGSVGElement))return;const d=a(u,l);if(!d)return;let f=d.x;f<e.leftMargin&&(f=e.leftMargin),f>e.width&&(f=e.width),n(g=>[g[0],f])},[r,e.width,e.leftMargin,a]),c=E.useCallback(u=>{if(!r||(i(!1),t[1]-t[0]<10))return;u.preventDefault();const l=e.domain.end-e.domain.start,d=e.width-e.leftMargin,f=(Math.min(t[0],t[1])-e.leftMargin)/d,g=(Math.max(t[0],t[1])-e.leftMargin)/d,x={chromosome:e.domain.chromosome,start:Math.floor(e.domain.start+f*l),end:Math.floor(e.domain.start+g*l)};n([0,0]),e.onSelectionEnd(x)},[t]);return E.useEffect(()=>(document.addEventListener("mousemove",s),document.addEventListener("mouseup",c),()=>{document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",c)}),[s,c]),p.jsxs(p.Fragment,{children:[r?Nr.createPortal(p.jsx("rect",{id:"selectRegion",fill:"#6666aaaa",stroke:"#000000",strokeWidth:.5,strokeDasharray:"5 5",x:Math.min(t[0],t[1]),y:0,width:Math.abs(t[1]-t[0]),height:e.height}),document.getElementById("browserSVG")):null,p.jsx("rect",{fill:"#ffffff",width:e.width-e.leftMargin,height:e.dragRegionHeight,x:e.leftMargin,y:0,onMouseDown:o})]})};function fy({width:e,innerWidth:t,height:n,svgRef:r,children:i}){return p.jsx("svg",{id:"browserSVG",width:e,viewBox:`0 0 ${t} ${n}`,ref:r,children:i})}function hy({children:e,browserState:t,rulerHeight:n}){const[r,i]=E.useState([]);return E.useEffect(()=>{let a=n;const o=t.tracks.map(s=>{const c=a;return a+=s.actualHeight??s.height??0,c});i(o)},[t.tracks]),p.jsx(p.Fragment,{children:r.length>0&&E.Children.map(e,(a,o)=>{const s=a.props,c=r[o];return p.jsx("g",{id:`stacked-track-${s.track.id}`,transform:typeof c=="number"?`translate(0, ${c})`:void 0,children:a},o)})})}const lu=_t`
198
+ `,Ef={titleSize:12,ldThreshold:.7,displayMode:Fe.FULL,canDrag:!0};function wf(e){var c,u,l;const t=E.useContext(qt),n={...e,trackType:X.LDTRACK,displayMode:e.displayMode},r=Ev(Xs),i=gf(_t(r),{variables:{assembly:"GRCh38",snpids:[e.anchor]}}),a=d=>{t({type:le.UPDATE_PROPS,id:e.id||"",props:{anchor:d.id}})};let o=[];if(i.data){if(i.data.snpQuery.length===0)return;o=Xs.map(d=>{var f;return{ld:((f=i.data)==null?void 0:f.snpQuery[0][`${d.population}_${d.subpopulation||""}_ld`])||[]}})}const s={snps:((c=e.data)==null?void 0:c.snps)||[],ld:o&&((u=o[0])==null?void 0:u.ld)||((l=e.data)==null?void 0:l.ld)||[]};switch(e.displayMode){case Fe.FULL:return p.jsx(tt,{...n,loading:s.snps.length===0,trackType:X.LDTRACK,displayMode:e.displayMode,children:p.jsx(D0,{...e,onVariantMouseOver:d=>{a(d),e.onVariantMouseOver&&e.onVariantMouseOver(d)},data:s})});default:return console.warn(`Display mode "${e.displayMode}" not supported on BigWig`),p.jsx(tt,{...n,children:p.jsx(Xn,{...e,error:!0,text:`Error: Unsupported display mode "${e.displayMode}"`})})}}const wv=e=>{const t=e.width<1e3?e.width/8:150,n={...e,height:0,marginSize:t,menuHeight:0,preRenderedWidth:e.width-t,zoomLevel:1,delta:0,highlights:e.highlights||[],tracks:e.tracks||[]};return E.useReducer(Td,n)};var nu=Object.prototype.hasOwnProperty;function ru(e,t,n){for(n of e.keys())if(Cr(n,t))return n}function Cr(e,t){var n,r,i;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&Cr(e[r],t[r]););return r===-1}if(n===Set){if(e.size!==t.size)return!1;for(r of e)if(i=r,i&&typeof i=="object"&&(i=ru(t,i),!i)||!t.has(i))return!1;return!0}if(n===Map){if(e.size!==t.size)return!1;for(r of e)if(i=r[0],i&&typeof i=="object"&&(i=ru(t,i),!i)||!Cr(r[1],t.get(i)))return!1;return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((r=e.byteLength)===t.byteLength)for(;r--&&e.getInt8(r)===t.getInt8(r););return r===-1}if(ArrayBuffer.isView(e)){if((r=e.byteLength)===t.byteLength)for(;r--&&e[r]===t[r];);return r===-1}if(!n||typeof e=="object"){r=0;for(n in e)if(nu.call(e,n)&&++r&&!nu.call(t,n)||!(n in t)||!Cr(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}function Ov(e){if(!e||!e.length)throw new Error("useDeepCompareEffect should not be used with no dependencies. Use React.useEffect instead.");if(e.every(Sv))throw new Error("useDeepCompareEffect should not be used with dependencies that are all primitive values. Use React.useEffect instead.")}function Sv(e){return e==null||/^[sbn]/.test(typeof e)}function Tv(e){var t=ci.useRef(e),n=ci.useRef(0);return Cr(e,t.current)||(t.current=e,n.current+=1),ci.useMemo(function(){return t.current},[n.current])}function Cv(e,t){return process.env.NODE_ENV!=="production"&&Ov(t),ci.useEffect(e,Tv(t))}function _v(){const[e,t]=E.useState(null);return{openModal:e,showModal:(i,a,o)=>{t({trackId:i,mouseX:a,mouseY:o})},closeModal:()=>{t(null)}}}function Ti(e,t,n){const[r,i]=E.useState(e),[a,o]=E.useState(n(t)),[s,c]=E.useState(null);return{value:r,valid:a,onChange:l=>{const d=l.target.value,f=d===""?2e3:750;i(d),o(!1),s&&clearTimeout(s);const g=setTimeout(()=>{n(d)||i(t),o(!0)},f);c(g)}}}function Wi({children:e}){return p.jsx("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",paddingBlock:"5px"},children:e})}const kv={position:"fixed",top:"0%",left:"0%",boxShadow:"0 0 10px rgba(0, 0, 0, 0.3)",width:"500px",transform:"translate(-50%, -50%)",background:"#ffffff"},Ci={width:"auto",outline:"#ffffff",border:"1px solid #000000",borderRadius:"2px",paddingRight:"5px"},iu={display:"flex",flexDirection:"column",paddingInline:"5px"},_i={WebkitAppearance:"none",margin:"0"},ki={MozAppearance:"textfield",appearance:"textfield"};function au(e){switch(e.trackType){case X.BIGWIG:return e.actualHeight;case X.BIGBED:case X.TRANSCRIPT:return e.rowHeight;default:return e.height}}function Dv({track:e}){const t=E.useContext(Sn),n=E.useContext(qt),[r,i]=E.useState(t.tracks.find(l=>l.id===e.id)||e),[a,o]=E.useState(au(r));E.useEffect(()=>{i(t.tracks.find(l=>l.id===e.id)||e),o(au(r))},[e]);const{value:s,valid:c,onChange:u}=Ti((a==null?void 0:a.toString())||"",(a==null?void 0:a.toString())||"",r.trackType===X.BIGWIG?Mv:Lv);return E.useEffect(()=>{c&&(r.trackType===X.BIGWIG?n({type:le.UPDATE_TRACK,id:r.id,track:{height:parseInt(s)}}):(r.trackType===X.BIGBED||r.trackType===X.TRANSCRIPT)&&n({type:le.UPDATE_TRACK,id:r.id,track:{rowHeight:parseInt(s)}}))},[s,c]),p.jsxs(Wi,{children:[r.trackType===X.BIGWIG?"Height: ":"Row Height: ",p.jsx("input",{id:"heightInput",style:{...Ci,..._i,...ki},type:"number",placeholder:(a==null?void 0:a.toString())||"",value:s,onChange:u})]})}function Of(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 Mv(e){if(!Of(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 Lv(e){if(!Of(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 Iv=(e,t,n)=>{if(!n)return!1;const r=document.querySelector('input[id="minInput"]'),i=document.querySelector('input[id="maxInput"]');return!r||!i?!0:e>t?(r.setCustomValidity("Minimum value cannot be greater than maximum value."),r.reportValidity(),!0):e==t?(i.setCustomValidity("Values are equal. Please enter different values."),i.reportValidity(),!0):e<n.min?(r.setCustomValidity("Minimum value cannot be less than the default minimum value."),r.reportValidity(),!0):t>n.max?(i.setCustomValidity("Maximum value cannot be greater than the default maximum value."),i.reportValidity(),!0):!1};function Rv({track:e}){var g,x,w,T,S,_;const t=E.useContext(qt),[n]=E.useState(((g=e.props)==null?void 0:g.defaultRange)||{min:0,max:0}),[r]=E.useState(((x=e.props)==null?void 0:x.range)||n),i=y=>{const C=document.getElementById("minInput");return C?y.length===0||isNaN(parseFloat(y))?(C.setCustomValidity("Empty input, using default value"),C.reportValidity(),!1):parseFloat(y)<n.min?(C.setCustomValidity("Value must be greater than or equal to "+n.min),C.reportValidity(),!1):(C.setCustomValidity(""),!0):!0},a=y=>{const C=document.getElementById("maxInput");return C?y.length===0||isNaN(parseFloat(y))?(C.setCustomValidity("Empty input, using default value"),C.reportValidity(),!1):parseFloat(y)>n.max?(C.setCustomValidity("Value must be less than or equal to "+n.max),C.reportValidity(),!1):(C.setCustomValidity(""),!0):!0},{value:o,valid:s,onChange:c}=Ti(r.min.toString(),n.min.toString(),i),{value:u,valid:l,onChange:d}=Ti(r.max.toString(),n.max.toString(),a),f=y=>{y.target.select()};return E.useEffect(()=>{!s||!l||Iv(parseFloat(o),parseFloat(u),n)||t({type:le.UPDATE_PROPS,id:e.id,props:{range:{min:parseFloat(o),max:parseFloat(u)}}})},[s,l,o,u]),p.jsxs(Wi,{children:[p.jsxs("label",{style:iu,children:["Minimum:",p.jsx("input",{id:"minInput",style:{...Ci,..._i,...ki},step:"0.01",type:"number",placeholder:(T=(w=e==null?void 0:e.props)==null?void 0:w.defaultRange)==null?void 0:T.min.toFixed(2),value:Number(o).toFixed(2),onFocus:f,onChange:c})]}),p.jsxs("label",{style:iu,children:["Maximum:",p.jsx("input",{id:"maxInput",style:{...Ci,..._i,...ki},step:"0.01",type:"number",placeholder:(_=(S=e==null?void 0:e.props)==null?void 0:S.defaultRange)==null?void 0:_.max.toFixed(2),value:Number(u).toFixed(2),onChange:d,onFocus:f})]})]})}function jv({track:e}){const t=E.useContext(qt),[n,r]=E.useState(e.version);E.useEffect(()=>{r(e.version)},[e.version]);const i=s=>{r(s);const c=Object.values(bi).includes(s);t({type:le.UPDATE_TRACK,id:e.id,track:{version:s,assembly:c?"GRCH38":"mm10"}})},a=s=>({backgroundColor:n===s?e.color:"#858585",color:"white",marginRight:"5px",padding:"10px",border:"none",borderRadius:"5px",cursor:"pointer"}),o=e.assembly.toLowerCase()==="grch38";return p.jsx(Wi,{children:p.jsxs("div",{children:[p.jsx("div",{children:o?"Human Assembly Version":"Mouse Assembly Version"}),Object.values(o?bi:go).filter(s=>!isNaN(Number(s))).map((s,c)=>p.jsx("button",{onClick:()=>i(Number(s)),style:a(Number(s)),children:s},c))]})})}function Qi(){return(Qi=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function Sf(e,t){if(e==null)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(i[n]=e[n]);return i}function so(e){var t=E.useRef(e),n=E.useRef(function(r){t.current&&t.current(r)});return t.current=e,n.current}var Pr=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=1),e>n?n:e<t?t:e},_r=function(e){return"touches"in e},co=function(e){return e&&e.ownerDocument.defaultView||self},ou=function(e,t,n){var r=e.getBoundingClientRect(),i=_r(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,n):t;return{left:Pr((i.pageX-(r.left+co(e).pageXOffset))/r.width),top:Pr((i.pageY-(r.top+co(e).pageYOffset))/r.height)}},su=function(e){!_r(e)&&e.preventDefault()},Tf=E.memo(function(e){var t=e.onMove,n=e.onKey,r=Sf(e,["onMove","onKey"]),i=E.useRef(null),a=so(t),o=so(n),s=E.useRef(null),c=E.useRef(!1),u=E.useMemo(function(){var g=function(T){su(T),(_r(T)?T.touches.length>0:T.buttons>0)&&i.current?a(ou(i.current,T,s.current)):w(!1)},x=function(){return w(!1)};function w(T){var S=c.current,_=co(i.current),y=T?_.addEventListener:_.removeEventListener;y(S?"touchmove":"mousemove",g),y(S?"touchend":"mouseup",x)}return[function(T){var S=T.nativeEvent,_=i.current;if(_&&(su(S),!function(C,O){return O&&!_r(C)}(S,c.current)&&_)){if(_r(S)){c.current=!0;var y=S.changedTouches||[];y.length&&(s.current=y[0].identifier)}_.focus(),a(ou(_,S,s.current)),w(!0)}},function(T){var S=T.which||T.keyCode;S<37||S>40||(T.preventDefault(),o({left:S===39?.05:S===37?-.05:0,top:S===40?.05:S===38?-.05:0}))},w]},[o,a]),l=u[0],d=u[1],f=u[2];return E.useEffect(function(){return f},[f]),E.createElement("div",Qi({},r,{onTouchStart:l,onMouseDown:l,className:"react-colorful__interactive",ref:i,onKeyDown:d,tabIndex:0,role:"slider"}))}),Ho=function(e){return e.filter(Boolean).join(" ")},Cf=function(e){var t=e.color,n=e.left,r=e.top,i=r===void 0?.5:r,a=Ho(["react-colorful__pointer",e.className]);return E.createElement("div",{className:a,style:{top:100*i+"%",left:100*n+"%"}},E.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:t}}))},ht=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=Math.pow(10,t)),Math.round(n*e)/n},Pv=function(e){return qv(uo(e))},uo=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?ht(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?ht(parseInt(e.substring(6,8),16)/255,2):1}},Nv=function(e){return Vv(Fv(e))},Av=function(e){var t=e.s,n=e.v,r=e.a,i=(200-t)*n/100;return{h:ht(e.h),s:ht(i>0&&i<200?t*n/100/(i<=100?i:200-i)*100:0),l:ht(i/2),a:ht(r,2)}},lo=function(e){var t=Av(e);return"hsl("+t.h+", "+t.s+"%, "+t.l+"%)"},Fv=function(e){var t=e.h,n=e.s,r=e.v,i=e.a;t=t/360*6,n/=100,r/=100;var a=Math.floor(t),o=r*(1-n),s=r*(1-(t-a)*n),c=r*(1-(1-t+a)*n),u=a%6;return{r:ht(255*[r,s,o,o,c,r][u]),g:ht(255*[c,r,r,s,o,o][u]),b:ht(255*[o,o,c,r,r,s][u]),a:ht(i,2)}},si=function(e){var t=e.toString(16);return t.length<2?"0"+t:t},Vv=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=i<1?si(ht(255*i)):"";return"#"+si(t)+si(n)+si(r)+a},qv=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=Math.max(t,n,r),o=a-Math.min(t,n,r),s=o?a===t?(n-r)/o:a===n?2+(r-t)/o:4+(t-n)/o:0;return{h:ht(60*(s<0?s+6:s)),s:ht(a?o/a*100:0),v:ht(a/255*100),a:i}},$v=E.memo(function(e){var t=e.hue,n=e.onChange,r=Ho(["react-colorful__hue",e.className]);return E.createElement("div",{className:r},E.createElement(Tf,{onMove:function(i){n({h:360*i.left})},onKey:function(i){n({h:Pr(t+360*i.left,0,360)})},"aria-label":"Hue","aria-valuenow":ht(t),"aria-valuemax":"360","aria-valuemin":"0"},E.createElement(Cf,{className:"react-colorful__hue-pointer",left:t/360,color:lo({h:t,s:100,v:100,a:1})})))}),Uv=E.memo(function(e){var t=e.hsva,n=e.onChange,r={backgroundColor:lo({h:t.h,s:100,v:100,a:1})};return E.createElement("div",{className:"react-colorful__saturation",style:r},E.createElement(Tf,{onMove:function(i){n({s:100*i.left,v:100-100*i.top})},onKey:function(i){n({s:Pr(t.s+100*i.left,0,100),v:Pr(t.v-100*i.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+ht(t.s)+"%, Brightness "+ht(t.v)+"%"},E.createElement(Cf,{className:"react-colorful__saturation-pointer",top:1-t.v/100,left:t.s/100,color:lo(t)})))}),_f=function(e,t){if(e===t)return!0;for(var n in e)if(e[n]!==t[n])return!1;return!0},Bv=function(e,t){return e.toLowerCase()===t.toLowerCase()||_f(uo(e),uo(t))};function zv(e,t,n){var r=so(n),i=E.useState(function(){return e.toHsva(t)}),a=i[0],o=i[1],s=E.useRef({color:t,hsva:a});E.useEffect(function(){if(!e.equal(t,s.current.color)){var u=e.toHsva(t);s.current={hsva:u,color:t},o(u)}},[t,e]),E.useEffect(function(){var u;_f(a,s.current.hsva)||e.equal(u=e.fromHsva(a),s.current.color)||(s.current={hsva:a,color:u},r(u))},[a,e,r]);var c=E.useCallback(function(u){o(function(l){return Object.assign({},l,u)})},[]);return[a,c]}var Wv=typeof window<"u"?E.useLayoutEffect:E.useEffect,Qv=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},cu=new Map,Hv=function(e){Wv(function(){var t=e.current?e.current.ownerDocument:document;if(t!==void 0&&!cu.has(t)){var n=t.createElement("style");n.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}`,cu.set(t,n);var r=Qv();r&&n.setAttribute("nonce",r),t.head.appendChild(n)}},[])},Gv=function(e){var t=e.className,n=e.colorModel,r=e.color,i=r===void 0?n.defaultColor:r,a=e.onChange,o=Sf(e,["className","colorModel","color","onChange"]),s=E.useRef(null);Hv(s);var c=zv(n,i,a),u=c[0],l=c[1],d=Ho(["react-colorful",t]);return E.createElement("div",Qi({},o,{ref:s,className:d}),E.createElement(Uv,{hsva:u,onChange:l}),E.createElement($v,{hue:u.h,onChange:l,className:"react-colorful__last-control"}))},Yv={defaultColor:"000",toHsva:Pv,fromHsva:function(e){return Nv({h:e.h,s:e.s,v:e.v,a:1})},equal:Bv},Kv=function(e){return E.createElement(Gv,Qi({},e,{colorModel:Yv}))};function Xv({track:e}){const t=E.useContext(qt),[n,r]=E.useState(e),[i,a]=E.useState(n.color),{value:o,valid:s,onChange:c}=Ti(n.title,n.title,Zv);E.useEffect(()=>{r(e),a(e.color)},[e.id]);const u=l=>{t({type:le.UPDATE_TRACK,id:n.id,track:l})};return E.useEffect(()=>{i!==n.color&&u({color:i}),s&&o!==n.title&&u({title:o})},[i,s,o]),p.jsxs(Wi,{children:[p.jsx("div",{children:"Color: "}),p.jsx(Jv,{color:i||"",onChange:a}),p.jsx("div",{children:"Title: "}),p.jsx("input",{style:{...Ci,..._i,...ki},id:"titleInput",type:"text",value:o,placeholder:n.title,onChange:c})]})}function Jv({color:e,onChange:t}){const[n,r]=E.useState(!1),i={width:"28px",height:"28px",borderRadius:"8px",border:"3px solid #fff",boxShadow:"0 0 0 1px rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.1)",cursor:"pointer",backgroundColor:e},a={position:"absolute",top:"calc(100% + 2px)",left:"0",borderRadius:"9px",boxShadow:"0 6px 12px rgba(0, 0, 0, 0.15)"};return p.jsxs("div",{style:{position:"relative"},children:[p.jsx("div",{style:i,onClick:()=>r(!n)}),n&&p.jsx("div",{style:a,children:p.jsx(Kv,{color:e,onChange:t})})]})}function Zv(e){const t=document.getElementById("titleInput");return t==null?!1:e.length===0?(t.setCustomValidity("Empty input"),t.reportValidity(),!1):!0}function ey(){const{openModal:e,closeModal:t}=E.useContext(yo),[n,r]=E.useState(!1),i=E.useContext(Sn),[a,o]=E.useState(i.tracks.find(l=>l.id===(e==null?void 0:e.trackId))||{});E.useEffect(()=>{o(i.tracks.find(l=>l.id===(e==null?void 0:e.trackId))||{})},[e,i.tracks]);const s=()=>{r(!0)},c=()=>{r(!1)};E.useEffect(()=>{const l=d=>{d.key==="Escape"&&t()};return document.addEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)}},[t]);const u=E.useRef(null);return e?Nr.createPortal(p.jsx("div",{className:"modal",children:p.jsx(yi,{nodeRef:u,handle:".header",onStart:s,onStop:c,children:p.jsxs("div",{ref:u,className:"content",style:{...kv,position:"absolute",top:e==null?void 0:e.mouseY,left:e==null?void 0:e.mouseX,zIndex:1400},children:[p.jsxs("div",{className:"header",style:{backgroundColor:a.color||"transparent",color:uu(a.color||"transparent"),cursor:n?"grabbing":"grab",display:"flex",flexDirection:"row",justifyContent:"flex-start",alignItems:"center"},children:[p.jsx(ty,{handleClose:t,color:uu(a.color||"transparent")}),p.jsx("div",{style:{margin:"10px"},children:p.jsxs("div",{style:{paddingBottom:"0px",fontSize:"1.2em",fontWeight:"bold"},children:["Configure ",a.title]})})]}),p.jsxs("div",{style:{padding:"5px"},children:[p.jsx(Xv,{track:a}),p.jsx(Dv,{track:a}),(()=>{switch(a.trackType){case X.BIGWIG:return p.jsx(Rv,{track:a});case X.TRANSCRIPT:return p.jsx(jv,{track:a});default:return null}})()]})]})})}),document.body):null}function ty({handleClose:e,color:t}){const n="25px";return p.jsx("svg",{style:{color:t,fontSize:n,cursor:"pointer",position:"absolute",top:"5px",right:"5px"},onClick:e,width:n,height:n,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.29289 5.29289C5.68342 4.90237 6.31658 4.90237 6.70711 5.29289L12 10.5858L17.2929 5.29289C17.6834 4.90237 18.3166 4.90237 18.7071 5.29289C19.0976 5.68342 19.0976 6.31658 18.7071 6.70711L13.4142 12L18.7071 17.2929C19.0976 17.6834 19.0976 18.3166 18.7071 18.7071C18.3166 19.0976 17.6834 19.0976 17.2929 18.7071L12 13.4142L6.70711 18.7071C6.31658 19.0976 5.68342 19.0976 5.29289 18.7071C4.90237 18.3166 4.90237 17.6834 5.29289 17.2929L10.5858 12L5.29289 6.70711C4.90237 6.31658 4.90237 5.68342 5.29289 5.29289Z",fill:t})})}function uu(e){if(!e)return"#000000";let t,n,r;const i=e.slice(1);return t=parseInt(i.slice(0,2),16),n=parseInt(i.slice(2,4),16),r=parseInt(i.slice(4,6),16),(.299*t+.587*n+.114*r)/255>.5?"#000000":"#ffffff"}function ny(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 ry=e=>{const t=E.useMemo(()=>{const n=e.domain.end-e.domain.start,r={start:e.domain.start,end:e.domain.end},i=Ct(r,e.width),o=Math.pow(10,Math.floor(Math.log10(Math.ceil(n/10))))*6,s=(Math.ceil(r.end/o)-Math.ceil(r.start/o))*o/2,c={start:r.start+s/2,end:r.end-s/2},u=[];for(let l=Math.ceil(r.start/o);l<Math.ceil(r.end/o);++l)u.push(p.jsxs("g",{children:[p.jsx("line",{x1:i(l*o),x2:i(l*o),y1:e.height*.6,y2:e.height*.9,stroke:"#000",strokeWidth:.5}),l>=Math.ceil(r.start/o)&&p.jsx("text",{style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},textAnchor:"end",fontSize:e.height/4+"px",x:i(l*o)-5,y:e.height*.85,children:l*o})]},"ruler_"+l));return p.jsxs("g",{width:e.width,height:e.height,children:[p.jsx("line",{x1:i(c.start),x2:i(c.start),y1:e.height*.1,y2:e.height*.4,stroke:"#000",strokeWidth:.5}),p.jsx("line",{x1:i(c.end),x2:i(c.end),y1:e.height*.1,y2:e.height*.4,stroke:"#000",strokeWidth:.5}),p.jsx("line",{x1:i(c.start),x2:i(c.end),y1:e.height*.25,y2:e.height*.25,stroke:"#000",strokeWidth:.5}),p.jsx("text",{style:{pointerEvents:"none",WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},x:i(c.start)-5,y:e.height*.35,fontSize:e.height/4+"px",textAnchor:"end",children:ny(c.end-c.start)}),u]})},[e.canDrag===!1&&e.domain]);return p.jsx(Mt,{canDrag:!0,children:t})};function iy(e){return p.jsx(tt,{...e,id:"ruler",trackType:X.RULER,children:p.jsx(ry,{...e})})}const ay=e=>{const{x:t,y:n,show:r}=E.useContext(Jt);return p.jsx("g",{transform:`translate(${t}, ${n})`,style:{visibility:r?"visible":"hidden"},children:p.jsx("foreignObject",{width:e.width,height:e.height,style:{overflow:"visible"},children:e.children})})},oy={cursor:"default",fontSize:"12px",padding:"6px 15px 5px 5px"},sy=e=>{var i;const t=E.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]),[n,r]=E.useState(null);return p.jsx("div",{style:{position:"fixed",background:"white",boxShadow:"0px 2px 10px #999999"},children:(i=e.data.displayModeOptions)==null?void 0:i.map(a=>p.jsx("div",{onMouseOver:()=>r(a),onMouseOut:()=>r(null),onClick:()=>t(a),style:{backgroundColor:e.data.displayMode===a?"#d0d0d0":a===n?"#f0f0f0":"white",...oy},children:e.data.displayMode===a?p.jsx("li",{children:a}):a},a))})};function cy(e,t){switch(t.type){case"tooltipChanged":return{...e,tooltip:t.tooltip};case"contextMenuChanged":return{...e,contextmenu:t.contextmenu};default:return e}}function uy({children:e,onModeChange:t}){const[n,r]=E.useReducer(cy,{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=E.useCallback(o=>{r({type:"tooltipChanged",tooltip:o})},[r]),a=E.useCallback(o=>{r({type:"contextMenuChanged",contextmenu:o})},[r]);return p.jsx(Jt.Provider,{value:{...n.tooltip,setTooltip:i},children:p.jsxs(xo.Provider,{value:{...n.contextmenu,setContextMenu:a},children:[e,p.jsx(ay,{width:n.tooltip.width,height:n.tooltip.height,children:p.jsx("div",{style:{position:"fixed"},children:n.tooltip.content})}),p.jsx(Rd,{width:80,height:150,children:p.jsx(sy,{data:n.contextmenu,onModeChange:t,setContextMenu:a})})]})})}const ly=e=>{const[t,n]=E.useState([0,0]),[r,i]=E.useState(!1),a=E.useCallback((u,l)=>{const d=l.createSVGPoint();d.x=u.clientX,d.y=u.clientY;const f=l.getScreenCTM();return f?d.matrixTransform(f.inverse()):null},[]),o=E.useCallback(u=>{const l=document.getElementById("browserSVG");if(!(l instanceof SVGSVGElement))return;const d=a(u,l);if(!d)return;const f=d.x;n([f,f]),i(!0)},[a]),s=E.useCallback(u=>{if(!r)return;const l=document.getElementById("browserSVG");if(!(l instanceof SVGSVGElement))return;const d=a(u,l);if(!d)return;let f=d.x;f<e.leftMargin&&(f=e.leftMargin),f>e.width&&(f=e.width),n(g=>[g[0],f])},[r,e.width,e.leftMargin,a]),c=E.useCallback(u=>{if(!r||(i(!1),t[1]-t[0]<10))return;u.preventDefault();const l=e.domain.end-e.domain.start,d=e.width-e.leftMargin,f=(Math.min(t[0],t[1])-e.leftMargin)/d,g=(Math.max(t[0],t[1])-e.leftMargin)/d,x={chromosome:e.domain.chromosome,start:Math.floor(e.domain.start+f*l),end:Math.floor(e.domain.start+g*l)};n([0,0]),e.onSelectionEnd(x)},[t]);return E.useEffect(()=>(document.addEventListener("mousemove",s),document.addEventListener("mouseup",c),()=>{document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",c)}),[s,c]),p.jsxs(p.Fragment,{children:[r?Nr.createPortal(p.jsx("rect",{id:"selectRegion",fill:"#6666aaaa",stroke:"#000000",strokeWidth:.5,strokeDasharray:"5 5",x:Math.min(t[0],t[1]),y:0,width:Math.abs(t[1]-t[0]),height:e.height}),document.getElementById("browserSVG")):null,p.jsx("rect",{fill:"#ffffff",width:e.width-e.leftMargin,height:e.dragRegionHeight,x:e.leftMargin,y:0,onMouseDown:o})]})};function fy({width:e,innerWidth:t,height:n,svgRef:r,children:i}){return p.jsx("svg",{id:"browserSVG",width:e,viewBox:`0 0 ${t} ${n}`,ref:r,children:i})}function hy({children:e,browserState:t,rulerHeight:n}){const[r,i]=E.useState([]);return E.useEffect(()=>{let a=n;const o=t.tracks.map(s=>{const c=a;return a+=s.actualHeight??s.height??0,c});i(o)},[t.tracks]),p.jsx(p.Fragment,{children:r.length>0&&E.Children.map(e,(a,o)=>{const s=a.props,c=r[o];return p.jsx("g",{id:`stacked-track-${s.track.id}`,transform:typeof c=="number"?`translate(0, ${c})`:void 0,children:a},o)})})}const lu=_t`
199
199
  query BigRequests($bigRequests: [BigRequest!]!) {
200
200
  bigRequests(requests: $bigRequests) {
201
201
  data
@@ -308,7 +308,7 @@ query Gene($chromosome: String, $assembly: String!, $start: Int, $end: Int, $ver
308
308
  }
309
309
  }
310
310
  }
311
- `;function my({browserState:e,browserDispatch:t}){const[n,r]=E.useState(),[i,a]=E.useState(),[o,s]=E.useState(),[c,u]=E.useState(),[l,d]=E.useState(),[f,{data:g,loading:x,error:w}]=xr(lu),[T,{data:S,loading:_,error:y}]=xr(dy),[C,{data:O,loading:R,error:P}]=xr(py),[F,{data:U,loading:V,error:ye}]=xr(lu),[_e,{data:ve,loading:we,error:Ne}]=xr(_t(xv)),{setDelta:Ie}=E.useContext(vo);return E.useEffect(()=>{r(e.tracks.filter(A=>A.trackType===X.BIGWIG||A.trackType===X.BIGBED).map(A=>({url:A.url||"",chr1:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end,preRenderedWidth:e.preRenderedWidth,zoomLevel:e.zoomLevel})));const G=e.tracks.find(A=>A.trackType===X.TRANSCRIPT);G?(t({type:le.UPDATE_TRACK,id:G.id,track:{refetch:C}}),a({chromosome:e.domain.chromosome||"chr11",assembly:G.assembly,start:e.domain.start,end:e.domain.end,version:G.version})):a(void 0);const $=e.tracks.find(A=>A.trackType===X.MOTIF);$&&s({range:{chromosome:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end},prange:{chrom:e.domain.chromosome||"chr11",chrom_start:e.domain.start,chrom_end:e.domain.end},assembly:$.assembly,consensus_regex:$.consensusRegex,peaks_accession:$.peaksAccession});const Z=e.tracks.find(A=>A.trackType===X.IMPORTANCE);if(Z){const A=[];A.push({url:Z.url||"",chr1:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end}),A.push({url:Z.signalURL,chr1:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end}),u(A)}const j=e.tracks.find(A=>A.trackType===X.LDTRACK);j&&d({assembly:j.assembly,coordinates:{chromosome:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end}})},[e.tracks.length,e.domain,e.preRenderedWidth,e.zoomLevel]),E.useEffect(()=>{n&&f({variables:{bigRequests:n}})},[n]),E.useEffect(()=>{i&&C({variables:i})},[i]),E.useEffect(()=>{o&&T({variables:o})},[o]),E.useEffect(()=>{c&&F({variables:{bigRequests:c}})},[c]),E.useEffect(()=>{l&&_e({variables:l})},[l]),E.useEffect(()=>{if(x||R||_||V||we)return;let G=0;e.tracks.forEach($=>{if($.trackType===X.BIGWIG||$.trackType===X.BIGBED)w?t({type:le.UPDATE_TRACK,id:$.id,track:{error:w.message||""}}):g&&t({type:le.UPDATE_TRACK,id:$.id,track:{data:g.bigRequests[G++].data}});else if($.trackType===X.TRANSCRIPT)P?t({type:le.UPDATE_TRACK,id:$.id,track:{error:P.message||""}}):O&&t({type:le.UPDATE_TRACK,id:$.id,track:{data:O.gene}});else if($.trackType===X.MOTIF){if(y)t({type:le.UPDATE_TRACK,id:$.id,track:{error:y.message||""}});else if(S){const Z=S.peaks.peaks.map(A=>({start:A.chrom_start,end:A.chrom_end})),j=S.meme_occurrences.map(A=>({start:A.genomic_region.start,end:A.genomic_region.end,pwm:A.motif.pwm}));t({type:le.UPDATE_TRACK,id:$.id,track:{data:j,peaks:Z}})}}else if($.trackType===X.IMPORTANCE){if(ye)t({type:le.UPDATE_TRACK,id:$.id,track:{error:ye.message||""}});else if(U){const Z=U.bigRequests[0].data[0],j=U.bigRequests[1].data.map(Y=>Y.value),A={sequence:Z,importance:j};t({type:le.UPDATE_TRACK,id:$.id,track:{data:A}})}}else if($.trackType===X.LDTRACK){if(Ne)t({type:le.UPDATE_TRACK,id:$.id,track:{error:Ne.message||""}});else if(ve){const Z=ve.snpQuery.filter(j=>j.coordinates).map(j=>({...j,domain:j.coordinates}));t({type:le.UPDATE_TRACK,id:$.id,track:{data:{snps:Z,ld:[]}}})}}}),Ie(0)},[g,O,S,U,w,P,y,ye,ve,Ne]),null}function gy({domain:e,color:t}){const n=E.useContext(Sn);if(e.chromosome&&n.domain.chromosome!=e.chromosome)return null;const[r,i]=E.useState(e.chromosome==null||e.chromosome==""?{start:e.start,end:e.end}:fu(e,n));return E.useEffect(()=>{n.delta==0&&i(e.chromosome==null||e.chromosome==""?{start:e.start,end:e.end}:fu(e,n))},[n.domain,n.delta==0]),p.jsx(Mt,{canDrag:!0,children:p.jsx("rect",{x:r.start-(e.chromosome?0:150),width:r.end-r.start,height:n.height-n.menuHeight,fill:t,fillOpacity:.2,style:{pointerEvents:"none"}})})}function fu(e,t){const n=(e.start-t.domain.start)/(t.domain.end-t.domain.start)*t.preRenderedWidth,r=(e.end-t.domain.start)/(t.domain.end-t.domain.start)*t.preRenderedWidth;return{start:n,end:r}}function vy({children:e,width:t,browserState:n,browserDispatch:r}){const i=E.useRef(null),[a,o]=E.useState(0),s=_v(),c=80,u=100,l=x=>{g(1),r({type:le.SET_LOADING}),r({type:le.SET_DOMAIN,domain:x}),g(0)},d=(x,w)=>{r({type:le.UPDATE_TRACK,id:x,track:{displayMode:w}}),w===Fe.HIDE&&r({type:le.DELETE_TRACK,id:x})};Cv(()=>{const x=n.tracks.reduce((w,T)=>w+(T.actualHeight??T.height),0);o(x)},[n.tracks,n.tracks.length]),n.height=c+a+u,n.menuHeight=u,n.marginSize=n.width<1e3?n.width/8:150;const f=E.useRef(!1);E.useEffect(()=>{var w;if(f.current)return;f.current=!0;const x=(w=E.Children.map(e,T=>E.isValidElement(T)?T.props:null))==null?void 0:w.filter(Boolean);x==null||x.forEach(T=>{r({type:le.ADD_TRACK,track:T}),r({type:le.BRING_TO_TOP,id:T.id})})},[e,r]);const g=x=>{r({type:le.SET_DELTA,delta:x})};return p.jsxs(_d,{browserState:n,browserDispatch:r,modalState:s,deltaContext:{delta:n.delta,setDelta:g},children:[p.jsx(fy,{innerWidth:n.width,width:t,height:n.height,svgRef:i,children:p.jsxs(uy,{onModeChange:d,children:[p.jsx(ly,{width:n.width,height:n.height-c,dragRegionHeight:c,leftMargin:n.marginSize,domain:n.domain,onSelectionEnd:x=>l(x)}),p.jsx(iy,{canDrag:n.delta!=0,width:n.width,height:c,title:"scale",id:"ruler",domain:n.domain,titleSize:12,trackMargin:12}),p.jsx(my,{browserState:n,browserDispatch:r}),p.jsx(hy,{browserState:n,rulerHeight:c,children:n.tracks.map(x=>p.jsx(yy,{track:x,svgRef:i,browserState:n},x.id+x.height))}),p.jsx("svg",{id:"gb-highlights",x:n.marginSize,x2:n.width,y:0,height:n.height-n.menuHeight,viewBox:`0 0 1500 ${n.height-n.menuHeight}`,children:n.highlights.map(x=>p.jsx(gy,{domain:x.domain,color:x.color},`${x.domain.end}-${x.domain.start}`))})]})}),s.openModal&&p.jsx(ey,{})]})}function yy({track:e,browserState:t,svgRef:n}){return E.useMemo(()=>{const a=(e.props||{}).transform;if(e.displayMode===Fe.HIDE)return null;const{width:o,domain:s}=t;return p.jsx("g",{id:"swap-track-"+e.id,transform:a,children:(()=>{switch(e.trackType){case X.BIGWIG:return p.jsx(Au,{svgRef:n,...Nu,width:o,domain:s,...e,...e.props,data:e.data});case X.BIGBED:return p.jsx($u,{svgRef:n,...qu,width:o,domain:s,...e,...e.props,data:e.data});case X.TRANSCRIPT:return p.jsx(zu,{svgRef:n,...Bu,width:o,domain:s,...e,...e.props,data:e.data});case X.IMPORTANCE:return p.jsx(Hu,{svgRef:n,...Qu,width:o,domain:s,...e,...e.props,data:e.data});case X.MOTIF:return p.jsx(Yu,{svgRef:n,...Gu,width:o,domain:s,...e,...e.props,data:e.data});case X.LDTRACK:return p.jsx(wf,{svgRef:n,...Ef,...e,width:o,domain:s,...e.props,data:e.data});default:return null}})()})},[e,e.props,t,n])}const by=new uf({uri:"https://ga.staging.wenglab.org/graphql",cache:new of,connectToDevTools:!0});function xy({children:e}){return p.jsx(ev,{client:by,children:e})}const Ey=new Map([["stalk",e=>e.stalk],["gvar",e=>e.default],["gneg",e=>Ri(e.default,.9)]]),wy=e=>{var n;const t=e.type.slice(0,4)==="gpos"?Ri(e.colors.default,1-+e.type.replace(/gpos/g,"")/100):(n=Ey.get(e.type))==null?void 0:n.call(null,e.colors);return t===void 0?null:p.jsx("rect",{width:e.width,height:e.height*.8,y:e.height*.1,x:e.x,fill:t,fillOpacity:e.opacity})};function Oy(e,t,n,r){return r?`M ${e} ${n*.1} L ${e+t} ${n/2} L ${e} ${n*.9}`:`M ${e+t} ${n*.1} L ${e} ${n/2} L ${e+t} ${n*.9}`}const Sy=e=>p.jsx("path",{d:Oy(e.x,e.width,e.height,e.opening),fill:e.color}),Ty=({highlight:e,height:t,x:n})=>{const r=`M ${n(e.start)-5} 0 L ${n(e.start)} ${t*.2} L ${n(e.start)+5} 0`,i=`M ${n(e.start)-5} ${t} L ${n(e.start)} ${t*.8} L ${n(e.start)+5} ${t}`;return p.jsxs(p.Fragment,{children:[p.jsx("path",{d:r,stroke:e.color||"#ff0000",strokeWidth:3,fill:"none"}),p.jsx("path",{d:i,stroke:e.color||"#ff0000",strokeWidth:3,fill:"none"})]})},hu=e=>e.x(e.highlight.end)-e.x(e.highlight.start)<10?p.jsx(Ty,{highlight:e.highlight,x:e.x,height:e.height}):p.jsx("rect",{x:e.x(e.highlight.start),y:0,width:e.x(e.highlight.end)-e.x(e.highlight.start),height:e.height,fill:e.highlight.color||"#ff000088",onMouseOver:e.onMouseOver,onMouseOut:e.onMouseOut,onClick:e.onClick}),Cy={default:"#000000",centromere:"#880000",stalk:"#ff0000"},_y=e=>{const t=e.colors||Cy,n=e.domain||{start:0,end:Math.max(...e.data.map(a=>a.coordinates.end))},r=Ct(n,e.width);let i=0;return p.jsxs("g",{width:e.width,height:e.height,transform:e.transform,children:[e.data.map((a,o)=>{const s=r(a.coordinates.start),c=r(a.coordinates.end)-s;return a.stain==="acen"?p.jsx(Sy,{width:c,x:s,height:e.height,color:t.centromere,opening:i++===0},o):p.jsx(wy,{type:a.stain,width:c,x:s,height:e.height,colors:t,opacity:e.opacity},o)}),e.highlight?p.jsx(hu,{onMouseOut:e.onHighlightMouseOut,onMouseOver:()=>e.onHighlightMouseOver&&e.onHighlightMouseOver(e.highlight,r((e.highlight.start+e.highlight.end)/2),0),onClick:()=>e.onHighlightClick&&e.onHighlightClick(e.highlight,r((e.highlight.start+e.highlight.end)/2),0),highlight:e.highlight,x:r,height:e.height,width:e.width}):null,e.highlights?e.highlights.map((a,o)=>p.jsx(hu,{onMouseOut:e.onHighlightMouseOut,onMouseOver:()=>e.onHighlightMouseOver&&e.onHighlightMouseOver(a,r((a.start+a.end)/2),o),highlight:a,x:r,height:e.height,width:e.width,onClick:()=>e.onHighlightClick&&e.onHighlightClick(a,r((a.start+a.end)/2),o)})):null,e.children]})},ky=_t`
311
+ `;function my({browserState:e,browserDispatch:t}){const[n,r]=E.useState(),[i,a]=E.useState(),[o,s]=E.useState(),[c,u]=E.useState(),[l,d]=E.useState(),[f,{data:g,loading:x,error:w}]=xr(lu),[T,{data:S,loading:_,error:y}]=xr(dy),[C,{data:O,loading:R,error:P}]=xr(py),[F,{data:U,loading:V,error:ye}]=xr(lu),[_e,{data:ve,loading:we,error:Ne}]=xr(_t(xv)),{setDelta:Ie}=E.useContext(vo);return E.useEffect(()=>{r(e.tracks.filter(A=>A.trackType===X.BIGWIG||A.trackType===X.BIGBED).map(A=>({url:A.url||"",chr1:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end,preRenderedWidth:e.preRenderedWidth,zoomLevel:e.zoomLevel})));const G=e.tracks.find(A=>A.trackType===X.TRANSCRIPT);G?(t({type:le.UPDATE_TRACK,id:G.id,track:{refetch:C}}),a({chromosome:e.domain.chromosome||"chr11",assembly:G.assembly,start:e.domain.start,end:e.domain.end,version:G.version})):a(void 0);const $=e.tracks.find(A=>A.trackType===X.MOTIF);$&&s({range:{chromosome:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end},prange:{chrom:e.domain.chromosome||"chr11",chrom_start:e.domain.start,chrom_end:e.domain.end},assembly:$.assembly,consensus_regex:$.consensusRegex,peaks_accession:$.peaksAccession});const Z=e.tracks.find(A=>A.trackType===X.IMPORTANCE);if(Z){const A=[];A.push({url:Z.url||"",chr1:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end}),A.push({url:Z.signalURL,chr1:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end}),u(A)}const j=e.tracks.find(A=>A.trackType===X.LDTRACK);j&&d({assembly:j.assembly,coordinates:{chromosome:e.domain.chromosome||"chr11",start:e.domain.start,end:e.domain.end}})},[e.tracks.length,e.domain,e.preRenderedWidth,e.zoomLevel]),E.useEffect(()=>{n&&f({variables:{bigRequests:n}})},[n]),E.useEffect(()=>{i&&C({variables:i})},[i]),E.useEffect(()=>{o&&T({variables:o})},[o]),E.useEffect(()=>{c&&F({variables:{bigRequests:c}})},[c]),E.useEffect(()=>{l&&_e({variables:l})},[l]),E.useEffect(()=>{if(x||R||_||V||we)return;let G=0;e.tracks.forEach($=>{if($.trackType===X.BIGWIG||$.trackType===X.BIGBED){if(w)t({type:le.UPDATE_TRACK,id:$.id,track:{error:w.message||""}});else if(g){if(g.bigRequests.length===0)return;t({type:le.UPDATE_TRACK,id:$.id,track:{data:g.bigRequests[G++].data}})}}else if($.trackType===X.TRANSCRIPT)P?t({type:le.UPDATE_TRACK,id:$.id,track:{error:P.message||""}}):O&&t({type:le.UPDATE_TRACK,id:$.id,track:{data:O.gene}});else if($.trackType===X.MOTIF){if(y)t({type:le.UPDATE_TRACK,id:$.id,track:{error:y.message||""}});else if(S){const Z=S.peaks.peaks.map(A=>({start:A.chrom_start,end:A.chrom_end})),j=S.meme_occurrences.map(A=>({start:A.genomic_region.start,end:A.genomic_region.end,pwm:A.motif.pwm}));t({type:le.UPDATE_TRACK,id:$.id,track:{data:j,peaks:Z}})}}else if($.trackType===X.IMPORTANCE){if(ye)t({type:le.UPDATE_TRACK,id:$.id,track:{error:ye.message||""}});else if(U){const Z=U.bigRequests[0].data[0],j=U.bigRequests[1].data.map(Y=>Y.value),A={sequence:Z,importance:j};t({type:le.UPDATE_TRACK,id:$.id,track:{data:A}})}}else if($.trackType===X.LDTRACK){if(Ne)t({type:le.UPDATE_TRACK,id:$.id,track:{error:Ne.message||""}});else if(ve){const Z=ve.snpQuery.filter(j=>j.coordinates).map(j=>({...j,domain:j.coordinates}));t({type:le.UPDATE_TRACK,id:$.id,track:{data:{snps:Z,ld:[]}}})}}}),Ie(0)},[g,O,S,U,w,P,y,ye,ve,Ne]),null}function gy({domain:e,color:t}){const n=E.useContext(Sn);if(e.chromosome&&n.domain.chromosome!=e.chromosome)return null;const[r,i]=E.useState(e.chromosome==null||e.chromosome==""?{start:e.start,end:e.end}:fu(e,n));return E.useEffect(()=>{n.delta==0&&i(e.chromosome==null||e.chromosome==""?{start:e.start,end:e.end}:fu(e,n))},[n.domain,n.delta==0]),p.jsx(Mt,{canDrag:!0,children:p.jsx("rect",{x:r.start-(e.chromosome?0:150),width:r.end-r.start,height:n.height-n.menuHeight,fill:t,fillOpacity:.2,style:{pointerEvents:"none"}})})}function fu(e,t){const n=(e.start-t.domain.start)/(t.domain.end-t.domain.start)*t.preRenderedWidth,r=(e.end-t.domain.start)/(t.domain.end-t.domain.start)*t.preRenderedWidth;return{start:n,end:r}}function vy({children:e,width:t,browserState:n,browserDispatch:r}){const i=E.useRef(null),[a,o]=E.useState(0),s=_v(),c=80,u=100,l=x=>{g(1),r({type:le.SET_LOADING}),r({type:le.SET_DOMAIN,domain:x}),g(0)},d=(x,w)=>{r({type:le.UPDATE_TRACK,id:x,track:{displayMode:w}}),w===Fe.HIDE&&r({type:le.DELETE_TRACK,id:x})};Cv(()=>{const x=n.tracks.reduce((w,T)=>w+(T.actualHeight??T.height),0);o(x)},[n.tracks,n.tracks.length]),n.height=c+a+u,n.menuHeight=u,n.marginSize=n.width<1e3?n.width/8:150;const f=E.useRef(!1);E.useEffect(()=>{var w;if(f.current)return;f.current=!0;const x=(w=E.Children.map(e,T=>E.isValidElement(T)?T.props:null))==null?void 0:w.filter(Boolean);x==null||x.forEach(T=>{r({type:le.ADD_TRACK,track:T}),r({type:le.BRING_TO_TOP,id:T.id})})},[e,r]);const g=x=>{r({type:le.SET_DELTA,delta:x})};return p.jsxs(_d,{browserState:n,browserDispatch:r,modalState:s,deltaContext:{delta:n.delta,setDelta:g},children:[p.jsx(fy,{innerWidth:n.width,width:t,height:n.height,svgRef:i,children:p.jsxs(uy,{onModeChange:d,children:[p.jsx(ly,{width:n.width,height:n.height-c,dragRegionHeight:c,leftMargin:n.marginSize,domain:n.domain,onSelectionEnd:x=>l(x)}),p.jsx(iy,{canDrag:n.delta!=0,width:n.width,height:c,title:"scale",id:"ruler",domain:n.domain,titleSize:12,trackMargin:12}),p.jsx(my,{browserState:n,browserDispatch:r}),p.jsx(hy,{browserState:n,rulerHeight:c,children:n.tracks.map(x=>p.jsx(yy,{track:x,svgRef:i,browserState:n},x.id+x.height))}),p.jsx("svg",{id:"gb-highlights",x:n.marginSize,x2:n.width,y:0,height:n.height-n.menuHeight,viewBox:`0 0 1500 ${n.height-n.menuHeight}`,children:n.highlights.map(x=>p.jsx(gy,{domain:x.domain,color:x.color},`${x.domain.end}-${x.domain.start}`))})]})}),s.openModal&&p.jsx(ey,{})]})}function yy({track:e,browserState:t,svgRef:n}){return E.useMemo(()=>{const a=(e.props||{}).transform;if(e.displayMode===Fe.HIDE)return null;const{width:o,domain:s}=t;return p.jsx("g",{id:"swap-track-"+e.id,transform:a,children:(()=>{switch(e.trackType){case X.BIGWIG:return p.jsx(Au,{svgRef:n,...Nu,width:o,domain:s,...e,...e.props,data:e.data});case X.BIGBED:return p.jsx($u,{svgRef:n,...qu,width:o,domain:s,...e,...e.props,data:e.data});case X.TRANSCRIPT:return p.jsx(zu,{svgRef:n,...Bu,width:o,domain:s,...e,...e.props,data:e.data});case X.IMPORTANCE:return p.jsx(Hu,{svgRef:n,...Qu,width:o,domain:s,...e,...e.props,data:e.data});case X.MOTIF:return p.jsx(Yu,{svgRef:n,...Gu,width:o,domain:s,...e,...e.props,data:e.data});case X.LDTRACK:return p.jsx(wf,{svgRef:n,...Ef,...e,width:o,domain:s,...e.props,data:e.data});default:return null}})()})},[e,e.props,t,n])}const by=new uf({uri:"https://ga.staging.wenglab.org/graphql",cache:new of,connectToDevTools:!0});function xy({children:e}){return p.jsx(ev,{client:by,children:e})}const Ey=new Map([["stalk",e=>e.stalk],["gvar",e=>e.default],["gneg",e=>Ri(e.default,.9)]]),wy=e=>{var n;const t=e.type.slice(0,4)==="gpos"?Ri(e.colors.default,1-+e.type.replace(/gpos/g,"")/100):(n=Ey.get(e.type))==null?void 0:n.call(null,e.colors);return t===void 0?null:p.jsx("rect",{width:e.width,height:e.height*.8,y:e.height*.1,x:e.x,fill:t,fillOpacity:e.opacity})};function Oy(e,t,n,r){return r?`M ${e} ${n*.1} L ${e+t} ${n/2} L ${e} ${n*.9}`:`M ${e+t} ${n*.1} L ${e} ${n/2} L ${e+t} ${n*.9}`}const Sy=e=>p.jsx("path",{d:Oy(e.x,e.width,e.height,e.opening),fill:e.color}),Ty=({highlight:e,height:t,x:n})=>{const r=`M ${n(e.start)-5} 0 L ${n(e.start)} ${t*.2} L ${n(e.start)+5} 0`,i=`M ${n(e.start)-5} ${t} L ${n(e.start)} ${t*.8} L ${n(e.start)+5} ${t}`;return p.jsxs(p.Fragment,{children:[p.jsx("path",{d:r,stroke:e.color||"#ff0000",strokeWidth:3,fill:"none"}),p.jsx("path",{d:i,stroke:e.color||"#ff0000",strokeWidth:3,fill:"none"})]})},hu=e=>e.x(e.highlight.end)-e.x(e.highlight.start)<10?p.jsx(Ty,{highlight:e.highlight,x:e.x,height:e.height}):p.jsx("rect",{x:e.x(e.highlight.start),y:0,width:e.x(e.highlight.end)-e.x(e.highlight.start),height:e.height,fill:e.highlight.color||"#ff000088",onMouseOver:e.onMouseOver,onMouseOut:e.onMouseOut,onClick:e.onClick}),Cy={default:"#000000",centromere:"#880000",stalk:"#ff0000"},_y=e=>{const t=e.colors||Cy,n=e.domain||{start:0,end:Math.max(...e.data.map(a=>a.coordinates.end))},r=Ct(n,e.width);let i=0;return p.jsxs("g",{width:e.width,height:e.height,transform:e.transform,children:[e.data.map((a,o)=>{const s=r(a.coordinates.start),c=r(a.coordinates.end)-s;return a.stain==="acen"?p.jsx(Sy,{width:c,x:s,height:e.height,color:t.centromere,opening:i++===0},o):p.jsx(wy,{type:a.stain,width:c,x:s,height:e.height,colors:t,opacity:e.opacity},o)}),e.highlight?p.jsx(hu,{onMouseOut:e.onHighlightMouseOut,onMouseOver:()=>e.onHighlightMouseOver&&e.onHighlightMouseOver(e.highlight,r((e.highlight.start+e.highlight.end)/2),0),onClick:()=>e.onHighlightClick&&e.onHighlightClick(e.highlight,r((e.highlight.start+e.highlight.end)/2),0),highlight:e.highlight,x:r,height:e.height,width:e.width}):null,e.highlights?e.highlights.map((a,o)=>p.jsx(hu,{onMouseOut:e.onHighlightMouseOut,onMouseOver:()=>e.onHighlightMouseOver&&e.onHighlightMouseOver(a,r((a.start+a.end)/2),o),highlight:a,x:r,height:e.height,width:e.width,onClick:()=>e.onHighlightClick&&e.onHighlightClick(a,r((a.start+a.end)/2),o)})):null,e.children]})},ky=_t`
312
312
  query cytobands($assembly: String!, $chromosome: String) {
313
313
  cytoband(assembly: $assembly, chromosome: $chromosome) {
314
314
  stain