@jbrowse/plugin-linear-genome-view 1.6.6 → 1.6.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/LinearBareDisplay/model.d.ts +7 -7
- package/dist/LinearBasicDisplay/model.d.ts +7 -7
- package/dist/LinearGenomeView/components/OverviewScaleBar.d.ts +6 -6
- package/dist/LinearGenomeView/components/TrackContainer.d.ts +1 -2
- package/dist/index.d.ts +21 -21
- package/dist/plugin-linear-genome-view.cjs.development.js +64 -39
- package/dist/plugin-linear-genome-view.cjs.development.js.map +1 -1
- package/dist/plugin-linear-genome-view.cjs.production.min.js +1 -1
- package/dist/plugin-linear-genome-view.cjs.production.min.js.map +1 -1
- package/dist/plugin-linear-genome-view.esm.js +64 -39
- package/dist/plugin-linear-genome-view.esm.js.map +1 -1
- package/package.json +2 -2
- package/src/BaseLinearDisplay/components/BaseLinearDisplay.tsx +9 -12
- package/src/LinearBasicDisplay/components/SetMaxHeight.tsx +21 -12
- package/src/LinearGenomeView/components/TrackContainer.tsx +46 -27
- package/src/LinearGenomeView/components/TracksContainer.tsx +0 -1
- package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.js.snap +222 -248
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),n=e(t),r=require("mobx"),o=require("@jbrowse/core/configuration"),a=require("@jbrowse/core/pluggableElementTypes/models"),i=e(require("@jbrowse/core/pluggableElementTypes/TrackType")),l=e(require("@jbrowse/core/pluggableElementTypes/DisplayType")),c=e(require("@jbrowse/core/pluggableElementTypes/ViewType")),s=e(require("@jbrowse/core/Plugin")),u=require("@jbrowse/core/util"),d=e(require("@material-ui/icons/LineStyle")),f=require("@material-ui/core"),m=e(require("@jbrowse/core/util/compositeMap")),p=require("@jbrowse/core/util/simpleFeature"),g=require("@jbrowse/core/util/tracks"),h=require("mobx-state-tree"),v=e(require("@material-ui/icons/MenuOpen")),y=require("@jbrowse/core/ui"),b=require("mobx-react"),k=require("react-popper"),w=require("@material-ui/core/styles"),E=require("@jbrowse/core/util/blockTypes"),x=require("@jbrowse/core/util/types/mst"),S=require("@jbrowse/core/util/types"),C=e(require("@material-ui/core/Typography")),P=e(require("@material-ui/core/Button")),B=e(require("@material-ui/icons/Refresh")),T=require("@jbrowse/core/configuration/configurationSchema"),R=e(require("@jbrowse/core/util/calculateDynamicBlocks")),M=e(require("@jbrowse/core/util/calculateStaticBlocks")),N=e(require("@jbrowse/core/util/Base1DViewModel")),L=e(require("clone")),D=require("file-saver"),I=require("@jbrowse/core/ui/Icons"),O=e(require("@material-ui/icons/SyncAlt")),F=e(require("@material-ui/icons/Visibility")),z=e(require("@material-ui/icons/Label")),j=e(require("@material-ui/icons/FolderOpen")),q=e(require("@material-ui/icons/PhotoCamera")),A=e(require("@material-ui/icons/ZoomIn")),H=require("react-dom/server"),W=e(require("prop-types")),_=e(require("clsx")),V=require("@jbrowse/core/TextSearch/BaseResults"),G=e(V),X=e(require("@material-ui/icons/Search")),U=e(require("@material-ui/lab/Autocomplete")),J=e(require("@material-ui/icons/Help")),Y=e(require("@material-ui/icons/Close")),Z=e(require("@material-ui/icons/ArrowForward")),K=e(require("@material-ui/icons/ArrowBack")),Q=e(require("@material-ui/core/IconButton")),$=e(require("@material-ui/core/Slider")),ee=e(require("@material-ui/icons/ZoomOut")),te=e(require("@material-ui/icons/MoreVert")),ne=e(require("@material-ui/icons/DragIndicator")),re=e(require("normalize-wheel")),oe=require("@material-ui/core/styles/colorManipulator"),ae=e(require("@material-ui/core/Popover")),ie=e(require("@material-ui/core/Tooltip")),le=e(require("@material-ui/core/Paper")),ce=e(require("@jbrowse/core/ui/ErrorMessage")),se=e(require("@jbrowse/core/ui/AssemblySelector")),ue=e(require("@material-ui/icons/KeyboardArrowDown")),de=e(require("@jbrowse/core/ui/Menu")),fe=e(require("copy-to-clipboard")),me=require("@jbrowse/core/util/formatFastaStrings"),pe=e(require("@material-ui/icons/GetApp"));function ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function he(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ge(Object(n),!0).forEach((function(t){we(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ge(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ve(e){return(ve="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ye(e,t,n,r,o,a,i){try{var l=e[a](i),c=l.value}catch(e){return void n(e)}l.done?t(c):Promise.resolve(c).then(r,o)}function be(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){ye(a,r,o,i,l,"next",e)}function l(e){ye(a,r,o,i,l,"throw",e)}i(void 0)}))}}function ke(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function we(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ee(e){return(Ee=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function xe(e,t){return(xe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Se(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Ce(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function Pe(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Ee(e);if(t){var o=Ee(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return Ce(this,n)}}function Be(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(e){l=!0,o=e}finally{try{i||null==n.return||n.return()}finally{if(l)throw o}}return a}}(e,t)||Re(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Te(e){return function(e){if(Array.isArray(e))return Me(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Re(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Re(e,t){if(e){if("string"==typeof e)return Me(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Me(e,t):void 0}}function Me(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ne(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Re(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function Le(e,t){return e(t={exports:{}},t.exports),t.exports}var De=Le((function(e){var t=function(e){var t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",a=r.asyncIterator||"@@asyncIterator",i=r.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var o=Object.create((t&&t.prototype instanceof d?t:d).prototype),a=new x(r||[]);return o._invoke=function(e,t,n){var r="suspendedStart";return function(o,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw a;return{value:void 0,done:!0}}for(n.method=o,n.arg=a;;){var i=n.delegate;if(i){var l=k(i,n);if(l){if(l===u)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=s(e,t,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===u)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}(e,n,a),o}function s(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var u={};function d(){}function f(){}function m(){}var p={};l(p,o,(function(){return this}));var g=Object.getPrototypeOf,h=g&&g(g(S([])));h&&h!==t&&n.call(h,o)&&(p=h);var v=m.prototype=d.prototype=Object.create(p);function y(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var r;this._invoke=function(o,a){function i(){return new t((function(r,i){!function r(o,a,i,l){var c=s(e[o],e,a);if("throw"!==c.type){var u=c.arg,d=u.value;return d&&"object"==typeof d&&n.call(d,"__await")?t.resolve(d.__await).then((function(e){r("next",e,i,l)}),(function(e){r("throw",e,i,l)})):t.resolve(d).then((function(e){u.value=e,i(u)}),(function(e){return r("throw",e,i,l)}))}l(c.arg)}(o,a,r,i)}))}return r=r?r.then(i,i):i()}}function k(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,k(e,t),"throw"===t.method))return u;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var r=s(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,u;var o=r.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,u):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,u)}function w(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function x(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function S(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:C}}function C(){return{value:void 0,done:!0}}return f.prototype=m,l(v,"constructor",m),l(m,"constructor",f),f.displayName=l(m,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===f||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,l(e,i,"GeneratorFunction")),e.prototype=Object.create(v),e},e.awrap=function(e){return{__await:e}},y(b.prototype),l(b.prototype,a,(function(){return this})),e.AsyncIterator=b,e.async=function(t,n,r,o,a){void 0===a&&(a=Promise);var i=new b(c(t,n,r,o),a);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},y(v),l(v,i,"Generator"),l(v,o,(function(){return this})),l(v,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=S,x.prototype={constructor:x,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return i.type="throw",i.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(l&&c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,u):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),u},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;E(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:S(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}})),Ie=o.ConfigurationSchema("BaseLinearDisplay",{maxFeatureScreenDensity:{type:"number",description:"maximum features per pixel that is displayed in the view, used if byte size estimates not available",defaultValue:.3},fetchSizeLimit:{type:"number",defaultValue:1e6,description:"maximum data to attempt to download for a given track, used if adapter doesn't specify one"}},{explicitIdentifier:"displayId"}),Oe=w.makeStyles((function(e){return{contentBlock:{position:"relative",minHeight:"100%",boxSizing:"border-box",whiteSpace:"nowrap",overflow:"hidden"},elidedBlock:{minHeight:"100%",boxSizing:"border-box",backgroundColor:"#999",backgroundImage:"repeating-linear-gradient(90deg, transparent, transparent 1px, rgba(255,255,255,.5) 1px, rgba(255,255,255,.5) 3px)"},interRegionPaddingBlock:{minHeight:"100%",backgroundColor:e.palette.text.primary},boundaryPaddingBlock:{minHeight:"100%",backgroundColor:e.palette.action.disabledBackground}}})),Fe=b.observer((function(e){var t=e.block,r=e.children,o=Oe();return n.createElement("div",{style:{width:t.widthPx},className:o.contentBlock},r)}));function ze(e){var t=e.width,r=Oe();return n.createElement("div",{className:r.elidedBlock,style:{width:t}})}function je(e){var t=e.boundary,r=e.width,o=e.style,a=void 0===o?{}:o,i=Oe();return n.createElement("div",{style:he(he({},a),{},{width:r}),className:t?i.boundaryPaddingBlock:i.interRegionPaddingBlock})}var qe=w.makeStyles({linearBlocks:{whiteSpace:"nowrap",textAlign:"left",position:"absolute",minHeight:"100%",display:"flex"},heightOverflowed:{position:"absolute",color:"rgb(77,77,77)",borderBottom:"2px solid rgb(77,77,77)",textShadow:"white 0px 0px 1px",whiteSpace:"nowrap",width:"100%",fontWeight:"bold",textAlign:"center",zIndex:2e3,boxSizing:"border-box"}}),Ae=b.observer((function(e){var t=e.model,r=qe(),o=t.blockState;return n.createElement(n.Fragment,null,t.blockDefinitions.map((function(e){if(e instanceof E.ContentBlock){var a=o.get(e.key);return n.createElement(Fe,{block:e,key:"".concat(t.id,"-").concat(e.key)},a&&a.ReactComponent?n.createElement(a.ReactComponent,{model:a}):null,a&&a.maxHeightReached?n.createElement("div",{className:r.heightOverflowed,style:{top:a.layout.getTotalHeight()-16,pointerEvents:"none",height:16}},"Max height reached"):null)}if(e instanceof E.ElidedBlock)return n.createElement(ze,{key:"".concat(t.id,"-").concat(e.key),width:e.widthPx});if(e instanceof E.InterRegionPaddingBlock)return n.createElement(je,{key:e.key,width:e.widthPx,style:{background:"none"},boundary:"boundary"===e.variant});throw new Error("invalid block type ".concat(ve(e)))})))}));function He(e){var t=e.model,r=qe(),o=t.blockDefinitions,a=u.getContainingView(t);return n.createElement("div",{"data-testid":"Blockset",className:r.linearBlocks,style:{left:o.offsetPx-a.offsetPx}},n.createElement(Ae,{model:t}))}var We=b.observer(He),_e=f.makeStyles((function(e){return{display:{position:"relative",whiteSpace:"nowrap",textAlign:"left",width:"100%",minHeight:"100%"},tooltip:{pointerEvents:"none",backgroundColor:f.alpha(e.palette.grey[700],.9),borderRadius:e.shape.borderRadius,color:e.palette.common.white,fontFamily:e.typography.fontFamily,padding:"4px 8px",fontSize:e.typography.pxToRem(12),lineHeight:"".concat(Math.round(14e4)/1e5,"em"),maxWidth:300,wordWrap:"break-word"}}})),Ve=n.forwardRef((function(e,t){return n.createElement("div",{ref:t},e.message)})),Ge=b.observer((function(e){var r=e.model,a=e.clientMouseCoord,i=_e(),l=r.featureUnderMouse,c=Be(t.useState(0),2),s=c[0],u=c[1],d=Be(t.useState(null),2),m=d[0],p=d[1],g=t.useMemo((function(){return{getBoundingClientRect:function(){var e=a[0]+s/2+20,t=a[1];return{top:t,left:e,bottom:t,right:e,width:0,height:0,x:e,y:t,toJSON:function(){}}}}}),[a,s]),h=k.usePopper(g,m),v=h.styles,y=h.attributes,b=l?o.getConf(r,"mouseover",{feature:l}):void 0;return l&&b?n.createElement(f.Portal,null,n.createElement("div",Object.assign({ref:p,className:i.tooltip,style:he(he({},v.popper),{},{zIndex:1e5})},y.popper),n.createElement(Ve,{ref:function(e){return u((null==e?void 0:e.getBoundingClientRect().width)||0)},message:b}))):null})),Xe=b.observer((function(e){var r=_e(),a=f.useTheme(),i=t.useRef(null),l=Be(t.useState(),2),c=l[0],s=l[1],u=Be(t.useState([0,0]),2),d=u[0],m=u[1],p=Be(t.useState([0,0]),2),g=p[0],h=p[1],v=Be(t.useState(),2),b=v[0],k=v[1],w=e.model,E=e.children,x=w.TooltipComponent,S=w.DisplayMessageComponent,C=w.contextMenuItems,P=w.height,B=w.setContextMenuFeature;return n.createElement("div",{ref:i,"data-testid":"display-".concat(o.getConf(w,"displayId")),className:r.display,onContextMenu:function(e){e.preventDefault(),b?k(void 0):i.current&&k([e.clientX,e.clientY])},onMouseMove:function(e){if(i.current){var t=i.current.getBoundingClientRect();m([e.clientX-t.left,e.clientY-t.top]),h([e.clientX,e.clientY]),s(t)}},role:"presentation"},S?n.createElement(S,{model:w}):n.createElement(We,Object.assign({},e)),E,n.createElement(x,{model:w,height:P,offsetMouseCoord:d,clientMouseCoord:g,clientRect:c,mouseCoord:d}),n.createElement(y.Menu,{open:Boolean(b)&&Boolean(C().length),onMenuItemClick:function(e,t){t(),k(void 0)},onClose:function(){k(void 0),B(void 0)},TransitionProps:{onExit:function(){k(void 0),B(void 0)}},anchorReference:"anchorPosition",anchorPosition:b?{top:b[1],left:b[0]}:void 0,style:{zIndex:a.zIndex.tooltip},menuItems:C(),"data-testid":"base_linear_display_context_menu"}))})),Ue=w.makeStyles((function(e){return{loading:{paddingLeft:"0.6em",backgroundColor:e.palette.action.disabledBackground,backgroundImage:"repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255,255,255,.5) 5px, rgba(255,255,255,.5) 10px)",height:"100%",width:"100%",pointerEvents:"none",textAlign:"center"},blockMessage:{width:"100%",background:e.palette.action.disabledBackground,padding:e.spacing(2),pointerEvents:"none",textAlign:"center"},blockError:{padding:e.spacing(2),width:"100%",whiteSpace:"normal",color:e.palette.error.main,overflowY:"auto"},blockReactNodeMessage:{width:"100%",background:e.palette.action.disabledBackground,padding:e.spacing(2),textAlign:"center"},dots:{"&::after":{display:"inline-block",animation:"$ellipsis 1.5s infinite",content:'"."',width:"1em",textAlign:"left"}},"@keyframes ellipsis":{"0%":{content:'"."'},"33%":{content:'".."'},"66%":{content:'"..."'}}}}));function Je(e){var t=e.children;return n.createElement("div",{style:{display:"flex"}},t,t)}var Ye=b.observer((function(e){var r=e.model,o=Be(t.useState(!1),2),a=o[0],i=o[1],l=Ue();t.useEffect((function(){var e=!1,t=setTimeout((function(){e||i(!0)}),300);return function(){clearTimeout(t),e=!0}}),[]);var c=r.status,s=h.getParent(r,2).message||c;return n.createElement(n.Fragment,null,a?n.createElement("div",{className:l.loading},n.createElement(C,{className:l.dots,variant:"body2"},s?"".concat(s):"Loading")):null)}));function Ze(e){var t=e.messageContent,r=Ue();return n.isValidElement(t)?n.createElement("div",{className:r.blockReactNodeMessage},t):n.createElement(C,{variant:"body2",className:r.blockMessage},t)}function Ke(e){var t=e.error,r=e.reload,o=e.displayHeight,a=Ue();return n.createElement("div",{className:a.blockError,style:{height:o}},r?n.createElement(P,{"data-testid":"reload_button",onClick:r,startIcon:n.createElement(B,null)},"Reload"):null,n.createElement(C,{color:"error",variant:"body2",display:"inline"},"".concat(t)))}var Qe=b.observer((function(e){var t=e.model;return t.error?n.createElement(Je,null,n.createElement(Ke,{error:t.error,reload:t.reload,displayHeight:g.getParentRenderProps(t).displayModel.height})):t.message?n.createElement(Je,null,n.createElement(Ze,{messageContent:t.message})):t.filled?t.reactElement:n.createElement(Je,null,n.createElement(Ye,{model:t}))})),$e=h.types.model("BlockState",{key:h.types.string,region:x.Region,reloadFlag:0,isLeftEndOfDisplayedRegion:!1,isRightEndOfDisplayedRegion:!1}).volatile((function(){return{renderInProgress:void 0,filled:!1,reactElement:void 0,features:void 0,layout:void 0,status:"",error:void 0,message:void 0,maxHeightReached:!1,ReactComponent:Qe,renderProps:void 0}})).actions((function(e){var t;return{doReload:function(){e.reloadFlag=e.reloadFlag+1},afterAttach:function(){var t=u.getContainingDisplay(e);u.makeAbortableReaction(e,et,tt,{name:"".concat(t.id,"/").concat(u.assembleLocString(e.region)," rendering"),delay:t.renderDelay,fireImmediately:!0},this.setLoading,this.setRendered,this.setError)},setStatus:function(t){e.status=t},setLoading:function(n){void 0!==t&&(t.signal.aborted||t.abort()),e.filled=!1,e.message=void 0,e.reactElement=void 0,e.features=void 0,e.layout=void 0,e.error=void 0,e.maxHeightReached=!1,e.renderProps=void 0,t=n},setMessage:function(n){t&&!t.signal.aborted&&t.abort(),e.filled=!1,e.message=n,e.reactElement=void 0,e.features=void 0,e.layout=void 0,e.error=void 0,e.maxHeightReached=!1,e.renderProps=void 0,t=void 0},setRendered:function(n){if(n){var r=n.reactElement,o=n.features,a=n.layout,i=n.maxHeightReached,l=n.renderProps;e.filled=!0,e.message=void 0,e.reactElement=r,e.features=o,e.layout=a,e.error=void 0,e.maxHeightReached=i,e.renderProps=l,t=void 0}},setError:function(n){console.error(n),t&&!t.signal.aborted&&t.abort(),e.filled=!1,e.message=void 0,e.reactElement=void 0,e.features=void 0,e.layout=void 0,e.maxHeightReached=!1,e.error=n,e.renderProps=void 0,t=void 0,S.isRetryException(n)&&this.reload()},reload:function(){e.renderInProgress=void 0,e.filled=!1,e.reactElement=void 0,e.features=void 0,e.layout=void 0,e.error=void 0,e.message=void 0,e.maxHeightReached=!1,e.ReactComponent=Qe,e.renderProps=void 0,h.getParent(e,2).reload()},beforeDestroy:function(){t&&!t.signal.aborted&&t.abort();var n=u.getContainingDisplay(e),r=u.getSession(e).rpcManager,o=n.rendererType,a=et(h.cast(e)).renderArgs;a&&o.freeResourcesInClient(r,JSON.parse(JSON.stringify(a))).catch((function(e){console.warn("Error while destroying block",e)}))}}}));function et(e,t){try{var n=t||u.getContainingDisplay(e),r=u.getSession(n),a=r.assemblyManager,i=r.rpcManager,l=n.adapterConfig,c=n.rendererType,s=n.error,d=g.getTrackAssemblyNames(n.parentTrack),f=e.region.assemblyName;if(!d.includes(f)&&!d.find((function(e){var t;return null===(t=a.get(e))||void 0===t?void 0:t.hasName(f)})))throw new Error("region assembly (".concat(f,") does not match track assemblies (").concat(d,")"));var m=n.renderProps();o.readConfObject(m.config);var p=g.getRpcSessionId(n);return{rendererType:c,rpcManager:i,renderProps:m,cannotBeRenderedReason:n.regionCannotBeRendered(e.region),displayError:s,renderArgs:{statusCallback:function(t){h.isAlive(e)&&e.setStatus(t)},assemblyName:e.region.assemblyName,regions:[e.region],adapterConfig:l,rendererType:c.name,sessionId:p,blockKey:e.key,reloadFlag:e.reloadFlag,timeout:1e6}}}catch(e){return{displayError:e}}}function tt(e,t,n){return nt.apply(this,arguments)}function nt(){return(nt=be(De.mark((function e(t,n,r){var o,a,i,l,c,s,u;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=t.rendererType,a=t.renderProps,i=t.rpcManager,l=t.renderArgs,c=t.cannotBeRenderedReason,s=t.displayError,h.isAlive(r)){e.next=3;break}return e.abrupt("return",void 0);case 3:if(!s){e.next=6;break}return r.setError(s),e.abrupt("return",void 0);case 6:if(!c){e.next=9;break}return r.setMessage(c),e.abrupt("return",void 0);case 9:if(!a.notReady){e.next=11;break}return e.abrupt("return",void 0);case 11:return e.next=13,o.renderInClient(i,he(he(he({},l),a),{},{signal:n}));case 13:return e.abrupt("return",{reactElement:(u=e.sent).reactElement,features:u.features,layout:u.layout,maxHeightReached:u.maxHeightReached});case 19:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var rt=["blockState"];function ot(e,t){var n="undefined"==typeof jest;return"clip-".concat(n?e:"jest","-").concat(t)}var at=h.types.compose("BaseLinearDisplay",a.BaseDisplay,h.types.model({height:h.types.optional(h.types.refinement("displayHeight",h.types.number,(function(e){return e>=20})),100),blockState:h.types.map($e),userBpPerPxLimit:h.types.maybe(h.types.number),userByteSizeLimit:h.types.maybe(h.types.number)})).volatile((function(){return{currBpPerPx:0,message:"",featureIdUnderMouse:void 0,contextMenuFeature:void 0,scrollTop:0,estimatedRegionStatsP:void 0,estimatedRegionStats:void 0}})).views((function(e){return{get blockType(){return"staticBlocks"},get blockDefinitions(){var t=this.blockType,n=u.getContainingView(e);if(!n.initialized)throw new Error("view not initialized yet");return n[t]}}})).views((function(e){return{get renderDelay(){return 50},get TooltipComponent(){return Ge},get selectedFeatureId(){if(h.isAlive(e)){var t=u.getSession(e).selection;if(p.isFeature(t))return t.id()}},get DisplayMessageComponent(){}}})).views((function(e){return{get features(){var t,n=[],r=Ne(e.blockState.values());try{for(r.s();!(t=r.n()).done;){var o=t.value;o&&o.features&&n.push(o.features)}}catch(e){r.e(e)}finally{r.f()}return new m(n)},get featureUnderMouse(){var t=e.featureIdUnderMouse;return t?this.features.get(t):void 0},getFeatureOverlapping:function(t,n,r){var o,a;return null===(o=e.blockState.get(t))||void 0===o||null===(a=o.layout)||void 0===a?void 0:a.getByCoord(n,r)},getFeatureByID:function(t,n){var r,o;return null===(r=e.blockState.get(t))||void 0===r||null===(o=r.layout)||void 0===o?void 0:o.getByID(n)},searchFeatureByID:function(t){var n;return e.blockState.forEach((function(e){var r,o=null==e||null===(r=e.layout)||void 0===r?void 0:r.getByID(t);o&&(n=o)})),n},get currentBytesRequested(){var t;return(null===(t=e.estimatedRegionStats)||void 0===t?void 0:t.bytes)||0},get currentFeatureScreenDensity(){var t,n=u.getContainingView(e);return((null===(t=e.estimatedRegionStats)||void 0===t?void 0:t.featureDensity)||0)*n.bpPerPx},get maxFeatureScreenDensity(){return o.getConf(e,"maxFeatureScreenDensity")},get estimatedStatsReady(){return!!e.estimatedRegionStats},get maxAllowableBytes(){var t;return e.userByteSizeLimit||(null===(t=e.estimatedRegionStats)||void 0===t?void 0:t.fetchSizeLimit)||o.getConf(e,"fetchSizeLimit")}}})).actions((function(e){return{setMessage:function(t){e.message=t},afterAttach:function(){var t=this,n=r.autorun((function(){var n={};u.getContainingView(e).initialized&&(e.blockDefinitions.contentBlocks.forEach((function(r){n[r.key]=!0,e.blockState.has(r.key)||t.addBlock(r.key,r)})),e.blockState.forEach((function(e,r){n[r]||t.deleteBlock(r)})))}));h.addDisposer(e,n)},estimateRegionsStats:function(t,n){var r=this;if(e.estimatedRegionStatsP)return e.estimatedRegionStatsP;var o=u.getSession(e).rpcManager,a=e.adapterConfig,i=g.getRpcSessionId(e),l=he({sessionId:i,regions:t,adapterConfig:a,statusCallback:function(t){h.isAlive(e)&&r.setMessage(t)}},n);return e.estimatedRegionStatsP=o.call(i,"CoreEstimateRegionStats",l).catch((function(e){throw r.setRegionStatsP(void 0),e})),e.estimatedRegionStatsP},setRegionStatsP:function(t){e.estimatedRegionStatsP=t},setRegionStats:function(t){e.estimatedRegionStats=t},clearRegionStats:function(){e.estimatedRegionStatsP=void 0,e.estimatedRegionStats=void 0},setHeight:function(t){return e.height=t>20?t:20,e.height},resizeHeight:function(t){var n=e.height;return this.setHeight(e.height+t)-n},setScrollTop:function(t){e.scrollTop=t},updateStatsLimit:function(t){var n=u.getContainingView(e);t.bytes?e.userByteSizeLimit=t.bytes:e.userBpPerPxLimit=n.bpPerPx},addBlock:function(t,n){e.blockState.set(t,$e.create({key:t,region:n.toRegion()}))},setCurrBpPerPx:function(t){e.currBpPerPx=t},deleteBlock:function(t){e.blockState.delete(t)},selectFeature:function(t){var n=u.getSession(e);if(u.isSessionModelWithWidgets(n)){var r=n.addWidget("BaseFeatureWidget","baseFeature",{featureData:t.toJSON(),view:u.getContainingView(e)});n.showWidget(r)}u.isSelectionContainer(n)&&n.setSelection(t)},clearFeatureSelection:function(){u.getSession(e).clearSelection()},setFeatureIdUnderMouse:function(t){e.featureIdUnderMouse=t},reload:function(){Te(e.blockState.values()).map((function(e){return e.doReload()}))},setContextMenuFeature:function(t){e.contextMenuFeature=t}}})).views((function(e){return{get regionTooLarge(){var t=u.getContainingView(e);return!(!e.estimatedStatsReady||t.dynamicBlocks.totalBp<2e4)&&(e.currentBytesRequested>e.maxAllowableBytes||(e.userBpPerPxLimit?t.bpPerPx>e.userBpPerPxLimit:e.currentFeatureScreenDensity>e.maxFeatureScreenDensity))},get regionTooLargeReason(){var t,n=e.currentBytesRequested;return n&&n>e.maxAllowableBytes?"Requested too much data (".concat((t=n,Math.floor(t/1e6)>0?"".concat(parseFloat((t/1e6).toPrecision(3))," Mb"):Math.floor(t/1e3)>0?"".concat(parseFloat((t/1e3).toPrecision(3))," Kb"):"".concat(Math.floor(t)," bytes")),")"):""}}})).actions((function(e){var t=e.reload;return{reload:function(){return be(De.mark((function n(){var r,o,a;return De.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(e.setError(),r=new AbortController,(o=u.getContainingView(e)).initialized&&o.staticBlocks.contentBlocks.length){n.next=5;break}return n.abrupt("return");case 5:return n.prev=5,e.estimatedRegionStatsP=e.estimateRegionsStats(o.staticBlocks.contentBlocks,{signal:r.signal}),n.next=9,e.estimatedRegionStatsP;case 9:if(a=n.sent,!h.isAlive(e)){n.next=15;break}e.setRegionStats(a),t(),n.next=16;break;case 15:return n.abrupt("return");case 16:n.next=21;break;case 18:n.prev=18,n.t0=n.catch(5),e.setError(n.t0);case 21:case"end":return n.stop()}}),n,null,[[5,18]])})))()},afterAttach:function(){h.addDisposer(e,r.autorun(be(De.mark((function t(){var n,r,o,a,i;return De.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,r=new AbortController,(o=u.getContainingView(e)).initialized&&o.staticBlocks.contentBlocks.length){t.next=5;break}return t.abrupt("return");case 5:if(void 0===(null===(n=e.estimatedRegionStats)||void 0===n?void 0:n.featureDensity)){t.next=8;break}return e.setCurrBpPerPx(o.bpPerPx),t.abrupt("return");case 8:if(o.bpPerPx!==e.currBpPerPx){t.next=10;break}return t.abrupt("return");case 10:return e.clearRegionStats(),e.setCurrBpPerPx(o.bpPerPx),a=e.estimateRegionsStats(o.staticBlocks.contentBlocks,{signal:r.signal}),e.setRegionStatsP(a),t.next=16,a;case 16:i=t.sent,h.isAlive(e)&&e.setRegionStats(i),t.next=23;break;case 20:t.prev=20,t.t0=t.catch(0),!u.isAbortException(t.t0)&&h.isAlive(e)&&(console.error(t.t0),e.setError(t.t0));case 23:case"end":return t.stop()}}),t,null,[[0,20]])}))),{delay:500}))}}})).views((function(e){return{regionCannotBeRenderedText:function(t){return e.regionTooLarge?"Force load to see features":""},regionCannotBeRendered:function(t){var r=e.regionTooLargeReason;if(e.regionTooLarge)return n.createElement(n.Fragment,null,n.createElement(f.Typography,{component:"span",variant:"body2"},r?r+". ":"","Zoom in to see features or"," "),n.createElement(f.Button,{"data-testid":"force_reload_button",onClick:function(){e.estimatedRegionStats?(e.updateStatsLimit(e.estimatedRegionStats),e.reload()):console.error("No global stats?")},variant:"outlined"},"Force Load"),n.createElement(f.Typography,{component:"span",variant:"body2"},"(force load may be slow)"))},trackMenuItems:function(){return[]},contextMenuItems:function(){return e.contextMenuFeature?[{label:"Open feature details",icon:v,onClick:function(){e.contextMenuFeature&&e.selectFeature(e.contextMenuFeature)}}]:[]},renderProps:function(){var t=u.getContainingView(e);return he(he({},g.getParentRenderProps(e)),{},{notReady:e.currBpPerPx!==t.bpPerPx||!e.estimatedRegionStats,rpcDriverName:e.rpcDriverName,displayModel:e,onFeatureClick:function(t,n){var r=n||e.featureIdUnderMouse;if(r){var o=e.features.get(r);o&&e.selectFeature(o)}else e.clearFeatureSelection()},onClick:function(){e.clearFeatureSelection()},onFeatureContextMenu:function(t,n){var r=n||e.featureIdUnderMouse;r?e.setContextMenuFeature(e.features.get(r)):e.clearFeatureSelection()},onMouseMove:function(t,n){e.setFeatureIdUnderMouse(n)},onMouseLeave:function(t){e.setFeatureIdUnderMouse(void 0)},onContextMenu:function(){e.setContextMenuFeature(void 0),e.clearFeatureSelection()}})}}})).actions((function(e){return{renderSvg:function(t){return be(De.mark((function r(){var o,a,i,l,c,s,d;return De.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o=e.height,a=e.id,i=t.overrideHeight,l=u.getContainingView(e),c=l.offsetPx,s=l.roundedDynamicBlocks,d=l.width,r.next=6,Promise.all(s.map((function(r){var o=$e.create({key:r.key,region:r}),a=e.regionCannotBeRenderedText(r)||e.regionCannotBeRendered(r);if(a)return{reactElement:n.createElement(n.Fragment,null,n.createElement("rect",{x:0,y:0,width:d,height:20,fill:"#aaa"}),n.createElement("text",{x:0,y:15},a))};var i=et(o,e),l=i.renderProps;return i.rendererType.renderInClient(i.rpcManager,he(he(he({},i.renderArgs),l),{},{exportSVG:t}))})));case 6:return r.abrupt("return",n.createElement(n.Fragment,null,r.sent.map((function(e,t){var r=s[t].offsetPx-c,l=ot(a,t);return n.createElement(n.Fragment,{key:"frag-".concat(t)},n.createElement("defs",null,n.createElement("clipPath",{id:l},n.createElement("rect",{x:0,y:0,width:d,height:i||o}))),n.createElement("g",{transform:"translate(".concat(r," 0)")},n.createElement("g",{clipPath:"url(#".concat(l,")")},n.isValidElement(e.reactElement)?e.reactElement:n.createElement("g",{dangerouslySetInnerHTML:{__html:e.html}}))))}))));case 8:case"end":return r.stop()}}),r)})))()}}})).postProcessSnapshot((function(e){return Se(e,rt)}));function it(e){return o.ConfigurationSchema("LinearBareDisplay",{renderer:e.pluggableConfigSchemaType("renderer")},{baseConfiguration:Ie,explicitlyTyped:!0})}function lt(e){return h.types.compose("LinearBareDisplay",at,h.types.model({type:h.types.literal("LinearBareDisplay"),configuration:T.ConfigurationReference(e)})).views((function(e){var t=e.renderProps;return{renderProps:function(){return he(he(he({},t()),g.getParentRenderProps(e)),{},{rpcDriverName:e.rpcDriverName,config:e.configuration.renderer})},get rendererTypeName(){return e.configuration.renderer.type}}}))}function ct(e,t,n){for(var r=t*(e=Math.abs(e)),o=parseInt(Number(r).toExponential().split(/e/i)[1],10),a=Math.pow(10,o);a<r&&!((a*=2)>=r);)a*=2.5;var i=(a=Math.max(a,5))/e,l=0;return!(a%10)&&i/10>=n?l=a/10:!(a%5)&&i/5>=n?l=a/5:!(a%2)&&i/2>=n&&(l=a/2),{majorPitch:a,minorPitch:l}}function st(e,t,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=ct(n,60,15),i=e,l=t;if(null===i||null===l)return[];if(n<0){var c=[l,i];i=c[0],l=c[1]}i-=Math.abs(20*n)-1,l+=Math.abs(20*n)+1;for(var s=a.minorPitch||a.majorPitch,u=0,d=[],f=Math.ceil(i/s)*s;f<l;f+=s)o&&f%(2*a.majorPitch)?(d.push({type:"minor",base:f-1,index:u}),u+=1):!r||f%(2*a.majorPitch)||(d.push({type:"major",base:f-1,index:u}),u+=1);return d}var ut=w.makeStyles((function(){return{majorTickLabel:{fontSize:"11px"},majorTick:{stroke:"#555"},minorTick:{stroke:"#999"}}}));function dt(e){var t=e.start,r=e.end,o=e.bpPerPx,a=e.reversed,i=e.major,l=e.minor,c=ut(),s=st(t,r,o,i,l);return n.createElement(n.Fragment,null,s.map((function(e){var i=(a?r-e.base:e.base-t)/o;return n.createElement("line",{key:e.base,x1:i,x2:i,y1:0,y2:"major"===e.type?6:4,strokeWidth:1,stroke:"major"===e.type?"#555":"#999",className:"major"===e.type?c.majorTick:c.minorTick,"data-bp":e.base})})),s.filter((function(e){return"major"===e.type})).map((function(e){return n.createElement("text",{x:(a?r-e.base:e.base-t)/o-3,y:18,key:"label-".concat(e.base),style:{fontSize:"11px"},className:c.majorTickLabel},function e(t){return t<999?String(t):"".concat(e(~~(t/1e3)),",").concat("00".concat(~~(t%1e3)).substr(-3,3))}(e.base+1))})))}dt.propTypes={start:W.number.isRequired,end:W.number.isRequired,bpPerPx:W.number.isRequired,reversed:W.bool,major:W.bool,minor:W.bool},dt.defaultProps={reversed:!1,major:!0,minor:!0};var ft=b.observer(dt),mt=f.makeStyles((function(e){var t=e.palette,n=t.tertiary,r=t.primary;return{rubberBand:{height:"100%",background:f.alpha(n?n.main:r.main,.7),position:"absolute",zIndex:10,textAlign:"center",overflow:"hidden"},rubberBandControl:{cursor:"crosshair",width:"100%",minHeight:8},rubberBandText:{color:n?n.contrastText:r.contrastText},popover:{mouseEvents:"none",cursor:"crosshair"},paper:{paddingLeft:e.spacing(1),paddingRight:e.spacing(1)},guide:{pointerEvents:"none",height:"100%",width:1,position:"absolute",zIndex:10}}})),pt=b.observer((function(e){var t,r=e.model,o=e.open,a=e.guideX,i=e.overview,l=mt(),c=r.cytobandOffset,s=u.getSession(r).assemblyManager,d=i.pxToBp(a-c),m=s.get(d.assemblyName),p=null==m||null===(t=m.cytobands)||void 0===t?void 0:t.find((function(e){return d.coord>e.get("start")&&d.coord<e.get("end")&&d.refName===m.getCanonicalRefName(e.get("refName"))}));return n.createElement(f.Tooltip,{open:o,placement:"top",title:[u.stringify(d),null==p?void 0:p.get("name")].join(" "),arrow:!0},n.createElement("div",{className:l.guide,style:{left:a}}))}));function gt(e){var r=e.model,o=e.overview,a=e.ControlComponent,i=void 0===a?n.createElement("div",null):a,l=r.cytobandOffset,c=Be(t.useState(),2),s=c[0],d=c[1],m=Be(t.useState(),2),p=m[0],g=m[1],h=Be(t.useState(),2),v=h[0],y=h[1],b=t.useRef(null),k=t.useRef(null),w=mt(),E=void 0!==s;function x(e){e.preventDefault(),e.stopPropagation(),b.current&&d(e.clientX-b.current.getBoundingClientRect().left)}function S(e){b.current&&y(e.clientX-b.current.getBoundingClientRect().left)}function C(){y(void 0)}if(t.useEffect((function(){function e(e){var t=b.current;if(t&&E){var n=e.clientX-t.getBoundingClientRect().left;g(n)}}function t(){if(b.current&&void 0!==s&&void 0!==p&&Math.abs(p-s)>3&&r.zoomToDisplayedRegions(o.pxToBp(s-l),o.pxToBp(p-l)),b.current&&void 0!==s&&void 0===p){var e=o.pxToBp(s-l);r.centerAt(Math.round(e.coord),e.refName,e.index)}d(void 0),g(void 0),void 0!==s&&y(void 0)}function n(e){"Escape"===e.key&&(d(void 0),g(void 0))}return E?(window.addEventListener("mousemove",e,!0),window.addEventListener("mouseup",t,!0),window.addEventListener("keydown",n,!0),function(){window.removeEventListener("mousemove",e,!0),window.removeEventListener("mouseup",t,!0),window.removeEventListener("keydown",n,!0)}):function(){}}),[E,p,s,r,o,l]),void 0===s)return n.createElement("div",{style:{position:"relative"}},void 0!==v?n.createElement(pt,{model:r,open:!E,overview:o,guideX:v}):null,n.createElement("div",{className:w.rubberBandControl,role:"presentation",ref:b,onMouseDown:x,onMouseOut:C,onMouseMove:S},i));var P,B,T=s||0,R=0;if(void 0!==s&&void 0!==p&&(T=p<s?p:s,R=p-s),s&&(P=o.pxToBp(s-l),B=o.pxToBp(s+R-l),p&&p<s)){var M=[B,P];P=M[0],B=M[1]}return n.createElement("div",{style:{position:"relative"}},k.current?n.createElement(n.Fragment,null,n.createElement(f.Popover,{className:w.popover,classes:{paper:w.paper},open:!0,anchorEl:k.current,anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"bottom",horizontal:"right"},keepMounted:!0,disableRestoreFocus:!0},n.createElement(f.Typography,null,P?u.stringify(P):"")),n.createElement(f.Popover,{className:w.popover,classes:{paper:w.paper},open:!0,anchorEl:k.current,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"bottom",horizontal:"left"},keepMounted:!0,disableRestoreFocus:!0},n.createElement(f.Typography,null,B?u.stringify(B):""))):null,n.createElement("div",{ref:k,className:w.rubberBand,style:{left:T,width:Math.abs(R),height:An}}),n.createElement("div",{"data-testid":"rubberBand_controls",className:w.rubberBandControl,role:"presentation",ref:b,onMouseDown:x,onMouseOut:C,onMouseMove:S},i))}gt.propTypes={model:b.PropTypes.objectOrObservableObject.isRequired,overview:b.PropTypes.objectOrObservableObject.isRequired,ControlComponent:W.node},gt.defaultProps={ControlComponent:n.createElement("div",null)};var ht=b.observer(gt),vt=f.makeStyles((function(e){return{scaleBar:{height:An},scaleBarBorder:{border:"1px solid"},scaleBarContig:{backgroundColor:e.palette.background.default,position:"absolute",top:0,height:An},scaleBarContigForward:{backgroundImage:"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 9'%3E%3Cpath d='M-.1 0L6 4.5L-.1 9' fill='none' stroke='%23ddd'/%3E%3C/svg%3E\")",backgroundRepeat:"repeat"},scaleBarContigReverse:{backgroundImage:"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 9'%3E%3Cpath d='M6 0L0 4.5L6 9' fill='none' stroke='%23ddd'/%3E%3C/svg%3E\")",backgroundRepeat:"repeat"},scaleBarRefName:{position:"absolute",fontWeight:"bold",pointerEvents:"none",zIndex:100},scaleBarLabel:{height:An,width:1,position:"absolute",display:"flex",justifyContent:"center",pointerEvents:"none"},scaleBarVisibleRegion:{position:"absolute",height:An,pointerEvents:"none",zIndex:100,border:"1px solid"},overview:{height:qn,position:"relative"},overviewSvg:{width:"100%",position:"absolute"}}})),yt=b.observer((function(e){var t=e.model,r=e.overview,o=e.useOffset,a=void 0===o||o,i=f.useTheme(),l=Number(a),c=t.interRegionPaddingWidth,s=t.offsetPx,u=t.dynamicBlocks,d=t.cytobandOffset,m=u.contentBlocks,p=u.totalWidthPxWithoutBorders,g=i.palette,h=g.tertiary,v=h?h.light:g.primary.light;if(!m.length)return null;var y=m[0],b=m[m.length-1],k=(r.bpToPx(he(he({},y),{},{coord:y.reversed?y.end:y.start}))||0)+d*l,w=(r.bpToPx(he(he({},b),{},{coord:b.reversed?b.start:b.end}))||0)+d*l,E=Math.max(0,-s);return n.createElement("polygon",{points:[[E,qn],[E+p+m.length*c/2,qn],[w,0],[k,0]].toString(),fill:f.alpha(v,.3),stroke:f.alpha(v,.8)})}));function bt(e,t,n,r,o){return"M"+e+","+t+"h"+(n-o)+"a"+o+","+o+" 0 0 1 "+o+","+o+"v"+(r-2*o)+"a"+o+","+o+" 0 0 1 "+-o+","+o+"h"+(o-n)+"z"}var kt={gneg:"rgb(227,227,227)",gpos25:"rgb(142,142,142)",gpos50:"rgb(85,85,85)",gpos100:"rgb(0,0,0)",gpos75:"rgb(57,57,57)",gvar:"rgb(0,0,0)",stalk:"rgb(127,127,127)",acen:"#800"},wt=b.observer((function(e){var t,r=e.overview,o=e.block,a=e.assembly,i=o.offsetPx,l=o.reversed,c=null==a||null===(t=a.cytobands)||void 0===t?void 0:t.map((function(e){return{refName:a.getCanonicalRefName(e.get("refName")),start:e.get("start"),end:e.get("end"),type:e.get("type")}})).filter((function(e){return e.refName===o.refName})).map((function(e){var t=e.refName,n=e.end,o=e.type;return[r.bpToPx({refName:t,coord:e.start}),r.bpToPx({refName:t,coord:n}),o]})),s=c||[],u=l?s.length-1:0,d=l?0:s.length-1,f=!0;return c?n.createElement("g",{transform:"translate(-".concat(i,")")},c.map((function(e,t){var r,o,a,i=Be(e,3),l=i[0],c=i[1],s=i[2],m="".concat(l,"-").concat(c,"-").concat(s);return"acen"===s&&f?(f=!1,n.createElement("polygon",{key:m,points:[[l,0],[c,An/2],[l,An]].toString(),fill:kt[s]})):"acen"!==s||f?u===t?n.createElement("path",{key:m,d:(r=Math.min(l,c),o=Math.abs(c-l),a=An,"M"+(r+8)+",0h"+(o-8)+"v"+a+"h"+(8-o)+"a8,8 0 0 1 -8,-8v"+(16-a)+"a8,8 0 0 1 8,-8z"),fill:kt[s]}):d===t?n.createElement("path",{key:m,d:bt(Math.min(l,c),0,Math.abs(c-l)-2,An,8),fill:kt[s]}):n.createElement("rect",{key:m,x:Math.min(l,c),y:0,width:Math.abs(c-l),height:An,fill:kt[s]}):n.createElement("polygon",{key:m,points:[[l,An/2],[c,0],[c,An]].toString(),fill:kt[s]})}))):null})),Et=b.observer((function(e){for(var t=e.scale,r=e.model,o=e.block,a=e.overview,i=vt(),l=r.cytobandOffset,c=r.showCytobands,s=o.start,d=o.end,m=o.reversed,p=o.refName,g=o.assemblyName,h=ct(t,120,15).majorPitch,v=u.getSession(r).assemblyManager.get(g),y=null==v?void 0:v.getRefNameColor(p),b=[],k=0;k<Math.floor((d-s)/h);k++){var w=(k+1)*h;b.push(m?d-w:s+w)}return n.createElement("div",null,n.createElement(f.Typography,{style:{left:o.offsetPx+3,color:c?"black":y},className:i.scaleBarRefName},p),n.createElement("div",{className:_(i.scaleBarContig,c?void 0:m?i.scaleBarContigReverse:i.scaleBarContigForward,c?void 0:i.scaleBarBorder),style:{left:o.offsetPx+l,width:o.widthPx,borderColor:y}},c?null:b.map((function(e,r){return n.createElement(f.Typography,{key:"".concat(JSON.stringify(o),"-").concat(e,"-").concat(r),className:i.scaleBarLabel,variant:"body2",style:{left:(r+1)*h/t,pointerEvents:"none",color:y}},e.toLocaleString("en-US"))})),c?n.createElement("svg",{style:{width:"100%"}},n.createElement(wt,{overview:a,assembly:v,block:o})):null))})),xt=b.observer((function(e){var t=e.model,r=e.scale,o=e.overview,a=vt(),i=f.useTheme(),l=t.showCytobands,c=t.cytobandOffset,s=t.dynamicBlocks.contentBlocks,u=o.dynamicBlocks,d=i.palette,m=d.tertiary,p=m?m.light:d.primary.light;if(!s.length)return null;var g=s[0],h=o.bpToPx(he(he({},g),{},{coord:g.reversed?g.end:g.start}))||0,v=s[s.length-1],y=o.bpToPx(he(he({},v),{},{coord:v.reversed?v.start:v.end}))||0,b=l?"#f00":p;return n.createElement("div",{className:a.scaleBar},n.createElement("div",{className:a.scaleBarVisibleRegion,style:{width:y-h,left:h+c,background:f.alpha(b,l?.1:.3),borderColor:b}}),u.map((function(e,i){return e instanceof E.ContentBlock?n.createElement(Et,{scale:r,block:e,model:t,overview:o,key:"".concat(JSON.stringify(e),"-").concat(i)}):n.createElement("div",{key:"".concat(JSON.stringify(e),"-").concat(i),className:a.scaleBarContig,style:{width:e.widthPx,left:e.offsetPx,backgroundColor:"#999",backgroundImage:"repeating-linear-gradient(90deg, transparent, transparent 1px, rgba(255,255,255,.5) 1px, rgba(255,255,255,.5) 3px)"}})})))}));function St(e){var t=e.model,r=e.children,o=vt(),a=t.totalBp,i=t.width,l=t.cytobandOffset,c=t.displayedRegions,s=N.create({displayedRegions:JSON.parse(JSON.stringify(c)),interRegionPaddingWidth:0,minimumBlockWidth:t.minimumBlockWidth}),u=i-l;return s.setVolatileWidth(u),s.showAllRegions(),n.createElement("div",null,n.createElement(ht,{model:t,overview:s,ControlComponent:n.createElement(xt,{model:t,overview:s,scale:a/(u-2*(c.length-1))})}),n.createElement("div",{className:o.overview},n.createElement("svg",{height:qn,className:o.overviewSvg},n.createElement(yt,{model:t,overview:s})),r))}var Ct=b.observer(St);function Pt(e){var t=e.model,r=e.fontSize,o=t.offsetPx,a=t.dynamicBlocks,i=a.totalWidthPxWithoutBorders,l=u.getBpDisplayStr(a.totalBp),c=Math.max(-o,0),s=c+i;return n.createElement(n.Fragment,null,n.createElement("line",{x1:c,x2:s,y1:10,y2:10,stroke:"black"}),n.createElement("line",{x1:c,x2:c,y1:5,y2:15,stroke:"black"}),n.createElement("line",{x1:s,x2:s,y1:5,y2:15,stroke:"black"}),n.createElement("text",{x:c+(s-c)/2,y:2*r,textAnchor:"middle",fontSize:r},l))}function Bt(e){var t=e.model,r=e.fontSize,o=t.dynamicBlocks.contentBlocks,a=t.offsetPx,i=t.bpPerPx,l=o.length<5;return n.createElement(n.Fragment,null,n.createElement("defs",null,n.createElement("clipPath",{id:"clip-ruler"},n.createElement("rect",{x:0,y:0,width:e.width,height:20}))),o.map((function(e){var t=e.start,o=e.end,c=e.reversed,s=e.refName,u=e.offsetPx-a;return n.createElement("g",{key:"".concat(e.key),transform:"translate(".concat(u," 0)")},n.createElement("text",{x:u/i,y:r,fontSize:r},s),l?n.createElement("g",{transform:"translate(0 20)",clipPath:"url(#clip-ruler)"},n.createElement(ft,{start:t,end:o,bpPerPx:i,reversed:c})):n.createElement("line",{strokeWidth:1,stroke:"black",x1:t/i,x2:o/i,y1:20,y2:20}))})))}var Tt=function(e){return e.reduce((function(e,t){return e+t.displays[0].height+20+20}),0)},Rt=function(e){var t=e.model,r=t.width,o=t.assemblyNames,a=t.showCytobands,i=t.displayedRegions,l=u.getSession(t),c=o.length>1?"":o[0],s=l.assemblyManager.get(c),d=N.create({displayedRegions:JSON.parse(JSON.stringify(i)),interRegionPaddingWidth:0,minimumBlockWidth:t.minimumBlockWidth}),f=t.dynamicBlocks.contentBlocks;d.setVolatileWidth(r),d.showAllRegions();var m=d.dynamicBlocks.contentBlocks[0],p=f[0],g=d.bpToPx(he(he({},p),{},{coord:p.reversed?p.end:p.start}))||0,h=f[f.length-1],v=d.bpToPx(he(he({},h),{},{coord:h.reversed?h.start:h.end}))||0,y=a?100:0;return n.createElement("g",{id:"header"},n.createElement("text",{x:0,y:15,fontSize:15},c),a?n.createElement("g",{transform:"translate(0 ".concat(50,")")},n.createElement(wt,{overview:d,assembly:s,block:m}),n.createElement("rect",{stroke:"red",fill:"rgb(255,0,0,0.1)",width:Math.max(v-g,.5),height:An-1,x:g,y:.5}),n.createElement("g",{transform:"translate(0,".concat(An,")")},n.createElement(yt,{overview:d,model:t,useOffset:!1}))):null,n.createElement("g",{transform:"translate(0 ".concat(15+y,")")},n.createElement(Pt,{model:t,fontSize:15})),n.createElement("g",{transform:"translate(0 ".concat(50+y,")")},n.createElement(Bt,{model:t,fontSize:15,width:r})))},Mt=function(e){var t=e.model,r=e.height,o=t.offsetPx,a=t.interRegionPaddingWidth;return n.createElement(n.Fragment,null,t.dynamicBlocks.contentBlocks.slice(1).map((function(e){return n.createElement("rect",{key:e.key,x:e.offsetPx-o-a,width:a,y:0,height:r,stroke:"none",fill:"grey"})})))};function Nt(e){var t=e.model,r=e.offset;return n.createElement(n.Fragment,null,e.displayResults.map((function(e){var a=e.track,i=e.result,l=r,c=o.getConf(a,"name")||"Reference sequence (".concat(o.readConfObject(h.getParent(a.configuration),"name"),")"),s=a.displays[0];return r+=s.height+20+20,n.createElement("g",{key:a.configuration.trackId,transform:"translate(0 ".concat(l,")")},n.createElement("text",{fontSize:15,x:Math.max(-t.offsetPx,0)},c),n.createElement("g",{transform:"translate(0 ".concat(20,")")},i,n.createElement(Mt,{model:t,height:s.height})))})))}function Lt(e,t){return Dt.apply(this,arguments)}function Dt(){return(Dt=be(De.mark((function e(t,o){var a,i,l,c,s,u;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.when((function(){return t.initialized}));case 2:return a=t.width,l=50,c=90+(t.showCytobands?100:0)+20,s=Tt(i=t.tracks)+c,e.next=8,Promise.all(i.map(function(){var e=be(De.mark((function e(t){var n;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.displays[0],e.next=3,r.when((function(){return void 0===n.ready||n.ready}));case 3:return e.next=5,n.renderSvg(o);case 5:return e.abrupt("return",{track:t,result:e.sent});case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 8:return u=e.sent,e.abrupt("return",H.renderToStaticMarkup(n.createElement("svg",{width:a,height:s,xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:[0,0,a+2*l,s].toString()},n.createElement("rect",{width:a+2*l,height:s,fill:"white"}),n.createElement("g",{stroke:"none",transform:"translate(".concat(l," ").concat(15,")")},n.createElement(Rt,{model:t}),n.createElement(Nt,{model:t,displayResults:u,offset:c})))));case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function It(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;return e.filter((function(e,n,r){return n===r.findIndex((function(n){return t(n)===t(e)}))}))}var Ot=t.lazy((function(){return Promise.resolve().then((function(){return Qn}))})),Ft=function(e){var t=e.style;return n.createElement(f.Popper,Object.assign({},e,{style:{width:"fit-content",minWidth:Math.min(+((null==t?void 0:t.width)||0),200),background:"white"},placement:"bottom-start"}))};function zt(e){var r=e.model,o=e.showHelp,a=void 0===o||o,i=e.onSelect,l=e.assemblyName,c=e.style,s=e.fetchResults,d=e.value,m=e.minWidth,p=void 0===m?200:m,g=e.TextFieldProps,h=void 0===g?{}:g,v=u.getSession(r),y=v.assemblyManager,b=Be(t.useState(!1),2),k=b[0],w=b[1],E=Be(t.useState(!0),2),x=E[0],S=E[1],C=Be(t.useState(!1),2),P=C[0],B=C[1],T=Be(t.useState(""),2),R=T[0],M=T[1],N=Be(t.useState(""),2),L=N[0],D=N[1],I=Be(t.useState(),2),O=I[0],F=I[1],z=u.useDebounce(R,300),j=r.coarseVisibleLocStrings,q=r.hasDisplayedRegions,A=l?y.get(l):void 0,H=(null==A?void 0:A.regions)||[],W=t.useMemo((function(){return H.map((function(e){return{result:new V.RefSequenceResult({refName:e.refName,label:e.refName,matchedAttribute:"refName"})}}))}),[H]);t.useEffect((function(){var e=!0;return be(De.mark((function t(){var n;return De.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,""!==z&&l){t.next=3;break}return t.abrupt("return");case 3:return S(!1),t.next=6,s(z);case 6:n=t.sent,e&&(F(It(n,(function(e){return e.getDisplayString()})).map((function(e){return{result:e}}))),S(!0)),t.next=14;break;case 10:t.prev=10,t.t0=t.catch(0),console.error(t.t0),e&&v.notify("".concat(t.t0),"error");case 14:case"end":return t.stop()}}),t,null,[[0,10]])})))(),function(){e=!1}}),[l,s,z,v,r]);var _=j||d||"",Y=Math.min(Math.max(u.measureText(_,16)+45,p),550);return n.createElement(n.Fragment,null,n.createElement(U,{id:"refNameAutocomplete-".concat(r.id),"data-testid":"autocomplete",disableListWrap:!0,disableClearable:!0,PopperComponent:Ft,disabled:!l,freeSolo:!0,includeInputInList:!0,selectOnFocus:!0,style:he(he({},c),{},{width:Y}),value:_,loading:!x,inputValue:L,onInputChange:function(e,t){return D(t)},loadingText:"loading results",open:k,onOpen:function(){return w(!0)},onClose:function(){w(!1),S(!0),q&&(M(""),F(void 0))},onChange:function(e,t){t&&l&&(i("string"==typeof t?new G({label:t}):t.result),D(_))},options:null!=O&&O.length?O:W,getOptionDisabled:function(e){return"limitOption"===(null==e?void 0:e.group)},filterOptions:function(e,t){var n=function(e,t){return e.filter((function(e){var n=e.result;return n.getLabel().toLowerCase().includes(t)||n.matchedObject}))}(e,t.inputValue.toLocaleLowerCase());return[].concat(Te(n.slice(0,100)),Te(n.length>100?[{group:"limitOption",result:new G({label:"keep typing for more results"})}]:[]))},renderInput:function(e){var t=h.InputProps,r=void 0===t?{}:t;return n.createElement(f.TextField,Object.assign({onBlur:function(){D(_)}},e,h,{helperText:h.helperText,InputProps:he(he(he({},e.InputProps),r),{},{endAdornment:n.createElement(n.Fragment,null,0===H.length?n.createElement(f.CircularProgress,{color:"inherit",size:20}):n.createElement(f.InputAdornment,{position:"end",style:{marginRight:7}},n.createElement(X,null),a?n.createElement(f.IconButton,{onClick:function(){return B(!0)}},n.createElement(J,null)):null),e.InputProps.endAdornment)}),placeholder:"Search for location",onChange:function(e){M(e.target.value)}}))},renderOption:function(e){var t=e.result,r=t.getRenderingComponent();return r&&n.isValidElement(r)?r:n.createElement(f.Typography,{noWrap:!0},t.getDisplayString())},getOptionLabel:function(e){return("string"==typeof e?e:e.result.getLabel())||""}}),P?n.createElement(t.Suspense,{fallback:n.createElement("div",null)},n.createElement(Ot,{handleClose:function(){return B(!1)}})):null)}var jt=b.observer(zt),qt=f.makeStyles((function(){return{headerRefName:{minWidth:100}}}));function At(e){var t=e.model,r=e.showHelp,o=qt(),a=f.useTheme(),i=u.getSession(t),l=i.textSearchManager,c=t.rankSearchResults,s=t.assemblyNames[0],d=i.assemblyManager.get(s),m=t.searchScope(s);function p(e,t){return g.apply(this,arguments)}function g(){return(g=be(De.mark((function e(t,n){var r,o,a;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l||console.warn("No text search manager"),e.next=3,null==l?void 0:l.search({queryString:t,searchType:n},m,c);case 3:return o=e.sent,a=null==d||null===(r=d.allRefNames)||void 0===r?void 0:r.filter((function(e){return e.startsWith(t)})).map((function(e){return new G({label:e})})).slice(0,10),e.abrupt("return",It([].concat(Te(a||[]),Te(o||[])),(function(e){return e.getId()})));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function h(){return(h=be(De.mark((function e(n){var r,o,a,l,c;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.getTrackId(),o=n.getLocation(),a=n.getLabel(),e.prev=3,null==d||null===(l=d.allRefNames)||void 0===l||!l.includes(o)){e.next=8;break}t.navToLocString(o),e.next=19;break;case 8:return e.next=10,p(a,"exact");case 10:if(!((c=e.sent)&&c.length>1)){e.next=16;break}return t.setSearchResults(c,a.toLowerCase()),e.abrupt("return");case 16:1===(null==c?void 0:c.length)&&(o=c[0].getLocation(),r=c[0].getTrackId());case 17:t.navToLocString(o,s),r&&t.showTrack(r);case 19:e.next=25;break;case 21:e.prev=21,e.t0=e.catch(3),console.error(e.t0),i.notify("".concat(e.t0),"warning");case 25:case"end":return e.stop()}}),e,null,[[3,21]])})))).apply(this,arguments)}return n.createElement(jt,{showHelp:r,onSelect:function(e){return h.apply(this,arguments)},assemblyName:s,fetchResults:p,model:t,TextFieldProps:{variant:"outlined",className:o.headerRefName,style:{margin:Vn,minWidth:"175px"},InputProps:{style:{padding:0,height:_n,background:f.alpha(a.palette.background.paper,.8)}}}})}var Ht=b.observer(At),Wt=w.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function _t(e){var r,o=e.model,a=e.handleClose,i="undefined"!=typeof OffscreenCanvas,l=Be(t.useState(i),2),c=l[0],s=l[1],u=Be(t.useState(!1),2),d=u[0],m=u[1],p=Be(t.useState(),2),g=p[0],h=p[1],v=Wt();return n.createElement(f.Dialog,{open:!0,onClose:a},n.createElement(f.DialogTitle,null,"Export SVG",n.createElement(f.IconButton,{className:v.closeButton,onClick:a},n.createElement(Y,null))),n.createElement(f.DialogContent,null,g?n.createElement("div",{style:{color:"red"}},"".concat(g)):d?n.createElement("div",null,n.createElement(f.CircularProgress,{size:20,style:{marginRight:20}}),n.createElement(f.Typography,{display:"inline"},"Creating SVG")):null,i?n.createElement(f.FormControlLabel,{control:n.createElement(f.Checkbox,{checked:c,onChange:function(){return s((function(e){return!e}))}}),label:"Rasterize canvas based tracks? File may be much larger if this is turned off"}):n.createElement(f.Typography,null,"Note: rasterizing layers not yet supported in this browser, so SVG size may be large")),n.createElement(f.DialogActions,null,n.createElement(f.Button,{variant:"contained",color:"secondary",onClick:function(){return a()}},"Cancel"),n.createElement(f.Button,{variant:"contained",color:"primary",type:"submit",onClick:(r=be(De.mark((function e(){return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return m(!0),h(void 0),e.prev=2,e.next=5,o.exportSvg({rasterizeLayers:c});case 5:a(),e.next=12;break;case 8:e.prev=8,e.t0=e.catch(2),console.error(e.t0),h(e.t0);case 12:return e.prev=12,m(!1),e.finish(12);case 15:case"end":return e.stop()}}),e,null,[[2,8,12,15]])}))),function(){return r.apply(this,arguments)})},"Submit")))}var Vt=w.makeStyles({container:{display:"flex",flexDirection:"row",alignItems:"center"},slider:{width:70}});function Gt(e){var r=e.model,o=Vt(),a=r.maxBpPerPx,i=r.minBpPerPx,l=r.bpPerPx,c=r.scaleFactor,s=Be(t.useState(100*-Math.log2(l)),2),u=s[0],d=s[1];return t.useEffect((function(){d(100*-Math.log2(l))}),[d,l]),n.createElement("div",{className:o.container},n.createElement(Q,{"data-testid":"zoom_out",onClick:function(){r.zoom(2*l)},disabled:l>=a-1e-4||1!==c,color:"secondary"},n.createElement(ee,null)),n.createElement($,{className:o.slider,value:u,min:100*-Math.log2(a),max:100*-Math.log2(i),onChange:function(e,t){return d(t)},onChangeCommitted:function(){return r.zoomTo(Math.pow(2,-u/100))},disabled:1!==c}),n.createElement(Q,{"data-testid":"zoom_in",onClick:function(){r.zoom(r.bpPerPx/2)},disabled:l<=i+1e-4||1!==c,color:"secondary"},n.createElement(A,null)))}var Xt=b.observer(Gt),Ut=f.makeStyles((function(e){return{headerBar:{height:qn,display:"flex"},headerForm:{flexWrap:"nowrap",marginRight:7},spacer:{flexGrow:1},panButton:{background:f.alpha(e.palette.background.paper,.8),height:_n,margin:Vn},bp:{display:"flex",alignItems:"center",marginLeft:5},toggleButton:{height:44,border:"none",margin:e.spacing(.5)},buttonSpacer:{marginRight:e.spacing(2)}}})),Jt=b.observer((function(e){var t=e.model,r=Ut();return n.createElement(f.Button,{onClick:t.activateTrackSelector,className:r.toggleButton,title:"Open track selector",value:"track_select",color:"secondary"},n.createElement(I.TrackSelector,{className:r.buttonSpacer}))}));function Yt(e){var t=e.model,r=Ut();return n.createElement(n.Fragment,null,n.createElement(f.Button,{variant:"outlined",className:r.panButton,onClick:function(){return t.slide(-.9)}},n.createElement(K,null)),n.createElement(f.Button,{variant:"outlined",className:r.panButton,onClick:function(){return t.slide(.9)}},n.createElement(Z,null)))}var Zt=b.observer((function(e){var t=e.model,r=Ut();return n.createElement(f.Typography,{variant:"body2",color:"textSecondary",className:r.bp},Math.round(t.coarseTotalBp).toLocaleString("en-US")," bp")})),Kt=function(e){var t=e.model,r=Ut();return n.createElement("div",{className:r.headerBar},n.createElement(Jt,{model:t}),n.createElement("div",{className:r.spacer}),n.createElement(f.FormGroup,{row:!0,className:r.headerForm},n.createElement(Yt,{model:t}),n.createElement(Ht,{model:t})),n.createElement(Zt,{model:t}),n.createElement(Xt,{model:t}),n.createElement("div",{className:r.spacer}))},Qt=b.observer((function(e){var t=e.model;return t.hideHeaderOverview?n.createElement(Kt,{model:t}):n.createElement(Ct,{model:t},n.createElement(Kt,{model:t}))})),$t=f.makeStyles((function(e){return{root:{background:f.alpha(e.palette.background.paper,.8),"&:hover":{background:e.palette.background.paper},transition:e.transitions.create(["background"],{duration:e.transitions.duration.shortest})},trackName:{margin:"0 auto",width:"90%",fontSize:"0.8rem",pointerEvents:"none"},dragHandle:{cursor:"grab",color:"#135560"},dragHandleIcon:{display:"inline-block",verticalAlign:"middle",pointerEvents:"none"},iconButton:{padding:e.spacing(1)}}})),en=b.observer(n.forwardRef((function(e,t){var r,a=$t(),i=Be(n.useState(null),2),l=i[0],c=i[1],s=e.track,d=e.className,m=u.getContainingView(s),p=u.getSession(s),g=s.configuration,h=o.getConf(s,"trackId"),v=function(){c(null)},b=o.getConf(s,"name");"ReferenceSequenceTrack"===o.getConf(s,"type")&&(b="Reference Sequence",p.assemblies.forEach((function(e){e.sequence===g&&(b="Reference Sequence (".concat(o.readConfObject(e,"name"),")"))})));var k=[].concat(Te(null===(r=p.getTrackActionMenuItems)||void 0===r?void 0:r.call(p,g)),Te(s.trackMenuItems())).sort((function(e,t){return(t.priority||0)-(e.priority||0)}));return n.createElement(n.Fragment,null,n.createElement(f.Paper,{ref:t,className:_(d,a.root)},n.createElement("span",{draggable:!0,className:a.dragHandle,onDragStart:function(e){var t=e.target;t.parentNode&&(e.dataTransfer.setDragImage(t.parentNode,20,20),m.setDraggingTrackId(s.id))},onDragEnd:function(){m.setDraggingTrackId(void 0)},"data-testid":"dragHandle-".concat(m.id,"-").concat(h)},n.createElement(ne,{className:a.dragHandleIcon})),n.createElement(f.IconButton,{onClick:function(){return m.hideTrack(h)},className:a.iconButton,title:"close this track",color:"secondary"},n.createElement(Y,null)),n.createElement(f.Typography,{variant:"body1",component:"span",className:a.trackName},b),n.createElement(f.IconButton,{"aria-controls":"simple-menu","aria-haspopup":"true",onClick:function(e){c(e.currentTarget)},className:a.iconButton,color:"secondary","data-testid":"track_menu_icon",disabled:!k.length},n.createElement(te,null))),n.createElement(y.Menu,{anchorEl:l,onMenuItemClick:function(e,t){t(),v()},open:Boolean(l),onClose:v,menuItems:k}))}))),tn=f.makeStyles((function(e){return{root:{},resizeHandle:{height:Wn,zIndex:2},overlay:{pointerEvents:"none",position:"absolute",top:0,left:0,width:"100%",zIndex:3,borderRadius:e.shape.borderRadius},trackLabel:{zIndex:3,margin:e.spacing(1)},trackLabelInline:{position:"relative",display:"inline-block"},trackLabelOverlap:{position:"absolute"},trackRenderingContainer:{overflowY:"auto",overflowX:"hidden",whiteSpace:"nowrap",position:"relative",background:"none",zIndex:2}}}));function nn(e){var r=e.model,a=e.track,i=tn(),l=a.displays[0],c=r.id,s=r.trackLabels,d=r.horizontalScroll,m=r.draggingTrackId,p=r.moveTrack,g=l.height,v=o.getConf(a,"trackId"),b=t.useRef(null);t.useEffect((function(){return b.current&&(r.trackRefs[v]=b.current),function(){delete r.trackRefs[v]}}),[r.trackRefs,v]);var k=u.useDebouncedCallback((function(){void 0!==m&&h.isAlive(l)&&m!==l.id&&p(m,a.id)}),100),w=l.RenderingComponent,E=l.DisplayBlurb,x=void 0!==m&&m!==l.id;return n.createElement("div",{className:i.root},n.createElement(f.Paper,{variant:"outlined",className:i.trackRenderingContainer,style:{height:g},onScroll:function(e){l.setScrollTop(e.target.scrollTop)},onDragEnter:k,"data-testid":"trackRenderingContainer-".concat(c,"-").concat(v),role:"presentation"},"hidden"!==s?n.createElement(en,{track:a,className:_(i.trackLabel,"overlapping"===s?i.trackLabelOverlap:i.trackLabelInline)}):null,n.createElement("div",{ref:b,style:{transform:"scaleX(".concat(r.scaleFactor,")")}},n.createElement(w,{model:l,blockState:{},onHorizontalScroll:d})),E?n.createElement("div",{style:{position:"absolute",left:0,top:l.height-20}},n.createElement(E,{model:l})):null),n.createElement("div",{className:i.overlay,style:{height:l.height,background:x?"rgba(0, 0, 0, 0.4)":void 0},onDragEnter:k}),n.createElement(y.ResizeHandle,{onDrag:l.resizeHeight,className:i.resizeHandle}))}var rn=b.observer(nn),on=w.makeStyles((function(e){return{rubberBand:{height:"100%",background:oe.alpha(e.palette.tertiary?e.palette.tertiary.main:e.palette.primary.main,.7),position:"absolute",zIndex:10,textAlign:"center",overflow:"hidden"},rubberBandControl:{cursor:"crosshair",width:"100%",minHeight:8},rubberBandText:{color:e.palette.tertiary?e.palette.tertiary.contrastText:e.palette.primary.contrastText},popover:{mouseEvents:"none",cursor:"crosshair"},paper:{paddingLeft:e.spacing(1),paddingRight:e.spacing(1)},guide:{pointerEvents:"none",height:"100%",width:1,position:"absolute",zIndex:10}}})),an=b.observer((function(e){var t=e.model,r=e.coordX,o=on();return n.createElement(ie,{open:!0,placement:"top",title:u.stringify(t.pxToBp(r)),arrow:!0},n.createElement("div",{className:o.guide,style:{left:r,background:"red"}}))}));function ln(e){var r=e.model,o=e.ControlComponent,a=void 0===o?n.createElement("div",null):o,i=Be(t.useState(),2),l=i[0],c=i[1],s=Be(t.useState(),2),d=s[0],f=s[1],m=Be(t.useState(),2),p=m[0],g=m[1],h=Be(t.useState(),2),v=h[0],b=h[1],k=t.useRef(null),w=t.useRef(null),E=on(),x=void 0!==l&&void 0===p,S=r.setOffsets,P=r.pxToBp;function B(e){e.preventDefault(),e.stopPropagation();var t=e.clientX-e.target.getBoundingClientRect().left;c(t),f(t)}function T(e){b(e.clientX-e.target.getBoundingClientRect().left)}function R(){b(void 0),r.setOffsets(void 0,void 0)}function M(){g(void 0),c(void 0),f(void 0)}t.useEffect((function(){function e(e){if(k.current&&x){var t=e.clientX-k.current.getBoundingClientRect().left;f(t)}}function t(e){if(void 0!==l&&k.current){var t=e.clientX,n=e.clientY,r=t-k.current.getBoundingClientRect().left;g({offsetX:r,clientX:t,clientY:n});var o=function(e){if(void 0!==l){var t=l,n=e;if(n<t){var r=[n,t];t=r[0],n=r[1]}return{leftOffset:P(t),rightOffset:P(n)}}}(r);S(o.leftOffset,o.rightOffset),b(void 0)}}return x?(window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),function(){window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}):function(){}}),[l,x,p,S,P]),t.useEffect((function(){!x&&void 0!==d&&void 0!==l&&Math.abs(d-l)<=3&&M()}),[x,d,l,r.bpPerPx]);var N=Boolean(p);if(void 0===l)return n.createElement(n.Fragment,null,void 0!==v?n.createElement(an,{model:r,coordX:v}):null,n.createElement("div",{"data-testid":"rubberBand_controls",className:E.rubberBandControl,role:"presentation",ref:k,onMouseDown:B,onMouseOut:R,onMouseMove:T},a));var L=p?p.offsetX:d||0,D=L<l?L:l,I=Math.abs(L-l),O=r.pxToBp(D),F=r.pxToBp(D+I),z=Math.ceil(I*r.bpPerPx);return n.createElement(n.Fragment,null,w.current?n.createElement(n.Fragment,null,n.createElement(ae,{className:E.popover,classes:{paper:E.paper},open:!0,anchorEl:w.current,anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"bottom",horizontal:"right"},keepMounted:!0,disableRestoreFocus:!0},n.createElement(C,null,u.stringify(O))),n.createElement(ae,{className:E.popover,classes:{paper:E.paper},open:!0,anchorEl:w.current,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"bottom",horizontal:"left"},keepMounted:!0,disableRestoreFocus:!0},n.createElement(C,null,u.stringify(F)))):null,n.createElement("div",{ref:w,className:E.rubberBand,style:{left:D,width:I}},n.createElement(C,{variant:"h6",className:E.rubberBandText},z.toLocaleString("en-US")," bp")),n.createElement("div",{"data-testid":"rubberBand_controls",className:E.rubberBandControl,role:"presentation",ref:k,onMouseDown:B,onMouseOut:R,onMouseMove:T},a),p?n.createElement(y.Menu,{anchorReference:"anchorPosition",anchorPosition:{left:p.clientX,top:p.clientY},onMenuItemClick:function(e,t){t(),M()},open:N,onClose:M,menuItems:r.rubberBandMenuItems()}):null)}ln.propTypes={model:b.PropTypes.objectOrObservableObject.isRequired,ControlComponent:W.node},ln.defaultProps={ControlComponent:n.createElement("div",null)};var cn=b.observer(ln),sn=["model","style","className"],un=w.makeStyles((function(e){return{scaleBarContainer:{overflow:"hidden",position:"relative"},scaleBarZoomContainer:{position:"relative",zIndex:1},scaleBar:{position:"absolute",display:"flex",pointerEvents:"none"},majorTickLabel:{fontSize:"11px",zIndex:1,background:e.palette.background.paper,lineHeight:"normal",pointerEvents:"none"},tick:{position:"absolute",width:0,display:"flex",justifyContent:"center",pointerEvents:"none"},refLabel:{fontSize:"11px",position:"absolute",left:"2px",top:"-1px",fontWeight:"bold",lineHeight:"normal",zIndex:1,pointerEvents:"none",background:e.palette.background.paper}}})),dn=b.observer((function(e){var t=e.model,r=un(),o=0;return t.staticBlocks.forEach((function(e,n){e.offsetPx-t.offsetPx<0&&(o=n)})),n.createElement(n.Fragment,null,t.staticBlocks.map((function(e,a){return e instanceof E.ContentBlock&&(e.isLeftEndOfDisplayedRegion||a===o)?n.createElement(C,{key:"refLabel-".concat(e.key,"-").concat(a),style:{left:a===o?Math.max(0,-t.offsetPx):e.offsetPx-t.offsetPx-1,paddingLeft:a===o?0:1},className:r.refLabel,"data-testid":"refLabel-".concat(e.refName)},e.refName):null})))})),fn=b.observer((function(e){var t=e.model,r=un();return n.createElement(n.Fragment,null,t.staticBlocks.map((function(e,o){if(e instanceof E.ContentBlock){var a=st(e.start,e.end,t.bpPerPx,!0,!1);return n.createElement(Fe,{key:"".concat(e.key,"-").concat(o),block:e},a.map((function(o){if("major"===o.type){var a=(e.reversed?e.end-o.base:o.base-e.start)/t.bpPerPx,i=(o.base+1).toLocaleString("en-US");return n.createElement("div",{key:o.base,className:r.tick,style:{left:a}},i?n.createElement(C,{className:r.majorTickLabel},i):null)}return null})))}return e instanceof E.ElidedBlock?n.createElement(ze,{key:e.key,width:e.widthPx}):e instanceof E.InterRegionPaddingBlock?n.createElement(je,{key:e.key,width:e.widthPx,style:{background:"none"},boundary:"boundary"===e.variant}):null})))})),mn=b.observer(n.forwardRef((function(e,t){var r=e.model,o=e.style,a=e.className,i=Se(e,sn),l=un(),c=r.staticBlocks.offsetPx-r.offsetPx;return n.createElement(le,Object.assign({"data-resizer":"true",className:_(l.scaleBarContainer,a),variant:"outlined",ref:t,style:o},i),n.createElement("div",{className:l.scaleBarZoomContainer,style:{transform:1!==r.scaleFactor?"scaleX(".concat(r.scaleFactor,")"):void 0}},n.createElement("div",{className:l.scaleBar,style:he({left:c-1,width:r.staticBlocks.totalWidthPx},o)},n.createElement(fn,{model:r}))),n.createElement(dn,{model:r}))}))),pn=w.makeStyles((function(e){return{verticalGuidesZoomContainer:{position:"absolute",height:"100%",width:"100%",zIndex:1,pointerEvents:"none"},verticalGuidesContainer:{position:"absolute",height:"100%",zIndex:1,pointerEvents:"none",display:"flex"},tick:{position:"absolute",height:"100%",width:1},majorTick:{background:e.palette.text.hint},minorTick:{background:e.palette.divider}}})),gn=b.observer((function(e){var t=e.model,r=pn();return n.createElement(n.Fragment,null,t.staticBlocks.map((function(e,o){if(e instanceof E.ContentBlock){var a=st(e.start,e.end,t.bpPerPx);return n.createElement(Fe,{key:"".concat(e.key,"-").concat(o),block:e},a.map((function(o){var a=(e.reversed?e.end-o.base:o.base-e.start)/t.bpPerPx;return n.createElement("div",{key:o.base,className:_(r.tick,"major"===o.type||"labeledMajor"===o.type?r.majorTick:r.minorTick),style:{left:a}})})))}return e instanceof E.ElidedBlock?n.createElement(ze,{key:e.key,width:e.widthPx}):e instanceof E.InterRegionPaddingBlock?n.createElement(je,{key:e.key,width:e.widthPx,boundary:"boundary"===e.variant}):null})))}));function hn(e){var t=e.model,r=pn(),o=t.staticBlocks.offsetPx-t.offsetPx;return n.createElement("div",{className:r.verticalGuidesZoomContainer,style:{transform:1!==t.scaleFactor?"scaleX(".concat(t.scaleFactor,")"):void 0}},n.createElement("div",{className:r.verticalGuidesContainer,style:{left:o,width:t.staticBlocks.totalWidthPx}},n.createElement(gn,{model:t})))}var vn=b.observer(hn),yn=w.makeStyles((function(){return{centerLineContainer:{background:"transparent",height:"100%",zIndex:5,position:"absolute",border:"1px black dashed",borderTop:"none",borderBottom:"none",pointerEvents:"none"},centerLineText:{position:"absolute",pointerEvents:"none",whiteSpace:"nowrap",fontWeight:"bold"}}}));function bn(e){var r=e.model,o=r.bpPerPx,a=r.centerLineInfo,i=r.trackHeights,l=r.tracks,c=r.width,s=t.useRef(null),u=yn();return l.length?n.createElement("div",{"data-testid":"centerline_container",className:u.centerLineContainer,role:"presentation",ref:s,style:{left:"".concat(c/2,"px"),width:Math.max(1/o,1)}},a&&n.createElement("div",{"data-testid":"centerline_text",className:u.centerLineText,role:"presentation",style:{left:Math.max(1/o,1)+5,top:i}},a.refName,":"," ",Math.max(Math.round(a.offset)+1,0))):null}bn.propTypes={model:b.PropTypes.objectOrObservableObject.isRequired};var kn=b.observer(bn),wn=w.makeStyles((function(e){return{tracksContainer:{position:"relative",borderRadius:e.shape.borderRadius,overflow:"hidden"},spacer:{position:"relative",height:Wn}}}));function En(e){var r=e.children,o=e.model,a=wn(),i=t.useRef(0),l=t.useRef(!1),c=t.useRef(),s=t.useRef(null),u=t.useRef(0),d=Be(t.useState(!1),2),f=d[0],m=d[1];return t.useEffect((function(){var e=function(){};function t(e){e.preventDefault();var t=e.clientX-u.current;t&&(l.current||(l.current=!0,window.requestAnimationFrame((function(){o.horizontalScroll(-t),l.current=!1,u.current=e.clientX}))))}function n(){u.current=0,f&&m(!1)}return f&&(window.addEventListener("mousemove",t,!0),window.addEventListener("mouseup",n,!0),e=function(){window.removeEventListener("mousemove",t,!0),window.removeEventListener("mouseup",n,!0)}),e}),[o,f,u]),t.useEffect((function(){var e=s.current;function t(e){var t=re(e);!0===e.ctrlKey?(e.preventDefault(),i.current+=t.pixelY/500,o.setScaleFactor(i.current<0?1-i.current:1/(1+i.current)),c.current&&clearTimeout(c.current),c.current=setTimeout((function(){o.setScaleFactor(1),o.zoomTo(i.current>0?o.bpPerPx*(1+i.current):o.bpPerPx/(1-i.current)),i.current=0}),300)):(Math.abs(t.pixelX)>Math.abs(2*t.pixelY)&&e.preventDefault(),i.current+=t.pixelX,l.current||(l.current=!0,window.requestAnimationFrame((function(){o.horizontalScroll(i.current),i.current=0,l.current=!1}))))}return e?(e.addEventListener("wheel",t),function(){e.removeEventListener("wheel",t)}):function(){}}),[o]),n.createElement("div",{ref:s,role:"presentation",className:a.tracksContainer,onMouseDown:function(e){var t=e.target;t.draggable||t.dataset.resizer||0===e.button&&(u.current=e.clientX,m(!0))},onMouseUp:function(e){e.preventDefault(),m(!1)},onMouseLeave:function(e){e.preventDefault()}},n.createElement(vn,{model:o}),o.showCenterLine?n.createElement(kn,{model:o}):null,n.createElement(cn,{model:o,ControlComponent:n.createElement(mn,{model:o,style:{height:Hn,boxSizing:"border-box"}})}),n.createElement("div",{className:a.spacer}),r)}var xn=b.observer(En),Sn=t.lazy((function(){return Promise.resolve().then((function(){return On}))})),Cn=f.makeStyles((function(e){return{importFormContainer:{padding:e.spacing(2)},button:{margin:e.spacing(2)}}})),Pn=b.observer((function(e){var r,o=e.model,a=Cn(),i=u.getSession(o),l=i.assemblyNames,c=i.assemblyManager,s=i.textSearchManager,d=o.rankSearchResults,m=o.isSearchDialogDisplayed,p=o.error,g=Be(t.useState(l[0]),2),h=g[0],v=g[1],y=Be(t.useState(p),2),b=y[0],k=y[1],w=o.searchScope(h),E=c.get(h),x=l.length?null==E?void 0:E.error:"No configured assemblies",S=(null==E?void 0:E.regions)||[],C=x||b,P=Be(t.useState(),2),B=P[1],T=P[0]||new G({label:null===(r=S[0])||void 0===r?void 0:r.refName}),R=null==T?void 0:T.getLocation();function M(e,t){return N.apply(this,arguments)}function N(){return(N=be(De.mark((function e(t,n){var r,o,a;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s||console.warn("No text search manager"),e.next=3,null==s?void 0:s.search({queryString:t,searchType:n},w,d);case 3:return o=e.sent,a=null==E||null===(r=E.allRefNames)||void 0===r?void 0:r.filter((function(e){return e.startsWith(t)})).map((function(e){return new G({label:e})})).slice(0,10),e.abrupt("return",[].concat(Te(a||[]),Te(o||[])));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function L(){return(L=be(De.mark((function e(t){var n,r,a,l;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(T){e.next=2;break}return e.abrupt("return");case 2:if(n=T.getTrackId(),r=t||T.getLocation()||"",e.prev=4,null==E||null===(a=E.allRefNames)||void 0===a||!a.includes(r)){e.next=9;break}o.navToLocString(r,h),e.next=20;break;case 9:return e.next=11,M(t,"exact");case 11:if(!((l=e.sent)&&l.length>1)){e.next=17;break}return o.setSearchResults(l,t.toLowerCase()),e.abrupt("return");case 17:1===(null==l?void 0:l.length)&&(r=l[0].getLocation(),n=l[0].getTrackId());case 18:o.navToLocString(r,h),n&&o.showTrack(n);case 20:e.next=26;break;case 22:e.prev=22,e.t0=e.catch(4),console.error(e.t0),i.notify("".concat(e.t0),"warning");case 26:case"end":return e.stop()}}),e,null,[[4,22]])})))).apply(this,arguments)}return n.createElement("div",null,C?n.createElement(ce,{error:C}):null,n.createElement(f.Container,{className:a.importFormContainer},n.createElement("form",{onSubmit:function(e){return e.preventDefault()}},n.createElement(f.Grid,{container:!0,spacing:1,justifyContent:"center",alignItems:"center"},n.createElement(f.Grid,{item:!0},n.createElement(se,{onChange:function(e){k(void 0),v(e)},session:i,selected:h})),n.createElement(f.Grid,{item:!0},h?C?n.createElement(Y,{style:{color:"red"}}):R?n.createElement(jt,{fetchResults:M,model:o,assemblyName:x?void 0:h,value:R,minWidth:270,onSelect:function(e){return B(e)},TextFieldProps:{margin:"normal",variant:"outlined",helperText:"Enter sequence name, feature name, or location"}}):n.createElement(f.CircularProgress,{role:"progressbar",size:20,disableShrink:!0}):null),n.createElement(f.Grid,{item:!0}),n.createElement(f.Grid,{item:!0},n.createElement(f.Button,{type:"submit",disabled:!R,className:a.button,onClick:function(){o.setError(void 0),R&&function(e){L.apply(this,arguments)}(R)},variant:"contained",color:"primary"},"Open"),n.createElement(f.Button,{disabled:!R,className:a.button,onClick:function(){o.setError(void 0),o.showAllRegionsInAssembly(h)},variant:"contained",color:"secondary"},"Show all regions in assembly"))))),m?n.createElement(Sn,{model:o,optAssemblyName:h,handleClose:function(){return o.setSearchResults(void 0,void 0)}}):null)})),Bn=b.observer((function(e){var r=e.model,o=r.bpPerPx,a=r.maxBpPerPx,i=r.minBpPerPx,l=r.scaleFactor,c=Be(t.useState(),2),s=c[0],u=c[1];return n.createElement(n.Fragment,null,n.createElement(le,{style:{background:"#aaa7"}},n.createElement(Q,{color:"secondary",onClick:function(e){u(e.currentTarget)}},n.createElement(ue,null)),n.createElement(Q,{"data-testid":"zoom_out",onClick:function(){r.zoom(2*o)},disabled:o>=a-1e-4||1!==l,color:"secondary"},n.createElement(ee,null)),n.createElement(Q,{"data-testid":"zoom_in",onClick:function(){r.zoom(r.bpPerPx/2)},disabled:o<=i+1e-4||1!==l,color:"secondary"},n.createElement(A,null))),n.createElement(de,{anchorEl:s,open:Boolean(s),onMenuItemClick:function(e,t){t(),u(void 0)},onClose:function(){u(void 0)},menuItems:r.menuItems()}))})),Tn=f.makeStyles((function(e){return{loadingMessage:{padding:e.spacing(5)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},dialogContent:{width:"80em"},textAreaFont:{fontFamily:"Courier New"}}}));function Rn(e,t,n){return Mn.apply(this,arguments)}function Mn(){return(Mn=be(De.mark((function e(t,n,r){var a,i,l,c,s,d,f;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=u.getSession(t),l=t.rightOffset,(i=t.leftOffset)&&l){e.next=4;break}throw new Error("no offsets on model to use for range");case 4:if(i.assemblyName===l.assemblyName){e.next=6;break}throw new Error("not able to fetch sequences from multiple assemblies");case 6:if(c=a.rpcManager,d=a.assemblyManager.get(s=i.assemblyName||l.assemblyName||"")){e.next=11;break}throw new Error("assembly ".concat(s," not found"));case 11:return f=o.getConf(d,["sequence","adapter"]),e.next=15,Promise.all(n.map((function(e){return c.call("getSequence","CoreGetFeatures",{adapterConfig:f,region:e,sessionId:"getSequence",signal:r})})));case 15:return e.abrupt("return",e.sent.map((function(e){return e[0]})));case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Nn(e){var r=e.model,o=e.handleClose,a=Tn(),i=u.getSession(r),l=Be(t.useState(),2),c=l[0],s=l[1],d=Be(t.useState(),2),m=d[0],p=d[1],g=Boolean(void 0===m),h=r.leftOffset,v=r.rightOffset,y=t.useMemo((function(){return r.getSelectedRegions(h,v)}),[r,h,v]);t.useEffect((function(){var e=!0,t=new AbortController;return be(De.mark((function n(){var o;return De.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(n.prev=0,!(y.length>0)){n.next=8;break}return n.next=4,Rn(r,y,t.signal);case 4:o=n.sent,e&&p(me.formatSeqFasta(o.filter((function(e){return!!e})).map((function(e){var t=e.get("seq"),n=e.get("refName"),r=e.get("start")+1,o=e.get("end"),a="".concat(n,":").concat(r,"-").concat(o);if((null==t?void 0:t.length)!==o-r+1)throw new Error("".concat(a," returned ").concat(t.length.toLocaleString()," bases, but should have returned ").concat((o-r).toLocaleString()));return{header:a,seq:t}})))),n.next=9;break;case 8:throw new Error("Selected region is out of bounds");case 9:n.next=15;break;case 11:n.prev=11,n.t0=n.catch(0),console.error(n.t0),e&&s(n.t0);case 15:case"end":return n.stop()}}),n,null,[[0,11]])})))(),function(){t.abort(),e=!1}}),[r,i,y,p]);var b=!!m&&m.length>1e6;return n.createElement(f.Dialog,{"data-testid":"sequence-dialog",maxWidth:"xl",open:!0,onClose:o,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},n.createElement(f.DialogTitle,{id:"alert-dialog-title"},"Reference sequence",o?n.createElement(f.IconButton,{"data-testid":"close-seqDialog",className:a.closeButton,onClick:function(){o(),r.setOffsets(void 0,void 0)}},n.createElement(Y,null)):null),n.createElement(f.Divider,null),n.createElement(f.DialogContent,null,c?n.createElement(f.Typography,{color:"error"},"".concat(c)):null,g&&!c?n.createElement(f.Container,null,"Retrieving reference sequence...",n.createElement(f.CircularProgress,{style:{marginLeft:10},size:20,disableShrink:!0})):null,n.createElement(f.TextField,{"data-testid":"rubberband-sequence",variant:"outlined",multiline:!0,rows:5,disabled:b,className:a.dialogContent,fullWidth:!0,value:b?"Reference sequence too large to display, use the download FASTA button":m,InputProps:{readOnly:!0,classes:{input:a.textAreaFont}}})),n.createElement(f.DialogActions,null,n.createElement(f.Button,{onClick:function(){fe(m||""),i.notify("Copied to clipboard","success")},disabled:g||!!c||b,color:"primary",startIcon:n.createElement(I.ContentCopy,null)},"Copy to clipboard"),n.createElement(f.Button,{onClick:function(){var e=new Blob([m||""],{type:"text/x-fasta;charset=utf-8"});D.saveAs(e,"jbrowse_ref_seq.fa")},disabled:g||!!c,color:"primary",startIcon:n.createElement(pe,null)},"Download FASTA"),n.createElement(f.Button,{onClick:o,color:"primary",autoFocus:!0},"Close")))}var Ln=b.observer(Nn),Dn=f.makeStyles((function(e){return{dialogContent:{width:"80em"},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function In(e){var t,r,o=e.model,a=e.optAssemblyName,i=e.handleClose,l=Dn(),c=u.getSession(o),s=h.getEnv(c).pluginManager,d=c.assemblyManager,m=a;if(o.displayedRegions.length>0&&(m=null===(r=o.displayedRegions[0])||void 0===r?void 0:r.assemblyName),!m)throw new Error("Assembly name not found");var p=d.get(m);if(!p)throw new Error("assembly ".concat(m," not found"));if(!p.regions)throw new Error("assembly ".concat(m," regions not loaded"));var g=p.regions;function v(e){if(e){var t,n=s.pluggableConfigSchemaType("track"),r=h.resolveIdentifier(n,h.getRoot(o),e);if(r)return null===(t=r.name)||void 0===t?void 0:t.value}return""}return n.createElement(f.Dialog,{open:!0,maxWidth:"xl",onClose:i},n.createElement(f.DialogTitle,null,"Search results",i?n.createElement(f.IconButton,{"data-testid":"close-resultsDialog",className:l.closeButton,onClick:function(){i()}},n.createElement(Y,null)):null),n.createElement(f.Divider,null),n.createElement(f.DialogContent,null,null!==(t=o.searchResults)&&void 0!==t&&t.length?n.createElement(n.Fragment,null,n.createElement(f.Typography,null,"Showing results for ",n.createElement("b",null,o.searchQuery)),n.createElement(f.TableContainer,{component:f.Paper},n.createElement(f.Table,null,n.createElement(f.TableHead,null,n.createElement(f.TableRow,null,n.createElement(f.TableCell,null,"Name"),n.createElement(f.TableCell,{align:"right"},"Location"),n.createElement(f.TableCell,{align:"right"},"Track"),n.createElement(f.TableCell,{align:"right"}))),n.createElement(f.TableBody,null,o.searchResults.map((function(e){return n.createElement(f.TableRow,{key:"".concat(e.getId())},n.createElement(f.TableCell,{component:"th",scope:"row"},e.getLabel()),n.createElement(f.TableCell,{align:"right"},e.getLocation()),n.createElement(f.TableCell,{align:"right"},v(e.getTrackId())||"N/A"),n.createElement(f.TableCell,{align:"right"},n.createElement(f.Button,{onClick:function(){!function(e){try{var t=g.find((function(t){return e===t.refName}));t?(o.setDisplayedRegions([t]),o.showAllRegions()):o.navToLocString(e,m)}catch(e){console.warn(e),c.notify("".concat(e),"warning")}}(e.getLocation());var t=e.getTrackId();t&&o.showTrack(t),i()},disabled:!v(e.getTrackId()),color:"primary",variant:"contained"},"Go")))})))))):n.createElement(f.Typography,null,"No results found for ",n.createElement("b",null,o.searchQuery))),n.createElement(f.Divider,null),n.createElement(f.DialogActions,null,n.createElement(f.Button,{onClick:function(){return i()},color:"primary"},"Cancel")))}var On={__proto__:null,useStyles:Dn,default:In},Fn=f.makeStyles((function(e){return{note:{textAlign:"center",paddingTop:e.spacing(1),paddingBottom:e.spacing(1)},dots:{"&::after":{display:"inline-block",animation:"$ellipsis 1.5s infinite",content:'"."',width:"1em",textAlign:"left"}},"@keyframes ellipsis":{"0%":{content:'"."'},"33%":{content:'".."'},"66%":{content:'"..."'}}}})),zn={__proto__:null,default:b.observer((function(e){var t=e.model,r=t.tracks,o=t.error,a=t.hideHeader,i=t.initialized,l=t.hasDisplayedRegions,c=Fn();return i||o?!l||o?n.createElement(Pn,{model:t}):n.createElement("div",{style:{position:"relative"}},t.seqDialogDisplayed?n.createElement(Ln,{model:t,handleClose:function(){t.setSequenceDialogOpen(!1)}}):null,t.isSearchDialogDisplayed?n.createElement(In,{model:t,handleClose:function(){t.setSearchResults(void 0,void 0)}}):null,a?n.createElement("div",{style:{position:"absolute",right:0,zIndex:1001}},n.createElement(Bn,{model:t})):n.createElement(Qt,{model:t}),n.createElement(xn,{model:t},r.length?r.map((function(e){return n.createElement(rn,{key:e.id,model:t,track:e})})):n.createElement(f.Paper,{variant:"outlined",className:c.note},n.createElement(f.Typography,null,"No tracks active."),n.createElement(f.Button,{variant:"contained",color:"primary",onClick:t.activateTrackSelector,style:{zIndex:1e3},startIcon:n.createElement(I.TrackSelector,null)},"Open track selector")))):n.createElement(f.Typography,{className:c.dots,variant:"h5"},"Loading")}))};function jn(e){if(!e.length)return"";var t=e.every((function(t){return t.assemblyName===e[0].assemblyName}));return e.map((function(e){return u.assembleLocString(he(he({},e),{},{start:Math.round(e.start),end:Math.round(e.end),assemblyName:t?void 0:e.assemblyName}))})).join(" ")}var qn=48,An=20,Hn=17,Wn=3,_n=32,Vn=7;function Gn(e){return"undefined"!=typeof localStorage?localStorage.getItem(e):void 0}function Xn(e){return h.types.compose(a.BaseViewModel,h.types.model("LinearGenomeView",{id:x.ElementId,type:h.types.literal("LinearGenomeView"),offsetPx:0,bpPerPx:1,displayedRegions:h.types.array(x.Region),tracks:h.types.array(e.pluggableMstType("track","stateModel")),hideHeader:!1,hideHeaderOverview:!1,trackSelectorType:h.types.optional(h.types.enumeration(["hierarchical"]),"hierarchical"),trackLabels:h.types.optional(h.types.string,(function(){return Gn("lgv-trackLabels")||"overlapping"})),showCenterLine:h.types.optional(h.types.boolean,(function(){var e=Gn("lgv-showCenterLine");return null!=e&&!!+e})),showCytobandsSetting:h.types.optional(h.types.boolean,(function(){var e=Gn("lgv-showCytobands");return null==e||!!+e}))})).volatile((function(){return{volatileWidth:void 0,minimumBlockWidth:3,draggingTrackId:void 0,volatileError:void 0,afterDisplayedRegionsSetCallbacks:[],scaleFactor:1,trackRefs:{},coarseDynamicBlocks:[],coarseTotalBp:0,leftOffset:void 0,rightOffset:void 0,searchResults:void 0,searchQuery:void 0,seqDialogDisplayed:!1}})).views((function(e){return{get width(){if(void 0===e.volatileWidth)throw new Error("width undefined, make sure to check for model.initialized");return e.volatileWidth},get interRegionPaddingWidth(){return 2}}})).views((function(e){return{get assemblyErrors(){var t=u.getSession(e).assemblyManager;return this.assemblyNames.map((function(e){var n;return null===(n=t.get(e))||void 0===n?void 0:n.error})).filter((function(e){return!!e})).join(", ")},get assembliesInitialized(){var t=u.getSession(e).assemblyManager;return this.assemblyNames.every((function(e){var n;return null===(n=t.get(e))||void 0===n?void 0:n.initialized}))},get initialized(){return void 0!==e.volatileWidth&&this.assembliesInitialized},get hasDisplayedRegions(){return e.displayedRegions.length>0},get isSearchDialogDisplayed(){return void 0!==e.searchResults},get scaleBarHeight(){return Hn+Wn},get headerHeight(){return e.hideHeader?0:e.hideHeaderOverview?qn:qn+An},get trackHeights(){return e.tracks.map((function(e){return e.displays[0].height})).reduce((function(e,t){return e+t}),0)},get trackHeightsWithResizeHandles(){return this.trackHeights+e.tracks.length*Wn},get height(){return this.trackHeightsWithResizeHandles+this.headerHeight+this.scaleBarHeight},get totalBp(){return e.displayedRegions.reduce((function(e,t){return e+t.end-t.start}),0)},get maxBpPerPx(){return this.totalBp/(.9*e.width)},get minBpPerPx(){return.02},get error(){return e.volatileError||this.assemblyErrors},get maxOffset(){return this.displayedRegionsTotalPx-10},get minOffset(){return 30-e.width},get displayedRegionsTotalPx(){return this.totalBp/e.bpPerPx},renderProps:function(){return he(he({},g.getParentRenderProps(e)),{},{bpPerPx:e.bpPerPx,highResolutionScaling:o.getConf(u.getSession(e),"highResolutionScaling")})},get assemblyNames(){return Te(new Set(e.displayedRegions.map((function(e){return e.assemblyName}))))},searchScope:function(t){return{assemblyName:t,includeAggregateIndexes:!0,tracks:e.tracks}},bpToPx:function(t){return u.viewBpToPx({refName:t.refName,coord:t.coord,regionNumber:t.regionNumber,self:e})},pxToBp:function(t){var n=0,r=(e.offsetPx+t)*e.bpPerPx,o=e.displayedRegions.length;if(r<0){var a=e.displayedRegions[0],i=r;return he(he({},h.getSnapshot(a)),{},{oob:!0,coord:a.reversed?Math.floor(a.end-i)+1:Math.floor(a.start+i)+1,offset:i,index:0})}for(var l=e.interRegionPaddingWidth*e.bpPerPx,c=e.minimumBlockWidth*e.bpPerPx,s=0;s<e.displayedRegions.length;s+=1){var u=e.displayedRegions[s],d=u.end-u.start,f=r-n;if(d+n>r&&n<=r)return he(he({},h.getSnapshot(u)),{},{oob:!1,offset:f,coord:u.reversed?Math.floor(u.end-f)+1:Math.floor(u.start+f)+1,index:s});n+=u.end-u.start>c&&f/e.bpPerPx>0&&f/e.bpPerPx<e.width?d+l:d}if(r>=n){var m=e.displayedRegions[o-1],p=r-n+(m.end-m.start);return he(he({},h.getSnapshot(m)),{},{oob:!0,offset:p,coord:m.reversed?Math.floor(m.end-p)+1:Math.floor(m.start+p)+1,index:o-1})}return{coord:0,index:0,refName:"",oob:!0,assemblyName:"",offset:0,start:0,end:0,reversed:!1}},getTrack:function(t){return e.tracks.find((function(e){return e.configuration.trackId===t}))},rankSearchResults:function(t){var n=e.tracks.map((function(e){return e.configuration.trackId}));return t.forEach((function(e){n!==[]&&n.includes(e.trackId)&&e.updateScore(e.getScore()+1)})),t},rewriteOnClicks:function(t,n){var r=this;n.forEach((function(n){if("subMenu"in n&&r.rewriteOnClicks(t,n.subMenu),"onClick"in n){var o=n.onClick;n.onClick=function(){for(var n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];e.tracks.forEach((function(e){e.type===t&&o.apply(e,[e].concat(r))}))}}}))},get trackTypeActions(){var t=this,n=new Map;return e.tracks.forEach((function(e){if(!n.get(e.type)){var r=L(e.viewMenuActions);t.rewriteOnClicks(e.type,r),n.set(e.type,r)}})),n},get centerLineInfo(){return e.displayedRegions.length?this.pxToBp(e.width/2):void 0}}})).actions((function(t){return{setShowCytobands:function(e){t.showCytobandsSetting=e,localStorage.setItem("lgv-showCytobands","".concat(+e))},setWidth:function(e){t.volatileWidth=e},setError:function(e){t.volatileError=e},toggleHeader:function(){t.hideHeader=!t.hideHeader},toggleHeaderOverview:function(){t.hideHeaderOverview=!t.hideHeaderOverview},scrollTo:function(e){var n=u.clamp(e,t.minOffset,t.maxOffset);return t.offsetPx=n,n},zoomTo:function(e){var n=u.clamp(e,t.minBpPerPx,t.maxBpPerPx);if(n===t.bpPerPx)return n;var r=t.bpPerPx;if(t.bpPerPx=n,Math.abs(r-n)<1e-6)return console.warn("zoomTo bpPerPx rounding error"),r;var o=t.width;return this.scrollTo(Math.round((t.offsetPx+o/2)*r/n-o/2)),n},setOffsets:function(e,n){t.leftOffset=e,t.rightOffset=n},setSearchResults:function(e,n){t.searchResults=e,t.searchQuery=n},setSequenceDialogOpen:function(e){t.seqDialogDisplayed=e},setNewView:function(e,t){this.zoomTo(e),this.scrollTo(t)},horizontallyFlip:function(){t.displayedRegions=h.cast(t.displayedRegions.slice().reverse().map((function(e){return he(he({},e),{},{reversed:!e.reversed})}))),this.scrollTo(t.totalBp/t.bpPerPx-t.offsetPx-t.width)},showTrack:function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=e.pluggableConfigSchemaType("track"),i=h.resolveIdentifier(a,h.getRoot(t),n);if(!i)throw new Error('Could not resolve identifier "'.concat(n,'"'));var l=e.getTrackType(null==i?void 0:i.type);if(!l)throw new Error("Unknown track type ".concat(i.type));var c=e.getViewType(t.type),s=c.displayTypes.map((function(e){return e.name})),u=i.displays.find((function(e){return s.includes(e.type)}));if(!u)throw new Error("Could not find a compatible display for view type ".concat(t.type));var d=t.tracks.filter((function(e){return e.configuration===i}));if(0===d.length){var f=l.stateModel.create(he(he({},r),{},{type:i.type,configuration:i,displays:[he({type:u.type,configuration:u},o)]}));return t.tracks.push(f),f}return d[0]},hideTrack:function(n){var o=e.pluggableConfigSchemaType("track"),a=h.resolveIdentifier(o,h.getRoot(t),n),i=t.tracks.filter((function(e){return e.configuration===a}));return r.transaction((function(){return i.forEach((function(e){return t.tracks.remove(e)}))})),i.length}}})).actions((function(e){return{moveTrack:function(t,n){var r=e.tracks.findIndex((function(e){return e.id===t}));if(-1===r)throw new Error("Track ID ".concat(t," not found"));var o=e.tracks.findIndex((function(e){return e.id===n}));if(-1===o)throw new Error("Track ID ".concat(n," not found"));var a=h.getSnapshot(e.tracks[r]);e.tracks.splice(r,1),e.tracks.splice(o,0,a)},closeView:function(){var t=u.getContainingView(e);t?u.isViewContainer(t)&&t.removeView(e):u.getSession(e).removeView(e)},toggleTrack:function(t){e.hideTrack(t)||e.showTrack(t)},setTrackLabels:function(t){e.trackLabels=t,localStorage.setItem("lgv-trackLabels",t)},toggleCenterLine:function(){e.showCenterLine=!e.showCenterLine,localStorage.setItem("lgv-showCenterLine","".concat(+e.showCenterLine))},setDisplayedRegions:function(t){e.displayedRegions=h.cast(t),e.zoomTo(e.bpPerPx)},activateTrackSelector:function(){if("hierarchical"===e.trackSelectorType){var t=u.getSession(e);if(u.isSessionModelWithWidgets(t)){var n=t.addWidget("HierarchicalTrackSelectorWidget","hierarchicalTrackSelector",{view:e});return t.showWidget(n),n}}throw new Error("invalid track selector type ".concat(e.trackSelectorType))},navToLocString:function(t,n){var r=e.assemblyNames,o=u.getSession(e).assemblyManager,a=o.isValidRefName,i=n||r[0],l=t.split(" ").filter((function(e){return!!e.trim()})).map((function(e){return u.parseLocString(e,(function(e){return a(e,i)}))})).map((function(e){var t=e.assemblyName||i,n=o.get(t),r=e.refName;if(!n)throw new Error("assembly ".concat(t," not found"));var a=n.regions;if(!a)throw new Error("regions not loaded yet for ".concat(t));var l=n.getCanonicalRefName(e.refName);if(!l)throw new Error("Could not find refName ".concat(r," in ").concat(n.name));var c=a.find((function(e){return e.refName===l}));if(!c)throw new Error("Could not find refName ".concat(r," in ").concat(t));return he(he({},e),{},{assemblyName:t,parentRegion:c})}));if(1===l.length){var c=l[0];this.setDisplayedRegions([he({reversed:c.reversed},c.parentRegion)]);var s=c.start,d=c.end,f=c.parentRegion;this.navTo(he(he({},c),{},{start:u.clamp(null!=s?s:0,0,f.end),end:u.clamp(null!=d?d:f.end,0,f.end)}))}else this.setDisplayedRegions(l.map((function(e){return void 0===e.start?e.parentRegion:e}))),this.showAllRegions()},navTo:function(e){this.navToMultiple([e])},navToMultiple:function(t){var n=t[0],r=n.refName,o=n.start,a=n.end,i=n.assemblyName,l=void 0===i?e.assemblyNames[0]:i;if(void 0!==o&&void 0!==a&&o>a)throw new Error('start "'.concat(o+1,'" is greater than end "').concat(a,'"'));var c=u.getSession(e).assemblyManager.get(l);if(c){var s=c.getCanonicalRefName(r);s&&(r=s)}for(var d,f=o,m=a,p=!1,g=function(e){if(r===e.refName){if(p=!0,void 0===f&&(f=e.start),void 0===m&&(m=e.end),f>=e.start&&f<=e.end&&m<=e.end&&m>=e.start)return!0;f=o,m=a}return!1},h=u.findLastIndex(e.displayedRegions,g);d!==h;)try{var v=d;if(d=e.displayedRegions.slice(void 0===v?0:v+1).findIndex(g),void 0!==v&&(d+=v+1),!p)throw new Error('could not find a region with refName "'.concat(r,'"'));if(void 0===f)throw new Error('could not find a region with refName "'.concat(r,'" that contained an end position ').concat(m));if(void 0===m)throw new Error('could not find a region with refName "'.concat(r,'" that contained a start position ').concat(f+1));if(-1===d)throw new Error('could not find a region that completely contained "'.concat(u.assembleLocString(n),'"'));if(1===t.length){var y=e.displayedRegions[d];return void this.moveTo({index:d,offset:y.reversed?y.end-m:f-y.start},{index:d,offset:y.reversed?y.end-f:m-y.start})}for(var b=0,k=0,w=0;b<t.length;b++){var E=t[b],x=e.displayedRegions[d+b];if(k=E.start||x.start,w=E.end||x.end,E.refName!==x.refName)throw new Error("Entered location ".concat(u.assembleLocString(E)," does not match with displayed regions"))}var S=e.displayedRegions[d],C=e.displayedRegions[d+(b-=1)];return void this.moveTo({index:d,offset:S.reversed?S.end-m:f-S.start},{index:d+b,offset:C.reversed?C.end-k:w-C.start})}catch(e){if(d===h)throw e}},zoomToDisplayedRegions:function(t,n){if(void 0!==t&&void 0!==n){if(t.refName===n.refName&&t.index===n.index&&n.offset<t.offset||t.index>n.index){var r=[n,t];t=r[0],n=r[1]}var o={start:t.start,end:t.end,index:t.index,offset:t.offset},a={start:n.start,end:n.end,index:n.index,offset:n.offset};o&&a?this.moveTo(o,a):u.getSession(e).notify("No regions found to navigate to","warning")}},getSelectedRegions:function(t,n){var r=N.create(he(he({},h.getSnapshot(e)),{},{interRegionPaddingWidth:e.interRegionPaddingWidth}));return r.setVolatileWidth(e.width),r.zoomToDisplayedRegions(t,n),r.dynamicBlocks.contentBlocks.map((function(e){return he(he({},e),{},{start:Math.floor(e.start),end:Math.ceil(e.end)})}))},afterDisplayedRegionsSet:function(t){e.afterDisplayedRegionsSetCallbacks.push(t)},moveTo:function(t,n){var r=0;if(t.index===n.index)r+=n.offset-t.offset;else{var o=e.displayedRegions[t.index];if(r+=o.end-o.start-t.offset,n.index-t.index>=2)for(var a=t.index+1;a<n.index;a+=1)r+=e.displayedRegions[a].end-e.displayedRegions[a].start;r+=n.offset}var i=r/(e.width-e.interRegionPaddingWidth*(n.index-t.index)),l=e.zoomTo(i),c=0;i<l&&(c=(l-i)*e.width/2);for(var s=-c,u=0;u<e.displayedRegions.length;u+=1){var d=e.displayedRegions[u];if(t.index===u){s+=t.offset;break}s+=d.end-d.start}e.scrollTo(Math.round(s/e.bpPerPx)+e.interRegionPaddingWidth*t.index)},horizontalScroll:function(t){var n=e.offsetPx;return e.scrollTo(e.offsetPx+t)-n},centerAt:function(t,n,r){var o=e.bpToPx({refName:n,coord:t,regionNumber:r});o&&e.scrollTo(Math.round(o.offsetPx-e.width/2))},center:function(){e.scrollTo(Math.round(e.totalBp/2/e.bpPerPx-e.width/2))},showAllRegions:function(){e.zoomTo(e.maxBpPerPx),this.center()},showAllRegionsInAssembly:function(t){var n=u.getSession(e),r=n.assemblyManager;if(!t){var o=Te(new Set(e.displayedRegions.map((function(e){return e.assemblyName}))));if(o.length>1)return void n.notify("Can't perform this with multiple assemblies currently");t=Be(o,1)[0]}var a=r.get(t);if(a){var i=a.regions;i&&(this.setDisplayedRegions(i),e.zoomTo(e.maxBpPerPx),this.center())}},setDraggingTrackId:function(t){e.draggingTrackId=t},setScaleFactor:function(t){e.scaleFactor=t}}})).actions((function(e){var t=function(){};return{slide:function(n){var r=Be(u.springAnimate(e.offsetPx,e.offsetPx+e.width*n,e.scrollTo),2),o=r[0],a=r[1];t(),t=a,o()}}})).actions((function(e){var t=function(){};return{zoom:function(n){if(e.zoomTo(e.bpPerPx),!(n<e.bpPerPx&&e.bpPerPx===e.minBpPerPx||n>e.bpPerPx&&e.bpPerPx===e.maxBpPerPx)){var r=Be(u.springAnimate(1,e.bpPerPx/n,e.setScaleFactor,(function(){e.zoomTo(n),e.setScaleFactor(1)})),2),o=r[0],a=r[1];t(),t=a,o()}}}})).views((function(e){return{get canShowCytobands(){return 1===e.displayedRegions.length&&this.anyCytobandsExist},get showCytobands(){return this.canShowCytobands&&e.showCytobandsSetting},get anyCytobandsExist(){var t=u.getSession(e).assemblyManager;return e.assemblyNames.some((function(e){var n,r;return null===(n=t.get(e))||void 0===n||null===(r=n.cytobands)||void 0===r?void 0:r.length}))},get cytobandOffset(){return this.showCytobands?u.measureText(e.displayedRegions[0].refName,12)+15:0}}})).views((function(e){return{menuItems:function(){var t,n=e.showCytobands,r=[{label:"Return to import form",onClick:function(){u.getSession(e).queueDialog((function(t){return[y.ReturnToImportFormDialog,{model:e,handleClose:t}]}))},icon:j},{label:"Export SVG",icon:q,onClick:function(){u.getSession(e).queueDialog((function(t){return[_t,{model:e,handleClose:t}]}))}},{label:"Open track selector",onClick:e.activateTrackSelector,icon:I.TrackSelector},{label:"Horizontally flip",icon:O,onClick:e.horizontallyFlip},{type:"divider"},{label:"Show all regions in assembly",icon:F,onClick:e.showAllRegionsInAssembly},{label:"Show center line",icon:F,type:"checkbox",checked:e.showCenterLine,onClick:e.toggleCenterLine},{label:"Show header",icon:F,type:"checkbox",checked:!e.hideHeader,onClick:e.toggleHeader},{label:"Show header overview",icon:F,type:"checkbox",checked:!e.hideHeaderOverview,onClick:e.toggleHeaderOverview,disabled:e.hideHeader},{label:"Track labels",icon:z,subMenu:[{label:"Overlapping",icon:F,type:"radio",checked:"overlapping"===e.trackLabels,onClick:function(){return e.setTrackLabels("overlapping")}},{label:"Offset",icon:F,type:"radio",checked:"offset"===e.trackLabels,onClick:function(){return e.setTrackLabels("offset")}},{label:"Hidden",icon:F,type:"radio",checked:"hidden"===e.trackLabels,onClick:function(){return e.setTrackLabels("hidden")}}]}].concat(Te(e.canShowCytobands?[{label:n?"Hide ideogram":"Show ideograms",onClick:function(){e.setShowCytobands(!n)}}]:[])),o=Ne(e.trackTypeActions.entries());try{for(o.s();!(t=o.n()).done;){var a=Be(t.value,2),i=a[1];i.length&&(r.push({type:"divider"},{type:"subHeader",label:a[0]}),i.forEach((function(e){r.push(e)})))}}catch(e){o.e(e)}finally{o.f()}return r}}})).views((function(e){var t,n="";return{get staticBlocks(){var r=M(e),o=JSON.stringify(r);return n!==o&&(t=r,n=o),t},get dynamicBlocks(){return R(e)},get roundedDynamicBlocks(){return this.dynamicBlocks.contentBlocks.map((function(e){return he(he({},e),{},{start:Math.floor(e.start),end:Math.ceil(e.end)})}))},get visibleLocStrings(){return jn(this.dynamicBlocks.contentBlocks)},get coarseVisibleLocStrings(){return jn(e.coarseDynamicBlocks)}}})).actions((function(e){return{clearView:function(){e.setDisplayedRegions([]),e.tracks.clear(),e.scrollTo(0),e.zoomTo(10)},setCoarseDynamicBlocks:function(t){e.coarseDynamicBlocks=t.contentBlocks,e.coarseTotalBp=t.totalBp},afterAttach:function(){var t=this;h.addDisposer(e,r.autorun((function(){e.initialized&&t.setCoarseDynamicBlocks(e.dynamicBlocks)}),{delay:150}))}}})).actions((function(e){return{exportSvg:function(){var t=arguments;return be(De.mark((function n(){var r,o;return De.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return r=t.length>0&&void 0!==t[0]?t[0]:{},n.next=3,Lt(e,r);case 3:o=new Blob([n.sent],{type:"image/svg+xml"}),D.saveAs(o,"image.svg");case 6:case"end":return n.stop()}}),n)})))()}}})).views((function(e){return{rubberBandMenuItems:function(){return[{label:"Zoom to region",icon:A,onClick:function(){var t=e.leftOffset,n=e.rightOffset;t&&n&&e.moveTo(t,n)}},{label:"Get sequence",icon:v,onClick:function(){e.setSequenceDialogOpen(!0)}}]}}}))}var Un=t.lazy((function(){return Promise.resolve().then((function(){return tr}))})),Jn=function(e){return h.types.compose("LinearBasicDisplay",at,h.types.model({type:h.types.literal("LinearBasicDisplay"),trackShowLabels:h.types.maybe(h.types.boolean),trackShowDescriptions:h.types.maybe(h.types.boolean),trackDisplayMode:h.types.maybe(h.types.string),trackMaxHeight:h.types.maybe(h.types.number),configuration:o.ConfigurationReference(e)})).views((function(e){return{get rendererTypeName(){return o.getConf(e,["renderer","type"])},get showLabels(){var t=o.getConf(e,["renderer","showLabels"]);return void 0!==e.trackShowLabels?e.trackShowLabels:t},get showDescriptions(){var t=o.getConf(e,["renderer","showLabels"]);return void 0!==e.trackShowDescriptions?e.trackShowDescriptions:t},get maxHeight(){var t=o.getConf(e,["renderer","maxHeight"]);return void 0!==e.trackMaxHeight?e.trackMaxHeight:t},get displayMode(){var t=o.getConf(e,["renderer","displayMode"]);return void 0!==e.trackDisplayMode?e.trackDisplayMode:t},get rendererConfig(){var t=o.getConf(e,["renderer"])||{};return e.rendererType.configSchema.create(he(he({},t),{},{showLabels:this.showLabels,showDescriptions:this.showDescriptions,displayMode:this.displayMode,maxHeight:this.maxHeight}),h.getEnv(e))}}})).actions((function(e){return{toggleShowLabels:function(){e.trackShowLabels=!e.showLabels},toggleShowDescriptions:function(){e.trackShowDescriptions=!e.showDescriptions},setDisplayMode:function(t){e.trackDisplayMode=t},setMaxHeight:function(t){e.trackMaxHeight=t}}})).views((function(e){var t=e.trackMenuItems,n=e.renderProps;return{renderProps:function(){var t=e.rendererConfig;return he(he({},n()),{},{config:t})},trackMenuItems:function(){return[].concat(Te(t()),[{label:"Show labels",icon:F,type:"checkbox",checked:e.showLabels,onClick:function(){e.toggleShowLabels()}},{label:"Show descriptions",icon:F,type:"checkbox",checked:e.showDescriptions,onClick:function(){e.toggleShowDescriptions()}},{label:"Display mode",icon:F,subMenu:["compact","reducedRepresentation","normal","collapse"].map((function(t){return{label:t,onClick:function(){e.setDisplayMode(t)}}}))},{label:"Set max height",onClick:function(){u.getSession(e).queueDialog((function(t){return[Un,{model:e,handleClose:t}]}))}}])}}}))};function Yn(e){return o.ConfigurationSchema("LinearBasicDisplay",{mouseover:{type:"string",description:"what to display in a given mouseover",defaultValue:"jexl:get(feature,'name')",contextVariable:["feature"]},renderer:e.pluggableConfigSchemaType("renderer")},{baseConfiguration:Ie,explicitlyTyped:!0})}var Zn=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&xe(e,t)}(p,s);var n,f,m=Pe(p);function p(){var e;return ke(this,p),(e=m.apply(this,arguments)).name="LinearGenomeViewPlugin",e.exports={BaseLinearDisplayComponent:Xe,BaseLinearDisplay:at,baseLinearDisplayConfigSchema:Ie},e}return n=p,(f=[{key:"install",value:function(e){e.addTrackType((function(){var t=o.ConfigurationSchema("FeatureTrack",{},{baseConfiguration:a.createBaseTrackConfig(e),explicitIdentifier:"trackId"});return new i({name:"FeatureTrack",configSchema:t,stateModel:a.createBaseTrackModel(e,"FeatureTrack",t)})})),e.addTrackType((function(){var t=o.ConfigurationSchema("BasicTrack",{},{baseConfiguration:a.createBaseTrackConfig(e),explicitIdentifier:"trackId"});return new i({name:"BasicTrack",configSchema:t,stateModel:a.createBaseTrackModel(e,"BasicTrack",t)})})),e.addDisplayType((function(){var t=it(e);return new l({name:"LinearBareDisplay",configSchema:t,stateModel:lt(t),trackType:"BasicTrack",viewType:"LinearGenomeView",ReactComponent:Xe})})),e.addDisplayType((function(){var t=Yn(e);return new l({name:"LinearBasicDisplay",configSchema:t,stateModel:Jn(t),trackType:"FeatureTrack",viewType:"LinearGenomeView",ReactComponent:Xe})})),e.addViewType((function(){return new c({name:"LinearGenomeView",stateModel:Xn(e),ReactComponent:t.lazy((function(){return Promise.resolve().then((function(){return zn}))}))})})),e.addToExtensionPoint("LaunchView-LinearGenomeView",function(){var e=be(De.mark((function e(t){var n,o,a,i,l,c,s,u;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=t.assembly,a=t.loc,l=void 0===(i=t.tracks)?[]:i,c=(n=t.session).assemblyManager,s=n.addView("LinearGenomeView",{}),e.next=5,r.when((function(){return!!s.volatileWidth}));case 5:if(o){e.next=7;break}throw new Error("No assembly provided when launching linear genome view");case 7:return e.next=9,c.waitForAssembly(o);case 9:if(e.sent){e.next=12;break}throw new Error('Assembly "'.concat(o,'" not found when launching linear genome view'));case 12:if(s.navToLocString(a,o),u=[],l.forEach((function(e){try{s.showTrack(e)}catch(t){if(!"".concat(t).match("Could not resolve identifier"))throw t;u.push(e)}})),!u.length){e.next=17;break}throw new Error("Could not resolve identifiers: ".concat(u.join(",")));case 17:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())}},{key:"configure",value:function(e){u.isAbstractMenuManager(e.rootModel)&&e.rootModel.appendToSubMenu(["Add"],{label:"Linear genome view",icon:d,onClick:function(e){e.addView("LinearGenomeView",{})}})}}])&&function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(n.prototype,f),Object.defineProperty(n,"prototype",{writable:!1}),p}(),Kn=f.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}})),Qn={__proto__:null,useStyles:Kn,default:function(e){var t=e.handleClose,r=Kn();return n.createElement(f.Dialog,{open:!0,maxWidth:"xl",onClose:t},n.createElement(f.DialogTitle,null,"Using the search box",t?n.createElement(f.IconButton,{"data-testid":"close-resultsDialog",className:r.closeButton,onClick:function(){t()}},n.createElement(Y,null)):null),n.createElement(f.Divider,null),n.createElement(f.DialogContent,null,n.createElement("h3",null,"Searching"),n.createElement("ul",null,n.createElement("li",null,"Jump to a feature or reference sequence by typing its name in the location box and pressing Enter."),n.createElement("li",null,"Jump to a specific region by typing the region into the location box as: ",n.createElement("code",null,"ref:start..end")," or ",n.createElement("code",null,"ref:start-end"),". Commas are allowed in the start and end coordinates. A space-separated list of locstrings can be used to open up multiple chromosomes at a time")),n.createElement("h3",null,"Example Searches"),n.createElement("ul",null,n.createElement("li",null,n.createElement("code",null,"BRCA")," - searches for the feature named BRCA"),n.createElement("li",null,n.createElement("code",null,"chr4")," - jumps to chromosome 4"),n.createElement("li",null,n.createElement("code",null,"chr4:79,500,000..80,000,000")," - jumps the region on chromosome 4 between 79.5Mb and 80Mb."),n.createElement("li",null,n.createElement("code",null,"chr1:1-100 chr2:1-100")," - create a split view of chr1:1-100 and chr2:1-100"),n.createElement("li",null,n.createElement("code",null,"chr1 chr2 chr3")," - open up multiple chromosomes at once"),n.createElement("li",null,n.createElement("code",null,"chr1:1-100[rev] chr2:1-100")," - open up the first region in the horizontally flipped orientation"))),n.createElement(f.Divider,null),n.createElement(f.DialogActions,null,n.createElement(f.Button,{onClick:function(){return t()},color:"primary"},"Close")))}},$n=f.makeStyles((function(e){return{root:{width:500},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},field:{margin:e.spacing(2)}}}));function er(e){var r=e.model,o=e.handleClose,a=$n(),i=r.maxHeight,l=Be(t.useState("".concat(void 0===i?"":i)),2),c=l[0],s=l[1];return n.createElement(f.Dialog,{open:!0,onClose:o,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},n.createElement(f.DialogTitle,{id:"alert-dialog-title"},"Filter options",n.createElement(f.IconButton,{"aria-label":"close",className:a.closeButton,onClick:o},n.createElement(Y,null))),n.createElement(f.DialogContent,null,n.createElement("div",{className:a.root},n.createElement(f.Typography,null,"Set max height for the track"),n.createElement(f.TextField,{value:c,onChange:function(e){s(e.target.value)},placeholder:"Enter max score"}),n.createElement(f.Button,{variant:"contained",color:"primary",type:"submit",style:{marginLeft:20},onClick:function(){r.setMaxHeight(""===c||Number.isNaN(+c)?void 0:+c),o()}},"Submit"))))}var tr={__proto__:null,default:b.observer(er)};exports.BaseLinearDisplay=at,exports.BaseLinearDisplayComponent=Xe,exports.RefNameAutocomplete=jt,exports.SearchBox=Ht,exports.baseLinearDisplayConfigSchema=Ie,exports.default=Zn,exports.linearBareDisplayConfigSchemaFactory=it,exports.linearBasicDisplayConfigSchemaFactory=Yn,exports.linearBasicDisplayModelFactory=Jn,exports.renderToSvg=Lt;
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),n=e(t),r=require("mobx"),o=require("@jbrowse/core/configuration"),a=require("@jbrowse/core/pluggableElementTypes/models"),i=e(require("@jbrowse/core/pluggableElementTypes/TrackType")),l=e(require("@jbrowse/core/pluggableElementTypes/DisplayType")),c=e(require("@jbrowse/core/pluggableElementTypes/ViewType")),s=e(require("@jbrowse/core/Plugin")),u=require("@jbrowse/core/util"),d=e(require("@material-ui/icons/LineStyle")),f=require("@material-ui/core"),m=e(require("@jbrowse/core/util/compositeMap")),p=require("@jbrowse/core/util/simpleFeature"),g=require("@jbrowse/core/util/tracks"),h=require("mobx-state-tree"),v=e(require("@material-ui/icons/MenuOpen")),y=require("mobx-react"),b=require("@jbrowse/core/ui"),w=require("react-popper"),k=require("@material-ui/core/styles"),E=require("@jbrowse/core/util/blockTypes"),x=require("@jbrowse/core/util/types/mst"),S=require("@jbrowse/core/util/types"),C=e(require("@material-ui/core/Typography")),P=e(require("@material-ui/core/Button")),B=e(require("@material-ui/icons/Refresh")),T=require("@jbrowse/core/configuration/configurationSchema"),R=e(require("@jbrowse/core/util/calculateDynamicBlocks")),M=e(require("@jbrowse/core/util/calculateStaticBlocks")),N=e(require("@jbrowse/core/util/Base1DViewModel")),L=e(require("clone")),D=require("file-saver"),I=require("@jbrowse/core/ui/Icons"),O=e(require("@material-ui/icons/SyncAlt")),F=e(require("@material-ui/icons/Visibility")),z=e(require("@material-ui/icons/Label")),j=e(require("@material-ui/icons/FolderOpen")),q=e(require("@material-ui/icons/PhotoCamera")),A=e(require("@material-ui/icons/ZoomIn")),H=require("react-dom/server"),W=e(require("prop-types")),_=e(require("clsx")),V=require("@jbrowse/core/TextSearch/BaseResults"),G=e(V),X=e(require("@material-ui/icons/Search")),U=e(require("@material-ui/lab/Autocomplete")),J=e(require("@material-ui/icons/Help")),Y=e(require("@material-ui/icons/Close")),Z=e(require("@material-ui/icons/ArrowForward")),K=e(require("@material-ui/icons/ArrowBack")),Q=e(require("@material-ui/core/IconButton")),$=e(require("@material-ui/core/Slider")),ee=e(require("@material-ui/icons/ZoomOut")),te=e(require("@material-ui/core/Paper")),ne=e(require("@material-ui/icons/MoreVert")),re=e(require("@material-ui/icons/DragIndicator")),oe=e(require("normalize-wheel")),ae=require("@material-ui/core/styles/colorManipulator"),ie=e(require("@material-ui/core/Popover")),le=e(require("@material-ui/core/Tooltip")),ce=e(require("@jbrowse/core/ui/ErrorMessage")),se=e(require("@jbrowse/core/ui/AssemblySelector")),ue=e(require("@material-ui/icons/KeyboardArrowDown")),de=e(require("@jbrowse/core/ui/Menu")),fe=e(require("copy-to-clipboard")),me=require("@jbrowse/core/util/formatFastaStrings"),pe=e(require("@material-ui/icons/GetApp"));function ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function he(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ge(Object(n),!0).forEach((function(t){ke(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ge(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ve(e){return(ve="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ye(e,t,n,r,o,a,i){try{var l=e[a](i),c=l.value}catch(e){return void n(e)}l.done?t(c):Promise.resolve(c).then(r,o)}function be(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){ye(a,r,o,i,l,"next",e)}function l(e){ye(a,r,o,i,l,"throw",e)}i(void 0)}))}}function we(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ke(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ee(e){return(Ee=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function xe(e,t){return(xe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Se(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Ce(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function Pe(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Ee(e);if(t){var o=Ee(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return Ce(this,n)}}function Be(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(e){l=!0,o=e}finally{try{i||null==n.return||n.return()}finally{if(l)throw o}}return a}}(e,t)||Re(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Te(e){return function(e){if(Array.isArray(e))return Me(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Re(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Re(e,t){if(e){if("string"==typeof e)return Me(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Me(e,t):void 0}}function Me(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ne(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Re(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function Le(e,t){return e(t={exports:{}},t.exports),t.exports}var De=Le((function(e){var t=function(e){var t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",a=r.asyncIterator||"@@asyncIterator",i=r.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var o=Object.create((t&&t.prototype instanceof d?t:d).prototype),a=new x(r||[]);return o._invoke=function(e,t,n){var r="suspendedStart";return function(o,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw a;return{value:void 0,done:!0}}for(n.method=o,n.arg=a;;){var i=n.delegate;if(i){var l=w(i,n);if(l){if(l===u)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=s(e,t,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===u)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}(e,n,a),o}function s(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var u={};function d(){}function f(){}function m(){}var p={};l(p,o,(function(){return this}));var g=Object.getPrototypeOf,h=g&&g(g(S([])));h&&h!==t&&n.call(h,o)&&(p=h);var v=m.prototype=d.prototype=Object.create(p);function y(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var r;this._invoke=function(o,a){function i(){return new t((function(r,i){!function r(o,a,i,l){var c=s(e[o],e,a);if("throw"!==c.type){var u=c.arg,d=u.value;return d&&"object"==typeof d&&n.call(d,"__await")?t.resolve(d.__await).then((function(e){r("next",e,i,l)}),(function(e){r("throw",e,i,l)})):t.resolve(d).then((function(e){u.value=e,i(u)}),(function(e){return r("throw",e,i,l)}))}l(c.arg)}(o,a,r,i)}))}return r=r?r.then(i,i):i()}}function w(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,w(e,t),"throw"===t.method))return u;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var r=s(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,u;var o=r.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,u):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,u)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function x(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function S(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:C}}function C(){return{value:void 0,done:!0}}return f.prototype=m,l(v,"constructor",m),l(m,"constructor",f),f.displayName=l(m,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===f||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,l(e,i,"GeneratorFunction")),e.prototype=Object.create(v),e},e.awrap=function(e){return{__await:e}},y(b.prototype),l(b.prototype,a,(function(){return this})),e.AsyncIterator=b,e.async=function(t,n,r,o,a){void 0===a&&(a=Promise);var i=new b(c(t,n,r,o),a);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},y(v),l(v,i,"Generator"),l(v,o,(function(){return this})),l(v,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=S,x.prototype={constructor:x,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return i.type="throw",i.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(l&&c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,u):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),u},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;E(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:S(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}})),Ie=o.ConfigurationSchema("BaseLinearDisplay",{maxFeatureScreenDensity:{type:"number",description:"maximum features per pixel that is displayed in the view, used if byte size estimates not available",defaultValue:.3},fetchSizeLimit:{type:"number",defaultValue:1e6,description:"maximum data to attempt to download for a given track, used if adapter doesn't specify one"}},{explicitIdentifier:"displayId"}),Oe=k.makeStyles((function(e){return{contentBlock:{position:"relative",minHeight:"100%",boxSizing:"border-box",whiteSpace:"nowrap",overflow:"hidden"},elidedBlock:{minHeight:"100%",boxSizing:"border-box",backgroundColor:"#999",backgroundImage:"repeating-linear-gradient(90deg, transparent, transparent 1px, rgba(255,255,255,.5) 1px, rgba(255,255,255,.5) 3px)"},interRegionPaddingBlock:{minHeight:"100%",backgroundColor:e.palette.text.primary},boundaryPaddingBlock:{minHeight:"100%",backgroundColor:e.palette.action.disabledBackground}}})),Fe=y.observer((function(e){var t=e.block,r=e.children,o=Oe();return n.createElement("div",{style:{width:t.widthPx},className:o.contentBlock},r)}));function ze(e){var t=e.width,r=Oe();return n.createElement("div",{className:r.elidedBlock,style:{width:t}})}function je(e){var t=e.boundary,r=e.width,o=e.style,a=void 0===o?{}:o,i=Oe();return n.createElement("div",{style:he(he({},a),{},{width:r}),className:t?i.boundaryPaddingBlock:i.interRegionPaddingBlock})}var qe=k.makeStyles({linearBlocks:{whiteSpace:"nowrap",textAlign:"left",position:"absolute",minHeight:"100%",display:"flex"},heightOverflowed:{position:"absolute",color:"rgb(77,77,77)",borderBottom:"2px solid rgb(77,77,77)",textShadow:"white 0px 0px 1px",whiteSpace:"nowrap",width:"100%",fontWeight:"bold",textAlign:"center",zIndex:2e3,boxSizing:"border-box"}}),Ae=y.observer((function(e){var t=e.model,r=qe(),o=t.blockState;return n.createElement(n.Fragment,null,t.blockDefinitions.map((function(e){if(e instanceof E.ContentBlock){var a=o.get(e.key);return n.createElement(Fe,{block:e,key:"".concat(t.id,"-").concat(e.key)},a&&a.ReactComponent?n.createElement(a.ReactComponent,{model:a}):null,a&&a.maxHeightReached?n.createElement("div",{className:r.heightOverflowed,style:{top:a.layout.getTotalHeight()-16,pointerEvents:"none",height:16}},"Max height reached"):null)}if(e instanceof E.ElidedBlock)return n.createElement(ze,{key:"".concat(t.id,"-").concat(e.key),width:e.widthPx});if(e instanceof E.InterRegionPaddingBlock)return n.createElement(je,{key:e.key,width:e.widthPx,style:{background:"none"},boundary:"boundary"===e.variant});throw new Error("invalid block type ".concat(ve(e)))})))}));function He(e){var t=e.model,r=qe(),o=t.blockDefinitions,a=u.getContainingView(t);return n.createElement("div",{"data-testid":"Blockset",className:r.linearBlocks,style:{left:o.offsetPx-a.offsetPx}},n.createElement(Ae,{model:t}))}var We=y.observer(He),_e=f.makeStyles((function(e){return{display:{position:"relative",whiteSpace:"nowrap",textAlign:"left",width:"100%",minHeight:"100%"},tooltip:{pointerEvents:"none",backgroundColor:f.alpha(e.palette.grey[700],.9),borderRadius:e.shape.borderRadius,color:e.palette.common.white,fontFamily:e.typography.fontFamily,padding:"4px 8px",fontSize:e.typography.pxToRem(12),lineHeight:"".concat(Math.round(14e4)/1e5,"em"),maxWidth:300,wordWrap:"break-word"}}})),Ve=n.forwardRef((function(e,t){return n.createElement("div",{ref:t},e.message)})),Ge=y.observer((function(e){var r=e.model,a=e.clientMouseCoord,i=_e(),l=r.featureUnderMouse,c=Be(t.useState(0),2),s=c[0],u=c[1],d=Be(t.useState(null),2),m=d[0],p=d[1],g=t.useMemo((function(){return{getBoundingClientRect:function(){var e=a[0]+s/2+20,t=a[1];return{top:t,left:e,bottom:t,right:e,width:0,height:0,x:e,y:t,toJSON:function(){}}}}}),[a,s]),h=w.usePopper(g,m),v=h.styles,y=h.attributes,b=l?o.getConf(r,"mouseover",{feature:l}):void 0;return l&&b?n.createElement(f.Portal,null,n.createElement("div",Object.assign({ref:p,className:i.tooltip,style:he(he({},v.popper),{},{zIndex:1e5})},y.popper),n.createElement(Ve,{ref:function(e){return u((null==e?void 0:e.getBoundingClientRect().width)||0)},message:b}))):null})),Xe=y.observer((function(e){var r=_e(),a=f.useTheme(),i=t.useRef(null),l=Be(t.useState(),2),c=l[0],s=l[1],u=Be(t.useState([0,0]),2),d=u[0],m=u[1],p=Be(t.useState([0,0]),2),g=p[0],h=p[1],v=Be(t.useState(),2),y=v[0],w=v[1],k=e.model,E=e.children,x=k.TooltipComponent,S=k.DisplayMessageComponent,C=k.contextMenuItems,P=k.height,B=k.setContextMenuFeature;return n.createElement("div",{ref:i,"data-testid":"display-".concat(o.getConf(k,"displayId")),className:r.display,onContextMenu:function(e){e.preventDefault(),y?w(void 0):i.current&&w([e.clientX,e.clientY])},onMouseMove:function(e){if(i.current){var t=i.current.getBoundingClientRect();m([e.clientX-t.left,e.clientY-t.top]),h([e.clientX,e.clientY]),s(t)}}},S?n.createElement(S,{model:k}):n.createElement(We,Object.assign({},e)),E,n.createElement(x,{model:k,height:P,offsetMouseCoord:d,clientMouseCoord:g,clientRect:c,mouseCoord:d}),n.createElement(b.Menu,{open:Boolean(y)&&Boolean(C().length),onMenuItemClick:function(e,t){t(),w(void 0)},onClose:function(){w(void 0),B(void 0)},TransitionProps:{onExit:function(){w(void 0),B(void 0)}},anchorReference:"anchorPosition",anchorPosition:y?{top:y[1],left:y[0]}:void 0,style:{zIndex:a.zIndex.tooltip},menuItems:C(),"data-testid":"base_linear_display_context_menu"}))})),Ue=k.makeStyles((function(e){return{loading:{paddingLeft:"0.6em",backgroundColor:e.palette.action.disabledBackground,backgroundImage:"repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255,255,255,.5) 5px, rgba(255,255,255,.5) 10px)",height:"100%",width:"100%",pointerEvents:"none",textAlign:"center"},blockMessage:{width:"100%",background:e.palette.action.disabledBackground,padding:e.spacing(2),pointerEvents:"none",textAlign:"center"},blockError:{padding:e.spacing(2),width:"100%",whiteSpace:"normal",color:e.palette.error.main,overflowY:"auto"},blockReactNodeMessage:{width:"100%",background:e.palette.action.disabledBackground,padding:e.spacing(2),textAlign:"center"},dots:{"&::after":{display:"inline-block",animation:"$ellipsis 1.5s infinite",content:'"."',width:"1em",textAlign:"left"}},"@keyframes ellipsis":{"0%":{content:'"."'},"33%":{content:'".."'},"66%":{content:'"..."'}}}}));function Je(e){var t=e.children;return n.createElement("div",{style:{display:"flex"}},t,t)}var Ye=y.observer((function(e){var r=e.model,o=Be(t.useState(!1),2),a=o[0],i=o[1],l=Ue();t.useEffect((function(){var e=!1,t=setTimeout((function(){e||i(!0)}),300);return function(){clearTimeout(t),e=!0}}),[]);var c=r.status,s=h.getParent(r,2).message||c;return n.createElement(n.Fragment,null,a?n.createElement("div",{className:l.loading},n.createElement(C,{className:l.dots,variant:"body2"},s?"".concat(s):"Loading")):null)}));function Ze(e){var t=e.messageContent,r=Ue();return n.isValidElement(t)?n.createElement("div",{className:r.blockReactNodeMessage},t):n.createElement(C,{variant:"body2",className:r.blockMessage},t)}function Ke(e){var t=e.error,r=e.reload,o=e.displayHeight,a=Ue();return n.createElement("div",{className:a.blockError,style:{height:o}},r?n.createElement(P,{"data-testid":"reload_button",onClick:r,startIcon:n.createElement(B,null)},"Reload"):null,n.createElement(C,{color:"error",variant:"body2",display:"inline"},"".concat(t)))}var Qe=y.observer((function(e){var t=e.model;return t.error?n.createElement(Je,null,n.createElement(Ke,{error:t.error,reload:t.reload,displayHeight:g.getParentRenderProps(t).displayModel.height})):t.message?n.createElement(Je,null,n.createElement(Ze,{messageContent:t.message})):t.filled?t.reactElement:n.createElement(Je,null,n.createElement(Ye,{model:t}))})),$e=h.types.model("BlockState",{key:h.types.string,region:x.Region,reloadFlag:0,isLeftEndOfDisplayedRegion:!1,isRightEndOfDisplayedRegion:!1}).volatile((function(){return{renderInProgress:void 0,filled:!1,reactElement:void 0,features:void 0,layout:void 0,status:"",error:void 0,message:void 0,maxHeightReached:!1,ReactComponent:Qe,renderProps:void 0}})).actions((function(e){var t;return{doReload:function(){e.reloadFlag=e.reloadFlag+1},afterAttach:function(){var t=u.getContainingDisplay(e);u.makeAbortableReaction(e,et,tt,{name:"".concat(t.id,"/").concat(u.assembleLocString(e.region)," rendering"),delay:t.renderDelay,fireImmediately:!0},this.setLoading,this.setRendered,this.setError)},setStatus:function(t){e.status=t},setLoading:function(n){void 0!==t&&(t.signal.aborted||t.abort()),e.filled=!1,e.message=void 0,e.reactElement=void 0,e.features=void 0,e.layout=void 0,e.error=void 0,e.maxHeightReached=!1,e.renderProps=void 0,t=n},setMessage:function(n){t&&!t.signal.aborted&&t.abort(),e.filled=!1,e.message=n,e.reactElement=void 0,e.features=void 0,e.layout=void 0,e.error=void 0,e.maxHeightReached=!1,e.renderProps=void 0,t=void 0},setRendered:function(n){if(n){var r=n.reactElement,o=n.features,a=n.layout,i=n.maxHeightReached,l=n.renderProps;e.filled=!0,e.message=void 0,e.reactElement=r,e.features=o,e.layout=a,e.error=void 0,e.maxHeightReached=i,e.renderProps=l,t=void 0}},setError:function(n){console.error(n),t&&!t.signal.aborted&&t.abort(),e.filled=!1,e.message=void 0,e.reactElement=void 0,e.features=void 0,e.layout=void 0,e.maxHeightReached=!1,e.error=n,e.renderProps=void 0,t=void 0,S.isRetryException(n)&&this.reload()},reload:function(){e.renderInProgress=void 0,e.filled=!1,e.reactElement=void 0,e.features=void 0,e.layout=void 0,e.error=void 0,e.message=void 0,e.maxHeightReached=!1,e.ReactComponent=Qe,e.renderProps=void 0,h.getParent(e,2).reload()},beforeDestroy:function(){t&&!t.signal.aborted&&t.abort();var n=u.getContainingDisplay(e),r=u.getSession(e).rpcManager,o=n.rendererType,a=et(h.cast(e)).renderArgs;a&&o.freeResourcesInClient(r,JSON.parse(JSON.stringify(a))).catch((function(e){console.warn("Error while destroying block",e)}))}}}));function et(e,t){try{var n=t||u.getContainingDisplay(e),r=u.getSession(n),a=r.assemblyManager,i=r.rpcManager,l=n.adapterConfig,c=n.rendererType,s=n.error,d=g.getTrackAssemblyNames(n.parentTrack),f=e.region.assemblyName;if(!d.includes(f)&&!d.find((function(e){var t;return null===(t=a.get(e))||void 0===t?void 0:t.hasName(f)})))throw new Error("region assembly (".concat(f,") does not match track assemblies (").concat(d,")"));var m=n.renderProps();o.readConfObject(m.config);var p=g.getRpcSessionId(n);return{rendererType:c,rpcManager:i,renderProps:m,cannotBeRenderedReason:n.regionCannotBeRendered(e.region),displayError:s,renderArgs:{statusCallback:function(t){h.isAlive(e)&&e.setStatus(t)},assemblyName:e.region.assemblyName,regions:[e.region],adapterConfig:l,rendererType:c.name,sessionId:p,blockKey:e.key,reloadFlag:e.reloadFlag,timeout:1e6}}}catch(e){return{displayError:e}}}function tt(e,t,n){return nt.apply(this,arguments)}function nt(){return(nt=be(De.mark((function e(t,n,r){var o,a,i,l,c,s,u;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=t.rendererType,a=t.renderProps,i=t.rpcManager,l=t.renderArgs,c=t.cannotBeRenderedReason,s=t.displayError,h.isAlive(r)){e.next=3;break}return e.abrupt("return",void 0);case 3:if(!s){e.next=6;break}return r.setError(s),e.abrupt("return",void 0);case 6:if(!c){e.next=9;break}return r.setMessage(c),e.abrupt("return",void 0);case 9:if(!a.notReady){e.next=11;break}return e.abrupt("return",void 0);case 11:return e.next=13,o.renderInClient(i,he(he(he({},l),a),{},{signal:n}));case 13:return e.abrupt("return",{reactElement:(u=e.sent).reactElement,features:u.features,layout:u.layout,maxHeightReached:u.maxHeightReached});case 19:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var rt=["blockState"];function ot(e,t){var n="undefined"==typeof jest;return"clip-".concat(n?e:"jest","-").concat(t)}var at=h.types.compose("BaseLinearDisplay",a.BaseDisplay,h.types.model({height:h.types.optional(h.types.refinement("displayHeight",h.types.number,(function(e){return e>=20})),100),blockState:h.types.map($e),userBpPerPxLimit:h.types.maybe(h.types.number),userByteSizeLimit:h.types.maybe(h.types.number)})).volatile((function(){return{currBpPerPx:0,message:"",featureIdUnderMouse:void 0,contextMenuFeature:void 0,scrollTop:0,estimatedRegionStatsP:void 0,estimatedRegionStats:void 0}})).views((function(e){return{get blockType(){return"staticBlocks"},get blockDefinitions(){var t=this.blockType,n=u.getContainingView(e);if(!n.initialized)throw new Error("view not initialized yet");return n[t]}}})).views((function(e){return{get renderDelay(){return 50},get TooltipComponent(){return Ge},get selectedFeatureId(){if(h.isAlive(e)){var t=u.getSession(e).selection;if(p.isFeature(t))return t.id()}},get DisplayMessageComponent(){}}})).views((function(e){return{get features(){var t,n=[],r=Ne(e.blockState.values());try{for(r.s();!(t=r.n()).done;){var o=t.value;o&&o.features&&n.push(o.features)}}catch(e){r.e(e)}finally{r.f()}return new m(n)},get featureUnderMouse(){var t=e.featureIdUnderMouse;return t?this.features.get(t):void 0},getFeatureOverlapping:function(t,n,r){var o,a;return null===(o=e.blockState.get(t))||void 0===o||null===(a=o.layout)||void 0===a?void 0:a.getByCoord(n,r)},getFeatureByID:function(t,n){var r,o;return null===(r=e.blockState.get(t))||void 0===r||null===(o=r.layout)||void 0===o?void 0:o.getByID(n)},searchFeatureByID:function(t){var n;return e.blockState.forEach((function(e){var r,o=null==e||null===(r=e.layout)||void 0===r?void 0:r.getByID(t);o&&(n=o)})),n},get currentBytesRequested(){var t;return(null===(t=e.estimatedRegionStats)||void 0===t?void 0:t.bytes)||0},get currentFeatureScreenDensity(){var t,n=u.getContainingView(e);return((null===(t=e.estimatedRegionStats)||void 0===t?void 0:t.featureDensity)||0)*n.bpPerPx},get maxFeatureScreenDensity(){return o.getConf(e,"maxFeatureScreenDensity")},get estimatedStatsReady(){return!!e.estimatedRegionStats},get maxAllowableBytes(){var t;return e.userByteSizeLimit||(null===(t=e.estimatedRegionStats)||void 0===t?void 0:t.fetchSizeLimit)||o.getConf(e,"fetchSizeLimit")}}})).actions((function(e){return{setMessage:function(t){e.message=t},afterAttach:function(){var t=this,n=r.autorun((function(){var n={};u.getContainingView(e).initialized&&(e.blockDefinitions.contentBlocks.forEach((function(r){n[r.key]=!0,e.blockState.has(r.key)||t.addBlock(r.key,r)})),e.blockState.forEach((function(e,r){n[r]||t.deleteBlock(r)})))}));h.addDisposer(e,n)},estimateRegionsStats:function(t,n){var r=this;if(e.estimatedRegionStatsP)return e.estimatedRegionStatsP;var o=u.getSession(e).rpcManager,a=e.adapterConfig,i=g.getRpcSessionId(e),l=he({sessionId:i,regions:t,adapterConfig:a,statusCallback:function(t){h.isAlive(e)&&r.setMessage(t)}},n);return e.estimatedRegionStatsP=o.call(i,"CoreEstimateRegionStats",l).catch((function(e){throw r.setRegionStatsP(void 0),e})),e.estimatedRegionStatsP},setRegionStatsP:function(t){e.estimatedRegionStatsP=t},setRegionStats:function(t){e.estimatedRegionStats=t},clearRegionStats:function(){e.estimatedRegionStatsP=void 0,e.estimatedRegionStats=void 0},setHeight:function(t){return e.height=t>20?t:20,e.height},resizeHeight:function(t){var n=e.height;return this.setHeight(e.height+t)-n},setScrollTop:function(t){e.scrollTop=t},updateStatsLimit:function(t){var n=u.getContainingView(e);t.bytes?e.userByteSizeLimit=t.bytes:e.userBpPerPxLimit=n.bpPerPx},addBlock:function(t,n){e.blockState.set(t,$e.create({key:t,region:n.toRegion()}))},setCurrBpPerPx:function(t){e.currBpPerPx=t},deleteBlock:function(t){e.blockState.delete(t)},selectFeature:function(t){var n=u.getSession(e);if(u.isSessionModelWithWidgets(n)){var r=n.addWidget("BaseFeatureWidget","baseFeature",{featureData:t.toJSON(),view:u.getContainingView(e)});n.showWidget(r)}u.isSelectionContainer(n)&&n.setSelection(t)},clearFeatureSelection:function(){u.getSession(e).clearSelection()},setFeatureIdUnderMouse:function(t){e.featureIdUnderMouse=t},reload:function(){Te(e.blockState.values()).map((function(e){return e.doReload()}))},setContextMenuFeature:function(t){e.contextMenuFeature=t}}})).views((function(e){return{get regionTooLarge(){var t=u.getContainingView(e);return!(!e.estimatedStatsReady||t.dynamicBlocks.totalBp<2e4)&&(e.currentBytesRequested>e.maxAllowableBytes||(e.userBpPerPxLimit?t.bpPerPx>e.userBpPerPxLimit:e.currentFeatureScreenDensity>e.maxFeatureScreenDensity))},get regionTooLargeReason(){var t,n=e.currentBytesRequested;return n&&n>e.maxAllowableBytes?"Requested too much data (".concat((t=n,Math.floor(t/1e6)>0?"".concat(parseFloat((t/1e6).toPrecision(3))," Mb"):Math.floor(t/1e3)>0?"".concat(parseFloat((t/1e3).toPrecision(3))," Kb"):"".concat(Math.floor(t)," bytes")),")"):""}}})).actions((function(e){var t=e.reload;return{reload:function(){return be(De.mark((function n(){var r,o,a;return De.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(e.setError(),r=new AbortController,(o=u.getContainingView(e)).initialized&&o.staticBlocks.contentBlocks.length){n.next=5;break}return n.abrupt("return");case 5:return n.prev=5,e.estimatedRegionStatsP=e.estimateRegionsStats(o.staticBlocks.contentBlocks,{signal:r.signal}),n.next=9,e.estimatedRegionStatsP;case 9:if(a=n.sent,!h.isAlive(e)){n.next=15;break}e.setRegionStats(a),t(),n.next=16;break;case 15:return n.abrupt("return");case 16:n.next=21;break;case 18:n.prev=18,n.t0=n.catch(5),e.setError(n.t0);case 21:case"end":return n.stop()}}),n,null,[[5,18]])})))()},afterAttach:function(){h.addDisposer(e,r.autorun(be(De.mark((function t(){var n,r,o,a,i;return De.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,r=new AbortController,(o=u.getContainingView(e)).initialized&&o.staticBlocks.contentBlocks.length){t.next=5;break}return t.abrupt("return");case 5:if(void 0===(null===(n=e.estimatedRegionStats)||void 0===n?void 0:n.featureDensity)){t.next=8;break}return e.setCurrBpPerPx(o.bpPerPx),t.abrupt("return");case 8:if(o.bpPerPx!==e.currBpPerPx){t.next=10;break}return t.abrupt("return");case 10:return e.clearRegionStats(),e.setCurrBpPerPx(o.bpPerPx),a=e.estimateRegionsStats(o.staticBlocks.contentBlocks,{signal:r.signal}),e.setRegionStatsP(a),t.next=16,a;case 16:i=t.sent,h.isAlive(e)&&e.setRegionStats(i),t.next=23;break;case 20:t.prev=20,t.t0=t.catch(0),!u.isAbortException(t.t0)&&h.isAlive(e)&&(console.error(t.t0),e.setError(t.t0));case 23:case"end":return t.stop()}}),t,null,[[0,20]])}))),{delay:500}))}}})).views((function(e){return{regionCannotBeRenderedText:function(t){return e.regionTooLarge?"Force load to see features":""},regionCannotBeRendered:function(t){var r=e.regionTooLargeReason;if(e.regionTooLarge)return n.createElement(n.Fragment,null,n.createElement(f.Typography,{component:"span",variant:"body2"},r?r+". ":"","Zoom in to see features or"," "),n.createElement(f.Button,{"data-testid":"force_reload_button",onClick:function(){e.estimatedRegionStats?(e.updateStatsLimit(e.estimatedRegionStats),e.reload()):console.error("No global stats?")},variant:"outlined"},"Force Load"),n.createElement(f.Typography,{component:"span",variant:"body2"},"(force load may be slow)"))},trackMenuItems:function(){return[]},contextMenuItems:function(){return e.contextMenuFeature?[{label:"Open feature details",icon:v,onClick:function(){e.contextMenuFeature&&e.selectFeature(e.contextMenuFeature)}}]:[]},renderProps:function(){var t=u.getContainingView(e);return he(he({},g.getParentRenderProps(e)),{},{notReady:e.currBpPerPx!==t.bpPerPx||!e.estimatedRegionStats,rpcDriverName:e.rpcDriverName,displayModel:e,onFeatureClick:function(t,n){var r=n||e.featureIdUnderMouse;if(r){var o=e.features.get(r);o&&e.selectFeature(o)}else e.clearFeatureSelection()},onClick:function(){e.clearFeatureSelection()},onFeatureContextMenu:function(t,n){var r=n||e.featureIdUnderMouse;r?e.setContextMenuFeature(e.features.get(r)):e.clearFeatureSelection()},onMouseMove:function(t,n){e.setFeatureIdUnderMouse(n)},onMouseLeave:function(t){e.setFeatureIdUnderMouse(void 0)},onContextMenu:function(){e.setContextMenuFeature(void 0),e.clearFeatureSelection()}})}}})).actions((function(e){return{renderSvg:function(t){return be(De.mark((function r(){var o,a,i,l,c,s,d;return De.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o=e.height,a=e.id,i=t.overrideHeight,l=u.getContainingView(e),c=l.offsetPx,s=l.roundedDynamicBlocks,d=l.width,r.next=6,Promise.all(s.map((function(r){var o=$e.create({key:r.key,region:r}),a=e.regionCannotBeRenderedText(r)||e.regionCannotBeRendered(r);if(a)return{reactElement:n.createElement(n.Fragment,null,n.createElement("rect",{x:0,y:0,width:d,height:20,fill:"#aaa"}),n.createElement("text",{x:0,y:15},a))};var i=et(o,e),l=i.renderProps;return i.rendererType.renderInClient(i.rpcManager,he(he(he({},i.renderArgs),l),{},{exportSVG:t}))})));case 6:return r.abrupt("return",n.createElement(n.Fragment,null,r.sent.map((function(e,t){var r=s[t].offsetPx-c,l=ot(a,t);return n.createElement(n.Fragment,{key:"frag-".concat(t)},n.createElement("defs",null,n.createElement("clipPath",{id:l},n.createElement("rect",{x:0,y:0,width:d,height:i||o}))),n.createElement("g",{transform:"translate(".concat(r," 0)")},n.createElement("g",{clipPath:"url(#".concat(l,")")},n.isValidElement(e.reactElement)?e.reactElement:n.createElement("g",{dangerouslySetInnerHTML:{__html:e.html}}))))}))));case 8:case"end":return r.stop()}}),r)})))()}}})).postProcessSnapshot((function(e){return Se(e,rt)}));function it(e){return o.ConfigurationSchema("LinearBareDisplay",{renderer:e.pluggableConfigSchemaType("renderer")},{baseConfiguration:Ie,explicitlyTyped:!0})}function lt(e){return h.types.compose("LinearBareDisplay",at,h.types.model({type:h.types.literal("LinearBareDisplay"),configuration:T.ConfigurationReference(e)})).views((function(e){var t=e.renderProps;return{renderProps:function(){return he(he(he({},t()),g.getParentRenderProps(e)),{},{rpcDriverName:e.rpcDriverName,config:e.configuration.renderer})},get rendererTypeName(){return e.configuration.renderer.type}}}))}function ct(e,t,n){for(var r=t*(e=Math.abs(e)),o=parseInt(Number(r).toExponential().split(/e/i)[1],10),a=Math.pow(10,o);a<r&&!((a*=2)>=r);)a*=2.5;var i=(a=Math.max(a,5))/e,l=0;return!(a%10)&&i/10>=n?l=a/10:!(a%5)&&i/5>=n?l=a/5:!(a%2)&&i/2>=n&&(l=a/2),{majorPitch:a,minorPitch:l}}function st(e,t,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=ct(n,60,15),i=e,l=t;if(null===i||null===l)return[];if(n<0){var c=[l,i];i=c[0],l=c[1]}i-=Math.abs(20*n)-1,l+=Math.abs(20*n)+1;for(var s=a.minorPitch||a.majorPitch,u=0,d=[],f=Math.ceil(i/s)*s;f<l;f+=s)o&&f%(2*a.majorPitch)?(d.push({type:"minor",base:f-1,index:u}),u+=1):!r||f%(2*a.majorPitch)||(d.push({type:"major",base:f-1,index:u}),u+=1);return d}var ut=k.makeStyles((function(){return{majorTickLabel:{fontSize:"11px"},majorTick:{stroke:"#555"},minorTick:{stroke:"#999"}}}));function dt(e){var t=e.start,r=e.end,o=e.bpPerPx,a=e.reversed,i=e.major,l=e.minor,c=ut(),s=st(t,r,o,i,l);return n.createElement(n.Fragment,null,s.map((function(e){var i=(a?r-e.base:e.base-t)/o;return n.createElement("line",{key:e.base,x1:i,x2:i,y1:0,y2:"major"===e.type?6:4,strokeWidth:1,stroke:"major"===e.type?"#555":"#999",className:"major"===e.type?c.majorTick:c.minorTick,"data-bp":e.base})})),s.filter((function(e){return"major"===e.type})).map((function(e){return n.createElement("text",{x:(a?r-e.base:e.base-t)/o-3,y:18,key:"label-".concat(e.base),style:{fontSize:"11px"},className:c.majorTickLabel},function e(t){return t<999?String(t):"".concat(e(~~(t/1e3)),",").concat("00".concat(~~(t%1e3)).substr(-3,3))}(e.base+1))})))}dt.propTypes={start:W.number.isRequired,end:W.number.isRequired,bpPerPx:W.number.isRequired,reversed:W.bool,major:W.bool,minor:W.bool},dt.defaultProps={reversed:!1,major:!0,minor:!0};var ft=y.observer(dt),mt=f.makeStyles((function(e){var t=e.palette,n=t.tertiary,r=t.primary;return{rubberBand:{height:"100%",background:f.alpha(n?n.main:r.main,.7),position:"absolute",zIndex:10,textAlign:"center",overflow:"hidden"},rubberBandControl:{cursor:"crosshair",width:"100%",minHeight:8},rubberBandText:{color:n?n.contrastText:r.contrastText},popover:{mouseEvents:"none",cursor:"crosshair"},paper:{paddingLeft:e.spacing(1),paddingRight:e.spacing(1)},guide:{pointerEvents:"none",height:"100%",width:1,position:"absolute",zIndex:10}}})),pt=y.observer((function(e){var t,r=e.model,o=e.open,a=e.guideX,i=e.overview,l=mt(),c=r.cytobandOffset,s=u.getSession(r).assemblyManager,d=i.pxToBp(a-c),m=s.get(d.assemblyName),p=null==m||null===(t=m.cytobands)||void 0===t?void 0:t.find((function(e){return d.coord>e.get("start")&&d.coord<e.get("end")&&d.refName===m.getCanonicalRefName(e.get("refName"))}));return n.createElement(f.Tooltip,{open:o,placement:"top",title:[u.stringify(d),null==p?void 0:p.get("name")].join(" "),arrow:!0},n.createElement("div",{className:l.guide,style:{left:a}}))}));function gt(e){var r=e.model,o=e.overview,a=e.ControlComponent,i=void 0===a?n.createElement("div",null):a,l=r.cytobandOffset,c=Be(t.useState(),2),s=c[0],d=c[1],m=Be(t.useState(),2),p=m[0],g=m[1],h=Be(t.useState(),2),v=h[0],y=h[1],b=t.useRef(null),w=t.useRef(null),k=mt(),E=void 0!==s;function x(e){e.preventDefault(),e.stopPropagation(),b.current&&d(e.clientX-b.current.getBoundingClientRect().left)}function S(e){b.current&&y(e.clientX-b.current.getBoundingClientRect().left)}function C(){y(void 0)}if(t.useEffect((function(){function e(e){var t=b.current;if(t&&E){var n=e.clientX-t.getBoundingClientRect().left;g(n)}}function t(){if(b.current&&void 0!==s&&void 0!==p&&Math.abs(p-s)>3&&r.zoomToDisplayedRegions(o.pxToBp(s-l),o.pxToBp(p-l)),b.current&&void 0!==s&&void 0===p){var e=o.pxToBp(s-l);r.centerAt(Math.round(e.coord),e.refName,e.index)}d(void 0),g(void 0),void 0!==s&&y(void 0)}function n(e){"Escape"===e.key&&(d(void 0),g(void 0))}return E?(window.addEventListener("mousemove",e,!0),window.addEventListener("mouseup",t,!0),window.addEventListener("keydown",n,!0),function(){window.removeEventListener("mousemove",e,!0),window.removeEventListener("mouseup",t,!0),window.removeEventListener("keydown",n,!0)}):function(){}}),[E,p,s,r,o,l]),void 0===s)return n.createElement("div",{style:{position:"relative"}},void 0!==v?n.createElement(pt,{model:r,open:!E,overview:o,guideX:v}):null,n.createElement("div",{className:k.rubberBandControl,role:"presentation",ref:b,onMouseDown:x,onMouseOut:C,onMouseMove:S},i));var P,B,T=s||0,R=0;if(void 0!==s&&void 0!==p&&(T=p<s?p:s,R=p-s),s&&(P=o.pxToBp(s-l),B=o.pxToBp(s+R-l),p&&p<s)){var M=[B,P];P=M[0],B=M[1]}return n.createElement("div",{style:{position:"relative"}},w.current?n.createElement(n.Fragment,null,n.createElement(f.Popover,{className:k.popover,classes:{paper:k.paper},open:!0,anchorEl:w.current,anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"bottom",horizontal:"right"},keepMounted:!0,disableRestoreFocus:!0},n.createElement(f.Typography,null,P?u.stringify(P):"")),n.createElement(f.Popover,{className:k.popover,classes:{paper:k.paper},open:!0,anchorEl:w.current,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"bottom",horizontal:"left"},keepMounted:!0,disableRestoreFocus:!0},n.createElement(f.Typography,null,B?u.stringify(B):""))):null,n.createElement("div",{ref:w,className:k.rubberBand,style:{left:T,width:Math.abs(R),height:Hn}}),n.createElement("div",{"data-testid":"rubberBand_controls",className:k.rubberBandControl,role:"presentation",ref:b,onMouseDown:x,onMouseOut:C,onMouseMove:S},i))}gt.propTypes={model:y.PropTypes.objectOrObservableObject.isRequired,overview:y.PropTypes.objectOrObservableObject.isRequired,ControlComponent:W.node},gt.defaultProps={ControlComponent:n.createElement("div",null)};var ht=y.observer(gt),vt=f.makeStyles((function(e){return{scaleBar:{height:Hn},scaleBarBorder:{border:"1px solid"},scaleBarContig:{backgroundColor:e.palette.background.default,position:"absolute",top:0,height:Hn},scaleBarContigForward:{backgroundImage:"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 9'%3E%3Cpath d='M-.1 0L6 4.5L-.1 9' fill='none' stroke='%23ddd'/%3E%3C/svg%3E\")",backgroundRepeat:"repeat"},scaleBarContigReverse:{backgroundImage:"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 9'%3E%3Cpath d='M6 0L0 4.5L6 9' fill='none' stroke='%23ddd'/%3E%3C/svg%3E\")",backgroundRepeat:"repeat"},scaleBarRefName:{position:"absolute",fontWeight:"bold",pointerEvents:"none",zIndex:100},scaleBarLabel:{height:Hn,width:1,position:"absolute",display:"flex",justifyContent:"center",pointerEvents:"none"},scaleBarVisibleRegion:{position:"absolute",height:Hn,pointerEvents:"none",zIndex:100,border:"1px solid"},overview:{height:An,position:"relative"},overviewSvg:{width:"100%",position:"absolute"}}})),yt=y.observer((function(e){var t=e.model,r=e.overview,o=e.useOffset,a=void 0===o||o,i=f.useTheme(),l=Number(a),c=t.interRegionPaddingWidth,s=t.offsetPx,u=t.dynamicBlocks,d=t.cytobandOffset,m=u.contentBlocks,p=u.totalWidthPxWithoutBorders,g=i.palette,h=g.tertiary,v=h?h.light:g.primary.light;if(!m.length)return null;var y=m[0],b=m[m.length-1],w=(r.bpToPx(he(he({},y),{},{coord:y.reversed?y.end:y.start}))||0)+d*l,k=(r.bpToPx(he(he({},b),{},{coord:b.reversed?b.start:b.end}))||0)+d*l,E=Math.max(0,-s);return n.createElement("polygon",{points:[[E,An],[E+p+m.length*c/2,An],[k,0],[w,0]].toString(),fill:f.alpha(v,.3),stroke:f.alpha(v,.8)})}));function bt(e,t,n,r,o){return"M"+e+","+t+"h"+(n-o)+"a"+o+","+o+" 0 0 1 "+o+","+o+"v"+(r-2*o)+"a"+o+","+o+" 0 0 1 "+-o+","+o+"h"+(o-n)+"z"}var wt={gneg:"rgb(227,227,227)",gpos25:"rgb(142,142,142)",gpos50:"rgb(85,85,85)",gpos100:"rgb(0,0,0)",gpos75:"rgb(57,57,57)",gvar:"rgb(0,0,0)",stalk:"rgb(127,127,127)",acen:"#800"},kt=y.observer((function(e){var t,r=e.overview,o=e.block,a=e.assembly,i=o.offsetPx,l=o.reversed,c=null==a||null===(t=a.cytobands)||void 0===t?void 0:t.map((function(e){return{refName:a.getCanonicalRefName(e.get("refName")),start:e.get("start"),end:e.get("end"),type:e.get("type")}})).filter((function(e){return e.refName===o.refName})).map((function(e){var t=e.refName,n=e.end,o=e.type;return[r.bpToPx({refName:t,coord:e.start}),r.bpToPx({refName:t,coord:n}),o]})),s=c||[],u=l?s.length-1:0,d=l?0:s.length-1,f=!0;return c?n.createElement("g",{transform:"translate(-".concat(i,")")},c.map((function(e,t){var r,o,a,i=Be(e,3),l=i[0],c=i[1],s=i[2],m="".concat(l,"-").concat(c,"-").concat(s);return"acen"===s&&f?(f=!1,n.createElement("polygon",{key:m,points:[[l,0],[c,Hn/2],[l,Hn]].toString(),fill:wt[s]})):"acen"!==s||f?u===t?n.createElement("path",{key:m,d:(r=Math.min(l,c),o=Math.abs(c-l),a=Hn,"M"+(r+8)+",0h"+(o-8)+"v"+a+"h"+(8-o)+"a8,8 0 0 1 -8,-8v"+(16-a)+"a8,8 0 0 1 8,-8z"),fill:wt[s]}):d===t?n.createElement("path",{key:m,d:bt(Math.min(l,c),0,Math.abs(c-l)-2,Hn,8),fill:wt[s]}):n.createElement("rect",{key:m,x:Math.min(l,c),y:0,width:Math.abs(c-l),height:Hn,fill:wt[s]}):n.createElement("polygon",{key:m,points:[[l,Hn/2],[c,0],[c,Hn]].toString(),fill:wt[s]})}))):null})),Et=y.observer((function(e){for(var t=e.scale,r=e.model,o=e.block,a=e.overview,i=vt(),l=r.cytobandOffset,c=r.showCytobands,s=o.start,d=o.end,m=o.reversed,p=o.refName,g=o.assemblyName,h=ct(t,120,15).majorPitch,v=u.getSession(r).assemblyManager.get(g),y=null==v?void 0:v.getRefNameColor(p),b=[],w=0;w<Math.floor((d-s)/h);w++){var k=(w+1)*h;b.push(m?d-k:s+k)}return n.createElement("div",null,n.createElement(f.Typography,{style:{left:o.offsetPx+3,color:c?"black":y},className:i.scaleBarRefName},p),n.createElement("div",{className:_(i.scaleBarContig,c?void 0:m?i.scaleBarContigReverse:i.scaleBarContigForward,c?void 0:i.scaleBarBorder),style:{left:o.offsetPx+l,width:o.widthPx,borderColor:y}},c?null:b.map((function(e,r){return n.createElement(f.Typography,{key:"".concat(JSON.stringify(o),"-").concat(e,"-").concat(r),className:i.scaleBarLabel,variant:"body2",style:{left:(r+1)*h/t,pointerEvents:"none",color:y}},e.toLocaleString("en-US"))})),c?n.createElement("svg",{style:{width:"100%"}},n.createElement(kt,{overview:a,assembly:v,block:o})):null))})),xt=y.observer((function(e){var t=e.model,r=e.scale,o=e.overview,a=vt(),i=f.useTheme(),l=t.showCytobands,c=t.cytobandOffset,s=t.dynamicBlocks.contentBlocks,u=o.dynamicBlocks,d=i.palette,m=d.tertiary,p=m?m.light:d.primary.light;if(!s.length)return null;var g=s[0],h=o.bpToPx(he(he({},g),{},{coord:g.reversed?g.end:g.start}))||0,v=s[s.length-1],y=o.bpToPx(he(he({},v),{},{coord:v.reversed?v.start:v.end}))||0,b=l?"#f00":p;return n.createElement("div",{className:a.scaleBar},n.createElement("div",{className:a.scaleBarVisibleRegion,style:{width:y-h,left:h+c,background:f.alpha(b,l?.1:.3),borderColor:b}}),u.map((function(e,i){return e instanceof E.ContentBlock?n.createElement(Et,{scale:r,block:e,model:t,overview:o,key:"".concat(JSON.stringify(e),"-").concat(i)}):n.createElement("div",{key:"".concat(JSON.stringify(e),"-").concat(i),className:a.scaleBarContig,style:{width:e.widthPx,left:e.offsetPx,backgroundColor:"#999",backgroundImage:"repeating-linear-gradient(90deg, transparent, transparent 1px, rgba(255,255,255,.5) 1px, rgba(255,255,255,.5) 3px)"}})})))}));function St(e){var t=e.model,r=e.children,o=vt(),a=t.totalBp,i=t.width,l=t.cytobandOffset,c=t.displayedRegions,s=N.create({displayedRegions:JSON.parse(JSON.stringify(c)),interRegionPaddingWidth:0,minimumBlockWidth:t.minimumBlockWidth}),u=i-l;return s.setVolatileWidth(u),s.showAllRegions(),n.createElement("div",null,n.createElement(ht,{model:t,overview:s,ControlComponent:n.createElement(xt,{model:t,overview:s,scale:a/(u-2*(c.length-1))})}),n.createElement("div",{className:o.overview},n.createElement("svg",{height:An,className:o.overviewSvg},n.createElement(yt,{model:t,overview:s})),r))}var Ct=y.observer(St);function Pt(e){var t=e.model,r=e.fontSize,o=t.offsetPx,a=t.dynamicBlocks,i=a.totalWidthPxWithoutBorders,l=u.getBpDisplayStr(a.totalBp),c=Math.max(-o,0),s=c+i;return n.createElement(n.Fragment,null,n.createElement("line",{x1:c,x2:s,y1:10,y2:10,stroke:"black"}),n.createElement("line",{x1:c,x2:c,y1:5,y2:15,stroke:"black"}),n.createElement("line",{x1:s,x2:s,y1:5,y2:15,stroke:"black"}),n.createElement("text",{x:c+(s-c)/2,y:2*r,textAnchor:"middle",fontSize:r},l))}function Bt(e){var t=e.model,r=e.fontSize,o=t.dynamicBlocks.contentBlocks,a=t.offsetPx,i=t.bpPerPx,l=o.length<5;return n.createElement(n.Fragment,null,n.createElement("defs",null,n.createElement("clipPath",{id:"clip-ruler"},n.createElement("rect",{x:0,y:0,width:e.width,height:20}))),o.map((function(e){var t=e.start,o=e.end,c=e.reversed,s=e.refName,u=e.offsetPx-a;return n.createElement("g",{key:"".concat(e.key),transform:"translate(".concat(u," 0)")},n.createElement("text",{x:u/i,y:r,fontSize:r},s),l?n.createElement("g",{transform:"translate(0 20)",clipPath:"url(#clip-ruler)"},n.createElement(ft,{start:t,end:o,bpPerPx:i,reversed:c})):n.createElement("line",{strokeWidth:1,stroke:"black",x1:t/i,x2:o/i,y1:20,y2:20}))})))}var Tt=function(e){return e.reduce((function(e,t){return e+t.displays[0].height+20+20}),0)},Rt=function(e){var t=e.model,r=t.width,o=t.assemblyNames,a=t.showCytobands,i=t.displayedRegions,l=u.getSession(t),c=o.length>1?"":o[0],s=l.assemblyManager.get(c),d=N.create({displayedRegions:JSON.parse(JSON.stringify(i)),interRegionPaddingWidth:0,minimumBlockWidth:t.minimumBlockWidth}),f=t.dynamicBlocks.contentBlocks;d.setVolatileWidth(r),d.showAllRegions();var m=d.dynamicBlocks.contentBlocks[0],p=f[0],g=d.bpToPx(he(he({},p),{},{coord:p.reversed?p.end:p.start}))||0,h=f[f.length-1],v=d.bpToPx(he(he({},h),{},{coord:h.reversed?h.start:h.end}))||0,y=a?100:0;return n.createElement("g",{id:"header"},n.createElement("text",{x:0,y:15,fontSize:15},c),a?n.createElement("g",{transform:"translate(0 ".concat(50,")")},n.createElement(kt,{overview:d,assembly:s,block:m}),n.createElement("rect",{stroke:"red",fill:"rgb(255,0,0,0.1)",width:Math.max(v-g,.5),height:Hn-1,x:g,y:.5}),n.createElement("g",{transform:"translate(0,".concat(Hn,")")},n.createElement(yt,{overview:d,model:t,useOffset:!1}))):null,n.createElement("g",{transform:"translate(0 ".concat(15+y,")")},n.createElement(Pt,{model:t,fontSize:15})),n.createElement("g",{transform:"translate(0 ".concat(50+y,")")},n.createElement(Bt,{model:t,fontSize:15,width:r})))},Mt=function(e){var t=e.model,r=e.height,o=t.offsetPx,a=t.interRegionPaddingWidth;return n.createElement(n.Fragment,null,t.dynamicBlocks.contentBlocks.slice(1).map((function(e){return n.createElement("rect",{key:e.key,x:e.offsetPx-o-a,width:a,y:0,height:r,stroke:"none",fill:"grey"})})))};function Nt(e){var t=e.model,r=e.offset;return n.createElement(n.Fragment,null,e.displayResults.map((function(e){var a=e.track,i=e.result,l=r,c=o.getConf(a,"name")||"Reference sequence (".concat(o.readConfObject(h.getParent(a.configuration),"name"),")"),s=a.displays[0];return r+=s.height+20+20,n.createElement("g",{key:a.configuration.trackId,transform:"translate(0 ".concat(l,")")},n.createElement("text",{fontSize:15,x:Math.max(-t.offsetPx,0)},c),n.createElement("g",{transform:"translate(0 ".concat(20,")")},i,n.createElement(Mt,{model:t,height:s.height})))})))}function Lt(e,t){return Dt.apply(this,arguments)}function Dt(){return(Dt=be(De.mark((function e(t,o){var a,i,l,c,s,u;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.when((function(){return t.initialized}));case 2:return a=t.width,l=50,c=90+(t.showCytobands?100:0)+20,s=Tt(i=t.tracks)+c,e.next=8,Promise.all(i.map(function(){var e=be(De.mark((function e(t){var n;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.displays[0],e.next=3,r.when((function(){return void 0===n.ready||n.ready}));case 3:return e.next=5,n.renderSvg(o);case 5:return e.abrupt("return",{track:t,result:e.sent});case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 8:return u=e.sent,e.abrupt("return",H.renderToStaticMarkup(n.createElement("svg",{width:a,height:s,xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:[0,0,a+2*l,s].toString()},n.createElement("rect",{width:a+2*l,height:s,fill:"white"}),n.createElement("g",{stroke:"none",transform:"translate(".concat(l," ").concat(15,")")},n.createElement(Rt,{model:t}),n.createElement(Nt,{model:t,displayResults:u,offset:c})))));case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function It(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;return e.filter((function(e,n,r){return n===r.findIndex((function(n){return t(n)===t(e)}))}))}var Ot=t.lazy((function(){return Promise.resolve().then((function(){return $n}))})),Ft=function(e){var t=e.style;return n.createElement(f.Popper,Object.assign({},e,{style:{width:"fit-content",minWidth:Math.min(+((null==t?void 0:t.width)||0),200),background:"white"},placement:"bottom-start"}))};function zt(e){var r=e.model,o=e.showHelp,a=void 0===o||o,i=e.onSelect,l=e.assemblyName,c=e.style,s=e.fetchResults,d=e.value,m=e.minWidth,p=void 0===m?200:m,g=e.TextFieldProps,h=void 0===g?{}:g,v=u.getSession(r),y=v.assemblyManager,b=Be(t.useState(!1),2),w=b[0],k=b[1],E=Be(t.useState(!0),2),x=E[0],S=E[1],C=Be(t.useState(!1),2),P=C[0],B=C[1],T=Be(t.useState(""),2),R=T[0],M=T[1],N=Be(t.useState(""),2),L=N[0],D=N[1],I=Be(t.useState(),2),O=I[0],F=I[1],z=u.useDebounce(R,300),j=r.coarseVisibleLocStrings,q=r.hasDisplayedRegions,A=l?y.get(l):void 0,H=(null==A?void 0:A.regions)||[],W=t.useMemo((function(){return H.map((function(e){return{result:new V.RefSequenceResult({refName:e.refName,label:e.refName,matchedAttribute:"refName"})}}))}),[H]);t.useEffect((function(){var e=!0;return be(De.mark((function t(){var n;return De.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,""!==z&&l){t.next=3;break}return t.abrupt("return");case 3:return S(!1),t.next=6,s(z);case 6:n=t.sent,e&&(F(It(n,(function(e){return e.getDisplayString()})).map((function(e){return{result:e}}))),S(!0)),t.next=14;break;case 10:t.prev=10,t.t0=t.catch(0),console.error(t.t0),e&&v.notify("".concat(t.t0),"error");case 14:case"end":return t.stop()}}),t,null,[[0,10]])})))(),function(){e=!1}}),[l,s,z,v,r]);var _=j||d||"",Y=Math.min(Math.max(u.measureText(_,16)+45,p),550);return n.createElement(n.Fragment,null,n.createElement(U,{id:"refNameAutocomplete-".concat(r.id),"data-testid":"autocomplete",disableListWrap:!0,disableClearable:!0,PopperComponent:Ft,disabled:!l,freeSolo:!0,includeInputInList:!0,selectOnFocus:!0,style:he(he({},c),{},{width:Y}),value:_,loading:!x,inputValue:L,onInputChange:function(e,t){return D(t)},loadingText:"loading results",open:w,onOpen:function(){return k(!0)},onClose:function(){k(!1),S(!0),q&&(M(""),F(void 0))},onChange:function(e,t){t&&l&&(i("string"==typeof t?new G({label:t}):t.result),D(_))},options:null!=O&&O.length?O:W,getOptionDisabled:function(e){return"limitOption"===(null==e?void 0:e.group)},filterOptions:function(e,t){var n=function(e,t){return e.filter((function(e){var n=e.result;return n.getLabel().toLowerCase().includes(t)||n.matchedObject}))}(e,t.inputValue.toLocaleLowerCase());return[].concat(Te(n.slice(0,100)),Te(n.length>100?[{group:"limitOption",result:new G({label:"keep typing for more results"})}]:[]))},renderInput:function(e){var t=h.InputProps,r=void 0===t?{}:t;return n.createElement(f.TextField,Object.assign({onBlur:function(){D(_)}},e,h,{helperText:h.helperText,InputProps:he(he(he({},e.InputProps),r),{},{endAdornment:n.createElement(n.Fragment,null,0===H.length?n.createElement(f.CircularProgress,{color:"inherit",size:20}):n.createElement(f.InputAdornment,{position:"end",style:{marginRight:7}},n.createElement(X,null),a?n.createElement(f.IconButton,{onClick:function(){return B(!0)}},n.createElement(J,null)):null),e.InputProps.endAdornment)}),placeholder:"Search for location",onChange:function(e){M(e.target.value)}}))},renderOption:function(e){var t=e.result,r=t.getRenderingComponent();return r&&n.isValidElement(r)?r:n.createElement(f.Typography,{noWrap:!0},t.getDisplayString())},getOptionLabel:function(e){return("string"==typeof e?e:e.result.getLabel())||""}}),P?n.createElement(t.Suspense,{fallback:n.createElement("div",null)},n.createElement(Ot,{handleClose:function(){return B(!1)}})):null)}var jt=y.observer(zt),qt=f.makeStyles((function(){return{headerRefName:{minWidth:100}}}));function At(e){var t=e.model,r=e.showHelp,o=qt(),a=f.useTheme(),i=u.getSession(t),l=i.textSearchManager,c=t.rankSearchResults,s=t.assemblyNames[0],d=i.assemblyManager.get(s),m=t.searchScope(s);function p(e,t){return g.apply(this,arguments)}function g(){return(g=be(De.mark((function e(t,n){var r,o,a;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l||console.warn("No text search manager"),e.next=3,null==l?void 0:l.search({queryString:t,searchType:n},m,c);case 3:return o=e.sent,a=null==d||null===(r=d.allRefNames)||void 0===r?void 0:r.filter((function(e){return e.startsWith(t)})).map((function(e){return new G({label:e})})).slice(0,10),e.abrupt("return",It([].concat(Te(a||[]),Te(o||[])),(function(e){return e.getId()})));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function h(){return(h=be(De.mark((function e(n){var r,o,a,l,c;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.getTrackId(),o=n.getLocation(),a=n.getLabel(),e.prev=3,null==d||null===(l=d.allRefNames)||void 0===l||!l.includes(o)){e.next=8;break}t.navToLocString(o),e.next=19;break;case 8:return e.next=10,p(a,"exact");case 10:if(!((c=e.sent)&&c.length>1)){e.next=16;break}return t.setSearchResults(c,a.toLowerCase()),e.abrupt("return");case 16:1===(null==c?void 0:c.length)&&(o=c[0].getLocation(),r=c[0].getTrackId());case 17:t.navToLocString(o,s),r&&t.showTrack(r);case 19:e.next=25;break;case 21:e.prev=21,e.t0=e.catch(3),console.error(e.t0),i.notify("".concat(e.t0),"warning");case 25:case"end":return e.stop()}}),e,null,[[3,21]])})))).apply(this,arguments)}return n.createElement(jt,{showHelp:r,onSelect:function(e){return h.apply(this,arguments)},assemblyName:s,fetchResults:p,model:t,TextFieldProps:{variant:"outlined",className:o.headerRefName,style:{margin:Gn,minWidth:"175px"},InputProps:{style:{padding:0,height:Vn,background:f.alpha(a.palette.background.paper,.8)}}}})}var Ht=y.observer(At),Wt=k.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function _t(e){var r,o=e.model,a=e.handleClose,i="undefined"!=typeof OffscreenCanvas,l=Be(t.useState(i),2),c=l[0],s=l[1],u=Be(t.useState(!1),2),d=u[0],m=u[1],p=Be(t.useState(),2),g=p[0],h=p[1],v=Wt();return n.createElement(f.Dialog,{open:!0,onClose:a},n.createElement(f.DialogTitle,null,"Export SVG",n.createElement(f.IconButton,{className:v.closeButton,onClick:a},n.createElement(Y,null))),n.createElement(f.DialogContent,null,g?n.createElement("div",{style:{color:"red"}},"".concat(g)):d?n.createElement("div",null,n.createElement(f.CircularProgress,{size:20,style:{marginRight:20}}),n.createElement(f.Typography,{display:"inline"},"Creating SVG")):null,i?n.createElement(f.FormControlLabel,{control:n.createElement(f.Checkbox,{checked:c,onChange:function(){return s((function(e){return!e}))}}),label:"Rasterize canvas based tracks? File may be much larger if this is turned off"}):n.createElement(f.Typography,null,"Note: rasterizing layers not yet supported in this browser, so SVG size may be large")),n.createElement(f.DialogActions,null,n.createElement(f.Button,{variant:"contained",color:"secondary",onClick:function(){return a()}},"Cancel"),n.createElement(f.Button,{variant:"contained",color:"primary",type:"submit",onClick:(r=be(De.mark((function e(){return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return m(!0),h(void 0),e.prev=2,e.next=5,o.exportSvg({rasterizeLayers:c});case 5:a(),e.next=12;break;case 8:e.prev=8,e.t0=e.catch(2),console.error(e.t0),h(e.t0);case 12:return e.prev=12,m(!1),e.finish(12);case 15:case"end":return e.stop()}}),e,null,[[2,8,12,15]])}))),function(){return r.apply(this,arguments)})},"Submit")))}var Vt=k.makeStyles({container:{display:"flex",flexDirection:"row",alignItems:"center"},slider:{width:70}});function Gt(e){var r=e.model,o=Vt(),a=r.maxBpPerPx,i=r.minBpPerPx,l=r.bpPerPx,c=r.scaleFactor,s=Be(t.useState(100*-Math.log2(l)),2),u=s[0],d=s[1];return t.useEffect((function(){d(100*-Math.log2(l))}),[d,l]),n.createElement("div",{className:o.container},n.createElement(Q,{"data-testid":"zoom_out",onClick:function(){r.zoom(2*l)},disabled:l>=a-1e-4||1!==c,color:"secondary"},n.createElement(ee,null)),n.createElement($,{className:o.slider,value:u,min:100*-Math.log2(a),max:100*-Math.log2(i),onChange:function(e,t){return d(t)},onChangeCommitted:function(){return r.zoomTo(Math.pow(2,-u/100))},disabled:1!==c}),n.createElement(Q,{"data-testid":"zoom_in",onClick:function(){r.zoom(r.bpPerPx/2)},disabled:l<=i+1e-4||1!==c,color:"secondary"},n.createElement(A,null)))}var Xt=y.observer(Gt),Ut=f.makeStyles((function(e){return{headerBar:{height:An,display:"flex"},headerForm:{flexWrap:"nowrap",marginRight:7},spacer:{flexGrow:1},panButton:{background:f.alpha(e.palette.background.paper,.8),height:Vn,margin:Gn},bp:{display:"flex",alignItems:"center",marginLeft:5},toggleButton:{height:44,border:"none",margin:e.spacing(.5)},buttonSpacer:{marginRight:e.spacing(2)}}})),Jt=y.observer((function(e){var t=e.model,r=Ut();return n.createElement(f.Button,{onClick:t.activateTrackSelector,className:r.toggleButton,title:"Open track selector",value:"track_select",color:"secondary"},n.createElement(I.TrackSelector,{className:r.buttonSpacer}))}));function Yt(e){var t=e.model,r=Ut();return n.createElement(n.Fragment,null,n.createElement(f.Button,{variant:"outlined",className:r.panButton,onClick:function(){return t.slide(-.9)}},n.createElement(K,null)),n.createElement(f.Button,{variant:"outlined",className:r.panButton,onClick:function(){return t.slide(.9)}},n.createElement(Z,null)))}var Zt=y.observer((function(e){var t=e.model,r=Ut();return n.createElement(f.Typography,{variant:"body2",color:"textSecondary",className:r.bp},Math.round(t.coarseTotalBp).toLocaleString("en-US")," bp")})),Kt=function(e){var t=e.model,r=Ut();return n.createElement("div",{className:r.headerBar},n.createElement(Jt,{model:t}),n.createElement("div",{className:r.spacer}),n.createElement(f.FormGroup,{row:!0,className:r.headerForm},n.createElement(Yt,{model:t}),n.createElement(Ht,{model:t})),n.createElement(Zt,{model:t}),n.createElement(Xt,{model:t}),n.createElement("div",{className:r.spacer}))},Qt=y.observer((function(e){var t=e.model;return t.hideHeaderOverview?n.createElement(Kt,{model:t}):n.createElement(Ct,{model:t},n.createElement(Kt,{model:t}))})),$t=f.makeStyles((function(e){return{root:{background:f.alpha(e.palette.background.paper,.8),"&:hover":{background:e.palette.background.paper},transition:e.transitions.create(["background"],{duration:e.transitions.duration.shortest})},trackName:{margin:"0 auto",width:"90%",fontSize:"0.8rem",pointerEvents:"none"},dragHandle:{cursor:"grab",color:"#135560"},dragHandleIcon:{display:"inline-block",verticalAlign:"middle",pointerEvents:"none"},iconButton:{padding:e.spacing(1)}}})),en=y.observer(n.forwardRef((function(e,t){var r,a=$t(),i=Be(n.useState(null),2),l=i[0],c=i[1],s=e.track,d=e.className,m=u.getContainingView(s),p=u.getSession(s),g=s.configuration,h=o.getConf(s,"trackId"),v=function(){c(null)},y=o.getConf(s,"name");"ReferenceSequenceTrack"===o.getConf(s,"type")&&(y="Reference Sequence",p.assemblies.forEach((function(e){e.sequence===g&&(y="Reference Sequence (".concat(o.readConfObject(e,"name"),")"))})));var w=[].concat(Te(null===(r=p.getTrackActionMenuItems)||void 0===r?void 0:r.call(p,g)),Te(s.trackMenuItems())).sort((function(e,t){return(t.priority||0)-(e.priority||0)}));return n.createElement(n.Fragment,null,n.createElement(f.Paper,{ref:t,className:_(d,a.root)},n.createElement("span",{draggable:!0,className:a.dragHandle,onDragStart:function(e){var t=e.target;t.parentNode&&(e.dataTransfer.setDragImage(t.parentNode,20,20),m.setDraggingTrackId(s.id))},onDragEnd:function(){m.setDraggingTrackId(void 0)},"data-testid":"dragHandle-".concat(m.id,"-").concat(h)},n.createElement(re,{className:a.dragHandleIcon})),n.createElement(f.IconButton,{onClick:function(){return m.hideTrack(h)},className:a.iconButton,title:"close this track",color:"secondary"},n.createElement(Y,null)),n.createElement(f.Typography,{variant:"body1",component:"span",className:a.trackName},y),n.createElement(f.IconButton,{"aria-controls":"simple-menu","aria-haspopup":"true",onClick:function(e){c(e.currentTarget)},className:a.iconButton,color:"secondary","data-testid":"track_menu_icon",disabled:!w.length},n.createElement(ne,null))),n.createElement(b.Menu,{anchorEl:l,onMenuItemClick:function(e,t){t(),v()},open:Boolean(l),onClose:v,menuItems:w}))}))),tn=k.makeStyles((function(e){return{root:{marginTop:2},resizeHandle:{height:_n,boxSizing:"border-box",position:"relative",zIndex:2},overlay:{pointerEvents:"none",position:"absolute",top:0,left:0,width:"100%",zIndex:3,borderRadius:e.shape.borderRadius},trackLabel:{zIndex:3},renderingComponentContainer:{position:"absolute",left:-1,height:"100%",width:"100%"},trackLabelInline:{position:"relative",display:"inline-block"},trackLabelOverlap:{position:"absolute"},trackRenderingContainer:{overflowY:"auto",overflowX:"hidden",whiteSpace:"nowrap",position:"relative",background:"none",zIndex:2}}})),nn=y.observer((function(e){var t=e.model,r=e.view,o=tn();return"hidden"!==r.trackLabels?n.createElement(en,{track:t,className:_(o.trackLabel,"overlapping"===r.trackLabels?o.trackLabelOverlap:o.trackLabelInline)}):null}));function rn(e){var r=e.model,a=e.track,i=tn(),l=a.displays[0],c=r.horizontalScroll,s=r.draggingTrackId,d=r.moveTrack,f=l.height,m=o.getConf(a,"trackId"),p=t.useRef(null);t.useEffect((function(){return p.current&&(r.trackRefs[m]=p.current),function(){delete r.trackRefs[m]}}),[r.trackRefs,m]);var g=u.useDebouncedCallback((function(){void 0!==s&&h.isAlive(l)&&s!==l.id&&d(s,a.id)}),100),v=l.RenderingComponent,y=l.DisplayBlurb,w=void 0!==s&&s!==l.id;return n.createElement(te,{className:i.root,variant:"outlined"},n.createElement(nn,{model:a,view:r}),n.createElement("div",{className:i.trackRenderingContainer,style:{height:f},onScroll:function(e){l.setScrollTop(e.target.scrollTop)},onDragEnter:g,"data-testid":"trackRenderingContainer-".concat(r.id,"-").concat(m),role:"presentation"},n.createElement("div",{ref:p,className:i.renderingComponentContainer,style:{transform:"scaleX(".concat(r.scaleFactor,")")}},n.createElement(v,{model:l,onHorizontalScroll:c})),y?n.createElement("div",{style:{position:"absolute",left:0,top:l.height-20}},n.createElement(y,{model:l})):null),n.createElement("div",{className:i.overlay,style:{height:l.height,background:w?"rgba(0, 0, 0, 0.4)":void 0},onDragEnter:g}),n.createElement(b.ResizeHandle,{onDrag:l.resizeHeight,className:i.resizeHandle}))}var on=y.observer(rn),an=k.makeStyles((function(e){return{rubberBand:{height:"100%",background:ae.alpha(e.palette.tertiary?e.palette.tertiary.main:e.palette.primary.main,.7),position:"absolute",zIndex:10,textAlign:"center",overflow:"hidden"},rubberBandControl:{cursor:"crosshair",width:"100%",minHeight:8},rubberBandText:{color:e.palette.tertiary?e.palette.tertiary.contrastText:e.palette.primary.contrastText},popover:{mouseEvents:"none",cursor:"crosshair"},paper:{paddingLeft:e.spacing(1),paddingRight:e.spacing(1)},guide:{pointerEvents:"none",height:"100%",width:1,position:"absolute",zIndex:10}}})),ln=y.observer((function(e){var t=e.model,r=e.coordX,o=an();return n.createElement(le,{open:!0,placement:"top",title:u.stringify(t.pxToBp(r)),arrow:!0},n.createElement("div",{className:o.guide,style:{left:r,background:"red"}}))}));function cn(e){var r=e.model,o=e.ControlComponent,a=void 0===o?n.createElement("div",null):o,i=Be(t.useState(),2),l=i[0],c=i[1],s=Be(t.useState(),2),d=s[0],f=s[1],m=Be(t.useState(),2),p=m[0],g=m[1],h=Be(t.useState(),2),v=h[0],y=h[1],w=t.useRef(null),k=t.useRef(null),E=an(),x=void 0!==l&&void 0===p,S=r.setOffsets,P=r.pxToBp;function B(e){e.preventDefault(),e.stopPropagation();var t=e.clientX-e.target.getBoundingClientRect().left;c(t),f(t)}function T(e){y(e.clientX-e.target.getBoundingClientRect().left)}function R(){y(void 0),r.setOffsets(void 0,void 0)}function M(){g(void 0),c(void 0),f(void 0)}t.useEffect((function(){function e(e){if(w.current&&x){var t=e.clientX-w.current.getBoundingClientRect().left;f(t)}}function t(e){if(void 0!==l&&w.current){var t=e.clientX,n=e.clientY,r=t-w.current.getBoundingClientRect().left;g({offsetX:r,clientX:t,clientY:n});var o=function(e){if(void 0!==l){var t=l,n=e;if(n<t){var r=[n,t];t=r[0],n=r[1]}return{leftOffset:P(t),rightOffset:P(n)}}}(r);S(o.leftOffset,o.rightOffset),y(void 0)}}return x?(window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),function(){window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}):function(){}}),[l,x,p,S,P]),t.useEffect((function(){!x&&void 0!==d&&void 0!==l&&Math.abs(d-l)<=3&&M()}),[x,d,l,r.bpPerPx]);var N=Boolean(p);if(void 0===l)return n.createElement(n.Fragment,null,void 0!==v?n.createElement(ln,{model:r,coordX:v}):null,n.createElement("div",{"data-testid":"rubberBand_controls",className:E.rubberBandControl,role:"presentation",ref:w,onMouseDown:B,onMouseOut:R,onMouseMove:T},a));var L=p?p.offsetX:d||0,D=L<l?L:l,I=Math.abs(L-l),O=r.pxToBp(D),F=r.pxToBp(D+I),z=Math.ceil(I*r.bpPerPx);return n.createElement(n.Fragment,null,k.current?n.createElement(n.Fragment,null,n.createElement(ie,{className:E.popover,classes:{paper:E.paper},open:!0,anchorEl:k.current,anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"bottom",horizontal:"right"},keepMounted:!0,disableRestoreFocus:!0},n.createElement(C,null,u.stringify(O))),n.createElement(ie,{className:E.popover,classes:{paper:E.paper},open:!0,anchorEl:k.current,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"bottom",horizontal:"left"},keepMounted:!0,disableRestoreFocus:!0},n.createElement(C,null,u.stringify(F)))):null,n.createElement("div",{ref:k,className:E.rubberBand,style:{left:D,width:I}},n.createElement(C,{variant:"h6",className:E.rubberBandText},z.toLocaleString("en-US")," bp")),n.createElement("div",{"data-testid":"rubberBand_controls",className:E.rubberBandControl,role:"presentation",ref:w,onMouseDown:B,onMouseOut:R,onMouseMove:T},a),p?n.createElement(b.Menu,{anchorReference:"anchorPosition",anchorPosition:{left:p.clientX,top:p.clientY},onMenuItemClick:function(e,t){t(),M()},open:N,onClose:M,menuItems:r.rubberBandMenuItems()}):null)}cn.propTypes={model:y.PropTypes.objectOrObservableObject.isRequired,ControlComponent:W.node},cn.defaultProps={ControlComponent:n.createElement("div",null)};var sn=y.observer(cn),un=["model","style","className"],dn=k.makeStyles((function(e){return{scaleBarContainer:{overflow:"hidden",position:"relative"},scaleBarZoomContainer:{position:"relative",zIndex:1},scaleBar:{position:"absolute",display:"flex",pointerEvents:"none"},majorTickLabel:{fontSize:"11px",zIndex:1,background:e.palette.background.paper,lineHeight:"normal",pointerEvents:"none"},tick:{position:"absolute",width:0,display:"flex",justifyContent:"center",pointerEvents:"none"},refLabel:{fontSize:"11px",position:"absolute",left:"2px",top:"-1px",fontWeight:"bold",lineHeight:"normal",zIndex:1,pointerEvents:"none",background:e.palette.background.paper}}})),fn=y.observer((function(e){var t=e.model,r=dn(),o=0;return t.staticBlocks.forEach((function(e,n){e.offsetPx-t.offsetPx<0&&(o=n)})),n.createElement(n.Fragment,null,t.staticBlocks.map((function(e,a){return e instanceof E.ContentBlock&&(e.isLeftEndOfDisplayedRegion||a===o)?n.createElement(C,{key:"refLabel-".concat(e.key,"-").concat(a),style:{left:a===o?Math.max(0,-t.offsetPx):e.offsetPx-t.offsetPx-1,paddingLeft:a===o?0:1},className:r.refLabel,"data-testid":"refLabel-".concat(e.refName)},e.refName):null})))})),mn=y.observer((function(e){var t=e.model,r=dn();return n.createElement(n.Fragment,null,t.staticBlocks.map((function(e,o){if(e instanceof E.ContentBlock){var a=st(e.start,e.end,t.bpPerPx,!0,!1);return n.createElement(Fe,{key:"".concat(e.key,"-").concat(o),block:e},a.map((function(o){if("major"===o.type){var a=(e.reversed?e.end-o.base:o.base-e.start)/t.bpPerPx,i=(o.base+1).toLocaleString("en-US");return n.createElement("div",{key:o.base,className:r.tick,style:{left:a}},i?n.createElement(C,{className:r.majorTickLabel},i):null)}return null})))}return e instanceof E.ElidedBlock?n.createElement(ze,{key:e.key,width:e.widthPx}):e instanceof E.InterRegionPaddingBlock?n.createElement(je,{key:e.key,width:e.widthPx,style:{background:"none"},boundary:"boundary"===e.variant}):null})))})),pn=y.observer(n.forwardRef((function(e,t){var r=e.model,o=e.style,a=e.className,i=Se(e,un),l=dn(),c=r.staticBlocks.offsetPx-r.offsetPx;return n.createElement(te,Object.assign({"data-resizer":"true",className:_(l.scaleBarContainer,a),variant:"outlined",ref:t,style:o},i),n.createElement("div",{className:l.scaleBarZoomContainer,style:{transform:1!==r.scaleFactor?"scaleX(".concat(r.scaleFactor,")"):void 0}},n.createElement("div",{className:l.scaleBar,style:he({left:c-1,width:r.staticBlocks.totalWidthPx},o)},n.createElement(mn,{model:r}))),n.createElement(fn,{model:r}))}))),gn=k.makeStyles((function(e){return{verticalGuidesZoomContainer:{position:"absolute",height:"100%",width:"100%",zIndex:1,pointerEvents:"none"},verticalGuidesContainer:{position:"absolute",height:"100%",zIndex:1,pointerEvents:"none",display:"flex"},tick:{position:"absolute",height:"100%",width:1},majorTick:{background:e.palette.text.hint},minorTick:{background:e.palette.divider}}})),hn=y.observer((function(e){var t=e.model,r=gn();return n.createElement(n.Fragment,null,t.staticBlocks.map((function(e,o){if(e instanceof E.ContentBlock){var a=st(e.start,e.end,t.bpPerPx);return n.createElement(Fe,{key:"".concat(e.key,"-").concat(o),block:e},a.map((function(o){var a=(e.reversed?e.end-o.base:o.base-e.start)/t.bpPerPx;return n.createElement("div",{key:o.base,className:_(r.tick,"major"===o.type||"labeledMajor"===o.type?r.majorTick:r.minorTick),style:{left:a}})})))}return e instanceof E.ElidedBlock?n.createElement(ze,{key:e.key,width:e.widthPx}):e instanceof E.InterRegionPaddingBlock?n.createElement(je,{key:e.key,width:e.widthPx,boundary:"boundary"===e.variant}):null})))}));function vn(e){var t=e.model,r=gn(),o=t.staticBlocks.offsetPx-t.offsetPx;return n.createElement("div",{className:r.verticalGuidesZoomContainer,style:{transform:1!==t.scaleFactor?"scaleX(".concat(t.scaleFactor,")"):void 0}},n.createElement("div",{className:r.verticalGuidesContainer,style:{left:o,width:t.staticBlocks.totalWidthPx}},n.createElement(hn,{model:t})))}var yn=y.observer(vn),bn=k.makeStyles((function(){return{centerLineContainer:{background:"transparent",height:"100%",zIndex:5,position:"absolute",border:"1px black dashed",borderTop:"none",borderBottom:"none",pointerEvents:"none"},centerLineText:{position:"absolute",pointerEvents:"none",whiteSpace:"nowrap",fontWeight:"bold"}}}));function wn(e){var r=e.model,o=r.bpPerPx,a=r.centerLineInfo,i=r.trackHeights,l=r.tracks,c=r.width,s=t.useRef(null),u=bn();return l.length?n.createElement("div",{"data-testid":"centerline_container",className:u.centerLineContainer,role:"presentation",ref:s,style:{left:"".concat(c/2,"px"),width:Math.max(1/o,1)}},a&&n.createElement("div",{"data-testid":"centerline_text",className:u.centerLineText,role:"presentation",style:{left:Math.max(1/o,1)+5,top:i}},a.refName,":"," ",Math.max(Math.round(a.offset)+1,0))):null}wn.propTypes={model:y.PropTypes.objectOrObservableObject.isRequired};var kn=y.observer(wn),En=k.makeStyles((function(e){return{tracksContainer:{position:"relative",borderRadius:e.shape.borderRadius,overflow:"hidden"},spacer:{position:"relative",height:_n}}}));function xn(e){var r=e.children,o=e.model,a=En(),i=t.useRef(0),l=t.useRef(!1),c=t.useRef(),s=t.useRef(null),u=t.useRef(0),d=Be(t.useState(!1),2),f=d[0],m=d[1];return t.useEffect((function(){var e=function(){};function t(e){e.preventDefault();var t=e.clientX-u.current;t&&(l.current||(l.current=!0,window.requestAnimationFrame((function(){o.horizontalScroll(-t),l.current=!1,u.current=e.clientX}))))}function n(){u.current=0,f&&m(!1)}return f&&(window.addEventListener("mousemove",t,!0),window.addEventListener("mouseup",n,!0),e=function(){window.removeEventListener("mousemove",t,!0),window.removeEventListener("mouseup",n,!0)}),e}),[o,f,u]),t.useEffect((function(){var e=s.current;function t(e){var t=oe(e);!0===e.ctrlKey?(e.preventDefault(),i.current+=t.pixelY/500,o.setScaleFactor(i.current<0?1-i.current:1/(1+i.current)),c.current&&clearTimeout(c.current),c.current=setTimeout((function(){o.setScaleFactor(1),o.zoomTo(i.current>0?o.bpPerPx*(1+i.current):o.bpPerPx/(1-i.current)),i.current=0}),300)):(Math.abs(t.pixelX)>Math.abs(2*t.pixelY)&&e.preventDefault(),i.current+=t.pixelX,l.current||(l.current=!0,window.requestAnimationFrame((function(){o.horizontalScroll(i.current),i.current=0,l.current=!1}))))}return e?(e.addEventListener("wheel",t),function(){e.removeEventListener("wheel",t)}):function(){}}),[o]),n.createElement("div",{ref:s,role:"presentation",className:a.tracksContainer,onMouseDown:function(e){var t=e.target;t.draggable||t.dataset.resizer||0===e.button&&(u.current=e.clientX,m(!0))},onMouseUp:function(e){e.preventDefault(),m(!1)},onMouseLeave:function(e){e.preventDefault()}},n.createElement(yn,{model:o}),o.showCenterLine?n.createElement(kn,{model:o}):null,n.createElement(sn,{model:o,ControlComponent:n.createElement(pn,{model:o,style:{height:Wn,boxSizing:"border-box"}})}),r)}var Sn=y.observer(xn),Cn=t.lazy((function(){return Promise.resolve().then((function(){return Fn}))})),Pn=f.makeStyles((function(e){return{importFormContainer:{padding:e.spacing(2)},button:{margin:e.spacing(2)}}})),Bn=y.observer((function(e){var r,o=e.model,a=Pn(),i=u.getSession(o),l=i.assemblyNames,c=i.assemblyManager,s=i.textSearchManager,d=o.rankSearchResults,m=o.isSearchDialogDisplayed,p=o.error,g=Be(t.useState(l[0]),2),h=g[0],v=g[1],y=Be(t.useState(p),2),b=y[0],w=y[1],k=o.searchScope(h),E=c.get(h),x=l.length?null==E?void 0:E.error:"No configured assemblies",S=(null==E?void 0:E.regions)||[],C=x||b,P=Be(t.useState(),2),B=P[1],T=P[0]||new G({label:null===(r=S[0])||void 0===r?void 0:r.refName}),R=null==T?void 0:T.getLocation();function M(e,t){return N.apply(this,arguments)}function N(){return(N=be(De.mark((function e(t,n){var r,o,a;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s||console.warn("No text search manager"),e.next=3,null==s?void 0:s.search({queryString:t,searchType:n},k,d);case 3:return o=e.sent,a=null==E||null===(r=E.allRefNames)||void 0===r?void 0:r.filter((function(e){return e.startsWith(t)})).map((function(e){return new G({label:e})})).slice(0,10),e.abrupt("return",[].concat(Te(a||[]),Te(o||[])));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function L(){return(L=be(De.mark((function e(t){var n,r,a,l;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(T){e.next=2;break}return e.abrupt("return");case 2:if(n=T.getTrackId(),r=t||T.getLocation()||"",e.prev=4,null==E||null===(a=E.allRefNames)||void 0===a||!a.includes(r)){e.next=9;break}o.navToLocString(r,h),e.next=20;break;case 9:return e.next=11,M(t,"exact");case 11:if(!((l=e.sent)&&l.length>1)){e.next=17;break}return o.setSearchResults(l,t.toLowerCase()),e.abrupt("return");case 17:1===(null==l?void 0:l.length)&&(r=l[0].getLocation(),n=l[0].getTrackId());case 18:o.navToLocString(r,h),n&&o.showTrack(n);case 20:e.next=26;break;case 22:e.prev=22,e.t0=e.catch(4),console.error(e.t0),i.notify("".concat(e.t0),"warning");case 26:case"end":return e.stop()}}),e,null,[[4,22]])})))).apply(this,arguments)}return n.createElement("div",null,C?n.createElement(ce,{error:C}):null,n.createElement(f.Container,{className:a.importFormContainer},n.createElement("form",{onSubmit:function(e){return e.preventDefault()}},n.createElement(f.Grid,{container:!0,spacing:1,justifyContent:"center",alignItems:"center"},n.createElement(f.Grid,{item:!0},n.createElement(se,{onChange:function(e){w(void 0),v(e)},session:i,selected:h})),n.createElement(f.Grid,{item:!0},h?C?n.createElement(Y,{style:{color:"red"}}):R?n.createElement(jt,{fetchResults:M,model:o,assemblyName:x?void 0:h,value:R,minWidth:270,onSelect:function(e){return B(e)},TextFieldProps:{margin:"normal",variant:"outlined",helperText:"Enter sequence name, feature name, or location"}}):n.createElement(f.CircularProgress,{role:"progressbar",size:20,disableShrink:!0}):null),n.createElement(f.Grid,{item:!0}),n.createElement(f.Grid,{item:!0},n.createElement(f.Button,{type:"submit",disabled:!R,className:a.button,onClick:function(){o.setError(void 0),R&&function(e){L.apply(this,arguments)}(R)},variant:"contained",color:"primary"},"Open"),n.createElement(f.Button,{disabled:!R,className:a.button,onClick:function(){o.setError(void 0),o.showAllRegionsInAssembly(h)},variant:"contained",color:"secondary"},"Show all regions in assembly"))))),m?n.createElement(Cn,{model:o,optAssemblyName:h,handleClose:function(){return o.setSearchResults(void 0,void 0)}}):null)})),Tn=y.observer((function(e){var r=e.model,o=r.bpPerPx,a=r.maxBpPerPx,i=r.minBpPerPx,l=r.scaleFactor,c=Be(t.useState(),2),s=c[0],u=c[1];return n.createElement(n.Fragment,null,n.createElement(te,{style:{background:"#aaa7"}},n.createElement(Q,{color:"secondary",onClick:function(e){u(e.currentTarget)}},n.createElement(ue,null)),n.createElement(Q,{"data-testid":"zoom_out",onClick:function(){r.zoom(2*o)},disabled:o>=a-1e-4||1!==l,color:"secondary"},n.createElement(ee,null)),n.createElement(Q,{"data-testid":"zoom_in",onClick:function(){r.zoom(r.bpPerPx/2)},disabled:o<=i+1e-4||1!==l,color:"secondary"},n.createElement(A,null))),n.createElement(de,{anchorEl:s,open:Boolean(s),onMenuItemClick:function(e,t){t(),u(void 0)},onClose:function(){u(void 0)},menuItems:r.menuItems()}))})),Rn=f.makeStyles((function(e){return{loadingMessage:{padding:e.spacing(5)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},dialogContent:{width:"80em"},textAreaFont:{fontFamily:"Courier New"}}}));function Mn(e,t,n){return Nn.apply(this,arguments)}function Nn(){return(Nn=be(De.mark((function e(t,n,r){var a,i,l,c,s,d,f;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=u.getSession(t),l=t.rightOffset,(i=t.leftOffset)&&l){e.next=4;break}throw new Error("no offsets on model to use for range");case 4:if(i.assemblyName===l.assemblyName){e.next=6;break}throw new Error("not able to fetch sequences from multiple assemblies");case 6:if(c=a.rpcManager,d=a.assemblyManager.get(s=i.assemblyName||l.assemblyName||"")){e.next=11;break}throw new Error("assembly ".concat(s," not found"));case 11:return f=o.getConf(d,["sequence","adapter"]),e.next=15,Promise.all(n.map((function(e){return c.call("getSequence","CoreGetFeatures",{adapterConfig:f,region:e,sessionId:"getSequence",signal:r})})));case 15:return e.abrupt("return",e.sent.map((function(e){return e[0]})));case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ln(e){var r=e.model,o=e.handleClose,a=Rn(),i=u.getSession(r),l=Be(t.useState(),2),c=l[0],s=l[1],d=Be(t.useState(),2),m=d[0],p=d[1],g=Boolean(void 0===m),h=r.leftOffset,v=r.rightOffset,y=t.useMemo((function(){return r.getSelectedRegions(h,v)}),[r,h,v]);t.useEffect((function(){var e=!0,t=new AbortController;return be(De.mark((function n(){var o;return De.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(n.prev=0,!(y.length>0)){n.next=8;break}return n.next=4,Mn(r,y,t.signal);case 4:o=n.sent,e&&p(me.formatSeqFasta(o.filter((function(e){return!!e})).map((function(e){var t=e.get("seq"),n=e.get("refName"),r=e.get("start")+1,o=e.get("end"),a="".concat(n,":").concat(r,"-").concat(o);if((null==t?void 0:t.length)!==o-r+1)throw new Error("".concat(a," returned ").concat(t.length.toLocaleString()," bases, but should have returned ").concat((o-r).toLocaleString()));return{header:a,seq:t}})))),n.next=9;break;case 8:throw new Error("Selected region is out of bounds");case 9:n.next=15;break;case 11:n.prev=11,n.t0=n.catch(0),console.error(n.t0),e&&s(n.t0);case 15:case"end":return n.stop()}}),n,null,[[0,11]])})))(),function(){t.abort(),e=!1}}),[r,i,y,p]);var b=!!m&&m.length>1e6;return n.createElement(f.Dialog,{"data-testid":"sequence-dialog",maxWidth:"xl",open:!0,onClose:o,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},n.createElement(f.DialogTitle,{id:"alert-dialog-title"},"Reference sequence",o?n.createElement(f.IconButton,{"data-testid":"close-seqDialog",className:a.closeButton,onClick:function(){o(),r.setOffsets(void 0,void 0)}},n.createElement(Y,null)):null),n.createElement(f.Divider,null),n.createElement(f.DialogContent,null,c?n.createElement(f.Typography,{color:"error"},"".concat(c)):null,g&&!c?n.createElement(f.Container,null,"Retrieving reference sequence...",n.createElement(f.CircularProgress,{style:{marginLeft:10},size:20,disableShrink:!0})):null,n.createElement(f.TextField,{"data-testid":"rubberband-sequence",variant:"outlined",multiline:!0,rows:5,disabled:b,className:a.dialogContent,fullWidth:!0,value:b?"Reference sequence too large to display, use the download FASTA button":m,InputProps:{readOnly:!0,classes:{input:a.textAreaFont}}})),n.createElement(f.DialogActions,null,n.createElement(f.Button,{onClick:function(){fe(m||""),i.notify("Copied to clipboard","success")},disabled:g||!!c||b,color:"primary",startIcon:n.createElement(I.ContentCopy,null)},"Copy to clipboard"),n.createElement(f.Button,{onClick:function(){var e=new Blob([m||""],{type:"text/x-fasta;charset=utf-8"});D.saveAs(e,"jbrowse_ref_seq.fa")},disabled:g||!!c,color:"primary",startIcon:n.createElement(pe,null)},"Download FASTA"),n.createElement(f.Button,{onClick:o,color:"primary",autoFocus:!0},"Close")))}var Dn=y.observer(Ln),In=f.makeStyles((function(e){return{dialogContent:{width:"80em"},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}}));function On(e){var t,r,o=e.model,a=e.optAssemblyName,i=e.handleClose,l=In(),c=u.getSession(o),s=h.getEnv(c).pluginManager,d=c.assemblyManager,m=a;if(o.displayedRegions.length>0&&(m=null===(r=o.displayedRegions[0])||void 0===r?void 0:r.assemblyName),!m)throw new Error("Assembly name not found");var p=d.get(m);if(!p)throw new Error("assembly ".concat(m," not found"));if(!p.regions)throw new Error("assembly ".concat(m," regions not loaded"));var g=p.regions;function v(e){if(e){var t,n=s.pluggableConfigSchemaType("track"),r=h.resolveIdentifier(n,h.getRoot(o),e);if(r)return null===(t=r.name)||void 0===t?void 0:t.value}return""}return n.createElement(f.Dialog,{open:!0,maxWidth:"xl",onClose:i},n.createElement(f.DialogTitle,null,"Search results",i?n.createElement(f.IconButton,{"data-testid":"close-resultsDialog",className:l.closeButton,onClick:function(){i()}},n.createElement(Y,null)):null),n.createElement(f.Divider,null),n.createElement(f.DialogContent,null,null!==(t=o.searchResults)&&void 0!==t&&t.length?n.createElement(n.Fragment,null,n.createElement(f.Typography,null,"Showing results for ",n.createElement("b",null,o.searchQuery)),n.createElement(f.TableContainer,{component:f.Paper},n.createElement(f.Table,null,n.createElement(f.TableHead,null,n.createElement(f.TableRow,null,n.createElement(f.TableCell,null,"Name"),n.createElement(f.TableCell,{align:"right"},"Location"),n.createElement(f.TableCell,{align:"right"},"Track"),n.createElement(f.TableCell,{align:"right"}))),n.createElement(f.TableBody,null,o.searchResults.map((function(e){return n.createElement(f.TableRow,{key:"".concat(e.getId())},n.createElement(f.TableCell,{component:"th",scope:"row"},e.getLabel()),n.createElement(f.TableCell,{align:"right"},e.getLocation()),n.createElement(f.TableCell,{align:"right"},v(e.getTrackId())||"N/A"),n.createElement(f.TableCell,{align:"right"},n.createElement(f.Button,{onClick:function(){!function(e){try{var t=g.find((function(t){return e===t.refName}));t?(o.setDisplayedRegions([t]),o.showAllRegions()):o.navToLocString(e,m)}catch(e){console.warn(e),c.notify("".concat(e),"warning")}}(e.getLocation());var t=e.getTrackId();t&&o.showTrack(t),i()},disabled:!v(e.getTrackId()),color:"primary",variant:"contained"},"Go")))})))))):n.createElement(f.Typography,null,"No results found for ",n.createElement("b",null,o.searchQuery))),n.createElement(f.Divider,null),n.createElement(f.DialogActions,null,n.createElement(f.Button,{onClick:function(){return i()},color:"primary"},"Cancel")))}var Fn={__proto__:null,useStyles:In,default:On},zn=f.makeStyles((function(e){return{note:{textAlign:"center",paddingTop:e.spacing(1),paddingBottom:e.spacing(1)},dots:{"&::after":{display:"inline-block",animation:"$ellipsis 1.5s infinite",content:'"."',width:"1em",textAlign:"left"}},"@keyframes ellipsis":{"0%":{content:'"."'},"33%":{content:'".."'},"66%":{content:'"..."'}}}})),jn={__proto__:null,default:y.observer((function(e){var t=e.model,r=t.tracks,o=t.error,a=t.hideHeader,i=t.initialized,l=t.hasDisplayedRegions,c=zn();return i||o?!l||o?n.createElement(Bn,{model:t}):n.createElement("div",{style:{position:"relative"}},t.seqDialogDisplayed?n.createElement(Dn,{model:t,handleClose:function(){t.setSequenceDialogOpen(!1)}}):null,t.isSearchDialogDisplayed?n.createElement(On,{model:t,handleClose:function(){t.setSearchResults(void 0,void 0)}}):null,a?n.createElement("div",{style:{position:"absolute",right:0,zIndex:1001}},n.createElement(Tn,{model:t})):n.createElement(Qt,{model:t}),n.createElement(Sn,{model:t},r.length?r.map((function(e){return n.createElement(on,{key:e.id,model:t,track:e})})):n.createElement(f.Paper,{variant:"outlined",className:c.note},n.createElement(f.Typography,null,"No tracks active."),n.createElement(f.Button,{variant:"contained",color:"primary",onClick:t.activateTrackSelector,style:{zIndex:1e3},startIcon:n.createElement(I.TrackSelector,null)},"Open track selector")))):n.createElement(f.Typography,{className:c.dots,variant:"h5"},"Loading")}))};function qn(e){if(!e.length)return"";var t=e.every((function(t){return t.assemblyName===e[0].assemblyName}));return e.map((function(e){return u.assembleLocString(he(he({},e),{},{start:Math.round(e.start),end:Math.round(e.end),assemblyName:t?void 0:e.assemblyName}))})).join(" ")}var An=48,Hn=20,Wn=17,_n=3,Vn=32,Gn=7;function Xn(e){return"undefined"!=typeof localStorage?localStorage.getItem(e):void 0}function Un(e){return h.types.compose(a.BaseViewModel,h.types.model("LinearGenomeView",{id:x.ElementId,type:h.types.literal("LinearGenomeView"),offsetPx:0,bpPerPx:1,displayedRegions:h.types.array(x.Region),tracks:h.types.array(e.pluggableMstType("track","stateModel")),hideHeader:!1,hideHeaderOverview:!1,trackSelectorType:h.types.optional(h.types.enumeration(["hierarchical"]),"hierarchical"),trackLabels:h.types.optional(h.types.string,(function(){return Xn("lgv-trackLabels")||"overlapping"})),showCenterLine:h.types.optional(h.types.boolean,(function(){var e=Xn("lgv-showCenterLine");return null!=e&&!!+e})),showCytobandsSetting:h.types.optional(h.types.boolean,(function(){var e=Xn("lgv-showCytobands");return null==e||!!+e}))})).volatile((function(){return{volatileWidth:void 0,minimumBlockWidth:3,draggingTrackId:void 0,volatileError:void 0,afterDisplayedRegionsSetCallbacks:[],scaleFactor:1,trackRefs:{},coarseDynamicBlocks:[],coarseTotalBp:0,leftOffset:void 0,rightOffset:void 0,searchResults:void 0,searchQuery:void 0,seqDialogDisplayed:!1}})).views((function(e){return{get width(){if(void 0===e.volatileWidth)throw new Error("width undefined, make sure to check for model.initialized");return e.volatileWidth},get interRegionPaddingWidth(){return 2}}})).views((function(e){return{get assemblyErrors(){var t=u.getSession(e).assemblyManager;return this.assemblyNames.map((function(e){var n;return null===(n=t.get(e))||void 0===n?void 0:n.error})).filter((function(e){return!!e})).join(", ")},get assembliesInitialized(){var t=u.getSession(e).assemblyManager;return this.assemblyNames.every((function(e){var n;return null===(n=t.get(e))||void 0===n?void 0:n.initialized}))},get initialized(){return void 0!==e.volatileWidth&&this.assembliesInitialized},get hasDisplayedRegions(){return e.displayedRegions.length>0},get isSearchDialogDisplayed(){return void 0!==e.searchResults},get scaleBarHeight(){return Wn+_n},get headerHeight(){return e.hideHeader?0:e.hideHeaderOverview?An:An+Hn},get trackHeights(){return e.tracks.map((function(e){return e.displays[0].height})).reduce((function(e,t){return e+t}),0)},get trackHeightsWithResizeHandles(){return this.trackHeights+e.tracks.length*_n},get height(){return this.trackHeightsWithResizeHandles+this.headerHeight+this.scaleBarHeight},get totalBp(){return e.displayedRegions.reduce((function(e,t){return e+t.end-t.start}),0)},get maxBpPerPx(){return this.totalBp/(.9*e.width)},get minBpPerPx(){return.02},get error(){return e.volatileError||this.assemblyErrors},get maxOffset(){return this.displayedRegionsTotalPx-10},get minOffset(){return 30-e.width},get displayedRegionsTotalPx(){return this.totalBp/e.bpPerPx},renderProps:function(){return he(he({},g.getParentRenderProps(e)),{},{bpPerPx:e.bpPerPx,highResolutionScaling:o.getConf(u.getSession(e),"highResolutionScaling")})},get assemblyNames(){return Te(new Set(e.displayedRegions.map((function(e){return e.assemblyName}))))},searchScope:function(t){return{assemblyName:t,includeAggregateIndexes:!0,tracks:e.tracks}},bpToPx:function(t){return u.viewBpToPx({refName:t.refName,coord:t.coord,regionNumber:t.regionNumber,self:e})},pxToBp:function(t){var n=0,r=(e.offsetPx+t)*e.bpPerPx,o=e.displayedRegions.length;if(r<0){var a=e.displayedRegions[0],i=r;return he(he({},h.getSnapshot(a)),{},{oob:!0,coord:a.reversed?Math.floor(a.end-i)+1:Math.floor(a.start+i)+1,offset:i,index:0})}for(var l=e.interRegionPaddingWidth*e.bpPerPx,c=e.minimumBlockWidth*e.bpPerPx,s=0;s<e.displayedRegions.length;s+=1){var u=e.displayedRegions[s],d=u.end-u.start,f=r-n;if(d+n>r&&n<=r)return he(he({},h.getSnapshot(u)),{},{oob:!1,offset:f,coord:u.reversed?Math.floor(u.end-f)+1:Math.floor(u.start+f)+1,index:s});n+=u.end-u.start>c&&f/e.bpPerPx>0&&f/e.bpPerPx<e.width?d+l:d}if(r>=n){var m=e.displayedRegions[o-1],p=r-n+(m.end-m.start);return he(he({},h.getSnapshot(m)),{},{oob:!0,offset:p,coord:m.reversed?Math.floor(m.end-p)+1:Math.floor(m.start+p)+1,index:o-1})}return{coord:0,index:0,refName:"",oob:!0,assemblyName:"",offset:0,start:0,end:0,reversed:!1}},getTrack:function(t){return e.tracks.find((function(e){return e.configuration.trackId===t}))},rankSearchResults:function(t){var n=e.tracks.map((function(e){return e.configuration.trackId}));return t.forEach((function(e){n!==[]&&n.includes(e.trackId)&&e.updateScore(e.getScore()+1)})),t},rewriteOnClicks:function(t,n){var r=this;n.forEach((function(n){if("subMenu"in n&&r.rewriteOnClicks(t,n.subMenu),"onClick"in n){var o=n.onClick;n.onClick=function(){for(var n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];e.tracks.forEach((function(e){e.type===t&&o.apply(e,[e].concat(r))}))}}}))},get trackTypeActions(){var t=this,n=new Map;return e.tracks.forEach((function(e){if(!n.get(e.type)){var r=L(e.viewMenuActions);t.rewriteOnClicks(e.type,r),n.set(e.type,r)}})),n},get centerLineInfo(){return e.displayedRegions.length?this.pxToBp(e.width/2):void 0}}})).actions((function(t){return{setShowCytobands:function(e){t.showCytobandsSetting=e,localStorage.setItem("lgv-showCytobands","".concat(+e))},setWidth:function(e){t.volatileWidth=e},setError:function(e){t.volatileError=e},toggleHeader:function(){t.hideHeader=!t.hideHeader},toggleHeaderOverview:function(){t.hideHeaderOverview=!t.hideHeaderOverview},scrollTo:function(e){var n=u.clamp(e,t.minOffset,t.maxOffset);return t.offsetPx=n,n},zoomTo:function(e){var n=u.clamp(e,t.minBpPerPx,t.maxBpPerPx);if(n===t.bpPerPx)return n;var r=t.bpPerPx;if(t.bpPerPx=n,Math.abs(r-n)<1e-6)return console.warn("zoomTo bpPerPx rounding error"),r;var o=t.width;return this.scrollTo(Math.round((t.offsetPx+o/2)*r/n-o/2)),n},setOffsets:function(e,n){t.leftOffset=e,t.rightOffset=n},setSearchResults:function(e,n){t.searchResults=e,t.searchQuery=n},setSequenceDialogOpen:function(e){t.seqDialogDisplayed=e},setNewView:function(e,t){this.zoomTo(e),this.scrollTo(t)},horizontallyFlip:function(){t.displayedRegions=h.cast(t.displayedRegions.slice().reverse().map((function(e){return he(he({},e),{},{reversed:!e.reversed})}))),this.scrollTo(t.totalBp/t.bpPerPx-t.offsetPx-t.width)},showTrack:function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=e.pluggableConfigSchemaType("track"),i=h.resolveIdentifier(a,h.getRoot(t),n);if(!i)throw new Error('Could not resolve identifier "'.concat(n,'"'));var l=e.getTrackType(null==i?void 0:i.type);if(!l)throw new Error("Unknown track type ".concat(i.type));var c=e.getViewType(t.type),s=c.displayTypes.map((function(e){return e.name})),u=i.displays.find((function(e){return s.includes(e.type)}));if(!u)throw new Error("Could not find a compatible display for view type ".concat(t.type));var d=t.tracks.filter((function(e){return e.configuration===i}));if(0===d.length){var f=l.stateModel.create(he(he({},r),{},{type:i.type,configuration:i,displays:[he({type:u.type,configuration:u},o)]}));return t.tracks.push(f),f}return d[0]},hideTrack:function(n){var o=e.pluggableConfigSchemaType("track"),a=h.resolveIdentifier(o,h.getRoot(t),n),i=t.tracks.filter((function(e){return e.configuration===a}));return r.transaction((function(){return i.forEach((function(e){return t.tracks.remove(e)}))})),i.length}}})).actions((function(e){return{moveTrack:function(t,n){var r=e.tracks.findIndex((function(e){return e.id===t}));if(-1===r)throw new Error("Track ID ".concat(t," not found"));var o=e.tracks.findIndex((function(e){return e.id===n}));if(-1===o)throw new Error("Track ID ".concat(n," not found"));var a=h.getSnapshot(e.tracks[r]);e.tracks.splice(r,1),e.tracks.splice(o,0,a)},closeView:function(){var t=u.getContainingView(e);t?u.isViewContainer(t)&&t.removeView(e):u.getSession(e).removeView(e)},toggleTrack:function(t){e.hideTrack(t)||e.showTrack(t)},setTrackLabels:function(t){e.trackLabels=t,localStorage.setItem("lgv-trackLabels",t)},toggleCenterLine:function(){e.showCenterLine=!e.showCenterLine,localStorage.setItem("lgv-showCenterLine","".concat(+e.showCenterLine))},setDisplayedRegions:function(t){e.displayedRegions=h.cast(t),e.zoomTo(e.bpPerPx)},activateTrackSelector:function(){if("hierarchical"===e.trackSelectorType){var t=u.getSession(e);if(u.isSessionModelWithWidgets(t)){var n=t.addWidget("HierarchicalTrackSelectorWidget","hierarchicalTrackSelector",{view:e});return t.showWidget(n),n}}throw new Error("invalid track selector type ".concat(e.trackSelectorType))},navToLocString:function(t,n){var r=e.assemblyNames,o=u.getSession(e).assemblyManager,a=o.isValidRefName,i=n||r[0],l=t.split(" ").filter((function(e){return!!e.trim()})).map((function(e){return u.parseLocString(e,(function(e){return a(e,i)}))})).map((function(e){var t=e.assemblyName||i,n=o.get(t),r=e.refName;if(!n)throw new Error("assembly ".concat(t," not found"));var a=n.regions;if(!a)throw new Error("regions not loaded yet for ".concat(t));var l=n.getCanonicalRefName(e.refName);if(!l)throw new Error("Could not find refName ".concat(r," in ").concat(n.name));var c=a.find((function(e){return e.refName===l}));if(!c)throw new Error("Could not find refName ".concat(r," in ").concat(t));return he(he({},e),{},{assemblyName:t,parentRegion:c})}));if(1===l.length){var c=l[0];this.setDisplayedRegions([he({reversed:c.reversed},c.parentRegion)]);var s=c.start,d=c.end,f=c.parentRegion;this.navTo(he(he({},c),{},{start:u.clamp(null!=s?s:0,0,f.end),end:u.clamp(null!=d?d:f.end,0,f.end)}))}else this.setDisplayedRegions(l.map((function(e){return void 0===e.start?e.parentRegion:e}))),this.showAllRegions()},navTo:function(e){this.navToMultiple([e])},navToMultiple:function(t){var n=t[0],r=n.refName,o=n.start,a=n.end,i=n.assemblyName,l=void 0===i?e.assemblyNames[0]:i;if(void 0!==o&&void 0!==a&&o>a)throw new Error('start "'.concat(o+1,'" is greater than end "').concat(a,'"'));var c=u.getSession(e).assemblyManager.get(l);if(c){var s=c.getCanonicalRefName(r);s&&(r=s)}for(var d,f=o,m=a,p=!1,g=function(e){if(r===e.refName){if(p=!0,void 0===f&&(f=e.start),void 0===m&&(m=e.end),f>=e.start&&f<=e.end&&m<=e.end&&m>=e.start)return!0;f=o,m=a}return!1},h=u.findLastIndex(e.displayedRegions,g);d!==h;)try{var v=d;if(d=e.displayedRegions.slice(void 0===v?0:v+1).findIndex(g),void 0!==v&&(d+=v+1),!p)throw new Error('could not find a region with refName "'.concat(r,'"'));if(void 0===f)throw new Error('could not find a region with refName "'.concat(r,'" that contained an end position ').concat(m));if(void 0===m)throw new Error('could not find a region with refName "'.concat(r,'" that contained a start position ').concat(f+1));if(-1===d)throw new Error('could not find a region that completely contained "'.concat(u.assembleLocString(n),'"'));if(1===t.length){var y=e.displayedRegions[d];return void this.moveTo({index:d,offset:y.reversed?y.end-m:f-y.start},{index:d,offset:y.reversed?y.end-f:m-y.start})}for(var b=0,w=0,k=0;b<t.length;b++){var E=t[b],x=e.displayedRegions[d+b];if(w=E.start||x.start,k=E.end||x.end,E.refName!==x.refName)throw new Error("Entered location ".concat(u.assembleLocString(E)," does not match with displayed regions"))}var S=e.displayedRegions[d],C=e.displayedRegions[d+(b-=1)];return void this.moveTo({index:d,offset:S.reversed?S.end-m:f-S.start},{index:d+b,offset:C.reversed?C.end-w:k-C.start})}catch(e){if(d===h)throw e}},zoomToDisplayedRegions:function(t,n){if(void 0!==t&&void 0!==n){if(t.refName===n.refName&&t.index===n.index&&n.offset<t.offset||t.index>n.index){var r=[n,t];t=r[0],n=r[1]}var o={start:t.start,end:t.end,index:t.index,offset:t.offset},a={start:n.start,end:n.end,index:n.index,offset:n.offset};o&&a?this.moveTo(o,a):u.getSession(e).notify("No regions found to navigate to","warning")}},getSelectedRegions:function(t,n){var r=N.create(he(he({},h.getSnapshot(e)),{},{interRegionPaddingWidth:e.interRegionPaddingWidth}));return r.setVolatileWidth(e.width),r.zoomToDisplayedRegions(t,n),r.dynamicBlocks.contentBlocks.map((function(e){return he(he({},e),{},{start:Math.floor(e.start),end:Math.ceil(e.end)})}))},afterDisplayedRegionsSet:function(t){e.afterDisplayedRegionsSetCallbacks.push(t)},moveTo:function(t,n){var r=0;if(t.index===n.index)r+=n.offset-t.offset;else{var o=e.displayedRegions[t.index];if(r+=o.end-o.start-t.offset,n.index-t.index>=2)for(var a=t.index+1;a<n.index;a+=1)r+=e.displayedRegions[a].end-e.displayedRegions[a].start;r+=n.offset}var i=r/(e.width-e.interRegionPaddingWidth*(n.index-t.index)),l=e.zoomTo(i),c=0;i<l&&(c=(l-i)*e.width/2);for(var s=-c,u=0;u<e.displayedRegions.length;u+=1){var d=e.displayedRegions[u];if(t.index===u){s+=t.offset;break}s+=d.end-d.start}e.scrollTo(Math.round(s/e.bpPerPx)+e.interRegionPaddingWidth*t.index)},horizontalScroll:function(t){var n=e.offsetPx;return e.scrollTo(e.offsetPx+t)-n},centerAt:function(t,n,r){var o=e.bpToPx({refName:n,coord:t,regionNumber:r});o&&e.scrollTo(Math.round(o.offsetPx-e.width/2))},center:function(){e.scrollTo(Math.round(e.totalBp/2/e.bpPerPx-e.width/2))},showAllRegions:function(){e.zoomTo(e.maxBpPerPx),this.center()},showAllRegionsInAssembly:function(t){var n=u.getSession(e),r=n.assemblyManager;if(!t){var o=Te(new Set(e.displayedRegions.map((function(e){return e.assemblyName}))));if(o.length>1)return void n.notify("Can't perform this with multiple assemblies currently");t=Be(o,1)[0]}var a=r.get(t);if(a){var i=a.regions;i&&(this.setDisplayedRegions(i),e.zoomTo(e.maxBpPerPx),this.center())}},setDraggingTrackId:function(t){e.draggingTrackId=t},setScaleFactor:function(t){e.scaleFactor=t}}})).actions((function(e){var t=function(){};return{slide:function(n){var r=Be(u.springAnimate(e.offsetPx,e.offsetPx+e.width*n,e.scrollTo),2),o=r[0],a=r[1];t(),t=a,o()}}})).actions((function(e){var t=function(){};return{zoom:function(n){if(e.zoomTo(e.bpPerPx),!(n<e.bpPerPx&&e.bpPerPx===e.minBpPerPx||n>e.bpPerPx&&e.bpPerPx===e.maxBpPerPx)){var r=Be(u.springAnimate(1,e.bpPerPx/n,e.setScaleFactor,(function(){e.zoomTo(n),e.setScaleFactor(1)})),2),o=r[0],a=r[1];t(),t=a,o()}}}})).views((function(e){return{get canShowCytobands(){return 1===e.displayedRegions.length&&this.anyCytobandsExist},get showCytobands(){return this.canShowCytobands&&e.showCytobandsSetting},get anyCytobandsExist(){var t=u.getSession(e).assemblyManager;return e.assemblyNames.some((function(e){var n,r;return null===(n=t.get(e))||void 0===n||null===(r=n.cytobands)||void 0===r?void 0:r.length}))},get cytobandOffset(){return this.showCytobands?u.measureText(e.displayedRegions[0].refName,12)+15:0}}})).views((function(e){return{menuItems:function(){var t,n=e.showCytobands,r=[{label:"Return to import form",onClick:function(){u.getSession(e).queueDialog((function(t){return[b.ReturnToImportFormDialog,{model:e,handleClose:t}]}))},icon:j},{label:"Export SVG",icon:q,onClick:function(){u.getSession(e).queueDialog((function(t){return[_t,{model:e,handleClose:t}]}))}},{label:"Open track selector",onClick:e.activateTrackSelector,icon:I.TrackSelector},{label:"Horizontally flip",icon:O,onClick:e.horizontallyFlip},{type:"divider"},{label:"Show all regions in assembly",icon:F,onClick:e.showAllRegionsInAssembly},{label:"Show center line",icon:F,type:"checkbox",checked:e.showCenterLine,onClick:e.toggleCenterLine},{label:"Show header",icon:F,type:"checkbox",checked:!e.hideHeader,onClick:e.toggleHeader},{label:"Show header overview",icon:F,type:"checkbox",checked:!e.hideHeaderOverview,onClick:e.toggleHeaderOverview,disabled:e.hideHeader},{label:"Track labels",icon:z,subMenu:[{label:"Overlapping",icon:F,type:"radio",checked:"overlapping"===e.trackLabels,onClick:function(){return e.setTrackLabels("overlapping")}},{label:"Offset",icon:F,type:"radio",checked:"offset"===e.trackLabels,onClick:function(){return e.setTrackLabels("offset")}},{label:"Hidden",icon:F,type:"radio",checked:"hidden"===e.trackLabels,onClick:function(){return e.setTrackLabels("hidden")}}]}].concat(Te(e.canShowCytobands?[{label:n?"Hide ideogram":"Show ideograms",onClick:function(){e.setShowCytobands(!n)}}]:[])),o=Ne(e.trackTypeActions.entries());try{for(o.s();!(t=o.n()).done;){var a=Be(t.value,2),i=a[1];i.length&&(r.push({type:"divider"},{type:"subHeader",label:a[0]}),i.forEach((function(e){r.push(e)})))}}catch(e){o.e(e)}finally{o.f()}return r}}})).views((function(e){var t,n="";return{get staticBlocks(){var r=M(e),o=JSON.stringify(r);return n!==o&&(t=r,n=o),t},get dynamicBlocks(){return R(e)},get roundedDynamicBlocks(){return this.dynamicBlocks.contentBlocks.map((function(e){return he(he({},e),{},{start:Math.floor(e.start),end:Math.ceil(e.end)})}))},get visibleLocStrings(){return qn(this.dynamicBlocks.contentBlocks)},get coarseVisibleLocStrings(){return qn(e.coarseDynamicBlocks)}}})).actions((function(e){return{clearView:function(){e.setDisplayedRegions([]),e.tracks.clear(),e.scrollTo(0),e.zoomTo(10)},setCoarseDynamicBlocks:function(t){e.coarseDynamicBlocks=t.contentBlocks,e.coarseTotalBp=t.totalBp},afterAttach:function(){var t=this;h.addDisposer(e,r.autorun((function(){e.initialized&&t.setCoarseDynamicBlocks(e.dynamicBlocks)}),{delay:150}))}}})).actions((function(e){return{exportSvg:function(){var t=arguments;return be(De.mark((function n(){var r,o;return De.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return r=t.length>0&&void 0!==t[0]?t[0]:{},n.next=3,Lt(e,r);case 3:o=new Blob([n.sent],{type:"image/svg+xml"}),D.saveAs(o,"image.svg");case 6:case"end":return n.stop()}}),n)})))()}}})).views((function(e){return{rubberBandMenuItems:function(){return[{label:"Zoom to region",icon:A,onClick:function(){var t=e.leftOffset,n=e.rightOffset;t&&n&&e.moveTo(t,n)}},{label:"Get sequence",icon:v,onClick:function(){e.setSequenceDialogOpen(!0)}}]}}}))}var Jn=t.lazy((function(){return Promise.resolve().then((function(){return nr}))})),Yn=function(e){return h.types.compose("LinearBasicDisplay",at,h.types.model({type:h.types.literal("LinearBasicDisplay"),trackShowLabels:h.types.maybe(h.types.boolean),trackShowDescriptions:h.types.maybe(h.types.boolean),trackDisplayMode:h.types.maybe(h.types.string),trackMaxHeight:h.types.maybe(h.types.number),configuration:o.ConfigurationReference(e)})).views((function(e){return{get rendererTypeName(){return o.getConf(e,["renderer","type"])},get showLabels(){var t=o.getConf(e,["renderer","showLabels"]);return void 0!==e.trackShowLabels?e.trackShowLabels:t},get showDescriptions(){var t=o.getConf(e,["renderer","showLabels"]);return void 0!==e.trackShowDescriptions?e.trackShowDescriptions:t},get maxHeight(){var t=o.getConf(e,["renderer","maxHeight"]);return void 0!==e.trackMaxHeight?e.trackMaxHeight:t},get displayMode(){var t=o.getConf(e,["renderer","displayMode"]);return void 0!==e.trackDisplayMode?e.trackDisplayMode:t},get rendererConfig(){var t=o.getConf(e,["renderer"])||{};return e.rendererType.configSchema.create(he(he({},t),{},{showLabels:this.showLabels,showDescriptions:this.showDescriptions,displayMode:this.displayMode,maxHeight:this.maxHeight}),h.getEnv(e))}}})).actions((function(e){return{toggleShowLabels:function(){e.trackShowLabels=!e.showLabels},toggleShowDescriptions:function(){e.trackShowDescriptions=!e.showDescriptions},setDisplayMode:function(t){e.trackDisplayMode=t},setMaxHeight:function(t){e.trackMaxHeight=t}}})).views((function(e){var t=e.trackMenuItems,n=e.renderProps;return{renderProps:function(){var t=e.rendererConfig;return he(he({},n()),{},{config:t})},trackMenuItems:function(){return[].concat(Te(t()),[{label:"Show labels",icon:F,type:"checkbox",checked:e.showLabels,onClick:function(){e.toggleShowLabels()}},{label:"Show descriptions",icon:F,type:"checkbox",checked:e.showDescriptions,onClick:function(){e.toggleShowDescriptions()}},{label:"Display mode",icon:F,subMenu:["compact","reducedRepresentation","normal","collapse"].map((function(t){return{label:t,onClick:function(){e.setDisplayMode(t)}}}))},{label:"Set max height",onClick:function(){u.getSession(e).queueDialog((function(t){return[Jn,{model:e,handleClose:t}]}))}}])}}}))};function Zn(e){return o.ConfigurationSchema("LinearBasicDisplay",{mouseover:{type:"string",description:"what to display in a given mouseover",defaultValue:"jexl:get(feature,'name')",contextVariable:["feature"]},renderer:e.pluggableConfigSchemaType("renderer")},{baseConfiguration:Ie,explicitlyTyped:!0})}var Kn=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&xe(e,t)}(p,s);var n,f,m=Pe(p);function p(){var e;return we(this,p),(e=m.apply(this,arguments)).name="LinearGenomeViewPlugin",e.exports={BaseLinearDisplayComponent:Xe,BaseLinearDisplay:at,baseLinearDisplayConfigSchema:Ie},e}return n=p,(f=[{key:"install",value:function(e){e.addTrackType((function(){var t=o.ConfigurationSchema("FeatureTrack",{},{baseConfiguration:a.createBaseTrackConfig(e),explicitIdentifier:"trackId"});return new i({name:"FeatureTrack",configSchema:t,stateModel:a.createBaseTrackModel(e,"FeatureTrack",t)})})),e.addTrackType((function(){var t=o.ConfigurationSchema("BasicTrack",{},{baseConfiguration:a.createBaseTrackConfig(e),explicitIdentifier:"trackId"});return new i({name:"BasicTrack",configSchema:t,stateModel:a.createBaseTrackModel(e,"BasicTrack",t)})})),e.addDisplayType((function(){var t=it(e);return new l({name:"LinearBareDisplay",configSchema:t,stateModel:lt(t),trackType:"BasicTrack",viewType:"LinearGenomeView",ReactComponent:Xe})})),e.addDisplayType((function(){var t=Zn(e);return new l({name:"LinearBasicDisplay",configSchema:t,stateModel:Yn(t),trackType:"FeatureTrack",viewType:"LinearGenomeView",ReactComponent:Xe})})),e.addViewType((function(){return new c({name:"LinearGenomeView",stateModel:Un(e),ReactComponent:t.lazy((function(){return Promise.resolve().then((function(){return jn}))}))})})),e.addToExtensionPoint("LaunchView-LinearGenomeView",function(){var e=be(De.mark((function e(t){var n,o,a,i,l,c,s,u;return De.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=t.assembly,a=t.loc,l=void 0===(i=t.tracks)?[]:i,c=(n=t.session).assemblyManager,s=n.addView("LinearGenomeView",{}),e.next=5,r.when((function(){return!!s.volatileWidth}));case 5:if(o){e.next=7;break}throw new Error("No assembly provided when launching linear genome view");case 7:return e.next=9,c.waitForAssembly(o);case 9:if(e.sent){e.next=12;break}throw new Error('Assembly "'.concat(o,'" not found when launching linear genome view'));case 12:if(s.navToLocString(a,o),u=[],l.forEach((function(e){try{s.showTrack(e)}catch(t){if(!"".concat(t).match("Could not resolve identifier"))throw t;u.push(e)}})),!u.length){e.next=17;break}throw new Error("Could not resolve identifiers: ".concat(u.join(",")));case 17:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())}},{key:"configure",value:function(e){u.isAbstractMenuManager(e.rootModel)&&e.rootModel.appendToSubMenu(["Add"],{label:"Linear genome view",icon:d,onClick:function(e){e.addView("LinearGenomeView",{})}})}}])&&function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(n.prototype,f),Object.defineProperty(n,"prototype",{writable:!1}),p}(),Qn=f.makeStyles((function(e){return{closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]}}})),$n={__proto__:null,useStyles:Qn,default:function(e){var t=e.handleClose,r=Qn();return n.createElement(f.Dialog,{open:!0,maxWidth:"xl",onClose:t},n.createElement(f.DialogTitle,null,"Using the search box",t?n.createElement(f.IconButton,{"data-testid":"close-resultsDialog",className:r.closeButton,onClick:function(){t()}},n.createElement(Y,null)):null),n.createElement(f.Divider,null),n.createElement(f.DialogContent,null,n.createElement("h3",null,"Searching"),n.createElement("ul",null,n.createElement("li",null,"Jump to a feature or reference sequence by typing its name in the location box and pressing Enter."),n.createElement("li",null,"Jump to a specific region by typing the region into the location box as: ",n.createElement("code",null,"ref:start..end")," or ",n.createElement("code",null,"ref:start-end"),". Commas are allowed in the start and end coordinates. A space-separated list of locstrings can be used to open up multiple chromosomes at a time")),n.createElement("h3",null,"Example Searches"),n.createElement("ul",null,n.createElement("li",null,n.createElement("code",null,"BRCA")," - searches for the feature named BRCA"),n.createElement("li",null,n.createElement("code",null,"chr4")," - jumps to chromosome 4"),n.createElement("li",null,n.createElement("code",null,"chr4:79,500,000..80,000,000")," - jumps the region on chromosome 4 between 79.5Mb and 80Mb."),n.createElement("li",null,n.createElement("code",null,"chr1:1-100 chr2:1-100")," - create a split view of chr1:1-100 and chr2:1-100"),n.createElement("li",null,n.createElement("code",null,"chr1 chr2 chr3")," - open up multiple chromosomes at once"),n.createElement("li",null,n.createElement("code",null,"chr1:1-100[rev] chr2:1-100")," - open up the first region in the horizontally flipped orientation"))),n.createElement(f.Divider,null),n.createElement(f.DialogActions,null,n.createElement(f.Button,{onClick:function(){return t()},color:"primary"},"Close")))}},er=f.makeStyles((function(e){return{root:{width:500},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},field:{margin:e.spacing(2)}}}));function tr(e){var r=e.model,o=e.handleClose,a=er(),i=r.maxHeight,l=Be(t.useState("".concat(void 0===i?"":i)),2),c=l[0],s=l[1];return n.createElement(f.Dialog,{open:!0,onClose:o,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},n.createElement(f.DialogTitle,{id:"alert-dialog-title"},"Filter options",n.createElement(f.IconButton,{"aria-label":"close",className:a.closeButton,onClick:o},n.createElement(Y,null))),n.createElement(f.DialogContent,{className:a.root},n.createElement(f.Typography,null,'Set max height for the track. For example, you can increase this if the layout says "Max height reached"'),n.createElement(f.TextField,{value:c,onChange:function(e){return s(e.target.value)},placeholder:"Enter max score"}),n.createElement(f.DialogActions,null,n.createElement(f.Button,{variant:"contained",color:"primary",type:"submit",autoFocus:!0,onClick:function(){r.setMaxHeight(""===c||Number.isNaN(+c)?void 0:+c),o()}},"Submit"),n.createElement(f.Button,{variant:"contained",color:"secondary",onClick:function(){return o()}},"Cancel"))))}var nr={__proto__:null,default:y.observer(tr)};exports.BaseLinearDisplay=at,exports.BaseLinearDisplayComponent=Xe,exports.RefNameAutocomplete=jt,exports.SearchBox=Ht,exports.baseLinearDisplayConfigSchema=Ie,exports.default=Kn,exports.linearBareDisplayConfigSchemaFactory=it,exports.linearBasicDisplayConfigSchemaFactory=Zn,exports.linearBasicDisplayModelFactory=Yn,exports.renderToSvg=Lt;
|
|
2
2
|
//# sourceMappingURL=plugin-linear-genome-view.cjs.production.min.js.map
|